Generalidades

Guardar datos en Android usando la base de datos de Room y el almacenamiento de datos: una guía para principiantes | Autor: Inuwa Ibrahim | Junio ​​de 2021

Ibrahim
1*eCRsHfRuDo7lRrB2lYQzbg

Si ha estado buscando una forma de almacenar datos sin tener que lidiar con el almacenamiento / bases de datos en línea en Android, bienvenido.

En Android, hay dos formas de proporcionar almacenamiento de datos sin conexión:
1. Base de datos de habitaciones
2. primera opción (Almacén de datos de preferencias y preferencias compartidas).

Ahora bien, ¿cuál es la diferencia?Cuando deberías usar Room DatabaseCuando debo usar Preferences

Quieres almacenar una pequeña cantidad oF Datos- primera opción
Ejemplo

– Almacene la elección del usuario del modo nocturno o el modo oscuro en su aplicación
– Guarde el estado cuando el usuario inicia su aplicación por primera vez (se usa para mostrar una pantalla de introducción)
– Almacene el orden de clasificación del usuario de la lista de elementos (de modo que cuando el usuario regrese a la lista, se mantenga el orden de clasificación)

¿Quieres almacenar muchos datos? -Habitación
Ejemplo
-Guardar una lista de canciones que el usuario ha marcado como favoritas (en este caso, se requiere una tabla con columnas)
– Almacene una lista de publicaciones (que pueden contener texto e imágenes), de modo que cuando el usuario no esté conectado, pueda ver el contenido de la base de datos de la sala, que es una tecnología utilizada en la mayoría de las aplicaciones de redes sociales (como Instagram).

Ahora sabe cuándo usar ambos.
Aspectos destacados de este artículo Room Database con DataStore

En este tutorial, crearemos una aplicación simple que almacena información del usuario (nombre, edad y número de teléfono) en la base de datos de la habitación y utiliza el almacenamiento de datos para retener la pantalla.

Así es como se ve nuestra aplicación final

La primera pantalla utilizada para guardar la información del usuario en la base de datos de la sala.

Después de completar la información y hacer clic ahorrar, Esta es la siguiente pantalla

Pantalla de detalles de usuario obtenida de la habitación

Este es un video que muestra cómo funciona:

notas: – La arquitectura utilizada en este proyecto es MVVM (modelo de vista de modelo de vista)

  • Agregar dependencias
  • Configurar la base de datos de la habitación
  • Establecer preferencias (almacenamiento de datos)
  • Configurar HILT (para inyección de dependencia)
  • Configurar el repositorio
  • Configurar el modelo de vista
  • Establecer vista
  • encender Build.gradle Archivar y agregar las dependencias necesarias
  • Vista- Build.gradle(Project) con Build.gradle(App) Para todas las dependencias utilizadas, marque aquí
  • Algunas de las dependencias utilizadas son:
    Coroutines – Para operaciones asincrónicas
    Hilt – Para inyección de dependencia
    Preference DataStore – Para un almacenamiento de datos asincrónico consistente
    Room – Para almacenamiento de datos fuera de línea
    ViewBinding – Se usa para interactuar con la vista.
    LiveData, ViewModel and LifeCycle Dependencies
  • Crear un nuevo paquete → database
  • Crea un nuevo archivo kotlin → UserDatabase.kt
Base de datos de usuario.kt

– La anotación para esta clase es @Database a Indica que se trata de una base de datos de habitaciones, que incluye usuario Entidad de clase [Table]. Esto versión El número se utiliza para indicar actualizaciones / cambios en la base de datos de la sala.Cuando su modelo o tabla cambie, este número debería aumentar

Ruta del usuario La clase (Objeto de acceso a datos de usuario) se usa para representar la operación que necesitamos realizar tabla de usuario Por ejemplo, operaciones CRUD (crearemos esta clase pronto)

llamar de vuelta Se usará para proporcionar dependencias usando Hilt

  • Crea otra clase → User.kt
User.kt

– Esta clase se utiliza como modelo, representa una tabla en nuestra base de datos, como Anotado con @Entity

  • Crea una interfaz UserDao.kt
