Update hidup yang terbaik adalah yang tidak pernah diperhatikan oleh pengguna Anda.
Biasanya itu berarti tiga hal:
- Unduhan kecil.
- Rollout yang terkendali.
- Pemulihan instan jika ada kesalahan.
The same “keep OTA lean” advice that works in React Native land also applies to Capgo. The difference is that Capgo gives Capacitor teams a few extra levers: keep OTA lean, yang berlaku di React Native juga berlaku pada Capgo. Perbedaan adalah bahwa Capgo memberikan tim beberapa alat tambahan:, Update delta, saluranrollback otomatis target versi.
Jika Anda menggunakan keduanya bersamaan, Anda akan mendapatkan payload yang lebih kecil, instalasi yang lebih cepat, dan banyaknya kekacauan operasional yang lebih sedikit.
Lean tetap penting meskipun MAU tetap sama.
Detail berguna Capgo-spesifik: Capgo MAU sebenarnya adalah jumlah perangkat aktif bulanan yang menghubungi layanan pembaruan dalam 30 hari terakhir.
Jadi mengurangi bundle bukan hanya trik 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 pembaruan yang gagal atau dibatalkan
- Radius ledakan yang lebih kecil ketika melakukan tes atau tahap pra-rilis
Pembaruan yang lebih sederhana sebenarnya tentang kecepatan, keamanan, dan disiplin operasional.
1. Gunakan pembaruan Delta sebagai default
Jika Anda hanya melakukan satu hal, lakukan hal ini.
Capgo’s Pembaruan Delta Mengirim hanya file yang berubah antara versi daripada mengunduh kembali bundle web penuh. Ini adalah kemenangan tunggal terbesar untuk kinerja OTA rutin.
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 orang yang tidak sengaja kembali ke unggah 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 berdasarkan manifesto tidak akan dapat mengunduh pembaruan tersebut.
Pertimbangan ini semakin penting jika Anda menggunakan directUpdatekarena waktu antara
ditemukan pembaruan
dan 'aplikasi di-reload' menjadi terlihat bagi pengguna.
Beberapa aturan praktis:
- Tidak inline gambar besar atau media di 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 paket aplikasi yang dikirim.
- Perhatikan 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 Anda berkembang. Pola terburuk 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 waktu runtime.
Jangan gunakan saluran ini untuk:
- plugin native baru,
- perubahan izin,
capacitor.config.tsperubahan,- aplikasi yang mengubah keadaan proyek native iOS atau Android.
Baris tersebut juga penting untuk kinerja. Jika Anda terus-menerus memasukkan perubahan struktural besar ke dalam jalur OTA, strategi pembaruan Anda akan semakin berat dan berisiko seiring waktu.
Pilih dua jalur rilis secara sengaja:
Jalur Native
Untuk perubahan plugin, perubahan izin, dan pengaturan native:
bun run build
bunx cap sync
Kemudian rilislah aplikasi toko secara normal.
Jalur Capgo
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 bertahan lama. 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.
Capgo's Sistem saluran adalah cara paling bersih untuk mengontrol hal berikut:
staginguntuk QAbetauntuk tester yang diundangproductionuntuk semua oranghotfixuntuk pemulihan darurat
Alur sederhana seperti ini:
- Upload 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, pasang saluran dengan targeting versi. Hal ini menjaga bundle yang tidak kompatibel atau berat tidak perlu dari versi biner yang lebih tua.
For tim yang ingin memiliki loop tinjauan yang lebih ketat, Capgo juga cocok untuk PR pratinjau. Hal ini memungkinkan produk, QA, dan stakeholders untuk menguji perubahan JavaScript tanpa harus menunggu build internal baru di TestFlight atau Play.
5. Jika Anda mengaktifkan update langsung, optimalkan jalur startup
Semakin cepat Anda ingin update diterapkan, semakin disiplin jalur startup Anda harus.
Capgo's perilaku update docs secara eksplisit merekomendasikan menggabungkan directUpdate dengan update Delta. Ini adalah default yang tepat.
Guardrail kedua adalah notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Jika aplikasi Anda tidak melaporkan sudah siap dalam jendela waktu default 10 detik, atau dalam waktu yang Anda tetapkan di konfigurasi __CAPGO_KEEP_0__ Anda, __CAPGO_KEEP_1__ dapat menandai bundle tersebut tidak valid dan memulihkan versi sebelumnya yang baik. Perilaku rollback ini adalah apa yang Anda inginkan dalam produksi, tetapi juga berarti Anda harus menjaga startup tetap bersih: notifyAppReady() Jika aplikasi Anda tidak melaporkan sudah siap dalam jendela waktu default 10 detik, atau dalam waktu yang Anda tetapkan di konfigurasi __CAPGO_KEEP_0__ Anda, __CAPGO_KEEP_1__ dapat menandai bundle tersebut tidak valid dan memulihkan versi sebelumnya yang baik. Perilaku rollback ini adalah apa yang Anda inginkan dalam produksi, tetapi juga berarti Anda harus menjaga startup tetap 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:
- dalam tempat yang tepat
notifyAppReady()Hindari pekerjaan yang lambat pada waktu boot yang kritikal - Simpan dan pulihkan kondisi aplikasi dengan hati-hati jika Anda reload segera
- Uji skenario bad-network dan perangkat rendah sebelum meluaskan rollout
- Jika Anda belum memeriksa halaman ini secara teratur, panduan
notifyAppReady mungkin layak dibaca kembali. 6. Gunakan saluran pembaruan internal daripada pembaruan native yang tidak perlu
Jika aplikasi Anda tidak melaporkan sudah siap dalam jendela waktu default 10 detik, atau dalam waktu yang Anda tetapkan di konfigurasi __CAPGO_KEEP_0__ Anda, __CAPGO_KEEP_1__ dapat menandai bundle tersebut tidak valid dan memulihkan versi sebelumnya yang baik. Perilaku rollback ini adalah apa yang Anda inginkan dalam produksi, tetapi juga berarti Anda harus menjaga startup tetap bersih:
Banyak tim mobile menghabiskan waktu untuk membangun biner untuk perubahan yang jelas-jelas hanya berlaku di web.
Jika perubahan tersebut:
- salinan
- peningkatan UI
- alur masuk pengguna
- logika layar harga
- pengaturan kabel analitik
- flag fitur
- penampilan respons API atau prompt
maka pembaruan Capgo seringkali menjadi artefak tinjauan yang lebih cepat.
Artinya, ada lebih sedikit rekonstruksi native, kurangnya perubahan TestFlight, dan loop umpan balik yang lebih ketat untuk tim. Ini adalah salah satu manfaat yang paling tidak terpakai dari Capgo: Anda dapat memindahkan lebih banyak pekerjaan tinjauan dan QA ke jalur OTA tanpa melanggar batas native/web.
Petunjuk panduan kami pada staging dengan satu ID aplikasi mobile menutupi cara praktis untuk menjaga hal ini tetap bersih seiring 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 khusus atau pengiriman self-hosted,
- jaga kunci pribadi hanya di CI atau alur kerja operator yang terjamin.
Jangan salah, itu tidak membuat ukuran update tidak relevan. Hanya berarti Anda harus mengoptimalkan kedua dimensi tersebut:
- untuk kecepatan,
- dilindungi 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
--deltadengan default. - Gunakan
stagingdanbetasaluran sebelumproduction. - Perhatikan Statistik dan log pembaruan setelah peluncuran, bukan hanya sebelumnya. Ubah PR menjadi pratinjau yang dapat diinstal ketika pembangunan asli tidak diperlukan.
- Simpan media besar dan sering berubah di luar bundle jika memungkinkan.
- Refresh basis native setelah pertumbuhan besar aset atau perubahan native.
- Tangani
- dan perilaku rollback sebagai bagian dari teknik rilis, bukan trivia pengaturan.
notifyAppReady()Kombinasi ini tetap cepat lebih lama daripada pendekatan umum “hanya unggah apa yang berubah”.
Pikiran penutup
Bagi tim __CAPGO_KEEP_0__ , “tipis dan cepat” bukan hanya masalah ukuran bundle.
Capgo
Bagaimana cara menjaga pembaruan Capgo tetap tipis dan cepat
Gunakan Delta update untuk ukuran payload, saluran untuk ukuran peluncuran, dan pengembalian untuk ukuran kegagalan. Setelah Anda berpikir tentang OTA dengan cara itu, pembaruan Anda tetap cepat bahkan ketika aplikasi, tim, dan basis pengguna semakin besar.
Teruskan dari Bagaimana Membuat Capgo Tetap Cepat dan Ringan
Jika Anda menggunakan Bagaimana Membuat Capgo Tetap Cepat dan Ringan untuk merencanakan routing saluran dan peluncuran berstadium, hubungkannya dengan Saluran context Capgo fitur nama saluran rilis. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Kunci pesan `solutions_white_label_visual_cell2_value` (Solutions White Label Visual Cell2 Value). untuk detail implementasi di Saluran, Saluran context Capgo fitur nama saluran rilis. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Kunci pesan `solutions_white_label_visual_cell2_value` (Solutions White Label Visual Cell2 Value). untuk alur kerja produk dalam Solusi Pengujian Beta, dan Solusi Target Versi untuk alur kerja produk dalam Solusi Target Versi.