Ir al contenido principal

Registra tiempo sin conexión y sincroniza al volver a tener red

Por Florian6 min de lectura
sin conexiónsincronizaciónmóviltrabajo de campoautomatización

Bajas al metro. Cinco paradas, 17 minutos, sin cobertura. Cuando sales has contestado tres correos, has redactado una respuesta en Slack y el temporizador debería seguir corriendo en la llamada de Acme. Casi cualquier app habría perdido o pausado el registro. Timesheet no.

Las apps móviles registran el tiempo totalmente sin conexión. Los registros se escriben en una base de datos local con sus horas reales de inicio y fin. Cuando el dispositivo vuelve a conectarse, la nube recibe los cambios, los demás dispositivos se los descargan y todo encaja sin que hagas nada.

Registro sin conexión y sincronizaciónGratis
Registra sin conexión en iOS, Android y Apple Watch. Escritura local primero y fusión sin conflictos al reconectar. El registro sin conexión está en todos los planes; la sincronización en la nube requiere Plus o superior.

#Qué significa «sin conexión» de verdad

Funcionar sin conexión significa tres cosas:

  1. La lectura funciona sin internet. Registros anteriores, listas de proyectos, etiquetas, tarifas, contratos: todo está disponible desde la base de datos local que la app mantiene en el dispositivo.
  2. La escritura funciona sin internet. Iniciar y detener temporizadores, crear registros con horas explícitas de inicio y fin, editar, eliminar y adjuntar pausas o gastos se guarda en local y sobrevive a reinicios de la app.
  3. Los conflictos se resuelven limpiamente. Cuando el dispositivo vuelve a conectarse, los cambios locales se suben, los cambios de otros dispositivos se descargan y las diferencias se concilian registro a registro.

La promesa de cara a quien la usa: la app no se bloquea, no pierde datos y no te lanza errores por falta de conexión.

#Qué vive en el dispositivo

Cada app móvil de Timesheet mantiene una base de datos local (Room en Android, GRDB en iOS). Contiene:

  • Todos tus proyectos, etiquetas, tarifas y, en planes Business, contratos
  • Todos tus registros de tiempo
  • Todas las pausas asociadas a esos registros
  • Los cambios pendientes de subir
  • El estado actual del temporizador

La app web y la extensión de navegador no tienen esta base de datos. Necesitan conexión a internet para funcionar.

#Cómo se comporta la sincronización

Los datos pueden seguir tres caminos distintos:

#Con conexión: escritura directa

Cuando el dispositivo tiene conexión, cada guardado se escribe primero en local y se envía a la nube en cuestión de segundos. Los demás dispositivos reciben el cambio en su siguiente sincronización.

#Sin conexión: escritura local y cola

Cuando no hay conexión, cada guardado se escribe solo en local. La app marca el cambio como «pendiente de subir» y lo pone en cola.

#Al reconectar: sincronización de recuperación

En cuanto el dispositivo vuelve a conectarse, por wifi, red móvil o punto de acceso, la app:

  1. Sube los cambios locales pendientes en el orden en que se hicieron
  2. Descarga los cambios hechos en otros dispositivos desde la última sincronización
  3. Fusiona todo en la base de datos local
  4. Actualiza el temporizador activo si en la nube hay un estado más reciente

Suele ser cuestión de segundos, incluso con una cola grande de registros pendientes.

#Resolución de conflictos: quién gana

Muchas apps que ofrecen modo sin conexión pasan de puntillas por la cuestión de los conflictos. Este es el comportamiento real:

#Un registro, dos dispositivos

Si editas el mismo registro en el móvil (sin conexión) y en la web (con conexión), la nube se queda con la edición más reciente: cada cambio lleva una marca de última actualización, y una escritura entrante más antigua que lo que ya tiene la nube se rechaza. La copia local del móvil se sobrescribe con el estado final de la nube en la siguiente sincronización.

En la práctica es un caso raro. Cuando ocurre, la edición más nueva es la que sobrevive, en todos los dispositivos.

#El temporizador activo

Solo puede haber un temporizador en marcha por persona a la vez. Si el reloj tiene un temporizador corriendo y el móvil arranca otro distinto mientras está desconectado, al reconectar gana la hora de inicio más reciente. El temporizador anterior se cierra automáticamente con su último valor conocido.

#Los borrados

Los borrados usan un mecanismo de «lápida»: un registro eliminado se queda en la base de datos local con una marca de borrado hasta que la nube lo confirma. Así se evita que un borrado en el dispositivo A «resucite» en el dispositivo B, que aún no ha sincronizado.

#Dónde influyen los planes

PlanRegistro sin conexiónSincronización en la nubeVarios dispositivos
Basic (gratis)NoNo
Plus
Pro
Business

En el plan gratuito Basic, el móvil registra sin conexión, pero no hay nube ni otro dispositivo con el que sincronizar. Las copias de seguridad son solo locales, además de la exportación manual a Excel o CSV.

Desde Plus se añade la nube y la sincronización entre tus dispositivos móviles, Apple Watch e iPad incluidos. El acceso desde la app web es una función Pro adicional.

#Situaciones reales

