Middle
Na koje arhitektonske slojeve se deli Flutter?
sobes.tech АИ
Одговор од АИ
Flutter je podeljen na sledeće slojeve arhitekture:
- Embedder: Odgovoran za interakciju sa operativnim sistemom. Pruža platformu-specifični ulaz za renderovanje površina, pristup servisima pristupačnosti, unos korisnika i upravljanje životnim ciklusom. Embedder je napisan u jeziku prikladnom za specifičnu platformu (Java za Android, Objective-C/Swift za iOS, C++ za Windows/Linux/macOS).
- Engine: Jezgro framework-a. Implementirano uglavnom u C/C++. Pruža funkcionalnosti niskog nivoa: Skia (grafička biblioteka 2D), Text (biblioteka za rad sa tekstom), IO (ulaz/izlaz), Dart Runtime, Flutter Engine (planiranje zadataka, upravljanje renderovanjem, kompozicija).
- Framework: Napisan u Dart-u. To je Dart API sa kojim Flutter programeri direktno rade. Sastoji se od više nivoa:
- Foundation: Osnovne klase i pomoćni alati.
- Widgets: Osnova UI u Flutter-u. Widgeti opisuju konfiguraciju elemenata interfejsa.
- Rendering: Apstrakcije za renderovanje, koje pružaju objekte niskog nivoa za građu render stabala.
- Painting, Gestures, Animation, itd.: Nivoi koji pružaju funkcionalnost za crtanje, obradu gestova, animacije itd.
- Material/Cupertino Libraries: Kolekcije widgeta koji implementiraju dizajn sisteme Material Design i iOS Cupertino.
Evo pojednostavljene predstave hijerarhije:
[Vaš kod aplikacije (Dart Widgeti)]
|
[Framework (Dart)]
|
[Engine (C/C++)]
/ \
[Embedder] [Skia]
| |
[Operativni sistem]
Embedder pokreće Engine, koji pruža Dart Runtime i API. Framework, napisan u Dart-u, komunicira sa Engine-om putem Dart API-ja. Vaš kod aplikacije koristi widget-e Framework-a za građu korisničkog interfejsa. Engine zauzvrat koristi Skia za renderovanje elemenata na Canvas-u, koji je obezbeđen od strane Embedder-a.