# Audit — refonte majeure de KA iOS (2026-08-18) ## 1. État actuel du dépôt (v1.0.0 build 5) Architecture saine et déjà modulaire : `Core/` (Ecosystem config-driven 12 univers + mappings JSON→KAItem, APIClient cache disque, UniverseService, AgentService SSE, FavoritesStore, KAID natif, FilterCatalog), `Design/` (éditorial sharp, clair par défaut), `Features/` (Accueil vivant, Recherche universelle fan-out, grille Univers + explorateur générique + fiche, Carte v1, Favoris/collections, Profil, KA Agent, Vrai-Prix natif, menus resto), Widget « Le pouls », 8 tests d'adaptateurs. **À conserver tel quel** : le principe config-driven, le thème, KA Agent, KA ID, Vrai-Prix natif, favoris. ## 2. Écosystème (13 sites, harmonisés ka-ui le 2026-08-17) Identités et API connues et vérifiées (accents officiels d'ecosystem.json ; chaque site : /api/ + /api/stats + fiches). Découvertes clés pour la refonte : **bbox géographique réel** sur lou-ka/immo-ka/job-ka (`/api/*.geojson?bbox=w,s,e,n` — testé, filtre effectif, propriétés riches avec price_label/image) ; `images[]` multiples (Auto·Ka 5/fiche) ; menus resto (/api/restaurants/{uid}) ; estimation Vrai-Prix (/api/search + /api/estimate?id=). ## 3. Écarts sites ↔ app / faiblesses actuelles | Domaine | Constat | |---|---| | Carte | v1 rudimentaire : marqueurs standards, pas de clustering, pas de recherche par zone, pas de fiche compacte, pas de synchro liste↔carte, données limit=80 sans bbox | | Fiches | 1 seule image (les sites en ont jusqu'à 5+), pas de galerie plein écran/zoom, pas d'itinéraire, pas de similaires | | Recherche | pas d'autocomplétion/suggestions live, pas de tri, pas de recherches sauvegardées ni d'alertes, filtres actifs peu visibles, pas de partage | | Accueil | pas de nouveautés/populaires, pas de collections éditoriales, pas d'« à proximité », pas de reprise d'historique | | Historique | inexistant (ni éléments consultés, ni centre d'alertes) | | Navigation | Carte cachée derrière Univers ; Favoris ok mais pas d'accès Historique/Alertes | | Design | bon socle ; manquent tokens d'espacement formalisés, PriceBadge/SourceTag unifiés, iPad hors périmètre (choix : iPhone prioritaire) | ## 4. Nouvelle architecture / plan - **Navigation** : 5 onglets — Accueil · Recherche · Explorer (univers) · **Carte** (promue, priorité majeure) · Profil. Favoris/Historique/Recherches sauvegardées & alertes : sections de l'Accueil + hub dans Profil. - **Core+** : `KAItem.imageURLs[]` (galeries) ; `UniverseService.mapItems` (bbox geojson pour lou/immo/job, repli liste+filtre client pour resto/ sorti) ; `RecentsStore` (historique consulté, recherches sauvegardées avec compteur d'alertes = delta honnête du total API à l'ouverture — pas de fausses notifications) ; collections éditoriales = requêtes réelles. - **Carte majeure** : marqueurs-pilules avec prix, **clustering grille** maison (SwiftUI Map n'en a pas), dégroupage au zoom, chips par univers, « Rechercher dans cette zone », fiche compacte → fiche complète en sheet (état de carte conservé), mode liste/carte synchronisé, plafonds de performance (rendu ≤ ~150 marqueurs après clustering). - **Fiches** : galerie paginée + plein écran zoomable, itinéraire (Plans), similaires (même univers/ville), provenance datée. - **Recherche** : suggestions débouncées (locales + trouve-ka), tri (pertinence/prix), chips de filtres actifs, sauvegarde+alerte+partage. - **QA** : tests clustering/stores en plus des adaptateurs, previews, validation simulateur clair/sombre + petit/grand iPhone. Ordre d'exécution : Core+ → Carte → Recherche → Fiches → Accueil/Explorer/ Profil → tests/validation/TestFlight. Aucune WebView, aucune donnée fictive ; tout ce qui n'a pas d'API (avis, horaires) est simplement absent. --- ## 5. Livraison de la refonte (build 6, 2026-08-18) **Écrans reconstruits** : Carte (marqueurs-pilules prix, clustering grille + dégroupage au zoom, « Rechercher dans cette zone » bbox réel, fiche compacte → feuille avec carte intacte, bascule liste/carte, plafond 150 rendus) ; Fiches (galerie paginée multi-photos + plein écran zoomable, itinéraire Plans, semblables même ville, provenance) ; Recherche (tri pertinence/prix, sauvegarde + alerte, partage, filtres univers) ; Accueil (Reprendre : consultés + recherches sauvegardées avec +N, collections éditoriales réelles ×4, cartes photos) ; Profil (hub Favoris / Historique / Recherches & alertes avec deltas honnêtes et badge d'onglet). **Ajouts d'architecture** : KAItem.imageURLs, UniverseService.mapItems (geojson bbox) + total(), RecentsStore, ClusterEngine pur testé, Editorial. **Navigation** : Accueil · Recherche · Explorer · Carte · Profil. **Tests** : 12 (8 adaptateurs + clustering ×2, historique, alertes) — tous verts. **Validation visuelle** : iPhone 17e + 17 Pro Max, clair + sombre (docs/screenshots/refonte-*). **Hors périmètre assumé** : iPad (choix iPhone prioritaire), avis/horaires (aucune API — rien de simulé).