Tutorial de Realm Completo en Android Haciendo CRUD

Realm en Android
Tutorial de realm

En este tutorial de Realm completo en Android haciendo crud aprenderemos almacenar datos en el dispositivo móvil utilizando Realm de una manera facil.

Muchos conocemos al gran SQLite si hablamos de almacenamiento de datos en el dispositivo. Pero actualmente Realm es una buena alternativa, veamos.

Puedes encontrar el código fuente de este tutorial en Github.

¿Que es Realm?

Real es una base de datos móvil y un posible reemplazo de SQLite, aunque tenga ciertas inconveniencias.

Simplemente hacemos una subclase de RealmObject para definir su esquema, nos permite hacer persistencias con transacciones livianas y realizar consultas usando interfaces fluidas.  Esto nos permite trabajar con base de datos de manera fácil.

Ventajas de Realm sobre SQLite:

  • Mucho más rápido que SQLite
  • Sencillo de utilizar
  • Conversión de objecto

Desventajas de Realm:

  • En desarrollo activo.
  • No hay muchos manuales en Internet.



Creación de una aplicación usando Realm.

Para este tutorial de Realm completo en Android vamos a desarrollar una aplicación a modo de practica, la aplicación nos va permitir almacenar datos de libros como su titulo, descripción, imagen y fecha. Haremos un CRUD completo para aprender Realm.

1: Creación del proyecto e importación de librerías.

Comenzamos creando un nuevo proyecto, cuando le solicite que seleccione una actividad predeterminada, seleccione una actividad en blanco y continúe.

Luego de haber creado el proyecto y sincronizado procedemos a importar las librerías que vamos a necesitar. Abra Build.Gradle y agregue las dependencias de:

  1. Realm: Utilizaremos para almacenar datos.
  2. CardView: Para mostrar la información.
  3. RecyclerView: Para mostrar una colección de información que almacenamos.
  4. Glide: Esta librería nos permite mostrar imágenes.

Para la integración de Realm a nuestro proyecto abrimos build.gradle del proyecto y agregamos un nuevo classpath de la siguiente manera.

Por último agregamos el siguiente código en build.gradle del modulo app:

2: Valores de la aplicación.

Una ves terminado de importar la dependencias correspondientes procedemos a crear los valores que usaremos en el proyecto como son los Strings, Colores, Dimensiones, Estilos, Etc.

colors.xml : Todos los colores que usaremos

strings.xml: Agregue todas las variables que necesitarás.

dimens.xml: Las dimensiones para el diseño.

3: Organizando el proyecto.

Vamos a crear paquetes para mantener el proyecto organizado y es aquí donde usted puede aplicar MVP, en este proyecto no lo aplicaremos, pero ya estaré escribiendo otro artículo.

Creamos un paquete llamado Aplicacion, Vistas( dentro de este paquete creamos otro llamado Actividades ), Adaptadores y Modelos. Coloque su MainActivity.java dentro del paquete Actividades.

4: Creando los Modelos para Realm.

Continuamos creando nuestros modelos que usaremos, para este tutorial de Realm crearemos un modelo llamado LibroModelo.java.

Es muy importante extender nuestro modelo de RealmObject para darlo a conocer a Realm, luego tenemos que agregar una anotación @PrimaryKey indicándole que campo de nuestro modelo será la llave primaria y finalmente Realm necesita un constructor vacío.

Otro aspecto muy importante es el auto incremento de la llave primaria(@PrimaryKey), actualmente Realm todavía no soporta, así que tenemos que configurar manualmente después de crear los modelos.

Creando el modelo LibroModelo.java 

5: Configurando Realm.

Realm es equivalente a una base de datos, contienen diferentes tipos de datos y están almacenados en el espacio de la memoria, para esto tenemos que hacer una configuración.

Llamar a Realm.getInstance(context) hace que sea fácil de empezar con Realm. Para tener un control más detallado y organizado es preferiblemente crear un objeto que controle todo sobre Realm.

Dicho esto creamos un clase llamada MiAplicacion.java dentro del paquete aplicacion. Aquí detallamos las configuraciones que Realm necesita y los auto incrementos de la llave primaria que hablamos en la creación de los modelos.

Abrimos el manifest y agregamos la aplicación MiAplicación.java. También agregamos permiso de Internet ya que necesitaremos hacer llamadas HTTP para la imágenes.

6: Creando un Objeto.

Hasta el momento ya tenemos todo configurado, ahora viene la parte más interesante, vamos primero empezar a crear un objecto libro. Para esto tenemos que crear una serie de archivos que nos va permitir crear, editar, mostrar e eliminar.

Primero realizamos el diseño para MainActivity.class donde se mostrarán todos los libros que vamos ir creando.

también creamos dialogo_nuevo_libro.xml para nuestro AlertDialog que usaremos como formulario para agregar un nuevo libro.

por último para terminar con el diseño creamos item_libro_recycler.xml, esto será el diseño de cada libro que usaremos en el adaptador de RecyclerView.

Ahora tenemos que crear el Adaptador para RecyclerView donde mostraremos todas los objetos que vamos crear. Creamos una clase LibroAdaptador.java dentro del paquete adaptadores.

También a esta clase extendemos de View.OnClickListener para editar cuando haga un click, también extendemos de View.OnLongClickListener para poder eliminar.

Primero tenemos que hacer una instancia a Realm de la siguiente manera.

Ahora que ya creamos todos los recursos que procedemos con la creación de RealmObjet. Creamos nuestro objeto con sus parámetros respectivos y para poder guardar solo necesitamos llamar a copyToRealm(tuObjeto); de realm que anteriormente ya se ha instanciado.

7: Listar objetos almacenados.

para recuperar todos los objectos almacenados hacemos un where(tuModelo.class).findAll(); esto devuelve un RealmResults del tipo modelo que pasamos como parámetro al where. Con esto recuperamos todos los libros almacenados listo para poder usar con el adaptador de nuestro RecyclerView.

8: Editar un Objecto.

Para poder editar primero tenemos que recuperar el objeto que se requiere editar, como anteriormente ya recuperamos la lista de libros solo vamos obtener un objeto de esa lista. de la siguiente manera.

9: Eliminando un objeto.

Por último para terminar con el crud nos falta eliminar. Para eliminar obtenemos el objeto de la misma manera que se hizo para editar, y llamamos al método deleteFromRealm(); con esto nuestro objeto ya se eliminó.

Para que entiendas de una manera mucho mejor te dejo todo el código de la clase MainActivity, otro aspecto importante es la implementación de: implements RealmChangeListener<RealmResults<LibroModelo>> esto nos permitirá mostrar todos los cambios que vamos realizar.

Si seguiste los pasos correctamente obtendrás el mismo resultado que la siguiete.

    

Conclusiones

Espero haberte ayuda con este tutorial, si tienes alguna duda puedes escribirnos un comentario para ayudarte o revisar el código completo en Github

Gracias por visitarnos, hasta su próxima visita y que lo pases feliz programando.

Frank Lopez Coras

Hola, soy Frank, apasionado por el desarrollo de software. En este blog escribo tutoriales y artículos relacionados con la programación, desarrollo de aplicaciones y webs.

También te podría gustar...