Native vs Hybrid vs Cross-Platform — Mobile

Perbandingan Mendalam: Native, Hybrid, Cross-Platform Setiap pendekatan punya trade-off yang perlu dipahami sebelum memilih teknologi untuk project mobile…

Native, hybrid, dan cross-platform adalah tiga keluarga cara membuat aplikasi mobile, dan memilih di antaranya adalah soal trade-off: kamu menukar sesuatu (kecepatan, biaya, kemudahan update) dengan sesuatu yang lain. Ingat Bu Rini dan papan status di dua kota. Tukang lokal di tiap kota hasilnya paling pas, tapi dibayar dua kali dan tiap perubahan harus dikerjakan dua kali. Satu desain yang dicat tukang lokal lebih hemat dan tetap terasa lokal. Poster di bingkai paling murah dan paling cepat diganti, tapi tetap kelihatan poster. Pelajaran ini menimbang pilihan itu dengan kebutuhan nyata aplikasi Laundry Bu Rini.

🧪 Tebakan cepat: Kamu menemukan bug di aplikasi React Native Bu Rini: total order #13 tertulis Rp 1.400, padahal 2 kg × Rp 7.000 = Rp 14.000. Perbaikannya satu baris JavaScript, dan kamu mengirimnya lewat EAS Update. Mbak Wulan membuka aplikasinya 10 menit kemudian. Angka mana yang dia lihat? Jawabannya ada di bagian "Update tanpa store".

Tiga keluarga pendekatan

Jadi beda utama native dan hybrid: native memakai bahasa platform, hybrid memakai teknologi web di dalam container native. Cross-platform cocok saat kamu harus merilis ke Android dan iOS dengan satu kode dan budget terbatas. Native lebih tepat untuk grafis game yang berat atau fitur hardware terbaru.

Tabel keputusan untuk aplikasi Bu Rini

Kebutuhan aplikasinya: timnya satu web developer yang bisa React, aplikasinya harus ada di App Store dan Play Store, ada notifikasi push "Siap diambil" di iPhone, scan nota dengan kamera, daftar order yang terasa seperti aplikasi bawaan, dan perbaikan kecil bisa sampai ke pelanggan tanpa menunggu review store.

Kebutuhan Native React Native Flutter Capacitor PWA
Tanpa bahasa baru untuk tim React tidak (Swift dan Kotlin) ya tidak (Dart) ya ya
Ada di App Store dan Play Store ya ya ya ya tidak, dipasang dari browser
Push "Siap diambil" di iPhone ya ya ya ya, lewat plugin cuma kalau dipasang ke layar utama (iOS 16.4 ke atas)
Kamera untuk scan nota ya ya, lewat library ya ya, lewat plugin bisa, lebih terbatas
Daftar dari view bawaan platform ya ya tidak, digambar sendiri tidak, elemen web tidak, elemen web
Perbaikan JS tanpa review store tidak ya, EAS Update lewat pihak ketiga (Shorebird) lewat pihak ketiga (misalnya Capgo) ya, tinggal deploy

Performa dan New Architecture React Native

Untuk daftar order dan form, kelima pendekatan cukup cepat di HP zaman sekarang. Bedanya terasa di animasi berat, list ribuan baris, dan HP Android murah. Native gak punya lapisan tambahan. Flutter mengompilasi Dart ke kode mesin dan menggambar sendiri. WebView menjalankan engine browser, jadi animasi berat lebih gampang patah-patah.

React Native menjalankan JavaScript di engine Hermes, dan UI-nya view native. Cara JavaScript bicara dengan sisi native diganti sejak New Architecture:

New Architecture jadi default sejak React Native 0.76 (Oktober 2024), dan sejak 0.82 (Oktober 2025) jadi satu-satunya arsitektur: newArchEnabled=false diabaikan.

Update tanpa store

Aplikasi native di-update lewat store: build baru, kirim ke review, lalu pelanggan meng-update. Review Apple biasanya selesai 50% dalam 24 jam dan 90% dalam 48 jam. Google Play bilang review bisa sampai 7 hari, kadang lebih.

React Native punya jalan lain untuk perubahan JavaScript: OTA update (over the air), di Expo namanya EAS Update.

eas update --channel production --message "Perbaiki total harga" --environment production
Waktu Yang terjadi di HP Mbak Wulan
10.00 kamu menjalankan eas update, Rp 14.000 sudah di server
10.10 Mbak Wulan membuka aplikasi: masih Rp 1.400, update diunduh di belakang
13.00 Mbak Wulan membuka aplikasinya lagi: Rp 14.000

Jadi 10 menit kemudian dia masih melihat Rp 1.400. Angka yang benar muncul di pembukaan berikutnya, tanpa review store. Itu jawaban tebakannya.

Aturan store tetap berlaku. Pedoman App Store 2.5.2 melarang mengunduh kode yang "introduces or changes features or functionality", dan perjanjian lisensi developer Apple membolehkan kode yang diinterpretasi (seperti JavaScript) asal gak mengubah tujuan utama aplikasi. Google Play melarang aplikasi meng-update dirinya di luar Play, kecuali kode yang jalan di interpreter seperti JavaScript. Jadi pakai OTA untuk perbaikan bug, dan kirim fitur baru lewat review.

⚠️ Jebakan yang sering ketemu

TL;DR: Native memakai bahasa platform (Swift, Kotlin) dan berarti dua kode. Hybrid menjalankan teknologi web di dalam container native (WebView, misalnya Capacitor). Cross-platform memakai satu kode untuk Android dan iOS, cocok saat budget terbatas: React Native lewat view native, Flutter lewat engine sendiri. Untuk Bu Rini (tim React, wajib di store, terasa seperti aplikasi bawaan, perbaikan cepat), yang tersisa React Native. New Architecture (JSI, TurboModules, Fabric) default sejak 0.76 dan satu-satunya sejak 0.82. Review Apple biasanya di bawah 48 jam, Google Play bisa sampai 7 hari. EAS Update mengirim perubahan JavaScript tanpa review, dipakai di pembukaan berikutnya, dan gak bisa mengubah kode native.

Yang akan kamu pelajari