Memahami perbedaan `npx cap copy` vs `sync`, urutan build web → sinkronisasi → run, serta cara setup live reload sehingga perubahan kode langsung terlihat di simulator/emulator tanpa rebuild manual.

Setelah di episode 3 kita memahami anatomi project dan capacitor.config.ts, pada episode ini kita fokus ke development workflow sehari-hari. Di dunia nyata, kalian tidak akan rebuild dan sync manual setiap kali mengedit kode. Live reload dan hot-reload adalah kunci produktivitas.
Mengapa workflow penting? Karena perbedaan kecil antara copy dan sync bisa menambah 30 detik di setiap siklus develop. Kalikan dengan ratusan iterasi per hari, itu waktu yang signifikan.
Dua command yang sering tertukar:
| Command | Fungsi | Kapan Pakai |
|---|---|---|
npx cap copy | Hanya menyalin file build web ke folder native | Development (cepat) |
npx cap sync | Copy + update dependency + update plugin registries | Setelah install/remove plugin |
npx cap copy # cepat, untuk iterasi develop
npx cap sync # lengkap, setelah perubahan dependencyAturan praktis: gunakan copy saat development harian, gunakan sync saat menambah/menghapus plugin atau mengubah capacitor.config.ts.
Workflow standar tanpa live reload:
npm run build # 1. Build web ke dist/
npx cap copy # 2. Copy dist/ ke folder native
npx cap run ios # 3. Jalankan di simulatorSetiap kali mengedit kode, kalian harus menjalankan tiga command ini. Ini lambat, tetapi membantu memahami alur data: kode web → build → copy → native project → WebView.
Live reload membuat WebView memuat konten dari dev server di host (komputer kalian), bukan dari file statis yang di-copy. Artinya, perubahan kode langsung terlihat tanpa rebuild.
npm run dev
# Vite default: http://localhost:5173capacitor.config.ts dengan URL dev server:const config: CapacitorConfig = {
// ...
server: {
url: 'http://192.168.1.100:5173',
cleartext: true,
androidScheme: 'https',
},
};npx cap run ios --live-reload
npx cap run android --live-reloadSekarang setiap kali kalian mengedit kode di VS Code, perubahan langsung muncul di simulator/emulator tanpa rebuild.
WebView berjalan di dalam perangkat virtual. Ia tidak bisa mengakses localhost komputer kalian. Kalian harus menggunakan IP address lokal komputer host:
# macOS
ipconfig getifaddr en0
# Linux
hostname -I
# Windows
ipconfigGunakan IP ini di server.url, bukan localhost.
Warning
Pastikan komputer dan perangkat/emulator berada di jaringan yang sama. Jika pakai VPN, live reload bisa gagal karena IP tidak bisa diakses dari dalam emulator.
Beberapa fitur web (service worker, camera API) membutuhkan konteks HTTPS. Untuk live reload dengan HTTPS:
npx cap run ios --live-reload --https
npx cap run android --live-reload --httpsCapacitor akan generate sertifikat self-signed. Di iOS Simulator, kalian perlu mempercayai sertifikat ini manual. Di Android, kalian perlu menambahkan network security config.
Setelah live reload aktif, workflow harian menjadi:
npm run dev di terminal pertama (dev server).npx cap run ios --live-reload di terminal kedua (sekali saja).Siklus develop yang sebelumnya membutuhkan 3 command setiap iterasi, sekarang hanya edit → save → lihat perubahan.
Kembali ke npx cap sync saat:
npm install @capacitor/camera).capacitor.config.ts secara signifikan.npm update @capacitor/core).npm install @capacitor/camera
npx cap syncPada episode 4 ini, kalian telah memahami:
copy untuk development cepat, sync untuk perubahan dependency.localhost, di server.url.--https untuk fitur yang membutuhkan secure context.Di episode 5 selanjutnya, kita akan membahas plugin system dan core plugins — bagaimana model API plugin bekerja, plugin resmi vs komunitas, dan integrasi lima core plugin ke aplikasi contoh. Sampai jumpa!