Flutter 2.10 e o Domínio pelo Cross-Platform

Igor L Sambo💙🇲🇿
GDG Maputo
Published in
6 min readFeb 4, 2022

Flutter para Windows em release 🎉 mode

A primeira vez que eu fiz um artigo similar foi quando o Flutter 2.0 foi lançado, isso porque depois de acompanhar o desenvolvimento flutter, deu para perceber quão importante este milestone era para a comunidade, e mais uma vez, trago notas sobre o evento virtual ocorrido em 03.02.2022 (se fores americano, o primeiro número representa o dia e não mês, rsrsrs) que acredito ser mais um milestone para deixar aqui ficar.

Sem mais delongas, prossigamos….

O Flutter 2.10 vem com muita novidade, desde melhorias de performance, introdução do Material 3, entre outras actualizações para Android, iOS e DevTools. Mas o real foco, eu deixei fora da lista, que é o suporte na versão estável de aplicações para Windows, sendo que já era possível conduzir experimentos pelo canal beta e dev (R.I.P), passa agora para canal stable do Flutter.

Para melhor perceber preparei 6 pontos que achei relevantes durante o evento e para a comunidade relativo ao suporte para Windows, vamos dar uma espreitada…

1. Porquê o anuncio de Suporte para Windows em versão estável é importante?

Bom, como qualquer outra plataforma, o desenvolvimento de aplicações com recurso a Flutter é a capacidade de poder desenvolver aplicações com alta performance independentemente da plataforma, e para isso é necessário garantir uma ponte estável (😉) entre o que pode ser partilhado e o que é específico para cada plataforma. É possível avaliar este comportamento quando desenvolvemos alguns exemplos para Web, o facto de plugins como o url_launcher não terem tido suporte global de partida.

É também importante notar que os computadores (laptops/desktops) com periféricos como mouse e teclado tem o “comportamento” diferente para introdução de dados, não ignorando a arquitectura em si.

Com isso dizer que, assumir que nós já podemos a partir de um único código fazer shipping de aplicações 100% funcionais para um smartphone, web e um laptop/desktop, ainda permitir uma experiência única e ao mesmo tempo similar sem colocar em causa a performance é extremamente gratificante para uma equipe de desenvolvedores ou desenvolvedor, tendo em conta a produtividade.

2. Arquitectura

Para além do que já é sabido da arquitectura, podemos ver uma camada específica para o Windows que compõe (da esquerda para direita) introdução de dados, GPU e plataforma nativa (Win32, COM), indicando as nuances antes explicadas e como irá se comunicar com as restantes camadas do Flutter (engine), não diferenciando da antes conhecida e podendo notar como previamente explicado a introdução de dados pelo periférico.

3. A introdução do Fluent Design System

Assim como o Android meio que depende do Material Design, iOS do Cupertino, em Windows temos o Fluent, criado pela Microsoft com o mesmo objectivo de padronizar o design de produtos, e é open Source.
Isto significa que tal e qual podemos trabalhar de forma interligada entre Material e Cupertino, podemos igualmente introduzir o Fluent em nossa aplicação.

E isto é possível graças a implementação deste package — fluent_ui.

4. Performance

Um dos principais pontos que foi crucial para escolher Flutter como framework de desenvolvimento, em particular, é a promessa de Performance incomparável para Android e iOS na altura, e a mesma promessa mantém-se cumprida e em constante actualização, e para o Flutter 2.10 com aplicações Windows não é diferente, pelo que é possível a partir do engenho pequeno que o Flutter é compilar em menos tempo e executar as tarefas com recurso a tecnologia chamada zero latency startup, isto significa que o Flutter tira vantagem de ser relativamente leve para abrir as aplicações sem latência, fazendo igualmente builds pequenas, tendo executáveis super pequenos para posterior shipping.

5. Facilidade de criar aplicações para shipping

Uma aplicação Windows, como antes visto, é constituída de várias nuances comparado a aplicações para smartphone e web em termos de ficheiros gerados para shipping/deploy, gerando não só o executável (.exe) assim como vários ficheiros helpers para instalação e desinstalação, incluindo os .dll.

Após gerar os ficheiros, seria então altura de zipar e fazer o shipping da app, mas para quem costuma fazer a instalação de aplicações windows, é possível notar que existe um assistente que acompanha os passos de instalação, e não necessariamente fazer unzip de um ficheiro e clicar no executável. Para que a mesma experiência possa sentir-se em Flutter é apresentado pela comunidade o utilitário MSIX, que faz basicamente o mesmo que foi descrito antes, porém, o zip abre o nosso assistente, que permitirá instalar a aplicação em nosso sistema, mantendo-se na biblioteca de aplicações.

6. Suporte

Ser desenvolvedor significa estar disposto a ser early-adopter, podendo aprender sobre os conceitos e estar a par das actualizações que o ecossistema traz de forma super regular, mas a situação muda quando é para lidar com aplicações prontas a fazer shipping e com utilizadores que irão explorar este produto, é necessário que haja garantias das ferramentas que usamos, assim como as bibliotecas, tendo certeza que não haverá perca de suporte ao longo do caminho. O Flutter como ferramenta provou ser confiável nesse quesito e para Windows, mantém o mesmo, já esteve em beta por algum tempo, a comunidade assim como a equipe do Flutter esteve a trabalhar no engenho assim como nas ferramentas e plugins, chegando a mais 200 pacotes específicos para Windows em Flutter e 2000 compatíveis. Assim como suporte do Flutter DevTools para Debug e acessibilidade que é super importante, ou seja, está 100% equipado para responder a qualquer situação, é praticamente um 4x4.

7. Conclusão

Estes sempre foram os pilares do Flutter, aplicações portáveis, produtos bonitos, de alta performance e aberto, assim como produtividade no momento de as desenvolver.

Com estes pontos verificados, é possível notar que ao lançar o suporte para Windows na versão estável conseguimos manter o padrão e continuando a construir super aplicações com o Flutter incorporando a performance com o x64, zero latency e executáveis pequenos, tendo aplicações a entrarem em shipping com megabytes (Mb) em vez de gigabytes (Gb).

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. Registe-se na Mailing List para receber as notificações directo no seu email.

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!!!

--

--