Zurück

Flutter

Seitenversion #14 anzeigen
(Diese Version wiederherstellen) 

Geändert: 31. Mai 2023, 09:41   Nutzer/in: Andrey Cortez Rufino  → AC

(Melhor visualização em Docs)


Flutter

Histórico

O Flutter foi inicialmente apresentado pela Google em 2015 na Conferência de Desenvolvedores Dart com o nome Sky, com novas versões de preview lançadas ao longo do tempo até o lançamento de sua primeira versão estável, 1.0, em 4 de dezembro de 2018. Com o passar do tempo, o projeto foi desenvolvendo novas versões, trazendo otimizações e expandindo sua lista de plataformas nativas alvo.

Dart

O Flutter utiliza a linguagem Dart, desenvolvida pela Google com o objetivo de mitigar as frustrações dos desenvolvedores da empresa ao lidar com as extensivas bases de código da empresa em Javascript, substituindo gradualmente o desenvolvimento de suas aplicações JS pela nova linguagem, tendo sua primeira versão estável lançada ao público em 2013. Contudo, apesar das tentativas por parte da empresa, o Dart não foi abraçado por desenvolvedores como a nova linguagem da web; porém, a linguagem acabou eventualmente se mostrando ideal para o uso no projeto Flutter, com sua flexibilidade de plataformas alvo, performance e sintaxe familiar, baseada em C e Javascript.

Atualidade

Flutter 2

Em 3 de março de 2021, com o lançamento da sua versão 2.0, o Flutter trouxe suporte oficial para criação de aplicação web, com componentes específicos para a plataforma e o aprimoramento dos motores de renderização. No mesmo ano, a plataforma foi atualizada para uso da última versão do padrão de design da Google em Android, o Material Design, e dando suporte para a nova arquitetura da Apple, o Apple Silicon.

Flutter 3

A plataforma agora suporta aplicativos iOS, Android e web, bem como aplicativos de desktop Windows, macOS e Linux, tudo como parte da versão estável do Flutter. No macOS, isso inclui suporte para binários universais para que os aplicativos possam ser executados nativamente nos chips Intel e Apple Silicon. Para o Linux, o Google fez uma parceria com a Canonical do Ubuntu para “oferecer uma opção de desenvolvimento altamente integrada e de primeira linha”.

Nesse lançamento o Google anunciou o Casual Games Toolkit para o catálogo do Flutter. Esse conjunto de ferramentas é composto por um kit inicial para desenvolvimento de jogos mobile mais simples.


Principais funcionalidades e vantagens

O framework em questão apresenta diversas funcionalidades que tornam a produtividade e a facilidade de desenvolvimento o foco do seu uso. Destas, destacam-se null safety, hot reload e hot restart, as bibliotecas de widgets, e, principalmente, o desenvolvimento cross-platform combinado ao desempenho de aplicação nativa.

Null safety, hot reload e hot restart

Por ser um framework para Dart, ele se beneficia dos recursos de null safety do Dart, promovendo um aplicativo muito mais resiliente a bugs e diminuindo drasticamente erros em tempo de execução. Já o recurso de hot reload e hot restart ajuda a acelerar o processo de desenvolvimento, permitindo visualizar mudanças lógicas e visuais sem precisar recompilar todo o aplicativo, apenas as bibliotecas alteradas.

Dart Native 

A tecnologia do compilador do Dart permite que você execute o código de diferentes maneiras. Na plataforma nativa, o Dart inclui uma VM Dart com compilação just-in-time (JIT) e um compilador AOT (ahead-of-time) para produzir código de máquina, para apps destinados a dispositivos móveis e desktop. E na plataforma da web, seu compilador web traduz o Dart em JavaScript, compilando para fins de desenvolvimento ou produção.

Codebase única

O Flutter já inclui widgets nas linguagens de design Cupertino, Material Design e Fluent Design, da Apple, Google e Microsoft, respectivamente. Suas aplicações são compiladas para Web, iOS, Android e Windows nativamente, permitindo uma única code base para múltiplas plataformas. Por fim, essa code base não utiliza nenhuma camada de tradução ou virtualização, mas sim, gera aplicativos nativos para cada plataforma.

Utilização por empresas

