← Todas las charlas Charla · EN

The pillars of the Realm

Una masterclass técnica sobre Realm para Android: cómo usarlo, cuándo conviene y cómo sacarle el máximo provecho.

8 de enero de 2018

![[06-attachments/talks/2018-01-08-the-pillars-of-the-realm/2018-01-08-los-pilares-de-realm.png]]

Realm apareció como una alternativa moderna y eficiente a SQLite, prometiendo menos boilerplate, más velocidad y una curva de aprendizaje más suave. En esta masterclass, diseccionamos cómo funciona Realm en Android y qué lo hace tan particular.

¿Qué es Realm y por qué usarlo?

  • Base de datos orientada a objetos: sin necesidad de ORMs intermedios.
  • Persistencia reactiva: actualizaciones automáticas en la UI con RealmResults.
  • Cross-platform: aunque esta charla se centra en Android, Realm también se usa en iOS.
  • Mejor rendimiento en operaciones simples comparado con SQLite.

Pilares técnicos de Realm

  1. Modelo de datos

    • Clases que extienden RealmObject
    • Tipos soportados y restricciones
    • Nullable vs non-nullable
  2. Consultas

    • Sintaxis fluida tipo builder
    • Soporte limitado para joins (estructura jerárquica, no relacional)
    • Operaciones en background con RealmAsyncTask
  3. Transacciones

    • Obligatorias para cualquier operación de escritura
    • executeTransaction { realm -> ... } como patrón estándar
    • Consideraciones de performance
  4. Vinculación con la UI

    • Uso de RealmResults y RealmRecyclerViewAdapter
    • Observadores automáticos vs manuales
    • Ciclo de vida de los objetos Realm
  5. Migraciones y versionado

    • Estrategias para migrar sin perder datos
    • RealmMigration y RealmConfiguration

Cuándo sí y cuándo no usar Realm

✅ Útil cuando:

  • Buscás rapidez de desarrollo
  • Tenés estructuras de datos simples
  • Querés evitar boilerplate de SQLite y Room

🚫 A evitar si:

  • Necesitás queries SQL complejas
  • Tu app ya está basada en una arquitectura con Room y DAOs
  • Requerís compatibilidad con bibliotecas de análisis SQL

Key Takeaways

  1. Realm permite crear apps más rápido con menos código para persistencia.
  2. Su modelo reactivo facilita la sincronización entre datos y UI.
  3. Tiene limitaciones en cuanto a queries complejas o estructuras altamente relacionales.
  4. Migrar datos en producción requiere cuidado y testing.
  5. No es para todos los proyectos, pero cuando encaja, puede acelerar muchísimo.

Recursos recomendados

Conclusión

Realm no es magia, pero puede parecerlo. Si entendés bien sus pilares y sabés dónde usarlo, puede ahorrarte cientos de líneas de código y ayudarte a construir apps más limpias, rápidas y reactivas.