← Volver a los proyectos Aplicación móvil · iOS & Swift

Aplicación móvil de geolocalización iOS

Una aplicación iOS nativa desarrollada en Swift y SwiftUI para la captura GPS de alta precisión y el seguimiento de rutas en tiempo real.

PROYECTO

El proyecto

GeolocationApp es una aplicación nativa para iOS desarrollada en Swift y SwiftUI. Permite la captura precisa de coordenadas GPS, el geocodificado inverso automático de direcciones, el seguimiento de rutas en tiempo real con cálculo de distancia y velocidad, así como el archivado local y el intercambio de datos guardados.

Descripción del Proyecto & Arquitectura

GeolocationApp es una aplicación nativa para iOS desarrollada en Swift y SwiftUI. Diseñada para ofrecer el máximo rendimiento y una experiencia de usuario fluida, combina la precisión de los servicios CoreLocation con las capacidades cartográficas 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
            

Captura GPS de Alta Precisión

Lectura instantánea de latitud, longitud, margen de precisión, marcas de tiempo completas y metadatos del dispositivo iOS.

Geocodificación Inversa Automática

Conversión automática de coordenadas GPS en direcciones postales legibles (calle, código postal, ciudad, país).

Seguimiento de Rutas en Tiempo Real

Registro de trayectos en directo con trazado de polilíneas interactivas, cálculo de distancia total y velocidad instantánea.

Funcionalidades Clave & Gestión de Datos

Almacenamiento Local Persistente

Guardado seguro del historial de posiciones en formato JSON directamente en el directorio local Documents de la aplicación.

Exportación Multicanal

Exportación rápida de datos de posición a través de Apple Maps, SMS preconfigurados o correos electrónicos estructurados.

Gestión del Historial

Interfaz intuitiva para consultar de forma selectiva o borrar los puntos GPS registrados.

Arquitectura & Tecnologías

  • Lenguaje & UI: Swift 5 & Framework declarativo SwiftUI
  • Servicios de Ubicación: CoreLocation (ciclo de permisos y receptor GPS de alta frecuencia)
  • Cartografía: MapKit (mapas vectoriales y trazado MapPolyline en tiempo real)
  • Gestión de Estado: Framework Combine (arquitectura reactiva con @Published y ObservableObject)
  • Persistencia: Serialización JSON mediante el FileManager local (Directorio Documents)

Estructura del Código Fuente

El proyecto se fundamenta en una arquitectura modular que garantiza la estricta separación de responsabilidades:

  • App/Punto de Entrada: Configuración del ciclo de vida de la app (@main).
  • Models/Modelos de Datos: Estructuras de datos conformes a los protocolos Codable e Identifiable.
  • Services/Capa de Servicios: Controlador de geolocalización y gestor del receptor GPS.
  • Views/Capa de Vistas: Vistas en SwiftUI (Inicio, Ruta en tiempo real, Historial y Componentes de mapa).

Privacidad de Apple & Matriz de Permisos

La aplicación cumple con los estándares de privacidad de Apple al declarar las descripciones de uso en el archivo Info.plist:

Clave de Permiso en Info.plist Finalidad de Uso Nivel de Autorización
NSLocationWhenInUseUsageDescription Permite la captura GPS mientras la app está activa en primer plano. Obligatorio
NSLocationAlwaysAndWhenInUseUsageDescription Habilita la grabación continua de trayectos incluso en segundo plano. Opción en Segundo Plano

Código Fuente & Repositorio GitHub

Explora el código fuente completo de la app nativa de iOS en Swift y SwiftUI en GitHub.

Ver Código en GitHub ↗