Lewati ke konten
Niqcode

Catatan

Flutter vs React Native untuk aplikasi bisnis: cara memilih yang sesuai

Panduan memilih antara Flutter dan React Native untuk aplikasi Android dan iOS perusahaan: perbedaan mendasarnya menurut dokumentasi resmi, faktor yang benar-benar menentukan, dan pertanyaan yang perlu dijawab sebelum memutuskan.

Terbit

Hampir setiap percakapan tentang aplikasi mobile untuk bisnis sampai di pertanyaan yang sama: Flutter atau React Native? Keduanya memungkinkan satu basis kode untuk Android dan iOS. Jadi pertanyaan yang lebih berguna bukan mana yang lebih bagus, tapi mana yang lebih cocok untuk aplikasi Anda, untuk tim yang akan merawatnya, dan untuk sistem yang sudah Anda punya.

Kami membangun dengan keduanya dan memutuskannya per aplikasi. Tulisan ini merangkum cara kami menimbangnya. Fakta teknis di bawah merujuk ke dokumentasi resmi masing-masing, jadi Anda bisa memeriksanya sendiri.

Perbedaan mendasarnya

Aplikasi Flutter ditulis dalam bahasa Dart. Menurut dokumentasi arsitektur Flutter, Flutter punya implementasi sendiri untuk setiap kontrol UI, bukan memakai komponen bawaan sistem, dan tampilannya digambar lewat engine rendering bernama Impeller.

React Native memakai JavaScript dan React. Dokumentasinya menjelaskan bahwa saat aplikasi berjalan, React Native membuat view Android dan iOS yang sesuai untuk setiap komponen. Jadi tombol dan daftar di aplikasi Anda adalah komponen native milik platform. Menurut situs resminya, React Native dirilis Meta pada 2015 dan masih dipelihara sampai sekarang.

Dari perbedaan ini muncul satu konsekuensi praktis. Aplikasi Flutter cenderung tampil sama di Android dan iOS, karena semuanya digambar sendiri. Aplikasi React Native memakai komponen bawaan tiap platform, jadi lebih dekat dengan aplikasi lain di ponsel yang sama. Mana yang lebih baik tergantung kebutuhan Anda: merek yang butuh tampilan identik di dua platform, atau pengguna yang lebih nyaman dengan pola yang sudah mereka kenal.

Faktor yang benar-benar menentukan

Di proyek kami, pilihannya jarang ditentukan oleh selera. Yang biasanya menentukan adalah lima hal berikut.

Siapa yang akan merawat aplikasinya

Aplikasi bisnis hidup bertahun-tahun setelah rilis. Kalau tim internal Anda sudah terbiasa dengan React untuk web, React Native lebih dekat dengan keahlian mereka. Kalau tim Anda belum punya preferensi, atau aplikasinya akan dirawat vendor, pertimbangan ini lebih ringan. Coba tanyakan: dua tahun lagi, siapa yang akan membuka kode ini?

Perangkat keras dan fitur native

Printer Bluetooth, scanner, NFC, kebutuhan kamera yang khusus, atau SDK dari bank dan penyedia identitas sering jadi penentu. Periksa dulu apakah library yang Anda butuhkan tersedia dan masih dirawat untuk masing-masing framework. Kalau tidak ada, keduanya tetap bisa. Flutter memakai platform channel untuk bertukar pesan dengan kode Kotlin atau Swift, dan React Native memakai Turbo Native Module untuk kode native Android dan iOS. Pekerjaan native ini ada biayanya, jadi bagian itu perlu masuk lingkup sejak awal.

Perilaku offline dan sinyal buruk

Aplikasi untuk sales lapangan, gudang, atau kurir sering dipakai di tempat dengan sinyal lemah. Kemampuan offline lebih banyak ditentukan oleh arsitektur aplikasinya, yaitu penyimpanan lokal, antrean sinkronisasi, dan cara menangani data yang bentrok, daripada oleh framework. Jadi jangan memilih framework karena janji “offline-first”. Pastikan perilaku offline ditulis per layar di lingkup pekerjaan.

