Cukup banyak permintaan "kami butuh aplikasi" yang masuk ke kami ternyata untuk kebutuhan internal. Form order untuk tim sales, dashboard untuk kepala cabang, layar check-in untuk teknisi lapangan. Untuk kebutuhan seperti ini, progressive web app sering sudah cukup, lebih murah, dan lebih sedikit urusannya dibanding aplikasi di Play Store dan App Store. Untuk kebutuhan lain PWA kurang, dan kekurangannya baru terasa setelah rilis, biasanya di iPhone.
PWA Itu Sebenarnya Apa
Progressive web app atau PWA adalah website yang dibangun supaya bisa berperilaku seperti aplikasi yang terpasang di HP. Ada dua komponennya. Pertama, web app manifest, file JSON kecil berisi nama aplikasi, ikon, warna tema, dan cara aplikasi dibuka, misalnya layar penuh tanpa address bar browser. Kedua, service worker, script yang dijalankan browser di samping website Anda untuk menyimpan file dan data di cache, jadi aplikasi tetap terbuka walau tidak ada sinyal. Semuanya wajib berjalan di HTTPS.
Setelah di-install, PWA punya ikon di home screen, terbuka di jendela sendiri, dan muncul di daftar aplikasi yang sedang berjalan seperti aplikasi biasa. Di dalamnya tetap web app Anda, dibangun dengan teknologi yang sudah dipakai tim Anda, entah React, Next.js, Vue, atau Laravel dengan front-end modern. Poin terakhir ini sering jadi alasan utama memilihnya.
Kelebihan PWA
Tidak ada review store. Anda deploy ke server sendiri, dan semua pengguna langsung dapat versi baru saat membuka aplikasi lagi. Kalau ada harga salah di Jumat sore, bisa dibetulkan dalam hitungan menit, tanpa menunggu Apple menyetujui build baru. Satu codebase dipakai untuk desktop, Android, dan iOS, jadi tim yang membangun sistem web Anda tidak perlu belajar Flutter atau Kotlin dulu. Halaman publiknya juga bisa diindeks Google, berguna untuk katalog atau situs booking.
Soal ukuran, ini lebih berpengaruh di Indonesia daripada yang orang kira. Banyak HP Android kelas menengah dengan memori 64 atau 128 GB yang sudah penuh foto dan video WhatsApp, dan penggunanya rajin menghapus aplikasi supaya memori lega. PWA biasanya hanya beberapa ratus kilobyte sampai beberapa megabyte. Aplikasi di store umumnya puluhan megabyte. Untuk program loyalty atau aplikasi event yang cuma dipakai dua kali, selisih ini menentukan orang mau install atau tidak.
Tempat PWA paling cocok adalah aplikasi internal dan portal B2B. Portal distributor untuk toko yang mau order ulang stok, layar approval untuk manajer, checklist inspeksi dengan upload foto. Penggunanya memang diminta memakai aplikasi itu, jadi tampil di store tidak menambah apa-apa.
Batasan PWA di iOS
Kebanyakan kekecewaan soal PWA datang dari iPhone. Safari mendukung PWA, tapi fiturnya lebih terbatas dibanding Chrome di Android.
- Web push notification di iOS dan iPadOS baru bisa sejak versi 16.4, dan hanya untuk PWA yang sudah ditambahkan ke Home Screen. Pengguna yang sekadar membuka website di Safari tidak bisa menerima push.
- Tidak ada prompt install otomatis. Pengguna harus membuka menu Share lalu memilih Add to Home Screen, jadi Anda perlu petunjuk di dalam aplikasi yang menjelaskan caranya.
- Proses di background terbatas. Safari tidak mendukung Background Sync, jadi form yang diisi saat offline baru terkirim ketika aplikasi dibuka lagi, bukan diam-diam di belakang.
- Web Bluetooth, Web NFC, dan WebUSB tidak tersedia di Safari. Kalau alur kerja Anda butuh printer Bluetooth, scanner, atau tag NFC, PWA di iPhone tidak bisa terhubung ke perangkat itu.
- PWA tidak muncul di pencarian App Store.
Fitur sehari-hari aman di kedua platform. Foto struk, pilih file, ambil lokasi saat check-in, dan login dengan Face ID atau sidik jari lewat passkey semuanya bisa di PWA. Masalah baru muncul kalau Anda butuh lokasi yang terus dipantau di background, perangkat yang terhubung ke HP, atau proses panjang yang jalan di belakang.
Android Jauh Lebih Ramah
Chrome di Android mendukung prompt install, web push tanpa harus install, Background Sync, Web Bluetooth, dan Web NFC. Untuk pengguna yang mayoritas Android, dan di Indonesia itu berlaku untuk kebanyakan aplikasi konsumen maupun aplikasi tim lapangan, PWA bisa menjangkau lebih banyak dari dugaan orang. Satu catatan praktis: Web Bluetooth hanya bisa bicara dengan Bluetooth Low Energy, sementara banyak printer struk thermal murah memakai Bluetooth classic. Cek tipe printernya dulu sebelum menjanjikan fitur cetak dari browser.
PWA juga bisa dipublikasikan ke Google Play sebagai Trusted Web Activity (TWA). Tool seperti Bubblewrap atau PWABuilder membuatkan wrapper Android kecil yang membuka PWA Anda layar penuh lewat Chrome, dan kepemilikan domain dibuktikan dengan file Digital Asset Links. Anda mendapat halaman Play Store lengkap dengan rating, sementara fiturnya tetap di-update dari server. Aturan Play tetap berlaku, termasuk update target API level tahunan untuk wrapper-nya.
Kapan Lebih Baik Native atau Flutter
Pilih aplikasi store kalau aplikasinya harus kerja berat dalam kondisi offline. Tim sales yang input ratusan order sehari di daerah susah sinyal butuh database lokal yang sungguhan dan proses sinkronisasi dengan aturan kalau datanya bentrok. Sebagian bisa dibangun di web dengan IndexedDB, tapi tanpa background sync di iOS dan dengan batas penyimpanan browser yang lebih ketat, hasilnya rapuh justru di situasi yang paling butuh andal.
Pilih native atau Flutter juga kalau aplikasinya banyak bergantung pada hardware atau fitur OS: printer dan scanner Bluetooth di iPhone, NFC, pelacakan lokasi driver terus-menerus di background, scan dokumen dengan deteksi tepi, atau pemakaian kamera yang intens. Game juga masuk kelompok ini. Kasus terakhir soal kepercayaan. Fintech, klinik, atau brand konsumen yang pelanggannya bertanya "ada di App Store tidak?" lebih dipercaya lewat halaman store dengan ulasan daripada ikon website di home screen.
Kalau ujungnya aplikasi store, pertanyaan berikutnya Flutter atau dua aplikasi native. Itu sudah kami bahas di artikel terpisah. Ringkasnya, Flutter untuk kebanyakan aplikasi bisnis, native kalau hardware atau fitur OS terbaru memang inti produknya.
Biaya dan Perbandingan Langsung
Kalau Anda memang butuh versi web, PWA adalah cara paling murah untuk sekalian hadir di HP. Dari estimasi kami untuk aplikasi internal dan portal, PWA biasanya sekitar 25 sampai 40 persen lebih murah dibanding cakupan yang sama dalam bentuk web admin ditambah aplikasi Flutter. Backend dan admin biayanya sama, jadi penghematannya ada di bagian mobile. Biaya rutinnya ikut turun: tidak ada USD 99 per tahun untuk Apple, tidak ada pekerjaan rilis ke store, cukup satu pipeline deploy. Angka pastinya tetap tergantung cakupan.
| Kriteria | PWA | Native atau Flutter |
|---|---|---|
| Instalasi | Dari browser. Ada prompt di Android, manual lewat Add to Home Screen di iOS | Dari Google Play dan App Store |
| Update | Langsung aktif saat dibuka lagi, tanpa review | Lewat review store, pengguna harus update |
| Push notification | Android: bisa. iOS: versi 16.4 ke atas dan harus sudah di Home Screen | Didukung penuh di kedua platform |
| Offline | Layar yang di-cache dan antrean form sederhana, tanpa background sync di iOS | Database lokal, sinkronisasi di background, penanganan data bentrok |
| Bluetooth, NFC, lokasi di background | Sebagian di Android, umumnya tidak tersedia di iOS | Akses penuh |
| Kehadiran di store | Google Play lewat TWA, App Store hanya dengan wrapper | Kedua store |
| Ukuran aplikasi | Beberapa ratus KB sampai beberapa MB | Umumnya puluhan MB |
| SEO | Halaman publik bisa diindeks | Perlu website terpisah |
| Biaya pembuatan untuk cakupan sama | Sering 25 sampai 40 persen lebih rendah | Lebih tinggi, ditambah akun store dan proses rilis |
Mulai dari PWA, Bungkus Belakangan
Keputusannya tidak harus permanen sejak hari pertama. Rilis PWA dulu, lihat siapa yang benar-benar memakai dan di HP apa, lalu bungkus kalau memang perlu. Di Android, TWA bisa membawa aplikasi Anda ke Google Play dalam hitungan hari. Untuk iOS, Capacitor bisa mengemas kode web yang sama jadi aplikasi App Store sekaligus membuka akses ke plugin native untuk push, Bluetooth, atau biometrik. Apple menolak aplikasi yang cuma website di dalam bingkai lewat aturan minimum functionality, jadi versi yang dibungkus harus punya nilai lebih, misalnya push yang andal, bisa dipakai offline, atau memakai fitur perangkat.
Kalau penggunanya memang disuruh memakai aplikasi itu, tampil di store hampir tidak ada nilainya. Kalau mereka harus memilih Anda dibanding pesaing, nilainya bisa besar.
Pendapat kami, jalur ini cocok untuk aplikasi internal, portal dealer, dan order B2B. Untuk aplikasi konsumen yang adopsinya ditentukan kesan pertama di iPhone, jalur ini kurang pas. Kalau peluncuran Anda bergantung pada pengguna iPhone yang harus langsung dapat push notification tanpa langkah install, mulai saja dengan Flutter supaya tidak perlu menulis ulang.
Cara Membuat PWA yang Terasa Seperti Aplikasi
- 1Bereskan dasarnya: HTTPS, manifest berisi name, start_url, display standalone, dan ikon termasuk versi maskable, plus service worker yang terdaftar. Cek di Chrome DevTools bagian Application. Lighthouse sudah menghapus kategori PWA sejak 2024, jadi pakai DevTools untuk cek installability dan Lighthouse untuk performa serta aksesibilitas.
- 2Jalankan Lighthouse mode mobile dan kejar Core Web Vitals yang bagus di HP Android kelas menengah. PWA yang lambat di kunjungan pertama tidak akan pernah di-install.
- 3Tentukan strategi offline per jenis konten. App shell dan file statis: cache first. Data API seperti daftar produk: network first dengan cadangan dari cache, atau stale while revalidate. Workbox, atau Serwist di Next.js, sudah mengurus ini tanpa perlu menulis service worker dari nol.
- 4Rancang form offline dengan sengaja. Simpan isian di IndexedDB, tampilkan status "menunggu dikirim" yang jelas, dan kirim ulang saat aplikasi dibuka atau koneksi kembali.
- 5Anggap prompt install bagian dari UX. Di Android, tangkap event beforeinstallprompt dan tampilkan tombol install buatan sendiri setelah pengguna melakukan sesuatu yang berguna, bukan di detik pertama kunjungan pertama. Di iOS, tampilkan panduan singkat bergambar: Share, lalu Add to Home Screen.
- 6Minta izin push hanya kalau alasannya jelas, misalnya "kabari saya kalau pesanan dikirim", dan tes di iPhone sungguhan yang aplikasinya sudah ditambahkan ke Home Screen.
- 7Siapkan alur update. Saat ada service worker baru yang menunggu, tampilkan banner "versi baru tersedia" dengan tombol refresh, supaya pengguna tidak terjebak di build lama berminggu-minggu.
- 8Tes di perangkat asli: HP Android kelas menengah dengan kuota seluler, dan iPhone dengan iOS versi terbaru.
Kami membangun PWA maupun aplikasi Flutter di atas stack backend yang sama, jadi tidak ada alasan bagi kami untuk menyodorkan salah satunya. Ceritakan aplikasinya harus bisa apa dan siapa yang akan memakai, nanti kami sampaikan mana yang lebih cocok. Kadang jawabannya cukup website responsif biasa, tanpa fitur PWA sama sekali.
Poin penting
- PWA adalah web app dengan manifest dan service worker. Bisa di-install ke home screen, tetap terbuka saat offline lewat cache, dan update tanpa review store.
- PWA paling cocok untuk aplikasi internal, portal B2B, dan katalog, terutama untuk pengguna HP Android dengan memori pas-pasan.
- Di iOS, web push butuh versi 16.4 ke atas dan aplikasi harus sudah ditambahkan ke Home Screen. Background sync, Bluetooth, dan NFC tidak tersedia, dan tidak ada di App Store tanpa wrapper.
- Pilih native atau Flutter untuk sinkronisasi offline yang berat, perangkat yang terhubung ke HP, lokasi di background, game, atau kalau halaman store penting untuk kepercayaan.
- Mulai dari PWA lalu dibungkus dengan TWA atau Capacitor adalah jalur yang masuk akal untuk produk B2B, kurang pas untuk aplikasi konsumen yang banyak dipakai di iPhone.


