Flutter (software) - Flutter (software)
Autor (es) original (is) | |
---|---|
Desenvolvedor (s) | Google e comunidade |
lançamento inicial | Alpha (v0.0.6) / maio de 2017 |
Versão estável | |
Repositório | |
Escrito em | C , C ++ , Dart |
Plataforma | Android , iOS , Google Fuchsia , plataforma da web , Linux , macOS e Windows |
Modelo | Framework de aplicação |
Licença | Nova Licença BSD |
Local na rede Internet | flutter |
Flutter é um kit de desenvolvimento de software de IU de código aberto criado pelo Google . É usado para desenvolver aplicativos de plataforma cruzada para Android , iOS , Linux , Mac , Windows , Google Fuchsia e a web a partir de uma única base de código .
Descrito pela primeira vez em 2015, o Flutter foi lançado em maio de 2017.
História
A primeira versão do Flutter era conhecida como codinome "Sky" e rodava no sistema operacional Android . Ele foi revelado no encontro de desenvolvedores do DART 2015 com a intenção declarada de ser capaz de renderizar de forma consistente a 120 quadros por segundo . Durante a apresentação do Google Developer Days em Xangai em setembro de 2018, o Google anunciou o Flutter Release Preview 2, que é o último grande lançamento antes do Flutter 1.0. Em 4 de dezembro daquele ano, 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, Flutter 1.12 foi lançado no evento Flutter Interactive.
Em 6 de maio de 2020, foram lançados o kit de desenvolvimento de software ( SDK ) Dart na versão 2.8 e o Flutter na versão 1.17.0, onde foi adicionado suporte à API Metal , melhorando o desempenho em dispositivos iOS (aproximadamente 50%), novo material widgets e novo rastreamento de rede.
Em 3 de março de 2021, o Google lançou o Flutter 2 durante um evento online Flutter Engage. Esta grande atualização trouxe suporte oficial para aplicativos baseados na web com o novo renderizador CanvasKit e widgets específicos da web, suporte a aplicativos de desktop de acesso antecipado para Windows , macOS e Linux e APIs Add-to-App aprimoradas . Este lançamento incluiu segurança nula sonora , o que causou muitas alterações importantes e problemas com muitos pacotes externos, mas a equipe do Flutter também incluiu instruções para mitigar essas alterações.
Em 8 de setembro de 2021, o Dart SDK na versão 2.14 e o Flutter versão 2.5 foram lançados pelo Google. A atualização trouxe melhorias para o modo de tela inteira do Android e a versão mais recente do Material Design do Google, chamada Material You. O Dart recebeu duas novas atualizações, as condições de fiapos mais recentes foram padronizadas e predefinidas como as condições padrão, assim como o Dart para Apple Silicon agora está estável.
Arquitetura de framework
Os principais componentes do Flutter incluem:
- Plataforma de dardos
- Motor oscilante
- Biblioteca da Fundação
- Widgets de design específico
- Flutter Development Tools (DevTools)
Plataforma de dardos
Os aplicativos Flutter são escritos na linguagem Dart e usam muitos dos recursos mais avançados da linguagem.
No Windows , macOS e Linux, o Flutter é executado na máquina virtual Dart, que possui um mecanismo de execução just-in-time . Ao escrever e depurar um aplicativo, o Flutter usa a compilação Just In Time, permitindo o "recarregamento a quente", com o qual modificações nos arquivos de origem podem ser injetadas em um aplicativo em execução. O Flutter estende isso com suporte para recarregamento dinâmico com estado , onde na maioria dos casos as alterações no código-fonte são refletidas imediatamente no aplicativo em execução, sem exigir uma reinicialização ou qualquer perda de estado .
Para melhor desempenho, as versões de lançamento de aplicativos Flutter direcionados para Android e iOS são compiladas com compilação antecipada (AOT) .
Motor oscilante
O mecanismo 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 . O Flutter Engine é um runtime portátil para hospedar aplicativos Flutter. Ele implementa as principais bibliotecas do Flutter, incluindo animação e gráficos, arquivo e E / S de rede, suporte de acessibilidade, arquitetura de plug-in e um runtime Dart e conjunto de ferramentas de compilação. A maioria dos desenvolvedores interage com o Flutter por meio do Flutter Framework, que fornece uma estrutura reativa e um conjunto de plataforma, layout e widgets de base.
Biblioteca da Fundação
A biblioteca Foundation, escrita em Dart , fornece classes e funções básicas que são usadas para construir aplicativos usando Flutter, como APIs para se comunicar com o mecanismo.
Widgets de design específico
A estrutura Flutter contém dois conjuntos de widgets que estão em conformidade com linguagens de design específicas: widgets de design de material implementam a linguagem de design do Google com o mesmo nome e widgets Cupertino implementam as diretrizes de interface humana iOS da Apple .
Widgets
O Flutter usa uma variedade de widgets para entregar um aplicativo totalmente funcional. Esses widgets são a arquitetura de estrutura do Flutter. O Catálogo de widgets do Flutter fornece uma explicação completa e API sobre a estrutura.
Noções básicas de widgets no Flutter
Os widgets são geralmente definidos em três tipos básicos: widgets com estado, widgets sem estado e widgets herdados. Sendo a hierarquia de classes central na estrutura do Flutter, os três tipos básicos de widgets são usados na construção de cada aplicativo do Flutter. Embora todas as instâncias de um widget sejam imutáveis , o widget Stateful permite a interação entre o usuário e o aplicativo. Ao fornecer acesso ao método setState, o estado pode ser mantido em objetos de estado separados. Como alternativa, o widget sem estado atua como uma constante e, antes que qualquer coisa exibida possa ser alterada, o widget precisa ser recriado. O widget Inherited funciona permitindo que outro widget assine o estado de widgets herdados, permitindo que o estado seja passado para seus filhos.
Veja também
- Apache Cordova
- Appcelerator Titanium
- Codename One
- Estrutura de aplicativos baseados na web para vários telefones
- NativeScript
- React Native
- Xamarin