En Internet circulan muchos rumores sobre el desarrollo de aplicaciones móviles y la gestión de datos. ¿Debería utilizar un servicio o un software para sus aplicaciones móviles? Casi todas las aplicaciones decentes de hoy en día requieren datos que cambien rápidamente, que sean fáciles de usar y que se sincronicen entre otras plataformas y dispositivos móviles. Soy un desarrollador de aplicaciones móviles con un número de aplicaciones publicadas en la tienda de aplicaciones y mi objetivo es darle una perspectiva sobre la diferencia entre Couchbase Mobile frente a lo que podría existir en este ámbito.

Qué es Couchbase Mobile

En resumen, Couchbase Mobile es una colección de software que consiste en un base de datos NoSQL integrada distribuido con tus aplicaciones móviles Android e iOS y un servicio middleware utilizado para sincronizar de forma segura esos datos almacenados localmente con Couchbase Server y otros dispositivos. Estas dos piezas de software se llaman Couchbase Lite y Couchbase Sync Gateway, y cuando se usan juntas son una fuerza a tener en cuenta.

Couchbase Lite es una base de datos NoSQL integrada. Ocupa muy poco espacio y se ejecuta en proceso mientras tu aplicación se está ejecutando (o mientras está en segundo plano). Esta base de datos en proceso expone un servicio web RESTful al que se puede acceder a través de la API de Couchbase Lite o a través de tus propias peticiones HTTP si realmente quisieras. Couchbase Sync Gateway, como middleware, actúa como orquestador de datos entre el dispositivo y el servidor. Canaliza los datos, maneja los conflictos, y te da la mejor experiencia posible como desarrollador y usuario final.

Por qué utilizar Couchbase Mobile

Couchbase Mobile fue diseñado para hacer tu vida, como desarrollador móvil, muy fácil y libre de estrés. Usar lo que ya está incorporado en Android e iOS es genial y funciona, pero ciertamente no es fácil. Vamos a comparar algunas cosas ahora.

Couchbase Lite frente a SQLite

Cualquiera que haya trabajado con SQLite sabe que ciertas cosas pueden ser un dolor de cabeza. No es particularmente difícil consultar una base de datos SQLite, pero cuando necesitas actualizar el esquema porque tu aplicación tiene nuevos requisitos de datos, puede convertirse en una pesadilla. Tendrás que escribir scripts de actualización limpios para no provocar la pérdida o corrupción de datos en los dispositivos de tus clientes. Puede que pienses que has creado un esquema de base de datos a prueba de balas que nunca necesitará cambios, pero un desarrollador experimentado sabe que los datos cambian constantemente.

Couchbase Lite es NoSQL y utiliza documentos sin esquema para almacenar tus datos. Esto significa que puedes almacenar datos que cambian constantemente y nunca tener que pensar en un plan de actualización de la base de datos móvil. Aunque Couchbase Lite no utiliza un ORM, sigues almacenando tus datos en una forma que se asemeja más a cómo se utilizan realmente. Esto ahorra el tiempo que normalmente se emplea en buscar datos SQL, parsearlos en un objeto que quieras usar, y usarlo.

Pero, ¿qué pasa con la sincronización de datos con otras plataformas y dispositivos?

Couchbase Sync Gateway frente al enfoque manual

Cualquiera que haya necesitado sincronizar sus datos con otros dispositivos y plataformas sabe que puede ser algo complicado si tienes que construir la solución desde cero. Manejar conflictos y sincronizar de forma eficiente, segura y sin agotar la batería de los usuarios es un tema complicado que se puede evitar fácilmente con Couchbase Mobile.

Aquí es donde entra en juego Couchbase Sync Gateway.

