Middle
Din ce straturi arhitecturale este împărțit Flutter?
sobes.tech AI
Răspuns de la AI
Flutter este împărțit în următoarele straturi arhitecturale:
- Embedder: Responsabil pentru interacțiunea cu sistemul de operare. Oferă o intrare specifică platformei pentru redarea suprafețelor, accesul la serviciile de accesibilitate, intrarea utilizatorului și gestionarea ciclului de viață. Embedder este scris într-un limbaj potrivit pentru platforma specifică (Java pentru Android, Objective-C/Swift pentru iOS, C++ pentru Windows/Linux/macOS).
- Engine: Nucleul framework-ului. Implementat în principal în C/C++. Oferă funcționalități de nivel scăzut: Skia (bibliotecă grafică 2D), Text (bibliotecă pentru lucrul cu textul), IO (intrare/ieșire), Dart Runtime, Flutter Engine (planificarea sarcinilor, gestionarea randării, compoziție).
- Framework: Scris în Dart. Este API-ul Dart cu care dezvoltatorii Flutter interacționează direct. Constă din mai multe niveluri:
- Foundation: Clase de bază și utilitare.
- Widgets: Baza UI în Flutter. Widget-urile descriu configurația elementelor interfeței.
- Rendering: Abstracții pentru randare, care oferă obiecte de nivel scăzut pentru construirea arborilor de randare.
- Painting, Gestures, Animation, etc.: Niveluri care oferă funcționalități pentru desen, gestionarea gesturilor, animații etc.
- Material/Cupertino Libraries: Colecții de widget-uri care implementează sistemele de design Material și iOS Cupertino.
Iată o reprezentare simplificată a ierarhiei:
[Codul tău de aplicație (Widgets Dart)]
|
[Framework (Dart)]
|
[Engine (C/C++)]
/ \
[Embedder] [Skia]
| |
[Sistemul de operare]
Embedder pornește Engine-ul, care oferă Dart Runtime și API. Framework-ul, scris în Dart, interacționează cu Engine-ul prin API-ul Dart. Codul tău de aplicație folosește widget-urile Framework-ului pentru a construi interfața utilizatorului. Engine-ul, la rândul său, folosește Skia pentru a reda elemente pe Canvas, furnizat de Embedder.