Mengenal Flutter : Aplikasi Android dan iOS dalam Satu Codebase
Pada Mobile World Congress di 2010, Eric Schmidt, yang saat itu menjabat sebagai CEO Google mengemukakan betapa pentingnya perancang untuk mengikuti aturan mobile first dalam merancang sebuah produk. Hal ini berdasarkan fakta penetrasi smartphone yang kian meningkat dan makin banyak orang menghabiskan waktu terhubung dengan internet melalui smartphone mereka. Oleh karena itu keperluan akan perancangan dan pengembangan aplikasi mobile meningkat dari waktu ke waktu.
Berdasarkan pada data di tahun 2018. Mayoritas sistem operasi yang digunakan pada smartphone kini dikuasai oleh Android dan iOS. Untuk membuat aplikasi dari masing – masing OS memerlukan skiil penguasaan bahasa pemrogaman yang berbeda. Namun bagaimana jika kini seorang developer dapat membangun aplikasi native yang dapat berjalan sekaligus di dua sistem operasi dengan satu codebase saja? Ya. Flutter jawabannya.
Flutter adalah framework UI baru yang ditawarkan Google yang memungkinkan seorang programmer membuat aplikasi mobile cross platform yang dapat dijalankan di Android dan juga iOS. Flutter adalah respon Google terhadap kemunculan React Native di tahun 2015, sebuah platform open source yang dikembangkan oleh Github.
Berbeda dengan Cordova yang berjalan diatas WebView dan mengeksekusi HTML,CSS dan JavaScript. Flutter menggunakan Bahasa Pemrograman buatan Google, Dart yang setelah dicompile akan menghasilkan aplikasi Native dari Android dan juga iOS.
- Teknologi
Flutter menggabungkan Framework Dart dengan engine berperforma tinggi yang mengimplementasikan pustaka -pustaka inti Flutter termasuk animasi, grafis, file, network I/O dan dukungan aksesbilitas, arsitektur plugin, juga runtime Dart dan toolchain untuk melakukan proses development, compiling hingga running aplikasi flutter
Engine flutter menggunakan teknologi Core, Skia, pustaka render grafis 2D, dan juga bahasa pemrograman Dart.
- Arsitektur
Everything’s a widget. Semuanya adalah widget. Begitulah deskripsi singkat untuk menjelaskan konsep arsitektur dari Flutter. Widget adalah blok paling dasar dari aplikasi Flutter. Widget adalah komponen yang bersifat immutable dan menjadi bagian dari antarmuka pengguna. Tidak seperti framework lain yang memisahkan antara views, views controllers, layout dan properti lain. Flutter memiliki sebuah kesatuan object yang konsisten yang disebut widget.
Widget dapat terdiri dari,
- elemen terstruktur (seperti button atau menu)
- elemen stylistic (seperti font atau color scheme)
- Aspek dari layout (seperti padding)
Meskipun Flutter menggunakan satu code base untuk aplikasi iOS dan Android. Namun tidak menutup kemungkinan developer dapat memisahkan programnya untuk iOS dan Android jika diperlukan sehingga anda dapat membuat program yang berbeda untuk sistem operasi iOS dan Android.
- Kelebihan Flutter
Selain flutter ada banyak framework yang memungkinkan developer membangun aplikasi mobile cross-platform. Beberapa diantaranya adalah React Native, Xamarin, Nativescript, dsb.
Diantara semua alternatif tersebut, Flutter memiliki keunggulan sebagai berikut;
- Dart Bridge, size aplikasi memang lebih besar namun kinerjanya lebih cepat daripada React Native yang menggunakana Javascript bridge
- Support dari IDE (Android Studio, IntelliJ idea, VisualStudio Code)
- Serba widget, dapat dikatakan bahwa widget adalah basic building block untuk membuat UI aplikasi Flutter