Yang terbaik dari pembaruan live adalah yang pengguna Anda hampir tidak menyadari.
Biasanya berarti tiga hal:
- Unduhan kecil.
- Pengeluaran dikontrol.
- Pemulihan instan jika ada kesalahan.
Saran yang sama “tetaplah tipis OTA” yang berlaku di wilayah React Native juga berlaku untuk Capgo. Perbedaannya adalah bahwa Capgo memberikan tim Capacitor beberapa alat tambahan: Pembaruan delta, saluran, pengembalian otomatis, target versi, dan enkripsi akhir-ke-akhiran yang optional dan wajib.
Jika Anda menggunakan kedua-duanya bersamaan, Anda akan mendapatkan muatan yang lebih kecil, instalasi yang lebih cepat, dan banyaknya kekacauan operasional yang lebih sedikit.
Hal yang berbobot 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. Hal ini penting karena memperbaiki bagian yang dirasakan oleh pengguna dan tim:
- Download yang lebih cepat pada jaringan seluler atau Wi-Fi lemah
- Pengalaman yang lebih baik dengan pembaruan langsung
- Kurangnya penggunaan bandwidth yang sia-sia pada rilis yang gagal atau dibatalkan
- Radius ledakan yang lebih kecil ketika melakukan pengujian atau pengujian rilis
Pembaruan yang lebih tipis sebenarnya tentang kecepatan, keselamatan, dan disiplin operasional.
1. Gunakan pembaruan Delta sebagai default
Jika Anda hanya melakukan satu hal, lakukan hal ini.
Capgo’s Pembaruan Delta kirim hanya file yang berubah antara 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 pengunggahan 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
dan
menjadi terlihat bagi pengguna.
Some practical rules:
- Jangan menyisipkan gambar besar atau media 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 paket aplikasi yang dikirim.
- Berhati-hatilah dengan gambar pemasaran, video onboarding, dan aset kampanye satu kali yang diganti setiap rilis.
- Biarkan aset 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 yang paling buruk adalah perbaikan UI kecil yang memaksa pengguna untuk mendownload tumpukan media yang tidak terkait.
3. Tetapkan rilis native untuk perubahan native yang sebenarnya
Capgo updates the web layer: HTML, CSS, JavaScript, and assets loaded at runtime.
Tidak merupakan saluran yang tepat untuk:
- plugin native baru,
- perubahan izin,
capacitor.config.tsperubahan,- aplikasi iOS atau Android asli yang dapat diubah.
Baris tersebut juga penting untuk kinerja. Jika Anda terus menambahkan perubahan struktural besar ke jalur OTA, strategi pembaruan Anda akan semakin berat dan berisiko seiring waktu.
Gunakan dua jalur rilis secara sengaja:
Jalur asli
Untuk perubahan plugin, perubahan izin, dan konfigurasi asli:
bun run build
bunx cap sync
Lalu rilislah aplikasi toko biasa.
Jalur Capgo
Untuk iterasi layer web yang aman:
bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta
Jangan lupa memperbarui basis native secara teratur jika Anda baru-baru ini menambahkan banyak asset yang berumur panjang. Pembangunan toko yang segar mengintegrasikan basis baru tersebut, yang menjaga perbedaan Capgo di masa depan lebih kecil.
4. Gunakan saluran untuk menjaga ukuran rollout kecil
Pembaruan yang 'tipis' tidak hanya tentang megabyte. Ini juga tentang berapa banyak perangkat yang menerima pembaruan sebelum Anda tahu bahwa itu baik.
Jalur 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.
- Rilis secara bertahap, baik melalui saluran yang dikendalikan atau melalui perbandingan persentase.
- Kembali segera jika kesehatan menurun.
Jika aplikasi Anda memiliki beberapa dasar native di luar sana, pasang saluran dengan versi targeting. Yang menjaga bundle yang tidak kompatibel atau berat tidak perlu dari biner lama.
Untuk tim yang ingin 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 startup dengan
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.
Pilar keamanan kedua notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Jika 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. Itu perilaku rollback yang Anda inginkan dalam produksi, tetapi itu juga berarti Anda harus menjaga startup bersih: notifyAppReady() Panggil 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 pulihkan status aplikasi dengan hati-hati jika Anda reload segera - Uji skenario jaringan buruk dan perangkat rendah sebelum peluncuran luas
- Jika Anda belum memeriksa halaman ini secara berkala, panduan __CAPGO_KEEP_1__ tentang notifyAppReady patut dibaca kembali.
- 6. Gunakan saluran pembaruan internal daripada pembaruan native yang tidak perlu
Jika Anda tidak memeriksa halaman ini secara berkala, panduan __CAPGO_KEEP_1__ tentang notifyAppReady patut dibaca kembali. 6. Gunakan saluran pembaruan internal daripada pembaruan native yang tidak perlu 6. Gunakan saluran pembaruan internal daripada pembaruan native yang tidak perlu
6. Gunakan saluran pembaruan internal daripada pembaruan native yang tidak perlu
Banyak tim mobile menghabiskan waktu untuk membangun biner untuk perubahan yang jelas-jelas hanya berbasis web.
Jika perubahan adalah:
- salinan,
- peningkatan UI,
- alur masuk pengguna,
- logika layar harga,
- pengaturan analitik,
- flag fitur,
- prompt atau API rendering respons,
maka update Capgo seringkali lebih cepat dalam proses tinjauan.
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 kurang dimanfaatkan dari __CAPGO_KEEP_0__: Anda dapat memindahkan lebih banyak pekerjaan tinjauan dan QA ke jalur OTA tanpa melanggar batas native/web. staging dengan satu ID aplikasi mobile menutupi cara praktis untuk menjaga hal ini tetap bersih secara waktu.
7. Jaga yang tipis terpisah dari rahasia
Paket kecil dan paket yang aman menyelesaikan masalah yang berbeda.
Saluran mengontrol kelayakan. Mereka tidak membuat paket rahasia dengan sendirinya.
Jika Anda membutuhkan jaminan pengiriman yang lebih kuat:
- aktifkan Enkripsi Update Langsung,
- gunakan penyimpanan kustom atau pengiriman yang di-host sendiri,
- jaga kunci pribadi hanya di CI atau alur kerja operator yang terjamin.
Hal itu tidak membuat ukuran update tidak relevan. Hanya berarti Anda harus mengoptimalkan kedua dimensi:
- siap untuk kecepatan,
- dikripsi untuk kontrol pengiriman,
- saluran untuk kontrol peluncuran,
- rollback untuk pemulihan.
Alur kerja praktis “Capgo” yang efisien
Jika Anda ingin model operasional default yang sederhana, gunakan ini:
- Tetapkan jalur rilis native dan OTA terpisah.
- Upload perubahan JS dengan
--deltasebagai default. - Pakai
stagingdanbetasaluran sebelumnyaproduction. - Watch update statistik dan log setelah peluncuran, bukan hanya sebelumnya.
- Ubah PR menjadi pratinjau instalabel ketika bangunan asli tidak diperlukan.
- Tinggalkan media besar, yang sering berubah, di luar bundle di mana mungkin.
- 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 Capgo tim, “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 seperti itu, pembaruan Anda tetap cepat bahkan ketika aplikasi, tim, dan basis pengguna semakin besar.
Teruslah dari Cara untuk Membuat Capgo Pembaruan Tetap Cepat dan Ringan
Jika Anda menggunakan Cara untuk Membuat Capgo Pembaruan Tetap Cepat dan Ringan untuk merencanakan routing saluran dan peluncuran berstadium, 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.