Latihan: Membangun aplikasi Bus Schedule

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

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:

cdb6f9e79137f323.png

6c59e6f57f59bd27.png

2. Mendownload kode awal

  1. Di Android Studio, buka folder basic-android-kotlin-compose-training-bus-schedule.
  2. Buka kode aplikasi Bus Schedule di Android Studio.
  3. Klik tombol Run 65e9e2045e2dc48b.png untuk membangun dan menjalankan aplikasi.

Aplikasi diharapkan menampilkan jadwal yang menunjukkan satu perhentian saat dibangun dari kode cabang starter.

3603c91854cada9a.png

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.

9587f9a5f035e552.png

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.

8. Kode solusi