Como aprender Android (ou qualquer coisa) de verdade

Padrão

Essa semana eu estava conversando com o João Gouveia e o Halyson Gonçalves, dois ótimos desenvolvedores Android que trabalham conosco aqui 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 Android. 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-LearningConheç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!

Originalmente publicado no Blog da Concrete Solutions.

2 comentários sobre “Como aprender Android (ou qualquer coisa) de verdade

  1. Excelente Rafael!
    Posso dizer que passei por cenário parecido ao que você mencionou..

    Iniciei com Android utilizando Android Annotations, ORMLite entre outras facilidades.. e viciei em tal..

    Em um projeto pessoal, alguns meses depois desse primeiro projeto, fiz o que você recomendou. Utilizei Support Library & cia!
    Aprendizado pra toda vida!

    Parabéns pelo post 😉

Deixe uma resposta