Arquitetura

Descubra como é possível com apenas 1 código-base, entregar aplicativos para até 4 plataformas diferentes.

Entender a arquitetura do Flutter é importante, precisamos entender todo a "anatomia" dos nossos aplicativos.

Your code
Flutter (framework)
Flutter (engine)
Runners
Hardware

Código Dart do aplicativo, códigos específicos de cada plataforma (caso haja), os packages e plugins (que também são códigos Dart e/ou específicos), imagens, fontes e qualquer outro ativo do projeto.

O framework em si, também escrito em Dart.

O motor responsável por unir o seu código e o do framework e prepará-los para que sejam executados pelo hardware.

Utiliza a biblioteca Skia e o mesmo processador de textos do Google Chrome.

Responsável por delegar e controlar as instruções binárias ao hardware.

Não precisa de explicação né ?!

Durante o desenvolvimento, o seu código Dart é interpretado (JIT), possibilitando assim o hot reload e hot restart.

Ao gerar a versão final de um aplicativo, o código Dart é compilado (AOT) para bibliotecas arm/x86 e executado diretamente pelo hardware e isto é o que garante a alta performance.

Flutter framework:

Se colocarmos uma lupa nas camadas azul escuro e verde da imagem anterior, teremos os seguintes detalhes:

A camada azul anterior, na imagem abaixo é representada pela verde.

A camada verde anterior, na imagem abaixo é representada pela azul.

O framework em si, é construído sobre a Engine (C++) e é puramente código Dart.

Podemos acessar cada uma das classes e ver como um botão ou o switch é implementado.