ORM para móviles

orm
moviles
bases-de-datos
multiplataforma

#1

Hablando hoy del ORM por referencia para python, SQLAlchemy, el sr @MiguelAngelLV ha recomendado uno para Android.

He visto por ahí que no hay muchos ORM mobile cross-platform, y tampoco hablan muy bien de los que hay. Peeero al parecer hay uno que promete bastante, llamado Realm. Quisiera saber que opináis vosotros de él, ¿lo conocéis?

cc: @MiguelAngelLV @jorge_arasthel @vsuarez @josejuansanchez


#2

Realm es… interesante. Lo he usado ya para un par de proyectos pequeños, nunca en uno grande.

La API está bastante bien: cambiar datos en un objeto es prácticamente transparente, pero tiene ciertas cosas que pueden ser un porculo. Ejemplo: si quieres modificar un item que está en la DB, tienes que hacerlo en un realm.write { ... }, sin embargo si no está en la DB o estás modificando un campo no persistible no hace hace falta. Con lo cual acabas haciendo realm.writes “porsi”, vaya a ser que explote.

El tema de las migraciones está bastante bien pensado. Tú cambias la versión y ya hace los cambios en el schema él solo. Si quieres cambiar los datos puedes pasarle una lambda/closure con esos cambios, pero no es obligatorio.

Las búsquedas son una mezcla de “SQL” y el propio lenguaje, así que para búsquedas complejas igual no es muy eficiente. Aparte, Realm no está pensado para ser 100% relacional, es más un añadido que metieron para comodidad que otra cosa.

Por último: Realm es propietario. No es un formato de DB open source y no puedes exportar un SQL de él, como mucho un CSV o montarte un JSON con los datos a exportar.


#3

@klin Con Idiria también hemos usado Realm en varios proyectos. Le seguimos el rastro desde hace varios años :slight_smile:

Si todavía no lo has hecho, te recomiendo que te suscribas a su newsletter porque suelen enviar vídeos de charlas muy interesantes sobre Android y Swift.