Yang terbaik adalah live update yang hampir tidak terasa oleh pengguna.
Biasanya berarti tiga hal:
- Unduhannya kecil.
- Rollout yang terkendali.
- Pemulihan instan jika ada kesalahan.
Konsultasi yang sama “keep OTA lean” yang berlaku di React Native juga berlaku untuk Capgo. Perbedaan adalah Capgo memberikan tim Capacitor beberapa alat tambahan: Delta pembaruan, saluran, pengembalian otomatis, targeting versi, dan opsional enkripsi ujung ke ujung.
If you use those together, you get smaller payloads, faster installs, and much less operational mess.
Lean tetap penting meskipun MAU tetap sama
Satu detail berguna Capgo-spesifik: Capgo MAU secara efektif merupakan 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 meningkatkan bagian yang dirasakan oleh pengguna dan tim:
- Download lebih cepat di 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
Update yang ramping adalah benar-benar tentang kecepatan, keamanan, dan disiplin operasional.
1. Tetapkan update Delta sebagai default.
Jika Anda hanya melakukan satu hal, lakukan ini.
Capgo’s Update Delta mengirimkan 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 QA Anda 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
Hanya gunakan --delta-only ketika armada produksi Anda mendukung update Delta. Pada plugin versi campuran, perangkat yang lebih tua yang tidak mendukung pengiriman delta berdasarkan manifesto tidak akan dapat mengunduh update tersebut.
Hal ini lebih penting lagi jika Anda menggunakan directUpdateKarena waktu antara “ditemukan update” dan “aplikasi di-reload” mulai terlihat bagi pengguna.
2. Tatal aset seperti aset, bukan beban JavaScript.
Aset besar adalah tempat OTA bundle diam-diam menjadi berat.
Beberapa aturan praktis:
- Tidak inline gambar besar atau media di dalam JavaScript ketika file aset biasa sudah cukup.
- Simpan konten yang sering berubah di CDN milik Anda sendiri atau API jika tidak perlu hidup di dalam bundle aplikasi yang dikirimkan.
- Perhatikan gambar pemasaran, video onboarding, dan aset kampanye satu kali yang diganti setiap rilis.
- Biarkan aset stabil tetap stabil. Dengan Delta update, 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 download tumpukan media 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.
Tidaklah channel yang tepat untuk:
- plugin baru asli,
- 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.
Pilih dua jalur rilis secara sengaja:
Jalur Native
Untuk perubahan plugin, perubahan izin, dan konfigurasi native:
bun run build
bunx cap sync
Kemudian rilis toko biasa.
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 asset yang bertahan lama. Pembangunan toko segar mengintegrasikan basis baru tersebut, yang menjaga perbedaan Capgo di masa depan lebih kecil.
4. Gunakan saluran untuk menjaga ukuran rollout kecil
Update yang 'tipis' bukan hanya tentang megabyte. Ini juga tentang berapa banyak perangkat yang menerima update sebelum Anda tahu apakah itu baik.
Capgo's Sistem saluran adalah cara paling bersih untuk mengontrol itu:
staginguntuk QAbetauntuk tes tester yang diundangproductionuntuk semua oranghotfixuntuk pemulihan darurat
Alur yang sederhana seperti ini:
- Upload ke
staging. - Validasi pada perangkat nyata.
- Rilis secara bertahap, baik melalui saluran yang dikendalikan atau persentase-berdasan pengiriman.
- Balikkan segera jika kesehatan menurun.
Jika aplikasi Anda memiliki beberapa dasar native di luaran, pair saluran dengan target versiMenghindari bundle yang tidak kompatibel atau berat tidak perlu dari versi lama.
Untuk tim yang ingin memiliki loop tinjauan yang lebih ketat, Capgo juga cocok untuk pratinjau 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 jalur startup keras.
Semakin cepat Anda ingin update diterapkan, semakin disiplin jalur startup Anda harus.
Capgo’s Perilaku pembaruan docs secara eksplisit merekomendasikan penggunaan directUpdate bersama dengan Delta updates. Itu adalah default yang tepat.
Guardrail kedua adalah notifyAppReady().
import { CapacitorUpdater } from '@capgo/capacitor-updater'
CapacitorUpdater.notifyAppReady()
Jika aplikasi Anda tidak melaporkan siap dalam jendela default 10 detik notifyAppReady() Jendela, atau di dalam apa pun 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:
- context
notifyAppReady()dalam tempat yang tepat - Hindari pekerjaan yang lambat saat boot-time di jalur kritis
- Hindari pekerjaan yang lambat di jalur kritis
- Simpan dan pulihkan kondisi aplikasi dengan hati-hati jika Anda reload segera
Jika Anda belum memeriksa halaman ini beberapa waktu lalu Petunjuk notifyAppReady perlu 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 web.
Jika perubahan adalah:
- salinan kode
- peningkatan UI
- alur masuk pengguna
- logika layar harga
- pengaturan kabel analitik
- flag fitur
- penampilan prompt atau respons API
lalu update Capgo seringkali adalah artefak tinjauan yang lebih cepat.
Artinya, ada sedikit rebuild asli, kurangnya perubahan TestFlight, dan loop feedback 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 melanggar batas asli/web.
Referensi kami pada staging dengan satu ID aplikasi mobile menutupi cara praktis untuk menjaga hal ini tetap bersih seiring waktu.
7. Jaga lean 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 memerlukan jaminan pengiriman yang lebih kuat:
- aktifkan enkripsi Live Update,
- gunakan Penyimpanan khusus atau pengiriman mandiri,
- Hanya simpan kunci pribadi di CI atau alur kerja operator yang terlindungi.
Namun, itu tidak membuat ukuran update tidak relevan. Hanya berarti Anda harus mengoptimalkan kedua dimensi:
- tipis untuk kecepatan
- enkripsi untuk kontrol pengiriman
- saluran untuk kontrol peluncuran
- rollback untuk pemulihan.
Alur kerja "tipis Capgo" yang praktis
Jika Anda ingin menggunakan model operasi default yang sederhana, gunakan ini:
- Tetapkan jalur rilis native dan OTA terpisah.
- Unggah perubahan JS dengan
--deltasecara default - Gunakan
stagingdanbetasaluran-saluranproduction. - Watch statistik pembaruan dan log statistik dan log update
- Mengubah PR menjadi pratinjau yang dapat diinstal ketika pembangunan native tidak diperlukan.
- Mengubah PR menjadi pratinjau yang dapat diinstal ketika bangunan asli tidak diperlukan.
- Menghindari menyimpan media besar dan yang sering berubah di dalam bundle di mana-mana.
- Treat
notifyAppReady()dan perilaku rollback sebagai bagian dari teknik rilis, bukan trivia pengaturan.
dan perilaku rollback sebagai bagian dari teknik rilis, bukan trivia pengaturan.
Pemikiran Akhir
Bagi tim Capgo, “ringan dan cepat” bukan hanya masalah ukuran bundle.
Melainkan masalah desain rilis.
Gunakan pembaruan Delta untuk ukuran payload, saluran untuk ukuran peluncuran, dan pengembalian untuk ukuran gagal. Setelah Anda berpikir tentang OTA seperti itu, pembaruan Anda tetap cepat bahkan ketika aplikasi, tim, dan basis pengguna semakin besar.
Lanjutkan dari Bagaimana Membuat Pembaruan Capgo Tetap Ringan dan Cepat
Jika Anda menggunakan Bagaimana Membuat Pembaruan Capgo Tetap Ringan dan Cepat untuk merencanakan routing saluran dan peluncuran berstadium, hubungkannya dengan Channels untuk detail implementasi di Channel, Channels untuk detail implementasi di Channel, Saluran untuk detail implementasi di Saluran, Pengujian Beta Solusi untuk alur kerja produk di Pengujian Beta Solusi, dan Sasaran Versi Solusi untuk alur kerja produk di Sasaran Versi Solusi.