Pembaruan hidup yang terbaik adalah yang tidak perlu diperhatikan oleh pengguna.
Biasanya berarti tiga hal:
- Unduhan kecil.
- Pengeluaran dikontrol.
- Pulihkan instan jika ada kesalahan.
Saran yang sama untuk menjaga OTA tipis juga berlaku di Capgo. Perbedaan adalah Capgo memberikan tim Capacitor beberapa alat tambahan: Pembaruan delta, saluran, pengembalian otomatis, target versi, dan enkripsi akhir-ke-akhiran opsional Pembaruan delta.
Jika Anda menggunakan kedua-duanya bersamaan, Anda mendapatkan muatan yang lebih kecil, instalasi yang lebih cepat, dan banyaknya kekacauan operasional yang lebih sedikit.
Lean sangat penting bahkan ketika MAU tetap sama
Detail yang berguna Capgo-spesifik: Capgo MAU adalah efektif jumlah perangkat aktif bulanan yang menghubungi layanan pembaruan dalam 30 hari terakhir.
Jadi mengurangi bundle bukanlah trik utama untuk mengurangi penghitungan MAU. Ini penting karena memperbaiki bagian yang dirasakan oleh pengguna dan tim:
- Download yang lebih cepat pada jaringan seluler atau Wi-Fi yang lemah
- Pengalaman yang lebih baik dengan pembaruan langsung
- Kurangnya bandwidth yang terbuang karena pembaruan yang gagal atau dibatalkan
- Radius ledakan yang lebih kecil ketika melakukan pengujian atau pengujian pembaruan
Pembaruan yang lebih tipis sebenarnya tentang kecepatan, keselamatan, dan disiplin operasional.
1. Gunakan pembaruan Delta sebagai default
Jika Anda hanya melakukan satu hal, lakukan ini.
Capgo’s Pembaruan Delta kirim hanya file yang berubah antara versi-versi daripada mengunduh kembali bundle web penuh. Itu adalah kemenangan tunggal terbesar untuk kinerja OTA rutin.
bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta
Setelah tes QA selesai:
bunx @capgo/cli@latest bundle upload --channel production --delta
Jika Anda ingin CI tetap ketat, gunakan --delta-only agar tidak ada orang yang tidak sengaja kembali ke unggah bundle penuh:
bunx @capgo/cli@latest bundle upload --channel production --delta-only
Gunakan hanya --delta-only ketika armada produksi Anda mendukung Pembaruan Delta. Pada versi plugin campuran, perangkat yang lebih tua yang tidak mendukung pengiriman delta berdasarkan manifest tidak akan dapat mengunduh pembaruan tersebut.
Hal ini lebih penting lagi jika Anda menggunakan directUpdate, karena waktu antara "ditemukan pembaruan" dan "aplikasi di-reload" menjadi terlihat oleh pengguna.
2. Tatal aset seperti aset, bukan beban JavaScript
Aset besar adalah di mana bundle OTA diam-diam menjadi buncit.
Aturan-aturan praktis:
- Jangan menyisipkan gambar atau media besar di dalam JavaScript ketika file asset biasa sudah cukup.
- Tetapkan konten yang sering berubah di CDN milik Anda sendiri atau API jika tidak perlu hidup di dalam bundle aplikasi yang dikirimkan.
- Berhati-hatilah dengan gambar pemasaran, video onboarding, dan aset kampanye satu kali yang diganti setiap rilis.
- Biarkan aset yang stabil tetap stabil. Dengan pembaruan Delta, file yang tidak berubah digunakan kembali daripada didownload lagi.
Ini adalah salah satu cara termudah untuk menjaga Capgo tetap cepat seiring aplikasi tumbuh. Pola buruk yang paling parah adalah perbaikan UI kecil yang memaksa pengguna untuk mendownload tumpukan media yang tidak terkait.
3. Tetapkan rilis native untuk perubahan native yang sebenarnya
Capgo memperbarui layer web: HTML, CSS, JavaScript, dan aset yang dimuat pada runtime.
Tidak merupakan saluran yang tepat untuk:
- plugin native baru,
- perubahan izin,
capacitor.config.tsperubahan- Apapun yang mengubah keadaan proyek native iOS atau Android.
Baris itu juga penting untuk kinerja. Jika Anda terus menambahkan perubahan struktural besar ke jalur OTA, strategi pembaruan Anda akan semakin berat dan berisiko seiring waktu.
Pakai dua jalur rilis secara sengaja:
Jalur Native
Untuk perubahan plugin, perubahan izin, dan konfigurasi native:
bun run build
bunx cap sync
Kemudian kirimkan rilis toko normal.
Capgo jalur
Untuk iterasi layer web yang aman:
bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta
Juga refresh basis native Anda secara teratur jika Anda baru-baru ini menambahkan banyak asset yang berumur panjang. Pembangunan toko segar mengintegrasikan basis baru tersebut, yang menjaga perbedaan Capgo di masa depan lebih kecil.
4. Gunakan saluran untuk menjaga ukuran pembaruan kecil
Pembaruan “tipis” tidak hanya tentang megabyte. Ini juga tentang berapa banyak perangkat yang menerima pembaruan sebelum Anda tahu bahwa itu baik.
Capgo’s sistem saluran adalah cara paling bersih untuk mengontrol itu:
staginguntuk QAbetauntuk tester yang diundangproductionuntuk semua oranghotfixuntuk pemulihan darurat
Alur sederhana seperti ini:
- Unggah ke
staging. - Validasi pada perangkat nyata.
- Luncurkan secara bertahap, baik melalui saluran yang dikendalikan atau perbandingan berdasarkan persentase.
- Balikkan segera jika kesehatan menurun.
Jika aplikasi Anda memiliki beberapa dasar native di luaran, pasangkan saluran dengan versi targeting. Yang menjaga bundle yang tidak kompatibel atau berat tidak perlu dari biner yang lebih tua.
Untuk tim yang ingin memiliki loop tinjauan yang lebih ketat, Capgo juga cocok untuk PR preview. Yang memungkinkan produk, QA, dan stakeholders menguji perubahan JS tanpa harus menunggu build internal baru TestFlight atau Play.
5. Jika Anda mengaktifkan update langsung, optimalkan jalur startup keras
Semakin cepat Anda ingin update diterapkan, semakin disiplin jalur startup Anda harus.
Capgo’s perilaku update docs secara eksplisit merekomendasikan menggabungkan directUpdate dengan Delta updates. Itu adalah default yang tepat.
Gardail kedua notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
If aplikasi Anda tidak melaporkan siap dalam jendela default 10 detik, atau dalam apa pun yang Anda tetapkan dalam konfigurasi __CAPGO_KEEP_0__ Anda, __CAPGO_KEEP_1__ dapat menandai bundle tersebut tidak valid dan memulihkan versi sebelumnya yang baik. Perilaku rollback itu yang Anda inginkan dalam produksi, tetapi itu juga berarti Anda harus menjaga startup bersih: notifyAppReady() Jalankan appReadyTimeout you set in your Capacitor config, Capgo can mark that bundle invalid and restore the previous good version. That rollback behavior is what you want in production, but it also means you should keep startup clean:
- Hindari pekerjaan boot-time yang lambat di jalur kritis
notifyAppReady()Simpan dan memulihkan status aplikasi dengan hati-hati jika Anda reload segera - Uji skenario jaringan buruk dan perangkat rendah sebelum peluncuran luas
- Jika Anda belum memeriksa halaman itu secara berkala, panduan
- notifyAppReady
layak dibaca kembali. 6. Gunakan saluran pembaruan internal daripada pembaruan native yang tidak perlu Jika Anda memiliki masalah dengan __CAPGO_KEEP_1__ yang tidak dapat diakses, lihatlah halaman __CAPGO_KEEP_2__ untuk memulai.
Jika Anda memiliki masalah dengan __CAPGO_KEEP_1__ yang tidak dapat diakses, lihatlah halaman __CAPGO_KEEP_2__ untuk memulai.
Banyak tim mobile menghabiskan waktu untuk membangun biner untuk perubahan yang jelas-jelas hanya berbasis web.
Jika perubahan adalah:
- salinan (copy),
- peningkatan tampilan UI,
- alur masuk pengguna (onboarding flow),
- logika layar harga (pricing screen logic),
- pengaturan koneksi analitik (analytics wiring),
- flag fitur (feature flags),
- penampilan respons prompt atau API.
maka update Capgo seringkali lebih cepat untuk diuji ulang.
That means fewer native rebuilds, less TestFlight churn, and a tighter feedback loop for the team. It is one of the most underused benefits of Capgo: you can move more review and QA work into the OTA lane without breaking the native/web boundary.
Hal ini adalah salah satu manfaat yang paling tidak terpakai dari __CAPGO_KEEP_0__: Anda dapat memindahkan lebih banyak pekerjaan review dan QA ke jalur OTA tanpa melanggar batasan native/web. staging dengan satu ID aplikasi mobile menutupi cara praktis untuk menjaga ini bersih secara waktu.
7. Jaga lean terpisah dari rahasia
Bundel kecil dan bundel aman menyelesaikan masalah yang berbeda.
Kontrol saluran menentukan kelayakan. Mereka tidak membuat bundel rahasia dengan sendirinya.
Jika Anda membutuhkan jaminan pengiriman yang lebih kuat:
- aktifkan Enkripsi Update Langsung,
- gunakan penyimpanan kustom atau pengiriman self-hosted,
- jaga kunci pribadi hanya di CI atau alur kerja operator yang terjamin.
Itu tidak membuat ukuran update tidak relevan. Itu hanya berarti Anda harus mengoptimalkan kedua dimensi:
- siapkan untuk kecepatan,
- enkripsi untuk kontrol pengiriman,
- saluran untuk kontrol peluncuran,
- rollback untuk pemulihan.
Alur kerja praktis “Capgo” yang sederhana
Jika Anda ingin model operasional default yang sederhana, gunakan ini:
- Jaga jalur rilis native dan OTA terpisah.
- Upload perubahan JS dengan
--deltasecara default. - Gunakan
stagingdanbetasaluran sebelumnyaproduction. - Watch update statistik dan log setelah peluncuran, bukan hanya sebelumnya.
- Buat PR menjadi pratinjau yang dapat diinstal ketika pembangunan asli tidak diperlukan.
- Tahan media besar, yang sering berubah, dari bundle di mana-mana jika memungkinkan.
- Segarkan dasar asli setelah pertumbuhan besar aset atau perubahan asli.
- Tangani
notifyAppReady()dan perilaku rollback sebagai bagian dari teknik rilis, bukan trivia pengaturan.
Kombinasi tersebut tetap cepat lebih lama daripada pendekatan umum “hanya unggah apa yang berubah”.
Pikiran penutup
Bagi tim Capgo , “tipis dan cepat” bukan hanya masalah ukuran bundle.
Itu adalah masalah desain rilis.
Gunakan pembaruan Delta untuk ukuran payload, saluran untuk ukuran peluncuran, dan pengembalian untuk ukuran kegagalan. Setelah Anda berpikir tentang OTA dalam cara itu, pembaruan Anda tetap cepat bahkan ketika aplikasi, tim, dan basis pengguna semakin besar.
Teruslah dari Cara untuk Menjaga Capgo Pembaruan Tipis dan Cepat
Jika Anda menggunakan Cara untuk Menjaga Capgo Pembaruan Tipis dan Cepat untuk merencanakan routing saluran dan peluncuran yang dipersiapkan, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Solusi Pengujian Beta untuk alur kerja produk dalam Solusi Pengujian Beta, dan Solusi Target Versi untuk alur kerja produk dalam Solusi Target Versi.