Aktuell sind Laden und Verarbeiten der Daten ein Vorgang. Wenn neue Daten verfügbar sind, werden diese geladen und unmittelbar verarbeitet. In dieser Zeit kann der Benutzer keine Aktion durchführen, da der Vorgang abgeschlossen werden muss (Abb. 1).
Des Weiteren kann es vorkommen, dass zwei Prozesse ein Datenobjekt gemeinsam benutzen und somit blockieren.
Abbildung 1: Screenshot Laden und Verarbeiten von Daten
Anforderungen
Beschleunigung des Lade- und Verarbeitungsvorgangs
Parallele Ausführung möglich machen
Performance der App soll nicht verschlechtert werden
Lösungsansatz
Laden und Verarbeiten der Daten trennen
Laden der Daten im Hintergrund
Verarbeiten der Daten nach Benutzeraktion im Vordergrund
Umsetzung
Der "Sync Manager" wurde dazu komplett neu geschrieben.
Folgende Fälle wurden beachtet:
Bei der Installation wird ein komplettes Laden der Daten erfolgen(ohne User)
Beim Login werden weiteren ggf. fehlenden Daten geladen
Sprache: Nachladen aller Daten der Sprache
In den Einstellungen kann der User
Alle Daten neu Laden". Dies ist ein Initiales Laden (inkl User)
"Daten aktualisieren". Dies ist ein Laden der Änderungen (Abb. 2)
Synchronisation im Hintergrund (alle 2 Stunden): Laden der Änderungen
Abbildung 2: Screenshot Aktualisierung der Daten
Neuerungen sind es bei 4.b) und 5.):
Hier prüft die App im Hintergrund die Änderungen (wie bisher) und lädt die Daten unmittelbar vom PIA (neu). Es werden 5 Requests gleichzeitig gestartet. Der User erhält danach eine Nachricht, welche Daten neu zur Verfügung stehen und kann das Mapping (also das "Einpflegen" in die App) starten.
Das Mapping passiert dann im Vordergrund.
Abbildung 3: Screenshot Fetching und Mapping in neuer Ansicht
Add Comment