Fungsi yang berfungsi dengan baik sebagai modul on demand biasanya tidak diperlukan oleh sebagian besar pengguna Anda pada waktu penginstalan. Berikut ini beberapa contoh fitur aplikasi yang sesuai untuk modul on demand:
- Mengedit dan mengupload video di aplikasi yang sebagian besar penggunanya hanya menonton video
- Menambahkan resep di aplikasi yang sebagian besar penggunanya hanya menjelajah dan mengikuti resep orang lain
- Fungsi bantuan dan dukungan saat sebagian besar pengguna tidak mencari bantuan, atau tidak mencarinya di dalam aplikasi
- Library besar untuk fungsi yang jarang digunakan seperti menyediakan tangkapan dan pelaporan bug yang terperinci
- Kapabilitas pembayaran atau checkout tertentu
- Pengalaman media dengan resolusi sangat tinggi atau fitur VR/AR
Biasanya, jika modul ini berukuran relatif kecil (kurang dari 10 MB), dan tidak ada masalah jaringan atau kegagalan lainnya, pengguna dapat mendownload dan menggunakan modul on demand dengan cepat. Artinya, pengalaman ini biasanya tidak berbeda dengan jika modul telah ada saat penginstalan aplikasi.
Halaman ini menjelaskan praktik terbaik yang membantu Anda melakukan hal berikut:
- Memastikan pengguna mengetahui dan merasa mampu mengendalikan proses download modul yang berukuran relatif lebih besar yang tidak dapat dimuat seketika, atau error penginstalan modul.
- Mengoptimalkan pengalaman pengiriman modul lebih lanjut, terutama dalam situasi saat Anda dapat memprediksi bahwa pengguna akan memerlukan modul tertentu.
Setelah membaca seluruh panduan ini, lihat penerapan praktik terbaik berikut dengan mencoba aplikasi contoh Play Core API.
Selalu memberi tahu pengguna
Sebaiknya Anda memberi tahu pengguna jika sebuah fitur tidak langsung tersedia. Jika pengguna memutuskan untuk mendownload fitur itu dari Google Play, tampilkan progres downloadnya.
Anda dapat memantau status permintaan untuk menampilkan progres download dan status penginstalan. Namun, jenis UI yang ingin Anda tampilkan mungkin bergantung pada ukuran download:
- Untuk modul berukuran kecil (~10 MB atau kurang) yang dapat diinstal dengan sangat cepat, pertimbangkan indikator seperti indikator lingkaran berputar atau pesan singkat “sedang mendownload konten”.
- Untuk modul berukuran besar yang mungkin memerlukan waktu beberapa detik atau lebih untuk didownload dan diinstal, pertimbangkan untuk menampilkan status progres download dan instal, seperti yang ditunjukkan pada Gambar 1.
Gambar 1. Tampilkan pesan dan status progres saat fitur on demand didownload dan diinstal
Mengomunikasikan penundaan dan kegagalan penginstalan dengan baik
Jika download gagal atau progresnya lebih lambat daripada yang diperkirakan, komunikasikan dengan jelas dan
transparan peristiwa yang terjadi kepada pengguna serta tindakan, jika ada,
yang dapat mereka lakukan, seperti ditunjukkan pada Gambar 2 dan 3. Misalnya, jika Anda
memantau status permintaan download,
dan aplikasi Anda menerima error API_NOT_AVAILABLE
, beri tahu pengguna bahwa perangkat
mereka tidak mendukung download on demand.
![](https://developer.android.com/static/studio/images/projects/dynamic-delivery/failed_download.png?authuser=6&hl=id)
Gambar 2. Beri tahu pengguna mengapa fitur tidak dapat diinstal saat ini
![](https://developer.android.com/static/studio/images/projects/dynamic-delivery/large_download.png?authuser=6&hl=id)
Gambar 3. Jelaskan kepada pengguna mengapa download fitur memerlukan waktu lebih lama daripada perkiraan
Menampilkan ukuran sebelum izin diminta untuk download berukuran besar
Jika modul on demand berukuran besar (lebih dari 150 MB), Google Play mengharuskan pengguna terlebih dahulu memberikan persetujuan sebelum mendownloadnya.
Sebelum meminta modul, tampilkan ukurannya kepada pengguna. Bantu mereka memahami alasan Anda mengajukan permintaan ini, seperti saat Anda meminta izin aplikasi. Komunikasi terbuka dengan pengguna meningkatkan kemungkinan mereka akan menyetujui permintaan download.
Misalnya, bayangkan Anda sedang membuat aplikasi e-commerce dan salah satu fiturnya memungkinkan pengguna untuk menempatkan furnitur langsung di dalam apartemen mereka menggunakan Augmented Reality (AR). Sebaiknya Anda menyertakan pesan seperti, "Ingin melihat sofa baru Anda di ruang keluarga? Instal penampil augmented reality sekarang."
Menjalankan proses download dan penginstalan di latar belakang
Download dan penginstalan modul harus selalu terjadi di latar belakang. Artinya, saat pengguna menunggu fitur tersedia, Anda harus mengizinkan mereka untuk terus menggunakan bagian lain dari aplikasi Anda. Dan, saat fitur tersebut tersedia, Anda harus memberikan pemberitahuan yang memungkinkan pengguna untuk beralih menggunakan fitur tersebut atas kebijaksanaan mereka.
Seperti yang ditunjukkan pada Gambar 5, pengguna terus menggunakan aplikasi dan menerima notifikasi saat penginstalan fitur on demand selesai.
Gambar 5. Alih-alih mengubah konteks pengguna secara tiba-tiba saat penginstalan modul selesai, beri tahu pengguna bahwa fitur yang diminta sudah siap.
Saat modul siap digunakan, beri tahu pengguna dan berikan pilihan untuk meluncurkan fitur. Cara ini memberi pengguna konteks dan kendali atas pengalaman mereka.
Pada beberapa kasus, Anda dapat meluncurkan fitur begitu fitur tersebut siap. Namun, karena hal itu dapat mengganggu pengalaman pengguna, pertimbangkan dengan saksama apakah perilaku ini diharapkan dan sesuai.
Kosongkan penyimpanan perangkat jika modul tidak lagi diperlukan
Kapabilitas yang berguna dari semua modul fitur terletak pada kemampuan untuk di-uninstal satu per satu. Jika modul fitur tidak lagi digunakan, Anda dapat mengurangi ukuran aplikasi Anda di perangkat pengguna dengan meminta Google Play agar meng-uninstal modul tersebut.
Misalnya, aplikasi Anda mungkin memiliki alur aktivasi yang lengkap, mungkin juga disertai multimedia. Setelah pengguna menyelesaikan alur aktivasi, atau setelah mereka menjadi pengguna aktif selama jangka waktu tertentu, Anda dapat menggunakan Play Feature Delivery API untuk meminta Google Play agar meng-uninstal hanya komponen itu saja dari aplikasi Anda.
Perhatikan bahwa Anda juga dapat meng-uninstal modul yang Anda sertakan saat menginstal aplikasi awal. Misalnya, modul yang melatih pengguna baru tentang cara menggunakan aplikasi Anda akan sangat berguna saat pengguna pertama kali menggunakan aplikasi Anda. Namun, untuk mengurangi ukuran aplikasi, Anda dapat meng-uninstalnya setelah mereka menyelesaikan pelatihan.
Tips lanjutan
Biasanya, Anda perlu menangani situasi ketika pengguna secara eksplisit menunjukkan niatnya untuk menggunakan fungsi modul fitur on demand.
Namun, Anda mungkin perlu memprediksi kapan pengguna kemungkinan akan menggunakan sebuah fitur sebelum mereka memberi sinyal kepada Anda bahwa mereka ingin menggunakannya. Menggunakan aplikasi yang memungkinkan Anda mendownload dan membuat resep masakan sebagai contohnya, pedoman berikut menjelaskan cara mengoptimalkan pengalaman pengiriman modul dengan mengantisipasi kebutuhan pengguna.
Antisipasi kebutuhan pengguna akan fitur dalam sesi saat ini. Pertimbangkan apakah pengguna hanya perlu membuat akun untuk aplikasi resep saat mereka ingin membuat dan membagikan resep mereka kepada komunitas. Anda dapat menggunakan pembuatan akun sebagai sinyal bahwa pengguna mungkin ingin menambahkan resep mereka sendiri dan memulai download modul fitur sebelum pengguna mengetuk 'tambahkan resep'. Anda dapat menerapkan pendekatan ini pada proses pengguna lainnya di aplikasi agar proses download fitur berjalan lebih lancar.
Antisipasi kebutuhan pengguna akan fitur ini di sesi mendatang. Jika tidak ingin aplikasi langsung mendownload dan menginstal modul on-demand, Anda dapat menunda penginstalan saat aplikasi berjalan di latar belakang, dan Google Play akan menangani proses download dan penginstalan aplikasi secara otomatis. Misalnya, bayangkan Anda ingin merilis resep musiman baru untuk aplikasi memasak, yang bukan prioritas tinggi untuk sesi pengguna saat ini. Anda dapat meminta Play agar mendownload dan menginstal resep-resep ini saat aplikasi berjalan di latar belakang. Hal ini sangat membantu untuk modul berukuran besar (>10 MB) yang tidak langsung diperlukan, tetapi mungkin akan diperlukan di waktu mendatang.
Antisipasi kebutuhan pengguna akan fitur sebelum penginstalan aplikasi. Anda mungkin ingin menambahkan dukungan untuk pengiriman bersyarat agar menyertakan fitur Anda pada waktu penginstalan berdasarkan negara pengguna, kemampuan hardware perangkat, dan API level. Misalnya, Anda ingin menyertakan resep yang menggunakan daging babi dalam modul bersyarat dan menghilangkan modul tersebut dari penginstalan aplikasi di wilayah yang umumnya menghindari masakan daging babi.