Agilidade e simplicidade, AndroidAnnotations!

Fiz um post no GUJavaSC há um tempo atrás referente a esse assunto. Porém, eu irei utilizar novamente esse framework em um projeto e resolvi me atualizar em relação as suas novas releases, ao qual receberam novas anotações.

Desse modo, em relação as principais anotações no meu ponto de vista, referente ao AndroidAnnotations, você pode ver neste link.

Você talvez possua um questionamento, que já irei esclarecer.

O AndroidAnnotations impacta na performance?
Segue a resposta dos criadores do AndroidAnnotations: “Short answer: no. AndroidAnnotations has a little compilation overhead (see how it works), but the generated classes are good old classic Android code. No reflection. No startup time, and no runtime impact.”

A seguir então, irei dar maiores detalhes de algumas das anotações possíveis a serem utilizadas em um projeto com AndroidAnnotations. Lembrando que as seguintes anotações: @EFragment, @EActivity, @ViewById, @Background, @UiThread e @Extra já foi comentado em um post que fiz no GUJavaSC. (Acesse aqui)

1) @EApplication
Utilizado em conjunto com a classe Application.
Exemplo de uso:

@EApplication
public class MyApplication extends Application {}

Também utilizado para injetar a classe Aplication dentro de um Bean ou Activity.

@App
MyApplication application;

2) @EBean
Recomenda-se o uso desta anotação em uma classe que não seja um componente do Android (tais como uma Activity ou Service).
Exemplo de uso:

@EBean
public class MyOtherClass {

@Bean
MyClass myClass;
}

Esta anotação, nesse momento, suporte dois escopos, que são:
Padrão: uma nova instância do bean é criado cada vez que um bean será injetado.
Singleton: uma nova instância do bean é criado na primeira vez em que for necessário. Em seguida, o bean é retido e a mesma instância é será compartilhada. (No escopo Singleton, cuidado com vazamento de memória caso você faça injeção de outros componentes no bean).

@EBean(scope = Scope.Singleton)
public class MySingleton {}

3) @EProvider
Utilizado em conjunto com o ContentProvider.
Exemplo de uso:

@EProvider
public class MyContentProvider extends ContentProvider {}

4) @EReceiver
Utilizado em conjunto com o BroadcastReceiver.
Exemplo de uso:

@EReceiver
public class MyReceiver extends BroadcastReceiver {}

5) @EService
Utilizado em conjunto com um Service.
Exemplo de uso:

EService
public class MyService extends Service {}

6) @EView e @EViewGroup
Utilizado em conjunto na customização de compontes View ou ViewGroup.
Exemplo de uso:

@EView
public class CustomButton extends Button {}

@EViewGroup(R.layout.title_with_subtitle)
public class TitleWithSubtitle extends RelativeLayout {}

7) @AfterExtras
Se você precisa executar código após a injeção de extras, você deve então usar a anotação @AfterExtras no metódo que você irá criar.

8) @ViewsById
Esta anotação é semelhante ao @ViewById, porém, ele injeta um conjunto de View. Ela pode ser utilizada nos campos que são subtipo de java.util.List ou android.view.View.
Exemplo de uso:

@EActivity
public class MyActivity extends Activity {

@ViewsById({R.id.myTextView1, R.id.myOtherTextView})
List textViews;
}

9) @OrmLiteDao
Esta anotação possui dois atributos obrigatórios:
– Helper, que deve ser a classe auxiliar no uso de banco de dados (a classe deve estender de com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper)
– Entidade, deve apontar para a entidade ao qual o DAO irá relacionar.
Exemplo de uso:

@EActivity
public class MyActivity extends Activity {
@OrmLiteDao(helper = DatabaseHelper.class, model = User.class)
UserDao userDao;
}

10) @OptionsMenu e @OptionsItem
Essas anotações dão suporte aos menus de opções em sua Activity ou Fragment.
@OptionsMenu: Permite especificar o recurso do menu a ser utilizado
@OptionsItem: Utilizado para anotar que receberão os eventos de seleção no item do menu.
Ambas as anotações podem ser usadas independentemente.

Nessa primeira parte, selecionei essas anotações. Assim que possível, tento atualizar esse post com mais detalhes e outras anotações.
Caso queira ter conhecimento de todas as outras anotações que o AndroidAnnotations possui, acesse esse link.

Espero que esse post lhe ajude com algo.

Tudo o que um sonho precisa para ser realizado é alguém que acredite que ele possa ser realizado. [Roberto Shinyashiki]

Anúncios

3 comentários sobre “Agilidade e simplicidade, AndroidAnnotations!

Obrigado pelo comentário.

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s