Skip to main content

Zeit offline erfassen und nach dem Verbinden synchronisieren

Von Florian6 Min. Lesezeit
OfflineSyncMobileAußendienstAutomatisierung

Sie steigen in die U-Bahn. Fünf Stationen, 17 Minuten, kein Empfang. Bis Sie wieder oben sind, haben Sie drei Mails beantwortet, einen Slack-Entwurf getippt, und der Timer sollte noch auf dem Acme-Termin laufen. Die meisten Apps hätten den Eintrag verloren oder pausiert. Timesheet nicht.

Die Mobile-Apps erfassen Zeit vollständig offline. Einträge werden mit ihrer tatsächlichen Start- und Endzeit in eine lokale Datenbank geschrieben. Sobald das Gerät wieder verbunden ist, erhält die Cloud die Änderungen, die anderen Geräte ziehen sie nach, und alles passt zusammen, ohne dass Sie eingreifen müssen.

Offline-Erfassung und SynchronisationKostenlos
Offline-Erfassung auf iOS, Android und Apple Watch. Lokale Schreibvorgänge zuerst, konfliktfreies Zusammenführen beim erneuten Verbinden. Offline-Erfassung in jedem Plan; Cloud-Sync ab Plus.

#Was offline-fähig wirklich heißt

Offline-fähig bedeutet drei Dinge:

  1. Lesen funktioniert ohne Internet. Vergangene Einträge, Projektlisten, Schlagwörter, Tarife, Verträge: alles aus der lokalen Datenbank verfügbar, die die App auf dem Gerät pflegt.
  2. Schreiben funktioniert ohne Internet. Timer starten und stoppen, Einträge mit konkreter Start- und Endzeit anlegen, bearbeiten, löschen, Pausen oder Ausgaben anhängen: alles wird lokal gespeichert und bleibt über App-Neustarts erhalten.
  3. Konflikte lösen sich sauber. Sobald das Gerät wieder verbunden ist, werden lokale Änderungen hochgeladen, Cloud-Änderungen anderer Geräte heruntergeladen und Unterschiede pro Eintrag abgeglichen.

Das Versprechen an Sie: Die App blockiert nicht, verliert keine Daten und wirft keine Fehler, weil das Netz weg ist.

#Was auf dem Gerät liegt

Jede Timesheet-Mobile-App hält eine lokale Datenbank (Room unter Android, GRDB unter iOS). Sie enthält:

  • Alle Projekte, Schlagwörter, Tarife und (ab Business) Verträge
  • Alle Zeiteinträge mindestens der letzten 90 Tage
  • Alle Pausen, die zu diesen Einträgen gehören
  • Anstehende Änderungen, die noch hochzuladen sind
  • Den aktuellen Timer-Status

Web-App und Browser-Erweiterung verfügen nicht über diese Datenbank. Sie brauchen eine Internetverbindung.

#Wie die Synchronisation tatsächlich abläuft

Die Daten nehmen einen von drei Wegen:

#Online: direkt durchschreiben

Mit Verbindung wird jede Speicherung zuerst lokal geschrieben und innerhalb von Sekunden in die Cloud gesendet. Andere Geräte erhalten die Änderung beim nächsten Sync.

#Offline: lokal schreiben, vormerken

Ohne Verbindung wird jede Speicherung nur lokal geschrieben. Die App vermerkt die Änderung als "ausstehender Upload" und reiht sie ein.

#Verbinden: Nachholsynchronisation

Sobald das Gerät wieder verbunden ist (WLAN, Mobilfunk oder Hotspot), geht die App so vor:

  1. Ausstehende lokale Änderungen in der Reihenfolge ihrer Erstellung hochladen
  2. Änderungen anderer Geräte seit der letzten Synchronisation herunterladen
  3. Alles in die lokale Datenbank einarbeiten
  4. Den aktiven Timer übernehmen, falls die Cloud einen neueren Stand hat

Das geschieht meist in weniger als fünf Sekunden, auch bei Hunderten ausstehenden Einträgen.

