
Di antara beragam alat yang diumumkan di
Android Dev Summit , saya ingin memberi perhatian khusus pada mekanisme pembaruan aplikasi In-App Updates (IAUs), yang membantu pengembang mempercepat penambahan fitur baru, perbaikan bug, dan peningkatan kinerja. Karena fungsi ini
diterbitkan setelah Google I / O 2019, dalam artikel ini saya akan berbicara secara rinci tentang IAU, menjelaskan skema implementasi yang direkomendasikan dan memberikan beberapa contoh kode. Saya juga akan berbicara tentang pengalaman kami mengintegrasikan IAU ke
Pandao , aplikasi untuk memesan barang dari China.
API baru memungkinkan pengembang untuk memulai pembaruan aplikasi ke versi terbaru yang tersedia di Google Play. Dengan cara ini, IAU melengkapi mekanisme pembaruan otomatis Google Play yang ada. IAU mengandung beberapa skema implementasi yang secara fundamental berbeda dalam hal interaksi pengguna.
- Flexible Flow menawarkan pengguna untuk mengunduh pembaruan di latar belakang dan menginstalnya pada waktu yang nyaman bagi pengguna. Ini dimaksudkan untuk kasus-kasus ketika pengguna masih dapat menggunakan versi lama, tetapi yang baru sudah tersedia.

- Aliran Langsung mengharuskan pengguna untuk mengunduh dan menginstal pembaruan sebelum melanjutkan menggunakan aplikasi. Ini dimaksudkan untuk kasus di mana sangat penting bagi pengembang untuk memperbarui aplikasi.

