Langsung ke konten

Perilaku Pembaruan

Ketika Anda merilis pembaruan untuk aplikasi Capgo, Anda mungkin ingin pengguna menerima pembaruan tersebut secepat mungkin. Namun Anda juga tidak ingin mengganggu pengalaman mereka dengan memaksa menunggu unduhan atau memulai ulang aplikasi di tengah sesi.

Perilaku pembaruan Capgo dirancang untuk menyeimbangkan antara memberikan pembaruan dengan cepat dan meminimalkan gangguan bagi pengguna Anda.

Alur Pembaruan Default

Secara default, berikut cara Capgo menangani pembaruan aplikasi:

  1. Saat aplikasi diluncurkan, plugin Capgo memeriksa apakah ada pembaruan baru yang tersedia

  2. Jika ditemukan pembaruan, pembaruan akan diunduh di latar belakang sementara pengguna terus menggunakan versi saat ini dari aplikasi

  3. Setelah unduhan selesai, Capgo menunggu pengguna menutup aplikasi ke latar belakang atau menutupnya sepenuhnya

  4. Ketika pengguna membuka aplikasi berikutnya, mereka akan menjalankan versi yang diperbarui

Alur ini memastikan pengguna selalu menjalankan versi terbaru dari aplikasi Anda, tanpa pernah terganggu oleh permintaan pembaruan atau dipaksa menunggu unduhan.

Mengapa Pendekatan Ini?

Menerapkan pembaruan pada saat latar belakang atau penutupan memiliki beberapa manfaat utama untuk pengalaman pengguna:

  • Pengguna tidak terganggu oleh permintaan pembaruan atau dipaksa menunggu unduhan di tengah sesi

  • Pembaruan diterapkan dengan mulus di antara sesi, sehingga pengalaman membuka aplikasi selalu baru

  • Anda dapat memberikan pembaruan secara sering tanpa khawatir mengganggu pengguna aktif

Kerugian utamanya adalah jika pengguna menutup ke latar belakang dan dengan cepat melanjutkan aplikasi Anda, mereka mungkin kehilangan status yang belum disimpan karena pembaruan diterapkan di antara tindakan tersebut

Untuk mengurangi hal ini, kami merekomendasikan:

  • Menyimpan status secara sering dan memulihkannya dengan baik ketika aplikasi dilanjutkan

  • Menghindari pembaruan yang sangat sering yang memodifikasi sebagian besar status aplikasi

  • Mempertimbangkan untuk menyesuaikan perilaku pembaruan untuk alur yang sensitif (lihat di bawah)

Menyesuaikan Kapan Pembaruan Diterapkan

Dalam beberapa kasus, Anda mungkin ingin lebih mengontrol kapan tepatnya pembaruan diterapkan. Misalnya, Anda mungkin ingin memastikan pengguna menyelesaikan alur yang sedang berlangsung sebelum memperbarui, atau mengoordinasikan pembaruan aplikasi dengan perubahan sisi server.

Capgo menyediakan fungsi setDelay yang memungkinkan Anda menentukan kondisi yang harus dipenuhi sebelum pembaruan diinstal:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdatersetMultiDelay({
delayConditions: [
{
kind: 'date',
value: '2023-06-01T00:00:00000Z',
},
{
kind: 'background',
value: '60000',
},
],
});

Contoh ini akan menunda penginstalan pembaruan sampai setelah 1 Juni 2023 DAN aplikasi telah berada di latar belakang setidaknya 60 detik.

Kondisi penundaan yang tersedia adalah:

  • date: Tunggu sampai setelah tanggal/waktu tertentu untuk menerapkan pembaruan
  • background: Tunggu durasi minimum setelah aplikasi berada di latar belakang untuk menerapkan pembaruan
  • nativeVersion: Tunggu hingga binary native dengan versi minimum terpasang sebelum menerapkan pembaruan
  • kill: Tunggu sampai event penutupan aplikasi berikutnya untuk menerapkan pembaruan

