Realm Kotlin para Kotlin: guía completa con ejemplos
1. ¿Qué es Realm Kotlin y para qué sirve?
Realm Kotlin es una base de datos móvil moderna, rápida y orientada a objetos, diseñada específicamente para el ecosistema Kotlin Multiplatform (KMP). A diferencia de soluciones tradicionales como SQLite o Room, Realm no trabaja con tablas y filas, sino directamente con objetos de Kotlin. Esto significa que puedes manejar los datos como si fueran clases normales, sin necesidad de escribir consultas SQL ni mapear datos manualmente. Realm Kotlin es el sucesor directo de la popular biblioteca Realm para Java, pero reescrita desde cero para Kotlin, con soporte para corrutinas, Flow y multiplataforma (Android, iOS, macOS, JVM).
¿Para qué sirve? Principalmente, para acelerar el desarrollo de aplicaciones móviles. Realm reduce la cantidad de código repetitivo (boilerplate) al trabajar con almacenamiento local. Solo tienes que declarar un modelo de datos y Realm genera automáticamente todo lo necesario para guardar, leer, actualizar y eliminar objetos. Gracias al soporte integrado para flujos reactivos (Flow de la biblioteca kotlinx.coroutines), cualquier cambio en la base de datos se refleja al instante en la interfaz de usuario, ideal para la arquitectura MVVM. Realm también destaca por su alto rendimiento: funciona sobre su propio motor en C++, lo que garantiza una velocidad de lectura y escritura casi nativa.
Casos de uso principales: almacenamiento en caché de datos del servidor, trabajo en modo offline, guardado de estructuras anidadas complejas (como el carrito de una tienda online o el historial de un chat) y sincronización de datos entre dispositivos mediante Realm Sync (el servicio en la nube de MongoDB Atlas). Realm Kotlin no es solo "otro ORM", sino un motor de base de datos completo que cambia la forma de gestionar el estado en una aplicación.
2. Instalación
Realm Kotlin se instala a través del sistema de compilación Gradle. Como la biblioteca está orientada a Kotlin Multiplatform, la configuración es ligeramente diferente a la de las dependencias estándar de Android.
Importante: Realm Kotlin no se instala mediante pip (Python) ni npm (JavaScript). Es una biblioteca nativa para JVM/Android/iOS.
Añade el siguiente código a tu archivo raíz build.gradle.kts (a nivel de proyecto):
// build.gradle.kts raíz
plugins {
id("io.realm.kotlin") version "1.16.0" apply false
}
Luego, en el archivo build.gradle.kts de tu módulo (app o shared):
// build.gradle.kts del módulo
plugins {
kotlin("multiplatform")
id("io.realm.kotlin")
}
kotlin {
// Configuración de targets (Android, iOS, etc.)
androidTarget()
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach {
it.binaries.framework {
baseName = "shared"
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("io.realm.kotlin:library-base:1.16.0")
// Para soporte de corrutinas
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0")
}
}
// ... otros source sets
}
}
Para un proyecto exclusivamente de Android (sin KMP), la configuración es más sencilla:
// build.gradle.kts (Módulo :app)
plugins {
id("com.android.application")
kotlin("android")
id("io.realm.kotlin")
}
android {
// ... configuración estándar
}
dependencies {
implementation("io.realm.kotlin:library-base:1.16.0")
}
Después de sincronizar Gradle, la biblioteca estará lista para usar.
3. Inicio rápido — ejemplo mínimo funcional
Vamos a crear un modelo de datos simple llamado "Usuario
También en la biblioteca
Chalk para JavaScript (Node.js): guía completa con ejemplos
Migraciones de bases de datos en C# (.NET): Entity Framework, FluentMigrator y otros enfoques
GraphQL en Go: Guía completa de bibliotecas y herramientas
ts-node-dev para TypeScript: guía completa con ejemplos