Definiendo los Modelos de BBDD

El siguiente paso que he dado en el proyecto ha sido empezar a definir los modelos de Bases de Datos (BBDD), para poder almacenar la información de la aplicación, acceder rápidamente a ella y hacer búsquedas personalizadas para dotar de mayor potencia a la app. Antes de ello debería pensar si definirme yo toda la infraestructura de la BBDD, o relegar esa misión en algún framework. Cabe destacar que en Android se usa SQLite, para tenerlo en cuenta de aquí en adelante. Tras mucho meditar y pensar, me decidí a relegar eso en un framework para Android que te cree todas las funciones propias de manejo de Base de Datos.

Estos frameworks se denominan ORMs o Sistema de Mapeo Objeto-Relacional y abstraen bastante toda la parte de manejar los DAOs, Entidades, Búsquedas y demás aspectos generales que surgen al trabajar con una BBDD.

La verdad es que llevo trabajando con ORMs para Android poco más de un año y nunca he encontrado uno que me atrajera lo suficiente como para que siempre que empezara un proyecto no me pensase cual usar e irme directamente a ese. Tampoco es que existan demasiados, a lo sumo habré probado unos 10-15 ORMs para Android, y a todos les falta siempre alguna cosita. De hecho en la apps que he hecho, nunca he repitido ORM, creo, y tengo apps desde los ORM más populares como GreenDAO o ORM Lite, hasta ORM desconocidos o excesivamente nuevos como ADA Framework o Sugar ORM.

De todos ellos el que más me ha cautivado, y cada vez me cautiva un poquito más, es el ADA Framework, que además será el que utilice para esta app. ¿Los motivos?, pues básicamente es porque es suficiente para lo que esta app necesita, te abstrae bastante de manejar la BBDD y el que más me motiva y del que estoy más orgulloso es que es producto patrio, o sea ha sido confeccionada por un chico que vive en Bilbao (Txus Ballesteros) y que ha creado cierta comunidad open source entorno a este ORM. Podemos ver el código fuente de la libreria y el autor siempre recibe con los brazos abiertos cualquier tipo de ayuda, además de que se ha encargado incluso de crear PodCast a través de Hangouts en Youtube para debatir con usuarios el uso y la arquitectura interna de su libreria, un figura.

La libreria es muy facilita de usar, y en GitHub el autor ha creado varios ejemplos, básicos y avanzados, de su uso. Además ocupa muy poquito, alrededor de 80Kb, y merece la pena usarla.

Así que me aventuré a insertarla en Android Studio. Para ello tenía dos opciones: insertar el proyecto entero como un módulo o insertar sólo la libreria exportada en un .jar, así que me decidí por lo segundo, así aprendía a importar .jar en Android Studio, ya que para la libreria de Facebook lo que había hecho era importar el proyecto entero como un módulo.

A priorí parecía fácil, meterla en la carpeta ‘libs’ definirla en el build.gradle y añadirla como Libreria desde el módulo de mi aplicación, pasos sencillos que tenían éxito para los usuarios de StackOverFlow: Como importar librerias .jar en Android Studio.

Y, lamentablemente no fue tan fácil. Tras estar casi 2 horas peleándome con ello, resultó que mi Android Studio (que ejecuto en un Windows 7) no reconocia el path relativo del ‘.jar’ que introducia en el build.gradle, así que tras varios tirones de pelos (en una de esta me quedo calvo), descubrí que si que me lo reconocía con la ruta absoluta, por lo que finalmente lo he dejado así. Así que si os bajais el código fuente de mi app y lo quereis compilar y ejecutar, debereis saber que tendreis que cambiar el fichero build.gradle para modificar la ruta de las librerias externas (.jar) que utilizo en el mismo. Debería funcionar con la ruta relativa, como decían en StackOverFlow, pero por más que he probado y he hecho mil y una perrerias, así a mi no me ha funcionado, con la ruta absoluta, sin problemas. Además la cosa iba más allá, ya que, en ocasiones, cuando cierro Android Studio y lo vuelvo a abrir, no me reconoce la libreria, por lo que debo importarla de nuevo… en fin, un follón que vuelve a poner en evidencia la fiabilidad e integridad de Android Studio a estas alturas, que por cierto había actualizado a la versión 0.4.2.

Y una vez configurada la librería externa en Android Studio, sólo me quedaba empezar a definir los modelos de datos que utilizaré en un principio en mi app, que seguro que cambiará a lo largo del desarrollo, ya que de momento quiero hacer algo muy básico pero que funcione, un Producto Minimo Viable que lo llaman ahora (MVP)

Os dejo una captura de pantalla de una de las entidades que he definido usando el ORM ADA Framework, para que veais que maravilla es crear modelos o entidades en Android a través de anotaciones, y sin necesidad de meter mano a SQL directamente con INSERT y demás.

Entidad Qdada

Entidad Qdada

Y como siempre el contenido del Commit que tiene lo explicado en esta entrada: Commit en GitHub

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s