iOS: dauerhafter Bild-Cache (Platte) + Vorladen, nur geaenderte Bilder neu

ProductImageCache haelt Bilder jetzt zusaetzlich auf der Platte (Caches-Verzeichnis) mit gemerkter image_version - so ueberleben Thumbnails den App-Neustart und sind in Listen sofort da, statt bei drei Vierteln zu fehlen. Beim Laden der Produktliste werden alle Bilder im Hintergrund sichergestellt; per image_version (aus einem Listen-Request) werden nur fehlende oder geaenderte Bilder geladen. Product-Model um imageVersion ergaenzt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-07-27 14:42:29 +02:00
parent 72256f4fe9
commit 89d8ba4eff
3 changed files with 85 additions and 17 deletions

View File

@@ -308,7 +308,11 @@ struct ProductListView: View {
private func load() async {
busy = true
defer { busy = false }
products = (try? await APIClient.shared.searchProducts(query, categoryId: categoryId)) ?? []
let geladen = (try? await APIClient.shared.searchProducts(query, categoryId: categoryId)) ?? []
products = geladen
// Bilder im Hintergrund sicherstellen nur fehlende/geänderte werden geholt,
// damit die Thumbnails auch nach App-Neustart sofort aus dem Cache kommen.
Task { await ProductImageCache.shared.preload(geladen) }
}
}