1. Sebelum memulai
Pengantar
Di codelab Mempertahankan Data dengan Room, Anda telah mempelajari cara mengimplementasikan database Room di aplikasi Android. Latihan ini memberikan peluang untuk lebih memahami penerapan database Room melalui serangkaian langkah-langkah mandiri.
Dalam set latihan ini, Anda akan mengambil konsep yang dipelajari dari codelab Mempertahankan Data dengan Room untuk menyelesaikan aplikasi Bus Schedule. Aplikasi ini menyajikan daftar halte bus dan keberangkatan terjadwal kepada pengguna menggunakan data yang disediakan dari database Room.
Kode solusi tersedia di akhir. Untuk mendapatkan hasil maksimal dari pengalaman pembelajaran ini, cobalah untuk mengimplementasikan dan memecahkan masalah sebanyak mungkin sebelum melihat kode solusi yang diberikan. Di waktu inilah Anda akan belajar paling banyak.
Prasyarat
- Kursus Dasar-Dasar Android dengan Compose melalui codelab Mempertahankan Data dengan Room
Yang Anda butuhkan
- Komputer yang memiliki akses internet dan Android Studio
- Kode awal Bus Schedule
Yang akan Anda bangun
Dalam set latihan ini, Anda akan menyelesaikan aplikasi Bus Schedule dengan menerapkan sebuah database, lalu mengirimkan data ke UI menggunakan database tersebut. File database dalam direktori aset yang ditemukan di kode awal menyediakan data untuk aplikasi. Anda memuat data ini ke dalam database dan menyediakannya untuk penggunaan proses baca oleh aplikasi.
Setelah Anda menyelesaikan aplikasi, aplikasi akan menampilkan daftar halte bus dan waktu kedatangan yang sesuai. Anda dapat mengklik item dalam daftar untuk memicu navigasi ke layar detail yang menyediakan data untuk halte tersebut.
Aplikasi yang sudah selesai akan menampilkan data ini, yang dimuat dari database Room:
2. Mendownload kode awal
- Di Android Studio, buka folder
basic-android-kotlin-compose-training-bus-schedule
. - Buka kode aplikasi Bus Schedule di Android Studio.
- Klik tombol Run untuk membangun dan menjalankan aplikasi.
Aplikasi diharapkan menampilkan jadwal yang menunjukkan satu perhentian saat dibangun dari kode cabang starter
.
3. Menambahkan dependensi
Tambahkan dependensi berikut ke aplikasi:
app/build.gradle.kts
implementation("androidx.room:room-ktx:${rootProject.extra["room_version"]}")
implementation("androidx.room:room-runtime:${rootProject.extra["room_version"]}")
ksp("androidx.room:room-compiler:${rootProject.extra["room_version"]}")
Anda harus mendapatkan versi stabil terbaru room
dari dokumentasi Room dan menambahkan nomor versi yang benar. Untuk saat ini, versi terbaru adalah:
build.gradle.kts
set("room_version", "2.5.1")
4. Membuat entity Room
Konversi class data Bus Schedule saat ini menjadi Room Entity
.
Gambar berikut menunjukkan contoh tampilan tabel data akhir, termasuk skema dan properti Entity
.
5. Membuat objek akses data
Buat objek akses data (DAO) untuk mengakses database. DAO menyediakan metode untuk mengambil semua item dalam database dan metode untuk mengambil satu item dengan nama halte bus. Pastikan Anda mengurutkan jadwal berdasarkan waktu kedatangan.
6. Membuat instance database
Buat database Room yang menggunakan Entity
dan DAO. Database melakukan inisialisasi sendiri dengan data dari file assets/database/bus_schedule.db
dalam kode awal.
7. Mengupdate ViewModel
Update ViewModel untuk mengambil data dari DAO dan menyediakannya ke UI, bukan memberikan data sampel. Pastikan untuk memanfaatkan kedua metode DAO untuk menyediakan data bagi daftar dan untuk setiap halte.