Synchronisation
Wenn du offline arbeitest, speichert Scripvio Änderungen in einer lokalen Warteschlange (SQLite auf dem Gerät). Sobald Netzwerk zurück ist, leert die App diese Warteschlange automatisch zum Server — in den meisten Fällen ohne manuelle Aktion.
Automatischer Start
Abschnitt betitelt „Automatischer Start“sequenceDiagram participant A as App participant L as Lokale Warteschlange participant S as Server Note over A: Netzwerkverlust A->>L: Notizen, Tagebuch, Übersicht in Warteschlange Note over A: Netzwerk erkannt A->>A: Banner Synchronisation … A->>S: flushOfflineQueue (Notizen) A->>S: flushOfflineQueue (Tagebuch) A->>S: flushOfflineQueue (Übersicht) S-->>A: Server-IDs, ACK A->>L: Warteschlange geleert oder reduziert| Ereignis | Verhalten |
|---|---|
| Lokale Änderung | Warteschlangen-Zähler +1 — Banner Änderungen warten …, wenn online ohne Sync |
| Netzwerk zurück | Banner Synchronisation mit dem Server …, dann Senden |
| Erfolg | Banner verschwindet (Warteschlange = 0) |
| Teil-/Gesamtfehler | Synchronisation fehlgeschlagen … — Warteschlange bleibt, Neuversuch beim nächsten Online |
Die App lauscht kontinuierlich auf Konnektivität (connectivity_plus).
Inhalt der Warteschlange
Abschnitt betitelt „Inhalt der Warteschlange“Die Warteschlange bündelt mehrere ausstehende Operationstypen:
| Bereich | Beispiel-Operationen |
|---|---|
| Notizen | Erstellungen (local_…), Patches, Löschungen |
| Sektionen | Erstellen, Aktualisieren, Sortieren |
| Notiz-Referenzen | Strukturierte Verse (local_verse_…) |
| Tagebuch | Erstellungen, Änderungen, ausstehende Veröffentlichung |
| Übersicht | Erstellte oder geänderte Lesungen, Gebete, Meditationen |
| Erinnerungen (Einstellungen) | Verschobene Speicherung bei API nicht verfügbar |
Ein globales Banner spiegelt die Summe dieser Warteschlangen wider (kein Zähler pro Typ in der UI).
Reihenfolge und Sendelogik
Abschnitt betitelt „Reihenfolge und Sendelogik“| Prinzip | Detail |
|---|---|
| Sequentielles Flush | Notizen → Tagebuch → Übersicht (bei jeder Wiederverbindung) |
| Erstellung vor Patch | Notiz local_… wird auf dem Server erstellt, bevor abhängige Patches |
| Netzwerkfehler | Zeilen bleiben in der Warteschlange (treatDioFailureAsDeferredSync: Timeout, 5xx, kein Netz) |
| Anfrage abgebrochen | Wird standardmäßig nicht in Warteschlange gestellt |
Du musst die Reihenfolge nicht manuell steuern; App und Server handhaben Abhängigkeiten (z. B. Bestätigung von Änderungen).
Nach erfolgreicher Synchronisation
Abschnitt betitelt „Nach erfolgreicher Synchronisation“| Effekt | Wo sichtbar |
|---|---|
local_… → Server-ID | Erstellen-Listen, Editoren |
| Ausstehende Veröffentlichung angewendet | Eintrag in Bibliothek nach Aktualisierung |
| Übersicht-Dashboard | Aktualisiert (Diagramm, Kalender) |
| Ausstehende Referenzen | „Ausstehend“-Badges entfernt |
Benachrichtigungen (optional)
Abschnitt betitelt „Benachrichtigungen (optional)“Je nach Benachrichtigungen-Kontoeinstellungen:
- Push: kann Sync-Ende oder Fehler signalisieren (Server-/Firebase-Konfiguration);
- E-Mail: ggf. Zusammenfassung nach Sync (Produktentwicklung).
Persönliche Übersicht-Erinnerungen sind lokal — unabhängig von dieser Inhalts-Sync.
Veröffentlichung und Sync
Abschnitt betitelt „Veröffentlichung und Sync“| Offline-Aktion | Nutzermeldung | Nach Sync |
|---|---|---|
| Notiz veröffentlichen | Veröffentlichung ausstehend (offline). | Notiz veröffentlicht in Bibliothek |
| Tagebuch veröffentlichen | Veröffentlichung ausstehend (offline). | Tagebucheintrag veröffentlicht |
Solange Veröffentlichung serverseitig nicht bestätigt ist, kann die Bibliothek den Inhalt nicht als veröffentlicht anzeigen.
Mehrere Geräte
Abschnitt betitelt „Mehrere Geräte“| Situation | Risiko |
|---|---|
| Dieselbe Notiz auf Telefon A (offline) und Tablet B (online) bearbeitet | Konflikt möglich — letzte Sync oder Serverregeln |
| Nur Lesen auf B während Arbeit auf A | B sieht alte Version bis Sync von A |
Synchronisationsfehler
Abschnitt betitelt „Synchronisationsfehler“| Symptom | Wahrscheinliche Ursache | Maßnahmen |
|---|---|---|
| Banner Synchronisation fehlgeschlagen … | API 5xx, Timeout, instabiles Netz | Online bleiben; App neu öffnen |
| Warteschlange sinkt nicht | Wiederholter Fehler bei einem Eintrag | Meldung notieren; Support |
| Daten lokal weiter sichtbar | Normal | Nichts „verloren“ auf dem Gerät, solange du nicht abmeldest |
| Nach erzwungener Offline-Abmeldung | Warndialog | Nur bestätigen, wenn du lokalen Verlust akzeptierst |
Editor-Tooltips können Wartet auf Synchronisation oder Sync fehlgeschlagen — weiter auf diesem Gerät gespeichert bei einzelnen Versen anzeigen.
Aktionen, die Sync erzwingen oder davon abhängen
Abschnitt betitelt „Aktionen, die Sync erzwingen oder davon abhängen“| Aktion | Bezug zur Sync |
|---|---|
| PDF exportieren | Bietet Vor dem Export synchronisieren, wenn Warteschlange nicht leer |
| Recherche → Vers hinzufügen | Notiz/Tagebuch muss bereits auf Server sein |
| Übersicht ↔ Tagebuch verknüpfen | Nach stabilen Server-IDs |
| Profil aktualisieren | Profil laden = Netzwerk |
Abmeldung und lokale Bereinigung
Abschnitt betitelt „Abmeldung und lokale Bereinigung“Bei Abmeldung kann Scripvio Cache und lokale Warteschlange dieses Geräts löschen (besonders bei Bestätigung offline mit nicht synchronisierten Daten).
Bei Anmeldung auf neuem Gerät: Download der Kontodaten + initialer Cache (Event-Typen usw.).
→ Profil
Prüfen, ob alles synchronisiert ist
Abschnitt betitelt „Prüfen, ob alles synchronisiert ist“| Indikator | „OK“-Zustand |
|---|---|
| Offline/Sync-Banner | Nicht sichtbar |
Notiz local_… | Ersetzt durch numerische / UUID-Server-ID |
| Veröffentlichung | In Bibliothek sichtbar |
| PDF-Export | Ohne vorherigen Sync-Dialog akzeptiert |
Bleibt das Banner Ausstehend online: App kurz im Vordergrund lassen oder neu öffnen.
Häufige Fragen
Abschnitt betitelt „Häufige Fragen“Manuell synchronisieren?
Kein dedizierter Button in der aktuellen UI — Wiederverbindung und App-Start starten den Flush neu.
Wie lange bleibt die Warteschlange?
Bis Erfolg, Abmeldung (Bereinigung) oder Neuinstallation.
Viel Datenvolumen?
Es werden Änderungen (JSON) gesendet, nicht der gesamte Katalog — auf Mobile vertretbar.
Hintergrund-Sync iOS/Android?
OS-abhängig; Scripvio nach Netzwerk-Rückkehr zu öffnen ist am zuverlässigsten.
Verwandte Leitfäden
Abschnitt betitelt „Verwandte Leitfäden“| Thema | Link |
|---|---|
| Offline-Modus | Offline-Modus |
| FAQ | Offline und Sync |
| Notizen | Entwurf und Veröffentlichung |
| Bibliothek | Entwürfe und Veröffentlichte |