Mempraktikkan rasa syukur dapat mengurangi gejala depresi dan kecemasan, serta meningkatkan kesehatan mental dan kepuasan hidup¹. Praktik rasa syukur yang konsisten dapat menghasilkan peningkatan berkelanjutan yang berlangsung selama berbulan-bulan². Aplikasi mindfulness Gratitude mendorong konsistensi melalui jurnal harian mikro, afirmasi, dan papan visi. Aplikasi ini memiliki lebih dari 6 juta download, 150 ribu rating bintang 5, dan 100 juta entri jurnal yang dicatat.
Developer Divij Gupta dan Narendra Aanjna mengembangkan widget untuk setiap perjalanan pengguna inti aplikasi mereka. Tujuan mereka adalah menjangkau pengguna dalam momen sehari-hari tanpa memerlukan overhead sesi aplikasi lengkap.
Dengan menampilkan perintah jurnal interaktif, afirmasi, gambar papan visi, dan metrik langsung di layar utama pengguna, tim menurunkan hambatan untuk refleksi harian dan melaporkan peningkatan retensi sebesar 25% untuk pengguna widget dan ~1.000 entri jurnal mingguan dari widget. Peningkatan loyalitas pengguna ini menghasilkan hasil kesehatan yang nyata bagi pengguna: pembentukan kebiasaan yang konsisten yang mendukung kesejahteraan mental jangka panjang.
“Widget membantu kami membuat aplikasi lebih hadir dalam rutinitas harian pengguna dengan memberikan inspirasi, pengingat, dan refleksi cepat langsung di layar utama. Hal ini meningkatkan interaksi dan memudahkan pengguna untuk tetap konsisten dengan praktik mindfulness mereka.” – Divij Gupta
Tantangan: memodernisasi tanpa mengurangi retensi
Meskipun dampak widget jelas, implementasi RemoteViews berbasis XML asli Gratitude menciptakan utang teknis. Seiring evolusi sistem desain aplikasi ke Material 3, widget lama menjadi semakin sulit diselaraskan dengan UI modern. Setiap pembaruan visual memerlukan overhead XML manual dan solusi sementara yang rapuh, sehingga memperlambat kecepatan developer.
Solusi Bagian 1: bermigrasi dari XML ke Jetpack Glance
Untuk memodernisasi widget, tim beralih ke Jetpack Glance.
Pertama, mereka melihat halaman desain Widget di Android dan tata letak widget kanonis untuk memahami praktik terbaik dalam menampilkan informasi dalam jumlah ruang yang terbatas.
Kemudian, mereka memigrasikan rangkaian widget ke Jetpack Glance. Framework deklaratif ini memungkinkan developer beralih dari perencanaan ke pengiriman dalam kurang dari sebulan, menghemat sekitar 50% waktu pengembangan, dan melihat dua keuntungan tambahan:
- Mengganti tata letak XML yang membatasi dengan kode deklaratif membuat codebase lebih mudah dibaca, dikelola, dan mengurangi upaya developer.
- Jetpack Glance memungkinkan tim menerapkan warna dinamis, pengubahan ukuran yang fleksibel, dan opsi konfigurasi yang diperluas dengan lebih mudah. Fitur ini memastikan widget selaras dengan tata letak layar utama unik pengguna.
GIF berikut menunjukkan dua widget Gratitude dan pengubahan ukuran adaptif:
Meskipun Glance menyederhanakan UI, tim mencatat bahwa pengujian di berbagai peluncur OEM juga penting untuk memastikan konsistensi tata letak di seluruh perangkat.
Tim juga menerapkan Pratinjau Widget yang Dibuat sehingga pengguna dapat melihat pratinjau yang dipersonalisasi. Mereka mencatat bahwa pengujian Pratinjau yang Dibuat dapat berjalan lambat, karena pratinjau dibatasi frekuensinya untuk menghemat baterai. Untuk melewati pembatasan frekuensi untuk pengujian, gunakan perintah adb:
adb shell device_config put systemui generated_preview_api_reset_interval_ms 0
Semua upaya mereka telah membuat widget Gratitude berkualitas tinggi dan berbeda.
Solusi Bagian 2: mempromosikan widget baru dalam aplikasi
Kemudian, developer menggunakan pemasangan pin widget dalam aplikasi untuk meningkatkan visibilitas widget dan penginstalan widget. Meminta pengguna untuk menginstal widget pada momen yang relevan secara kontekstual dalam aplikasi membantu pengguna menemukan widget mereka tanpa harus membuka pemilih widget sistem. GIF berikut menunjukkan sheet bawah Gratitude untuk menambahkan widget dari dalam aplikasi:
Tim juga memfaktorkan ulang paket widget, yang mengubah jalur penerima widget dan menyebabkan widget dihapus dari layar utama pengguna. Dengan menggunakan flag pengguna yang disimpan sebelumnya untuk mengidentifikasi pengguna widget, mereka memicu perintah requestPinGlanceAppWidget lain yang mengundang pengguna widget untuk menggunakan widget baru yang dimodernisasi.
Tips Developer: Untuk mempertahankan penginstalan widget saat bermigrasi dari RemoteViews ke Jetpack Glance, pastikan GlanceAppWidgetReceiver Anda menggunakan nama class dan paket yang sama dengan AppWidgetProvider sebelumnya di Manifes Android. Jika nama class atau lokasi paket baru diperlukan, ikuti langkah Gratitude dengan menggunakan pemasangan pin dalam aplikasi untuk membantu pengguna memulihkan widget mereka.
Strategi ini berhasil, karena 10% dari total DAU telah mengadopsi widget.
Kesimpulan
Kisah Gratitude ini menunjukkan bahwa widget dapat menjadi alat untuk pembentukan kebiasaan. Dengan menerapkan tindakan cepat untuk melakukan refleksi diri langsung dari layar utama, tim meningkatkan loyalitas pengguna. Gratitude mengurangi utang teknis dan memodernisasi widget mereka dengan mengadopsi Jetpack Glance, dan meminta pengguna untuk menambahkan widget dalam aplikasi mereka.
“Pengalaman kami dengan Jetpack Glance sangat baik. Pendekatan berbasis Compose terasa jauh lebih modern, fleksibel, dan selaras dengan cara kami membangun UI lainnya saat ini. Hal ini memungkinkan kami mengekspresikan tata letak widget dengan lebih alami, menggunakan kembali komponen Compose yang sudah dikenal, dan melakukan iterasi pada perubahan UI dengan lebih cepat. Banyak batasan UI yang sebelumnya kami hadapi dengan RemoteViews tidak lagi menjadi masalah, sehingga memudahkan kami membangun widget yang lebih sesuai dengan desain dan pengalaman aplikasi kami.” – Divij Gupta
Memulai
Untuk mulai menggunakan Jetpack Glance dan mempelajari teknologi yang disebutkan dalam postingan ini, lihat panduan berikut:
- Ringkasan Jetpack Glance
- Halaman desain Widget di Android
- Tata letak widget kanonis
- Pratinjau Widget yang Dibuat
- Tingkat Kualitas Widget
- Pemasangan pin widget dalam aplikasi
- Warna dinamis
- Pengubahan ukuran
- Aktivitas konfigurasi
Lihat studi kasus widget lainnya:
- Aplikasi Kontak Google membuat widget baru 25% lebih cepat menggunakan Jetpack Glance
- SoundCloud menggunakan Jetpack Glance untuk membuat widget Lagu yang Disukai hanya dalam 2 minggu
1: Diniz, G., Korkes, L., Tristão, L. S., Pelegrini, R., Bellodi, P. L., &Bernardo, W. M. (2023). The effects of gratitude interventions: a systematic review and meta-analysis. einstein (Sao Paulo)., 21, eRW0371. https://doi.org/10.31744/einstein_journal/2023RW0371
2: Bohlmeijer, E., Kraiss, J., Schotanus-Dijkstra, M., &ten Klooster, P. (2022). Gratitude as mood mediates the effects of a 6-weeks gratitude intervention on mental well-being: post hoc analysis of a randomized controlled trial. Front. Psychol., 12, 799447. https://doi.org/10.3389/fpsyg.2021.799447
Lanjutkan membaca
-
Studi Kasus
Ultrahuman adalah startup teknologi kesehatan konsumen yang memberikan insight kesejahteraan harian kepada pengguna berdasarkan data biometrik dari perangkat wearable perusahaan, seperti RING Air dan M1 Live Continuous Glucose Monitor (CGM).
Amrit Sanjeev, Trevor Johns • Waktu baca: 2 menit
-
Studi Kasus
Karrot adalah aplikasi marketplace peer-to-peer berbasis komunitas hiperlokal yang memungkinkan pengguna membeli, menjual, dan menukar item dengan pengguna terverifikasi lainnya. Sejak diluncurkan di Korea Selatan pada tahun 2015, platform ini telah berkembang ke pasar global, dengan lebih dari 43 juta pengguna terdaftar.
Thomas Ezan, Tracy Agyemang • Waktu baca: 2 menit
-
Studi Kasus
Monzo adalah bank digital Inggris dengan 15 juta pelanggan dan terus bertambah. Seiring skala aplikasi, tim teknik mengidentifikasi waktu startup aplikasi sebagai area penting untuk ditingkatkan, tetapi khawatir hal ini akan memerlukan perubahan signifikan pada codebase mereka.
Ben Weiss, Tracy Agyemang • Waktu baca: 2 menit
Terus dapatkan informasi
Dapatkan insight pengembangan Android terbaru yang dikirim ke kotak masuk Anda setiap minggu.