App

Synchronisation, Konfliktloesung und die richtigen Datenmodelle

Vermeintlich hat heute jeder LTE, doch genau dort, wo es zaehlt, im Aufzug, im Tunnel, auf dem Betriebsgelaende, stimmt das selten.

Eine App, die nur online laeuft, ist wie ein Werkzeug, das aufhoert zu funktionieren, sobald das Licht ausgeht. Fuer B2B-Apps im Aussendienst oder in Produktionshallen ist Offline-Faehigkeit oft kein Nice-to-have, sondern ein Dealbreaker.

Wer schon mal in einem Aufzug feststeckte oder auf einem Betriebsgelaende mit schlechtem Empfang arbeitete, weiss: Konnektivitaet ist alles andere als garantiert.

Drei technische Herausforderungen

Synchronisation wird komplex, sobald zwei Nutzer offline denselben Datensatz veraendert haben. Konfliktloesung braucht dann eine Strategie, „Last write wins“ ist einfach, aber manchmal falsch, „Merge“ ist aufwaendiger, aber naeher an der Realitaet. Und das Datenmodell muss Offline-First von Anfang an mitdenken, sonst wird es nachtraeglich zu einer sehr grossen Baustelle.

Bewaehrte Muster

CRDTs, Conflict-free Replicated Data Types, synchronisieren sich von Haus aus konfliktfrei und eignen sich fuer manche Anwendungsfaelle ideal. Event Sourcing beziehungsweise das Outbox-Pattern speichert Aenderungen als Events und uebertraegt sie bei Konnektivitaet, mit voller Nachvollziehbarkeit. Fuer viele B2B-Apps praktikabel: ein Read-heavy Cache kombiniert mit einer Write-Queue, die beim Reconnect abgearbeitet wird.

Werkzeuge

SQLite mit lokaler Replikation, Realm oder WatermelonDB fuer React Native, Hive oder sqflite fuer Flutter. Fuer die Sync-Schicht: PocketBase, CouchDB und PouchDB oder eine selbst gebaute Event-Queue.

Checkliste: Offline-Anforderungen in der Discovery-Phase geklaert, Synchronisations- und Konfliktstrategie definiert, Datenmodell fuer Offline-First ausgelegt, Sync-Indikatoren in der UI sichtbar, Tests mit simuliertem Netzabbruch durchgefuehrt, Edge Cases fuer Konflikte dokumentiert.

Ein Blick auf die Nutzerperspektive

Fuer Nutzer ist entscheidend, dass sie jederzeit erkennen koennen, ob ihre Aenderungen bereits synchronisiert sind oder noch lokal warten. Ein kleines Icon oder eine Statuszeile, die zwischen „gespeichert“, „wird synchronisiert“ und „Synchronisation fehlgeschlagen“ unterscheidet, verhindert Verunsicherung und doppelte Eingaben. Besonders wichtig ist ein klarer Umgang mit Konflikten: Statt eine Aenderung stillschweigend zu ueberschreiben, sollte die App im Zweifel beide Versionen anzeigen und den Nutzer entscheiden lassen, welche gelten soll, zumindest bei geschaeftskritischen Datensaetzen wie Bestellungen oder Vertraegen.

Eure App muss auch offline zuverlaessig laufen? markom.digital entwickelt Offline-First-Apps fuer B2B-Anwendungsfaelle, von der Architektur bis zum fertig synchronisierten Produkt.

Weitere Beiträge