Beban animasi dan tampilan khusus

Kalau aplikasi Anda punya grafik interaktif, animasi yang padat, atau desain yang sangat khas merek, cara Flutter menggambar seluruh tampilannya sendiri memberi kendali penuh atas setiap piksel. Untuk aplikasi yang isinya kebanyakan formulir, daftar, dan persetujuan, perbedaan ini jarang terasa oleh pengguna.

Kode dan sistem yang sudah ada

Kalau Anda sudah punya web app dengan React, sebagian pengetahuan tim dan pola kodenya bisa dipakai lagi di React Native. Sebaliknya, kalau di perusahaan Anda sudah ada aplikasi Flutter, menambah satu aplikasi dengan stack yang sama biasanya lebih mudah dirawat daripada mencampur dua.

Anggapan yang perlu diluruskan

Satu basis kode tidak berarti nol kode native. Kedua framework menyediakan jalur resmi untuk memanggil kode platform, karena memang ada fitur yang hanya tersedia di sana.

Satu basis kode juga tidak berarti pekerjaannya tinggal separuh. Pengujian tetap perlu dilakukan di Android dan di iOS, rilis tetap melewati review App Store dan Google Play masing-masing, dan akun store tetap ada dua.

Kecepatan kerja harian developer juga jarang jadi pembeda. Flutter punya stateful hot reload yang menerapkan perubahan tanpa kompilasi ulang penuh, dan React Native punya Fast Refresh yang aktif secara default. Dua-duanya membuat perubahan kecil bisa dilihat hampir seketika selama pengembangan, jadi faktor ini jarang layak jadi alasan memilih.

Framework juga bukan faktor biaya terbesar. Jumlah layar, integrasi dengan sistem lain, kebutuhan offline, dan proses rilis jauh lebih menentukan harga daripada pilihan antara Flutter dan React Native. Satu catatan untuk proyek React Native baru: dokumentasinya sendiri menyarankan memakai framework seperti Expo, supaya fitur dasar seperti navigasi dan akses ke API native tidak perlu dibangun dari nol.

Pertanyaan sebelum memutuskan

  1. Siapa yang akan merawat aplikasi ini setelah rilis, dan bahasa apa yang mereka kuasai?
  2. Fitur perangkat apa yang wajib ada, dan apakah library-nya tersedia dan dirawat untuk kedua framework?
  3. Layar mana yang harus tetap berfungsi tanpa sinyal?
  4. Seberapa penting tampilan yang identik di Android dan iOS untuk merek Anda?
  5. Apakah di perusahaan Anda sudah ada web app React atau aplikasi Flutter lain?
  6. Siapa yang memegang akun store dan kredensial signing?

Kalau jawabannya condong ke satu sisi, pilihannya biasanya sudah jelas. Kalau seimbang, keduanya akan bekerja, dan keputusan yang lebih penting adalah siapa yang merawatnya.

Bagaimana kami memutuskannya

Di proyek pembuatan aplikasi Android dan iOS yang kami kerjakan, framework dipilih dari kebutuhan aplikasinya dan disepakati sebelum layar pertama dibangun. Kalau ada fitur yang memang butuh kode native, kami tulis bagian native-nya, bukan mencari jalan memutar. Akun store dan kredensial signing tetap dipegang Anda, dan alur rilisnya diserahkan ke tim Anda, jadi aplikasinya tidak bergantung pada laptop satu orang.

Intinya, Flutter dan React Native sama-sama bisa membawa aplikasi bisnis Anda ke dua store. Pilih yang paling cocok dengan fitur perangkat yang dibutuhkan dan dengan tim yang akan merawatnya, lalu tuliskan alasannya, supaya keputusan itu bisa diperiksa lagi nanti.

Rujukan