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é).