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.
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.
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.
Marcar Listas Como Favoritas
Las listas pueden marcarse como favoritas si haces click en el botón con icono de estrella.
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.
Eliminar Una Lista De Compras
Al presionar el botón con icono de caneca las listas son eliminadas individualmente.
También puedes limpiar los elementos desde la Toolbar al presionar el botón «Eliminar todas» desde el menú de overflow.
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 comprasitem
: almacea los datos de los items que se agregan a las listas de comprasinfo
: representa información adicional de las listas de comprascollaborator
: guarda los datos de las personas que colaboran en la edición de una listashopping_list_item
: tabla de referencia cruzada entreshopping_list
eitem
.
El siguiente diagrama ilustra las columnas de cada tabla y sus relaciones:
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).
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.