HealthKit の仕組み
Apple ヘルスケアがデータをどのように保存し、整理しているかについての技術的な解説です。
HealthKit とは?
HealthKit は、Apple のヘルスケアおよびフィットネスデータのためのフレームワークです。以下の役割を果たす中央リポジトリとして機能します:
- 複数のソース(Apple Watch、iPhone、サードパーティアプリ)からのヘルスケアデータを保存する
- すべてのヘルスケア指標に対して一貫したデータ形式を提供する
- 詳細なレベルでプライバシー権限を管理する
- 許可されたアプリ間でのデータ共有を可能にする
データの保存方法
HealthKit はデータをタイプ別のサンプルとして保存し、通常は以下の内容を含みます:
| コンポーネント | 説明 | 例 |
|---|---|---|
| 開始/終了時間 | 測定が行われた日時 | 2025-01-15 08:30:00 |
| 値 + 単位 | 測定値そのもの | 72 bpm |
| ソースとデバイス | どのアプリ/デバイスが記録したか | Apple Watch Series 9 |
| メタデータ | 追加のコンテキスト | ワークアウトの種類、デバイスの装着位置 |
サンプルタイプ
数値サンプル (Quantity Samples)
単位を持つ数値的な測定値です。
例: - 歩数 (steps) - 心拍数 (bpm) - 血糖値 (mg/dL) - 距離 (meters) - 消費エネルギー (kcal)
カテゴリーサンプル (Category Samples)
定義されたセットからの列挙値です。
例: - 睡眠ステージ(レム、コア、深い、覚醒) - 月経周期(少ない、普通、多い) - マインドフル時間(実施、未実施)
関連サンプル (Correlation Samples)
一緒に保存される関連サンプルのグループです。
例: - 血圧(収縮期 + 拡張期) - 食事(1回の食事からの複数の栄養素)
ワークアウトサンプル (Workout Samples)
構造化されたアクティビティセッションです: - アクティビティタイプ(ランニング、水泳、サイクリングなど) - 開始および終了時間 - 総消費エネルギー - 距離(該当する場合) - ルートデータ(記録されている場合)
臨床記録
地域や医療提供者が対応している場合: - 検査結果 - 予防接種記録 - 薬物療法 - 臨床文書
データソース
HealthKit は複数のソースからデータを受け取ることができます:
Apple デバイス
- Apple Watch - 心拍数、アクティビティ、ワークアウト、心電図、睡眠、血中酸素ウェルネス
- iPhone - 歩数、距離、上った階段(モーションセンサー)
サードパーティデバイス
- スマート体重計(体重、体組成)
- 血圧計
- 血糖値計
- 睡眠トラッカー
手動入力
- Apple ヘルスケアアプリへのユーザーによる直接入力
- サードパーティアプリを経由した入力
医療機関との連携
- 対応している提供者からの臨床記録
- 検査結果(利用可能な場合)
ソースの優先順位
複数のソースが同じ指標を記録した場合、HealthKit は表示するデータを決定するためのルールを使用します:
- ユーザーによる手動入力が通常最も優先されます
- 装着型センサーからのデバイスデータ
- サードパーティアプリからのデータ
ソースの優先順位は、Apple ヘルスケアの設定で管理できます。
プライバシーアーキテクチャ
HealthKit のプライバシーモデルは、その設計の根幹です:
タイプ別の権限
アプリはヘルスケアデータ全体ではなく、特定のデータタイプへのアクセスを要求します。以下の許可が可能です: - 読み取り専用 - 書き込み専用 - 読み書き両方 - 許可しない
ユーザーによる制御
- 「設定」>「ヘルスケア」>「データアクセスとデバイス」でいつでも権限を再確認可能
- いつでもアクセスを撤回可能
- どのアプリがどのデータタイプにアクセスしたかを確認可能
デバイス内保存
- ヘルスケアデータは iPhone 内にローカルに保存されます
- デバイスのパスコードで暗号化されます
- iCloud 設定で「ヘルスケア」が有効になっている場合にのみ iCloud にバックアップされます
主な HealthKit 識別子
各データタイプには一意の識別子があります。例:
| メトリクス | HealthKit 識別子 |
|---|---|
| 心拍数 | HKQuantityTypeIdentifier.heartRate |
| 歩数 | HKQuantityTypeIdentifier.stepCount |
| 睡眠分析 | HKCategoryTypeIdentifier.sleepAnalysis |
| VO₂ Max | HKQuantityTypeIdentifier.vo2Max |
| 血圧 | HKCorrelationTypeIdentifier.bloodPressure |
