En este artículo verás el ejemplo de Room que tomamos como referencia en la guía. Una aplicación Android sencilla que maneja listas de compras y sus ítems.

Te explicaremos las características, el modelo relacional de la base de datos y la estructura de paquetes en Android Studio. Y luego, te proveeremos el link para que descargues el proyecto.

Características

La App de lista de compras consiste de tres actividades:

  • Actividad para listas de compras
  • Actividad para creación de listas de compras
  • Actividad para edición de listas de compras.
Aplicación Android De Listas De Compras

De ellas se derivan las siguientes funcionalidades.

Listas De Compras

Esta es la población de una lista con todas las listas de compras existentes en la base de datos. Puedes filtrar por categorías.

Filtrar listas de compras

Crear Listas De Compras

Al presionar el FAB se inicia una actividad que te permite escribir el nombre de la lista de compras. Por practicidad, los items, la información adicional y los colaboradores de la lista se generan automáticamente en esta instancia.

Crear nueva lista de compras

Marcar Listas Como Favoritas

Las listas pueden marcarse como favoritas si haces click en el botón con icono de estrella.

Marcar lista de compras como favorita

Editar Listas De Compras

Se inicia la actividad de edición de listas de compras al hacer click. Por simplicidad, se añaden ítems prefabricados en la edición.

Editar lista de compras

Eliminar Una Lista De Compras

Al presionar el botón con icono de caneca las listas son eliminadas individualmente.

Eliminar lista de compras

También puedes limpiar los elementos desde la Toolbar al presionar el botón «Eliminar todas» desde el menú de overflow.

Eliminar todas las listas de compras

Base De Datos SQLite

El ejemplo de Room contiene las siguientes tablas en su base de datos:

  • shopping_list: almacena los datos de las listas de compras
  • item: almacea los datos de los items que se agregan a las listas de compras
  • info: representa información adicional de las listas de compras
  • collaborator: guarda los datos de las personas que colaboran en la edición de una lista
  • shopping_list_item: tabla de referencia cruzada entre shopping_list e item.

El siguiente diagrama ilustra las columnas de cada tabla y sus relaciones:

Diagrama de base de datos de app listas de compras

Estructura De Paquetes

Hemos creado un paquete por cada característica asociada a una pantalla. Debido a que este ejemplo de Room es simple, usamos un solo módulo (app).

Paquetes Java para Ejemplo De Room

Veamos el propósito de cada uno:

  • addshoppinglist: contiene los componentes de la actividad de creación de listas
  • data: Contiene las clases asociadas a la capa de datos como: DAOs, entidades, POJOs parciales, vistas, etc.
  • editshoppinglist: Paquete para la actividad y view model de edición
  • shoppinglists: Contiene la actividad y view model de la lista de listas de compras.

Descargar Ejemplo De Room

Puedes descargar el proyecto Android Studio de la App de listas de compras desde el siguiente enlace:

Al descargarlo, descomprímelo, luego abre Android Studio, seleccionar la opción File > Open y busca la ubicación de la carpeta ShoppingList.