¿Cuándo resulta necesaria una app offline?

Muchas empresas se plantean la realización de aplicaciones para guardar registros de sus procesos: Inspecciones, lecturas de datos, realización de inventarios,… Inicialmente parece suficiente la realización de una aplicación web para dar respuesta a las necesidades, pero más tarde surgen problemas.

Muchas veces el trabajo y toma de datos se realiza en el exterior presentándose nuevas especificaciones:
• Los portátiles son incómodos. Se deben utilizar tabletas, PDAs o móviles.
• Las aplicaciones webs son difíciles de manejar en las pantallas de los nuevos dispositivos. Se debe realizar una app para facilitar la labor al operario.
• A veces se realizan los trabajos en zonas sin cobertura o con cobertura mala. Nos indica que nuestra app debe funcionar offline.

En este artículo se va a analizar el problema al que nos enfrentamos al intentar desarrollar una app offline que dé solución al problema.

 

 

Diseño de la app

A la hora de plantear este tipo de app se deben tener en cuenta las siguientes premisas:
• ¿Debe funcionar online, offline o ambas?.
• Si debe hacerse un desarrollo offline, ¿Cómo guardamos el histórico de cambios?.
• ¿En offline pueden modificar distintos usuarios el mismo registro?.
• Si es así, ¿Qué ocurre si dos usuarios modifican el mismo registro?.

El problema se simplifica si los usuarios tienen delimitados sus registros y no hay intersección entre ellos, de manera que evitamos la situación que un registro sea modificado por dos usuarios.

Control de registros en offline

En el caso de intersección de registros el desarrollo se complica.
Se debe tener versionado de todos los cambios, de manera que se conozcan los cambios realizados en cada registro, cuando y que cliente.
Con este versionado podemos saber que podemos subir a la base de datos y bajar de la base de datos. De esta manera podríamos conocer si mientras henos trabajado offline algún otro ha modificado alguno de nuestros registros.

Resolución de conflictos

Con el apartado anterior conoceríamos los registros que han sido modificados por varios usuarios a la vez.
¿Cómo resolvemos esto?.
Se deberá programar un módulo para resolución de conflictos.
Si se da el hecho de que 2 clientes han modificado el mismo registro se deberá llamar a este módulo.
En el módulo se pueden ejecutar automáticamente reglas predeterminadas (Un buen ejercicio consistiría en hacer una lista de reglas editables). Si no se debe avisar de la existencia de conflictos para que el administrador los solucione.