Porque o Flutter 2 é Game Changer?

Igor L Sambo💙🇲🇿
GDG Maputo
Published in
6 min readMar 5, 2021

--

Mais que um Framework Mobile! — Minhas notas

Ok, Eu estou usando o Flutter desde antes do mesmo estar na versão 1, isso em 2018 (apenas atingiu a v.1 em Dezembro do mesmo ano). E já foi uma experiência muito diferente do já experienciado no mercado, especialmente porque antes era programador Android nativo por default e estava no processo de igualmente aprender o Swift para cobrir todo ecossistema Mobile, que não estava sendo pessoalmente uma boa experiência e me levando a explorar as opções híbridas, contudo, o quesito performance deixava a desejar até que….

Flutter me foi apresentado de forma aleatória e logo fiquei entusiasmado para aprender até os dias que correm com grande paixão. E hoje estamos no FLUTTER 2🎉.

Para melhor explicar o hype por trás do Flutter eu listei 10 pontos que achei de grande importância no Flutter Engage.

1. Portabilidade

Já não chega a ser novidade que o Flutter é Cross-Platform e já vem suportando o desenvolvimento para Desktop e Web apps. Mas agora com mais avanços temos a adesão do desenvolvimento Web e Desktop ao stable channel. O Flutter é actualizado com base em canais do Github e podemos ter o master(main), stable, dev, beta entre outras, contudo estas são as mais generalizadas e mais usadas. Além destas duas conhecidas plataformas que fazem com que tenhamos SO’s como Android, iOS, Windows, Linux, MacOS como alvo temos também os embedded systems com a Toyota como parceiro na fase piloto. Estas actualizações permitem que para além de um Framework Mobile passa a ser um Framework Portável. Alguns deste pontos em destaque nos seguintes.

2. Foldable

Uma das perguntas mais comuns que ouço nos últimos meses é sobre a performance do Flutter em Foldable phones, embora alguns devs pudessem chegar a soluções adaptáveis o Flutter em si não trazia opções optimizadas para tal. Com o Flutter 2 os Foldable são parte integrada do ecossistema (Portável, lembra??). Então vamos alcançar mais utilizadores usando Flutter.

3. Web e Desktop em stable

Alguns pontos a destacar seriam, primeiro o facto de web poder estar em stable significando a possibilidade de continuar passando as aplicações já existentes directamente à web. Obviamente que nem todas aplicações justificam a existência (total ou parcial) de uma aplicação web equivalente, contudo, existe agora a possibilidade de forma mais prática podendo aproveitar em até 95% do código pré-existente sem ter especificações (não se pode ignorar que são plataformas diferentes e carecem de specific-platform features). Temos também o uso de

--early release

para poder fazer a publicação das nossas apps em nativo (desktop), isto é possível através das contribuições das equipe do Flutter em conjunto com a Microsoft para uso de APIs para o Windows 10 e Linux.

4. Flutter é a escolha pré-definida para Linux (Canonical)

Canonical é uma empresa responsável pelo desenvolvimento de aplicações para o Linux (Ubuntu) desde installers até aplicações mais especificas.A Canonical pretende trazer ao Flutter como um framework inhouse, assim dando suporte directo ao Flutter, permitindo a possibilidade aos desenvolvedores de baixar e instalar o Flutter SDK como um snap de forma mais prática pela loja específica. O Linux está ainda a trabalhar no suporte às múltiplas dimensões que o Flutter pode suportar assim como o desenvolvimento de plugins que são um grande componente do ecossistema Flutter. E ainda mais… O Ubuntu Desktop Installer (Next Generation Installer) será desenvolvido com base no flutter e Flutter Apps são o Default pra Canonical, isto significa um sistema completo que leva Flutter como principal framework e isto significa inclusive uma melhor UX para os utilizadores.

5. Toyota é parceiro

A marca de veículos automóvel mais popular junta-se com o Framework cross-platform que mais cresce, expandindo assim o ecossistema para realmente virar portável (você adivinhou), esta escolha está centrada em factores que nós já conhecemos como alta performance, hot reload, alta adaptabilidade com o ecossistema mobile e para o ambiente de desenvolvimento a eficiência agregada no momento de codificação assim como a fácil iteração entre o desenvolvimento, teste e feedback trazendo mais comodidade e relação com o utilizador com uma óptima UX, sem esquecer do factor mais importante — para mim — a comunidade que tem contribuído bastante para o crescimento.

6. Dart e Null Safety

Porquê Dart, alguns perguntam… com a missão falhada de substituir o JavaScript esta foi a linguagem escolhida — e desenvolvida — pela equipe da Google para dar suporte ao Framework Flutter, mas porquê exactamente? Porque como nenhuma outra linguagem consegue

  • Compilar directamente para linguagem de baixo nível ou mesmo os compiladores JavaScript e consequente possibilidade de agregação com uma grande variedade de plataformas, tornando a escolha perfeita para portabilidade (podem perguntar a Toyota😁);
  • Como ferramenta de produtividade (todo desenvolvedor está a procurar se tornar cada vez mais produtivo ) esta linguagem tem recursos como hot reload que permite desenvolvimento super iterativo, poupando bastante tempo entre builds e ainda a possibilidade de execução de tarefas simultâneas com o assincronismo;
  • Envolve ainda a robustez desta linguagem com elementos como o null-safety em runtime assim como em desenvolvimento.
Fonte: Apresentação oficial do #FlutterEngage

Null-safety chegou e não significa que o código que não esteja com null-safe seja simplesmente descartado, ambos podem co-existir. Para além de ser seguro, as mudanças permitem que o código seja mais prático de escrever e é chamado de Sound — Null-safety — garantindo que nenhum valor é avaliado como null quando se fizer o build.

7. Flutter fix

Fonte: Apresentação oficial do #FlutterEngage

“Mas e estas mudanças todas com meu código antigo?”, perguntas-te!?
Bom, o flutter fix está integrado aos fixes rápidos (integrados ao Android Studio) e permitem que possa fazer a migração de pacotes descontinuados, permitindo menos dor de cabeça no momento de migração.

8. Flutter DevTools no IDE

Devo admitir que é um bocado chato ter que abrir o DevTools no browser, um dos motivos é o link flexível que fica indisponível depois que você reinicia a aplicação, caso seja necessário. Mas com o Flutter 2 o DevTools está integrado aos IDEs permitindo verificar factores como renderflex directo no Flutter Inspector, contudo, há ainda funcionalidades do DevTools que ainda não estão disponíveis no IDE, Memória, Rede e Performance, mas Flutter tem mostrado sempre com melhorias — kudos Flutter Team (comunidade).

9. Firebase Plugins Actualizados — FlutterFire

O FlutterFire foi anunciado ano passado e a igual passagem de testemunho abordada aqui. Com isto os plugins com especial atenção à documentação directamente especificada para o Flutter que está com os plugins actualizados com catálogo em Autenticação, Cloud Firestore, Crashlytics, Cloud Messaging, Cloud Functions e Cloud Storage, suportando igualmente o null-safety.

10. Google Mobile Ads SDK para Flutter

O flutter e sua extensiva lista de quesitos para operar com sucesso no ecossistema envolvem a UI bonita facilmente atingida e a integração de Ads não seria diferente. Com a integração do SDK e seus motores de controle torna bastante prático monetizar as aplicações entregado um componente de publicidade bastante chamativo e e interactivo. Este SDK ainda se encontra em beta e pudemos ver o testemunho de SUA MUSICA — uma aplicação de stream de música brasileira — que teve o número de impressões aumentada em 350%.

Fonte: Apresentação oficial do #FlutterEngage

E estas foram as minhas notas depois que acompanhei o #FlutterEngage e as novidades que vem com o Flutter 2. Sinta-se a vontade para comentar mais pontos que foram lá abordados e também expor dúvidas.

Espero que tenha aprendido com este artigo e que se tenha divertido enquanto lia.

Obrigado por acompanhar até ao fim e espero por você no próximo artigo.

Para questões e sugestões esteja a vontade para tal nos comentários, email igorlsambo1999@gmail.com ou twitter @lsambo02.

Obrigado e até ao próximo artigo!!!

--

--