Dalam mobile apps development android dan iOS ada banyak tools yang dapat digunakan untuk mempermudah dalam proses developmentnya, lebih spesifik lagi dalam mobile apps development di Indonesia ada beberapa tools pengembangan mobile apps, diantaranya Native, Hybrid, dan Cross-platform.
Dalam tulisan kali ini, penulis akan sedikit mengupas mengenai Flutter, yaitu software development kit (SDK) cross-platform yang digunakan untuk mobile apps development android dan iOS yang mungkin belum banyak digunakan oleh mobile apps developer di Indonesia.
Flutter merupakan SDK besutan Google yang ditujukan untuk mobile apps development yang memiliki kinerja tinggi. Mobile apps yang di kembangkan dengan Flutter dapat dipublikasi ke platform Android maupun iOS dari codebase tunggal. Pertama dirilis pada Mei 2017 dan Pada event Google I/O awal Juni yang lalu Flutter mendapatkan update versi preview 1. Flutter dapat mudah dipelajari karena menggunakan bahasa pemrograman Dart terlebih jika sudah familiar dengan bahasa pemrograman Java dan Javascript.
Teknologi yang digunakan Flutter
Flutter ditulis dengan bahasa pemrograman C, C++, Dart, menggunakan Skia milik Google sebagai mesin render 2D, dan Blink digunakan untuk sistem render serta didukung dengan Mojo IPC. Flutter dapat dijalankan sistem operasi android 4.1 atau lebih dan iOS 8 atau lebih tinggi. Apps dari Flutter juga dapat dijalankan pada Android emulator serta iOS emulator.
Pada Google I/O yang lalu Flutter juga mendapatkan banyak fitur baru. diantaranya Material Design Widget, FlutterFire (Firebase untuk Flutter), Admobs, serta Support untuk resource animasi GIF dan WebP.
Flutter menggunakan mesin render bawaannya sendiri pada saat menampilkan widgetnya. Berbeda dengan framework cross-platform seperti React Native, Fuse, Native Script dsb yang menggunakan Webview untuk menampilkan widgetnya. karena tidak menggunakan UI bawaan dari OEM yang tertanam pada device, maka Flutter akan memiliki tampilan UI yang konsisten dan unik pada semua platform saat mobile apps dipublikasikan.
Seperti disebutkan diatas, ada banyak framework cross-platform mobile apps development, jika dibandingkan dengan framework cross-platform yang lain, berikut adalah keunggulan serta kekurangan Flutter;
Keunggulan Flutter
- Animasi Super Smooth, jika tidak ada elemen yang berlebihan maka mobile apps yang dikembangkan dengan menggunakan Flutter dapat berjalan secara konstan 60-120 fps. Karena menggunakan sistem render miliknya sendiri.
- IDE terkenal, Dapat dikembangkan dengan IDE seperti Android Studio, intellij IDEA serta VSCode.
- Mudah dipelajari, untuk yang lebih familiar dengan bahasa Java, Objective-C ataupun Swift Flutter akan mudah dipahami
- Penggunaan Object Oriented Programming (OOP).
- Hot Reload, build mobile apps untuk debug lebih cepat.
Kekurangan Flutter
- Tidak adanya JSX, karena tidak adanya JSX maka file Dart tidak terdapat pengelompokan kode components, styling karena penulisan kode akan dilakukan inline didalam objek kode tersebut
- File APK dan IPA lebih besar, konsekuensi dari konstannya performa mobile apps yang dikembangkan dari Flutter berimbas pada ukuran file yang dihasilkan, karena Flutter menggunakan Widgetnya sendiri.
- Logika animasi lebih sulit, selain File yang dihasilkan lebih besar, performa tinggi dari mobile apps yang dihasilkan juga berimbas pada saat penulisan logika pembuatan mobile apps
- Environment pengembang masih dalam perkembangan, karena Flutter baru berumur 7-8 tahun maka jika terjadi bug atau kesalahan pada proses pengembangan, akan sulit untuk mencari solusinya.
Cara kerja Flutter di Android dan iOS
Kode yang ditulis akan dikompilasi dengan mesin C dan C++ dengan menggunakan Android NDK, kerangka kode akan dibentuk dalam kode native yang akan dikompilasi lagi dengan Dart Compiler. Sedangkan pada iOS kode akan dikompilasi dengan LLVM dan mobile apps dijalankan dengan kumpulan instruksi native tanpa interpreter/penerjemah.Flutter merupakan SDK yang dibuat oleh Google yang ditujukan untuk mendukung pengembangan platform baru dari Google di masa yang akan datang yaitu Google Fuchsia, apakah anda sudah siap untuk mempelajari SDK ini?
Demikian sedikit penjelasan mengenai Flutter, yang merupakan salah satu SDK cross-platform mobile apps development.
Konsultasikan kebutuhan bisnis anda dengan tim ahli kami di Crocodic Mobile Apps Developer Indonesia.