¿Es ‘realm’ bueno para Android?

Lo he estado usando desde 0.81.1. Me quemaron las manos entre 0.83.0 y 0.87.1, estuve atascado en 0.82.2 por un tiempo pero 0.84.0 arregló la biblioteca en Blackberry.

La mayoría de las limitaciones de las que habla la gente (“no poder usar métodos personalizados” es el más primario) se han corregido desde 0.88.0, e incluso el comportamiento de iteración de resultados se ha ajustado en 0.89.0. Fue un cambio radical, tardé un poco en encontrar todos los casos en los que confiaba en la actualización automática de los resultados en las transacciones, pero poder usar un simple para cada uno tiene más sentido que la iteración inversa.

1.0.0 fue bastante estable, 1.0.1 tuvo algunos problemas menores, 1.1.0 tuvo algunos problemas graves, 1.1.1 solucionó todos esos problemas y 1.2.0 realizó algunas mejoras menores.

Entonces, si me preguntas, Realm 1.2.0 es seguro de usar.

Lo que necesita saber es que para usar Realm al máximo, usará consultas asíncronas en la instancia que se crea en el subproceso de la interfaz de usuario, y escribirá en Realm de forma sincrónica en un subproceso en segundo plano (o usando una transacción asincrónica del subproceso de la interfaz de usuario) )
Escuchará los cambios dentro del Reino utilizando RealmChangeListener vinculado a la tabla donde le interesan los cambios.

Si necesita `realm.copyFromRealm ()` fuera de serializar TO json, está utilizando Realm incorrectamente. Es una base de datos de copia cero, después de todo. ¿Quién copia en una base de datos de copia cero? Suena conceptualmente incorrecto, ¿no?

Tengo una serie de artículos para leer en Realm, todos disponibles en Medium.

Cómo usar Realm para Android como un campeón, y cómo saber si lo estás haciendo mal

Conceptos básicos de Realm: una guía para usar Realm 1.2.0

Realm 1.2.0 + Enlace de datos de Android

Realm es una base de datos móvil de código abierto orientada a objetos. En enero de 2016, se lanzó Realm para Android. Realm tiene su propio núcleo C ++ y su objetivo es proporcionar una alternativa móvil a SQLite. Y esta alternativa ahora está disponible en Android.
Trabajar con SQLite a veces dificulta la comprensión del código y la escritura de algunas consultas SQL puede llevar demasiado tiempo. Usar ORM resuelve parcialmente algunos problemas.
Con estas características mejoradas, el reino es un buen sustituto de Sqlite (Android) y Core data (ios).

Realm.io es muy atractivo por una variedad de razones, las más destacadas son:

1. No es necesario tratar con SQL. El desarrollador puede vivir felizmente en su mundo de objetos sin necesidad de tratar con SQL específicamente SQLlite.

2. Velocidad: Realm.io realmente brilla aquí en términos de velocidad sobre sqllite que se usa principalmente con ORM y no tan rápido como Realm.io

Como se mencionó, no esperaba sorpresas por mi simple requerimiento, pero pronto fui arrastrado a ellas.

SOLO Getters y Setters son métodos permitidos en las clases de modelo .

Obtendrá errores de compilación por usar CUALQUIER otro método en la clase de modelo. Piensalo por un momento …

Sí … no puede tener toString (), métodos estáticos, ni siquiera otros métodos de comportamiento en sus clases de modelo.

Las implementaciones de Getters y Setters se reemplazan por proxy de dominio, por lo que no se ejecuta ningún código de validación / verificador de formato en los setters.

Realm.io no permite ningún otro método que getters / setters en clases de modelo
y representa la implementación de captadores y establecedores de objetos modelo.

Lo que significa es que si ha anulado sus captadores y establecedores para fines de encapsulación, no se ejecuta.

La migración es la característica peor documentada y altamente poco confiable.

La documentación es muy confusa e incluso después de comprenderla, la migración no funcionó de manera confiable para mí.

Hasta ahora tuve suficiente dolor, aunque fue muy rápido y prometedor
biblioteca de persistencia Tuve que reescribir mi código de persistencia con viejo
amigo de confianza SQLlite.

Ream no es bueno para un proyecto complejo. Me he enfrentado a las siguientes dificultades y sin soluciones:

  1. No es compatible con jack (soporte para funciones de java 8)
  2. No es compatible con el polimorfismo. Necesitas ir con la composición.
  3. No admite Enumeraciones (sin embargo, existen algunas soluciones alternativas).

Sin embargo, he usado esto en la producción y ahora estoy planeando revertirlo en las próximas versiones.

Creo que es bueno para proyectos simples. Lo he utilizado en un pequeño proyecto eliminando los requisitos anteriores con un resultado satisfactorio.

More Interesting

¿Cómo gana un hombre con una aplicación de Android?

¿Cuáles son las mejores aplicaciones de voz a texto para iPhone para dictados largos, ya que la opción integrada solo funciona para dictados cortos?

Cómo obtener más descargas para mi última aplicación en Google Play

¿Se pueden rastrear las cookies de afiliados desde un móvil a su computadora portátil?

Paytm (empresa): ¿Cómo funcionan los pagos integrados en la aplicación para los bancos indios (solo pagos de la Banca por Internet)? ¿Cuáles son los retos?

¿El creador de 6snap para Windows Phone se comunica en secreto con los creadores de Snapchat?

¿Cuál es el mejor proveedor de alojamiento web para una página de inicio de una página para promocionar un juego / aplicación móvil?

¿Cuál es el mejor juego móvil?

¿Es posible / plausible crear un juego / aplicación móvil que requiera muy poco tiempo para descargar, pero que acceda constantemente a los servidores para los archivos del juego? Sería como juegos de navegador, pero usaría la aplicación como navegador (más o menos) para ejecutar los archivos del juego.

Cómo hacer que mi aplicación móvil se destaque entre la multitud

¿Qué idiomas debo saber para desarrollar una aplicación para Play Store?

¿Es muy difícil comercializar una aplicación móvil sin un sitio web pero solo una página de destino?

¿Quién es bueno en el desarrollo de aplicaciones en Mumbai?

WhatsApp no ​​tiene API, pero hay aplicaciones como Wtrack, que rastrean lo que se vio por última vez en WhatsApp. ¿Cómo es eso posible? ¿Qué método están usando?

¿Cuáles son las mejores aplicaciones para referir y ganar móviles en India?