¿Alguna buena herramienta ORM para el desarrollo de Android? [cerrado]
¿Alguien que trabaje en Android ('gPhone') tiene o conoce un lugar donde pueda encontrar una buena herramienta ORM? El código está escrito en Java y la base de datos es SQLite. Lo que me gustaría encontrar es una herramienta que, dada la definición del objeto, pueda generar automáticamente las tablas y las funciones CRUD (eso sería fantástico) o, salvo eso, una herramienta que pueda tomar la definición de la tabla, la definición del objeto, y generar automáticamente la funcionalidad CRUD. El problema es que todo esto debe suceder dentro del marco de trabajo de Android, que tiene sus propias convenciones sobre cómo funciona el acceso a la base de datos.
Pensé en agregar mis $0.02 aquí sobre mi paquete ORMLite .
Es un reemplazo liviano de Hibernate y utiliza llamadas nativas a la base de datos del sistema operativo Android para admitir SQLite en Android. También admite muchos otros tipos de bases de datos que utilizan JDBC en otras arquitecturas. Tenemos una lista de correo de Android para preguntas sobre ORMLite.
Esta pregunta no puede envejecer, pero los marcos sugeridos sí. Entonces, aquí hay primero una lista de lo que encuentro importante en dichos marcos para comparar:
- ¿Existe un artefacto Maven o Gradle? (Eso es una gran ventaja dependiendo de si usas maven o gradle, obviamente)
- ¿Se puede acceder fácilmente al código, incluida una descripción general rápida de las confirmaciones para juzgar la actividad? (el código alojado en github es una ventaja definitiva para mí, en ese sentido)
- Gestión de lanzamientos: ¿hay lanzamientos/etiquetas de lanzamiento y artefactos para ello? (Hay algunos que están alojados en github y requieren git clone u ofrecen el tarball maestro para descargar; para mí, un gran inconveniente si ni siquiera se configuran ni abordan las etiquetas de lanzamiento en el archivo README)
- Como el tamaño importa, puse algunos consejos donde fue fácil de conseguir (no descargué nada, por lo que de aquellos proyectos que no ofrecen artefactos de lanzamiento no hay tamaños)
Y aquí hay una lista de marcos con notas sobre los puntos anteriores. Busqué algunos más como aBatis y Hadi pero agregué solo aquellos que tuvieron alguna actividad después de 2011.
- http://ormlite.com , artefacto Maven, 52 kB, SVN, el sitio web es... difícil pero parece haber muchos ejemplos, según http://ormlite.com/changelog.txt la última versión es 4.48 de 2013, https://github.com/j256/ormlite-core (etiquetas de lanzamiento), última actividad en marzo de 2015
- http://greendao-orm.com , buen mantenimiento, artefacto Maven , enfoque: rendimiento rápido, tamaño pequeño, poco consumo de RAM. Github: https://github.com/greenrobot/greenDAO/ (etiquetas de lanzamiento, > 2300 estrellas), última actividad en noviembre de 2014
- https://github.com/roscopeco/ormdroid , tamaño pequeño, última actividad agosto de 2014
- http://www.activeandroid.com , https://github.com/pardom/ActiveAndroid (> 2300 estrellas), buen mantenimiento, comunidad, sin etiquetas de lanzamiento (puntos de descarga para master tarball), artefacto Maven, última actividad en octubre de 2014
- http://droidparts.org , https://github.com/yanchenko/droidparts (etiquetas de lanzamiento, > 600 estrellas), también inyección de dependencia, artefacto Maven, mantenido activamente
- http://www.androrm.com , https://github.com/androrm/androrm (etiquetas de lanzamiento), última actividad el 2 de enero de 2014 (github)
- https://github.com/emilsjolander/sprinkles (etiquetas de lanzamiento, > 600 estrellas), última actividad en mayo de 2014, artefacto Maven (gracias @AndroidGecko)
- http://realm.io , https://github.com/realm/realm-java reemplaza no solo ORM sino también SQLite, también para iOS (etiquetas de lanzamiento, > 1600 estrellas), mantenido activamente, repositorio propio de Maven
No he probado ninguno de ellos, pero tal vez pueda ahorrarles un poco de tiempo a los lectores actuales enumerando los proyectos activos actualmente. Agregue un comentario si conoce otros proyectos que satisfagan algunos de los puntos anteriores y tengan algún desarrollo serio (durante algún tiempo) en marcha.
EDITAR (noviembre de 2013): actualizó la lista al estado actual de los proyectos. Algunos de ellos han agregado etiquetas de lanzamiento a sus repositorios de github, así como soporte para Maven/Gradle. ¡Buen trabajo!
EDITAR (abril de 2015): actualizó la lista, agregó Sprinkles (según el comentario de @AndroidGecko) y Realm.io.
Si el rendimiento y el tamaño del código son importantes, consulte greenDAO . Soy el autor y mi motivación para crear otro ORM fue evitar el reflejo en los puntos de acceso. Resultó que greenDAO puede ser hasta 4 veces más rápido que ORMLite. Consulte la página de funciones para obtener más detalles.
No sé de nada que sea exactamente lo que está pidiendo, pero existe una alternativa a SQLite que puede resultarle útil si sus requisitos de arquitectura son flexibles. Puede que valga la pena echarle un vistazo a db4o :
- android db4o
- Ejemplos de comparación de códigos
ActiveAndroid ($20) parece ser exactamente lo que necesitas.