Desenvolvedor(a) Android: Um guia prático para se tornar — Parte 3

Aline Souza
Aline Souza
Published in
4 min readSep 13, 2021

Para quem acompanhou a parte 1 e parte 2 de como se tornar um desenvolvedor(a) Android e conseguiu estudar sobre os pontos abordados, já está mais que apto para assumir seus primeiros desafios na área.

Photo by Denny Müller on Unsplash

A questão é que, para crescer cada vez mais na área, você deve ir além do desenvolvimento em si, mas também entender alguns pormenores (mas não menos importantes) de tudo que cerca o desenvolvimento.

Recomendo que já tenha estudado (e praticado) muito os pontos abordados anteriormente antes de partir para os pontos a seguir.

Processo de Build

Parece tudo muito simples: você constrói sua aplicação, coloca para buildar e voilà seu código está pronto!

E sim, para quem está começando na área, a mágica funciona exatamente assim. Porém, conforme seu projeto for crescendo, você vai perceber que a aplicação que demorava 40 segundos para rodar, passou a demorar 2 minutos, e crescendo…

Já atuei em alguns projetos que demorava cerca de 15 minutos para buildar. Agora imagina rodar essa mesma aplicação 10x por dia. Um pesadelo, muitas vezes, evitável.

Por isso, é importante entender como funciona o processo de build para encontrar melhorias, sempre revisar se todas as libs declaradas no projeto são realmente utilizadas, etc.

E se após revisar, se ainda assim, o seu projeto continuar lento para executar, há outras abordagens que podem ser utilizadas, como é o caso da modularização, que vem sendo cada vez mais utilizada em projetos de grande escala.

Leia mais sobre otimização de build na própria documentação da Google aqui.

Design Pattern

A realidade é que muitas pessoas utilizam diversos design patterns no dia-a-dia mas, por falta de embasamento teórico, não sabem disso.

Mas saber quais são e quais os fundamentos de sua criação torna-se importante quando você precisa construir uma solução que, muitas vezes, pode ser resolvida por algum pattern já existente.

Se você já criou uma Recycler view, então precisou de um Adapter, que é um tipo de design pattern. Se você se deparou com injeção de dependência também utilizou Singleton e/ou Factory, dois tipos de design pattern.

Ou seja, eles estão em todos os lugares. Vale a pena dedicar uma parte do seu tempo para entender quais são e como/onde utilizá-los.

Material recomendado:

Firebase

Esse é o coringa da Google, usado para facilitar diversas vertentes da nossa aplicação (seja ela Android ou iOS). Com o Firebase, é possível criar, gerenciar, expandir e engajar suas aplicações.

E a ferramenta é tão versátil que é utilizada desde projetos pequenos até projetos de grande porte, como Alibaba e Duolingo.

Suas funcionalidades vão desde banco de dados realtime, serviços de autenticação, remote config, crashlytics (devera importante, para saber como sua aplicação está se comportando em diversos modelos de celular), monitoramento de performance e muito mais.

Materiais recomendados:

CI/CD

São raros os aplicativos que, após entregue, nunca precisarão de atualizações/novas features. Geralmente, um aplicativo possui atualizações toda semana, a cada quinze dias, mensalmente ou conforme demandar. E ter que fazer esse processo manualmente pode ser cansativo e pior ainda: suscetível a erro humano. A CI/CD consegue automatizar para nós não somente esse processo, como verificação de qualidade de código, rodar testes automaticamente e muito mais.

E existem diversas ferramentas que fazem isso. Não importa se você vai estudar CI/CD com GitLab, Jenkins, Github, Bitrise ou qualquer outra ferramenta que lhe for conveniente. O importante é entender os conceitos, sua importância e claro, qual o impacto de um processo de CI/CD bem estruturado em um projeto.

Ofuscação de Código: Proguard e Dexguard

Segurança é uma das principais preocupações de aplicativos que trabalham com dados sensíveis. E existem técnicas eficientes para fazer isso, e uma delas é realizar a ofuscação do código.

Ofuscação nada mais é que "embaralhar" seu código, ou seja, tornar o seu código não legível. Assim, caso alguém consiga ter acesso ao código fonte do mesmo, não conseguirá interpretar, evitando roubo de informações importantes, por exemplo.

Os mais conhecidos no desenvolvimento Android são Proguard e Dexguard.

Entender um pouco sobre cada um deles, quais suas funcionalidades e técnicas de ofuscação é importante para realizar uma boa escolha. Leia mais sobre aqui.

Além de todos esses pontos técnicos apresentados nessa série de 3 artigos, há também conhecimentos conhecidos como soft skill. São as habilidades comportamentais, como trabalhar em grupo, uma comunicação objetiva e não violenta, capacidade de se ajustar a diferentes contextos e muito mais.

E você, qual outro conhecimento julga importante para se tornar um bom desenvolvedor(a) Android?

Me siga no LinkedIn para ficar por dentro dos próximos artigos.

Code Like a Girl 👧

--

--

Aline Souza
Aline Souza

Desenvolvedora Android, apaixonada por tecnologia, e aprendendo todo dia um pouco mais! Code like a girl :)