← プロジェクトに戻る モバイルアプリケーション・iOS & Swift

iOS Geolocation Mobile App

高精度のGPS追跡とリアルタイムルートモニタリングのために、SwiftとSwiftUIで開発されたネイティブiOSアプリケーション。

プロジェクト

プロジェクト

GeolocationAppは、SwiftとSwiftUIで開発されたネイティブiOSアプリケーションです。高精度のGPS座標キャプチャ、住所の自動逆ジオコーディング、速度と距離の計算を伴うリアルタイムルート追跡、ローカルアーカイブとデータ共有を可能にします。

プロジェクト概要 & アーキテクチャ

GeolocationAppは、SwiftとSwiftUIで開発されたネイティブiOSアプリケーションです。高いパフォーマンスと快適な操作性を追求し、CoreLocationの高精度な位置情報機能と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データキャプチャ

緯度・経度・精度誤差・完全なタイムスタンプ・iOSデバイスメタデータを瞬時に取得。

自動逆ジオコーディング

生のGPS座標を、人間が読みやすい住所(番地・郵便番号・市区町村・国名)へ自動変換。

リアルタイムルートトラッキング

MapPolylineを用いた移動ルートのリアルタイム描画、総移動距離、瞬時速度の測定。

主要機能 & データ管理

ローカルストレージへの永続化

位置情報履歴をJSONファイルとしてアプリ固有のDocumentsディレクトリへ安全に自動保存。

マルチチャンネル共有機能

Apple Maps連携、テンプレート付きSMS、フォーマット済みメールによる位置情報のワンタップ共有。

履歴データ管理

記録されたGPSログを一覧確認し、個別または一括で削除できるクリーンな管理UI。

アーキテクチャ & 採用技術

  • 開発言語 & UI: Swift 5 & 宣言型SwiftUIフレームワーク
  • 位置情報サービス: CoreLocation(権限ライフサイクル管理と高頻度GPSリスナー)
  • 地図描画: MapKit(ベクターマップ & リアルタイムMapPolyline描画)
  • 状態管理: Combineフレームワーク(@PublishedおよびObservableObjectによるリアクティブ構成)
  • データ永続化: ネイティブFileManagerによるJSONシリアライズ(Documentsディレクトリ)

ソースコード構成

関心の分離(SoC)を徹底したモジュール型アーキテクチャを採用:

  • App/エントリポイント: アプリケーションのライフサイクル初期化(@main)。
  • Models/データモデル: CodableおよびIdentifiableプロトコルに準拠したスキーマ設計。
  • Services/サービス層: 位置情報コントローラーおよびハードウェアGPSレシーバーの管理。
  • Views/ビュー層: SwiftUIビュー群(ホーム、リアルタイム追跡、履歴、地図UIコンポーネント)。

Appleプライバシー & 権限マトリクス

Info.plist内に必須の利用目的を明記し、Appleのプライバシー基準を厳格に遵守:

Info.plist 権限キー 利用目的の説明 権限レベル
NSLocationWhenInUseUsageDescription アプリがフォアグラウンドで開いている間のGPS測定を許可。 必須
NSLocationAlwaysAndWhenInUseUsageDescription バックグラウンド状態での継続的な移動経路の記録を許可。 バックグラウンドオプション

ソースコード & GitHubリポジトリ

Swift/SwiftUIによるネイティブiOSアプリケーションの全ソースコードをGitHubで公開しています。

GitHubでコードを見る ↗