Executando verificação de segurança...
9

Aprendi Android nativo, mas ele morreu.

Em 2010 eu iniciei minha vida profissional como Dev Android.
Contexto da época:

  • linguagem: Java
  • IDE: Eclipse + plugin ADT
  • gerenciamento de dependências: download de JAR no site da lib
  • layout: xml
  • arquitetura: freestyle, o único padrão era 1 activity por tela
  • android OS version: Android 2.0
  • memória RAM: < 256MB
  • apis: XML

Essa lista poderia se estender muito, mas vamos seguir...
Qual desses itens ainda faz parte do desenvolvimento Android em 2023?

  • linguagem: Kotlin
  • IDE: Android Studio
  • gerenciamento de dependências: gradle + maven
  • layout: jetpack compose
  • arquitetura: MVVM
  • Android OS version: Android 13.0
  • memória RAM: ~10GB
  • apis: JSON

Aqui não cita que surgiu support libraries, que posteriormente virou Android X. Que Fragments nasceram pra tablet, mas viraram padrão. Que jetpack facilitou/transformou muito o desenvolvimento. Que MVP chegou a ser a arquitetura mais popular e sumiu. Que as classes para abrir conexão http, ler buffer, fazer parse do xml usando SAX (DOM não era viável pra carregar em memória) e mapear manualmente em objetos; foram todas substituídas pelo retrofit. E por aí vai.

O Android nativo que eu aprendi morreu. Se até o desenvolvimento de Android Nativo mudou tanto, o título click bait deixa apenas uma aposta sobre nosso ecossistema profissional: "a tecnologia de hoje não vai ser a mesma daqui 10 anos".

Ou seja, se você está começando a vida como desenvolvedor, não se apegue à tecnologia. Nem Flutter, nem React Native, nem KMP e nem nativo serão iguais daqui 10 anos. Pular de galho em galho pra cada tecnologia que aparecer vai te deixar sempre raso, mas ficar no mesmo galho pra sempre vai te tornar obsoleto. Estude e se aprofunde na tecnoligia que estiver focando, as tecnologias não costumam ser tão disruptivas, e você sempre carregará conceitos e a experiência do que viveu. Divirta-se com o hoje porque a jornada é a parte mais legal.

Carregando publicação patrocinada...
2

Comparativo muito interessante.

Me parece algo natural na evolução de qualquer tecnologia e com o Android, graças a Deus, não foi diferente. A maioria dos tópicos demonstram uma evolução e melhora na qualidade do código, do app e facilidade na manutenção e no desenvolvimento de apps.

Vale a pena perguntar se, apesar das mudanças, alguém que ficou dormindo nos últimos 13 anos ainda seria capaz de trabalhar com desenvolvimento Android sem precisar reaprender muita coisa.

O aumento no uso de memória é impressionante, mas acho que é natural se olharmos para o aumento na disponibilidade e na redução dos custos de memória RAM e processamento.

Não é que o desenvolvimento Android que vc aprendeu morreu... ele evoluiu e agora é outro pokemon, com outros poderes.

1

Exatamente. Eu usei o desenvolvimento nativo porque teoricamente é uma tecnologia que fica centralizada no Google e Apple, e parece que um dev nativo continua sendo o mesmo.
O dev android 2023 teria mais facilidade de aprender flutter 2023 do que aprender android 2010.
Imagina quando a gnt pega outras tecnologias como web, backend, apps híbridos que são mais voláteis.
Ou seja, não importa qual tecnologia trabalhamos hoje, ela será substituída, mesmo que seja pela própria evolução dela.

2

A Teoria evoluiu.
O Ferramental mudou.

Ocorrendo aos poucos, de forma que faz parte do profissional acompanhar o mercado.

Todavia, quanto a perca de conhecimento, é importante ressaltarmos uma divisão:

Há o conhecimento teórico, que é incremental na medida que passa a conhecer.
Exemplos: Padrão MVC, Paradigmas, estrutura de dados e algoritmos.

E o conhecimento ferramental, que pode sim ser necessário maior atualização, por padrões serem abandonados e interfaces trocadas.

Vindo dessa questão, vemos do porque que Web possui a loucura de estar sempre se atualizando, com muitos sofrendo a acompanhar. Frameworks podemos ver como ferramentas, que por mais que muitas possuam por tras uma teoria próxima, a exemplo Vue, React e Angular, cada uma tem sua forma única de trabalhar.

No entanto, nas carreiras de baixo nivel como Assembly e C, vemos uma estabilidade muitissima maior, do conhecimento adquirido, comparado a Web.

1

concordo.

10 anos atrás surgiu react com classes. 10 anos depois a própria documentação do react recomenda que você não comece um projeto por ele kkkkk

1

Cara, que publicação sensacional!

Gostei muito deste trecho:

Pular de galho em galho pra cada tecnologia que aparecer vai te deixar sempre raso, mas ficar no mesmo galho pra sempre vai te tornar obsoleto.

Essa é uma decisão importante a se fazer no início da carreira: Eu quero ser um generalista, saber de tudo um pouco e me tornar um "Full Stack" ou então quero ser um especialista, que sabe tudo de um pouco e me tornar um "Front/Middle/Back End"?

Com essa decisão você consegue pensar nesta outra decisão, de sempre buscar melhorar o conhecimento de uma ferramenta/linguagem, porque decidi ser especialista nela ou então sempre vou me atualizando em várias ferramentas/linguagens e até mesmo aprendendo novos conceitos, porém não se aprofundar em detalhes mais específicos da tecnologia em especial e consequentemente não conseguindo resolver determinadas demandas.

Ambos os casos tem seus prós e contras, mas uma coisa é fato: Em nossa área devemos sempre se atualizar. Seja generalista ou especialista, a atualização - que nem você demonstrou com as atualzações que ocorreram no mundo Android - é a chave que determina a pessoa que terá sucesso profissional, seja na carreira, seja no financeiro, etc.

Mais uma vez, muito boa sua publicação, muito obrigado mister!

1

É aquilo, da mesma maneira que nosso código muda ao longo dos anos — nós, como programadores, mudamos nossos produtos produzidos — os programadores das mais diversas áreas fazem o mesmo, por diversos, além de diferentes, motivos.

Tudo está em constante mudança, todas as tecnologias.

Assim, sempre estamos sucetíveis com essas mudanças, sempre 'sofreremos' com ela.

É inútil as discussões e brigas que estão surgindo entre a galera do Flutter, do React, do Nativo etc. nesses últimos dias. Como você mesmo disse, não devemos nos apegar com essas tecnologias, pois, em algum momento, todas morrerão e teremos que migrar para outra.

Ótimo postagem e ótimo assunto!