← Powrót do projektów Aplikacja mobilna · iOS & Swift

Aplikacja mobilna geolokalizacji iOS

Natywna aplikacja iOS stworzona w Swift i SwiftUI do precyzyjnego rejestrowania GPS i śledzenia tras w czasie rzeczywistym.

PROJEKT

Projekt

GeolocationApp to natywna aplikacja iOS opracowana w Swift i SwiftUI. Umożliwia precyzyjne pobieranie współrzędnych GPS, automatyczne odwrotne geokodowanie adresów, śledzenie tras w czasie rzeczywistym z obliczaniem odległości i prędkości, a także lokalne archiwizowanie i udostępnianie zarejestrowanych danych.

Przegląd projektu & Architektura

GeolocationApp to natywna aplikacja na system iOS stworzona w języku Swift z wykorzystaniem SwiftUI. Zaprojektowana z myślą o najwyższej wydajności i płynności działania, łączy precyzję usług CoreLocation z zaawansowaną wizualizacją map 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
            

Precyzyjny odczyt GPS

Natychmiastowe pobieranie szerokości i długości geograficznej, marginesu błędu, pełnych znaczników czasu i metadanych urządzenia iOS.

Automatyczne odwrotne geokodowanie

Automatyczna konwersja surowych współrzędnych GPS na czytelne adresy pocztowe (ulica, kod pocztowy, miasto, kraj).

Śledzenie trasy w czasie rzeczywistym

Rejestracja trasy na żywo z interaktywnym rysowaniem MapPolyline, pomiarem całkowitego dystansu i prędkości chwilowej.

Główne funkcje & Zarządzanie danymi

Trwały zapis lokalny

Bezpieczne zapisywanie historii pozycji w formacie JSON bezpośrednio w lokalnym katalogu Documents aplikacji.

Wielokanałowe udostępnianie

Szybki eksport współrzędnych przez Apple Maps, gotowe szablony wiadomości SMS lub sformatowane wiadomości e-mail.

Zarządzanie historią

Przejrzysty interfejs umożliwiający przeglądanie lub selektywne usuwanie zarejestrowanych punktów trasy.

Architektura & Zastosowane technologie

  • Język & Interfejs: Swift 5 & Deklaratywny framework SwiftUI
  • Usługi lokalizacyjne: CoreLocation (zarządzanie uprawnieniami i odbiornik GPS o wysokiej częstotliwości)
  • Mapy: MapKit (mapy wektorowe i rysowanie tras MapPolyline w czasie rzeczywistym)
  • Zarządzanie stanem: Framework Combine (reaktywna architektura oparta o @Published i ObservableObject)
  • Trwałość danych: Serializacja JSON z użyciem natywnego FileManager (katalog Documents)

Struktura kodu źródłowego

Projekt opiera się na modułowej architekturze zapewniającej separację odpowiedzialności:

  • App/Punkt wejścia: Konfiguracja cyklu życia aplikacji (@main).
  • Models/Modele danych: Struktury danych zgodne z protokołami Codable i Identifiable.
  • Services/Warstwa serwisów: Kontroler lokalizacji i zarządzanie odbiornikiem GPS urządzenia.
  • Views/Warstwa widoków: Widoki SwiftUI (ekran główny, trasa na żywo, historia i komponenty mapy).

Prywatność Apple & Uprawnienia

Aplikacja spełnia wytyczne prywatności Apple poprzez deklarację wymaganych wpisów w pliku Info.plist:

Klucz w Info.plist Cel wykorzystania Poziom uprawnienia
NSLocationWhenInUseUsageDescription Zezwala na odczyt pozycji GPS, gdy aplikacja jest aktywna na pierwszym planie. Wymagane
NSLocationAlwaysAndWhenInUseUsageDescription Umożliwia ciągłą rejestrację przebytej trasy również w tle. Opcja w tle

Kod źródłowy & Repozytorium GitHub

Zobacz kompletny kod źródłowy natywnej aplikacji iOS w Swift/SwiftUI na GitHubie.

Zobacz kod na GitHubie ↗