Flutter – Wikipédia, a enciclopédia livre

Flutter
Logótipo
Flutter
Desenvolvedor Google
Plataforma x86-64, ARM, WebAssembly
Lançamento maio de 2017 (7 anos)
Versão estável 3.24.3 (12 de setembro de 2024; há 50 dias[1][2])
Escrito em C, C++, Dart[3]
Sistema operacional Android, iOS, Fuchsia, Linux, macOS e Windows
Gênero(s) Framework de aplicação
Licença BSD 3-Clause
Página oficial flutter.dev
Repositório flutter no GitHub

Flutter é um kit de desenvolvimento de software de interface de usuário (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 para Web (através de WebAssembly) e para os sistemas operacionais Android, iOS, Windows, macOS, Linux e Fuchsia.[4]

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.[5]

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 o desempenho em dispositivos iOS (50% aproximadamente), novos widgets do Material Design, além de novas ferramentas de rastreamento de rede.[carece de fontes?]

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 stateful widgets, 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 de estado.[6]

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.[7] 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.[7][8]

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.[7][9][10][11]

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({super.key});    @override   Widget build(BuildContext context) {     return MaterialApp(       title: 'Programa Olá Mundo',       home: Scaffold(         body: Center(           child: Text(             'Olá, Mundo!',             style: Theme.of(context).textTheme.titleLarge,           ), // Text         ), // Center       ), // Scaffold     ); // MaterialApp   } } 

Referências

  1. «Flutter SDK archive | Flutter». docs.flutter.dev (em inglês). 12 de setembro de 2024. Consultado em 1 de outubro de 2024 
  2. Chisholm, Kevin (6 de agosto de 2024). «What's new in Flutter 3.24». Unleashing Flutter GPU, Multi-View Embedding, and More. medium.com (em inglês). Consultado em 1 de outubro de 2024 
  3. «Flutter FAQ». flutter.dev (em inglês). Consultado em 14 de setembro de 2021 
  4. «Google's "Fuchsia" smartphone OS dumps Linux, has a wild new UI». Ars Technica 
  5. «Flutter: the first UI platform designed for ambient computing» (em inglês). Flutter blog. Consultado em 11 de dezembro de 2019 
  6. Lelel, Wm (26 de fevereiro de 2018). «Why Flutter Uses Dart». HackerNoon. Consultado em 5 de dezembro de 2018 
  7. a b c «Technical Overview - Flutter». flutter.dev (em inglês). Consultado em 13 de dezembro de 2017 
  8. «foundation library - Dart API». docs.flutter.dev (em inglês). Consultado em 13 de dezembro de 2017 
  9. «Material Design Widgets - Flutter». flutter.dev (em inglês). Consultado em 13 de dezembro de 2017 
  10. «Cupertino (iOS-style) Widgets - Flutter». flutter.dev (em inglês). Consultado em 13 de dezembro de 2017 
  11. «Human Interface Guidelines». developer.apple.com (em inglês). Consultado em 8 de outubro de 2019 

Ligações externas

[editar | editar código-fonte]