Couchbase Móvil

Offline-first: una mentalidad para desarrollar aplicaciones móviles más rápidas y fiables

¿Qué significa "offline-first"?

El término "offline-first" describe una aplicación móvil creada para realizar la mayor parte, o la totalidad, de sus funciones básicas sin acceso a Internet. El concepto es bastante sencillo, pero con demasiada frecuencia no es así como se desarrolla una aplicación móvil. En su lugar, se construye para acceder a los datos desde centros de datos en la nube distantes, haciéndola dependiente de Internet. Esto significa que cuando la conexión a la red se ralentiza o deja de estar disponible, también lo hace la aplicación, lo que frustra a los usuarios y merma su adopción. Al crear una aplicación con un enfoque "offline-first", se eliminan esencialmente las dependencias de Internet, lo que hace que la aplicación sea más rápida y fiable.

Una de las claves del concepto offline-first es comprender que no se aplica únicamente a casos de uso en ubicaciones remotas, sino que debería considerarse el enfoque estándar para cualquier esfuerzo de desarrollo de aplicaciones móviles.

Exploremos más a fondo esa noción...

Regla #1: Internet no es fiable

¿Por qué se crean aplicaciones móviles con dependencias de Internet? Por dos razones principales:

    1. La suposición de que la conectividad siempre estará disponible y será rápida, combinada con la prevalencia de recursos basados en Internet como las API RESTful y los backends en la nube, ha convertido la creación de aplicaciones dependientes de Internet en una opción de desarrollo fácil.
    2. La suposición de que los requisitos "offline-first" no se aplican a los lugares metropolitanos; es decir, que sólo se aplican a casos de uso exóticos, aislados e hiperremotaos, como la exploración energética, la minería de roca dura o las operaciones de rescate en zonas salvajes, casos en los que la aplicación debe funcionar en una zona completamente sin Internet durante largos periodos de tiempo.

Estos supuestos han llevado al desarrollo de decenas de aplicaciones móviles que no pueden funcionar sin conexión a Internet. ¡Ay del usuario de una aplicación así cuando la necesite y no haya red disponible!

Offline-first debería ser por defecto, no un nicho

La propia naturaleza de las aplicaciones móviles -que se ejecutan en dispositivos móviles- hace que se desplacen constantemente de un lugar a otro y puedan perder la cobertura de red en cualquier momento, incluso en medio de las ciudades más modernas del planeta. Los usuarios entran en metros, ascensores, aparcamientos subterráneos y túneles, lugares donde la más breve caída de la conexión puede inutilizar las aplicaciones dependientes de Internet.

A todos nos ha pasado: estás en esa escena crucial de una película en streaming, o necesitas acaba de pulsar enviar o, lo que es peor, son las dos de la madrugada y necesitas que alguien te lleve al aeropuerto... ¡pero Internet tiene otros planes!

Si estas situaciones le resultan familiares, entenderá la frustración que sufren los usuarios cuando sus aplicaciones fallan por falta de conectividad.

Y cualquier expectativa de que se tolere este tipo de experiencia es errónea. De hecho 70% de los usuarios de aplicaciones móviles abandonan una aplicación que tarda demasiado en cargarse, y 84% de los usuarios de aplicaciones abandonarán una aplicación si falla sólo dos veces, y esos son justo los tipos de problemas que ocurren con las aplicaciones dependientes de Internet cuando se interrumpe la conexión.

Lo que se necesita es un cambio de mentalidad en el desarrollo que no planifique una conectividad sólida a Internet y trate las interrupciones como un error, sino que espere la falta de fiabilidad inherente a Internet y se desarrolle en torno a ella. En otras palabras, para conseguir las aplicaciones móviles más rápidas y fiables, hay que siempre construir primero fuera de línea.

Los componentes críticos de una aplicación móvil offline-first

El aspecto más importante del desarrollo de una aplicación móvil offline-first es la gestión de los datos. Si quieres eliminar las dependencias de Internet, tienes que almacenar y procesar los datos localmente en la aplicación. Pero también hay que asegurarse de que los datos puedan compartirse con otros usuarios y de que cualquier cambio en ellos se refleje de forma instantánea y precisa en todo el ecosistema de la aplicación.

En resumen, necesitas:

    • Tratamiento local de datos - persistencia de los datos en el dispositivo móvil para mantener la disponibilidad de la aplicación en casos de ausencia de red. Y como los datos son locales, se añade la ventaja de la capacidad de respuesta en tiempo real.
    • Tratamiento de datos en la nube - en un modelo offline-first, la nube sigue desempeñando un papel vital al ser el punto central de agregación de los datos de las aplicaciones.
    • Sincronización de datos - sincronizar los datos entre los clientes de las aplicaciones y la nube para garantizar la coherencia e integridad de los datos del ecosistema de aplicaciones.

Veamos más de cerca los componentes críticos...

Tratamiento local de datos

Para mantener la disponibilidad de la aplicación cuando la red no está disponible, es necesario almacenar los datos localmente. Para ello, las soluciones móviles de algunos proveedores de bases de datos en la nube ofrecen almacenamiento temporal de datos en caché en el dispositivo, donde las escrituras se recopilan y se mantienen en cola hasta que se restablece la conectividad y se pueden enviar a la base de datos en la nube. Sin embargo, este enfoque puede causar problemas si la aplicación está desconectada durante mucho tiempo, porque a medida que la cola crece puede empezar a afectar al rendimiento de la aplicación. El almacenamiento temporal en caché también impone un límite estricto a la cantidad de datos que se pueden recopilar: si se supera el límite, se empieza a correr el riesgo de pérdida de datos.

