Arsitektur Flutter dapat dibagi menjadi tiga lapisan utama, yaitu Framework, Engine, dan Embedder. Berikut penjelasan masing-masing bagian dari gambar yang kamu berikan untuk peserta pelatihan pemula:
1. Framework (Dart)
Layer ini ditulis menggunakan bahasa Dart dan berisi library serta alat yang digunakan pengembang Flutter untuk membuat antarmuka pengguna (UI) aplikasi.
Material dan Cupertino: Ini adalah dua jenis desain UI yang bisa digunakan. Material untuk aplikasi dengan gaya Android, dan Cupertino untuk aplikasi bergaya iOS.
Widgets: Semua yang dilihat di layar aplikasi Flutter adalah widget. Flutter menyediakan berbagai widget untuk membangun UI seperti tombol, teks, gambar, dan lainnya.
Rendering: Bertugas untuk menggambar widget ke layar. Setiap widget diterjemahkan menjadi instruksi untuk merender UI.
Animation, Painting, Gestures:
Animation: Untuk menangani animasi dalam aplikasi.
Painting: Mengelola proses menggambar atau melukis widget di layar.
Gestures: Mengelola interaksi pengguna, seperti klik, gesekan, atau pinch (mencubit layar).
Foundation: Merupakan pondasi dasar dari Framework yang menyediakan fungsi-fungsi inti yang digunakan oleh widget dan bagian lain di atasnya.
2. Engine (C/C++)
Lapisan ini ditulis dengan C/C++ dan berfungsi untuk menjalankan serta merender aplikasi di berbagai perangkat.
Service Protocol: Untuk melakukan debugging aplikasi.
Dart Isolate Setup: Menjalankan kode Dart di banyak thread agar aplikasi tetap lancar.
Dart Runtime Management: Mengelola runtime Dart, yang merupakan tempat eksekusi kode Dart berjalan.
Frame Scheduling: Mengatur penjadwalan gambar ke layar sehingga aplikasi tetap smooth dan responsif.
Composition: Menyusun elemen visual (widget) di layar.
Rendering: Memproses perintah rendering dari Framework dan menggambar UI di layar.
Frame Pipelining: Mengoptimalkan proses rendering agar tetap lancar.
Platform Channels: Komunikasi antara kode Dart dengan kode asli (native) perangkat (misalnya berkomunikasi dengan Android atau iOS).
System Events: Mengelola kejadian sistem seperti notifikasi atau status baterai.
Asset Resolution: Mengelola berbagai aset (seperti gambar dan font) sesuai dengan resolusi perangkat.
Text Layout: Mengatur tata letak teks di aplikasi.
3. Embedder (Platform-Specific)
Lapisan ini adalah bagian yang berinteraksi dengan sistem operasi perangkat (seperti Android, iOS, Windows, dll). Setiap platform memiliki embedder-nya sendiri yang memungkinkan Flutter untuk berjalan di berbagai perangkat.
Render Surface Setup: Mengatur tempat atau kanvas di mana aplikasi akan digambar.
Native Plugins: Mengelola plugin yang digunakan untuk memanggil fitur khusus dari platform (misalnya, kamera atau GPS).
App Packaging: Mengemas aplikasi ke dalam format yang dapat dijalankan di perangkat (seperti APK untuk Android).
Thread Setup & Event Loop Interop: Mengelola bagaimana aplikasi menangani tugas yang berjalan secara bersamaan (multithreading) dan bagaimana berinteraksi dengan event loop sistem operasi.
Kesimpulan:
Arsitektur Flutter terdiri dari tiga lapisan: Framework, Engine, dan Embedder. Framework ditulis dalam Dart dan menyediakan alat untuk membangun UI. Engine adalah inti dari sistem yang menjalankan aplikasi dan menangani rendering. Embedder memungkinkan Flutter untuk berjalan di berbagai platform seperti Android, iOS, atau desktop dengan berinteraksi langsung dengan sistem operasi.
Arsitektur Flutter dapat dibagi menjadi tiga lapisan utama, yaitu Framework, Engine, dan Embedder. Berikut penjelasan masing-masing bagian dari gambar yang kamu berikan untuk peserta pelatihan pemula:
1. Framework (Dart)
Layer ini ditulis menggunakan bahasa Dart dan berisi library serta alat yang digunakan pengembang Flutter untuk membuat antarmuka pengguna (UI) aplikasi.
Material dan Cupertino: Ini adalah dua jenis desain UI yang bisa digunakan. Material untuk aplikasi dengan gaya Android, dan Cupertino untuk aplikasi bergaya iOS.
Widgets: Semua yang dilihat di layar aplikasi Flutter adalah widget. Flutter menyediakan berbagai widget untuk membangun UI seperti tombol, teks, gambar, dan lainnya.
Rendering: Bertugas untuk menggambar widget ke layar. Setiap widget diterjemahkan menjadi instruksi untuk merender UI.
Animation, Painting, Gestures:
Foundation: Merupakan pondasi dasar dari Framework yang menyediakan fungsi-fungsi inti yang digunakan oleh widget dan bagian lain di atasnya.
2. Engine (C/C++)
Lapisan ini ditulis dengan C/C++ dan berfungsi untuk menjalankan serta merender aplikasi di berbagai perangkat.
3. Embedder (Platform-Specific)
Lapisan ini adalah bagian yang berinteraksi dengan sistem operasi perangkat (seperti Android, iOS, Windows, dll). Setiap platform memiliki embedder-nya sendiri yang memungkinkan Flutter untuk berjalan di berbagai perangkat.
Kesimpulan:
Arsitektur Flutter terdiri dari tiga lapisan: Framework, Engine, dan Embedder. Framework ditulis dalam Dart dan menyediakan alat untuk membangun UI. Engine adalah inti dari sistem yang menjalankan aplikasi dan menangani rendering. Embedder memungkinkan Flutter untuk berjalan di berbagai platform seperti Android, iOS, atau desktop dengan berinteraksi langsung dengan sistem operasi.