Saat ini teknologi untuk pengembangan aplikasi berbasis mobile sudah memiliki banyak pilihan, dan dalam tahun-tahun terakhir perusahaan-perusahaan besar teknologi berlomba-lomba untuk membuat enviroment dan framework atau bahasa pemrograman untuk membuat lingkungan pengembangan aplikasi mobile mereka sendiri. Nah untuk pembuatan aplikasi mobile sendiri ada dua metode yang paling populer dan paling banyak digunakan oleh perusahaan-perusahaan berbasi IT yaitu cross platform aplikasi dan native aplikasi.

Saat ini ada dua framework mobile cross platform yang paling populer dan paling banyak digunakan yaitu Flutter dari Google dan React Native dari Facebook. Selain itu native aplikasi yang paling populer di iOS adalah Swift dan Objective-C sedangkan untuk platform Android ada Java dan Kotlin yang menjadi bahasa resmi dari Google.

Karena pilihan yang begitu banyak pastinya sebelum menggunakan Tech Stack di atas anda harus tahu kelebihan dan kekurangan dari Tech Stack tersebut, karena dalam membuat sebuah product anda harus tahu kemampuan budget, resource dan scale aplikasi berdasarkan konsumen anda. Nah oleh karena itu penulis ingin berbagi infromasi tentang hal tersebut yang kebetulan saya telah mencoba semua tech stack tersebut.


Flutter VS React Native VS Native Kelebihan Kekurangan

Flutter VS React Native VS Native 

1. Flutter

Flutter adalah kit pengembangan perangkat lunak UI open-source yang dibuat oleh Google. Ini digunakan untuk mengembangkan aplikasi untuk Android, iOS, Windows, Mac, Linux, Google Fuchsia dan web.

Kelebihan Flutter :
  • Dukungan Google 
  • Dokumentasi Resmi Yang Jelas dan Terstruktur
  • Dukungan Komunitas
  • Satu CodeBase untuk banyak Platform (iOS, Android, Web, Mac Os)
  • Menggunakan Bahasa Dart
  • Proses pembuatan aplikasi lebih cepat ketimbang Native App
  • Biaya Produksi product lebih murah ketimbang Native App
  • Hadir dengan Hot Reload
  • Animasi dan API yang lebih lengkap daripada React Native
  • Kode yang ditulis lebih sedikit

Kekurangan Flutter :
  • Performa masih kalah dengan Native App
  • Library yang belum selengkap React Native
  • Umur yang relatif muda ketimbang Native App dan React Native
  • Developer yang lebih kewalahan karena menulis dua Platform


2. React Native

Kelebihan React Native :
  • Aplikasi anda akan  lebih cepat selesai (MVP) dari pada yang Native App
  • Tim pengembangan hanya terdiri dari 5 orang, bukan 8 orang atau lebih
  • Penguji menghabiskan lebih sedikit waktu pada TDD
  • Bug lebih cepat di selsesaikan 
  • Library NPM yang berlimpah
  • Ditulis dengan Javascript jadi web developer pun bisa 
  • Biaya lebih murah ketimbang Native App
  • Dukungan Facebook 
  • Satu Codebase untuk banyak platform (Android, iOS, Web)
  • Komunitas yang luas
  • Terpercaya karena sudah lebih dari 4 tahun dan banyak dipakai perusahaan besar
  • Live Reload 

Kekuranag React Native :
  • Performa lebih berat ketimbang Native App
  • Break Change Major jika Facebook migrate contoh seperti versi 0.59 ke 0.60.xx
  • Menguras CPU lebih besar
  • Developer yang lebih kewalahan karena menulis dua Platform
  • Learning Curve yang besar seperi Redux, Saga, MobX
  • Library yang tidak resmi 
  • Dokumentasi resmi Facebook yang kurang terstruktur

3. Native App

Kelebihan Native App :
  • Performa yang baik 
  • Kemanan yang lebih baik
  • Ukuran aplikasi lebih kecil
  • Khusus untuk sistem tertentu, lebih mudah untuk dikerjakan
  • Komunitas besar pengembang di seluruh dunia
  • Sangat compatible dengan device karena dirancang khusus
  • Lebih mudah untuk scale untuk user yang banyak
  • Dukungan jangka panjang yang baik sebut saja Java atau Swift yang sudah dipercaya banyak perusahaan besar
  • Library dan 3rd party  yang  lebih terpercaya
  • Dokumentasi resmi yang sangat baik

Kekuranag Native App :
  • Waktu pengerjaan untuk minimum viable product lebih lama
  • Codebase hanya bisa digunakan untuk spesific platform
  • Biaya dan Resoure yang jauh lebih besar 
  • Developer sallary yang lebih mahal ketimbang Hybrid Dev
  • TDD yang juga perlu banyak orang untuk Tester

Kesimpulan

Jika anda ingin membuat aplikasi untuk platform iOS dan Android dengan biaya yang terbatas dan waktu yang relatif singkat saya sarankan anda menggunakan React Native.

Jika anda ingin membuat aplikasi dengan animasi yang kompleks dengan budget yang cukup dan waktu dealine yang relatif singkat maka saya sarankan anda menggunakan Flutter.

Jika anda ingin membuat aplikasi dengan perfoma yang tinggi dan baik untuk skala besar-besaran  serta memiliki resource budget dan resource developer yang banyak maka saya sarankan anda menggunakan Native App seperti Kotlin dan Swift.


Sekian semoga artikel Perbandingan Flutter VS React Native VS Native Kelebihan Kekurangan dapat bermanfaat dan membantu anda untuk menentukan tech stack dari mobile development anda.