Middle
Na aké architektonické vrstvy sa delí Flutter?
sobes.tech AI
Odpoveď od AI
Flutter je rozdelený do nasledujúcich architektonických vrstiev:
- Embedder: Zodpovedný za interakciu s operačným systémom. Poskytuje platformovo špecifický vstup na vykreslenie povrchov, prístup k službám dostupnosti, vstup používateľa a správu životného cyklu. Embedder je napísaný v jazyku vhodnom pre konkrétnu platformu (Java pre Android, Objective-C/Swift pre iOS, C++ pre Windows/Linux/macOS).
- Engine: Jadro frameworku. Implementované prevažne v C/C++. Poskytuje funkcie na nízkej úrovni: Skia (grafická knižnica 2D), Text (knižnica na prácu s textom), IO (vstup/výstup), Dart Runtime, Flutter Engine (plánovanie úloh, správa renderovania, kompozícia).
- Framework: Napísaný v Dart. Ide o Dart API, s ktorým priamo pracujú vývojári Flutter. Skladá sa z viacerých úrovní:
- Foundation: Základné triedy a utility.
- Widgets: Základ UI vo Flutter. Widgety opisujú konfiguráciu prvkov rozhrania.
- Rendering: Abstrakcie pre renderovanie, ktoré poskytujú objekty na nízkej úrovni na budovanie renderovacích stromov.
- Painting, Gestures, Animation, atď.: Úrovne, ktoré poskytujú funkcie na kreslenie, spracovanie gest, animácie atď.
- Material/Cupertino Libraries: Kolekcie widgetov, ktoré implementujú systémy dizajnu Material Design a iOS Cupertino.
Tu je zjednodušené zobrazenie hierarchie:
[Váš kód aplikácie (Dart Widgety)]
|
[Framework (Dart)]
|
[Engine (C/C++)]
/ \
[Embedder] [Skia]
| |
[Operačný systém]
Embedder spúšťa Engine, ktorý poskytuje Dart Runtime a API. Framework, napísaný v Dart, komunikuje s Engine cez Dart API. Váš aplikačný kód používa widgety Frameworku na vytvorenie používateľského rozhrania. Engine zase používa Skia na vykreslenie prvkov na plátne, ktoré je poskytované Embedderom.