Usuario Road.kt

– Esta clase contiene todas las operaciones que se pueden realizar en nuestro objeto.
En este tutorial, solo usamos 2 operaciones:
Create -Utilizado para insertar registros en la base de datos
Delete -Utilizado para borrar registros en la base de datos.
Puedes usar cualquier operación en esta clase.

Utilizamos las preferencias para asegurarnos de que la pantalla de actividad (utilizada para completar la información del usuario) solo se muestre cuando el usuario no tiene ningún registro en la base de datos. En su lugar, mostraremos la pantalla de actividad de detalles del usuario.

Así que básicamente configuramos un valor booleano para verificar si el usuario ha guardado sus detalles en la habitación → y luego mostramos la pantalla / actividad apropiada.

  • debajo Preference Empaquete y cree una interfaz llamada PreferenceStorage.kt

– Esta interfaz contiene 2 funciones:
1. savedKey() Se usa para obtener la clave guardada (valor booleano), se usa para verificar si la preferencia se ha guardado
2. setSavedKey() Se usa para establecer valores para las preferencias (verdadero / falso)

– Crear un nuevo archivo → PreferenceImpl.kt

– Esta clase contiene métodos reescritos que contienen código que utiliza almacenamiento y recuperación de datos asincrónicos Proceso de Kotlin

Para evitar la complejidad, este tutorial se centra más en la integración de la base de datos de Room. Para comprender cómo se integra Hilt con el proyecto, consulte el código fuente completo. [Global package]

  • debajo Repo Empaqueta y crea un nuevo archivo → UserRepo.kt
UserRepo.kt

– Esta clase usa corrutinas para realizar las operaciones de base de datos necesarias en subprocesos en segundo plano.Las funciones se explican por sí mismas

Configurar el modelo de vista

– debajo ViewModel Empaqueta y crea una nueva clase kotlin → UserViewModel.kt

  • De manera similar, utilizando una combinación de corutinas kotlin y LiveData o StateFlow, nos suscribimos a actualizaciones en tiempo real de las operaciones que se pueden observar en la vista (UI)

– Crea otra nueva clase → DataStoreViewModel.kt

  • Esta clase contiene código para «suscribirse» a las actualizaciones cuando cambian las preferencias, y luego observar en nuestra vista -> este es el beneficio de usar DataStore exceder SharedPreference Porque los datos se almacenan de forma asincrónica, coherente y transaccional.
  • El proyecto incluye 2 actividades:
    actividades principales
    Actividad de detalles del usuario

– Verifique el directorio de recursos en el código fuente completo de los dos diseños: activity_main.xml con activity_user_details.xml

actividades principales

Actividad principal.kt
  • El codigo es MainActivity Es autoexplicativo.
    Primero → comprobamos si hay alguna preferencia. Si existe, navegue a la pantalla de actividad de detalles del usuario: checkIfUserHasSavedDetails()
  • Cuando algún campo está vacío, hacemos que no se pueda hacer clic en el botón para evitar enviar entradas vacías a la base de datos de la sala: use textWatcher makeButtonNotClickableAtFirst()
  • Haga clic en ‘Save‘Botón, guardamos los detalles del usuario en la base de datos de la habitación y actualizamos nuestras preferencias (almacenamiento de datos) estableciendo su valor booleano en’True‘, y luego enviamos un Intent a UserDetailsActivity pantalla.

Actividad de detalles del usuario

Actividad de detalles del usuario

– Aquí obtenemos los detalles del usuario y lo configuramos en la vista adecuada.
– Haga clic en ‘Clear Record‘, los registros de usuario se eliminan / eliminan de la base de datos de la habitación y del almacenamiento de datos de preferencias, respectivamente.

Eso es todo por este tutorial. 😺

Enlace para completar el código
https://github.com/ibrajix/RoomDatabase

Envíame un mensaje en Twitter
https://twitter.com/ibrajix

LEER  Google envía la "Actualización de tus noticias" del Asistente al cementerio

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba