Middle
Flutter hangi mimari katmanlara ayrılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Flutter aşağıdaki mimari katmanlara ayrılmıştır:
- Embedder: İşletim sistemi ile etkileşimden sorumludur. Yüzeyleri çizmek, erişilebilirlik hizmetlerine erişmek, kullanıcı girişleri ve yaşam döngüsü yönetimi için platforma özgü giriş sağlar. Embedder, belirli platforma uygun bir dilde yazılmıştır (Android için Java, iOS için Objective-C/Swift, Windows/Linux/macOS için C++).
- Engine: Framework'un çekirdeği. Temelde C/C++ ile uygulanmıştır. Düşük seviyeli işlevsellik sağlar: Skia (2D grafik kütüphanesi), Text (metin ile çalışma kütüphanesi), IO (giriş/çıkış), Dart Runtime, Flutter Engine (görev planlama, render yönetimi, kompozisyon).
- Framework: Dart dilinde yazılmıştır. Flutter geliştiricilerinin doğrudan etkileşimde bulunduğu Dart API'sidir. Birkaç seviyeden oluşur:
- Foundation: Temel sınıflar ve yardımcılar.
- Widgets: Flutter'da UI'nin temelidir. Widget'lar arayüz öğelerinin yapılandırmasını tanımlar.
- Rendering: Render için soyutlamalar sağlar, düşük seviyeli nesnelerle render ağaçları oluşturur.
- Painting, Gestures, Animation, vb.: Çizim, jest işleme, animasyonlar ve diğer fonksiyonlar sağlayan seviyeler.
- Material/Cupertino Kütüphaneleri: Material Design ve iOS Cupertino tasarım sistemlerini uygulayan widget koleksiyonları.
İşte hiyerarşinin basitleştirilmiş bir temsili:
[Uygulama Kodunuz (Dart Widget'lar)]
|
[Framework (Dart)]
|
[Engine (C/C++)]
/ \
[Embedder] [Skia]
| |
[İşletim Sistemi]
Embedder, Dart Runtime ve API sağlayan Engine'i başlatır. Dart'ta yazılmış olan Framework, Dart API üzerinden Engine ile etkileşime girer. Uygulama kodunuz, kullanıcı arayüzünü oluşturmak için Framework'un widget'larını kullanır. Engine ise, Embedder tarafından sağlanan Canvas üzerinde öğeleri çizmek için Skia'yı kullanır.