Este documento fornece uma lista de conteúdos recomendados para estudar o desenvolvimento Android, incluindo IDEs, layouts, persistência de dados, recursos de rede e mais. O modo recomendado de estudo é baixar os projetos de exemplo e segui-los no Android Studio à medida que o leitor aprende cada novo tópico.
2. INFORMAÇÕES IMPORTANTES
Na listagem estarão sendo indicados conteúdos já publicados no blog e conteúdos
complementares, principalmente da documentação do Android.
Até a metade de 2014 o Android Studio, hoje o IDE oficial de desenvolvimento
Android, não era a principal ferramenta de programação para está plataforma e sim o
Eclipse.
Mesmo sabendo disso, você deve seguir todos os artigos e vídeos indicados
utilizando o Android Studio.
No momento de programar, digo, quando você visualizar os vídeos e então notar que
é o IDE Eclipse sendo utilizado, continue, porém implemente o conteúdo com a sua
instalação do Android Studio, pois quase todos os conteúdos apresentados com o
Eclipse são apenas códigos com uso de APIs internas e lógicas de negócio facilmente
reproduzíveis no Android Studio.
Fique tranquilo quanto a instalação e configuração do Android Studio em sua
máquina, pois o primeiro conteúdo indicado na listagem para estudo é justamente
sobre este IDE, o passo a passo de como utiliza-lo.
3. MODO RECOMENDADO DE ESTUDO
Em todos os artigos indicados
é informado: ou o link para
acesso ao projeto completo
no GitHub; ou o link para
download do arquivo .zip que
contém o projeto.
Sempre busque fazer o
download do projeto e então
seguir com ele aberto no
Android Studio, utilizando a
opção "Open an existing
Android Studio project" no caso
de ser um projeto construído
no Android Studio:
4. Ou a opção "Import project (Eclipse ADT, Gradle, etc.)" no caso de um
projeto desenvolvido no Eclipse ou em outra ferramenta:
Assim você poderá ter, de maneira mais tangível, o código do projeto em
estudo. De qualquer forma, não deixe de também tentar a sua própria
implementação, fazendo com que a prática fixe o conhecimento.
5. Uma outra estratégia de estudo que indico é: você desenvolver algum projeto
que já tenha em mente ao mesmo tempo que vai aprendendo os conteúdos
nos artigos e vídeos.
Assim que for aprendendo a desenvolver para Android, com os conteúdos
indicados, veja se o assunto atual em estudo é aplicável a sua ideia e então,
caso sim, comece a desenvolver aquela parte do projeto.
❗ Importante: não deixe de ler todos os comentários de todos os artigos
indicados, incluindo os comentários das páginas dos vídeos noYouTube. Isso
mesmo quando você tiver entendido tudo, pois é provável que tenha algo útil
que ainda não captou, até mesmo respostas para algumas de suas dúvidas.
E, obviamente, se mesmo assim, lendo também os comentários, alguma dúvida
tenha persistido, não deixe de perguntar na página do artigo.
7. IDE PRINCIPAL PARA DESENVOLVIMENTO
- Android Studio: Instalação, Configuração e Otimização:
- Siga todo o texto e vídeo, pois terá também a parte de otimização do
IDE para ele executar de maneira eficiente em sua máquina. No
conteúdo indicado você pode seguramente ignorar o primeiro projeto
criado em Kotlin.
8. WARM UP
- Criando Um APP de Somar em Android:
- Um aplicativo bem simples sendo criado, tente reproduzir em seu
Android Studio.
- Liberando o Android do Seu Smartphone Para Programação:
- Caso o conteúdo do artigo acima não funcione para ti, devido a versão
do Android ser mais atual do que a apresentada em vídeo, faça o
seguinte.Acesse em seu aparelho real:
1. Settings (Configurações);
2. About phone (Sobre o dispositivo);
3. Build number (Nº de compilação).Aqui, clique sete vezes neste item.
Logo depois aparecerá uma mensagem similar a: "Modo de
desenvolvedor ativado".
9. LINGUAGEM DE DESIGN, PROTOTIPAGEM
E POLÍTICAS DE PRIVACIDADE
- Material Design;
- Como Criar Protótipos Android;
- Construindo a Política de Privacidade de Seu Aplicativo Android [Agora
Obrigatório].
10. APIS E RECURSOS BASE PARA OS
DESENVOLVEDORES
- Ciclo deVida de Uma Atividade no Android;
- Conhecendo o Arquivo AndroidManifest.xml;
- Entendendo a Classe R.java do Android:
- Apesar de não ter tanta importância hoje em saber sobre esta classe,
digo, importância como na época em que o Eclipse era o principal IDE
para desenvolvimento Android, onde o acesso a classe R era trivial, ainda
é inteligente saber o significado dela em um projeto Android.
- Classe Intent e o Conceito de Pilha em Android; Entendendo e Utilizando
IntentFilter no Android;
11. - Entendendo e Utilizando IntentFilter no Android;
- Passagem de Parâmetros de Uma Atividade Para a Outra em Android;
- Enviando e Recebendo Dados Entre Activities em Android;
- Otimizando Sua APP Android Com OnSaveInstanceState;
- onSaveInstanceState, Bitmap e Serializable no Android. Correção;
- Parcelable no Android, Entendendo e Utilizando:
- O Parcelable é ainda mais importante do que o Serializable, então,
mesmo com a facilidade do Serializable, busque sempre utilizar o
Parcelable.
- Entendendo a Thread Principal de Uma APP Android;
- runOnUiThread,Atalho de Acesso a Thread Principal no Android;
12. - Application Class no Android, Entendendo e Utilizando;
- Fragments no Android,Trabalhando com Múltiplas Activities;
- Ciclo deVida e Otimização de Fragments no Android;
- BroadcastReceiver no Android, Executando Tarefas no Background;
- Service no Android, Entendendo e Utilizando;
- Utilizando BindService com Service no Android;
- IntentService no Android, Entendendo e Utilizando;
13. - Entendendo e Utilizando a Classe Log Com o LogCat no Android:
- No Android Studio o LogCat se encontra, também, na aba inferior
"Android Monitor" (imagem abaixo). 💡 Recomendo que siga também o
conteúdo da documentação Android sobre o LogCat: Gravar e visualizar
registros com o Logcat.
14. - ContentProvider no Android, Entendendo e Utilizando;
- AccountManager no Android, Entendendo e Utilizando;
- Sistema de Permissões em Tempo de Execução,Android M;
- Assinando Uma APP Android e Publicando na Play Store:
- Atenção nesta parte, pois o artigo acima tem um conteúdo que muda
consideravelmente quando utilizando o IDE Android Studio ao invés do
Eclipse, logo, 💡 não deixe de acessar também o seguinte artigo da
documentação Android:Assinar o aplicativo;
- Para aqueles que estão iniciando: nunca perca o arquivo 🔑 .keystore
gerado para o APK de seu APP, caso contrário você não conseguirá
enviar um novo APK de atualização de aplicativo na Play Store.
15. A BASE DAS VISUALIZAÇÕES E LAYOUTS
- Entendendo e Utilizando o ConfigChanges no Android;
- View: Entendendo os ComponentesVisuais no Android;
- LinearLayout no Android, Entendendo e Utilizando;
- RelativeLayout no Android, Entendendo e Utilizando;
- Entendendo e Utilizando o FrameLayout no Android;
- ConstraintLayout, Melhor Performance no Android;
- FlexboxLayout Para Um Design Previsível No Android;
- TableLayout no Android, Entendendo e Utilizando;
16. - ScrollView e HorizontalScrollView no Android, Entendendo e Utilizando;
- ListView: Entendendo e Utilizando no Android;
- SimpleAdapter no ListView, Entendendo e Utilizando no Android:
- Apesar de colocar o SimpleAdapter aqui, vou ser franco contigo:
quase nunca utilizei ele, mas vejo muitos developers, principalmente os
que estão iniciando, o utilizando. Mesmo assim recomendo que use o
BaseAdapter, esta classe vai lhe dar maior poder de customização
sem uma perda significante, se é que existe alguma, de desempenho.
- Utilizando BaseAdapter Para Personalização Completa da ListView;
- GridView no Android, Entendendo e Utilizando;
- Spinner (ou Select) no Android, Entendendo e Utilizando;
17. - Style, String, Dimen, Color e WindowNoTitle no Android, Entendendo e
Utilizando;
- Suporte de Tela com Drawable DPI no Android:
- 💡 Para o conteúdo de suporte de tela também recomendo uma página
da documentação oficial do Android: Compatibilidade com várias telas.
- 9-Patch no Android, Mantendo a Qualidade de Imagens de Background;
- WebView no Android, Entendendo e Utilizando:
- Mesmo que eu tenha falado no artigo acima que o WebView é
somente para aqueles que não querem programar com o Java API, não
se engane com o potencial deste componente. Com o passar do tempo
percebi que muitos programadores que já trabalham com Android via
Java API ainda utilizam o WebView para as atividades de, por exemplo,
"Entrar em contato", disponibilizando o mesmo formulário de contatos
que tem na versão Web do app.
18. - Integrando WebView Android Com JavaScript de Uma WebPage;
- Monitoramento de Inicio e Fim de Carregamento de Página no WebView;
- VideoView no Android, Entendendo e Utilizando;
- VideoView ComVídeo Interno a APP Android;
- ImageSwitcher no Android, Entendendo e Utilizando;
- ViewPager no Android, Entendendo e Utilizando;
- ObjectAnimator no Android,Aplicando Efeitos nos ComponentesVisuais.
19. RECURSOS DO MATERIAL DESIGN
- Material Design;
- Toolbar, Material Design Android - Parte 1;
- RecyclerView, Material Design Android - Parte 2;
- Animação, onLongPress e GridLayoutManager em RecyclerView, Material
Design Android - Parte 3;
- Utilizando CardView, Material Design Android - Parte 4;
20. - Utilizando NavigationDrawer, Material Design Android - Parte 5:
- 💡 No conteúdo do artigo acima é importante que você entre também na
página da library utilizada no vídeo, digo, a página da library no GitHub (vai
ter o link no texto do artigo), pois a nova versão da MaterialDrawer
library teve atualizações consideráveis em termos de sintaxe.
- Material Dialog, Correção Bug StatusBar e Ações nos Fragments. Material
Design Android - Parte 7;
- Sliding Tabs Toolbar, Material Design Android - Parte 8;
- SwipeRefreshLayout e Snackbar, Material Design Android - Parte 9;
- Design Support Library e CollapsingToolbarLayout, Material Design Android -
Parte 11;
- Buscas Com SearchView e SearchRecentSuggestions. Material Design Android
- Parte 13;
21. - AppWidget. Material Design Android - Parte 14;
- Date e Time PickerDialog. Material Design Android - Parte 16;
- ContextMenu no RecyclerView. Material Design Android - Parte 17;
- Utilizando BottomSheet Material Design no Android;
- TextInputLayout e Envio de Email no Android com PHPMailer e AWS SES:
- Dê foco somente ao componente TextInputLayout, não se
preocupe com o conteúdo de rede e envio de email contido no artigo
acima, pois o contexto destes é outro e não atrapalha no entendimento
sobre o TextInputLayout.
22. PERSISTÊNCIA LOCAL
- SharedPreferences no Android, Entendendo e Utilizando:
- 💡 Recomendo também o conteúdo sobre uma API que facilita o
trabalho com o SharedPreferences: Segurança e Persistência
Android com a Biblioteca Hawk.Apesar de o projeto Android estar em
Kotlin, a API é passível de ser utilizada com Java.
- SQLite no Android, Entendendo e Utilizando;
- ORMLite no Android, Entendendo e Utilizando;
23. - Persistência de Dados Com Realm no Android - Parte 1:
- O conteúdo sobre o Realm é completamente opcional, mas vale
conhece-lo, principalmente devido a eficiência para gravar e recuperar
objetos.
- Persistência de Dados Com Realm no Android - Parte 2;
- Persistência de Dados Com Realm no Android - Parte 3;
- Persistência de Dados Com Realm no Android - Parte 4;
- Persistência de Dados Com Realm no Android - Parte 5;
- Migração de Dados. Realm Library no Android - Parte 6;
- Iniciando Base Realm Com Dados JSON - Parte 7.
24. RECURSOS DE REDE
- Carregamento e Cache de Imagem Com Universal Image Loader no Android;
- Lib Fresco Para Carregamento de Imagens (com GIFs e WebPs Animados).
Material Design Android - Parte 12:
- Ignore o contexto do artigo acima e foque apenas no entendimento de
como configurar e utilizar a API Fresco.
- Parser JSON no Android, Entendendo e Utilizando;
- Library Retrofit 2 no Android;
- AsyncTask no Android,Acesso a Thread Principal de Forma Otimizada:
- Apesar de eu utilizar o Retrofit para quase todas as necessidades de
rede, vejo que muitos programadores ainda preferem o AsyncTask, que
é um outro excelente recurso.
25. - Input File no WebView Android:
- Apesar do artigo acima referenciar um problema específico no
WebView, vi ele como sendo também um conteúdo de rede, pois o
problema em si é sobre envio de dados na rede (solucionado com o
Retrofit).
- Volley, Gson e RetryPolicy em Material Design Android Série APP:
- A API Volley foi colocada aqui somente devido ao uso dela no artigo
do próximo item, relativo ao ListView, pois sempre indico o Retrofit
ante ao Volley, este último não mais é mantido.
- Carregando Dados no ListView Com OnScrollListener eVolley no Android.
26. RECURSOS DE COMUNICAÇÃO INTERNA E
APIS PARA MELHORIAS DE FUNCIONALIDADES
- EventBus Lib, Comunicação Entre Entidades Android:
- Não deixe de acessar a página da library, página que é indicada no
conteúdo do artigo acima. Recomendo isso, pois a API passou por
evoluções.
- Como Utilizar o LocalBroadcastManager Para Comunicação no Android:
- 💡 Esta é a API que recomendo ante ao uso do EventBus, pois permiti
as mesmas funcionalidades e é uma entidade interna ao Android, não
haverá necessidade de referências externas como no caso do EventBus.
- 3 Estratégias Para Informar Sobre Uma NovaVersão de Seu Aplicativo
Android;
27. - DialogFragment no Android, Entendendo e Utilizando;
- ExpandableListView no Android, Entendendo e Utilizando;
- AutoCompleteTextView no Android, Entendendo e Utilizando;
- Box de Informação Com PopupWindow no Android;
- ConstruindoView Personalizada no Android;
- Slides no Android Com a Lib AndroidImageSlider;
- TextJustify Lib Com SpannableString no Android;
- Linkify no Android, Entendendo e Utilizando;
- TextToSpeech: Fazendo Sua APP Android Falar;
- Como Utilizar Spannable no Android Para Customizar Strings;
28. - Fonts Personalizadas no Android Com a Classe Typeface;
- Fontes em XML,Android O. Configuração e Uso:
- Tanto o conteúdo do link acima como os dos próximos links estão com
projetos desenvolvidos em Kotlin, mas todas as APIs utilizadas são
também passíveis de trabalho com o Java.
- Definindo Fontes em Trechos Não Triviais do Android;
- Facilitando o Desenvolvimento de Apps Android Com a Biblioteca
AndroidUtilCode;
- Colocando Telas de Introdução em Seu Aplicativo Android.
29. ALERTAS, NOTIFICAÇÕES E MENSAGENS
PUSH
- AlarmManager no Android, Sua APP Executando Em Tempos Definidos;
- JobScheduler API no Android, Entendendo e Utilizando;
- GCMNetworkManager Para Execução de Tarefas no Background Android;
- FCM Android - Domínio do Problema, Implementação e Testes Com
Servidor de Aplicativo [Parte 1];
- FCM Android - Relatório e Notificação Por Tópicos [Parte 2];
- FCM Android - Notificação Personalizada com NotificationCompat [Parte
3];
30. - OneSignal Para Notificações em Massa no Android:
- Se não precisa identificar, via código backend Web, quem são os usuários
que devem receber a notificação, utilize o OneSignal, esta API tem a
configuração simples e é fácil de utilizar.
- Notificação de Engajamento Pelo Firebase Console - Parte 12.
31. MONETIZAÇÃO
- Vendendo Produtos e Inscrições Com Google In-App Billing no Android:
- No vídeo falo sobre o absurdo que é o Google ficar com 30% dos
valores praticados não somente com o In-App Billing, mas também com
os APPs pagos na Play Store. Na verdade esse valor é retido para
pagamento de taxas que o Google tem de fazer, ou seja, nenhuma fatia
desses 30% fica com a empresa do famoso buscador.
- Checkout Transparente da Web no Android:
- Note que o uso de alguma API Web de checkout transparente no
Android somente pode ocorrer para produtos físicos. Para liberação de
funcionalidades e outros "apetrechos digitais" do aplicativo, somente
pode ser utilizado o In-App Billing, respeitando assim os termos e
condições de uso do Google Android.
32. - Monetização Eficiente no Android com AppOdeal;
- Estratégia de Anúncios com In Loco Media no Android;
- AppNext para Monetizar sua APP Android;
- Como Também Monetizar Usuários Inativos de Seu Aplicativo Android.
33. OTIMIZAÇÃO DE PERFORMANCE
- Proguard Android;
- Lint Tool Para Alta Performance em APPs Android;
- Tags Merge eViewStub Para Otimizar Sua APP Android;
- Injeção de Dependência Com a lib Dagger 2 no Android;
- AndroidAnnotations, Entendendo e Utilizando.
34. PADRÃO E API DE ARQUITETURA
- MVP Android;
- ViewModel Android, Como Utilizar Este Componente de Arquitetura:
- O conteúdo do artigo acima está em Kotlin, mas todas as APIs em uso
podem seguramente ser utilizadas também com o Java.
35. APIS DE MÍDIAS SOCIAIS
Nos conteúdos indicados a seguir, muitas APIs de mídias sociais estão dentro
de contextos que são independentes ao entendimento delas, logo,
seguramente assista, ou leia, somente até a configuração final da API em
estudo:
- Facebook Login, Firebase Android - Parte 5;
- Google SignIn API, Firebase Android - Parte 6;
- Twitter Login (Fabric), Firebase Android - Parte 7;
- GitHub Login, Firebase Android - Parte 9;
36. - LinkedIn Login com SocialAuth Library no Android:
- 💡 Para utilizar o SocialAuth não deixe de referenciar a versão mais
atual, indicada na página dele no GitHub: socialauth-android.
- API doYouTube na APP Android, Iniciando:
- 💡 Coloquei o conteúdo sobre a API doYouTube aqui, pois sei da
importância dessa API caso você tenha vídeos em seu aplicativo. Mas
também sei que parte da sintaxe da versão da API abordada no vídeo
está depreciada, logo, não deixe de acessar a página oficial dela em:
YouTube Android Player API.
37. APIS DE MÍDIAS SOCIAIS
- Google MapsV2 no Android, Inicio e Configuração:
- 💡 Não deixe de acessar a nova versão da API de Maps em: Google Maps
Android API.
- GoogleMap e CameraPosition no Android, Entendendo e Utilizando;
- Markers e Listeners no Google Maps Android;
- Polyline, Geocoder e Distância no Google Maps Android;
- Obtendo e Apresentando Rotas no Google Maps AndroidV2;
- GPS,Triangulação de Antenas e LocationSource no Android;
- Obtendo Localização Com Location API no Android - Parte 1;
38. - Location API no Android,Atualização de Localização - Parte 2;
- Obtendo Endereços Com Geocoder em Location API Android - Parte 3;
- Tracking Com Location API, JobScheduler e Google MapsV2 no Android -
Parte 4:
- Apesar da apresentação do JobScheduler no conteúdo do artigo acima,
recomendo o uso do GcmNetworkManager, pois ele é bem mais simples
e eficaz em versões do Android abaixo da API 21.
- Busca Por Locais Próximos, Location API Android - Parte 5;
- Iniciando com Mapbox Android SDK - Parte 1:
- O MapBox, mesmo sendo pago, vale a pena conhecer.
- Customização Com Mapbox Studio,Android - Parte 2.
39. Apesar de ter no Blog conteúdos sobre o OpenStreetMap, não o coloquei
aqui, pois eu mesmo não o utilizo, mas caso não queira pagar a Business License
do Google para poder utilizar o Android Maps comercialmente, você
encontrará os vídeos do OpenStreetMap, ordenados corretamente, na
Play List a seguir: Geolocalização no Android.
40. CONTEÚDOS ESPECÍFICOS DE DOMÍNIO
DO PROBLEMA
- Como Implementar o Account Kit Login em Seu Aplicativo Android;
- Como Construir Aplicativos Android Com HTML e JSOUP;
- Como Colocar Notificações Bolha em Seu Aplicativo Android;
- API de Endereços Para Pré-Cadastro em APPs Android - Parte 1;
- API de Endereços Para Pré-Cadastro em APPs Android - Parte 2;
- Chronometer no Android, Entendendo e Utilizando;
- Contagem Regressiva no Android com CountDownTimer;
41. - MediaPlayer no Android, Entendendo e Utilizando;
- Metadados com MediaMetadataRetriever no Android;
- Integrando o Leitor de QRCode ZXing no Android:
- 💡 Old! Coloquei aqui mais para você ir direto as libraries mais atuais
em: ZXing no Android Arsenal.
- Vibrator e HapticFeedback no Android, Entendendo e Utilizando;
- Parser RSS / Atom com a lib Rome no Android:
- 💡 Para este artigo, não deixe também de visitar as libraries RSS do
Android Arsenal.
- Drag e Drop no Android, Entendendo e Utilizando;
42. - Edição de Imagem no Android Com Adobe Creative SDK:
- 💡 A library do conteúdo do link acima sofreu algumas alterações, então
não deixe de ler os comentários no artigo e na página do vídeo no
YouTube, além de acessar a documentação do Creative SDK.
- Persistência Com Firebase Android - Parte 1:
- Para que você saiba que não precisa de uma infraestrutura "backend
convencional" somente para ter dados compartilhados, remotamente,
com uma boa qualidade.💡 Também sobre o conteúdo do Firebase, não
deixe de acessar o tutorial de migração de código em: Upgrade your
Android app from Firebase.com. Isso, pois enquanto eu construía a Play
List do Firebase no canal do Blog, no Google I/O 2016 foram anunciadas
várias mudanças para este conjunto de APIs.
- PDF no Android:
- O projeto Android do conteúdo acima está em Kotlin, porém as APIs em
uso são passíveis de serem utilizadas também com o Java.
43. ESTUDO DO KOTLIN
- Kotlin Android, Entendendo e Primeiro Projeto;
- Iniciando com Anko Kotlin. Intenções no Android;
- Como Utilizar os Operadores IN e Elvis e a API Parcelable no Kotlin
Android.
45. Com o estudo dos conteúdos listados anteriormente, você poderá seguir com suas
"próprias pernas" no mundo do desenvolvimento de aplicativos Android.
Além do Blog e do Canal noYouTube, outros links que recomendo você
acompanhar estão listados no artigo a seguir: Sites, Canais e Blogs Gringos Para
Estudar Desenvolvimento Android.
E também nunca descarte a opção de primeiro buscar conteúdos na
documentação oficial do Android:Android Developers.Alguns dos conteúdos da
documentação já estão em português.
Note que aqui não tem todos os artigos publicados no Blog referentes ao dev
Android. Para acesso a todos, de forma não ordenada, entre no link a seguir:
Android Blog Thiengo Calopsita.
Qualquer dúvida ou sugestão, deixe nos comentários logo abaixo. Este artigo (as
listas) será atualizado de acordo com os novos conteúdos disponibilizados no Blog.
E não deixe de se inscrever na lista de emails do Blog, e confirmar sua
inscrição, para receber em primeira mão os conteúdos exclusivos sobre o dev
Android.