Middle
Quais as camadas arquitetónicas do Flutter?
sobes.tech IA
Resposta da IA
O Flutter divide-se nas seguintes camadas arquitetónicas:
- Embedder: Responsável por interagir com o sistema operativo. Fornece uma entrada específica da plataforma para renderizar superfícies, aceder a serviços de acessibilidade, entrada de utilizador e gestão do ciclo de vida. O Embedder é escrito numa linguagem adequada para a plataforma específica (Java para Android, Objective-C/Swift para iOS, C++ para Windows/Linux/macOS).
- Engine: Núcleo do framework. Implementado principalmente em C/C++. Fornece funcionalidades de baixo nível: Skia (biblioteca gráfica 2D), Text (biblioteca para trabalhar com texto), IO (entrada/saída), Dart Runtime, Flutter Engine (planeamento de tarefas, gestão de rendering, composição).
- Framework: Escrito em Dart. É a API Dart com a qual os desenvolvedores Flutter interagem diretamente. Consiste em vários níveis:
- Foundation: Classes básicas e utilitários.
- Widgets: A base da UI no Flutter. Os widgets descrevem a configuração dos elementos da interface.
- Rendering: Abstrações para rendering, que fornecem objetos de baixo nível para construir árvores de rendering.
- Painting, Gestures, Animation, etc.: Níveis que fornecem funcionalidades para desenhar, lidar com gestos, animações, etc.
- Material/Cupertino Libraries: Conjuntos de widgets que implementam os sistemas de design Material e iOS Cupertino.
Aqui está uma representação simplificada da hierarquia:
[O seu código de aplicação (Widgets Dart)]
|
[Framework (Dart)]
|
[Engine (C/C++)]
/ \
[Embedder] [Skia]
| |
[Sistema Operacional]
O Embedder inicia o Engine, que fornece Dart Runtime e API. O Framework, escrito em Dart, interage com o Engine através da API Dart. O seu código de aplicação usa os widgets do Framework para construir a interface de utilizador. O Engine, por sua vez, usa Skia para renderizar elementos no Canvas, fornecido pelo Embedder.