Langsung ke konten

Update Delta

Sistem Live Update milik Capgo dapat mengirim update lebih cepat dan efisien dengan hanya mengirim file yang berubah, bukan seluruh JS bundle.

Ini sangat bermanfaat bagi pengguna dengan koneksi jaringan lambat atau terbatas, karena meminimalkan jumlah data yang perlu diunduh.

Keuntungan kedua: aset besar yang jarang berubah, seperti gambar atau video, hanya di-download sekali, tidak seperti file JS yang di-zip.

Delta updates di Capgo ditangani oleh plugin Capgo yang terpasang di aplikasi Anda. Saat Anda mengunggah versi baru aplikasi menggunakan --delta flag, Capgo melakukan hal berikut:

  1. Setiap file dalam build Anda diunggah satu per satu sebagai file delta
  2. Checksum dibuat untuk setiap file delta
  3. Daftar file delta, beserta path dan checksum-nya, disimpan di database Capgo

Saat perangkat yang menjalankan aplikasi Anda mengecek update, plugin Capgo menerima daftar file delta untuk bundle baru. Plugin membandingkannya dengan file yang sudah ada, lalu mengidentifikasi file mana yang berubah berdasarkan checksum dan path file.

Plugin kemudian mengunduh hanya file yang berubah, bukan seluruh JS bundle. Plugin menyusun ulang versi baru aplikasi dengan menggabungkan file yang diunduh dengan file yang tidak berubah yang sudah ada.

Perangkat mana yang mendapat Delta dan mana yang mendapat zip penuh

Bagian berjudul “Perangkat mana yang mendapat Delta dan mana yang mendapat zip penuh”

Bundle yang di-upload dengan --delta memiliki file zip lengkap dan file delta. Pada channel dengan default Zip + delta download default, setiap perangkat mendapatkan paket terbaik yang didukungnya:

  • Perangkat pada versi plugin dengan dukungan Delta (5.10.0+, 6.25.0+, 7.0.35+, atau 8+) hanya men-download file delta yang berubah.
  • Perangkat pada versi plugin lama tanpa dukungan Delta men-download zip penuh.
  • Bundle yang di-upload tanpa --delta tidak memiliki file delta, sehingga setiap perangkat men-download zip penuh.

Jadi, wajar jika masih melihat beberapa download zip penuh setelah mengaktifkan Delta. Itu berasal dari perangkat yang masih menjalankan build native lama dengan versi plugin lama. Ini akan hilang saat pengguna memperbarui aplikasi dari store.

Anda bisa mengubah ini per channel dengan Format download pengaturannya.

Update Delta juga menurunkan penggunaan bandwidth Capgo Anda. Bandwidth hanya menghitung file yang benar-benar di-download oleh perangkat, jadi dengan Delta hanya file yang berubah yang dihitung, bukan seluruh bundle. File atau zip penuh yang sudah di-cache di edge tidak dihitung, dan download yang terputus dilanjutkan dari titik terakhirnya tanpa menghitung bagian yang sudah di-download dua kali. Lihat Bagaimana bandwidth dihitung?.

Untuk mengaktifkan Update Delta di aplikasi Capgo Anda, cukup gunakan --delta flag saat meng-upload versi baru:

Jendela terminal
npx @capgo/cli@latest bundle upload --delta

Jika autoUpdate disetel ke mode apply instan (""atInstall", "onLaunch", atau "always"") di dalam capacitor.config, CLI akan mendeteksinya. Di lingkungan non-interaktif, ia mengirim Delta update secara otomatis, sedangkan di lingkungan interaktif, ia akan meminta konfirmasi sebelum upload. Konfigurasi directUpdate lama tetap terdeteksi. Gunakan --no-delta untuk memaksa full bundle upload.

  • File kosong: The CLI logs Ignoring empty file... dan mengecualikan file berukuran nol byte dari file delta. Upload tidak akan gagal, jadi menambahkan file kosong bisa mengubah bundle yang dihasilkan tanpa menghentikan deployment Anda. Jangan sertakan file berukuran nol byte di path bundle Delta.
  • Spasi dalam path: Delta upload gagal sebelum mengunggah file jika path bundle mengandung spasi. Ubah nama file atau direktori untuk menghilangkan spasi sebelum mengunggah Delta update.

Jika Anda ingin memastikan semua upload adalah Delta update dan mencegah upload bundle penuh secara tidak sengaja, Anda bisa menggunakan --delta-only flag:

Jendela terminal
npx @capgo/cli@latest bundle upload --delta-only

Saat --delta-only digunakan, Capgo hanya akan mengunggah file delta saja, tanpa zip penuh. Perangkat apa pun yang memakai versi plugin tanpa dukungan Delta tidak akan bisa mengunduh update tersebut.

Anda mungkin ingin menggunakan --delta-only jika:

  • Anda selalu ingin menggunakan Delta updates dan tidak ingin mengizinkan upload full bundle
  • Anda sedang menyiapkan CI/CD pipeline dan ingin memastikan semua upload otomatis memakai Delta
  • Aplikasi Anda berukuran besar dan bandwidth terbatas, sehingga Anda perlu meminimalkan ukuran upload/download

Jika Anda perlu melakukan upload full bundle saat --delta-only diatur, cukup jalankan perintah upload tanpa --delta-only. Ini akan menimpa pengaturan untuk satu kali upload tersebut, sehingga Anda bisa push bundle lengkap saat dibutuhkan.

Jika Delta updates tampaknya tidak berfungsi (misalnya perangkat selalu mendownload full JS bundle bahkan untuk perubahan kecil), periksa kembali bahwa:

  • Anda menggunakan --delta flag setiap kali Anda mengupload versi baru
  • Jika menggunakan --delta-only, pastikan Anda tidak sengaja melewatkan --delta flag
  • Perangkat Anda menjalankan versi plugin dengan dukungan Delta (5.10.0+, 6.25.0+, 7.0.35+, atau 8+)
  • Format download channel tidak Hanya zip penuh
  • Perangkat Anda memiliki koneksi jaringan stabil dan dapat mengakses server Capgo

Anda juga bisa menggunakan webapp Capgo untuk mengecek detail upload terakhir Anda:

  1. Buka halaman webapp
  2. Klik pada aplikasi Anda
  3. Klik pada jumlah bundle di bar statistik.
  4. Pilih bundle terakhir
  5. Cek Delta files barisnya. Ini menunjukkan Tidak ada file delta saat bundle diunggah hanya sebagai zip penuh. tipe bundle

Jika masih mengalami kendala, silakan hubungi tim support Capgo untuk bantuan lebih lanjut. Mereka dapat memeriksa log server untuk memastikan upload Delta Anda diproses dengan benar dan perangkat menerima file delta-nya.

Selesai! Flag --delta tersebut memberi tahu Capgo untuk mengunggah file delta individual yang dibutuhkan untuk Delta update.

Perlu diingat bahwa Anda harus menggunakan --delta setiap kali mengunggah versi baru yang ingin dikirim sebagai Delta update. Jika flag tidak disertakan, Capgo akan mengunggah seluruh JS bundle sebagai satu file, dan perangkat akan mengunduh seluruh bundle meskipun hanya sebagian kecil yang berubah.

Jika Anda menggunakan Update Delta untuk merencanakan pengiriman live update, hubungkan dengan Capgo Live Updates untuk alur kerja produk di Capgo Live Updates, Ikhtisar untuk detail implementasi di Overview, Fitur untuk detail implementasi di Features, Perilaku Update untuk detail implementasi di Update Behavior, dan Tipe Update untuk detail implementasi di Update Types.