Desenvolvendo Android, por onde começar?

Uma das coisas mais difíceis ao começar a estudar Android é saber por onde começar. Este post é dedicado aos desenvolvedores que estão começando a estudar a plataforma Android. Aqui você terá dicas de documentação, tutoriais, vídeo aulas e tudo que precisa saber para trilhar o melhor caminho no desenvolvimento Android.

Entenda o Android

Desde que teve seu lançamento o Android tem passado por algumas mudanças. Houveram melhorias de ferramentas para desenvolvedores, como criação do Android Studio, melhorias de funcionalidades, como toolbar, menus, Drawers, houveram melhorias de performance, e melhorias de design como o Material Design, ou seja, trata-se de uma plataforma que vive em constantes melhorias. Para trabalhar com o Android é preciso estar em constante atualização, devido às mudanças que ocorrem na plataforma.

A Documentação Oficial do Android

O Google é bem focado em boas práticas, tanto de design como programação, visando uma plataforma de excelência, que ofereça uma boa experiência de usuário e usabilidade. Pensando em todas estes conceitos, o Android possui um site que contempla toda a documentação do SDK como classes e interfaces que podem ser utilizadas para desenvolver. O site está dividido em algumas abas para facilitar o entendimento.

Design — Contém diversos conceitos de design e padrões recomendados.

Distribute — Contém informações de distribuição do App, como reengajar usuários, ferramentas, entre outros.

Develop — Contém documentação de classes e interfaces (Reference), Guias que contém explicação sobre componentes e funcionalidades (API Guides), treinamentos passo a passo (Training), Códigos de exemplo (Samples), ferramentas (tools) e Biblioteca do Google Services.

Training

É uma seção que fez parte do início de diversos desenvolvedores na plataforma Android, e acredito que seja o melhor lugar para iniciar os estudos (http://developer.android.com/training/index.html). Ela possui diversos treinamentos, que mostram passo a passo como conseguir desenvolver a funcionalidade desejada. A parte de "Lessons" contém todas as lições necessárias para aprender a funcionalidade. Além disto é possível nos treinamentos baixar exemplos para serem abertos no Android Studio. Veja a figura abaixo:

Este treinamento conta também com trechos de código como mostra a figura abaixo:

API Guides

Esta seção contém uma explicação mais teórica a respeito de componentes, eventos e funcionalidades. É importante, além de saber usar alguma funcionalidade, entender seu verdadeiro propósito e como o sistema Android solicita que você lide com ela. A figura abaixo mostra uma explicação sobre listeners.

Tools

A seção tools é para promover ao desenvolvedor conhecimento das ferramentas existentes no desenvolvimento Android, que variam desde a própria IDE Android Studio quanto ferramentas de otimização de performance e testes.

Google Services

Algumas funcionalidades do Android necessitam de integração com a API do Google Play Services, algumas bem conhecidas como Maps e Google Plus até Drive e Ads.

Samples

Esta seção traz exemplos para serem baixados e abertos no Android Studio, assim o desenvolvedor poderá, ao ver o código, entender cada trecho de código.

Reference

Esta seção é uma das mais importantes da documentação, isto se não for realmente a mais importante. Aqui está descriminado a documentação de cada classe usada no desenvolvimento Android.

Para um melhor entendimento vou explicar cada pedaço desta tela. Ao lado esquerdo estão listadas todas as classes, e é possível selecionar a API desejada, que irá listar as classes presentes em determinada versão do Android.

Na parte superior é possível verificar o tipo de classe, nome, código e heranças, ou seja, de quais classes que a classe desejada está herdando propriedades.

O item class overview é uma pequena explicação da classe, qual o seu verdadeiro propósito e situações onde é utilizada.

Summary contém um resumo de todas as constantes, construtores e métodos presentes na documentação da classe, se clicar em algum já será direcionado para o item selecionado. O restante é a documentação de cada item em si.

Com certeza, a documentação oficial é o primeiro lugar onde um desenvolvedor deve buscar informação a respeito do Android. O conteúdo está sempre atualizado com as melhores práticas para cada funcionalidade ou componente. E o fato de existirem exemplos e guias facilita o entendimento de quem está começando.

Material Design

O material design foi incorporado ao Android no ano de 2014 durante o Google IO (evento onde são anunciados diversos lançamentos dos produtos Google). Anteriormente ao material design não existia um padrão de design para as aplicações Android, então basicamente cada aplicativo era de um jeito, o material design foi uma forma de padronizar as aplicações, pois ele não contém só conceitos de design como também conceitos de usabilidade e melhorias na experiência de usuário.

Ao começar a pensar em uma aplicação e seus componentes é interessante ver como deve se comportar cada componente, e como utilizá-lo da forma mais correta possível.

O site https://www.google.com/design/spec/material-design/introduction.html contém toda documentação de material design que é recomendada a ser utilizada nas aplicações, tanto em smartphones quanto smartwatches e aplicações desktop. O material é de fácil entendimento.

Este site está super bem estruturado para fornecer toda informação necessária na hora de projetar os componentes, lidar com ações e interações com o usuário.

O menu esquerdo contém os itens que estão descritos na documentação de material design. Além de mostrar conceitos de material design é mostrado também detalhes relacionados a dimensões e espaçamentos, como mostra a figura abaixo.

Outro ponto relevante desta documentação é que é mostrado maneiras corretas e erradas de implementar, assim é possível saber se você está pensando da maneira correta.

Curso online Udacity

O Google possui uma parceria com uma plataforma de cursos online em vídeo, o Udacity. Todos os cursos relacionados a Android são gratuitos e possuem uma interação com o aluno, que responde a perguntas e e pode ir codificando junto com as aulas.

Aconselho a começar pelo mais básico para iniciantes (https://www.udacity.com/course/android-development-for-beginners--ud837), e caso você se interesse há diversos outras video aulas que é possível você assistir. Veja a figura abaixo.

AndroidDevBr no Slack

O Slack é uma aplicação, tanto desktop quanto mobile, que permite troca de mensagens que podem ser privadas ou entre equipes, permite postagem de links e fotos. O slack foi inspirado em uma antiga plataforma de troca de mensagens: o IRC, que possuía canais de conversação e mensagens privadas.

Existe um grupo de desenvolvedores Android que contém desde dev's juniors que estão começando android até os mais avançados níveis de desenvolvedores brasileiros. E todos aplicam muito bem o conceito de comunidade: estar ali para ajudar.

Tenho visto muitas pessoas que participam estarem crescendo em termos de conhecimento ao participar do grupo. Atualmente no grupo temos 800 desenvolvedores Android, para participar é preciso entrar no seguinte link: http://slack.androiddevbr.org

Aí é só adicionar cada canal que desejar como android, design, animations, tests, learn e muitos outros disponíveis.

Google Developers Group

Os GDG's são grupos incentivados pelo Google, que possui intuito de disseminar conhecimento através de encontros, palestras, mesa redonda, enfim diversos eventos para incentivar pessoas a conhecerem e se aprofundarem nas tecnologias Google.

Existe GDG's em diversas cidades do país e do mundo, basta dar uma olhada neste site para ver se existe um por perto. https://developers.google.com/groups/directory/

Todos os eventos são totalmente gratuitos.

Android Developers no Youtube

O Android developers possui uma série de videos no Youtube, que mostram desde padrões à funcionalidades adicionadas na plataforma. Vale a pena também dar uma olhada lá.

Literatura

Em se tratando de uma plataforma que evolui na velocidade da luz, e com tanto conteúdo online, a grande maioria dos desenvolvedores opta por conteúdos online. Mas existem livros muito bons a respeito de desenvolvimento Android. Eu indico dois principais, e estão em português: Dominando o Android (Nelson Glauber) e Google Android (Ricardo Lecheta). Na minha opinião são os melhores livros atualmente. Vale a pena relembrar que é preciso olhar o ano de edição, pois devido a ter diversas mudanças indico sempre ler algo mais atual.

Android Arsenal

Algumas funcionalidades no Android não são tão fáceis de implementar, e pensando em facilitar a vida do desenvolvedor outros desenvolvedores criam bibliotecas, que podem estar ligadas a componentes, funcionalidades, ou até mesmo alguma facilidade que seja útil aos demais desenvolvedores. O site Android Arsenal possui muito conteúdo de bibliotecas que podem ser baixadas, e muitas delas podem ser adicionadas diretamente como uma dependência no projeto (no arquivo build.gradle). O link do site é https://android-arsenal.com/

Mais dicas

As vezes, quando começamos a desenvolver em uma linguagem nova, nos sentimos bem perdidos, porque há muita coisa e pouco tempo. Mas com certeza a maneira mais fácil de desenvolver para Android é praticando. Dessa forma irá fixar de maneira mais rápida cada conceito aprendido nos links que foram passados neste post.

Participar de eventos ligados a Android também ajudará, e muito, a imergir nesse mundo mobile, além de aumentar a rede de contatos. O Android nasceu no conceito de comunidade, existem muitos devs dispostos a ajudar quem está começando.

Ler e estudar sempre. A área de T.I. exige um pouco de dedicação, mas isso não precisa ser sofrido (a não ser que você queira). Existem diversos blogs na internet além do próprio blog do Android developers http://android-developers.blogspot.com.br/ trazendo sempre novidades da plataforma Android.

No mais, é por a mão na massa e praticar, espero que tenha ajudado quem está começando e ainda está se sentindo perdido. E desejo uma boa sorte a todos.

Nota: Este artigo obteve ajuda de diversos desenvolvedores que pertencem ao grupo do Slack AndroidDevBr. Todas as menções deste artigo estão baseados em experiências reais vividas por desenvolvedores que trabalham com a plataforma Android. Conforme já mencionado este artigo é um guia para quem está começando, mas não são necessariamente regras. Tenha sempre em mente a necessidade de aprender cada vez mais, assim estará sempre a frente.