Anda dapat menggabungkan kondisi-kondisi ini untuk mengontrol secara tepat kapan pembaruan diinstal

Menerapkan Pembaruan Segera

Untuk pembaruan kritis atau aplikasi dengan status yang sangat sederhana, Anda mungkin ingin menerapkan pembaruan segera setelah diunduh, tanpa menunggu event latar belakang atau penutupan. Capgo mendukung ini melalui opsi konfigurasi directUpdate.

directUpdate diatur dalam file capacitor.config.ts Anda, bukan dalam kode JavaScript:

import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
autoUpdate: true,
directUpdate: true,
},
},
keepUrlPathAfterReload: true,
};
export default config;

Dengan directUpdate diaktifkan, Capgo akan segera menerapkan pembaruan setelah unduhan selesai, bahkan jika pengguna sedang aktif menggunakan aplikasi.

Perhatikan bahwa karena directUpdate adalah konfigurasi native, ini memerlukan penanganan tambahan dalam kode JavaScript Anda.

Saat menggunakan directUpdate, Anda perlu mendengarkan event appReady dan menyembunyikan splash screen aplikasi Anda sebagai respons:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => {
// Hide splash screen
SplashScreen.hide();
});
CapacitorUpdater.notifyAppReady();

Event appReady terpicu setelah aplikasi selesai menginisialisasi dan menerapkan pembaruan yang tertunda. Ini adalah saat yang tepat untuk menampilkan UI aplikasi Anda, karena memastikan pengguna akan melihat versi terbaru.

Selain menangani event appReady, kami merekomendasikan mengatur opsi konfigurasi keepUrlPathAfterReload ke true saat menggunakan directUpdate. Ini mempertahankan path URL saat ini ketika aplikasi dimuat ulang karena pembaruan, membantu mempertahankan lokasi pengguna dalam aplikasi dan mengurangi disorientasi.

Jika Anda tidak menangani event appReady dan mengatur keepUrlPathAfterReload saat menggunakan directUpdate, pengguna mungkin akan sekilas melihat versi lama aplikasi, kembali ke rute awal, atau melihat kedipan saat pembaruan diterapkan.

Menggunakan directUpdate dapat berguna untuk memberikan perbaikan bug kritis atau patch keamanan, tetapi memiliki beberapa kelemahan:

  • Pengguna mungkin melihat kedipan atau status loading singkat saat pembaruan diterapkan jika Anda tidak menangani event appReady dengan benar
  • Jika pembaruan memodifikasi status atau UI aplikasi, pengguna mungkin melihat perubahan yang mengganggu di tengah sesi
  • Lokasi pengguna dalam aplikasi mungkin hilang jika keepUrlPathAfterReload tidak diatur, berpotensi membingungkan mereka
  • Anda perlu hati-hati menangani penyimpanan dan pemulihan status untuk memastikan transisi yang mulus

Jika Anda mengaktifkan directUpdate, kami merekomendasikan:

  • Menangani event appReady untuk mengontrol kapan UI aplikasi Anda ditampilkan
  • Mengatur keepUrlPathAfterReload ke true untuk mempertahankan lokasi pengguna dalam aplikasi
  • Menyimpan dan memulihkan status aplikasi sesuai kebutuhan untuk menghindari kehilangan kemajuan pengguna
  • Menguji secara menyeluruh perilaku pembaruan aplikasi Anda untuk memastikan tidak ada transisi yang mengejutkan, status yang hilang, atau perubahan lokasi yang membingungkan

Dalam kebanyakan kasus, perilaku pembaruan default memberikan keseimbangan terbaik antara memberikan pembaruan dengan cepat dan meminimalkan gangguan. Tetapi untuk aplikasi dengan kebutuhan khusus, Capgo memberikan fleksibilitas untuk menyesuaikan kapan dan bagaimana pembaruan diterapkan.