El soporte móvil en una aplicación móvil es un tema complejo. Puede aportar valor comercial en ciertos escenarios, pero también complica el desarrollo y aumenta significativamente los costos para toda la funcionalidad futura. Los mismos problemas ocurren con el soporte fuera de línea móvil. Los principales problemas son la sincronización y la duplicación de la lógica empresarial.
El proceso básico es que, cuando la aplicación está en línea, interactúa con el servidor a través de llamadas API y luego almacena la información en una base de datos local.
Hay dos opciones para la base de datos local en el caso de iOS: Core Data nativo (que se basa en SQLite) y otras bases de datos de terceros como Couchbase. Una vez que se guardan los datos, si el dispositivo se desconecta, ocurren los siguientes problemas:
– cualquier cambio realizado en los datos locales debe ser rastreado para que, cuando el dispositivo vuelva a estar en línea, pueda enviarse al servidor;
– debido a que no hay conexión a Internet, la aplicación ya no puede llegar al servidor para determinar cómo actuar en ciertas condiciones; por lo tanto, la aplicación debe poder responder sin conexión a preguntas como “¿el usuario tiene permiso para eliminar este contacto”?
– esto significa que la lógica de negocios, las reglas que debe respetar el sistema, ahora deben codificarse en el servidor, así como en el cliente.
- ¿Quién es el mejor desarrollador de aplicaciones de restaurantes pequeños?
- ¿Cuál es la mejor manera de comenzar con las pruebas móviles?
- ¿Cuál es el proceso de desarrollo de un juego móvil?
- ¿Se pueden desarrollar aplicaciones móviles usando Python?
- ¿Debo seguir adelante y compilar el inicio de mi aplicación móvil, incluso si estoy modificando algunas leyes? ¿Después de que lo lance?
Ahora imagine una gran cantidad de dispositivos que funcionan con conexión intermitente al servidor; un usuario puede cambiar un contacto en su aplicación, mientras que otro lo elimina. Ambos están fuera de línea; cuando se conectan (no se puede predecir el orden), el algoritmo debe saber cómo lidiar con situaciones “conflictivas”, como intentar eliminar un contacto que ya no existe.
Existen diferentes estrategias para abordar este problema, pero, básicamente, todas tienen ventajas y desventajas. Dos posibles soluciones serían las siguientes:
(A) traer lógica de negocios en el dispositivo; desarrolle su propia solución almacenando datos en datos centrales e implementando su propio algoritmo de sincronización
(B) trabaje con una base de datos de terceros que gestione el proceso de sincronización por usted; Las dos opciones posibles aquí serían Couchbase Lite con Coucbase Sync Gateway o Firebase.