Pendahuluan
Anda sudah memiliki Aplikasi Web Progres. Aplikasi ini berfungsi di browser, memiliki manifest, dan mungkin menggunakan service worker untuk dukungan offline. Jika Anda sekarang membutuhkan distribusi di toko aplikasi, akses API perangkat native, atau funnel onboarding yang lebih baik, migrasi ke aplikasi Capacitor biasanya lebih cepat daripada mengulang front end Anda.
Kelebihan terbesar adalah Anda dapat menjaga hampir semua web code yang sudah ada. Dalam kebanyakan kasus, Anda hanya perlu:
- membangun aset web produksi
- menginisialisasi Capacitor dengan yang tepat
webDir, - menambahkan proyek iOS dan Android
- dan menghubungkan plugin native hanya di mana diperlukan
Jika PWA Anda memiliki jalur yang bersih dan logika komponen, ini dapat memakan waktu hanya beberapa jam
Prasyarat
Waktu perkiraan: 2-5 jam, tergantung fitur spesifik platform.
- Node.js 18+ dengan Bun
- Sumber PWA Anda yang sudah ada code (React, Vue, Angular, Svelte, dll.)
- Xcode (hanya untuk iOS, macOS)
- Android Studio (hanya untuk Android)
- Akun pengembang Apple jika Anda berencana untuk mempublikasikan iOS
- Akun pengembang Google Play untuk distribusi Android
Langkah 1: Periksa PWA Anda sebelum mengelilinginya dengan native
Sebelum Anda menjalankan bunx cap init, pastikan aplikasi web Anda sudah siap untuk produksi:
- Pastikan PWA Anda memiliki skrip produksi (misalnya
bun run build). - Konfirmasi folder keluaran web Anda adalah deterministik (biasanya
dist,build, atauout). - Hapus redirect absolut yang dikodekan secara keras yang asumsikan konteks browser-only.
- Verifikasi perilaku service worker yang kompatibel dengan mobile WebViews:
- Jika memungkinkan, jaga dukungan offline untuk membantu pengguna.
- Hindari API browser-only yang tidak tersedia di webview yang diintegrasikan.
- Konfirmasi prompt instalasi PWA dan UX browser yang masih relevan. Di aplikasi Capacitor biasanya tidak perlu prompt instalasi.
Langkah 2: Adaptasi perilaku web-only
Tetapkan tampilan aplikasi Anda tetapi tutup logika browser saja.
Gunakan pengecekan platform sederhana di sekitar instalasi dan prompt push:
import { Capacitor } from '@capacitor/core'
const isNative = Capacitor.isNativePlatform()
function registerInstallPrompt() {
if (isNative) return
// existing browser-only install or Web Push code
}
Hal ini menghindari logika browser saja yang berlari di dalam kontainer native.
Langkah 3: Inisialisasi Capacitor di folder PWA Anda
Dari root PWA yang sudah ada:
bun add @capacitor/core
bun add -D @capacitor/cli
Jalankan Capacitor init dengan nama aplikasi, ID aplikasi, dan direktori output web:
bunx cap init MyPWAApp com.example.my-pwa-app --web-dir dist
Jika folder build Anda adalah build (Create React App) atau out (Next.js static export), ganti dist.
Tambahkan konfigurasi Capacitor dasar:
import type { CapacitorConfig } from '@capacitor/cli'
const config: CapacitorConfig = {
appId: 'com.example.my-pwa-app',
appName: 'MyPWAApp',
webDir: 'dist',
server: {
iosScheme: 'https',
},
}
export default config
Langkah 4: Tambahkan platform native
Pasang paket native inti dan buat folder proyek:
bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android
Pada titik ini Capacitor telah dibuat ios/ dan android/ folder. Penggabungan akan menyalin aset web yang dibangun ke kedua platform.
Langkah 5: Bangun aplikasi web dan sinkronkan
Bangun PWA dan sinkronkan aset web:
bun run build
bunx cap sync
Sekarang buka proyek native:
bunx cap open ios
bunx cap open android
Dari Xcode atau Android Studio, hubungkan perangkat atau emulator dan jalankan.
Langkah 6: Perbaikan native setelah migrasi
Ini adalah tempat Anda mengganti fitur web hanya dengan API native di mana diperlukan:
- Pemberitahuan push ->
@capacitor/push-notifications - Penyimpanan kunci/nilai yang aman ->
@capacitor/preferences - Kamera / media ->
@capacitor/camera - Autentikasi biometrik ->
@capacitor-community/native-biometric(atau pilihan plugin)
Untuk setiap plugin native baru:
- Pasang paket plugin
- Konfigurasi pengaturan spesifik plugin
- Lakukan:
bunx cap sync
Lalu, bangun dan jalankan lagi.
Langkah 7: Periksa kesetaraan toko aplikasi
Sebelum pengiriman:
- Uji tautan dalam dan routing (
/dan rute dalam) pada kedua platform. - Pastikan status bar, area aman, dan orientasi benar.
- Hapus metadata web yang tidak digunakan yang bertentangan dengan perilaku aplikasi (misalnya, prompt instalasi).
- Tetapkan pengaturan keamanan transportasi dan privasi aplikasi konsisten dengan kebijakan Anda.
- Tambahkan ikon aplikasi/splash untuk setiap platform.
Jika aplikasi Anda menggunakan update OTA, pasangkan pipa rilis Anda dengan strategi update yang aman native dan pertimbangkan Capgo untuk pengelolaan rollout yang terkendali dan rollback.
Daftar periksa akhir
- Buat aplikasi web bersih (
bun run build) - Capacitor diinisialisasi dengan yang tepat
webDir bunx cap add iosdanbunx cap add androidselesai- Aplikasi native berjalan pada perangkat nyata
- Jalur browser hanya code dipasang untuk perilaku native
- Saluran pembaruan dan aset toko aplikasi dikonfigurasi
Anda telah melakukan sebagian besar pekerjaan sulit ketika membangun PWA. Mengelilingi dengan Capacitor memberikan Anda:
- Penyebaran toko
- Akses ke API native
- Iterasi yang lebih cepat tanpa perubahan penuh code
- Saluran pengembangan tunggal untuk tim web dan mobile
Mulai dari alur ini, kemudian iterasi native-by-native berdasarkan analisis dan umpan balik pengguna