← Retour aux réalisations Application mobile · iOS & Swift

Application mobile Géolocalisation iOS

Une application iOS native développée en Swift et SwiftUI dédiée à la capture GPS haute précision et au suivi d'itinéraires en temps réel.

PROJET

Le projet

GeolocationApp est une application iOS native développée en Swift et SwiftUI. Elle permet la capture précise de coordonnées GPS, le géocodage inverse automatique d'adresses, le suivi d'itinéraires en temps réel avec calcul de distance et de vitesse, ainsi que l'archivage local et le partage des données enregistrées.

Présentation du Projet & Architecture

GeolocationApp est une application iOS native développée en Swift et SwiftUI. Conçue pour offrir des performances optimales et une expérience utilisateur fluide, l'application combine la précision des services CoreLocation avec la puissance d'affichage cartographique de MapKit.

┌─────────────────────────────────────────────────────────────────────────────┐
│                   GeolocationApp iOS Native Architecture                    │
└──────────────────────────────────────┬──────────────────────────────────────┘
                                       │
           ┌───────────────────────────┼───────────────────────────┐
           ▼                           ▼                           ▼
  📍 CoreLocation Engine       🗺️ MapKit & SwiftUI         💾 Local Data Pipeline
  • High-precision GPS fixes   • Interactive vector maps   • JSON File persistence
  • Reverse geocoding worker   • MapPolyline route tracing • Documents directory
  • Authorization state flow   • Combine reactive bindings • Multi-channel export
            

Relevé GPS Haute Précision

Capture instantanée de la latitude, longitude, marge d'erreur, horodatage complet et métadonnées de l'appareil iOS.

Géocodage Inverse Automatique

Conversion automatique des coordonnées GPS brutes en adresses postales lisibles (rue, code postal, ville, pays).

Suivi de Trajet en Temps Réel

Enregistrement en direct des déplacements avec tracé polyligne interactif, mesure de la distance totale et vitesse instantanée.

Fonctionnalités Clés & Gestion des Données

Stockage Local Persistant

Sauvegarde sécurisée de l'historique des positions au format JSON dans le répertoire local Documents de l'application.

Partage Multi-canaux

Exportation rapide des données de position via Apple Maps, SMS pré-remplis ou e-mails structurés.

Gestion de l'Historique

Interface intuitive permettant le nettoyage sélectif des points GPS enregistrés via une action dédiée.

Architecture & Technologies

  • Langage & Interface: Swift 5 & Framework déclaratif SwiftUI
  • Services de Localisation: CoreLocation (gestion des permissions et récepteur GPS haute fréquence)
  • Cartographie: MapKit (cartes vectorielles et tracés MapPolyline temps réel)
  • Gestion d'État: Framework Combine (architecture réactive avec @Published et ObservableObject)
  • Persistance: Sérialisation JSON via le FileManager local (Documents Directory)

Structure du Code Source

Le projet repose sur une architecture modulaire garantissant une stricte séparation des responsabilités :

  • App/Point d'entrée: Configuration du cycle de vie de l'application (@main).
  • Models/Modèles de Données: Structures de données conformes aux protocoles Codable et Identifiable.
  • Services/Couche Services: Contrôleur de géolocalisation et gestionnaire du récepteur GPS.
  • Views/Couche Vues: Vues SwiftUI (Accueil, Trajet en temps réel, Historique et Composants carte).

Spécifications & Confidentialité Apple

L'application respecte les standards de confidentialité d'Apple en intégrant les déclarations d'usage requises dans le fichier Info.plist :

Clé de Permission Info.plist Finalité d'utilisation Niveau d'autorisation
NSLocationWhenInUseUsageDescription Autorise la capture GPS lorsque l'application est ouverte au premier plan. Indispensable
NSLocationAlwaysAndWhenInUseUsageDescription Permet l'enregistrement continu des trajets même en arrière-plan. Option Arrière-plan

Code Source & Dépôt GitHub

Consultez le code source complet de l'application iOS Swift/SwiftUI sur GitHub.

Consulter le code sur GitHub ↗