Project

General

Profile

Actions

Feature #20

open

Homescreen: Vorausschauendes Bild-Caching (Tinder-Ansicht)

Added by Bot User 26 days ago.

Status:
Offen
Priority:
Hoch
Category:
Foto-Jagd
Start date:
07/12/2026
Due date:
% Done:

0%

Estimated time:
Kategorie:
Fehlermeldung

Description

Kontext

Die Tinder-artige Entdecken-Ansicht (src/components/foto-jagd/hunt-dashboard.tsx, Datenquelle src/app/api/foto-jagd/spots/discover/route.ts) lädt Spot-Bilder aktuell reaktiv. Bei langsamer Verbindung entstehen Wartezeiten zwischen den Karten.

Ist-Zustand

  • Bilder werden geladen, wenn die Karte erscheint.
  • Kein Vorratspuffer, keine positionsabhängige Nachladung.

Soll / Anforderungen

  • Vorpuffer: ~20 Bilder vorab in den Cache laden (Bild + Metadaten).
  • Nachladen: Sinkt der Puffer auf 5 verbleibende Karten, im Hintergrund 15 weitere anhand der aktuellen Position nachladen.
  • Positionswechsel: Bei größerer Abweichung der GPS-Position (Schwelle z. B. > 500 m) sofort ein frisches Bild für die aktuelle Karte laden und den Cache anhand der neuen Position neu befüllen (alte, weit entfernte Kandidaten verwerfen).
  • Bereits gesehene/abgelehnte Spots respektieren (siehe excludeSeenSpots, excludeRejectedSpots in den Settings).

Akzeptanzkriterien

  • Beim Durchswipen sind Bilder in >90% der Fälle sofort sichtbar (vorgeladen).
  • Nachladen passiert unsichtbar im Hintergrund, kein UI-Ruckeln.
  • Nach deutlichem Standortwechsel zeigt die App zeitnah lokale Spots.

Technische Hinweise

  • Client-Puffer als Queue (State/Ref) in hunt-dashboard.tsx.
  • discoverSpots(lat, lon, limit, {radiusM, accuracyM}) in src/lib/foto-jagd/client-api.ts unterstützt bereits Limit/Radius.
  • Bild-Prefetch via new Image() oder <link rel=prefetch>; Distanzberechnung Haversine.
  • Session-Puffer ggf. mit hunt-session API abgleichen (fetchHuntSession/saveHuntSession).

No data to display

Actions

Also available in: Atom PDF