Skip to content

amru195704/RunloggerSWUI

Repository files navigation

RunLoggerSWUI

ランニングやサイクリングなどの走行ログを GPS で記録する iOS アプリの SwiftUI 実装版です。

かつて Objective-C で開発していた Runlogger を題材に、Flutter 版に続いて SwiftUI / MapKit で再実装したものです。SwiftUI 習得とマルチプラットフォーム対応の比較検証を目的としています。

解説記事: SwiftUIで作るランニングロガー(y42u.net)

主な機能

  • GPS ログ記録 — 位置情報を取得し、走行軌跡を記録
  • 地図表示(Map 画面) — 現在位置にピンを表示。直近20地点を巡回表示。拡大・縮小に対応
  • 走行データ(Run 画面) — 走行時間・走行距離・速度・標高をリアルタイム表示
  • グラフ表示 — 速度・標高の変化をグラフで可視化(表示切り替え可能)
  • CSV 保存 — 走行データを CSV ファイルとして書き出し
  • TabView で Map 画面 / Run 画面を切り替え

技術構成

  • UI: SwiftUI
  • 地図: MapKit
  • アーキテクチャ: MVVM
  • 状態管理: @EnvironmentObjectEnvViewModel)/ @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 を使うには位置情報の許可が必要です)。

関連

ライセンス

MIT License。学習・検証目的のサンプルですが、自由に使用してもらって問題ありません(自己責任でご利用ください)。

注意

自由に参照・使用して構いませんが、自己責任でご利用ください。本ソースを使用した結果いかなるトラブルが発生しても、作者は一切の責任を負いません。

About

RunloggerSWUI

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages