[ TUTORIAL ] Android – AndroidAnnotations como configurar e utilizar

Cumprindo o que havia prometido no post anterior sobre o AndroidAnnotations, demonstrarei como configurar o ambiente para a utilização e como criar um “Hello World” através da anotações que ela nos disponibiliza dentro do Eclipse, e no final do post vou disponibilizar o código fonte de tudo que foi apresentado.

logo

Como expliquei no post anterior o AndroidAnnotations é uma library indicada para densevolvedores que já possuem experiência na plataforma Android, então aqui não explicarei detalhadamente como criar um “Hello World” no Eclipse, como declarar sua activity no AndroidManifest em resumo para seguir os passos seguintes você ja deve possuir um certo conhecimento prévio.

Vamos trabalhar com dois arquivos para configurar o nosso projeto, androidannotations-X.X.X-api.jar que são as classes que utilizaremos  durante o desenvolvimento e o androidannotations-X.X.X.jar que  será adicionado como processador de anotações.

  1. Crie um projeto de nome “MeuProjeto” com uma activity principal com o nome “MinhaActivity”.
  2. Baixe a library disponível no site: AndroidAnnotations, e descompacte-a no seu local de preferência. A versão atual é a 2.7.
  3. Coloque o arquivo androidannotations-X.X.X-api.jar dentro da pasta libs do projeto.
    Atenção é o arquivo que termina com -api, se você utilizar o outro não vai funcionar. E se a pasta libs não existir ( isso depende da versão do seu adt ) crie a mesma, e então coloque o arquivo dentro.
    passo3
  4. Crie uma nova pasta com um nome qualquer por exemplo “outros”, e coloque o arquivo androidannotations-X.X.X.jar dentro dessa pasta.
    passo4
  5. Clique com o botão direito em cima do projeto e entre na opção properties, va até Java Compiler e verifique se a opção Compiler compliance level está com valor 1.6, se não estiver altere para 1.6.
    Se isso não for feito o processador de annotations não será ativado corretamente.
    passo5
  6. Ainda dentro das propriedades do projeto vá até a opção Java Compiler > Annotation Processing e deixe a opção Enable annotation processing marcada.
    passo6
  7. Avance um nível e vá até a opção Java Compiler > Annotation Processing > Factory Path, e ative a opção Enable  project specific settings e adicione o .jar androidannotations-X.X.X.jar que deixamos dentro da pasta “outros”.
    passo7
  8. Confirme e de um clean nos projetos.
  9. Agora vamos adicionar o arquivo androidannotations-X.X.X-api.jar no Build Path. Clique com o botão direto nas propriedades do projeto va até opção Java Build Path, selecione a aba Libraries e então clique no botão Add Jars e adicione o arquivo androidannotations-X.X.X-api.jar  que está dentro da pasta libs.
    passo9

Se você fez tudo certo, nesse momento temos um projeto com o AndroidAnnotations configurado. Agora vamos começar a utilizar algumas anotações.

A seguir vamos registrar a “MinhaActivity” no AndroidManifest, injetar o layout da classe “MinhaActivity”, mostrar uma progress dialog,  criar uma thread e atualizar a tela depois de 5 segundos.

Considere o seguinte layout do arquivo xml minha_activity.xml e classe MinhaActivity.

annotations0

androidannotations1

Note que utilizamos cinco annotations diferentes da library, as quais são @EActivity, @ViewById, @AfterViews, @Background e @UIThread.

Logo acima da declaração da classe podemos notar a anotação @EActivity, que é responsável por vincular o layout a activity. Para que isso funcione, devemos alterar nosso arquivo Manifest adicionando um “_” no final da declaração da activity, só assim essa anotação funcionará corretamente, como mostra a figura a seguir.

manifest

Para receber os componentes da View, utilizamos a anotação @ViewById, atenção o nome da variável deve ser exatamente o mesmo que está declarado no arquivo xml que foi apresentado previamente.

Para obtermos um comportamento semelhante do onCreate utilizamos @AfterViews, que faz com que o método seja chamado após as injeções das views, é muito semelhante ao onCreate, e você pode realizar as operações iniciais da view nesse método, no nosso caso vamos inicializar e mostrar uma ProgressDialog e em seguida realizar um processamento “demorado” em background, através da chamada do método rodarBackground(), que por sua vez está anotado com @Background, o que faz com que todo o bloco seja executado em segundo plano. Um sleep de cinco segundos foi adicionado ao método para simular um trabalho demorado.

Depois de dormir por cinco segundos, no iniciamos o método atualizarTela(), que tem todo o seu bloco executado dentro da UI Thread porque está anotado com @UIThread. Dentro desse método fechamos nossa fucking dialog e atualizamos o texto do nosso TextView.

Caso de tudo errado o método mostrar erro é chamado para fechar a dialog e mostrar um Toast com a mensagem.

Para aqueles que desejam testar o que foi apresentado hospedei o código do projeto no 4shared: LINK

E ae o que achou? Pretty cool, huh?

Como o objetivo desse post é ensinar a configurar e criar um projeto com a library, não vou apresentar todas as anotações disponíveis, até porque não utilizei todas até o momento em meus projetos. Caso você tenha conhecimento em inglês e queria conhecer mais, a documentação oficial é muito completa, e está disponivel aqui.

Não conhece minha APP publicada no Google Play? Então veja esse post Como publiquei minha primeira aplicação no Google Play, ou então você até baixar ela gratuitamente aqui.

Espero ter ajudado, se você possui dúvidas ou sugestões poste nos comentários.

One thought on “[ TUTORIAL ] Android – AndroidAnnotations como configurar e utilizar

  1. Muito bom o seu artigo amigão, estou querendo deixar mais limpo a minha arquitetura, e meu código, estou também querendo utilizar no meu projeto que vou construir.

    mais se for muito complicado, gostaria de enviar dúvida,

    valeu

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>