
Flutter
Resumo do episódio 63 do AguiarDev Talks. Prefere assistir? Veja o episódio completo →
Tiago Aguiar recebe Jacob Moura, fundador da comunidade Flutterando, para contar a história por trás do Flutter — desde os primeiros problemas de cross-platform dos anos 90 até a solução que a Google encontrou desenhando cada widget do zero.
O que foi discutido
- A história do desenvolvimento cross-platform, do C ao React Native
- Por que o Flutter decidiu abandonar os widgets nativos de cada plataforma
- O papel do Dart e da engine gráfica Skia no funcionamento do Flutter
- O que é importante entender antes de começar a estudar Flutter
- As ferramentas de teste nativas do SDK, incluindo testes de widget
- Como está o mercado de trabalho para quem quer começar em Flutter hoje
Principais pontos
O cross-platform sempre esbarrou no mesmo problema
De aplicações em C que precisavam de build separado para cada sistema operacional, passando pelo Java com sua VM, até o React Native com sua ponte entre JavaScript e código nativo, cada geração de solução resolvia um problema mas criava outro gargalo — geralmente na comunicação entre a lógica de negócio e a camada visual.
O Flutter resolveu abandonando os widgets nativos das plataformas
Em vez de traduzir componentes para os widgets do sistema operacional (o chamado widget OEM), o Flutter desenha cada elemento de tela do zero usando a engine gráfica Skia, originalmente criada para jogos. Isso elimina a dependência de "pontes" de tradução e permite compilar nativamente tanto a interface quanto a regra de negócio.
O Dart foi criado antes do Flutter, para outro propósito
A linguagem Dart nasceu em 2011 como uma tentativa da Google de substituir o JavaScript, mas fracassou nessa missão. Anos depois, foi resgatada como a linguagem ideal para o Flutter — sua sintaxe é próxima de C#, Java e JavaScript, o que reduz bastante a curva de aprendizado para quem já programa.
Testes vêm embarcados no SDK, incluindo testes de tela
Diferente de ecossistemas onde é preciso escolher e configurar bibliotecas de teste, o Flutter já traz nativamente ferramentas para testes unitários, testes de widget (que validam a interface, já que telas são classes) e o Flutter Drive, que automatiza testes de integração abrindo o emulador — sem exigir conhecimento de ferramentas externas como Appium.
O mercado ainda é menor que o de JavaScript, mas cresce rápido
A maioria das vagas de Flutter está em projetos novos, especialmente startups que preferem uma única equipe cross-platform a manter times separados de iOS e Android. Apesar de menor que o ecossistema JavaScript, o Flutter tem attraído empresas grandes — de fabricantes de carros a TVs — e oferece a vantagem de crescimento mais rápido dentro das empresas que o adotam desde o início.
Frase de destaque
"Seja um desenvolvedor. Não fique preso a uma tecnologia. Se você sabe cavar um buraco, você vai saber cavar um buraco com qualquer coisa. Não dependa só daquela pá" por Jacob Moura
Lições do episódio
- Entender a história do cross-platform ajuda a compreender por que o Flutter tomou decisões técnicas tão distintas dos frameworks anteriores.
- Não é preciso temer o Dart como uma linguagem "isolada" — sua sintaxe é próxima da maioria das linguagens orientadas a objetos.
- Testes de unidade, widget e integração já vêm no SDK do Flutter, o que reduz a barreira para incorporar qualidade desde o início do projeto.
- Startups e projetos novos são o principal ponto de entrada no mercado de Flutter — apps legados ainda tendem a usar outras tecnologias.
- Aprender a programar bem importa mais do que se especializar cedo demais em uma única tecnologia ou framework.
- Participar de comunidades como a Flutterando acelera o aprendizado e ajuda a conseguir a primeira oportunidade no framework.