Update live yang terbaik adalah yang tidak terlalu terasa oleh pengguna.
Biasanya berarti tiga hal:
- Downloadnya kecil.
- Rolloutnya terkendali.
- Recoverynya instan jika ada kesalahan.
Saran yang sama untuk menjaga update OTA ringan yang berlaku di React Native juga berlaku untuk Capgo. Perbedaannya adalah Capgo memberikan tim Capacitor beberapa alat tambahan: Update delta, saluran, rollbacks otomatis, target versidan opsional enkripsi ujung ke ujung.
Jika Anda menggunakan kedua hal tersebut bersamaan, Anda akan mendapatkan payload yang lebih kecil, instalasi yang lebih cepat, dan banyaknya kekacauan operasional yang lebih sedikit.
Hal yang berkebun bahkan berlaku ketika MAU tetap sama
Detail yang berguna Capgo-spesifik: Capgo MAU efektifnya adalah 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
- Bandwidth yang lebih sedikit yang terbuang karena rilis yang gagal atau dibatalkan
- Radius ledakan yang lebih kecil ketika melakukan tes atau tahap pra-rilis
Perbarui yang lebih ringan sebenarnya tentang kecepatan, keamanan, dan disiplin operasional.
1. Gunakan perbarui Delta secara default
Jika Anda hanya melakukan satu hal, lakukan ini.
Capgo’s Perbarui Delta Kirim hanya file yang berubah antara versi daripada mengunduh kembali bundle web penuh.
bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta
Setelah lulus tes QA Anda:
bunx @capgo/cli@latest bundle upload --channel production --delta
Jika Anda ingin CI tetap ketat, gunakan --delta-only agar tidak ada yang sengaja kembali ke pengunggahan bundle penuh:
bunx @capgo/cli@latest bundle upload --channel production --delta-only
Hanya gunakan --delta-only ketika armada produksi Anda mendukung perbarui Delta. Pada versi plugin campuran, perangkat yang lebih tua yang tidak mendukung pengiriman delta berdasarkan manifest tidak akan dapat mengunduh perbarui tersebut.
Hal ini lebih penting lagi jika Anda menggunakan directUpdate, karena waktu antara “ditemukan pembaruan” dan “aplikasi di-reload” menjadi terlihat bagi pengguna.
2. Tatal aset seperti aset, bukan kantong JavaScript
Aset besar adalah di mana bundle OTA diam-diam menjadi buncit.
Beberapa aturan praktis:
- Jangan mengintegrasikan gambar besar atau media di dalam JavaScript ketika file aset normal akan cukup.
- Tetapkan konten yang sering berubah di CDN milik Anda sendiri atau API jika tidak perlu hidup di dalam bundle 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 Delta updates, file yang tidak berubah digunakan kembali daripada di-download lagi.
Hal ini adalah salah satu cara termudah untuk menjaga Capgo tetap cepat seiring aplikasi berkembang. Pola terburuk adalah perbaikan UI kecil yang memaksa pengguna untuk mengunduh tumpukan media yang tidak terkait.
3. Simpan rilis native untuk perubahan native yang sebenarnya
Capgo memperbarui layer web: HTML, CSS, JavaScript, dan aset yang dimuat pada waktu runtime.
It bukanlah saluran yang tepat untuk:
- plugin-plugin asli baru,
- perubahan izin,
capacitor.config.tsperubahan,- segala sesuatu 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 pengaturan native:
bun run build
bunx cap sync
Kemudian kirimkan rilis toko biasa.
Capgo jalur
Untuk iterasi layer web yang aman:
bun run build
bunx @capgo/cli@latest bundle upload --channel production --delta
Jika Anda baru-baru ini menambahkan banyak aset yang berumur panjang, refresh basis data asli Anda secara teratur. Pembangunan toko segar memasukkan basis data baru tersebut, yang menjaga perbedaan Capgo di masa depan lebih kecil.
4. Gunakan saluran untuk menjaga ukuran peluncuran kecil
Pembaruan yang '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 yang paling bersih untuk mengendalikan itu:
staginguntuk QAbetauntuk tes tester yang diundangproductionuntuk semua oranghotfixuntuk pemulihan darurat
Alur yang sederhana seperti ini:
- Upload ke
staging. - Validasi pada perangkat nyata.
- Keluarkan secara bertahap, baik melalui saluran yang dikendalikan atau melalui persentase pengiriman.
- Balikkan segera jika kesehatan menurun.
Jika aplikasi Anda memiliki beberapa dasar native di luaran, pair saluran dengan target versi. Ini menjaga bundle yang tidak kompatibel atau berat tidak perlu dari biner lama.
Untuk tim yang ingin memiliki loop tinjauan yang lebih ketat, Capgo juga cocok untuk pembacaan PR. Ini memungkinkan produk, QA, dan stakeholders untuk menguji perubahan JS tanpa harus menunggu build internal baru TestFlight atau Play.
5. Jika Anda mengaktifkan update langsung, optimalkan startup dengan keras.
Semakin cepat Anda ingin update diterapkan, semakin disiplin jalur startup Anda harus.
Capgo’s perbarui perilaku docs secara eksplisit merekomendasikan penggabungan directUpdate dengan pembaruan Delta. Itu adalah pengaturan default yang tepat.
Guardrail kedua adalah notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Jika aplikasi Anda tidak melaporkan siap dalam jendela 10 detik default, atau dalam apa pun notifyAppReady() 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 adalah apa yang Anda inginkan dalam produksi, tetapi itu juga berarti Anda harus menjaga startup bersih: 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:
- di tempat yang tepat
notifyAppReady()Hindari pekerjaan boot-time yang lambat di jalur kritis - Simpan dan pulihkan status aplikasi dengan hati-hati jika Anda reload segera
- Uji skenario jaringan buruk dan perangkat rendah sebelum peluncuran luas
- Test
Jika Anda belum memeriksa halaman ini secara teratur, panduan notifyAppReady layak dibaca kembali.
6. Gunakan saluran pembaruan internal daripada pembaruan native yang tidak perlu
Banyak tim mobile menghabiskan waktu untuk membangun biner untuk perubahan yang jelas hanya berbasis web.
Jika perubahan adalah:
- salin,
- peningkatan UI,
- alur masuk pengguna,
- logika layar harga,
- pengaturan analitik,
- flag fitur,
- atau API respons rendering,
kemudian sebuah Capgo update seringkali adalah artefak tinjauan yang lebih cepat.
Artinya ada lebih sedikit rebuild asli, kurangnya perubahan TestFlight, dan lingkaran balik yang lebih ketat untuk tim. Ini adalah salah satu manfaat yang paling kurang dimanfaatkan dari Capgo: Anda dapat memindahkan lebih banyak pekerjaan tinjauan dan QA ke jalur OTA tanpa mengganggu batas asli/web.
Buku panduan kami tentang staging dengan satu ID aplikasi mobile menutupi cara yang praktis untuk menjaga hal ini tetap bersih seiring waktu.
7. Jaga lean terpisah dari rahasia
Bundel kecil dan bundel yang aman menyelesaikan masalah yang berbeda.
Saluran mengontrol kelayakan. Mereka tidak membuat bundel rahasia dengan sendirinya.
Jika Anda membutuhkan jaminan pengiriman yang lebih kuat:
- aktifkan enkripsi Update Hidup,
- Pilih penyimpanan khusus atau pengiriman self-hosted Tetapkan kunci pribadi hanya di CI atau alur kerja operator yang terlindungi.,
- Itu tidak membuat ukuran update tidak relevan. Hanya berarti Anda harus mengoptimalkan kedua dimensi:
Lean untuk kecepatan,
- enkripsi untuk pengendalian pengiriman,
- saluran untuk pengendalian peluncuran,
- rollback untuk pemulihan.
- Alur kerja praktis “lean __CAPGO_KEEP_0__”
A practical “lean Capgo” workflow
Tetapkan jalur rilis native dan OTA terpisah.
- Unggah perubahan JS dengan
- __CAPGO_KEEP_0__
--deltasecara default. - Gunakan
stagingdanbetasaluran sebelumnyaproduction. - Tonton perbarui statistik dan log setelah peluncuran, bukan hanya sebelumnya.
- Ubah PR menjadi pratinjau yang dapat diinstal ketika bangunan asli tidak diperlukan.
- Tahan 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 itu tetap cepat lebih lama daripada pendekatan umum “unggah apa saja yang berubah”.
Pikiran Terakhir
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 gagal.
Keep going from How to Keep Capgo Updates Lean and Fast
Lanjutkan dari Cara Menjaga __CAPGO_KEEP_0__ Pembaruan Tetap Tipis dan Cepat How to Keep Capgo Updates Lean and Fast Cara Menjaga __CAPGO_KEEP_0__ Pembaruan Tetap Tipis dan Cepat untuk merencanakan routing saluran dan peluncuran yang dipersiapkan, hubungkannya dengan Saluran untuk detail implementasi di Saluran, saluran ini adalah bagian dari Saluran, dan Saluran untuk detail implementasi di Channels, Channels untuk detail implementasi di Channels, Solusi Pengujian Beta untuk alur produk di Solusi Pengujian Beta, dan Solusi Target Versi untuk alur produk di Solusi Target Versi.