Migrasi dari Cordova ke Capacitor: plugin mapping, config translation, dan perbedaan fundamental. Upgrade path dari Capacitor 7 → 8, strategi mengikuti major baru dengan aman, serta praktik upgrade dengan checklist breaking changes.

Setelah di episode 23 kita membangun monitoring dan crash reporting, pada episode ini kita membahas dua topik maintenance penting: migrasi dari Cordova ke Capacitor, dan upgrade major version Capacitor. Keduanya adalah keputusan yang mempengaruhi seluruh siklus hidup aplikasi.
Mengapa topik ini penting? Karena Cordova masih banyak dipakai di legacy apps, dan Capacitor sendiri terus berevolusi. Memahami jalur migrasi dan upgrade akan menghemat waktu dan mengurangi risiko.
| Aspek | Cordova | Capacitor |
|---|---|---|
| Native project | Artifact (di-generate) | Source code (di-commit) |
| Plugin manager | cordova plugin add | npm install @capacitor/... |
| Config | config.xml | capacitor.config.ts |
| Platform | cordova platform add | npx cap add |
| Build | cordova build | npx cap sync + native IDE |
| Plugin compatibility | 100% Cordova plugins | Cordova compat layer + native |
| Cordova Plugin | Capacitor Equivalent |
|---|---|
cordova-plugin-camera | @capacitor/camera |
cordova-plugin-file | @capacitor/filesystem |
cordova-plugin-geolocation | @capacitor/geolocation |
cordova-plugin-device | @capacitor/device |
cordova-plugin-statusbar | @capacitor/status-bar |
cordova-plugin-splashscreen | @capacitor/splash-screen |
cordova-plugin-keyboard | @capacitor/keyboard |
cordova-plugin-inappbrowser | Tidak diperlukan (buka di WebView) |
Capacitor mendukung Cordova plugin secara langsung:
npm install cordova-plugin-camera
npx cap syncCordova plugin akan berfungsi, tetapi dengan catatan:
npm install @capacitor/core @capacitor/cli
npx cap init "App Name" "com.example.app" --web-dir wwwnpx cap add ios
npx cap add androidnpm run build
npx cap copyGanti Cordova plugin satu per satu dengan Capacitor equivalent:
# Sebelum
npm uninstall cordova-plugin-camera
npm install @capacitor/camera
npx cap syncSetelah semua plugin terganti:
rm -rf platforms/
rm -rf plugins/
rm config.xmlTip
Jangan migrasi sekaligus. Ganti plugin satu per satu dan test setiap perubahan. Migrasi bertahap mengurangi risiko regression.
| Perubahan | Dampak | Mitigasi |
|---|---|---|
| Node.js ≥20 wajib | Upgrade Node | Gunakan nvm |
| Swift 6 support | Xcode upgrade | Update Xcode |
| SPM default | Hapus CocoaPods | Migrasi ke SPM |
| SystemBars changes | Edge-to-edge | Update safe area CSS |
| CapacitorHttp enabled by default | CORS behavior berubah | Test networking |
# 1. Update dependencies
npm install @capacitor/core@latest @capacitor/cli@latest
# 2. Update semua plugins
npm install @capacitor/camera@latest @capacitor/filesystem@latest
# 3. Sync
npx cap sync
# 4. Buka di IDE dan resolve issues
npx cap open ios
npx cap open android
# 5. Test semua fitur
npm run testCapacitor 9 (alpha saat tulisan ini) memperkenalkan:
Note
Untuk Capacitor 9, tunggu stable release sebelum upgrade. Alpha/beta bisa memiliki breaking changes yang berubah sebelum GA.
Pada episode 24 ini, kalian telah memahami:
Di episode 25 selanjutnya, kita akan membahas Capstone: Aplikasi Production-Grade End-to-End — satu produk lengkap dari repo React dengan auth biometric, push notification, offline CRUD, deep link share, theming, yang dirilis ke TestFlight + internal testing Play Store dengan CI/CD + live updates aktif. Sampai jumpa!