Newcomer 2.4

Flutter

Integrantes

  • João Guilherme Madeira Araújo - 9725165 (coordenador)
  • André Luís Mendes Fakhoury - 4482145
  • David Cairuz da Silva - 10830061
  • Gabriel Ribeiro Fonseca de Freitas - 12542651
  • Gabriela Rodrigues do Prado - 11892917
  • Gustavo Lelli Guirao - 11918182
  • João Victor Dionizio - 12543912
  • Osni Brito de Jesus - 11857330
  • Victor Gomes de Carvalho - 11275168
  • Vinicius Soares Martins - 11794907

Main Framework Features [editar]

Flutter é um framework open source de Dart desenvolvido pela Google. Sua principal característica é ser extremamente multiplataforma, podendo usar efetivamente o mesmo código para gerar aplicações para web, iOS, Android, Linux, Windows e o novo Google Fuschia, e inclusive suporta tanto arquiteturas Intel como Arm. 

Por usar a linguagem Dart,o Flutter pode ser compilado com JIT (just-in-time) compilation, o que permite "hot reload", que o Flutter estende para stateful hot reload, que permite que o programador possa mudar a aplicação enquanto ela está sendo executada, ajudando consideravelmente com a velocidade de prototipagem. Após a prototipagem a aplicação pode ser compilada com um compilador AOT (ahead-of-time) para otimizar mais ainda seu tempo de execução.

Além das características "herdadas" do Dart, o Flutter usa a biblioteca de gráficos Skia da Google, e tem acesso a SDKs específicos de cada uma das plataformas suportadas.

Por fim, Flutter vem com dois conjuntos de widgets, Material Design da Google e Cupertino da Apple.


Framework Advantages [editar]

Algumas das vantagens de Flutter são:
  • A capacidade de se manter uma única codebase para todas as plataformas (Android, iOS, Desktop, e outras).
  • Por conta da vantagem mencionada acima, o tempo de desenvolvimento dessas aplicações é reduzido consideravelmente, dado que não é necessário escrever código específico para cada plataforma.
  • Outro fator que reduz o tempo de desenvolvimento é a funcionalidade Hot reload, que permite que a aplicação seja testada de forma rápida, com as mudanças feitas no código sendo vistas quase que imediatamente, sem que se perca o estado atual da execução.
  • Flutter utiliza a Skia, uma biblioteca gráfica desenvolvida em C++, rápida e open-source. Skia redesenha a interface gráfica sempre que uma view muda, tornando a utilização da aplicação mais fluida e rápida.
  • Com todas essas vantagens, Flutter ainda apresenta praticamente a mesma performance que aplicações nativas, embora utilize, em alguns casos, mais memória e processamento.

Framework Disadvantages [editar]

