Implementación de Realm en Swift: Instalación y Guardado de Datos
Clase 14 de 18 • Curso de iOS: Modo Offline con Swift Data y Realm
Resumen
¿Cómo integrar Realm en un proyecto Swift?
Integrar una base de datos eficiente y robusta, como Realm, en tu proyecto de Swift puede marcar la diferencia en el rendimiento y la gestión de datos. Vamos a explorar el proceso de implementación de Realm usando el Swift Package Manager en Xcode.
¿Cómo instalar Realm usando el Swift Package Manager?
Para incorporar Realm a tu proyecto, el primer paso es añadirlo como una dependencia externa. Aquí te explicamos cómo hacerlo de manera sencilla:
-
Buscar el repositorio: Abre tu navegador y busca "Realm Swift". Encuentra el repositorio que se llama "Realm Swift" y copia la URL directa del repositorio.
-
Agregar la dependencia en Xcode:
- Abre tu proyecto en Xcode.
- Ve a la pestaña "File" y selecciona "Add Package Dependencies".
- En la barra de búsqueda, pega la URL del repositorio de Realm Swift que copiaste.
- Selecciona "RealmSwift" como tu dependencia y agrégalo a tu target (aplicación). En este caso, supongamos que tu aplicación se llama Gastify.
-
Verificar la instalación: Una vez añadido, compila el proyecto para asegurarte de que todo está en orden. Si aparece el mensaje "Build Success", ¡ya estás listo para continuar!
¿Cómo crear entidades en Realm?
Ahora que has instalado Realm, es hora de configurar tus entidades. Este proceso comenzará con la creación de las entidades de base de datos, lo cual es crucial para una estructura organizada.
-
Estructuración del proyecto:
- Crea una carpeta denominada "RealmDatabaseService" en tu proyecto.
- Dentro de esta carpeta, añade otra carpeta para tus entidades de base de datos.
-
Crear entidades: Para crear tu primera entidad de registro en Realm:
- Crea un nuevo archivo Swift y llámalo, por ejemplo,
RMRecord
. - Importa RealmSwift y define tu clase, asegurándote de utilizar el decorador
@Persisted
para las propiedades que se guardarán en la base de datos.
- Crea un nuevo archivo Swift y llámalo, por ejemplo,
import RealmSwift
class RMRecord: Object {
@Persisted(primaryKey: true) var recordID: String
@Persisted var title: String
@Persisted var date: Date
@Persisted var type: String
@Persisted var amount: Double
}
¿Cómo implementar el servicio de base de datos con Realm?
Con tus entidades listas, el siguiente paso es utilizar estas entidades para realizar operaciones de base de datos. Vamos a implementar un servicio de base de datos usando Realm.
-
Crear la clase de servicio:
- Crea un nuevo archivo Swift, llamémoslo
RMDatabaseService
. - Esta clase implementará un protocolo de servicio de base de datos destinado a manejar las operaciones de CRUD (crear, leer, actualizar, eliminar).
- Crea un nuevo archivo Swift, llamémoslo
-
Configurar el servicio:
- Importa RealmSwift y utiliza el decorador
@MainActor
para garantizar que las funciones del servicio se ejecuten en el hilo principal.
- Importa RealmSwift y utiliza el decorador
import RealmSwift
@MainActor
class RMDatabaseService: DatabaseServiceProtocol {
private var realm: Realm
init() {
do {
realm = try Realm()
} catch let error {
fatalError("Failed to open Realm: \(error.localizedDescription)")
}
}
}
- Implementar la función de agregar registros: Se utiliza un bloque
do-catch
para intentar agregar nuevos registros en la base de datos de manera segura.
func saveNewRecord(record: RMRecord) -> Bool {
do {
try realm.write {
realm.add(record)
}
return true
} catch {
return false
}
}
Sigue estos pasos para integrar Realm en tu aplicación con éxito. Al implementar una base de datos como Realm, garantizas una gestión de datos más eficiente y escalable. Sigue aprendiendo y desarrollando estas habilidades, ¡el crecimiento en el mundo del desarrollo de software es interminable!