Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] [OFF-TOPIC] Até que ponto vale a pena "encher" o seu aplicativo de libs?

Bibliotecas são como ferramentas, e como ferramentas, existem as boas e as ruins e é obrigação de um desenvolvedor saber fazer essa diferenciação entre elas.

Se eu vou pintar minha casa, eu posso escolher uma lixadeira elétrica para lixar minha parede, ou posso escolher lixa-la manualmente. O que um profissional faria nesse caso? Provavelmente optaria por usar uma elétrica para o grosso do trabalho, e fazer manualmente nas partes mais complicadas, nas arestas...

Existem coisas que são complexas, e por isso mesmo, dificeis de se implementar corretamente.

Pegue como exemplo carregamento de imagens:
- Você precisa trabalhar com assincronismo, multiplas threads, precisa suportar Adapters (para não carregar uma imagem e uma View que foi reciclada), questões de uso de memória, resizing das imagens, cache em memória, cache em disco, etc... Para implementar tudo isso de forma eficiente você terá um enorme trabalho.

Ou eu posso escolher a ferramenta certa e utiliza-la em meu projeto, removendo a necessidade de todo esse código que comentei acima, e como todos sabemos, menos código é menos bugs. Claro que podem existir bugs na biblioteca, mas como ela é usada por muitos desenvolvedores, a chance de eles serem encontrados e corrigidos antes de você dar de cara em um deles é muito grande. Sem falar que soman-se as experiencias de diversos desenvolvedores para se chegar na melhor solução para o problema.

Mas claro que tudo tem 2 lados, e se por um lado temos essa enorme flexibilidade para usarmos ferramentas que nos auxiliem, de outro lado elas adicionam tamanho no seu APK, tanto em tamanho (bytes) como em número de métodos  (Dex Limit).

Sempre dou algumas dicas na hora de escolher uma  ferramenta ou biblioteca:
- Procure sempre preferir bibliotecas que se propoem a resolver um único problema. Ex.: Picasso ou Glide em vez de Volley (multiplas funcionalidades)
- Procure não sobrepor bibliotecas, Ex: Usar Volley para  imagens e Retrofit para Web Services.
- De preferencia para libs open source, elas podem te ajudar muito a identificar problemas
- Procure conhecer os desenvolvedores e sua reputação na comunidade open-source.
- Confira o repositório da biblioteca e veja se ela continua sendo mantida, libs sem manutenção podem dar dor de cabeça, especialmente em novas versões do SDK do Android  (remoção de métodos que eram Deprecated, mudança de comportamento, etc)
- Descubra quem usa esse biblioteca, se grandes Apps usam ela, as chances de ela ser bem mantida e ter boa qualidade são maiores.
- Verifique se a lib possui testes automatizados, são importantes para ajudar a manter a qualidade e a confiança na lib.

Sobre o primeiro ponto, ele é muito importante para manter o tamanho do seu APK e a quantidade de métodos sobre controle. Se você começa a adicionar libs que tem muitas funcionalidades (Ex. android-annotations) mas usa apenas uma fração do que a lib oferece, talvez seja melhor procurar uma ou mais libs que sejam mais focadas em resolver apenas um problema.

E lembrem-se, o fato de não utilizar bibliotecas não vai automaticamente fazer o seu APK ser menor e ter menos métodos, pois você terá que implementar o código manualmente.

Quando entrevisto candidatos, dou preferencia àqueles que conhecem as ferramentas disponíveis e principalmente àqueles que sabem identificar ass boas e más ferramentas.

On Sat, Sep 19, 2015 at 9:01 PM Maicon Strey <mstrey@gmail.com> wrote:

Ainda no assunto de libs mas um outro ponto: qual a Influencia que a quantidade de libs pode ter no tamanho do apk?


On Sat, Sep 19, 2015, 20:23 Bilthon <bilthon@gmail.com> wrote:

On Saturday, September 19, 2015 at 6:02:53 PM UTC-5, Francis Mariano wrote:

Não vejo problema de se utilizar bibliotecas, algumas são bem úteis.

Pra q reinventar a roda né?


Exato, e como é exatamente que você "perde o controle" sobre o que está fazendo? geralmente essas bibliotecas são open source. Se você não gosta de algo que ela faz, descobre um bug ou acha ineficiente, você pode ir la e meter a mão para resolver o problema. Manda um pull request e pronto. Se ele não for aceito você pode sempre usar a sua versão da biblioteca.

Com certeza vai ter uma curva de aprendizado, mas vai ser mais rápido do que fazer tudo do zero.

O que você definitivamente não deve fazer e tratar a biblioteca como uma caixa preta.

Nelson


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário