Desenvolvedor Android: 8 habilidades essenciais para você se tornar um
Em 2017, o Android tornou-se o sistema mais usado em smartphones em todo o mundo. O cenário, portanto, atraiu desenvolvedores, ávido por criarem aplicativos para o sistema. Construir aplicativos para Android, contudo, requer um certo nível de conhecimento de programação e design. A observação é da Mastertech, startup que capacita talentos para o futuro da tecnologia.

Se você já é um desenvolvedor web, muitos dos conceitos e tecnologias envolvidos no desenvolvimento do Android serão análogos a coisas que você já conhece. Apesar disso, a criação de aplicativos para dispositivos móveis geralmente exija o domínio de vários conceitos com mais nuances.
Os dispositivos móveis têm telas menores, processadores mais simples. No caso do Android, muitos fabricantes diferentes, o que significa que os desenvolvedores precisam manter o código flexível e representar uma variedade de cenários de usuário.
Então, o que é preciso para se tornar um desenvolvedor Android de qualidade? A Mastertech listou algumas observações importantes:
1. Java
Java é a linguagem que sustenta todo o desenvolvimento para Android. Para aqueles que ganharam a maior parte da sua experiência de codificação em linguagens como JavaScript e Ruby, pode haver uma curva de aprendizado ao visualizar o Java pela primeira vez.
O Java, como o JavaScript e o Ruby, é orientado a objetos, mas também é mais rigoroso quanto ao modo como manipula os tipos de dados. Os desenvolvedores precisam ser muito mais cuidadosos com seu código, definindo os tipos de dados com os quais seus aplicativos planejam trabalhar e alocando com mais cuidado recursos de memória escassos.
Você não pode se dar ao luxo de ter ambiguidade em um ambiente móvel, e o Java garante que não haja confusão sobre o que cada componente do seu aplicativo está tentando fazer. Você acaba escrevendo menos código, mas seu código é mais elegante e preciso.
2. Compreensão do XML
O XML foi criado como uma maneira padrão de codificar dados para aplicativos baseados na internet. É uma linguagem de marcação estruturada, compartilhando muitos recursos em comum com o HTML.
Você pode reconhecer os colchetes angulados, os tipos de tag
Os desenvolvedores também podem escrever código Java que modifica elementos de layout quando o aplicativo já está em execução, da mesma forma que os desenvolvedores web usam JavaScript para modificar os elementos em seu site em tempo de execução, mas dominar os fundamentos do XML é uma habilidade importante para desenvolvedores Android.
3. Android SDK
SDK significa Software Development Kit, que, embora possa criar imagens de uma pasta cheia de ferramentas de espião, é, na verdade, apenas um nome sofisticado para um conjunto de códigos pré-empacotados. Os SDKs do Android são módulos de código Java que dão aos desenvolvedores acesso às funções do dispositivo, como a câmera e o acelerômetro.
Um dos principais componentes do Android SDK é uma biblioteca chamada Gradle. Digamos que você queira integrar o Facebook ao seu aplicativo. Você faria o download de uma biblioteca de códigos (ou SDK) do Facebook e informaria à Gradle que você a está usando, para que, quando seu aplicativo for compilado, seu código permaneça bem organizado.
Os novos desenvolvedores do Android passarão muito tempo descobrindo como os vários SDKs do Android podem ser reunidos de diferentes maneiras para criar um aplicativo. Embora isso leve algum tempo, cada SDK do Android vem com muitos exemplos que podem ser encontrados na documentação oficial, facilitando a compreensão do que cada pacote faz e como conectá-lo ao seu aplicativo.
4. Android Studio
O ambiente de desenvolvimento integrado (IDE) escolhido pelos desenvolvedores do Android é chamado de Android Studio. O Android Studio é construído sobre o bem-sucedido IDE do IntelliJ e vem com excelente suporte para muitos dos SDKs Android mais comuns. O Android Studio também apresenta muitos dos recursos que os desenvolvedores esperam de um IDE completo.
A conclusão de código ajuda a fazer sugestões de preenchimento automático conforme você digita. Os depuradores de código permitem percorrer o código para identificar a origem dos erros. Existem ferramentas ainda mais avançadas, como monitores de memória e CPU, ajudando os desenvolvedores a garantir que o código mantenha um alto desempenho em um dispositivo móvel. O Android Studio é obrigatório para o desenvolvedor Android.
5. API
Como desenvolvedor Android, você provavelmente desejará interagir com muitos outros serviços. Por exemplo, pode permitir que seus usuários acessem um calendário de um serviço de terceiros ou verifiquem o mercado de ações. Muitas empresas oferecem APIs e informam exatamente como consultá-las para obter dados de maneira consistente e segura.
Embora você esteja livre para interagir com qualquer API existente, o Google também facilita a conexão com as próprias APIs do seu aplicativo para Android. Por exemplo, você pode usar facilmente as APIs do Google para monitorar a localização de seus usuários, permitir que eles pesquisem locais e fazer referência a um mapa de dentro de seu aplicativo. Você deve se sentir à vontade para explorar as nuances de diferentes APIs e reconhecer que não há duas APIs exatamente iguais.
6. Bases de dados
Se o seu aplicativo lida com grandes quantidades de dados, a maioria provavelmente não será exibida em seu dispositivo a qualquer momento. Em vez disso, seu aplicativo provavelmente interagirá com um banco de dados que esteja fora do seu telefone. Serviços em nuvem, como o Firebase ou o Parse, fornecem APIs simples para armazenar dados na nuvem e disponibilizá-los em vários dispositivos.
Essas plataformas também costumam fornecer bibliotecas Java que você pode conectar ao seu aplicativo, facilitando o armazenamento em cache de alguns dados no dispositivo do usuário. Essa sincronização de dados entre o armazenamento local e o banco de dados remoto é importante se você quiser permitir que os usuários usem o aplicativo quando estiverem off-line.
Outra maneira de armazenar dados localmente é através do suporte integrado do Android para usar o SQL para interagir com um banco de dados SQLite. No entanto, se você escolher manipular dados em seu aplicativo, precisará explorar e entender como os bancos de dados funcionam e as formas de consultar esses dados e usá-los no seu aplicativo.
7. Design Material
Em contraste com concorrentes como a Apple, o Google não mantém historicamente uma estética de design consistente em seus produtos. Nos últimos anos, isso mudou. O Google lançou um conjunto de diretrizes e padrões de interface inovadores chamado Material Design, que estão sendo implementados em todos os seus produtos.
Esses padrões incluem dicas sobre como colocar vários elementos na tela e usar estilos específicos, como sombreamentos. Você provavelmente já viu o Material Design na vida real se usou o novo aplicativo do Google Drive ou o novo aplicativo Inbox by Gmail no celular. Embora não seja obrigatório, o Google recomenda que os desenvolvedores do Android usem essas diretrizes como base para suas próprias interfaces de usuário. A documentação online fornece uma grande compreensão básica dos princípios do design material.
8. Uma boa ideia
Como qualquer outro produto que você criar, a boa execução só será eficaz se você estiver trabalhando em um projeto que os usuários realmente achem útil. Antes de começar a criar qualquer aplicativo para dispositivos móveis, reserve um tempo para anotar suas hipóteses. Quem usará seu aplicativo e qual problema resolverá?
Em seguida, crie seu aplicativo usando uma ferramenta como Balsamiq ou Sketch e mostre-o para as pessoas de seu público-alvo. Obtenha o feedback deles sobre a ideia e esteja disposto a interagir enquanto recebe conselhos. Aprenda a deixar de lado seu medo de feedback e espere para repetir sua ideia ao criar seus primeiros aplicativos Android.
7 dicas para melhorar suas habilidades de desenvolvimento Android – Acervo Lima
O Android é um sistema operacional construído basicamente para telefones celulares. É baseado no kernel do Linux e outro software de código aberto e é desenvolvido pelo Google. Ele é usado para dispositivos móveis com tela de toque, como smartphones e tablets. Mas hoje em dia, eles são utilizados em carros Android Auto, TV, relógios, câmeras, etc. O Android tem sido um dos sistemas operacionais mais vendidos para smartphones. O sistema operacional Android foi desenvolvido pela Android Inc., que o Google comprou em 2005. Vários aplicativos, como jogos, reprodutor de música, câmera, etc., são desenvolvidos para esses smartphones rodarem no Android. A Google Play Store possui 3,3 milhões de aplicativos.
Hoje, o Android continua a dominar em escala global. Aproximadamente 75% da população mundial prefere usar o Android contra 15% do iOS. É um sistema operacional que possui um grande mercado de aplicativos. No artigo 8 Habilidades indispensáveis para se tornar um desenvolvedor de aplicativos Android, discutimos as habilidades necessárias para se tornar um desenvolvedor de aplicativos Android, mas é um bom hábito melhorar suas habilidades em intervalos regulares. Portanto, neste artigo, vamos discutir “ Dicas para melhorar suas habilidades de desenvolvimento Android “.
Aprimore as habilidades de desenvolvimento do Android
1. Siga a tendência, mas pense de forma única
Você tem que seguir a tendência contínua. Mas lembre-se de que milhões de pessoas também estão seguindo a mesma tendência. Então você definitivamente precisa pensar fora da caixa sobre o mesmo que como você pode torná-lo atraente. Você precisa aprender a aumentar o engajamento com o usuário do seu aplicativo. Para conhecer a tendência atual, explore os aplicativos que já foram apresentados na Play Store. Faça pesquisas na Play Store, escolha alguns aplicativos com rótulos como Seleção dos editores e Melhor desenvolvedor e instale-os em seu telefone Android. Em seguida, analise os aplicativos, dando atenção às características que eles têm em comum. Em particular, verifique cuidadosamente o design, a funcionalidade dos aplicativos e tudo o que os diferencia de aplicativos semelhantes na categoria.
2. Supere o FOMO (medo de perder)
O Android é um domínio muito grande. Não se pode aprender completamente do fim ao fim em um mês. Como um iniciante, é bastante comum ficar preocupado por estar perdendo o aprendizado de informações essenciais ao tentar construir coisas enquanto ainda está em um estado de grande confusão, mas tente superar isso. Basta começar com os conceitos básicos do Android e construir lentamente seu comando sobre ele.
3. Dê prioridade à segurança
Na era da Internet, a segurança desempenha o papel mais importante. Quer seja um site ou um aplicativo Android, se não houver garantia de segurança, então não há uso disso. Portanto, ao construir um desenvolvimento de aplicativo, certifique-se de que os dados do usuário estejam seguros e protegidos se ele estiver usando seu aplicativo. Cuidado com os hackers do mercado e encontre uma solução para os problemas que eles podem criar.
4. Concentre-se em ler mais códigos
A maioria dos desenvolvedores Android não gasta tempo lendo o que outros desenvolvedores estão escrevendo. E eles passam a maior parte do tempo escrevendo o que já sabem. Mas isso não vai ajudá-lo a se tornar um desenvolvedor Android perfeito. A única maneira de se tornar um desenvolvedor mais experiente é ler o código excelente de desenvolvedores mais qualificados. Quanto mais você lê, mais você aprende. Se você estiver desenvolvendo algo, é possível codificar tudo sozinho. Mas, se você começar a ler os códigos de outras pessoas, isso ajuda a elevar sua visão e também pode resultar em dar algumas novas ideias.
5. Comece a contribuir para código aberto
Se você desenvolveu uma biblioteca, plug-in ou outras partes úteis de código e os está utilizando em seu aplicativo, considere abrir o código-fonte. Há o suficiente para descobrir no processo de contribuição para projetos de código aberto. Mesmo a menor contribuição, como corrigir alguns erros gramaticais nos documentos, será benéfica para o mantenedor do projeto mantê-lo funcionando. E isso certamente ajudará você a melhorar suas habilidades de desenvolvimento Android.
6. Teste sua criação
Antes de lançar seu produto, você deve testar se funciona no smartphone de forma eficiente e eficaz e observar se vai impressionar os usuários. O mais importante é acomodar dispositivos básicos e telas menores, o que significa que, nos mercados emergentes, muitos dispositivos tendem a ter telas pequenas, portanto, certifique-se de otimizar sua IU testando em vários tamanhos de tela. Você também deve adaptar seu aplicativo a dispositivos de baixo custo, que podem ter pouca memória, baixo poder de processamento e baixa resolução. Além disso, considere a compatibilidade com versões anteriores para jujubas e, quando prático, com versões anteriores para sanduíches de sorvete.
7. Observe o feedback
Você deve observar o feedback que os usuários fazem e ter em mente o que há de bom e de ruim em sua aplicação. Uma das coisas mais importantes sobre um aplicativo é mantê-lo regularmente. Mantenha seu aplicativo atualizado. Rastreie os problemas que os usuários estão enfrentando com seu aplicativo e forneça-lhes soluções em relação a eles por meio de atualizações regulares. Para que da próxima vez você possa entregar o melhor aos seus usuários.
O guia inicial do desenvolvimento Android
Resumindo

