Menu

Tus datos offline con PouchDB

libstips - September 07, 2016 por Nicolas Molina

Dar soporte offline a los datos mejora el performance y la UX en la aplicación, vivimos en un mundo donde algunas conexiones son lentas o consumir datos a todo momento puede consumir la bateria rápidamente, todo esto hace parte de todo un concepto llamado Offline First.


Los algoritmos de sincronización pueden llegar a ser algo complejos, sobre todo cuando tenemos varios usuarios compartiendo recursos y queremos que exista un soporte offline.

Aquí es donde entra una grandiosa librería llamada PouchDB, podemos ver su definición:

PouchDB was created to help web developers build applications that work as well offline as they do online.

Y es una librería perfecta para construir aplicaciones con soporte offline, con muchos usuarios compartiendo el mismo recurso y además realtime.

PouchDB es increíble!!! (poner estrellita en el repositorio en github).

¿Por qué mejora el performance?

La mayoría de aplicaciones móviles se conecta a los datos con una REST API, esto hace que cada vez que queramos crear, editar, leer y eliminar alguna información necesitamos estar haciendo peticiones constantes a nuestro Backend y eso está bien. Pero si ya tenemos la base de datos en local podremos responder mucho más rápido a los usuarios ya que los datos ya están en el dispositivo y solo si hay algún cambio PouchDB lo sincronizará.

¿Por qué mejora la UX?

En nuestro mundo actual aún no hemos cubierto la totalidad de acceso a internet y además las baterias de los dispositivos se gastan rápidamente al tener los datos del dispositivo siempre conectado, así que si tus datos pueden ser consultados, creados, eliminados y editados sin conexión a internet y luego cuando tenga conexión sincronicé los datos automáticamente. Así podremos brindar una mejor experiencia a los usuarios de la aplicación

¿Cómo funciona?

Automáticamente cuando a PouchDB le damos las credenciales de acceso PouchDB genera un canal con la base de datos en la nube y otro con los datos locales para poder hacer la sincronización y usa técnicas como IndexDB y WebSql para guardar los datos en local y luego si hay algún cambio los sincroniza desde la base de datos local a la remota o viceversa.

Para tomar en cuenta:

Hay ciertas limitaciones y una es que para lograr esta magia, gran parte de debe a que la base de datos es NOSQL, es decir que los datos que queramos sincronizar deben estar en una base de datos NOSQL.

Tiene una gran integración con bases de datos de CouchDB, Couchbase y Couchbase Mobile y algunas que sean compatibles o solo si no te quieres preocupar por arquitectura en tu servidor puedes usar el servicio en la nube IBM Cloudant donde pueden crear la base de datos tipo CouchDB y luego sincronizar todos los datos de la aplicación con PouchDB.

¡Compártelo!