El Sync Gateway elimina el dolor de la replicación de datos o sincronización entre sus dispositivos u otras aplicaciones. Mediante el uso de replicadores en Couchbase Lite, los datos pueden ser empujados y sacados de la puerta de enlace de sincronización que le da una verdadera experiencia fuera de línea en primer lugar. ¿Preocupado por la autorización de datos? Sync Gateway le permite autenticarse con servicios como Facebook y conceder a los usuarios o roles acceso a los datos para que sólo pueda acceder a lo que se le permite.

Imagina que tienes una base de datos SQLite en tu dispositivo que necesitas sincronizar con una base de datos MySQL remota. ¿Cómo manejarías la comprobación de datos locales que necesitan ser empujados o datos remotos que necesitan ser tirados? ¿Qué ocurre si hay un conflicto en esos datos? ¿Qué harías? Lo que elijas, probablemente no será fácil. Definitivamente no menos de unas pocas líneas de código como ofrece Couchbase Mobile. Consigues un desarrollo offline-first con un esfuerzo mínimo cuando se trata de Couchbase Mobile.

La experiencia offline

Couchbase Mobile promueve un enfoque offline-first para el desarrollo de aplicaciones móviles en el que desarrollas como si no tuvieras intención de usar Internet, y luego introduces la funcionalidad de red después de haber conseguido una experiencia de usuario offline sin problemas. El truco está en que esto es posible gracias a una base de datos local offline con la que el código interactúa directamente. No estás haciendo peticiones a tu base de datos remota y esperando respuestas que a menudo pueden ser lentas. En su lugar, estás leyendo y escribiendo sólo en tu base de datos local. La API de Couchbase Lite se preocupará de tirar y empujar datos cuando pueda. Sin Internet, no hay problema, porque no estás leyendo desde Internet, estás leyendo desde tu dispositivo local.

Diferencias entre Couchbase Mobile y los servicios de datos

Couchbase Mobile no es un servicio. A diferencia de servicios como Parse de Facebook, API de almacén de datos de Dropboxy StackMob de PaypalCon Couchbase Mobile, eres dueño de tus datos. ¿Por qué es importante? Bueno, los tres servicios de datos que acabo de mencionar han anunciado su cierre. Esto significa que cualquiera que haya invertido tiempo y recursos en estos servicios tendrá que abandonar el barco y encontrar otra cosa. Esto podría implicar cambiar todo el código fuente de su aplicación, manipular sus datos para adaptarlos a un nuevo software o servicio, y costar mucho dinero.

Cuando eres dueño de tus datos, tienes el control.

Se podría decir que es un inconveniente gestionar los servidores en los que se instala software como Couchbase. La realidad es que no hay ningún inconveniente. Servicios como Amazon Web Services (AWS), Microsoft Azure y tantos otros, tienes imágenes de Couchbase disponibles y listas para usar. Simplemente despliegue las imágenes y estará listo para funcionar. ¿Preocupado por la estabilidad de los datos, el equilibrio de carga y el tiempo de actividad? Esto tampoco debería considerarse un inconveniente, ya que los nodos de Couchbase pueden agruparse en clústeres en cuestión de minutos y, una vez agrupados, ofrecen replicación de datos y equilibrio de carga. No hay necesidad de pasar interminables horas desempeñando el papel de operaciones del sistema cuando en realidad eres un desarrollador.

Conclusión

Con tantas opciones de datos para móviles, resulta difícil elegir. Sin embargo, conociendo los datos como servicio y que estos servicios pueden cerrarse en cualquier momento, la elección obvia debería estar en los datos que te pertenecen. Couchbase Mobile, con Couchbase Lite y Couchbase Sync Gateway, es una elección obvia en este ámbito. Obtienes una experiencia offline-first en tus aplicaciones dejándote con aplicaciones siempre rápidas y disponibles con datos sobre los que tienes el control.

Autor

Publicado por Nic Raboy, Defensor del Desarrollador, Couchbase

Nic Raboy es un defensor de las tecnologías modernas de desarrollo web y móvil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y móvil más fácil de entender.

Dejar una respuesta