#Konfliktlösung: Wer gewinnt

Viele Apps mit Offline-Modus winken die Konfliktfrage durch. So sieht das in Timesheet aus:

#Ein Eintrag, zwei Geräte

Wenn Sie denselben Eintrag auf dem Telefon (offline) und im Web (online) ändern, akzeptiert die Cloud den als zweites eintreffenden Schreibvorgang und legt beide Versionen im Audit-Log ab (Business-Plan). Die lokale Kopie auf dem Telefon wird beim nächsten Sync auf den endgültigen Cloud-Stand überschrieben. Sie sehen für einige Sekunden einen Hinweis "aus der Cloud übernommen" am Eintrag.

In der Praxis kommt das selten vor. Tritt es auf, ist es im Audit-Log nachvollziehbar.

#Der aktive Timer

Pro Nutzerin läuft nur ein Timer gleichzeitig. Lässt die Watch einen Timer laufen und das Telefon startet im Offline-Modus unabhängig einen anderen, gewinnt beim Verbinden die jüngste Startzeit. Der ältere Timer schließt automatisch mit seinem letzten bekannten Stand.

#Löschungen

Löschungen verwenden ein "Grabstein"-Verfahren: Ein gelöschter Eintrag bleibt in der lokalen Datenbank mit Lösch-Marker, bis die Cloud die Löschung bestätigt. So kann ein Löschen auf Gerät A nicht durch ein noch nicht synchronisiertes Gerät B "wieder auferstehen".

#Was die Pläne unterscheiden

PlanOffline-ErfassungCloud-SyncMehrere Geräte
Basic (kostenlos)JaNeinNein
PlusJaJaJa
ProJaJaJa
BusinessJaJaJa

Im kostenlosen Basic-Plan erfasst das Telefon offline, es gibt aber keine Cloud und kein weiteres Gerät, mit dem zu synchronisieren wäre. Sicherungen sind lokal (zusätzlich gibt es den manuellen Excel/CSV-Export).

Ab Plus kommen Cloud und Multi-Device-Sync hinzu. Die Apple Watch, das iPad und das Web ziehen mit.

#Reale Szenarien

#U-Bahn-Pendel

Das Telefon erfasst einen Eintrag von 08:15 bis 08:32 auf "Lesen · Fachpresse" unter Tage. Eintrag wird lokal gespeichert. Um 08:35 fängt das Telefon wieder LTE, der Eintrag geht in unter einer Sekunde online.

#Der Flug

Sechs Stunden Flug. Sie starten beim Abflug einen Timer auf "Reise · Acme Besuch". Außerdem tippen Sie auf dem iPad drei neue Einträge für die letzte Woche. Alle vier Einträge speichern lokal auf beiden Geräten. Nach der Landung verbinden sich beide Geräte und tauschen Daten aus. Innerhalb von zehn Sekunden sieht die Web-App auf dem Laptop alle vier.

#Der Serverraum im Keller

Eine Servicekraft verbringt zwei Stunden im Keller ohne Mobilfunk. Die Watch startet den Timer beim Eintreffen per NFC, das Telefon liegt im Spind und ist offline. Die Watch erfasst lokal. Beim Rückweg synchronisieren Telefon und Watch direkt über Bluetooth und schicken danach an die Cloud.

#WLAN-Aussetzer im Café

Sie arbeiten im Café. Das WLAN fällt 90 Sekunden in einer Pomodoro aus. Die Desktop-App lässt den Timer weiterlaufen. Der Aussetzer hat keine sichtbare Wirkung, der Eintrag hat die korrekten Start- und Endzeiten.

#Akku und Speicher

Offline-Modus ist sparsam:

  • Speicher: Die lokale Datenbank passt für die meisten Nutzerinnen in unter 50 MB, inklusive aller Einträge des letzten Jahres
  • Akku: Hintergrund-Sync nutzt iOS Background Tasks und Android WorkManager, beides drosselt zugunsten der Akku-Laufzeit; die Belastung liegt meist unter einem Prozent pro Tag
  • Netz: Beim Verbinden ist die Synchronisation ein Delta-Austausch (nur Änderungen), kein vollständiger Neuempfang

