1. Antes de começar
Introdução
No codelab Persistência de dados com o Room, você aprendeu a implementar um banco de dados do Room em um app Android. Este exercício oferece uma oportunidade de conhecer melhor a implementação de bancos de dados do Room com um conjunto de etapas orientadas de forma independente.
Neste conjunto de exercícios, você vai usar os conceitos aprendidos do codelab Persistência de dados com o Room para concluir o app Bus Schedule. Esse app apresenta ao usuário uma lista de pontos de ônibus e partidas programadas usando um banco de dados do Room.
O código da solução está disponível no final. Para aproveitar melhor esta experiência de aprendizado, tente fazer implementações e resolver problemas o máximo possível antes de analisar o código da solução fornecido. É durante a prática que você mais aprende.
Pré-requisitos
- Curso de noções básicas do Android com o Compose no codelab Persistência de dados com o Room.
O que é necessário
- Um computador com acesso à Internet e o Android Studio.
- O código inicial do app Bus Schedule.
O que você vai criar
Neste exercício, você vai concluir o app Bus Schedule implementando e usando um banco de dados para fornecer dados à interface. Um arquivo de banco de dados no diretório de assets encontrado no código inicial fornece dados para o app. Você carrega esses dados em um banco de dados e os disponibiliza para uso de leitura pelo app.
Depois de concluído, o app vai mostrar uma lista de pontos de ônibus e horários de chegada correspondentes. Você pode clicar em um item da lista para acionar a navegação até uma tela de detalhes que fornece dados sobre o ponto.
O app concluído mostra estes dados, carregados de um banco de dados do Room:
2. Fazer o download do código inicial
- No Android Studio, abra a pasta
basic-android-kotlin-compose-training-bus-schedule
. - Abra o código do app Bus Schedule no Android Studio.
- Clique no botão Run para criar e executar o app.
Espera-se que o app mostre uma programação com uma parada quando criado usando a ramificação starter
do código.
3. Adicionar dependências
Adicione as dependências abaixo ao app:
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"]}")
Acesse a versão estável mais recente do room
na documentação do Room e adicione o número de versão correto. No momento, a versão mais recente é:
build.gradle.kts
set("room_version", "2.5.1")
4. Criar uma entidade do Room
Converta a classe de dados atual da programação de ônibus em uma Room Entity
.
A imagem abaixo mostra um exemplo da tabela de dados final, incluindo o esquema e a propriedade Entity
.
5. Criar um objeto de acesso a dados
Crie um objeto de acesso a dados (DAO, na sigla em inglês) para acessar o banco de dados. O DAO oferece um método para extrair todos os itens do banco de dados e outro para extrair um único item com o nome do ponto de ônibus. Não se esqueça de ordenar a programação por horário de chegada.
6. Criar uma instância de banco de dados
Crie um banco de dados do Room que use a Entity
e o DAO. O banco de dados é inicializado com os dados do arquivo assets/database/bus_schedule.db
no código inicial.
7. Atualizar o ViewModel
Atualize o ViewModel para extrair dados do DAO e fornecê-los à interface em vez de fornecer dados de exemplo. Aproveite os dois métodos DAO para fornecer dados à lista e a paradas individuais.