Hace poco tuve el honor de participar en un webcast con mi colega y buen amigo, Aaron LaBeau, Sr. Developer Advocate en Couchbase. Aaron tiene casi 30 años de experiencia en desarrollo y se especializa en la creación de aplicaciones móviles, por lo que parecía el experto en la materia perfecto para unirse a nuestra sesión titulada Estrategias de bases de datos para aplicaciones móviles e IoT: por qué REST ya no es suficiente.
En el programa, nos propusimos descubrir los obstáculos a los que se enfrentan los desarrolladores a la hora de crear aplicaciones móviles utilizando API REST para datos y, a continuación, explorar un enfoque alternativo que no sólo elimina los obstáculos, sino que mejora aún más las aplicaciones: una plataforma de base de datos móvil.
Durante el debate, señalamos que, aunque hay más dispositivos y usuarios que nunca, el simple hecho de producir una aplicación no garantiza que vaya a ser un éxito. De hecho, la inmensa mayoría de las aplicaciones se desinstalan en los primeros 30 días de uso por razones como un rendimiento lento, largos arranques, pérdida de datos y bloqueos. Y muchos de estos problemas se deben a los datos o, más concretamente, al modo en que las aplicaciones acceden a ellos y los gestionan.
Los 5 principales puntos débiles de la API REST
Los desarrolladores móviles que utilizan API REST para acceder a los datos y modificarlos se enfrentan a retos que repercuten en el rendimiento y la disponibilidad de sus aplicaciones. En su intervención, Aaron habló de cinco "puntos conflictivos específicos de las API REST" que ha ido encontrando a lo largo de los años en diversos proyectos:
Reutilizar API REST "hinchadas" hace ineficientes las aplicacionesAquí el debate se centró en las razones por las que las API REST destinadas a una aplicación web no deberían reutilizarse para aplicaciones móviles.
Falta de validación de esquemas y tipos de datosLa falta de tipado y validación en REST puede causar desajustes en la forma en que se envían los datos y cómo se espera que se reciban entre la aplicación y la API, lo que puede provocar un fallo.
Transformación de datos de ida y vueltala necesidad de transformar constantemente los datos entre la aplicación, la API REST y la base de datos backend -para cada solicitud- hace que el código sea complejo y deja más margen de error.
Traducir el dominio empresarial al modelo de transporteEn este caso, Aaron habló de la frustración de crear un modelo de dominio elegante y complejo que se adapta perfectamente a tu aplicación, sólo para tener que envolverlo para que se ajuste a la API REST, perdiendo toda su riqueza y expresividad.
Enfrentarse a una Internet intrínsecamente poco fiable: REST depende de Internet y, como tal, también lo hacen tus aplicaciones cuando utilizan REST. Hay muchos puntos potenciales de fallo introducidos por problemas de red, y los desarrolladores tienen que implementar la lógica de comunicación y la gestión de errores por sí mismos, lo que puede hacer que incluso las tareas más sencillas sean extremadamente complejas.
Plataforma móvil de bases de datos al rescate
Una vez cubiertos los puntos débiles, pasamos a debatir un enfoque alternativo del acceso a los datos: una plataforma de bases de datos creada para aplicaciones móviles.
Una plataforma de base de datos móvil está pensada para simplificar la gestión de datos de las aplicaciones y evitar la falta de fiabilidad inherente a Internet.
En nuestro debate hemos descrito cómo una base de datos móvil amplía el almacenamiento y el procesamiento de datos desde la nube hasta el borde, incluso en el dispositivo.
Exploramos cómo puede eliminar los puntos conflictivos de REST, reducir las dependencias de Internet y acelerar las aplicaciones con procesamiento local de datos, todo ello sin sacrificar la coherencia, proporcionando:
-
- Almacenamiento local de datosAl integrar la base de datos directamente en las aplicaciones, se ejecuta localmente en el dispositivo, lo que elimina la necesidad de conexión a Internet para acceder a los datos, mejorando el tiempo de actividad y reduciendo la latencia.
- Modelos de datos flexiblessi el desarrollo de su aplicación sigue el modelo de dominio y desea flexibilidad en lugar de rigidez relacional, una base de datos de documentos JSON es una gran opción de base de datos móvil.
- Sincronización de datosSincronización de datos: la sincronización de datos es esencial para la integridad, la precisión, la seguridad y una buena experiencia de usuario. También puede facilitar y hacer más infalibles las actualizaciones de las apps.
Couchbase Mobile en acción
Para mostrar la potencia de una plataforma de base de datos móvil, pasamos a una demostración en directo de Sincronización sencilla de datosEl Couchbase Móvil aplicación de muestra para iOS que sincroniza datos entre otros dispositivos tanto con Internet a través de la nube, como incluso sin Internet a través de peer-to-peer.
La demostración fue lo más destacado de la sesión, especialmente la parte en la que Aaron datos sincronizados de su iPhone a mi iPhone a través de la nubeEntonces mi iPhone se sincronizó con mi simulador que NO estaba en Internet. Esto mostró las capacidades de sincronización de datos de Couchbase Mobile de una manera sencilla, y explicamos cómo la funcionalidad de sincronización se aplica a casos de uso como juegos, salud, POS de restaurantes, servicios a bordo de aerolíneas y más.
Terminamos la sesión explicando la pila de productos de Couchbase Mobile:
-
- Couchbase Capella: Una base de datos como servicio (DBaaS) NoSQL en la nube distribuida y totalmente gestionada que admite SQL, búsquedas, eventos y análisis.
- Capella App Services: Servicios totalmente gestionados de sincronización bidireccional, autenticación y control de acceso para aplicaciones móviles y de borde.
- Couchbase Lite: Una versión ligera e integrable de la base de datos Couchbase
Capella App Services conecta la pila, sincronizando los datos entre el backend Capella DBaaS y Couchbase Lite que se ejecuta en los dispositivos periféricos cuando la conectividad lo permite, mientras que durante las interrupciones de la red las aplicaciones siguen funcionando gracias al procesamiento local de los datos.
Desarrollador para llevar
Para todos los desarrolladores que asistieron, proporcionamos un enlace a un vídeo de 4 partes titulado revisión del código que muestra los entresijos de la aplicación de demostración Simple Data Sync en breves clips de 10 minutos.
En la serie, Wayne Carter -el desarrollador de la aplicación- se sumerge en el código y explica cómo creó las funciones de sincronización utilizando Couchbase Mobile.