1. Sebelum memulai
Pengantar
Dessert Clicker berfungsi dengan status dan data inline. Dalam latihan ini, Anda akan menghapus status, data, dan logika inline dari MainActivity dan memindahkannya ke ViewModel
.
Memisahkan logika aplikasi dari tampilan dan menjadi ViewModel adalah praktik modern untuk pengembangan Android. Praktik ini memberikan manfaat berikut:
- Kode menjadi lebih mudah dibaca oleh developer lain.
- Kode menjadi lebih mudah diuji.
- Beberapa developer dapat bekerja secara bersamaan di aplikasi tanpa mengganggu tugas developer lain.
Kode solusi tersedia di bagian akhir, tetapi cobalah untuk menyelesaikan latihan sebelum Anda memeriksa jawabannya. Pertimbangkan solusi tersebut sebagai salah satu cara untuk menerapkan aplikasi.
Prasyarat
- Kursus Dasar-Dasar Android di Compose melalui codelab ViewModel dan Status di Compose
Yang akan Anda butuhkan
- Komputer yang dilengkapi akses internet dan Android Studio
- Kode solusi untuk aplikasi Dessert Clicker
Yang akan Anda build
Dalam soal latihan ini, Anda akan meningkatkan arsitektur aplikasi Dessert Clicker dengan menambahkan ViewModel
untuk menangani data dan logika aplikasi.
Soal latihan dibagi menjadi beberapa bagian, dan Anda akan menyelesaikan langkah-langkah berikut satu per satu:
- Update dan tambahkan dependensi yang diperlukan.
- Buat class
ViewModel
.
2. Mendownload kode awal
- Di Android Studio, buka folder
basic-android-kotlin-compose-training-dessert-clicker
. - Buka kode aplikasi Dessert Clicker di Android Studio.
3. Menyiapkan dependensi
- Tambahkan variabel berikut ke file
build.gradle
project Anda:
buildscript {
ext {
...
lifecycle_version = '2.5.1'
}
}
- Tambahkan dependensi berikut ke file
app/build.gradle
:
dependencies {
...implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version"
}
4. Membuat class status UI
Saat ini, composable DessertClickerApp()
di MainActivity
berisi data dan status yang menjalankan UI.
Buat class data yang menyimpan semua data yang diperlukan untuk UI. Data dalam class ini menggantikan data yang saat ini dikelola oleh composable DessertClickerApp()
.
5. Membuat ViewModel
Buat class ViewModel
menggunakan komponen ViewModel Jetpack. Anda menggunakan ViewModel untuk mengelola status UI.
6. Memindahkan logika aplikasi dan data ke ViewModel
Pindahkan logika dari MainActivity
ke ViewModel dan buat data status UI dapat diakses menggunakan class status UI yang Anda buat. Hapus semua data dan logika pengelolaan status dari MainActivity
.
Coba lakukan tugas ini sendiri. Jika perlu, lihat codelab ViewModel dan Status dalam Compose sebagai panduan.
7. Memanggil ViewModel
Gunakan data dan metode yang disediakan ViewModel untuk menjalankan UI di MainActivity
.