Sobes.tech
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:

  1. 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).
  2. 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).
  3. 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.