Flutter

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa
Flutter
Logótipo
Desenvolvedor Google
Plataforma Android, iOS, Google Fuchsia, Web, Linux, macOS e Windows
Lançamento maio de 2017 (3 anos)
Versão estável 1.20.1 (5 de agosto de 2020; há 2 meses)
Linguagem C, C++, Dart
Gênero(s) Framework de aplicação
Licença BSD 3-Clause
Página oficial flutter.dev

Flutter é um kit de desenvolvimento de interface de usuário (UI toolkit), de código aberto, criado pelo Google, que possibilita a criação de aplicativos compilados nativamente. Atualmente pode compilar para Android, iOS, Windows, Mac, Linux, Google Fuchsia[1] 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[2].

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

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

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

Exemplo[editar | editar código-fonte]

Um programa Olá Mundo do Flutter se parece com:

import 'package:flutter/material.dart';

void main() => runApp(HelloWorldApp());

class HelloWorldApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Programa Olá Mundo',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Programa Olá Mundo'),
        ),
        body: Center(
          child: Text(
            'Olá, Mundo!',
            style: TextStyle(fontSize: 18),
          ), // Text
        ), // Center
      ), // Scaffold
    ); // MaterialApp
  }
}

Ver também[editar | editar código-fonte]

Referências

  1. «Google's "Fuchsia" smartphone OS dumps Linux, has a wild new UI». Ars Technica 
  2. «Flutter: the first UI platform designed for ambient computing» (em inglês). Flutter blog. Consultado em 11 de dezembro de 2019 
  3. Lelel, Wm (26 de fevereiro de 2018). «Why Flutter Uses Dart». HackerNoon. Consultado em 5 de dezembro de 2018 
  4. a b c «Technical Overview - Flutter». flutter.dev (em inglês). Consultado em 13 de dezembro de 2017 
  5. «foundation library - Dart API». docs.flutter.dev (em inglês). Consultado em 13 de dezembro de 2017 
  6. «Material Design Widgets - Flutter». flutter.dev (em inglês). Consultado em 13 de dezembro de 2017 
  7. «Cupertino (iOS-style) Widgets - Flutter». flutter.dev (em inglês). Consultado em 13 de dezembro de 2017 
  8. «Human Interface Guidelines». developer.apple.com (em inglês). Consultado em 8 de outubro de 2019 

Ligações externas[editar | editar código-fonte]