Simplifique o seu código, deixe-o mais legível e pare de escrever tanto código repetitivo nas suas aplicações Android. A biblioteca Butter Knife lhe ajuda a fazer essas coisas e um pouco mais.
Quem desenvolve para a plataforma Android sabe que constantemente temos que escrever estruturas de código repetitivas por toda a aplicação. Como exemplo posso citar o conhecido findViewById
. Ele está sempre lá quando precisamos vincular um elemento da tela (XML) a um objeto (JAVA). E muitas vezes temos muitos elementos gráficos, muitos findViewById
, muita repetição. Tornando o código grande e mais complexo, visualmente falando.
Além dessa estrutura existem muitas outras com as mesmas consequencias como: listeners, resources (getResources().getColor()
, getResources().getString()
, etc).
A biblioteca Butter Knife tem uma proposta interessante para solucionar esses problemas.
Conhecendo a biblioteca
A Butter Knife, biblioteca criada por JakeWharton atualmente na versão 7.0.1, visa diminuir a escrita desses códigos repetitivos por meio de annotations. Seu uso é bastante simples, como veremos mais a frente.
Configurando
Para que se possa utilizar a biblioteca basta adicionar a seguinte linha de código nas dependências do build.grade e depois sincronizar o seu projeto:
|
|
Adeus findViewById
Exemplo básico de uso:
|
|
Como pode ser observado, a annotation @Bind
inicializa os componentes logo que ButterKnife.bind(this)
(linha 13) é chamado, não precisando usar o findViewById
. Código bem limpo e legível, não é? ;-)
Nota: para que o bind seja feito as variáveis não podem ser private
Pode-se também realizar o bind em Fragments:
|
|
A diferença do código anterior é que no caso de um Fragment a view é passada como parâmetro no método bind()
(linha 8).
Nesse caso deve-se realizar a desvinculação da view no onDestroyView()
com o ButterKnife.unbind(this)
, como mostrado no código acima.
Mas não é só com esses tipos de recursos que a biblioteca permite fazer bind. É possível inicializar strings, cores,etc.
|
|
Agrupar multiplas views em uma List ou array também é possível.
Nota: a ButterKnife utiliza geração de código em vez de reflection, uma abordagem bem melhor quando se fala em desempenho.
Listeners
Também podemos diminuir a escrita dos listeners utilizando a Butter Knife.
|
|
|
|
Com apenas uma linha de código inicializamos eventos em botões, itens de listas, etc. Bem legal. :-D
Bem, como vimos aqui a Butter Knife deixa o código muito mais organizado, legível e menor. Particularmente tem me ajudado muitos nos projetos que estou desenvolvendo. Ela possui bem mais recursos do que foi apresentado aqui. Então caso queira conhecer mais essa biblioteca, segue o link do site do projeto: http://jakewharton.github.io/butterknife/.
E o do projeto no gitHub: https://github.com/JakeWharton/butterknife.
Espero ter podido esclarecer e exemplificar aqui o uso desta biblioteca. Caso surjam dúvidas ou sugestões é só deixar o seu comentário.
Até mais.