banyaro-ios/BanYaroGo/Views
rene a2646a18ef 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen
App-Review-Fix (Guideline 2.1 WeatherKit):
- OneShotLocation: deterministisches async resolve() mit 10s-Timeout statt
  onChange-Lauschen; WetterView lädt bei fehlendem Standort einen Berlin-Fallback
  → kein ewiges Hängen bei "Hole Standort…", WeatherKit ist immer sichtbar.

Offline-Lesen (SwiftData):
- CachedRoute/CachedDiaryEntry/CachedImage + CachedAsyncImage: Touren, Tagebuch
  und Fotos werden cache-first geladen und sind offline verfügbar.
- Cache wird bei Logout/401 geleert (RootView), kein Durchschimmern fremder User.

Offline-Speichern (Outbox):
- PendingRoute/PendingRoutePhoto: Tour inkl. unterwegs hinzugefügter Fotos wird
  offline lokal gesichert und automatisch hochgeladen (Touren-Tab + App-Start).
- Touren-Liste zeigt offline gesicherte Touren mit "wird hochgeladen"-Badge.

FinishWalkSheet:
- Dismiss-Schutz: Speichern-Dialog lässt sich nicht mehr wegwischen — eine
  aufgezeichnete Tour geht nicht mehr durch Runterwischen verloren.

Wetter:
- Ortslabel (Reverse-Geocoding; Fallback "Berlin · Näherung").
- Saubere Offline-Meldung statt rohem networkError.

Aufräumen:
- Doppeltes "Gassi-Treffen" im Mehr-Tab entfernt.
- Veraltete Phase-1/2-Texte neu getextet.
- Tote DogsListView gelöscht (Hund-Wechsel läuft über den Heim-Picker).
2026-06-02 19:37:30 +02:00
..
AddDiaryEntrySheet.swift Tagebuch: Geolocation + Reverse-Geocoding beim Anlegen 2026-05-30 12:45:18 +02:00
AddWalkSheet.swift Gassi: Tabs Treffen + Stamm-Gassis wie in der PWA 2026-05-30 14:02:42 +02:00
AusgabenView.swift Ausgaben-Kategorien dynamisch vom Backend 2026-05-30 12:31:59 +02:00
CachedAsyncImage.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00
CameraPicker.swift Phase 3.5: Pause/Resume, SwiftData-Persistenz, Kamera-Capture, Fotos zu bestehender Tour 2026-05-30 10:52:15 +02:00
DiaryDetailView.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00
EditRouteSheet.swift Phase 3.6: B+C+D komplett + HealthKit Sync 2026-05-30 11:19:53 +02:00
ErsteHilfeView.swift Sechs Offline-Features: Erste Hilfe, Ausgaben, Wetter, Gassi-Zeiten, Giftköder, Verlorene 2026-05-30 12:03:24 +02:00
FinishWalkSheet.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00
GassiTreffenDetail.swift Gassi-Treffen-Detail: Fokus auf 'hinfinden' 2026-05-30 14:16:43 +02:00
GassiTreffenList.swift Gassi-Treffen-Liste: Karte oben mit Treffpunkt-Pins (analog Verlorene/Giftköder) 2026-05-30 14:21:38 +02:00
GassiView.swift Gassi: Tabs Treffen + Stamm-Gassis wie in der PWA 2026-05-30 14:02:42 +02:00
GassiZeitenView.swift Gassi: Tabs Treffen + Stamm-Gassis wie in der PWA 2026-05-30 14:02:42 +02:00
GiftkoederView.swift Karten: Auto-Zentrieren beim Erscheinen via .onAppear (.onChange bleibt) 2026-05-30 13:42:17 +02:00
GPXImportSheet.swift GPX-Import via Teilen-Menü und 'Öffnen mit' 2026-05-30 14:34:40 +02:00
HeimView.swift HeimView: Backend ist Source-of-Truth fürs Tagesfoto 2026-05-30 19:09:35 +02:00
LoginView.swift Statistik weg, Mehr entrümpelt, Gassi-Zeiten korrekt gerahmt 2026-05-30 13:04:35 +02:00
MainTabView.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00
MiniRouteMap.swift Phase 3.6: B+C+D komplett + HealthKit Sync 2026-05-30 11:19:53 +02:00
RootView.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00
RouteDetailView.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00
RoutesListView.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00
SettingsView.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00
ShareSheet.swift Phase 3.6: B+C+D komplett + HealthKit Sync 2026-05-30 11:19:53 +02:00
StatisticsView.swift Phase 3.6: B+C+D komplett + HealthKit Sync 2026-05-30 11:19:53 +02:00
TagebuchView.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00
TrackingView.swift Phase 4.A.1: Live Activity + Dynamic Island für laufende Gassi-Tour 2026-05-30 11:35:43 +02:00
VerloreneHundeView.swift Karten: Auto-Zentrieren beim Erscheinen via .onAppear (.onChange bleibt) 2026-05-30 13:42:17 +02:00
WetterView.swift 1.1: Offline-Cache + Outbox für Touren/Tagebuch, WeatherKit-Fix, Aufräumen 2026-06-02 19:37:30 +02:00