
Dengan berbagai alat dan fitur baru yang diumumkan di
Android Dev Summit , perhatian khusus harus diberikan pada API Pembaruan Dalam Aplikasi (IAU) yang memungkinkan pengembang untuk meningkatkan kecepatan pengiriman fitur, perbaikan bug, dan peningkatan kinerja kepada pengguna aktif. Karena fitur ini akhirnya
dirilis setelah Google I / O 2019, dalam artikel ini saya akan menyelam lebih dalam pada API IAU, menjelaskan secara terperinci aliran pengguna yang disarankan dan memberikan beberapa contoh kode. Selain itu, saya akan berbagi pengalaman tentang integrasi IAU dalam aplikasi
Pandao , platform pasar untuk barang-barang Cina.
API baru memungkinkan pengembang untuk memulai aliran permintaan pembaruan dalam aplikasi yang baru untuk mendorong pengguna aktif untuk memperbarui aplikasi. IAU melengkapi mekanisme pembaruan otomatis Google Play yang ada, tetapi, sayangnya, tidak berdampak pada niat beberapa pengguna untuk menonaktifkan segala jenis pembaruan. Permintaan IAU dapat diimplementasikan dalam dua cara, yang memberikan pengalaman pengguna yang sama sekali berbeda.
- Alur fleksibel meminta pengguna untuk mengunduh pembaruan di latar belakang dan menginstalnya pada saat yang tepat. Seharusnya digunakan dalam kasus-kasus sementara masih sesuai bagi pengguna untuk menggunakan versi aplikasi yang lebih lama sementara yang baru dirilis.

- Aliran langsung mengharuskan pengguna untuk mengunduh dan menginstal pembaruan sebelum melanjutkan menggunakan aplikasi. Seharusnya digunakan dalam kasus sementara sangat penting bagi pengembang untuk mencegah penggunaan aplikasi sebelum pembaruan diterapkan.

