Flutter
Flutter | |
---|---|
Desenvolvedor | |
Plataforma | Android, iOS, Fuchsia, Web, Linux, macOS e Windows |
Lançamento | maio de 2017 (6 anos) |
Versão estável | 3.0 (11 de maio de 2022[1]) |
Escrito em | C, C++, Dart[2] |
Gênero(s) | Framework de aplicação |
Licença | BSD 3-Clause |
Página oficial | flutter |
Flutter (denominado durante o desenvolvimento pelo codinome "Sky") é um kit de desenvolvimento de interface de usuário (UI toolkit e framework), de código aberto, criado pela empresa Google em 2015, baseado na linguagem de programação Dart, que possibilita a criação de aplicativos compilados nativamente, para os sistemas operacionais Android, iOS, Windows, Mac, Linux e, Fuchsia[3] e Web.
História[editar | editar código-fonte]
A primeira versão do Flutter era conhecida com o codinome "Sky" e era executada no sistema operacional Android. Foi apresentado na cúpula de desenvolvedores Dart de 2015, com a intenção declarada de ser capaz de renderizar consistentemente a 120 quadros por segundo. Durante a keynote do Google Developer Days em Xangai, o Google anunciou o Flutter Release Preview 2, que é o último grande lançamento antes do Flutter 1.0. Em 4 de dezembro de 2018, o Flutter 1.0 foi lançado no evento Flutter Live, denotando a primeira versão "estável" do Framework. Em 11 de dezembro de 2019, o Flutter 1.12 foi lançado no evento Flutter Interactive.[4]
Em 6 de maio de 2020 foi lançado o Dart SDK na versão 2.8 e o Flutter na versão 1.17.0, onde foi adicionado suporte a API Metal, melhorando muito o desempenho em dispositivos iOS (50% aproximadamente), novos widgets do Material, além de novas ferramentas de rastreamento de rede e muito mais!
Arquitetura do Framework[editar | editar código-fonte]
Os principais componentes do Flutter incluem:
- Linguagem de programação Dart
- Flutter Engine
- Biblioteca Foundation
- Design-specific Widgets com implementações prontas para Android (Google Material) e iOS (Cupertino)
Linguagem de programação Dart[editar | editar código-fonte]
Os aplicativos Flutter são escritos na linguagem de programação Dart e fazem uso de muitos dos recursos mais avançados da linguagem.
No Windows, macOS e Linux, por meio do projeto semi-oficial Flutter Desktop Embedding, o Flutter é executado na máquina virtual Dart, que possui um mecanismo de compilação que ocorre em tempo de execução. Ao escrever e depurar um aplicativo, o Flutter usa a compilação JIT, permitindo o "hot reload", com a qual as modificações nos arquivos de origem podem ser injetadas em um aplicativo em execução. O Flutter estende isso com suporte para hot reload de widgets stateful, onde na maioria dos casos as alterações no código-fonte podem ser refletidas imediatamente no aplicativo em execução, sem a necessidade de uma reinicialização ou perda do state[5].
As versões de lançamento dos aplicativos Flutter são compiladas com a compilação antecipada (AOT) no Android e no iOS, possibilitando o alto desempenho do Flutter em dispositivos móveis.
Flutter Engine[editar | editar código-fonte]
A engine do Flutter, escrito principalmente em C++, fornece suporte de renderização de baixo nível usando a biblioteca de gráficos Skia do Google. Além disso, ele faz interface com SDKs específicos da plataforma, como os fornecidos pelo Android e iOS.[6]. O Flutter Engine é um runtime portátil para hospedar aplicativos em Flutter. Ele implementa as bibliotecas principais do Flutter, incluindo animação e gráficos, I/O de arquivos e rede, suporte à acessibilidade, arquitetura de plugins e um conjunto de ferramentas de tempo de execução e compilação do Dart. A maioria dos desenvolvedores irá interagir com o Flutter por meio do Flutter Framework, que fornece uma estrutura moderna e reativa e um rico conjunto de platform, layout e foundation widgets.
A biblioteca Foundation[editar | editar código-fonte]
A biblioteca Foundation, escrita em Dart, fornece classes e funções básicas que são usadas para construir aplicativos usando o Flutter, como APIs para se comunicar com a engine.[6][7]
Design-specific Widgets (Identidade Visual)[editar | editar código-fonte]
O framework Flutter contém dois conjuntos de widgets que estão em conformidade com linguagens de design específicas. Os widgets do Material Design implementam a identidade visual do Google e os widgets do Cupertino implementam as diretrizes de interface humana para iOS da Apple.[6][8][9][10]
Exemplo[editar | editar código-fonte]
Um programa Olá Mundo do Flutter se parece com:
import 'package:flutter/material.dart';
void main() => runApp(const HelloWorldApp());
class HelloWorldApp extends StatelessWidget {
const HelloWorldApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Programa Olá Mundo',
home: Scaffold(
appBar: AppBar(
title: const Text('Programa Olá Mundo'),
),
body: const Center(
child: Text(
'Olá, Mundo!',
style: TextStyle(fontSize: 18),
), // Text
), // Center
), // Scaffold
); // MaterialApp
}
}
Vantagens[editar | editar código-fonte]
As principais vantagens do toolkit/framework:[11]
- Alta produtividade, proveniente de uma plataforma cruzada, você pode usar a mesma base de código para seu aplicativo iOS e Android. ...
- Alta performance;
- Desenvolvimento rápido;
- Simplicidade;
- Compatibilidade.
Ver também[editar | editar código-fonte]
Referências
- ↑ «What's new in Flutter 3». medium.com (em inglês). 11 de maio de 2022. Consultado em 11 de maio de 2022
- ↑ «Flutter FAQ». flutter.dev (em inglês). Consultado em 14 de setembro de 2021
- ↑ «Google's "Fuchsia" smartphone OS dumps Linux, has a wild new UI». Ars Technica
- ↑ «Flutter: the first UI platform designed for ambient computing» (em inglês). Flutter blog. Consultado em 11 de dezembro de 2019
- ↑ Lelel, Wm (26 de fevereiro de 2018). «Why Flutter Uses Dart». HackerNoon. Consultado em 5 de dezembro de 2018
- ↑ a b c «Technical Overview - Flutter». flutter.dev (em inglês). Consultado em 13 de dezembro de 2017
- ↑ «foundation library - Dart API». docs.flutter.dev (em inglês). Consultado em 13 de dezembro de 2017
- ↑ «Material Design Widgets - Flutter». flutter.dev (em inglês). Consultado em 13 de dezembro de 2017
- ↑ «Cupertino (iOS-style) Widgets - Flutter». flutter.dev (em inglês). Consultado em 13 de dezembro de 2017
- ↑ «Human Interface Guidelines». developer.apple.com (em inglês). Consultado em 8 de outubro de 2019
- ↑ «Flutter: O que e por que utilizar?». Blend IT. 4 de agosto de 2021. Consultado em 15 de dezembro de 2021
Ligações externas[editar | editar código-fonte]
- Sítio oficial
- Tim Sneath: "Flutter is to apps as Unity is to games" – Google's product manager for Flutter interview about the development of Flutter