A diferencia de una caché temporal, una base de datos incrustada es más resistente, segura y eficiente en el procesamiento porque está diseñada para alta velocidad y almacenamiento de datos a largo plazo. Una base de datos incrustada debería ser la primera opción para las primeras aplicaciones móviles offline. La tecnología de base de datos integrada ideal incluye:

    • Compatibilidad con copias de seguridad en el dispositivo para proporcionar conmutación por error y minimizar el riesgo de pérdida de datos.
    • Posibilidad de desplegar bases de datos preconstruidas para acelerar la puesta en marcha de la aplicación.
    • Notificaciones asíncronas de cambios en la base de datos para permitir flujos de trabajo reactivos
    • Un SDK intuitivo y fácil de usar para sus lenguajes de programación y plataformas preferidos
    • Soporte completo de SQL
    • Búsqueda integrada

Tratamiento de datos en la nube

En un entorno offline-first, una base de datos en la nube sigue sirviendo como backend de la nave nodriza para las aplicaciones móviles. Para obtener la máxima flexibilidad y escalabilidad, las bases de datos NoSQL de documentos JSON son una opción ideal porque están distribuidas y diseñadas para una alta disponibilidad y tolerancia a fallos. Y el modelo de almacenamiento de documentos JSON es mucho menos rígido que las bases de datos relacionales, lo que las hace más fáciles y rápidas de cambiar, lo que acelera el desarrollo. La tecnología ideal de bases de datos en la nube incluye:

    • Valores clave, indexación, búsqueda de texto completo, análisis, series temporales y eventos integrados.
    • Soporte completo de SQL
    • Fragmentación automática, conmutación por error automática y replicación automática
    • Opciones de alojamiento o autogestión

Sincronización de datos

Una pieza crucial del rompecabezas de la primera aplicación offline es compartir los cambios de datos con otros clientes de la aplicación. Supongamos que un usuario actualiza información clave, como un precio o un número de previsión, y hay que asegurarse de que todos los demás usuarios de la aplicación vean esa información actualizada. Para ello, debes asegurarte de que tu aplicación móvil puede sincronizar los datos automáticamente.

Aunque pueda parecer sencillo, la creación de una sincronización de datos para aplicaciones móviles es intrínsecamente compleja, así que resista la tentación de intentar hacerlo usted mismo. Muchos equipos de desarrollo empiezan inocentemente intentando crear su propia solución de sincronización, sólo para fracasar después de perder una enorme cantidad de tiempo de desarrollo que podría haberse invertido mejor en la aplicación principal. Esto se debe a que sync es más que replicar datosEs asegurarse de que se hace de forma segura, precisa, eficaz e instantánea en todo momento. No construyas tú mismo la sincronización de datosbusque una base de datos que ya ofrezca sincronización móvil. La tecnología de sincronización ideal incluye:

    • Resolución de conflictos integrada
    • Acceso seguro
    • Sincronización bidireccional
    • Supervisión del estado de la red para gestionar las interrupciones de la conectividad
    • Sincronización de datos entre pares independiente de la conectividad a Internet
    • Delta-sync, sincroniza sólo los datos que han cambiado
    • Filtros y partición de datos para encaminarlos y aislarlos con precisión

Completamente ensamblada, la arquitectura de la aplicación offline-first sería algo así:

Con estos componentes críticos en su lugar, usted tiene la capacidad de desarrollar aplicaciones móviles que son impermeables a la lentitud de la red o el fracaso.

¿Por dónde empezar? Con una plataforma de base de datos móvil diseñada para aplicaciones offline.

Couchbase Mobile: la mejor opción para aplicaciones offline-first

Couchbase Mobile es una plataforma de base de datos móvil robusta y madura construida específicamente para permitir aplicaciones móviles más rápidas y fiables. Soporta elegantemente la arquitectura offline-first proporcionando los componentes críticos requeridos, incluyendo:

    • Couchbase Lite - Una base de datos NoSQL móvil integrada con soporte para SQL, sincronización peer-to-peer integrada y amplia compatibilidad con plataformas móviles.
    • Couchbase Capella - Una base de datos NoSQL como servicio (DBaaS) en la nube totalmente gestionada con SQL, búsqueda, análisis y soporte de eventos.
    • Capella App Services - Servicio totalmente gestionado de sincronización bidireccional, autenticación y control de acceso para aplicaciones móviles y de borde.

Capella App Services proporciona una sincronización de datos basada en websockets entre el backend Capella DBaaS y las aplicaciones integradas de Couchbase Lite en dispositivos periféricos. Con App Services, los cambios de datos se replican de forma instantánea y automática en todo el ecosistema de aplicaciones a medida que la conectividad lo permite, mientras que durante las interrupciones de la red, las aplicaciones siguen funcionando gracias a la base de datos integrada Couchbase Lite.

Conclusión

Construir primero fuera de línea no sólo hace que las aplicaciones sean inmunes a la lentitud y los cortes de Internet, sino que proporciona una experiencia superior a los usuarios, por lo que debería ser un modelo de diseño de facto para las aplicaciones móviles modernas.

Para ofrecer las aplicaciones móviles más rápidas y fiables, debe siempre construye offline-first con Couchbase Mobile.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Mark Gamble, Director de Marketing de Productos y Soluciones

Soy un apasionado del marketing de productos con formación técnica y en consultoría de soluciones y más de 20 años de experiencia en tecnología empresarial y de código abierto. He lanzado varias bases de datos y soluciones analíticas a lo largo de mi carrera, y he trabajado con clientes de una amplia variedad de sectores, como servicios financieros, automoción, hostelería, alta tecnología y sanidad. Tengo especial experiencia en análisis e IA, me encantan todos los datos y soy un firme defensor de las iniciativas de datos para el bien.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.