SPB Git

spb/vrai-prix-ios Public

App iOS native de Vrai-Prix — estimation immobilière transparente pour le Québec (SwiftUI, MapKit, Swift Charts)

Swift 100%
ZIP
NameLast commitUpdated
docs README — captures d'écran de l'app (générées par les tests XCUITest) 2 h ago
scripts Vrai-Prix iOS 1.1.0 — app native SwiftUI du moteur d'évaluation 2 h ago
VraiPrix Ignorer les .DS_Store 2 h ago
VraiPrixUITests Vrai-Prix iOS 1.1.0 — app native SwiftUI du moteur d'évaluation 2 h ago
.gitignore Ignorer les .DS_Store 2 h ago
ExportOptions.plist Vrai-Prix iOS 1.1.0 — app native SwiftUI du moteur d'évaluation 2 h ago
project.yml Vrai-Prix iOS 1.1.0 — app native SwiftUI du moteur d'évaluation 2 h ago
README.md README — captures d'écran de l'app (générées par les tests XCUITest) 2 h ago
README.md

Icône Vrai-Prix

# Vrai-Prix iOS

La vraie valeur de votre propriété, sans boîte noire — dans votre poche. App iOS native de Vrai-Prix, le moteur d'évaluation immobilière transparent pour le Québec.

Swift Version TestFlight Tests XcodeGen

L'app consomme l'API de production (/api/search, /api/nearby, /api/estimate, /api/report, /api/report/pro) — 3 747 008 unités d'évaluation, 745 119 ventes réelles, MdAPE 11,0 %. Aucune donnée embarquée : le serveur vrai-prix reste la source de vérité.

# Fonctionnalités

Onglet Description
🔎 Estimer Recherche d'adresse (FTS5) avec autocomplétion débouncée → estimation complète : valeur, fourchette P10–P90, indice de confiance A–D, fusion 65 % modèle hédonique / 35 % comparables, historique 2021→2026 (Swift Charts), caractéristiques du rôle
🗺️ Carte Recherche par carte (MapKit) : propriétés avoisinantes, géolocalisation, fiche d'aperçu avec estimation 2026 → estimation complète
🎛️ Manuelle Municipalité + type + caractéristiques facultatives, sans adresse exacte
📄 Rapports PDF standard (3 p.) et professionnel bancaire (6 p.), visionneuse PDFKit + partage
📖 À propos Chiffres de validation IAAO, méthodologie en cinq étapes, conformité Loi 25

Chaque comparable affiche ses ajustements en dollars (conditions de marché, superficie, âge) et son prix ajusté — la transparence totale du moteur, fidèle au site.

# Captures d'écran

Recherche Estimation Comparable déplié
Recherche d'adresse Estimation complète Ajustements en dollars
Carte Fiche carte Manuelle
Recherche par carte Fiche d'aperçu Estimation manuelle

Captures générées automatiquement par les tests XCUITest contre l'API de production.

# Design

Identité « éditorial sharp » du site : papier #f5f3ee, encre #141814, accent rouge vif #ff5148, bordeaux #9e2a25 — bordures encre 1,5 pt, ombres décalées dures, display uppercase, micro-étiquettes mono. Polices embarquées : Space Grotesk, Inter, JetBrains Mono. L'icône est générée depuis le wordmark par scripts/make-icon.swift (CoreGraphics + CoreText, 1024×1024 sans alpha) :

bash
swift scripts/make-icon.swift VraiPrix/Fonts VraiPrix/Assets.xcassets/AppIcon.appiconset/icon-1024.png

# Build

Le projet Xcode est généré par XcodeGen — seul project.yml est versionné :

bash
xcodegen generate            # (re)génère VraiPrix.xcodeproj
open VraiPrix.xcodeproj      # ou en CLI :
xcodebuild -project VraiPrix.xcodeproj -scheme VraiPrix \
  -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO build

# Tests de fumée bout en bout

Trois tests XCUITest contre l'API de production (captures dans /tmp/vp-ui-*.png) : recherche → estimation, carte → point → fiche → estimation, estimation manuelle.

bash
xcodebuild -project VraiPrix.xcodeproj -scheme VraiPrix \
  -destination 'platform=iOS Simulator,name=iPhone 17 Pro' CODE_SIGNING_ALLOWED=NO test

# Distribution (TestFlight / App Store)

Bundle id ai.spboucher.vraiprix, signature automatique (équipe 3YM54G49SN).

bash
xcodebuild -project VraiPrix.xcodeproj -scheme VraiPrix \
  -destination 'generic/platform=iOS' -configuration Release \
  -archivePath /tmp/VraiPrix.xcarchive archive -allowProvisioningUpdates
xcodebuild -exportArchive -archivePath /tmp/VraiPrix.xcarchive \
  -exportOptionsPlist ExportOptions.plist -allowProvisioningUpdates   # method: app-store-connect, destination: upload

manageAppVersionAndBuildNumber gère le numéro de build à l'upload. L'icône sans canal alpha, ITSAppUsesNonExemptEncryption et le texte d'usage de la localisation (français) sont déjà conformes pour la revue.

# Auteur

Simon-Pierre Bouchercontact@spboucher.ai

Estimations statistiques à titre indicatif — ne remplacent pas une évaluation par un évaluateur agréé (OEAQ). Voir conditions et méthodologie.