Lompat ke konten utama
Tutorial

Cara Membuat Capgo Tetap Ringan dan Cepat

Petunjuk praktis Capgo untuk pembaruan hidup yang lebih kecil, lebih aman: paket delta, peluncuran berdasarkan saluran, pembaruan dasar native, pratinjau PR, dan pengaman pembaruan langsung.

Martin Donadieu

Martin Donadieu

Pengembang Konten

Cara Membuat Capgo Tetap Ringan dan Cepat

Pembaruan hidup yang terbaik adalah yang tidak terlalu terasa oleh pengguna.

Biasanya berarti tiga hal:

  1. Pembaruan downloadnya kecil.
  2. Peluncuranannya terkendali.
  3. Recovery adalah 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: Delta updates, saluran, pengembalian otomatis, target versi, dan optional enkripsi ujung ke ujung.

Jika Anda menggunakan kombinasi tersebut, Anda akan mendapatkan payload yang lebih kecil, instalasi yang lebih cepat, dan kurangnya kekacauan operasional.

Kemudahan berarti bahkan ketika MAU tetap sama

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.

Jadi mengurangi bundle bukan hanya trik untuk mengurangi penghitungan MAU. Hal ini penting karena memperbaiki bagian yang dirasakan oleh pengguna dan tim:

  • Faster downloads di jaringan seluler atau Wi-Fi lemah
  • Pengalaman yang lebih baik dengan Pembaruan langsung
  • Kurangnya penggunaan bandwidth yang sia-sia untuk rilis yang gagal atau dibatalkan
  • Radius ledakan yang lebih kecil ketika melakukan pengujian atau pengujian rilis

Pembaruan yang lebih tipis sebenarnya tentang kecepatan, keamanan, dan disiplin operasional.

1. Gunakan pembaruan Delta secara default

Jika Anda hanya melakukan satu hal, lakukan ini.

Capgo’s Pembaruan Delta Mengirim 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 Anda melakukan pengujian QA:

bunx @capgo/cli@latest bundle upload --channel production --delta

Jika Anda ingin CI tetap ketat, gunakan --delta-only Tidak ada siapa pun yang secara tidak sengaja kembali ke unggahan bundle penuh:

bunx @capgo/cli@latest bundle upload --channel production --delta-only

Hanya gunakan --delta-only Saat 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.

Pertimbangan ini semakin penting 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 berat.

Beberapa aturan praktis:

  • Tidak inlin gambar besar atau media di dalam JavaScript ketika file aset normal akan cukup.
  • Jagalah konten yang sering berubah di CDN Anda sendiri atau API jika tidak perlu hidup di dalam bundle aplikasi yang dikirimkan.
  • Berhati-hatilah dengan gambar pemasaran, video onboarding, dan aset kampanye satu kali yang diganti setiap rilis.
  • Biarkan asset stabil tetap stabil. Dengan pembaruan Delta, file yang tidak berubah digunakan kembali daripada diunduh lagi.

Metode ini adalah salah satu cara termudah untuk menjaga Capgo tetap cepat seiring aplikasi berkembang. Pola buruk adalah perbaikan UI kecil yang memaksa pengguna mengunduh tumpukan media yang tidak terkait.

3. Jaga rilis native untuk perubahan native yang sebenarnya

Capgo memperbarui layer web: HTML, CSS, JavaScript, dan asset yang dimuat pada waktu runtime.

Tidak merupakan saluran yang tepat untuk:

  • plugin native baru,
  • perubahan izin,
  • capacitor.config.ts perubahan,
  • segala sesuatu yang memodifikasi proyek native iOS atau Android.

Saatnya itu penting untuk kinerja juga. Jika Anda terus memasukkan perubahan struktural besar ke dalam jalur OTA, strategi pembaruan Anda menjadi lebih berat dan berisiko seiring waktu.

Pakai dua jalur rilis dengan sengaja:

Jalur native

Untuk perubahan plugin, perubahan izin, dan pengaturan native:

bun run build
bunx cap sync

Kemudian 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 dasar native Anda secara teratur jika Anda baru-baru ini menambahkan banyak aset yang berumur panjang. Pembangunan toko segar mengintegrasikan dasar 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 bahwa itu baik.

Capgo's Sistem saluran __CAPGO_KEEP_0__ adalah cara yang paling bersih untuk mengontrol itu:

  • staging untuk QA
  • beta untuk tester yang diundang
  • production untuk semua orang
  • hotfix untuk pemulihan darurat

Alur sederhana seperti ini:

  1. Unggah ke staging.
  2. Validasi pada perangkat nyata.
  3. Luncurkan secara bertahap, baik melalui saluran yang dikendalikan atau pergeseran berdasarkan persentase.
  4. Tolak kembali segera jika kesehatan menurun.

Jika aplikasi Anda memiliki beberapa dasar native di luar sana, pair saluran dengan target versiItu menjaga bundle yang tidak kompatibel atau berat tidak perlu dari binary yang lebih tua.

Untuk tim yang ingin memiliki loop tinjauan yang lebih ketat, Capgo juga cocok untuk pratinjau PRJadi itu memungkinkan produk, QA, dan stakeholders melakukan tes perubahan JavaScript tanpa harus menunggu build internal baru di TestFlight atau Play.

5. Jika Anda mengaktifkan pembaruan langsung, optimalkan jalur startup Anda

Jika Anda ingin pembaruan diterapkan lebih cepat, maka jalur startup Anda harus lebih disiplin.

Capgo’s __CAPGO_KEEP_0__’s mengusulkan secara eksplisit untuk dipasangkan dengan pembaruan Delta. Itu adalah default yang tepat. directUpdate Kedua penghalang adalah

Jika aplikasi Anda tidak melaporkan bahwa sudah siap dalam jendela waktu default 10 detik, atau dalam waktu yang Anda tetapkan di konfigurasi __CAPGO_KEEP_0__ Anda, maka __CAPGO_KEEP_1__ dapat menandai bundle tersebut tidak valid dan memulihkan versi sebelumnya yang baik. Itu adalah perilaku rollback yang Anda inginkan di produksi, tetapi itu juga berarti Anda harus menjaga jalur startup tetap bersih: notifyAppReady().

import { CapacitorUpdater } from '@capgo/capacitor-updater'

CapacitorUpdater.notifyAppReady()

Panggil notifyAppReady() context 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:

  • Pembaruan perilaku 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 meluncurkan secara 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:

  • salinan,
  • peningkatan tampilan UI,
  • alur onboarding,
  • logika layar harga,
  • pengaturan analitik,
  • flag fitur,
  • maka render respons API atau prompt,

lalu pembaruan Capgo seringkali lebih cepat dari artefak tinjauan.

Artinya ada lebih sedikit pembangunan asli, lebih sedikit 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 melanggar batas asli/web.

Baca panduan kami tentang staging dengan satu ID aplikasi mobile yang menutupi cara praktis untuk menjaga hal ini tetap bersih secara waktu.

7. Jaga lean terpisah dari rahasia

Bundel kecil dan bundel aman menyelesaikan masalah yang berbeda.

Saluran mengontrol kelayakan. Mereka tidak membuat paket rahasia sendiri.

Jika Anda membutuhkan jaminan pengiriman yang lebih kuat:

Hal itu tidak membuat ukuran update tidak relevan. Artinya Anda harus mengoptimalkan kedua dimensi:

  • tipis untuk kecepatan
  • dikripsi untuk kontrol pengiriman
  • saluran untuk kontrol peluncuran
  • rollback untuk pemulihan.

Aplikasi Capgo yang Efektif

Jika Anda ingin model operasional default yang sederhana, gunakan ini:

  1. Tentukan jalur rilis native dan OTA terpisah.
  2. Upload perubahan JS dengan --delta sebagai default.
  3. Gunakan staging dan beta context: Halaman/area: Situs web pemasaran Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman trust.astro. Kunci pesan `dan` (Dan). production.
  4. saluran sebelum Tonton stat dan log pembaruan
  5. setelah peluncuran, bukan hanya sebelumnya saja.
  6. Jaga media besar dan sering berubah di luar bundle jika memungkinkan.
  7. Segarkan dasar native setelah pertumbuhan besar aset atau perubahan native.
  8. Tentukan 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

Untuk tim Capgo, “tipis dan cepat” bukan hanya masalah ukuran bundle.

Namun itu adalah masalah desain rilis.

Pakai update Delta untuk ukuran payload, saluran untuk ukuran rollout, dan rollback untuk ukuran gagal. Setelah Anda berpikir tentang OTA seperti itu, update Anda tetap cepat bahkan ketika aplikasi, tim, dan basis pengguna semakin besar.

Teruskan dari Cara Membuat Capgo Mengupdate Cepat dan Tipis

Jika Anda menggunakan Cara Membuat Capgo Mengupdate Cepat dan Tipis Untuk merencanakan routing saluran dan peluncuran tahap demi tahap, hubungkannya dengan Rute Saluran Untuk detail implementasi di Rute Saluran, Rute Saluran Untuk detail implementasi di Rute Saluran, Rute Saluran Solusi Pengujian Beta Untuk alur kerja produk di Solusi Pengujian Beta, dan Solusi Target Versi Untuk alur kerja produk di Solusi Target Versi. Ditulis oleh

Pembaruan langsung untuk aplikasi Capacitor

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

Pada saat bug layer web masih aktif, kirimkan perbaikan melalui __CAPGO_KEEP_0__ daripada menunggu hari-hari untuk persetujuan toko aplikasi. Pengguna mendapatkan pembaruan di latar belakang sementara perubahan native tetap dalam jalur review normal.

Konteks: Halaman/area: Situs web pemasaran Capgo. Peran: Kalimat deskripsi atau deskripsi meta yang mendukung. Dilihat di: komponen GetStarted.astro. Simpan istilah produk/merek Capgo dan istilah pengembang secara tepat. Kunci pesan `instant_updates_for_capacitor_apps_description` (Deskripsi Pembaruan Langsung Untuk Aplikasi Capacitor).

Bantuan manusia dari Martin

Capgo gives you the best insights you need to create a truly professional mobile app.