Offline ist ein Zustand, kein Fehler. Was nötig war, damit die App sofort öffnet, ganz ohne Umweg über das Netz.

Die Annahme, die wir nicht treffen wollten

Die meisten Apps beruhen auf einer stillen Annahme: Das Netz ist da. Ist es nicht da, sehen Sie ein Ladesymbol, einen Knopf zum erneuten Versuchen oder einen Bildschirm, auf dem steht, dass etwas schiefgelaufen ist. Bei einem Familienorganizer versagt diese Annahme genau dann, wenn die App am nützlichsten wäre. Im Untergeschoss eines Supermarkts. Im Bus. In einem Dorf, in dem das Netz mit dem Wetter kommt und geht.

Also haben wir früh eine Regel aufgestellt: Die App muss mit etwas Nützlichem öffnen, ganz ohne Anfrage ans Netz. Keine zwischengespeicherte Fehlerseite, sondern die echten Listen, Aufgaben und Budgets des Haushalts, deutlich gekennzeichnet mit dem Zeitpunkt der letzten Synchronisierung.

Was „offline öffnen“ wirklich bedeutet

Es klingt nach Zwischenspeichern. Es ist mehr als das. Drei Dinge müssen stimmen.

  • Der letzte bekannte Stand liegt auf dem Handy, und ihm wird vertraut. Jede Liste, jede Aufgabe und jedes Budget, das ein Mitglied sehen darf, wird lokal gespeichert, sobald es ankommt. Beim Öffnen liest die App zuerst diesen Speicher und baut die Ansicht daraus auf. Das Netz wird danach gefragt, falls es da ist.
  • Offline gemachte Änderungen sind echte Änderungen. Einen Artikel im Laden ohne Empfang abzuhaken ist keine Anfrage, die später scheitern könnte. Es wird lokal festgehalten, als erledigt angezeigt und in eine Warteschlange gestellt. Die Warteschlange wird in der richtigen Reihenfolge abgearbeitet, sobald die Verbindung zurück ist.
  • Wenn zwei Personen dasselbe ändern, muss es gut ausgehen. Hakt jemand im Laden einen Artikel ab, während jemand anderes ihn zu Hause umbenennt, müssen beide Änderungen erhalten bleiben. Wir haben uns für ein eindeutiges Zusammenführen entschieden: Pro Feld gilt, was zuletzt geschrieben wurde, und die Regel ist in App und Server dieselbe, sodass beide nie zu unterschiedlichen Ergebnissen kommen. Echte Konflikte, die seltenen Fälle, in denen die Regel nicht entscheiden kann, werden einem Menschen gezeigt, statt still aufgelöst zu werden.

Warum wir nachfragen, statt auf Nachrichten zu warten

Echtzeit-Updates laufen meist über eine dauerhaft offene Verbindung zum Server. Bei begrenztem Datenvolumen und über die Proxys, durch die viele Mobilfunknetze den Verkehr leiten, ist eine offene Verbindung empfindlich und teuer. Wir haben uns für etwas Älteres und Unspektakuläreres entschieden: Die App fragt den Server „Gibt es etwas Neues seit Version 412?“, solange ein Bildschirm offen und die App im Vordergrund ist. Hat sich nichts geändert, ist die Antwort zwei Felder lang. Hat sich etwas geändert, kommen nur die Änderungen zurück.

Das ist nicht glamourös, aber es funktioniert in jedem Netz, das wir getestet haben, kostet fast nichts, wenn im Haushalt Ruhe herrscht, und hört ganz auf, wenn die App im Hintergrund ist.

Anmelden ohne gute Verbindung

Dasselbe Denken gilt, bevor Sie überhaupt drin sind. Wer sich einmal angemeldet hat, kann die App ohne Server wieder öffnen, weil die Sitzung lokal gespeichert und geprüft wird, bis sie erneuert werden kann. Die Registrierung per Telefonnummer schickt einen sechsstelligen Code per SMS, weil das auch auf Handys funktioniert, die nie einen App-Store gesehen haben, und der Code wird auf dem Server ebenso vollständig geprüft wie auf dem Handy.

Was es uns gekostet hat

Offline zuerst gibt es nicht umsonst. Jeder Bildschirm muss mit einem veralteten Zustand gestaltet werden, mit einem leeren Zustand und mit einem Zustand „in der Warteschlange, noch nicht gesendet“. Jeder Schreibvorgang muss so gebaut sein, dass er sich gefahrlos wiederholen lässt, damit eine erneut abgearbeitete Warteschlange keine Ausgabe doppelt erfasst. Tests dauern länger, weil die interessanten Fehler in den Lücken zwischen den Verbindungen stecken.

Wir glauben, dass diese eine Entscheidung am stärksten prägt, wie sich KinHolo anfühlt. Die App ist ruhig, weil sie Sie nie auf sich warten lässt.

Möchten Sie den nächsten Beitrag?

Ein kurzer Brief im Monat. Sonst nichts.

Auf die Warteliste