Karena opsi kedua tidak begitu penting dan kurang cocok untuk aplikasi Pandao, kami akan menganalisis skenario Aliran Fleksibel lebih terinci.
Integrasi Aliran Fleksibel IAU
Gunakan kasing
Proses peningkatan menggunakan IAU terdiri dari beberapa langkah.
- Aplikasi menggunakan perpustakaan Play Core, yang memeriksa di Google Play apakah ada pembaruan yang tersedia.
- Jika ya, maka aplikasi meminta Google Play untuk menampilkan dialog IAU. Google Play menunjukkan kepada pengguna dialog dengan proposal untuk memperbarui.
- Jika pengguna setuju, Google Play di latar belakang mengunduh pembaruan, menunjukkan kepada pengguna di bilah status kemajuan unduhan.
- Jika unduhan selesai ketika aplikasi berjalan di latar belakang, Google Play akan secara otomatis menyelesaikan instalasi. Jika aplikasi aktif saat ini, maka untuk kasus seperti itu perlu untuk menentukan logika penyelesaian instalasi Anda sendiri. Pertimbangkan skenario berikut ini.
- Aplikasi memulai proses instalasi dengan menunjukkan kepada pengguna dialog Google Play dengan indikator kemajuan. Setelah instalasi selesai, versi aplikasi yang diperbarui diluncurkan. Dalam hal ini, disarankan untuk menampilkan dialog tambahan yang memungkinkan pengguna untuk mengkonfirmasi bahwa ia siap untuk memulai kembali aplikasi sekarang. Ini adalah skema implementasi yang direkomendasikan .
- Aplikasi menunggu hingga di latar belakang, dan kemudian menyelesaikan pembaruan. Di satu sisi, ini adalah perilaku yang kurang intrusif dari sudut pandang UX, karena interaksi pengguna dengan aplikasi tidak terganggu. Tetapi di sisi lain, itu mengharuskan pengembang untuk mengimplementasikan logika untuk menentukan apakah aplikasi tersebut di latar belakang.
Jika pemasangan pembaruan yang diunduh tidak selesai, maka Google Play dapat menyelesaikan instalasi di latar belakang. Opsi ini lebih baik tidak digunakan secara eksplisit, karena tidak menjamin instalasi pembaruan.
Persyaratan Pengujian Dasar
Untuk menyelesaikan secara manual seluruh proses pembaruan pada perangkat uji, Anda harus memiliki setidaknya dua versi aplikasi dengan nomor rakitan berbeda:
sumber dan
target .
- Versi asli dengan angka yang lebih tinggi harus dipublikasikan di Google Play, itu akan diidentifikasi oleh Google Play sebagai pembaruan yang tersedia. Versi target dengan nomor build lebih rendah dan IAU terintegrasi harus diinstal pada perangkat, kami akan memperbaruinya. Intinya adalah bahwa ketika aplikasi meminta Google Play untuk memeriksa pembaruan, itu akan membandingkan nomor perakitan dari versi yang diinstal dan tersedia. Jadi IAU hanya akan diluncurkan jika nomor build di Google Play lebih tinggi dari versi saat ini di perangkat.
- Versi sumber dan target harus memiliki nama paket yang sama dan harus ditandatangani dengan sertifikat rilis yang sama .
- Android 5.0 (API level 21) atau lebih tinggi.
- Mainkan Core library 1.5.0 atau lebih tinggi.
Contoh kode
Di sini kita melihat kode contoh untuk menggunakan IAUs Flexible Flow, yang juga dapat ditemukan di
dokumentasi resmi . Pertama, Anda perlu menambahkan perpustakaan Play Core ke file build.gradle di tingkat modul.
dependencies { ... implementation "com.google.android.play:core:1.5.0" }
Kemudian buat instance
AppUpdateManager
dan tambahkan fungsi callback ke
AppUpdateInfo
, yang akan mengembalikan informasi tentang ketersediaan pembaruan, objek untuk memulai pembaruan (jika tersedia) dan kemajuan unduhan saat ini, jika sudah dimulai.
Untuk menampilkan dialog untuk meminta pembaruan dari Google Play, Anda harus melewati objek
AppUpdateInfo
diterima ke metode
AppUpdateInfo
.
appUpdateManager.startUpdateFlowForResult(
Untuk memantau status pembaruan, Anda dapat menambahkan pendengar acara
InstallStateUpdatedListener
ke manajer IAU.
Segera setelah pembaruan diunduh (status
DOWNLOADED
), Anda harus memulai ulang aplikasi untuk menyelesaikan pembaruan. Restart dapat dimulai dengan memanggil
appUpdateManager.completeUpdate()
, tetapi sebelum itu disarankan untuk menampilkan kotak dialog sehingga pengguna secara eksplisit mengkonfirmasi kesiapannya untuk memulai kembali aplikasi.
Snackbar.make( rootView, "An update has just been downloaded from Google Play", Snackbar.LENGTH_INDEFINITE ).apply { setAction("RELOAD") { appUpdateManager.completeUpdate() } show() }
Kesalahan "Pembaruan Tidak Tersedia"
Pertama, periksa kembali kepatuhan dengan persyaratan yang tercantum di bagian Persyaratan Implementasi Dasar. Jika Anda telah melakukan segalanya, tetapi memperbarui sesuai dengan panggilan
onSuccess
masih belum tersedia, maka masalahnya mungkin dalam caching. Kemungkinan aplikasi Google Play tidak mengetahui pembaruan yang tersedia karena mekanisme caching internal. Untuk menghindari hal ini selama pengujian manual, Anda dapat memaksa reset cache dengan membuka halaman "Aplikasi dan game saya" di Google Play. Atau Anda bisa menghapus cache di pengaturan aplikasi Google Play. Harap perhatikan bahwa masalah ini hanya terjadi selama pengujian, seharusnya tidak memengaruhi pengguna akhir, karena cache mereka masih diperbarui setiap hari.
Aliran Fleksibel IAU di aplikasi Pandao
Kami berpartisipasi dalam program akses awal dan mengintegrasikan IAUs Flexible Flow (rekomendasi implementasi) ke dalam aplikasi Pandao, sebuah platform di mana produsen dan vendor dapat memperdagangkan barang-barang Tiongkok. Dialog IAU ditampilkan di layar utama sehingga jumlah maksimum pengguna dapat berinteraksi dengannya. Awalnya, kami ingin menunjukkan dialog tidak lebih dari sekali sehari, agar tidak mengalihkan orang dari berinteraksi dengan aplikasi.
Karena pengujian A / B memainkan peran penting dalam siklus hidup setiap fitur baru, kami memutuskan untuk mengevaluasi efek IAU dalam aplikasi kami. Kami secara acak membagi pengguna menjadi dua kelompok terpisah. Yang pertama adalah kontrol, tanpa menggunakan IAU, dan kelompok kedua adalah uji, kami menunjukkan dialog IAU kepada pengguna ini.
Tes A / B Arus Fleksibel IAU dalam aplikasi Pandao.Selama beberapa rilis terakhir, kami telah mengukur persentase pengguna aktif dari setiap versi aplikasi. Ternyata di antara pengguna aktif dengan versi terbaru yang tersedia pada waktu itu, bagian utama terdiri dari peserta dari kelompok B, yaitu, dengan fungsi IAU. Garis ungu pada grafik menunjukkan bahwa pada hari-hari pertama setelah penerbitan versi 1.29.1, jumlah pengguna aktif dengan IAU melebihi jumlah pengguna tanpa fungsi ini. Oleh karena itu, dapat dikatakan bahwa pengguna dengan IAU memperbarui aplikasi lebih cepat.
Dialog Alur Fleksibel IAU di aplikasi Pandao.Menurut data kami (lihat grafik di atas), pengguna paling sering mengklik tombol konfirmasi dalam dialog IAU di hari-hari pertama setelah rilis, dan kemudian konversi terus dikurangi hingga publikasi versi aplikasi berikutnya. Hal yang sama diamati dengan tombol install di kotak dialog, yang memulai instalasi pembaruan yang diunduh. Oleh karena itu, kita dapat mengatakan bahwa nilai konversi rata-rata dalam kedua kasus berbanding lurus dengan frekuensi rilis. Di Pandao, konversi rata-rata dalam satu bulan mencapai 35% untuk klik pada tombol konfirmasi dan 7% untuk klik pada tombol instal.
Kami berasumsi bahwa penurunan persentase konfirmasi dari waktu ke waktu hanyalah masalah pengalaman pengguna, karena orang yang tertarik dengan versi baru akan memperbarui dengan cukup cepat, dan mereka yang tidak tertarik untuk memperbarui tidak akan tertarik. Berdasarkan asumsi ini, kami memutuskan untuk tidak mengganggu mereka yang tidak tertarik untuk memperbarui, dan tidak meminta mereka setiap hari. Merupakan praktik yang baik untuk menggunakan logika kueri yang berbeda, yang didasarkan pada "keusangan," yaitu, agar tidak mengganggu pengguna, kami mengevaluasi seberapa lama versi yang mereka miliki dan seberapa sering kami telah menyarankan agar mereka memperbarui.
Secara umum, IAU menunjukkan hasil yang baik selama pengujian A / B, jadi kami meluncurkan IAU untuk semua pengguna.
Ucapan Terima Kasih
Terima kasih atas bantuan Anda dalam menulis artikel ini Marina Pleshkova
Maryna_Pliashkova , Alexander Cherny
alexchernyy , Ilya Nazarov
RolaRko , Gleb Bodyachevsky, Daniil Polozov
jokerdab , Anastasia Kulik, Vladislav Breus dan Vladislav Goldin
Vladiskus .