3

Semana 20-10 al 26-10 en CRIAX-SDK

27Oct
en CRIAX-SDK, Documentación, Firefox OS, Javascript

Esta semana estuvo llena de nuevas características:

  • incorporación de persistencia en bases de datos sqlite para las aplicaciones móviles
  • nuevas configuraciones tanto para aplicaciones de escritorio como para aplicaciones móviles

Persistencia SQLite en aplicaciones móviles:

Gracias a la librería sqlite.js (compilación con asm de la libreria C de SQLite) ahora es posible persistir la información de las aplicaciones para Firefox OS, en una base de datos SQLite. Este librería permite crear una base de datos o cargar desde el sistema de ficheros una. En el caso de las aplicaciones desarrolladas con CRIAX-SDK, se crea una nueva base de datos y se persiste en Indexeddb, esto debido a las opciones limitadas del acceso a ficheros en el Sistema Operativo del teléfono.

Se puso todo el esfuerzo porque el sistema de persistencia fuera el mismo que en las aplicaciones de escritorio. Por suerte la diferencia fue muy ligera debido a que la librería para llevar a cabo esta tarea utiliza callbacks.

En los siguientes trozos de códigos se muestra como se utilizan estas funcionalidades del ORM de CRIAX, CORMX:

En las aplicaciones de escritorio:

//desde el controlador
var em = //obtener el entity manager

var memo = new Memo();
memo.setTitulo('nuevo titulo');
memo.setContenido('contenido del memo');

em.persist(memo);
em.flush();

En las aplicaciones de móviles:

//desde el controlador
var em = //obtener el entity manager

var memo = new Memo();
memo.setTitulo('nuevo titulo');
memo.setContenido('contenido del memo');

em.persist(memo);
em.flush(function(){
    //hacer algo una vez que
    //se haya insertado, actualizado o eliminado
});

Como se puede apreciar la diferencia es mínima, pues al método flush, del EntityManager se pasa un callback, el cual se ejecutará inmediatamente se termine la acción de persistencia.

Nuevas configuraciones:

Al incorporar la nueva funcionalidad en las aplicaciones móviles, fue preciso reorganizar algunas configuraciones de las aplicaciones, de manera tal que el ORM, supiera como comportarse en dependencia de la aplicación.

//en aplicaciones móviles
criax.app.type : "mobile"
//en aplicaciones de escritorio
criax.app.type : "desktop"

En el caso de las aplicaciones móviles hizo falta cambiar la estructura del esquema de la base de datos para que coincidiera con el existente en las aplicaciones de escritorio.

3 Comentarios

  1. Pochy dice:

    Genial, que bien me viene este update!

  2. Yosbel Marin dice:

    Interesantes características, fijate en esta idea de implementación para el método “flush” del Entity Manager para desktop:

    function flush(callback) {
    // … codigo actual
    if (typeof callback == ‘function’)
    callback();
    }

    esta es una manera de estandarizar la API, pero la ventaja principal es que permite portar con facilidad la capa de acceso a datos entre plataformas (Desktop y Mobil). Es decir que con esta idea el ejemplo para mobiles que se muestra en el articulo debería funcionar igual en desktop.

    Saludos.

  3. Nilmar dice:

    Muchas gracias Yosbel, llegan un poco tarde pero siempre se tiene en cuenta.

Dejar un comentario

¿Eres humano? Entonces resuelve esta operación: * Límite de tiempo se agote. Por favor, recargar el CAPTCHA por favor.