Algumas das desvantagens do Flutter são:
  • A biblioteca do Flutter é extensa, mas limitada, muitos elementos ainda precisam ser adicionados;
  • Flutter não possui renderização de tags semânticas nativamente, logo para que os sites desenvolvidos em flutter sejam encontrados pelos motores de busca, é preciso importar um pacote (https://pub.dev/packages/seo_renderer);
  • Apps feitos no Flutter possuem um tamanho consideravelmente grande;
  • O Flutter usa como linguagem nativa o Dart, que é uma linguagem nova não muito amigável ainda para os desenvolvedores, o que faz os desenvolvedores optarem por usar o React, por exemplo, que como linguagem padrão usa o JavaScript;
  • Em web, o Flutter não é tão utilizado como react e Vue;
  • Desenvolvedores Flutter não conseguem editar o html, css e javascript gerados pelo código em dart.
Já no desenvolvimento de Mobile Apps, podem se destacar as seguintes desvantagens:
  • Flutter não oferece suporte para bibliotecas de terceiros, e por conta disso, a programação às vezes se torna uma tarefa bem difícil;
  • Flutter não oferece suporte para TVs Android e TVs Apple;
  • Apesar do Dart ser uma linguagem adequada para o Flutter, se torna difícil programar os apps. Mas esse problema pode ser contornado com o suporte de Java, C++, C#, e Objective-C.

Main Application Niches [editar]

Como Flutter é um framework direcionado principalmente para o desenvolvimento de aplicações mobile, o nicho de aplicações é extremamente variado, já que o alicerce pode ser escalado sob demanda do mercado. Além disso, o Flutter possui um suporte robusto para web, que será mais vantajoso para a empresa nos seguintes cenários:

  1. Aplicativo da web progressivo: Flutter conta com PWAs de alta qualidade que são totalmente integrados ao ambiente do usuário. Isso inclui instalação, todo suporte off-line e, um ponto muito valioso, experiência personalizada para usuário;

  2. Aplicação de página única: o suporte do Flutter para web possibilita que aplicativos da web autônomos complexos - com bastante conteúdo interativo e infográficos, por exemplo - possam alcançar os usuários finais em uma vasta variedade de dispositivos;

  3. Aplicativos móveis existentes: o suporte também fornece um modelo que está baseado em navegador para aplicativos móveis Flutter já existentes.

Alguns exemplos de aplicações/companhias famosas que utilizam Flutter em seu desenvolvimento são:

  • Google Ads (Marketing)

  • Alibaba (E-commerce)

  • SpaceX Go! (Transmissão ao-vivo)

  • Birch Finance (Finanças)

  • Tencent (Games)

  • The New York Times (Jornalismo)

  • Google Assistant (Inteligência Artificial)

Portanto, percebe-se que o campo de aplicação do Flutter é bem variado, graças à infinidade de possibilidades que a tecnologia fornece (PWAs, ambientes de cross-platform, etc), ficando à cargo da criatividade e objetivo do desenvolvedor utilizar as ferramentas em função da demanda da aplicação.


Future Perspectives [editar]

Atualmente, o Flutter está crescendo rapidamente e de forma constante. Isso ocorre porque a maioria dos desenvolvedores mudou de estruturas de desenvolvimento de aplicativos single-plataform para os cross-plataform, devido aos recursos e vantagens listados acima.

Essa mudança de comportamento dos desenvolvedores fez com que Flutter se tornasse um forte competidor para outros frameworks, de forma global. 

No ritmo em que o Flutter está evoluindo, pode-se esperar que ele supere as desvantagens em um futuro próximo e se torne a estrutura líder no mundo de desenvolvimento de aplicações.


References [editar]

  1. The future with flutter in 2022 & beyond. Quokka Labs. (2022, April 7). Retrieved May 27, 2022, from https://quokkalabs.com/blog/future-of-flutter-in-2022-beyond/

  2. Ddu, C. (2021, July 30). Is flutter the future? Medium. Retrieved May 27, 2022, from https://medium.com/@csi_ddu/is-flutter-the-future-af9ac62080a4

  3. Engineer, R. P. M. S. (2021, December 6). Advantages and disadvantages of Flutter App Development. Inoxoft. Retrieved May 27, 2022, from https://inoxoft.com/advantages-and-disadvantages-of-flutter-app-development/

  4. Costa, C. D. (2020, March 28). Pros and cons of using flutter. Medium. Retrieved May 27, 2022, from https://medium.com/flutter-community/pros-and-cons-of-using-flutter-1f5d1269a4b9

  5. Ossada, T. (2022, March 16). Otimizando os Motores de Buscas (SEO) no flutter web. Medium. Retrieved May 27, 2022, from https://blog.flutterando.com.br/otimizando-os-motores-de-buscas-seo-no-flutter-web-af67b7990f42

  6. Mazanik, S. (2021, September 29). Should you build your web app with Flutter Web in 2021? – applover blog. Applover. Retrieved May 27, 2022, from https://applover.com/blog/should-you-build-your-web-app-with-flutter-web-in-2021

  7. Top 8 flutter advantages. (2021, November 17). Retrieved June 4, 2022, from https://relevant.software/blog/top-8-flutter-advantages-and-why-you-should-try-flutter-on-your-next-project/ 

  8. Flutter vs react native VS native. Inverita. (n.d.). Retrieved June 4, 2022, from https://inveritasoft.com/blog/flutter-vs-react-native-vs-native-deep-performance-comparison