← Tilbake til prosjekter Mobilapplikasjon · iOS & Swift

iOS Geolokasjon Mobilapp

En innfødt iOS-applikasjon utviklet i Swift og SwiftUI for høypresisjons GPS-registrering og rutesporing i sanntid.

PROSJEKT

Prosjektet

GeolocationApp er en innfødt iOS-applikasjon utviklet i Swift og SwiftUI. Den muliggjør nøyaktig registrering av GPS-koordinater, automatisk omvendt geokoding av adresser, rutesporing i sanntid med beregning av avstand og hastighet, samt lokal arkivering og deling av lagrede data.

Prosjektoversikt & Arkitektur

GeolocationApp er en nativ iOS-applikasjon utviklet i Swift og SwiftUI. Utviklet for optimal ytelse og sømløs brukeropplevelse, kombinerer den nøyaktigheten til CoreLocation med kartfunksjonene i 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
            

GPS-sporing med høy presisjon

Umiddelbar registrering av breddegrad, lengdegrad, feilmargin, nøyaktige tidsstempler og enhetsdata.

Automatisk omvendt geokoding

Automatisk oversettelse av rå GPS-koordinater til lesbare gateadresser (gate, postnummer, by, land).

Rutesporing i sanntid

Live-opptak av ruten med interaktiv MapPolyline-tegning, beregning av total distanse og hastighet.

Hovedfunksjoner & Datahåndtering

Lokal vedvarende lagring

Sikker loggføring av posisjonshistorikk i JSON-format direkte i appens lokale Documents-mappe.

Flerkanals deling av data

Hurtigeksport av koordinater via Apple Maps, forhåndsutfylte SMS-meldinger eller e-post.

Historikkhåndtering

Brukervennlig grensesnitt for å inspisere lagrede GPS-punkter og slette oppføringer selektivt eller samlet.

Arkitektur & Teknologier

  • Språk & Brukergrensesnitt: Swift 5 & Deklarativt SwiftUI-rammeverk
  • Lokasjonstjenester: CoreLocation (rettighetshåndtering og høyfrekvent GPS-mottaker)
  • Kartvisning: MapKit (vektorkart og sanntids MapPolyline-rutetegning)
  • Tilstandshåndtering: Combine-rammeverket (reaktiv arkitektur med @Published og ObservableObject)
  • Datalagring: JSON-serialisering via den native FileManager (Documents-mappen)

Kildekodestruktur

Kildekoden følger en modulær arkitektur med klar ansvarsfordeling:

  • App/Startpunkt: Initialisering av applikasjonens livssyklus (@main).
  • Models/Datamodeller: Datastrukturer i samsvar med Codable- og Identifiable-protokollene.
  • Services/Tjenestelag: Posisjonskontroller og administrasjon av maskinvarens GPS-mottaker.
  • Views/Visningslag: SwiftUI-visninger (Hovedskjerm, Rutesporing, Historikk og Kartkomponenter).

Apple Personvern & Tillatelsesmatrise

Appen følger Apples personvernkrav ved å definere formålsbeskrivelser i Info.plist:

Info.plist tillatelsesnøkkel Bruksformål Autorisasjonsnivå
NSLocationWhenInUseUsageDescription Tillater GPS-sporing mens appen er åpen i forgrunnen. Påkrevd
NSLocationAlwaysAndWhenInUseUsageDescription Tillater kontinuerlig ruteopptak i bakgrunnen. Bakgrunnsvalg

Kildekode & GitHub-depot

Utforsk hele kildekoden for den native iOS-appen i Swift/SwiftUI på GitHub.

Se koden på GitHub ↗