Hampir semua perusahaan yang mau membuat aplikasi mobile bertanya hal yang sama di awal: cukup sekali bikin dengan Flutter, atau bikin terpisah untuk Android dengan Kotlin dan untuk iOS dengan Swift? Dua-duanya bisa menghasilkan aplikasi yang bagus, dan dua-duanya punya cerita tim yang menyesal memilihnya. Jawabannya tidak terlalu bergantung pada teknologi mana yang lebih unggul secara umum. Yang lebih menentukan adalah apa yang perlu dilakukan aplikasinya, seperti apa timnya, dan berapa lama aplikasi itu akan dipakai.
Apa Bedanya Flutter dan Native
Flutter adalah framework dari Google yang memakai bahasa Dart. Flutter menggambar tampilannya sendiri dengan rendering engine miliknya, jadi kode yang sama menghasilkan layar yang sama di Android dan iOS. Akses ke fitur perangkat seperti kamera, lokasi, atau pembayaran dilakukan lewat plugin. Kalau plugin-nya belum ada, tim menulis sedikit kode Kotlin atau Swift lalu menyambungkannya lewat platform channel.
Pengembangan native berarti membuat dua aplikasi terpisah: Kotlin dengan Jetpack Compose untuk Android, dan Swift dengan SwiftUI untuk iOS. Masing-masing memakai komponen tampilan bawaan platformnya dan bisa langsung mengakses semua API dari sistem operasi. Konsekuensinya, ada dua codebase, biasanya dua kelompok developer, dan setiap fitur harus dibuat serta dites dua kali.
| Faktor | Flutter | Native (Kotlin dan Swift) |
|---|---|---|
| Codebase | Satu codebase untuk Android dan iOS | Dua codebase terpisah |
| Tim | Satu tim yang menguasai Dart dan Flutter, plus sedikit pengetahuan platform | Developer Android dan developer iOS, atau developer yang menguasai keduanya |
| Tampilan | UI identik di kedua platform, desain custom mudah dibuat | Otomatis mengikuti gaya masing-masing platform |
| Fitur perangkat | Lewat plugin, atau kode native kalau plugin belum tersedia | Akses langsung ke semua API, termasuk fitur baru di hari rilisnya |
| Ukuran aplikasi | Ukuran dasar lebih besar karena engine ikut dibundel | Ukuran dasar lebih kecil |
| Paling cocok untuk | Aplikasi bisnis, e-commerce, aplikasi internal, MVP | Aplikasi yang sangat bergantung pada hardware atau fitur OS terbaru |
Kapan Flutter Lebih Tepat
- Isi aplikasinya kebanyakan layar, form, daftar, dan data dari API. Ini menggambarkan sebagian besar aplikasi bisnis, e-commerce, booking, dan aplikasi internal.
- Desainnya harus sama persis di Android dan iOS, misalnya karena mengikuti identitas brand yang kuat.
- Anggaran atau jumlah orang hanya cukup untuk satu tim, sementara kedua platform harus rilis bersamaan.
- Tujuannya membuat MVP untuk menguji pasar dengan cepat, lalu menambah investasi kalau produknya terbukti diminati.
Kapan Native Sepadan dengan Biaya Tambahannya
- Aplikasi sangat bergantung pada hardware atau integrasi OS, seperti pemrosesan kamera tingkat lanjut, augmented reality, perangkat Bluetooth, lokasi di background, widget di home screen, atau aplikasi smartwatch.
- Kelancaran setiap frame sangat penting, misalnya untuk animasi yang kompleks, audio atau video real-time, atau game yang tidak dibuat dengan game engine.
- Aplikasi harus langsung memakai fitur baru Android atau iOS begitu dirilis, tanpa menunggu plugin-nya diperbarui.
- Perusahaan sudah punya tim Android dan iOS yang berpengalaman, sehingga pindah ke teknologi baru justru lebih mahal.
Ada juga jalan tengah. Dengan Kotlin Multiplatform, tim bisa memakai bersama logika bisnis seperti networking, model data, dan validasi di Android dan iOS, sementara tampilannya tetap native di masing-masing platform. Pilihan ini cocok untuk tim yang kuat di Kotlin dan ingin UI native tanpa harus menulis logika yang sama dua kali.
Selisih Biaya yang Sebenarnya
Flutter jarang membuat biaya proyek mobile jadi setengahnya. Satu codebase memang menghilangkan sebagian besar pekerjaan UI dan logika yang berulang, tapi ada pekerjaan yang tetap harus dilakukan per platform: setup dan review di App Store maupun Play Store, konfigurasi push notification, permission, testing di kedua platform, dan kode native untuk fitur yang belum punya plugin bagus. Biaya desain, backend, dan manajemen proyek juga sama saja. Ekspektasi yang realistis adalah penghematan yang cukup terasa di sisi aplikasinya, tapi tidak untuk keseluruhan proyek.
Sebelum memutuskan pakai Flutter, daftar semua fitur perangkat yang dibutuhkan aplikasi, lalu cek apakah masing-masing sudah punya plugin yang aktif dirawat. Satu plugin yang tidak ada untuk fitur utama bisa berubah jadi pekerjaan native berminggu-minggu.
Cek Plugin Sebelum Memutuskan
Produktivitas Flutter sangat bergantung pada ekosistem plugin-nya. Untuk kebutuhan umum seperti peta, kamera, push notification, dan penyimpanan lokal, plugin yang matang sudah tersedia. Untuk hardware yang jarang dipakai, SDK pembayaran lokal, atau perangkat dari vendor tertentu, cek dengan teliti. Di pub.dev, lihat siapa publisher-nya, kapan rilis terakhirnya, platform apa saja yang didukung, dan issue yang masih terbuka di repository-nya. Plugin yang sudah dua tahun tidak diurus akan jadi beban perawatan, walaupun hari ini masih bisa dipakai.
Tes di HP yang Benar-Benar Dipakai Pengguna
Di Indonesia, banyak pengguna memakai HP Android dengan RAM dan penyimpanan terbatas, dan sering mengunduh aplikasi pakai kuota data. Apa pun pilihannya, rutin tes aplikasi di HP Android kelas bawah, jangan hanya di HP flagship milik developer. Perhatikan waktu buka aplikasi, kelancaran scroll di daftar yang panjang, pemakaian memori, dan ukuran download. Bagi kebanyakan pengguna, hal-hal ini jauh lebih terasa daripada selisih performa Flutter dan native di atas kertas.
Cara Memutuskan dalam Praktik
- 1Daftar fitur utama aplikasi, lalu tandai fitur yang bergantung pada hardware, proses di background, atau fitur OS yang sangat baru.
- 2Untuk setiap fitur yang ditandai, cek apakah ada plugin Flutter yang aktif dirawat, atau perkirakan pekerjaan native yang dibutuhkan.
- 3Lihat kondisi tim: siapa yang akan membuat aplikasinya, dan siapa yang akan merawatnya dua sampai tiga tahun lagi.
- 4Tentukan mana yang lebih penting bagi pengguna Anda: desain custom yang konsisten, atau perilaku yang sesuai kebiasaan masing-masing platform.
- 5Kalau masih ragu, buat prototipe kecil untuk fitur yang paling berisiko dengan Flutter sebelum memutuskan untuk seluruh proyek.
Poin penting
- Flutter cocok untuk sebagian besar aplikasi bisnis, e-commerce, dan aplikasi internal, karena satu tim dan satu codebase bisa merilis kedua platform lebih cepat.
- Native Kotlin dan Swift sepadan biayanya untuk aplikasi yang sangat bergantung pada hardware, proses di background, atau fitur OS terbaru.
- Flutter menghemat biaya di sisi aplikasi, tapi tidak untuk keseluruhan proyek. Setup store, testing, dan sebagian kode native tetap dikerjakan per platform.
- Cek kualitas plugin untuk setiap fitur utama sebelum memutuskan, dan buat prototipe untuk fitur yang paling berisiko kalau masih ragu.
- Tes di HP Android kelas bawah, karena waktu buka, kelancaran, dan ukuran aplikasi lebih terasa bagi pengguna daripada hasil benchmark.


