💊

Apple HealthKit 2025 まとめ〜Apple Watch から取れるデータとリアルタイム性をざっくり整理〜

に公開

そもそも HealthKit とは?

  • iPhone/Apple Watch が集めた健康・フィットネス情報を一元管理するフレームワーク
  • アプリは 読み取り/書き込み権限を個別にリクエストしてデータを扱う(例:心拍だけ読む、歩数を書くなど)

https://developer.apple.com/documentation/healthkit/authorizing-access-to-health-data?utm_source=chatgpt.com

注目カテゴリ別・取得できる主要データ

カテゴリ 主なデータ型 & 説明 取得タイミング
バイタル - 心拍数 heartRate(日常計測・ワークアウト中は高頻度)
- 心拍変動 heartRateVariabilitySDNN(HRV;ストレスや疲労の指標)
- 血中酸素 oxygenSaturation
- 呼吸数 respiratoryRate
- 手首温度 wristTemperature
心拍はほぼリアルタイム。HRVは主に安静時に数回/日。その他は定期測定。(apple.com, developer.apple.com)
睡眠 - SleepAnalysis(就床〜起床の区間)
- 睡眠ステージ(レム/コア/深い)
就寝後はバックグラウンド計測。起床してiPhoneがロック解除された後にまとめて同期されることが多い。(apple.com, apple.com)
ストレス/メンタル - HRVの低下で身体ストレス傾向を推定(アプリ独自アルゴリズム)
- Mindful Session(呼吸・瞑想)
- State of Mind(気分・PHQ-9/GAD-7自己記録)
HRVはバックグラウンド取得。Mindful/State of Mindはユーザー操作時に記録。(support.apple.com, apple.com, yahoo.com)
運動量(アクティビティ) - 歩数 stepCount歩行距離上った階数
- 消費エネルギー(アクティブ/安静)
- エクササイズ時間スタンド達成
- HKWorkout(種目、時間、距離、カロリーなど)
Apple Watch が随時更新。ObserverQueryでほぼリアルタイム監視可能。(support.apple.com, support.apple.com)
異常通知 - 高/低心拍イベント
- 不規則心拍リズム通知(AFib 兆候)
- 睡眠時無呼吸通知(watchOS 11 新機能)
イベント発生時にHealthKitへHKCategorySampleとして記録。睡眠時無呼吸は夜間検出後に登録。(apple.com, support.apple.com)

ECG(心電図)データ HKElectrocardiogram も読み取り専用で取得可能。日本はwatchOS 7.6以降で正式対応済。
https://support.apple.com/en-us/118391?utm_source=chatgpt.com

薬管理・生理周期・視力・聴覚など周辺ヘルスデータも拡充中。
https://support.apple.com/ja-jp/guide/iphone/iph811670c81/ios
https://support.apple.com/en-us/120356?utm_source=chatgpt.com

開発で押さえるリアルタイム性の勘所

心拍数

フォアグラウンドで HKAnchoredObjectQuery を継続実行すれば数秒〜十数秒遅延で取得可能。

睡眠データ

起床直後にまとめて書き込まれるため、即時通知は期待しない設計が無難。

ObserverQuery + BackgroundDelivery

歩数・カロリー・心拍イベントなど、増分があればバックグラウンドでも呼び出し可能(ただし低電力時や省電力設定で遅延の可能性あり)

まとめ & 次の一歩

  • 睡眠・心拍・ストレス(HRV)・運動量はApple WatchとHealthKitで網羅可能。
  • リアルタイムで欲しいのは心拍/アクティビティ系。睡眠・メンタルはバッチ更新前提で。
  • **MCP(Model Context Protocol)**と組み合わせれば、いろいろ楽しいことができそうですね!

Discussion