Angular, React, Vue and Others
Students will work in groups to create a Wiki comparing major client-side JavaScript frameworks: Angular, React, Vue and Others. If you did not work before with Moodle Wikis, see this small video (3:36 min.) on the Wiki activity page.
Newcomer 2.4
(Ripristina questa versione)
Data di modifica: 4 giugno 2022, 21:16 Utente: David Cairuz da Silva → DC
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
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
- 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
- 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.
- 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.
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:
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;
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;
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.
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.
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/
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
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/
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
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
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