| Flutter | |
|---|---|
| Desenvolvedor | |
| Lançamento inicial | maio de2017 (8 anos) |
| Lançamento estável | |
| Repositório | flutter noGitHub |
| Escrito em | C,C++,Dart[3] |
| Sistema operacional | Android,iOS,Fuchsia,Linux,macOS eWindows |
| Plataforma | x86-64,ARM,WebAssembly |
| Tipo | Framework de aplicação |
| Licença | BSD 3-Clause |
| Website | flutter |
Flutter é umkit de desenvolvimento de software de interface de usuário (toolkit eframework), decódigo aberto, criado pela empresaGoogle em 2015, baseado nalinguagem de programação Dart, que possibilita a criação de aplicativos para Web (através deWebAssembly) e para os sistemas operacionaisAndroid,iOS,Windows,macOS,Linux eFuchsia.[4]
A primeira versão do Flutter era conhecida com ocodinome "Sky" e era executada no sistema operacionalAndroid. Foi apresentado na cúpula de desenvolvedoresDart de 2015, com a intenção declarada de ser capaz derenderizar consistentemente a 120quadros 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 DartSDK na versão 2.8 e o Flutter na versão 1.17.0, onde foi adicionado suporte a APIMetal, melhorando o desempenho em dispositivos iOS (50% aproximadamente), novoswidgets doMaterial Design, além de novas ferramentas de rastreamento de rede.[carece de fontes?]
Os principais componentes do Flutter incluem:
Os aplicativos Flutter são escritos na linguagem de programaçãoDart e fazem uso de muitos dos recursos mais avançados da linguagem.
NoWindows,macOS eLinux, 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 emtempo de execução. Ao escrever e depurar um aplicativo, o Flutter usa a compilaçãoJIT, permitindo ohot 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 parahot reload destateful 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 deestado.[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.
A engine do Flutter, escrito principalmente emC++, fornece suporte de renderização de baixo nível usando a biblioteca de gráficosSkia do Google. Além disso, ele faz interface comSDKs específicos da plataforma, como os fornecidos peloAndroid eiOS.[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 deplugins 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, 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]
O framework Flutter contém dois conjuntos de widgets que estão em conformidade com linguagens de design específicas. Os widgets doMaterial Design implementam a identidade visual do Google e os widgets doCupertino implementam as diretrizes de interface humana para iOS da Apple.[7][9][10][11]
Umprograma Olá Mundo do Flutter se parece com:
import'package:flutter/material.dart';voidmain(){runApp(constHelloWorldApp());}classHelloWorldAppextendsStatelessWidget{constHelloWorldApp({super.key});@overrideWidgetbuild(BuildContextcontext){returnMaterialApp(title:'Programa Olá Mundo',home:Scaffold(body:Center(child:Text('Olá, Mundo!',style:Theme.of(context).textTheme.titleLarge,),// Text),// Center),// Scaffold);// MaterialApp}}