Muita gente já teve a ideia de criar um aplicativo, mas não sabe por onde começar. Para destrinchar esse caminho, Aline Souza, desenvolvedora Android, conversou sobre a linguagem que domina o mercado hoje, a diferença entre desenvolvimento nativo e híbrido, os desafios de trabalhar com uma variedade enorme de dispositivos e como está o mercado para quem quer entrar na área em 2024.
Aline Souza é desenvolvedora Android e mantém uma série de artigos no Medium sobre como se tornar desenvolvedora na plataforma, cobrindo desde o básico até tópicos mais avançados. Ela relatou já ter trabalhado tanto com testes unitários e de UI quanto com testes de integração usando Cucumber, e hoje atua em uma aplicação voltada a usuários de celulares de entrada, o que torna a preocupação com performance e consumo de memória ainda mais central no seu trabalho.
Ainda existem projetos em Java rodando por aí, mas Aline foi direta ao classificá-los como legado. A adoção de Kotlin como linguagem oficial pelo Google mudou o padrão do mercado: aplicativos novos praticamente já nascem em Kotlin. Linguagens híbridas como Dart (Flutter) entram na conversa como opção para quem quer acelerar o desenvolvimento simultâneo para Android e iOS, mas não substituem o nativo quando o foco é só uma plataforma.
"Se a gente for focar 100% em Android, aí eu falo, é Kotlin com certeza." por Aline Souza
Aline explicou que a escolha entre nativo e híbrido depende de dois fatores: complexidade do projeto e público-alvo. Funcionalidades que dependem fortemente de hardware, como câmera, tendem a ser mais simples de implementar em nativo, porque o próprio sistema operacional já conhece o caminho para acessá-las. Quando a aplicação não vai rodar em duas plataformas, desenvolver em híbrido vira um custo desnecessário. Ela também levantou um ponto de mercado: encontrar desenvolvedores nativos ainda é mais fácil, porque o híbrido é relativamente novo e ganhou força principalmente a partir do Flutter.
"Existem coisas que, por exemplo, se você for usar a câmera, coisas de hardware mesmo, o híbrido tende a ter um pouco mais de dificuldade." por Aline Souza
Diferente do mundo web, onde a preocupação central costuma ser responsividade, no Android a variedade de fabricantes cria um problema mais profundo: cada marca personaliza o sistema à sua maneira, o que pode gerar bugs que só acontecem em um modelo específico. Aline citou como exemplo bugs exclusivos de aparelhos Samsung, difíceis de reproduzir sem o device físico em mãos. Some a isso a variação de tamanho de tela e a necessidade de rodar tanto em celulares recentes quanto em modelos de anos atrás, e o cenário de testes se torna bem mais complexo do que em outras plataformas.
"Pode ter bug que acontece só no Samsung. Isso é horrível. Porque se você não tiver um Samsung específico para testar aquele cenário, vai ser difícil você reproduzir." por Aline Souza
Aline destacou que, ao contrário de uma aplicação web que roda no servidor, no mobile é preciso considerar a banda de internet do usuário, a memória disponível no aparelho e o tamanho do próprio APK ao mesmo tempo. Ela relatou que hoje trabalha em um produto voltado para celulares de entrada, com pouca RAM, o que torna essa preocupação ainda mais concreta no dia a dia. Rodar bem tanto em um aparelho topo de linha quanto em um modelo de anos atrás exige decisões de arquitetura desde o início do projeto.
"É muito preocupante o tamanho da APK, o quanto ela vai usar de memória. Ao mesmo tempo tem que se preocupar com conexão." por Aline Souza
Segundo Aline, todas as empresas em que trabalhou exigiam testes unitários como prática padrão, e o nível de cobrança aumenta conforme a senioridade do profissional. Testes de UI (com Espresso) e de integração (ela citou experiência com Cucumber) aparecem em algumas empresas, mas com mais tolerância caso o candidato não os domine. Ela também mencionou os testes de screenshot, que comparam a interface capturada em execuções diferentes e podem falhar por conta de detalhes como tamanho de tela — uma fonte comum de dor de cabeça nesse tipo de abordagem.
"Todas as empresas que eu trabalhei trabalhavam com testes unitários. Era um pré-requisito mesmo. E quanto maior o seu nível de senioridade, mais isso vai ser cobrado de você." por Aline Souza
"Morrer, com certeza, não vai, pelo menos nem tão cedo." por Aline Souza