Dev (Back & Front)ARTIGO

Como aprender Android (ou qualquer coisa) de verdade

Será que os desenvolvedores não estão se apoiando demais em bibliotecas e frameworks? Será que estamos virando apenas bons usuários de bibliotecas?

Essa semana eu estava conversando com o João Gouveia e o Halyson Gonçalves, dois ótimos desenvolvedores AndroidAndroid46 conteúdosAndroid push notifications com Quasar Framework, Firebase e integração com WordPressDev (Back & Front) · mai 2019O X do Xamarin Forms – O guia das funcionalidades nativas - Parte 02: AndroidDev (Back & Front) · abr 2019Modularização de AndroidDev (Back & Front) · ago 2019Ver tudo em Dev (Back & Front) que trabalham conosco na Concrete Solutions, sobre um problema que já me incomodava há algum tempo, mas que estava hibernando… Só esperando a faísca de uma boa conversa para acordar:

Será que os desenvolvedores não estão se apoiando demais em bibliotecas e frameworks? Será que estamos virando apenas bons usuários de bibliotecas?

Essa pergunta virou uma pulga que ficou ali, atrás da orelha, desde então.

Comecei a brincar com o Android no final de 2010. Até então, minha experiência tendia muito mais para C++ do que para Java propriamente dito. Essa diferença de conhecimento me fez estudar muito mais a fundo a própria linguagem Java que, naquela época, fazia Android brilhar aos olhos por não ter as limitações que o JavaME, por exemplo, impunha. Mas vamos deixar de lado essa história por enquanto.

O que tenho visto em muitos desenvolvedores, principalmente naqueles que começaram a programar para Android nos últimos dois anos, é que eles não sabem ao certo como as coisas funcionam no sistema operacional. Muitos deles se agarraram às facilidades de uma biblioteca X ou Y, e sequer sabem o que acontece por baixo dos panos (ou under the hood, que funciona muito melhor para essa analogia).

Como funciona o ciclo de vida de uma Activity? Como você controla o estado dos seus campos em uma mudança de configuração, por exemplo? “Ah, eu só anoto a variável com a biblioteca Z”. Como você faz uma requisição a um servidor? “Ah, o Retrofit resolve pra mim”. Mas e a mudança de contexto para publicar o resultado na thread de UI? “Ah, não sei… O Callback já faz isso pra mim”.

Uma dica que dou pra vocês que estão começando (ou nem tão começando assim) é: façam um projeto sem biblioteca alguma. Ok, a Support Library & cia. vale, mas entendam como o Android funciona. Como consumir um REST sem o Retrofit? Como fazer parse de um JSON sem o GSON ou Jackson? Você sabe o que é um Content Provider e como criar um? Testem, estudem, experimentem. Não tenho dúvidas de que aquela nuvem cinza que aparece na sua cabeça quando algum framework mágico surge vai começar a dissipar.

Android-Learning

Conheçam o terreno onde estão pisando! Não importa o que estejam aprendendo, evitem os atalhos. Não que eles sejam ruins, mas, principalmente no momento de aprendizado, precisamos de bases sólidas, de conhecimento sobre o básico. Conhecimento esse que será sua especialidade futuramente. “Por fora bela viola, por dentro pão bolorento”.

Concordam, discordam ou têm alguma opinião sobre o assunto? Aproveite os campos abaixo!

Desenvolvedor Android na Concrete Solutions, tem experiência em mais de 15 projetos mobile de empresas do Brasil e do exterior. Possui também experiência em desenvolvimento Java desde 2009. É formado em Sistemas de Informação e pós-graduado em Desenvolvimento Ágil para Web e Mobile.

Ver perfil