Flutter

Origem: Wikipédia, a enciclopédia livre.
Flutter
Logótipo
Flutter
Desenvolvedor Google
Plataforma Android, iOS, Fuchsia, Web, Linux, macOS e Windows
Lançamento maio de 2017 (6 anos)
Versão estável 3.16.4 (13 de dezembro de 2023; há 3 meses[1][2])
Escrito em C, C++, Dart[3]
Gênero(s) Framework de aplicação
Licença BSD 3-Clause
Página oficial flutter.dev

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

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({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
  }
}

Vantagens[editar | editar código-fonte]

As principais vantagens do toolkit/framework:[12]

  • 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

  1. «Flutter SDK archive | Flutter». docs.flutter.dev (em inglês). 13 de dezembro de 2023. Consultado em 16 de dezembro de 2023 
  2. «What's new in Flutter 3.16». medium.com (em inglês). 15 de novembro de 2023. Consultado em 16 de dezembro de 2023 
  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 
  12. «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]