Dessa forma, o desempenho de uma aplicação desenvolvida em Flutter é muito próximo quando comparado a aplicativos desenvolvidos com ferramentas específicas da plataforma, mas demandando equipes de desenvolvimento cada vez menores e mais eficientes. Cada vez mais, empresas como a NuBank, por exemplo, ou BMW, Ebay, Toyota e Alibaba, estão transpondo suas aplicações para Flutter devido às facilidades e benefícios.


Desvantagens

Apesar de todas as funcionalidades e vantagens apresentadas, hoje, ainda que largamente usado, o Flutter apresenta uma série de problemas, relacionados à sua proposta de desenvolvimento híbrido, seu tempo de existência e a diferenciação das etapas de desenvolvimento entre o foco em aplicações mobile e web.

Poucas bibliotecas

Hoje, apesar de contar com, aproximadamente, 19 mil bibliotecas (sendo a mais famosa delas a GetX, idealizada por um brasileiro), é considerado um framework com poucas opções quando comparado ao React, por exemplo, apesar disso estar diminuindo ano a ano. Um dos impactos disso é, exemplificando, as diversas dificuldades no aproveitamento de hardware, como no caso do Bluetooth.

Para além do mobile

O problema de adaptação se estende aos wearable devices e às plataformas de TV. São necessárias estratégias diferentes na interação com as interfaces, seja pela ausência de recursos ou, então, pela mudança do meio de entrada de informações. Para a versão Web,  o problema costuma ser ainda maior, uma vez que, por não ser SEO friendly, a indexação de aplicações com Flutter são dificilmente indexadas.

Memória e documentação

Para além das questões de adaptação, as aplicações desenvolvidas em Flutter costumam ser relativamente maiores quando comparadas às desenvolvidas nativamente o que, em contextos onde recursos como memória e processamento são mais limitados, torna-se um problema. A documentação, por fim, ainda que muito bem desenvolvida, ainda não é tão extensa e carece de volume de dúvidas específicas de desenvolvedores.


Nichos e perspectivas futuras

Onipresença na Google

Por ser um Framework com suporte da Google, ele está presente em alguns serviços da empresa como o Google Ads, tornando rápida e prática a inserção das propagandas, o Google Pay e diversos outros aplicativos. Hoje, também está em execução nos serviços do Stadia, compondo tanto projetos já estabilizados quanto os novos projetos.

Utilização na China

Numa perspectiva mundial, o framework possui grande presença no mercado chinês, com 20% dos desenvolvedores atuais sendo da região.  Há vários exemplos de grandes empresas chinesas que adotaram o Flutter, como a Tencent, do ramo de serviços WEB e jogos como League of Legends, a ByteDance, responsável pelo TikTok e a Alibaba, segundo maior serviço de compra e venda do país.

Desenvolvimento, foco e próximos anos

É evidente que os benefícios e a crescente utilização tornam o Flutter um dos frameworks mais promissores no desenvolvimento de aplicações, senão o mais promissor.  Anualmente, no evento promovido pela Google com foco na comunidade de tecnologia e desenvolvedores, o Google I/O, são apresentadas novidades do Flutter e grandes iterações no ecossistema. Este ano não foi diferente, com a introdução do Dart 3 grandes avanços foram feitos, como uma melhoria no “null-safety” da linguagem, garantindo por completo que quando uma variável é declarada como não nula, ela jamais será nula. Além disso, foram introduzidas grandes novas funcionalidades a linguagem, como records, patterns, e class modifiers.

Referências

Dart (Documentação)                                                         https://dart.dev/overview


Dart (Wikipedia) https://en.wikipedia.org/wiki/Dart_(programming_language)


Dart Conference                                      https://events.dartlang.org/2018/dartconf/


Flutter (Documentação)                                                              https://docs.flutter.dev/


Flutter (Wikipedia)                             https://en.wikipedia.org/wiki/Flutter_(software)


Google I/O 2023 

https://io.google/2023/program/intl/pt/?q=flutter


Announcing Dart 3 

https://medium.com/dartlang/announcing-dart-3-53f065a10635


Doutbox

https://doutbox.com.br/blog/flutter-3-o-que-ha-de-novo#:~:text=Em%20maio%20deste%20ano%20(2022,framework%20para%20desenvolvimento%20de%20aplicativos