Thực hành: Tạo ứng dụng Bus Schedule

1. Trước khi bắt đầu

Giới thiệu

Trong lớp học lập trình Lưu trữ dữ liệu bền vững bằng Room, bạn đã tìm hiểu cách triển khai cơ sở dữ liệu Room trong ứng dụng Android. Bài tập này giúp bạn có cơ hội làm quen với việc triển khai cơ sở dữ liệu Room thông qua một loạt các bước cụ thể.

Trong bộ bài tập thực hành này, bạn sẽ áp dụng các khái niệm đã học trong lớp học lập trình Lưu trữ dữ liệu bền vững bằng Room để hoàn thiện ứng dụng Bus Schedule (Lịch trình xe buýt). Ứng dụng này cung cấp cho người dùng danh sách điểm dừng xe buýt và chuyến khởi hành theo lịch bằng dữ liệu được cung cấp từ cơ sở dữ liệu Room.

Chúng tôi sẽ cung cấp đoạn mã giải pháp ở phần cuối. Để tận dụng tối đa bài tập này, hãy cố gắng triển khai và khắc phục sự cố nhiều nhất có thể trước khi xem đoạn mã giải pháp chúng tôi cung cấp. Chính trong thời gian bắt tay vào thực hành này, bạn sẽ học được nhiều kiến thức nhất.

Điều kiện tiên quyết

Bạn cần có

  • Máy tính có kết nối Internet và Android Studio
  • Đoạn mã khởi đầu cho Bus Schedule

Sản phẩm bạn sẽ tạo ra

Trong bộ bài tập thực hành này, bạn sẽ hoàn thiện ứng dụng Bus Schedule bằng cách triển khai một cơ sở dữ liệu, sau đó cung cấp dữ liệu cho giao diện người dùng thông qua cơ sở dữ liệu. Tệp cơ sở dữ liệu trong thư mục tài sản có trong đoạn mã khởi đầu sẽ cung cấp dữ liệu cho ứng dụng. Hãy tải dữ liệu này vào một cơ sở dữ liệu để ứng dụng sử dụng chúng.

Khi xây dựng thành công ứng dụng, bạn sẽ thấy một danh sách trạm xe buýt và thời gian đến tương ứng. Bạn có thể nhấp vào một mục trong danh sách để điều hướng đến màn hình chi tiết cung cấp dữ liệu cho điểm dừng đó.

Ứng dụng thành phẩm sẽ tải dữ liệu từ cơ sở dữ liệu Room rồi hiển thị lên màn hình:

7fbafebbcc3a3eec.png

951621eedfc138fb.png

2. Tải đoạn mã khởi đầu xuống

  1. Trong Android Studio, hãy mở thư mục basic-android-kotlin-compose-training-bus-schedule.
  2. Mở mã nguồn của ứng dụng Bus Schedule trong Android Studio.
  3. Nhấp vào nút Run (Chạy) 3e12ddc048503bc5.png để tạo và khởi động ứng dụng.

Ứng dụng dự kiến sẽ hiển thị lịch trình có một điểm dừng khi được dựng từ đoạn mã trong nhánh starter.

54aa202086b74e1c.png

3. Thêm phần phụ thuộc

Thêm các phần phụ thuộc sau đây vào ứng dụng:

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"]}")

Bạn có thể tải phiên bản room ổn định mới nhất trong tài liệu về cơ sở dữ liệu Room rồi thêm vào đúng số phiên bản. Tại thời điểm này, phiên bản mới nhất là:

build.gradle.kts

set("room_version", "2.5.1")

4. Tạo một thực thể Room

Chuyển đổi lớp dữ liệu Bus Schedule hiện tại thành Room Entity.

Hình ảnh sau đây cho thấy ví dụ minh hoạ bảng dữ liệu khi hoàn thành, bao gồm cả giản đồ và thuộc tính Entity.

d2ac3220c9a0f3ff.png

5. Tạo một đối tượng truy cập dữ liệu

Tạo một đối tượng truy cập dữ liệu (DAO) để truy cập vào cơ sở dữ liệu. DAO cung cấp phương thức truy xuất toàn bộ mục trong cơ sở dữ liệu và phương thức để truy xuất một mục cụ thể bằng tên trạm xe buýt. Đừng quên sắp xếp lịch biểu theo thời gian đến.

6. Tạo một thực thể cơ sở dữ liệu

Tạo cơ sở dữ liệu Room sử dụng Entity và DAO của bạn. Cơ sở dữ liệu này tự khởi động bằng dữ liệu của tệp assets/database/bus_schedule.db trong đoạn mã khởi đầu.

7. Cập nhật ViewModel

Cập nhật ViewModel để truy xuất dữ liệu từ DAO và cung cấp dữ liệu này cho giao diện người dùng thay vì lấy từ nguồn dữ liệu mẫu. Hãy nhớ tận dụng cả hai phương thức DAO để cung cấp dữ liệu cho danh sách và cho từng điểm dừng cụ thể.

8. Đoạn mã giải pháp