Quem está começando na área de desenvolvimento Android ou já conhece pelo menos o básico e quer melhorar suas habilidades, pode ter dificuldade ao selecionar o que vai aprender e no que focar depois de acabar um tópico.
Assim, neste artigo, você vai encontrar um guia do que e quando aprender em Android, dentre outras coisas:
Nativo vs híbrido;
Material design;
Boas práticas de programação;
Documentação.
Vale mencionar que, em 2021, a Alura realizou uma série de pesquisas de mercado sobre Android, Flutter e React Native que, dentre outras coisas, revelou os conhecimentos técnicos e diferenciais que o mercado requer de um Desenvolvedor Junior; a seguir vamos nos aprofundar em vários desses temas e linkar materiais de estudo.
Ao final do artigo, você encontra um Plano de Estudos que linka vários conteúdos em ordem, para já começar a estudar.
Nativo ou Híbrido?
Afinal, estudar e se desenvolver no modelo nativo ou híbrido? Essa talvez seja a decisão mais importante no início dos seus estudos e vai depender do que você almeja profissionalmente ou do seu foco de estudo atual. O mercado de trabalho oferece muitas oportunidades em ambos os casos e cada um tem suas vantagens e desvantagens. Por exemplo:
Nativo: O desenvolvimento de apps nativos Java/Kotlin costuma entregar uma experiência de usuário mais robusta e aplicações com melhor performance. Além disso, facilita o trabalho ao lidar com recursos específicos do sistema como câmeras, sensores e novos recursos trazidos ao SDK (Software Development Kit) a cada nova atualização;
Híbrido: O desenvolvimento híbrido, que utiliza um framework como Flutter ou React Native, pode diminuir o tempo de desenvolvimento e a quantidade de código escrito quando seu app precisa estar em outras plataformas como IOS, pois o mesmo código, com poucas modificações, pode rodar em vários sistemas sem problemas. Não é uma questão com resposta exata e vai depender de vários aspectos, mas para ajudar temos um vídeo bem legal sobre isso no canal da Alura.
Java ou Kotlin
Antes de prosseguir com as demais dicas, se você escolheu o nativo...
Desde 2017, a Google recomenda que os aplicativos Android sejam construídos com a linguagem Kotlin no lugar do Java por 'aumentar a produtividade, a satisfação dos desenvolvedores e a segurança do código'. E, embora a documentação oficial do Android mencione que cerca de 30% de quem desenvolve profissionalmente ainda usa Java em seus projetos, esse número tende a diminuir cada vez mais.
Recentemente, o Android Nativo recebeu mais uma poderosa adição ao seu kit de desenvolvimento que muda a forma como os apps Android são desenvolvidos. Logo, se você escolher o nativo, é bom já se familiarizar com essa nova ferramenta: o Jetpack Compose.
Vamos agora ver algumas boas práticas e dicas que servem tanto para nativo ou híbrido!
Independente das escolhas, saiba o básico
Tanto o nativo como o híbrido requerem uma série de conhecimentos em comum que, apesar de não ter uma ordem exatamente específica, pode ser resumida nos tópicos a seguir:
Domine sua linguagem
Seja Java, Kotlin, Dart, JavaScript ou qualquer outra linguagem, você vai passar muito tempo escrevendo códigos nela, então, tenha uma base sólida sobre seu funcionamento e seus principais recursos, o que é útil e facilita seu trabalho. Pense o seguinte: seria possível, porém mais difícil, viajar para um país estrangeiro sem dominar bem a língua, certo?
Crie boas telas
Tem vontade de criar um app legal? Comece pelo básico e aprenda a construir telas comuns, fixe bem a criação de layouts, saiba exibir textos, receber entradas de dado do usuário, criar listas, menus, lidar com eventos de click no seus componentes - e o que for necessário para entregar uma experiência agradável para quem usar sua aplicação.
Estude sobre personalização, quase todo app Android segue uma espécie de padrão, tanto visual como de navegação, e isso não é coincidência: o Material Desgin guia a criação de telas através de diretrizes que garantem comportamentos comuns e intuitivos. São fáceis de usar e, embora não sejam regra, recomendo fortemente que você conheça esses padrões.
Conforme desenha suas telas e precisa dar vida a elas por meio da linguagem escolhida, sua evolução deve ser natural; então chegará o momento em que você consegue fazer ações bem legais e pode começar a focar em conceitos mais técnicos.
Nesse ponto do aprendizado, é legal se familiarizar com conceitos mais específicos do Android (especialmente se estiver lidando como o nativo) como o de Ciclo de vida de uma aplicação, tanto para conhecer melhor como o próprio sistema do lida com nosso app, como pensar em maneiras de otimizar nosso código em certos momentos. Temos um artigo explicando melhor esse conceito de Lifecycle no Nativo em si e recomendo a leitura desse outro em inglês que foca mais em Flutter.
Lide com erros
Acostume-se com a palavra Exception - você vai vê-la várias vezes durante seu desenvolvimento (haha). Brincadeiras à parte, não é comum você ver uma vaga de Dev solicitando que você saiba “lidar bem com exceções" ou “ou depurar apps bem”, mas você usará bastante essa habilidade no dia a dia.
Esse tema quase entra no escopo de testes, que veremos a seguir, e será útil saber como identificar certos comportamentos que deveriam ocorrer e o que realmente está rolando - o que é possível quando você está ligado nos Logs do Android, por exemplo.
Guardando informações localmente
Pense na enorme dificuldade que seria se, ao fechar um aplicativo, todas as informações salvas (como cartão de crédito e cadastro do usuário) se perdessem. Seria inviável usar um app desses, certo?
Logo, avançando um pouco mais nos estudos, você deve precisar armazenar informações por um período de tempo maior no dispositivo dos usuários, por exemplo: Salvando os dados de login para que não seja necessário inseri-los novamente toda vez que entrarmos no app, guardando listas de itens de um app de notas ou mesmo garantindo que mensagens trocadas online permaneçam disponíveis sem conexão à internet. Aqui temos algumas opções e as mais comuns são:
SharedPreferences: para informações simples;
DataStore: também para informações simples;
Banco de dados: para lidar com fluxos de dados mais complexos.
Recomendamos que você dedique mais tempo ao banco de dados, pois essa ferramenta permite guardar e recuperar grandes quantidades de dados de maneira ágil e performática. No Android, é muito comum lidarmos com o banco de dados SQLite, e a documentação oficial recomenda o uso de uma ferramenta muito comum que é o Room para tornar seu uso mais fácil.
Consumindo Web APIs
Por mais que possamos fazer muito salvando dados localmente, provavelmente uma hora ou outra vamos precisar buscar uma informação online, salvar algum dado em um servidor externo ou mesmo enviar algo para ser processado fora de nosso dispositivo e depois recebê-lo de volta.
Nesse momento, é importante que você conheça a técnica de consumir APIs REST para estabelecer comunicações externas, essencial no repertório de habilidades de quem desenvolve para Android. Aqui não existe uma solução única, o desenvolvimento híbrido ou nativo já oferece maneiras de fazer isso naturalmente, mas inúmeras bibliotecas visam facilitar esse trabalho. Vejamos três delas:
Retrofit: mais comum no nativo,
mais comum no nativo, http: no Flutter; e
no Flutter; e Axios: no React Native.
Aproveite para explorar as páginas dessas soluções e turbinar seus estudos!
Aprimorando nosso app
A fim de tornar nossa aplicação mais robusta, escalável e testável, podemos aplicar algumas técnicas, como implementar padrões de arquitetura como MVVM (Model-view-viewmodel), que é muito comum na programação mobile.
Agora complicou? Calma, vamos devagar. O padrão de arquitetura MVVM visa a facilitar a separação das nossas camadas de interface de usuário (UI) do nosso código de lógica de negócio.
Apesar de muito útil, padrões de arquitetura como esse aumentam a complexidade de nossos projetos e têm uma curva de aprendizado um pouco íngreme, ou seja, você pode demorar um pouco para entender como as coisas realmente funcionam. Assim, a formação em Arquitetura Android pode ser bem útil nesse momento.
Aplicar técnicas para limpar e aumentar a legibilidade do seu código é uma habilidade essencial para todo programador - não apenas na área mobile -, então conhecer, por exemplo, os princípios de Clean Code e SOLID, pode ser uma boa ideia; temos um vídeo do #HipstersPontoTube com nosso CEO Paulo Silveira comentando sobre esse tema.
Um código limpo e fácil de entender torna sua aplicação versátil e mais fácil de testar ou escalar quando necessário, e, mais uma vez, a documentação oficial do Android é de grande ajuda ao oferecer um Guia para a arquitetura do app que contém conceitos e práticas recomendadas na construção de aplicações .
Testes
Embora muitas empresas disponham de um departamento específico para qualidade de software, saber o básico de testes é uma habilidade importante para criar códigos menos suscetíveis a falhas e, no pior dos cenários, que quebrem nossa aplicação.
O Android Studio (ambiente de desenvolvimento oficial do Android), gera algumas pastas e arquivos de testes toda vez que criamos um novo projeto:
A Documentação do Android possui uma boa introdução ao tema, abordando as principais categorias de testes, quando usá-los e sugestões de ferramentas para te auxiliar.
Nosso podcast Hipsters Ponto Tech tem um episódio sobre Testes Automatizados que vai ser uma ótima introdução ao assunto.
Na Alura você encontra cursos de Testes tanto em Android Nativo, quanto em Flutter.
Disponibilizar o app / Gerar o APK Instalável
Uma habilidade que geralmente vemos como requisito em vagas para pessoas desenvolvedoras de Android é o conhecimento do processo de publicação de aplicativos na loja oficial da Google, a Play Store.
Esse é um passo um pouco mais avançado (que além de te fazer “cumprir o requisito de vaga” haha), vai permitir que você tenha um portfólio de apps para mostrar seu trabalho quando necessário. A distribuição de apps Android pode ser feita por outros meios que não a loja da Google, mas esse é provavelmente o mais utilizado atualmente.
Prática
A prática leva a perfeição.
Quem nunca ouviu essa frase não é mesmo? Nesse caso, o ditado é extremamente válido: estude e tenha noção do que você pode construir, as ferramentas e recursos que pode utilizar e, constantemente, pratique tudo isso.
Tire momentos para criar seus próprios apps, aplicar tudo o que aprendeu, resolver os problemas que devem surgir no caminho. Esses momentos de estudo são uma oportunidade para rever aquele tópico que você não entendeu bem de primeira ou vai requerer uma atenção extra.
A prática ajuda a fixar os conteúdos aprendidos e você pode acompanhar sua evolução armazenando esses projetos em algum sistema de versionamento como o Git e GitHub.
Versionamento
Git, Github e outros sistemas de versionamento não servem apenas para acompanhar a evolução de um código. Na verdade, são ferramentas muito úteis por permitir o trabalho simultâneo de várias pessoas em um mesmo projeto, logo, conhecê-las bem é indispensável para todo programador! E, na área mobile, isso não é diferente.
Documentação oficial
No desenvolvimento híbrido ou nativo, você vai se deparar diversas vezes com a Documentação Oficial do Android, que é muito útil e bem detalhada em vários aspectos. Sempre que tiver uma dúvida, vale a pena consultar!
Conclusão
O mercado de desenvolvimento Mobile, assim como toda área de tecnologia, nunca para de evoluir!
Abordamos, neste artigo, os principais conceitos que um desenvolvedor ou desenvolvedora Android deve saber lidar no seu dia a dia, desde o básico até tópicos mais avançados. Estar sempre atento às mudanças do mercado, ao surgimento de novas tecnologias e estar disposto a aprender algo novo é tão importante quanto os assuntos que mencionamos, e por isso, não se limite, vá além!
Elaborado especialmente para esse artigo, abaixo você encontra três planos de estudos - um para Android Nativo, um para Flutter e outro para React Native - que incluem artigos, cursos, podcasts e vídeos que vão te guiar nessa maravilhosa jornada que está prestes a começar!
Muito obrigado pela presença e até mais!