SlideShare uma empresa Scribd logo
1 de 16
ANDROID ANNOTATIONS
Que sou eu?

Rodrigo Amora

Desenvolvedor Web
desde 2009

Desenvolvedor
Mobile desde 2011

Meu Apps Android:
http://goo.gl/Y7D9X

Meus Apps iOS:
http://goo.gl/sVpNU7
Contatos

Twitter: @RodrigoAmora

E-mail: rodrigo.amora.freitas@gmail.com

About.me: about.me/rodrigoamora
Sobre o Android Annotations
O AndroidAnnotations é um framework open-
source feito para facilitar e agilizar o
desenvolvimento Android através do uso de
anotações.
http://androidannotations.org/
@EActivity e @EFragment
Anotações que injetam o layout nas telas:
@EActivity(R.layout.activity_layout)
@EFragment(R.layout.fragement_layout)
@EActivity e @EFragment
Exemplos:
@EFragment(R.layout.my_layout)
public class MyFragment extends Fragment {
}
@EActivity(R.layout.activity_main)
public class MyActivity extends Activity {
}
@EActivity e @EFragment
Ao instanciar uma Acitivity ou Fragment anotada
ela deve ser chamada com “_” a direita.
Isso por que o AndroidAnnotations gera uma
subclasse da mesma.
MyActivity activity = new MyActivity_();
MyFragment fragment = new MyFragment_();
@EActivity e @EFragment
Isso também vale para o arquivo
AndroidManifest:
<activity
android:name=".MyActivity_"
android:label="@string/app_name" />
@ViewById
Injeta os componentes, faz o mesmo papel do
método findById(R.id.id_do_componente).
Exemplo:
@ViewById(R.id.btSave)
Button btSave;
@ViewById(R.id.tfName)
EditText tfName;
@AfterViews
Diz ao AndroidAnnotations qual método a ser
executado após a criação da Activity ou Fragment.
@AfterViews
public void facaAlgumaCoisa() {
//Implementação….
}
Interação com os componentesAnotações utilizadas para capturar os eventos
com os componentes:
@Click(R.id.id_do_componente) → Usado para
capturar evento de clique.
@DoubleClick(R.id.id_do_componente) →
Usado para capturar evento de duplo clique.
@ItemClick(R.id.id_do_componente) → Usado
em ListView e GridView para capturar o item
selecionado.
Interação com os componentes
Exemplos:
@Click(R.id.btSave)
public void save() {
//Implementação….
}
@Background
Anotação utilizada para realizar tarefas em
Background.
@Click
void save() {
saveInBackground(tfName.getText().toString());
}
@Background
void saveInBackground(String textToTranslate) {
//Implementação...
@EService
Anotação usada para classes quer herdam de Service.
@EService
public class MyService extends Service {
}
@SystemService
Injeta o System Service correspondente:
@SystemService
NotificationManager notificationManager;
@SystemService
LocationManager locationManager;
@SystemService
ConnectivityManager connectivityManager;
OBRIGADO

Mais conteúdo relacionado

Destaque

Fichadeinscriçãoprocessoseletivo2010
Fichadeinscriçãoprocessoseletivo2010Fichadeinscriçãoprocessoseletivo2010
Fichadeinscriçãoprocessoseletivo2010Fundarte
 
Caso # 2 posible apendicitis
Caso # 2 posible apendicitisCaso # 2 posible apendicitis
Caso # 2 posible apendicitisMocte Salaiza
 
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla FurquimDesenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla FurquimTchelinux
 
Design e empreendedorismo balaio design e comunicacao
Design e empreendedorismo balaio design e comunicacaoDesign e empreendedorismo balaio design e comunicacao
Design e empreendedorismo balaio design e comunicacaoBalaio Comunicação e Design
 
Introdução ao RecyclerView
Introdução ao RecyclerViewIntrodução ao RecyclerView
Introdução ao RecyclerViewRodrigo Amora
 
Lamina rua euclides da cunha, 1501
Lamina   rua euclides da cunha, 1501Lamina   rua euclides da cunha, 1501
Lamina rua euclides da cunha, 1501Master Comunicação
 
Patología testicular
Patología testicularPatología testicular
Patología testicularMocte Salaiza
 
Infiltrando Rails no Governo: Agile, Lean Startup e um case concreto no Gover...
Infiltrando Rails no Governo: Agile, Lean Startup e um case concreto no Gover...Infiltrando Rails no Governo: Agile, Lean Startup e um case concreto no Gover...
Infiltrando Rails no Governo: Agile, Lean Startup e um case concreto no Gover...Bruno Torquato
 
25 radiologia de la via biliar
25 radiologia de la via biliar25 radiologia de la via biliar
25 radiologia de la via biliarMocte Salaiza
 
Firewall Definitivo - William Souza
Firewall Definitivo - William SouzaFirewall Definitivo - William Souza
Firewall Definitivo - William SouzaTchelinux
 
Analise comparativa
Analise comparativaAnalise comparativa
Analise comparativapasseixas
 
11 ruptura prematura_de_membranas
11 ruptura prematura_de_membranas11 ruptura prematura_de_membranas
11 ruptura prematura_de_membranasMocte Salaiza
 
Educação e Cibercultura
Educação e CiberculturaEducação e Cibercultura
Educação e CiberculturaOsenita2008
 

Destaque (20)

Fichadeinscriçãoprocessoseletivo2010
Fichadeinscriçãoprocessoseletivo2010Fichadeinscriçãoprocessoseletivo2010
Fichadeinscriçãoprocessoseletivo2010
 
Caso # 2 posible apendicitis
Caso # 2 posible apendicitisCaso # 2 posible apendicitis
Caso # 2 posible apendicitis
 
Cnrhepatitis08
Cnrhepatitis08Cnrhepatitis08
Cnrhepatitis08
 
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla FurquimDesenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
Desenvolvendo Sistemas de Arquivos no FUSE - Luis Otávio de Colla Furquim
 
Design e empreendedorismo balaio design e comunicacao
Design e empreendedorismo balaio design e comunicacaoDesign e empreendedorismo balaio design e comunicacao
Design e empreendedorismo balaio design e comunicacao
 
Introdução ao RecyclerView
Introdução ao RecyclerViewIntrodução ao RecyclerView
Introdução ao RecyclerView
 
O ENVOLVIMENTO DOS TREINANDOS
O ENVOLVIMENTO DOS TREINANDOSO ENVOLVIMENTO DOS TREINANDOS
O ENVOLVIMENTO DOS TREINANDOS
 
Toxoplasmosis i
Toxoplasmosis iToxoplasmosis i
Toxoplasmosis i
 
Lamina rua euclides da cunha, 1501
Lamina   rua euclides da cunha, 1501Lamina   rua euclides da cunha, 1501
Lamina rua euclides da cunha, 1501
 
Patología testicular
Patología testicularPatología testicular
Patología testicular
 
Infiltrando Rails no Governo: Agile, Lean Startup e um case concreto no Gover...
Infiltrando Rails no Governo: Agile, Lean Startup e um case concreto no Gover...Infiltrando Rails no Governo: Agile, Lean Startup e um case concreto no Gover...
Infiltrando Rails no Governo: Agile, Lean Startup e um case concreto no Gover...
 
FinalDraft
FinalDraftFinalDraft
FinalDraft
 
Fases processo gilderlan ribeiro
Fases processo gilderlan ribeiroFases processo gilderlan ribeiro
Fases processo gilderlan ribeiro
 
25 radiologia de la via biliar
25 radiologia de la via biliar25 radiologia de la via biliar
25 radiologia de la via biliar
 
Firewall Definitivo - William Souza
Firewall Definitivo - William SouzaFirewall Definitivo - William Souza
Firewall Definitivo - William Souza
 
Analise comparativa
Analise comparativaAnalise comparativa
Analise comparativa
 
12 02
12 0212 02
12 02
 
Edital elson ribeiro
Edital elson ribeiroEdital elson ribeiro
Edital elson ribeiro
 
11 ruptura prematura_de_membranas
11 ruptura prematura_de_membranas11 ruptura prematura_de_membranas
11 ruptura prematura_de_membranas
 
Educação e Cibercultura
Educação e CiberculturaEducação e Cibercultura
Educação e Cibercultura
 

Semelhante a Android Annotations Framework

Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaJosué Rockefeller
 
Android - basic to advanced 1 - SENAI - MANAUS - Amazonas
Android -  basic to advanced 1 - SENAI - MANAUS - AmazonasAndroid -  basic to advanced 1 - SENAI - MANAUS - Amazonas
Android - basic to advanced 1 - SENAI - MANAUS - AmazonasDiogo Rafael da Silva
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneHenrique Perticarati
 
Criando aplicativos-para-dispositivos-moveis
Criando aplicativos-para-dispositivos-moveisCriando aplicativos-para-dispositivos-moveis
Criando aplicativos-para-dispositivos-moveisklaibert
 
Desenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapDesenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapMayron Cachina
 
Guia para o Profissional Android
Guia para o Profissional AndroidGuia para o Profissional Android
Guia para o Profissional Androidarmeniocardoso
 
Introdução à programação em Android SENAC 17.06.2013
Introdução à programação em Android SENAC 17.06.2013Introdução à programação em Android SENAC 17.06.2013
Introdução à programação em Android SENAC 17.06.2013guisester
 
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapAplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapThiago Colares
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISOs Fantasmas !
 
Introdução ao Desenvolvimento para Android
Introdução ao Desenvolvimento para AndroidIntrodução ao Desenvolvimento para Android
Introdução ao Desenvolvimento para AndroidMário Valney
 
Desenvolvimento de aplicativos para FirefoxOS
Desenvolvimento de aplicativos para FirefoxOSDesenvolvimento de aplicativos para FirefoxOS
Desenvolvimento de aplicativos para FirefoxOSElton Minetto
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Androidilegra
 

Semelhante a Android Annotations Framework (20)

Clever waymobile companyprofile
Clever waymobile companyprofileClever waymobile companyprofile
Clever waymobile companyprofile
 
Agora é Android, Tá Safo?
Agora é Android, Tá Safo? Agora é Android, Tá Safo?
Agora é Android, Tá Safo?
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma práticaAprenda a usar os recursos “câmera” do android, criando um app de forma prática
Aprenda a usar os recursos “câmera” do android, criando um app de forma prática
 
Android - basic to advanced 1 - SENAI - MANAUS - Amazonas
Android -  basic to advanced 1 - SENAI - MANAUS - AmazonasAndroid -  basic to advanced 1 - SENAI - MANAUS - Amazonas
Android - basic to advanced 1 - SENAI - MANAUS - Amazonas
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
Conhecendo o Android
Conhecendo o AndroidConhecendo o Android
Conhecendo o Android
 
Criando aplicativos-para-dispositivos-moveis
Criando aplicativos-para-dispositivos-moveisCriando aplicativos-para-dispositivos-moveis
Criando aplicativos-para-dispositivos-moveis
 
Mulheres na tecnologia 2015
Mulheres na tecnologia 2015Mulheres na tecnologia 2015
Mulheres na tecnologia 2015
 
Desenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapDesenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGap
 
Guia para o Profissional Android
Guia para o Profissional AndroidGuia para o Profissional Android
Guia para o Profissional Android
 
Introdução à programação em Android SENAC 17.06.2013
Introdução à programação em Android SENAC 17.06.2013Introdução à programação em Android SENAC 17.06.2013
Introdução à programação em Android SENAC 17.06.2013
 
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapAplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEISLIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
 
Aandroid Wear
Aandroid WearAandroid Wear
Aandroid Wear
 
Android FREETEC
Android FREETECAndroid FREETEC
Android FREETEC
 
Introdução ao Desenvolvimento para Android
Introdução ao Desenvolvimento para AndroidIntrodução ao Desenvolvimento para Android
Introdução ao Desenvolvimento para Android
 
Desenvolvimento de aplicativos para FirefoxOS
Desenvolvimento de aplicativos para FirefoxOSDesenvolvimento de aplicativos para FirefoxOS
Desenvolvimento de aplicativos para FirefoxOS
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Android
 

Android Annotations Framework

  • 2. Que sou eu?  Rodrigo Amora  Desenvolvedor Web desde 2009  Desenvolvedor Mobile desde 2011  Meu Apps Android: http://goo.gl/Y7D9X  Meus Apps iOS: http://goo.gl/sVpNU7
  • 4. Sobre o Android Annotations O AndroidAnnotations é um framework open- source feito para facilitar e agilizar o desenvolvimento Android através do uso de anotações. http://androidannotations.org/
  • 5. @EActivity e @EFragment Anotações que injetam o layout nas telas: @EActivity(R.layout.activity_layout) @EFragment(R.layout.fragement_layout)
  • 6. @EActivity e @EFragment Exemplos: @EFragment(R.layout.my_layout) public class MyFragment extends Fragment { } @EActivity(R.layout.activity_main) public class MyActivity extends Activity { }
  • 7. @EActivity e @EFragment Ao instanciar uma Acitivity ou Fragment anotada ela deve ser chamada com “_” a direita. Isso por que o AndroidAnnotations gera uma subclasse da mesma. MyActivity activity = new MyActivity_(); MyFragment fragment = new MyFragment_();
  • 8. @EActivity e @EFragment Isso também vale para o arquivo AndroidManifest: <activity android:name=".MyActivity_" android:label="@string/app_name" />
  • 9. @ViewById Injeta os componentes, faz o mesmo papel do método findById(R.id.id_do_componente). Exemplo: @ViewById(R.id.btSave) Button btSave; @ViewById(R.id.tfName) EditText tfName;
  • 10. @AfterViews Diz ao AndroidAnnotations qual método a ser executado após a criação da Activity ou Fragment. @AfterViews public void facaAlgumaCoisa() { //Implementação…. }
  • 11. Interação com os componentesAnotações utilizadas para capturar os eventos com os componentes: @Click(R.id.id_do_componente) → Usado para capturar evento de clique. @DoubleClick(R.id.id_do_componente) → Usado para capturar evento de duplo clique. @ItemClick(R.id.id_do_componente) → Usado em ListView e GridView para capturar o item selecionado.
  • 12. Interação com os componentes Exemplos: @Click(R.id.btSave) public void save() { //Implementação…. }
  • 13. @Background Anotação utilizada para realizar tarefas em Background. @Click void save() { saveInBackground(tfName.getText().toString()); } @Background void saveInBackground(String textToTranslate) { //Implementação...
  • 14. @EService Anotação usada para classes quer herdam de Service. @EService public class MyService extends Service { }
  • 15. @SystemService Injeta o System Service correspondente: @SystemService NotificationManager notificationManager; @SystemService LocationManager locationManager; @SystemService ConnectivityManager connectivityManager;