#Wenn die lokale Datenbank kaputtgeht

Die Mobile-Apps haben beim App-Start eine Wiederherstellungsroutine. Bei (sehr seltener) Beschädigung der lokalen Datenbank, meist nach extrem wenig Speicher oder einem harten Stromabbruch beim Schreiben:

  1. Die App erkennt die Beschädigung
  2. Sichert die defekte Datei für die Support-Analyse
  3. Holt ab Plus eine frische Kopie aus der Cloud
  4. Stellt den Timer-Status ebenfalls aus der Cloud her

Im Basic-Plan (ohne Cloud) ist die Wiederherstellung eingeschränkt. Die App versucht zu reparieren; nicht reparierbare Einträge wandern in eine "zu prüfen"-Liste.

#Muster, die sich bewähren

Dem Offline-Modus vertrauen. Der häufigste Fehler ist, die Erfassung aufzuschieben, weil "ich mach das, wenn ich wieder online bin". Die App regelt offline, Sie müssen nichts tun.

Nicht mitten im Eintrag zwischen Geräten wechseln. Einen Timer auf der Watch stoppen und denselben Eintrag offline am iPad bearbeiten geht meist, das Audit-Log wird aber lauter. Pro Tag ein Gerät bevorzugen.

Vor langen Offline-Strecken proaktiv synchronisieren. Direkt vor einem Flug die App einmal öffnen und die Meldung "Alles synchronisiert" abwarten. So startet das Gerät mit den frischesten Daten.

Den Sync-Indikator beachten. Ein kleines Wolken-Symbol in der Ecke zeigt den Stand: synchronisiert, läuft, geplant oder offline. Es ändert sich, sobald etwas ansteht.

#Häufige Fragen

Wie lange darf das Telefon offline sein? Unbegrenzt. Die Datenbank ist lokal und läuft nicht ab. Manche Anwenderinnen sind wochenlang offline; die Synchronisation holt sauber auf, sobald wieder Verbindung besteht.

Synchronisiert die Watch direkt oder über das Telefon? Beides. Apple Watch und iPhone tauschen sich direkt über Bluetooth aus, sobald beide in Reichweite sind. Das iPhone schickt zusätzlich an die Cloud, wenn es Internet hat. Eine LTE-Watch schickt direkt an die Cloud.

Gehen laufende Timer beim Beenden der App verloren? Nein. Der Timer-Status wird alle paar Sekunden in die lokale Datenbank geschrieben. Beim erneuten Öffnen läuft die App nahtlos weiter.

Können zwei Geräte gleichzeitig konfliktierende Timer-Stände haben? Kurz ja, die Konfliktregeln entscheiden aber innerhalb von Sekunden. Der unterlegene Timer schließt als fertiger Eintrag mit seinem letzten bekannten Stand.

Was ist mit der Browser-Erweiterung? Die Plasmo-Browser-Erweiterung ist ein reiner Online-Client. Sie liest aus der Cloud und schreibt in die Cloud. Eine lokale Datenbank gibt es dort nicht. Für Offline-Abdeckung die Mobile-Apps nutzen.

#Zusammenfassung

  • Mobile-Apps erfassen vollständig offline, jeder Eintrag mit echter Start- und Endzeit
  • Lokale Schreibvorgänge stehen in einer Warteschlange und gehen beim Verbinden raus
  • Konfliktlösung erfolgt pro Eintrag, das Audit-Log hält beide Versionen im Business-Plan fest
  • Offline-Erfassung in jedem Plan, Cloud-Sync ab Plus
  • Web-App und Browser-Erweiterung sind reine Online-Clients

#Wie geht es weiter

Bereit loszulegen?

Kostenlos für iOS und Android herunterladen

Zeit offline erfassen und nach dem Verbinden synchronisieren | Timesheet Blog | timesheet.io