Middle
Na jaké architektonické vrstvy se dělí Flutter?
sobes.tech AI
Odpověď od AI
Flutter je rozdělen do následujících architektonických vrstev:
- Embedder: Odpovídá za interakci s operačním systémem. Poskytuje platformově specifický vstup pro vykreslování ploch, přístup ke službám přístupnosti, vstup uživatele a správu životního cyklu. Embedder je napsán v jazyce vhodném pro konkrétní platformu (Java pro Android, Objective-C/Swift pro iOS, C++ pro Windows/Linux/macOS).
- Engine: Jádro frameworku. Implementováno převážně v C/C++. Poskytuje nízkoúrovňové funkce: Skia (grafická knihovna 2D), Text (knihovna pro práci s textem), IO (vstup/výstup), Dart Runtime, Flutter Engine (plánování úloh, správa vykreslování, kompozice).
- Framework: Napsaný v Dart. Jedná se o Dart API, se kterým přímo pracují vývojáři Flutter. Skládá se z několika úrovní:
- Foundation: Základní třídy a utilitky.
- Widgets: Základ UI ve Flutter. Widgety popisují konfiguraci prvků rozhraní.
- Rendering: Abstrakce pro vykreslování, které poskytují objekty na nízké úrovni pro tvorbu renderovacích stromů.
- Painting, Gestures, Animation, atd.: Úrovně poskytující funkce pro kreslení, zpracování gest, animace atd.
- Material/Cupertino Libraries: Sady widgetů implementujících designové systémy Material Design a iOS Cupertino.
Zde je zjednodušené zobrazení hierarchie:
[Vaše aplikační kód (Dart Widgety)]
|
[Framework (Dart)]
|
[Engine (C/C++)]
/ \
[Embedder] [Skia]
| |
[Operační systém]
Embedder spouští Engine, který poskytuje Dart Runtime a API. Framework napsaný v Dartu komunikuje s Engine přes Dart API. Váš aplikační kód používá widgety Frameworku k sestavení uživatelského rozhraní. Engine naopak používá Skia k vykreslení prvků na Canvas, který je poskytován Embedderem.