Flutter: Offline-Queue für Kontroll-Erfassung (Prompt 17-Härtung)
lib/offline/queue.dart (sqflite) analog zur React-PWA-Queue: enqueue statt Direkt-Senden, Status wartet/wird_uebertragen/fehler, Idempotenz, Sync bei Reconnect (connectivity_plus) + periodisch alle 15s. KontrollScreen gleicht per 2s-Reconciliation-Loop den Anzeigezustand ab, "Kein Netz"-Banner. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
+11
-7
@@ -2,7 +2,8 @@
|
||||
|
||||
Zweiter Client derselben API (Prompt 19 API-first-Prinzip) neben der React-PWA
|
||||
(`frontend/`). Deckt Login, Objektliste, Kontroll-Screen (Start/Sperre-Übernahme/
|
||||
Positionen/Abschluss/Abbruch) ab.
|
||||
Positionen/Abschluss/Abbruch) sowie eine Offline-Queue (Prompt 17-Härtung,
|
||||
`lib/offline/queue.dart`, sqflite) ab.
|
||||
|
||||
## Wichtig: Plattform-Ordner fehlen noch
|
||||
|
||||
@@ -44,13 +45,16 @@ Für iOS entsprechend in `ios/Runner/Info.plist`:
|
||||
<string>Wird zum Scannen von Objekt-/Geräte-Codes benötigt.</string>
|
||||
```
|
||||
|
||||
## Offline-Queue (Prompt 17-Härtung)
|
||||
|
||||
`lib/offline/queue.dart`: Positionen werden lokal in sqflite zwischengespeichert
|
||||
(`enqueue`), Status je Eintrag (`wartet`/`wird_uebertragen`/`fehler`), Sync bei
|
||||
Reconnect (`connectivity_plus`) und periodisch alle 15s - gleiches Muster wie
|
||||
`frontend/src/offline/queue.ts` (IndexedDB), nur die lokale DB ist anders.
|
||||
`KontrollScreen` gleicht per 2s-Reconciliation-Loop den Anzeigezustand mit der
|
||||
Queue ab, Abschluss ist gesperrt, solange Einträge offen sind.
|
||||
|
||||
## Bewusst noch nicht umgesetzt (Unterschied zur React-PWA)
|
||||
|
||||
- **Keine Offline-Queue**: anders als die PWA (`frontend/src/offline/queue.ts`,
|
||||
IndexedDB) sendet diese erste Fassung Positionen direkt; bei Netzwerkfehler
|
||||
erscheint nur eine "erneut versuchen"-Meldung, keine automatische
|
||||
Zwischenspeicherung/Sync bei Reconnect. Nachziehen, sobald die App über das
|
||||
Grundgerüst hinauswächst - gleiches Muster wie in der PWA übertragbar
|
||||
(z. B. `sqflite` oder `hive` statt IndexedDB).
|
||||
- Keine Tests (Flutter-Widget-/Integrationstests) - Sprintplan sieht Testphase 4
|
||||
primär für die PWA vor (Playwright); Android-Testabdeckung ist noch offen.
|
||||
|
||||
Reference in New Issue
Block a user