ランニングやサイクリングなどの走行ログを GPS で記録する iOS アプリの SwiftUI 実装版です。
かつて Objective-C で開発していた Runlogger を題材に、Flutter 版に続いて SwiftUI / MapKit で再実装したものです。SwiftUI 習得とマルチプラットフォーム対応の比較検証を目的としています。
- GPS ログ記録 — 位置情報を取得し、走行軌跡を記録
- 地図表示(Map 画面) — 現在位置にピンを表示。直近20地点を巡回表示。拡大・縮小に対応
- 走行データ(Run 画面) — 走行時間・走行距離・速度・標高をリアルタイム表示
- グラフ表示 — 速度・標高の変化をグラフで可視化(表示切り替え可能)
- CSV 保存 — 走行データを CSV ファイルとして書き出し
- TabView で Map 画面 / Run 画面を切り替え
- UI: SwiftUI
- 地図: MapKit
- アーキテクチャ: MVVM
- 状態管理:
@EnvironmentObject(EnvViewModel)/@Publishedによるリアクティブなデータバインディング - アイコン: SF Symbols
- 対応 OS: iOS 16.4 以降
RunLoggerSWUI/
├── RunLoggerSWUIApp.swift エントリポイント
├── ContentView.swift TabView(Map / Run)
├── Views/
│ ├── MapView.swift 地図・現在位置・軌跡表示
│ └── RunView.swift 走行データ・グラフ表示
├── Models/
│ ├── Gps.swift 位置情報の取得
│ └── GpsLogData.swift 走行ログデータ
└── ViewModels/
└── EnvViewModel.swift アプリ全体の状態管理
Xcode で RunLoggerSWUI.xcodeproj を開いてビルド・実行してください(実機で GPS を使うには位置情報の許可が必要です)。
- runlogger — 同アプリの Flutter 版
- 作者の他のプロダクト: github.com/amru195704
MIT License。学習・検証目的のサンプルですが、自由に使用してもらって問題ありません(自己責任でご利用ください)。
自由に参照・使用して構いませんが、自己責任でご利用ください。本ソースを使用した結果いかなるトラブルが発生しても、作者は一切の責任を負いません。