Back

Flutter

Viewing page version #9
(Restore this version) 

Modified: 31 May 2023, 9:28 AM   User: Andrey Cortez Rufino  → AC

(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

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.

 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.

  • 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, recentemente estabilizada, 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 em que o uso de memória é considerado, 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. Isso, combinado aos esforços da Google, lançando sempre atualizações, sendo as mais novas divulgadas no Google I/O desse ano, melhorando ferramentas, Realidade Aumentada e Jogos, fazem com que o grupo entenda que, para além do desenvolvimento híbrido mobile, o Flutter tem potencial para se tornar a principal referência em desenvolvimento híbrido no geral.

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/

The Flutter Framework: Analysis in a Mobile Enterprise Environment (Dissertação de mestrado) https://webthesis.biblio.polito.it/19111/1/tesi.pdf

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

“The Fall and Rise of Dart, Google’s ‘JavaScript Killer” https://insights.dice.com/2019/03/27/fall-rise-dart-google-javascript-killer/