Las aplicaciones móviles ya son bastante difíciles de crear. Añadir incluso una librería a tu kit de herramientas puede añadir tiempo a tu proceso de creación. Entonces, ¿qué es MobileSync y por qué deberías dedicarle tiempo? La respuesta corta: sync proporciona acceso a datos distribuidos sin la carga habitual de programación de red en cada paso del camino. Si tu aplicación está haciendo llamadas de red para obtener y guardar datos de usuario, el uso de una biblioteca de sincronización como Couchbase Lite puede reducir el tiempo de desarrollo y la frustración, al tiempo que aporta ventajas adicionales como una interfaz de usuario más ágil y fiable.

Sincronizar significa cosas diferentes para cada persona. Probablemente, el sistema de sincronización más conocido es el servicio en la nube Dropbox, que se utiliza para sincronizar y compartir archivos entre muchos ordenadores. Siempre que tengas espacio suficiente para mantener tu Dropbox, es una forma estupenda de compartir archivos con un equipo.

La diferencia entre la sincronización y el almacenamiento ordinario de datos en la nube es que la sincronización lleva los datos al dispositivo de forma proactiva, mientras que al almacenamiento en la nube se suele acceder petición a petición. En Dropbox, puedes editar y crear nuevos archivos, incluso cuando estás desconectado. Cuando vuelvas a conectarte, los cambios que hayas realizado se sincronizarán con la nube y los archivos nuevos se descargarán. Esto significa que el usuario (y el programador de la aplicación) nunca tiene que preocuparse por el estado actual de la conexión de red.

Con la sincronización de bases de datos (como Couchbase Lite), los desarrolladores de aplicaciones móviles pueden depender de tener datos estructurados disponibles localmente, en lugar de tener que hacer peticiones de red individuales desencadenadas por cada acción de entrada del usuario. Así, los desarrolladores pueden centrarse en la lógica de negocio, no en las API de red.

La principal ventaja de sync es esta abstracción sobre la capa de red, que permite a los desarrolladores de aplicaciones interactuar con los datos independientemente del estado de la conexión de red. Si esta es la gran ventaja, ¿qué tipo de aplicaciones deberían utilizar sync?

* Cuando los datos del usuario (contenido escrito, dibujos, datos del juego, etc.) deben estar disponibles en todos los dispositivos y sistemas operativos, con un mínimo de codificación del lado del servidor.

* Los usuarios quieren editar los datos cuando están desconectados y conciliarlos con el sistema de registro cuando vuelven a conectarse. (Pilotos de líneas aéreas, extracción de recursos, reparto, asistencia sanitaria, etc.)

* Aplicaciones con tipos de datos complejos (y flujos de datos sencillos). Si estás haciendo un juego de palabras por turnos con mensajería integrada y un montón de análisis en el juego, sync puede simplificar las cosas. Esperamos tener pronto una aplicación de ejemplo para este caso de uso.

* Entrega de contenidos, como revistas, etc. Si va a entregar algo como una revista interactiva HTML5, sync puede facilitar la adición de contenido interactivo.

Si creas aplicaciones como esta y quieres usar la sincronización, tienes que hacerte una pregunta: "¿Puedo predecir qué datos son importantes para cada usuario?".

En algunas aplicaciones es bastante fácil: en una aplicación de juegos, es el estado de las partidas en las que estás y los datos del perfil de usuario de tus oponentes; en compartir fotos, son las fotos recientes de cada uno de tus amigos; para un piloto, son los datos sobre los vuelos de hoy.

Otras aplicaciones son más difíciles de determinar: una aplicación web existente que ya utiliza una base de datos relacional necesitará más trabajo para estar lista para la sincronización que una aplicación que ya utiliza el almacenamiento de documentos JSON. O si tu aplicación tiene que ejecutar una compleja lógica de backend para validar cada solicitud, puede que no sea tan fácil activar la sincronización. Del mismo modo, la sincronización no será útil para la consulta de búsqueda inicial de un usuario sobre un tema. Pero si tu aplicación cuenta con búsquedas guardadas, la sincronización puede ser una buena manera de actualizar de forma incremental los conjuntos de resultados.

Existe una gran comunidad que utiliza la tecnología de sincronización de Couchbase. Únase a nuestra lista de correo para conocernoso prueba este tutorial si estás listo para empezar.

Autor

Publicado por J. Chris Anderson, cofundador y arquitecto móvil, Couchbase

2 Comentarios

  1. La cosa con Sync que estoy luchando con es si yo uso un cubo - no todo el cubo tiene que sincronizar ... (los datos específicos de los usuarios más todos los datos de otros usuarios) Supongo que debe haber filtros selectivos en lo que se sincroniza. El cubo por usuario parece improbable ya que quiero tener un mínimo de 2.000 usuarios... No quiero gestionar eso y luego averiguar cómo dimensionarlos adecuadamente... necesito investigar esto :)

    1. La pasarela de sincronización permitirá a los clientes filtrar lo que sincronizan. Los documentos del cubo se etiquetan y asignan a "canales", y un cliente que realiza una conexión de sincronización especifica qué canales le interesan en ese momento. También hay ACLs que controlan qué canales puede ver un usuario.

      Todo esto está en desarrollo activo y pre-alfa, pero se puede leer una visión general en el README del proyecto:

      https://github.com/couchbasela

Dejar una respuesta