#El trayecto en metro

El móvil registra un apunte de 8:15 a 8:32 en «Lectura · Actualidad del sector» bajo tierra. El registro se guarda en local. A las 8:35 el móvil recupera la red móvil y el registro se sube en menos de un segundo.

#El vuelo

Un vuelo de seis horas. Inicias un temporizador en «Viaje · Visita a Acme» al despegar. También redactas tres registros nuevos de la semana pasada, escritos a mano en el iPad. Los cuatro se guardan en local en ambos dispositivos. En tierra, los dos vuelven a conectarse e intercambian datos. En diez segundos, la app web del portátil muestra los cuatro.

#El sótano técnico

Un técnico pasa dos horas en una sala de servidores sin cobertura, una situación conocida en el control horario de profesionales de TI. El temporizador se inicia desde el reloj al llegar y el móvil, guardado en la taquilla, está sin conexión. El reloj registra en local. Al volver, móvil y reloj se sincronizan directamente por Bluetooth y el móvil lo envía todo a la nube en cuanto recupera conexión.

#El corte de wifi en la cafetería

Trabajas en una cafetería con el temporizador en marcha en el móvil. El wifi se cae 90 segundos en mitad de un pomodoro. El temporizador sigue corriendo en local. El corte no tiene ningún efecto visible: el registro conserva las horas correctas de inicio y fin.

#Batería y almacenamiento

El modo sin conexión consume poco:

  • Almacenamiento: la base de datos local se mantiene pequeña para la mayoría, incluso con años de registros; los registros son filas de texto y números, no archivos multimedia
  • Batería: la sincronización en segundo plano usa la API de tareas en segundo plano de iOS y WorkManager en Android, que limitan la actividad de forma agresiva para preservar batería
  • Red: al reconectar, la sincronización es un intercambio de diferencias, solo lo que ha cambiado, no una descarga completa

#Qué pasa si la base de datos se corrompe

La corrupción de la base de datos es muy poco frecuente y suele ser señal de poco espacio libre o de un apagado forzado a mitad de una escritura. Si ocurre, la app te avisa en lugar de perder datos en silencio. Con sincronización en la nube, desde el plan Plus, la solución es sencilla: cierra sesión, vuelve a entrar y la app descarga una copia limpia de tus datos.

En Basic no hay copia en la nube, y justo por eso importan las exportaciones periódicas y la función de copia de seguridad local. Son tu red de seguridad en el plan gratuito.

#Rutinas que funcionan bien

Fíate del modo sin conexión. El error más común es retrasar o saltarse el registro pensando «ya lo haré cuando tenga red». De la falta de conexión se ocupa la app; tú no tienes que hacer nada.

No vayas saltando de dispositivo a mitad de un registro. Detener un temporizador en el reloj y editar el registro resultante en el iPad sin conexión suele funcionar, pero haces más probable un conflicto. Elige un dispositivo para cada día.

Sincroniza antes de una desconexión larga. Justo antes de un vuelo, abre la app una vez y deja que confirme «Todo sincronizado». Así garantizas que el dispositivo empieza el tramo sin conexión con los datos más frescos.

Comprueba el estado de sincronización. La pantalla de cuenta muestra la última sincronización correcta y cuántos cambios quedan pendientes de subir. Un vistazo antes de quedarte sin red te dice si está todo al día.

#Preguntas frecuentes

¿Cuánto tiempo puede estar el móvil sin conexión antes de dejar de funcionar? Indefinidamente. La base de datos es local y no caduca. Hay quien pasa semanas sin conexión y la sincronización se pone al día sin problemas al reconectar.

¿El reloj sincroniza directamente o a través del móvil? A través del móvil. El Apple Watch y el iPhone se sincronizan directamente por Bluetooth cuando están cerca, y el iPhone lo envía todo a la nube cuando tiene internet.

¿Se pierden los temporizadores en marcha si se fuerza el cierre de la app? No. El estado del temporizador se guarda en la base de datos local. Al reabrir la app, retoma donde lo dejó.

¿Pueden dos dispositivos estar en línea con temporizadores en conflicto? Brevemente sí, pero las reglas de resolución eligen un ganador en segundos. El temporizador perdedor se cierra con su último valor conocido como registro terminado.

¿Y la extensión de navegador? La extensión de navegador Plasmo es un cliente solo en línea. Lee de la nube y escribe en la nube. No tiene base de datos local. Usa las apps móviles para cubrir el trabajo sin conexión.

#Resumen

  • Las apps móviles admiten registro sin conexión completo, con horas concretas de inicio y fin en cada registro
  • Las escrituras locales se ponen en cola y se suben en cuanto el dispositivo vuelve a conectarse
  • La resolución de conflictos es registro a registro: gana la edición más reciente, en todos los dispositivos
  • El registro sin conexión está en todos los planes; la sincronización en la nube requiere Plus
  • La app web y la extensión de navegador funcionan solo en línea

#Sigue leyendo

¿Todo listo para empezar?

Descarga la aplicación gratis para iOS y Android

← Volver al blog
Compartir este artículo
Registra tiempo sin conexión y sincroniza al volver a tener red