Perbaruan live yang terbaik adalah perbaruan yang pengguna Anda tidak perlu perhatikan.
Biasanya berarti tiga hal:
- Unduhannya kecil.
- Pengaturan perbaruan terkendali.
- Jika ada kesalahan, pemulihan instan.
Saran yang sama untuk menjaga OTA lean yang berlaku di React Native juga berlaku untuk Capgo. Perbedaan adalah bahwa Capgo memberikan tim Capacitor beberapa alat tambahan: Pembaruan delta, saluran, rollback otomatis, target versi, dan enkripsi akhir-ke-akhir Jika Anda menggunakan kombinasi tersebut, Anda akan mendapatkan muatan yang lebih kecil, instalasi yang lebih cepat, dan kekacauan operasional yang lebih sedikit..
Mengurangi ukuran bundle masih penting meskipun MAU tetap sama
Detail yang berguna __CAPGO_KEEP_0__-spesifik: MAU __CAPGO_KEEP_1__ sebenarnya adalah jumlah perangkat aktif bulanan yang menghubungi layanan pembaruan dalam 30 hari terakhir.
One useful Capgo-specific detail: Capgo MAU is effectively the number of monthly active devices that contacted the update service in the last 30 days.
Mengurangi ukuran bundle masih penting meskipun MAU tetap sama
- Download lebih cepat di cellular atau Wi-Fi lemah
- Pengalaman yang lebih baik dengan update langsung
- Kurangnya penggunaan bandwidth yang sia-sia pada rilis yang gagal atau dibatalkan
- Radius ledakan yang lebih kecil ketika melakukan pengujian atau menguji rilis
Update yang lebih tipis sebenarnya tentang kecepatan, keamanan, dan disiplin operasional.
1. Default ke Update Delta
Jika Anda hanya melakukan satu hal, lakukan ini.
Capgo’s Update Delta Mengirim hanya file yang berubah antara versi daripada mengunduh kembali bundle web penuh.
bun run build
bunx @capgo/cli@latest bundle upload --channel staging --delta
Itu adalah kemenangan tunggal terbesar untuk kinerja OTA rutin.
bunx @capgo/cli@latest bundle upload --channel production --delta
Jika Anda ingin CI tetap ketat, gunakan --delta-only agar tidak ada yang secara tidak sengaja kembali ke unggahan bundle penuh:
bunx @capgo/cli@latest bundle upload --channel production --delta-only
Hanya gunakan --delta-only ketika armada produksi Anda mendukung pembaruan Delta. Pada versi plugin campuran, perangkat yang lebih tua yang tidak mendukung pengiriman delta berbasis 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 bagi pengguna.
2. Tatal aset seperti aset, bukan beban JavaScript
Aset besar adalah di mana bundle OTA diam-diam menjadi buncit.
Beberapa aturan praktis:
- Jangan inline gambar besar atau media di dalam JavaScript ketika file aset normal akan cukup.
- Tetapkan konten yang sering berubah di CDN 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 pembaruan Delta, file yang tidak berubah digunakan kembali daripada didownload lagi.
Ini adalah salah satu cara termudah untuk menjaga Capgo tetap cepat seiring aplikasi berkembang. Pola terburuk adalah perbaikan UI kecil yang memaksa pengguna untuk mendownload 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 runtime.
Tidak merupakan saluran yang tepat untuk:
- penambahan plugin native 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-menerus memasukkan perubahan struktural besar ke dalam saluran OTA, strategi pembaruan Anda akan semakin berat dan berisiko seiring waktu.
Pakai dua saluran rilis dengan sengaja:
Saluran native
Untuk perubahan plugin, perubahan izin, dan konfigurasi native:
bun run build
bunx cap sync
Lalu 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 aset 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 rollout 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 yang paling bersih untuk mengendalikan itu:
staginguntuk QAbetauntuk tes 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, pair saluran dengan target versi. Itu 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 pratinjau PR. Itu memungkinkan produk, QA, dan stakeholders melakukan tes perubahan JS saja tanpa harus menunggu build internal baru dari TestFlight atau Play.
5. Jika Anda mengaktifkan update langsung, optimalisasi jalur startup Anda
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 adalah notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Jika aplikasi Anda tidak melaporkan siap dalam jendela 10 detik default, atau dalam waktu yang Anda tetapkan dalam konfigurasi __CAPGO_KEEP_0__ Anda, __CAPGO_KEEP_1__ dapat menandai bundle itu tidak valid dan memulihkan versi sebelumnya yang baik. Itu perilaku rollback yang Anda inginkan di produksi, tetapi itu juga berarti Anda harus menjaga startup tetap bersih: notifyAppReady() Telp 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:
- Call
notifyAppReady()di tempat yang tepat - Hindari pekerjaan waktu boot yang lambat di jalur kritis
- Simpan dan kembalikan kondisi aplikasi dengan hati-hati jika Anda reload segera
- Tes skenario jaringan buruk dan perangkat rendah sebelum peluncuran luas
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 berlaku di web.
Jika perubahan adalah:
- salin,
- polish UI,
- alur masuk
- logika layar harga
- pengaturan analitik,
- flag fitur,
- mengrender respons atau API prompt,
Maka, pembaruan Capgo seringkali lebih cepat dari artefak 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.
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 asli/web. Baca 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
Pengendalian saluran mengatur kelayakan. Mereka tidak membuat paket rahasia sendiri.
Jika Anda membutuhkan jaminan pengiriman yang lebih kuat:
- aktifkan enkripsi Update Langsung,
- gunakan penyimpanan kustom atau pengiriman self-hosted,
- tahan kunci pribadi hanya di CI atau alur kerja operator yang terlindungi.
Hal itu tidak membuat ukuran update tidak relevan. Ini hanya berarti Anda harus mengoptimalkan untuk kedua dimensi:
- berorientasi kecepatan,
- enkripsi untuk pengendalian pengiriman,
- saluran untuk pengendalian peluncuran,
- rollback untuk pemulihan.
Alur kerja yang praktis 'sederhana Capgo'
Jika Anda ingin model operasional default yang sederhana, gunakan ini:
- Jaga jalur rilis native dan OTA terpisah.
- Upload perubahan JS dengan
--deltasecara default. - Gunakan
stagingdan saluran sebelumbetaLihatproduction. - statistik dan log update setelah peluncuran, bukan hanya sebelumnya. Ubah PR menjadi pratinjau instalasi ketika bangunan native tidak diperlukan. Jalur rilis native dan OTA terpisah.
- Upload perubahan JS dengan saluran sebelum peluncuran.
- Jaga media besar dan sering berubah di luar paket jika memungkinkan.
- Segarkan dasar native setelah pertumbuhan aset besar atau perubahan native.
- Tangani
notifyAppReady()dan perilaku rollback sebagai bagian dari teknik rilis, bukan trivia pengaturan.
Kombinasi tersebut tetap cepat lebih lama daripada pendekatan umum “unggah saja apa yang berubah”.
Pikiran penutup
Bagi tim Capgo, “tipis dan cepat” bukan hanya masalah ukuran paket.
Itu adalah masalah desain rilis.
Gunakan pembaruan Delta untuk ukuran payload, saluran untuk ukuran rollout, dan rollback untuk ukuran kegagalan. Setelah Anda berpikir tentang OTA dengan cara itu, update Anda tetap cepat bahkan ketika aplikasi, tim, dan basis pengguna semakin besar.
Teruskan dari Cara Membuat Capgo Update Tetap Tipis dan Cepat
Jika Anda menggunakan Cara Membuat Capgo Update Tetap Tipis dan Cepat untuk merencanakan routing saluran dan peluncuran tahap demi tahap, 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 di Solusi Pengujian Beta, dan Solusi Target Versi untuk alur kerja produk di Solusi Target Versi.