Karena use case yang terakhir kurang penting dan sesuai untuk aplikasi Pandao, kami akan membahas secara rinci yang pertama.
Integrasi Aliran Fleksibel IAU
Gunakan kasing
Alur IAU yang fleksibel terdiri dari langkah-langkah berikut.
- Aplikasi meminta Google Play untuk memeriksa pembaruan yang tersedia menggunakan Play Core Library.
- Jika ada pembaruan yang tersedia, aplikasi meminta Google Play untuk menampilkan dialog IAU. Google Play menunjukkan dialog permintaan pembaruan kepada pengguna.
- Jika pengguna menerima permintaan pembaruan, Google Play mengunduh pembaruan di latar belakang, memberikan pengguna pemantauan keadaan yang anggun di bilah status.
- Jika proses pengunduhan selesai saat aplikasi berada di latar belakang, Google Play secara otomatis menyelesaikan penginstalan. Untuk kasus ketika unduhan selesai saat aplikasi berada di latar depan, kita harus mendefinisikan logika khusus untuk penyelesaian pembaruan. Pertimbangkan beberapa praktik terbaik untuk implementasi.
- Aplikasi meluncurkan proses instalasi sambil menampilkan layar Google Play dengan kemajuan instalasi kepada pengguna. Setelah instalasi selesai, aplikasi restart dan versi yang diperbarui terbuka. Dalam hal ini, disarankan untuk menampilkan dialog tambahan untuk memungkinkan pengguna untuk mengkonfirmasi secara eksplisit bahwa ia siap untuk meluncurkan kembali aplikasi sekarang. Ini adalah aliran yang sangat direkomendasikan .
- Aplikasi menunggu hingga masuk ke latar belakang dan kemudian menyelesaikan pembaruan secara diam-diam. Di satu sisi, opsi ini kurang invasif dalam hal pengalaman pengguna. Tetapi di sisi lain, itu mengharuskan pengembang untuk menerapkan fitur rumit untuk mendeteksi setiap kali aplikasi pergi ke latar belakang.
Dalam situasi luar biasa, penyelesaian pembaruan akan ditangguhkan secara otomatis ke tugas latar belakang Google Play. Opsi ini tidak disarankan untuk penggunaan eksplisit karena tidak memberikan jaminan apa pun tentang pemasangan pembaruan.
Persyaratan Dasar untuk Pengujian Manual
Untuk melakukan aliran pembaruan penuh secara manual pada perangkat uji, Anda harus memiliki setidaknya dua versi aplikasi dengan nomor versi yang berbeda: versi sumber dan versi target.
- Versi sumber dengan nomor versi yang lebih tinggi harus dipublikasikan di Google Play, ini adalah versi yang akan diidentifikasi oleh Google Play sebagai pembaruan yang tersedia. Versi target dengan nomor versi yang lebih rendah dan fitur IAU terintegrasi harus diinstal pada perangkat Anda, ini adalah versi yang akan diperbarui. Masalahnya adalah, ketika aplikasi meminta Google Play untuk memeriksa pembaruan yang tersedia, itu membandingkan nomor versi aplikasi yang diinstal dengan nomor versi build terakhir yang tersedia di Google Play. Jadi fitur IAU akan dipicu hanya jika nomor versi di Google Play lebih tinggi dari versi aplikasi yang sebenarnya di perangkat.
- Sumber dan versi 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.
Kode contoh
Bagian ini berisi beberapa kode sampel untuk penggunaan IAU, yang juga dapat ditemukan di
dokumentasi resmi . Untuk memulainya, perlu menambahkan Play Core library ke file gradle tingkat modul.
dependencies { ... implementation "com.google.android.play:core:1.5.0" }
Selanjutnya, mari kita membuat instance dari manajer IAU dan menambahkan callback ke tugas
AppUpdateInfo
. Hasil dari tugas ini berisi informasi tentang ketersediaan pembaruan, niat untuk memulai pembaruan jika tersedia, dan perkembangan terkini dari unduhan pembaruan jika sudah dimulai.
Dalam hal bagaimana memicu dialog permintaan pembaruan dari kode Google Play in, Anda menerima
PendingIntent
di objek
AppUpdateInfo
, yang bisa Anda mulai dengan
startIntentSenderForResult
. Dialog ini meminta pengguna untuk memulai pembaruan.
appUpdateManager.startUpdateFlowForResult(
Untuk memantau keadaan pembaruan, Anda dapat menambahkan
InstallStateUpdatedListener
ke manajer IAUs. Pastikan
InstallStateUpdatedListener
Anda sadar akan siklus hidup.
Segera setelah pembaruan diunduh (status
DOWNLOADED
), aplikasi harus dimulai ulang untuk menyelesaikan pembaruan. Itu dapat dengan mudah dimulai dengan memanggil
appUpdateManager.completeUpdate()
, tetapi disarankan untuk menampilkan snackbar untuk memungkinkan pengguna untuk mengonfirmasi secara eksplisit bahwa ia siap untuk meluncurkan kembali aplikasi sekarang.
Snackbar.make( rootView, "An update has just been downloaded from Google Play", Snackbar.LENGTH_INDEFINITE ).apply { setAction("RELOAD") { appUpdateManager.completeUpdate() } show() }
Galat "Pembaruan Tidak Tersedia"
Pertama-tama, harap periksa kembali persyaratan yang disebutkan di bagian "Persyaratan Implementasi Dasar". Jika Anda berhasil menyelesaikan langkah-langkah di atas sesuai dengan semua persyaratan, meskipun pembaruan, sesuai dengan panggilan balik
onSuccess
, masih tidak tersedia, harap perhatikan trik berikut. Alasan yang paling mungkin adalah bahwa aplikasi Google Play belum tahu tentang pembaruan karena mekanisme caching internal. Untuk memastikan Anda memiliki cache yang segar saat pengujian secara manual, Anda dapat menyegarkan versi yang di-cache dengan membuka layar "Aplikasi & Game Saya" di aplikasi Google Play. Sebagai alternatif, Anda cukup menghapus cache aplikasi Google Play di pengaturan. Perhatikan bahwa ini hanya masalah pengujian dan tidak memengaruhi pengguna akhir karena cache diperbarui setiap hari.
Alur Fleksibel IAU di Pandao
Sebagai bagian dari program akses awal, kami mengintegrasikan aliran fleksibel IAU (penerapan yang disarankan) di aplikasi Pandao, yaitu aplikasi pasar yang menawarkan produk dari produsen dan vendor Cina. Dialog IAU ditampilkan di layar utama, sehingga jumlah maksimum pengguna dapat berinteraksi dengannya. Awalnya, kami memutuskan untuk menunjukkan dialog IAU tidak lebih dari sekali sehari untuk menghindari pengguna risiko terganggu.
Karena pengujian A / B adalah langkah penting dalam setiap siklus fitur baru, kami memutuskan untuk mengevaluasi efek IAU pada aplikasi Pandao. Kami secara acak membagi pengguna kami menjadi dua kelompok yang tidak tumpang tindih. Yang pertama adalah kelompok kontrol tanpa fungsional IAU mewakili garis dasar 'tidak ada perubahan', dan yang kedua adalah kelompok uji dengan dialog IAU.
Fig. 1. Pengujian A / B untuk IAU (aliran fleksibel) di Pandao App.Selama beberapa rilis terakhir, kami mengukur persentase pengguna aktif untuk setiap versi aplikasi. Ditemukan bahwa di antara pengguna aktif dengan yang terakhir tersedia pada versi waktu bagian utama adalah dari grup B, yaitu pengguna dengan fitur IAUS. Seperti yang dapat Anda lihat dari garis ungu di ara. 1, pada hari-hari pertama setelah publikasi versi aplikasi 1.29.1, jumlah pengguna aktif dengan fitur IAU melebihi jumlah pengguna tanpa fitur ini. Situasi yang berlawanan dapat diamati untuk versi aplikasi sebelumnya, lihat garis biru dan merah setelah publikasi versi aplikasi 1.29.1. Oleh karena itu, dapat dinyatakan bahwa pengguna dengan IAU cenderung memperbarui versi aplikasi lebih cepat.
Fig. 2. Tingkat konfirmasi pada dialog IAU (aliran fleksibel) di Pandao App .
Menurut data analisis Pandao (lihat gambar 2), konversi untuk mengklik tombol konfirmasi pada dialog IAU mencapai nilai puncak pada hari-hari pertama rilis dan kemudian terus menurun hingga pembaruan aplikasi berikutnya. Pola yang sama dapat diamati dalam konversi dengan mengeklik tombol instal di snackbar, yang memulai pemasangan pembaruan yang diunduh. Akibatnya, sepertinya tingkat konversi rata-rata dalam kedua kasus berbanding lurus dengan frekuensi rilis. Di Pandao, rata-rata tingkat konversi yang diukur selama satu bulan melebihi 35% untuk klik pada tombol konfirmasi dan 7% untuk klik pada tombol instal.
Kami menyarankan bahwa pengurangan tingkat konfirmasi dari waktu ke waktu hanyalah masalah pengalaman pengguna, karena orang-orang yang tertarik dengan versi aplikasi baru akan memperbarui dengan cepat, dan mereka yang tidak tertarik untuk memperbarui akan terus tidak tertarik. Berdasarkan informasi ini, kami memutuskan mundur beberapa pengguna jika mereka tidak tertarik memperbarui, daripada meminta mereka setiap hari. Tampaknya menjadi praktik yang baik untuk mencoba logika permintaan yang berbeda berdasarkan 'staleness', yaitu, berapa usia versi mereka, berapa kali pengguna telah meminta mereka untuk pembaruan dan sebagainya, alih-alih pengguna risiko terganggu.
Hasilnya, IAU menunjukkan hasil yang berharga selama pengujian A / B, jadi kami meluncurkan fitur ini untuk semua pengguna.
Segmen yang diakui
Saya ingin berterima kasih kepada berbagai kolega atas kontribusi mereka pada artikel ini. Terima kasih kepada Maryna Pliashkova
Maryna_Pliashkova , Alexander Chernyy
alexchernyy , Ilia Nazarov
RolaRko , Gleb Bodyachevskiy, Daniil Polozov
jokerdab , Anastasia Kulik, Vladislav Breus, dan Vladislav Goldin
Vladiskus .