【iOS】HealthKitに関連するデータ型について
Healthkitとは
HealthKitとは、Appleが開発したiOSデバイス向けのフレームワークで、ヘルスケアとフィットネスのデータを統合して管理するためのプラットフォームです。HealthKitを使用することで、ユーザーは様々な健康データを複数のデバイスで一元管理することができます。例えば、身長・体重・歩幅・睡眠などの身体にまつわるデータを管理することができます。
HealthKitのデータを扱う上で、HealthKitのデータ型を理解する必要があります。
この記事では、HealthKitで用いられるデータ型に着目して、記事を記載していきます。
HealthKitで用いるデータ型について
HealthKitを用いてデータの読み書きを行う上で、データの型・関係性を理解する必要があります。
上図の通りになります。
- HKSampleは、HKObjectのサブクラス
- HealthSamples(HKQuantitySample,HKCategorySample etc)は、HKSampleのサブクラス
であることを理解しておく必要があります。
HKObjectとは?
HKObjectは、データにまつわるメタ情報を保持します。
プロパティ | 説明 |
---|---|
uuid | オブジェクトの一意な識別子 |
metadata | オブジェクトに関連付けられたメタデータ |
sourceRevision | アプリ・デバイスのバージョンに関連したデータ |
device | データが生成されたデバイスに関連したデータ |
HKObject自体はメタデータのみを扱います。実際のヘルスデータは、HKObjectを継承したサブクラスで管理します。
HKSampleとは?
HKSampleはデータの開始時間と終了時間に関連付けられた不変のデータを保持します。
プロパティ | 説明 |
---|---|
startDate | サンプルの開始日時 |
endDate | サンプルの終了日時 |
hasUndeterminedDuration | サンプルの期間が未確定かどうかを示す |
sampleType | サンプルのタイプ |
HealthSamplesとは?
HealthSamplesとは、HKObject・HKSampleを継承したサブクラス(HKQuantitySample,HKCategorySample etc)を指します。
HealthSamplesのデータ構造は全て似た構造を持っています。
項目 | 日本語 | 例 |
---|---|---|
DataType | データ項目 | 運動、歩行距離、音量、疼痛 etc |
Value | データの値 | ウォーキングorランニング、623m、101dBA SPL、中等度 etc |
Time | 時間・時間帯 | 各データの時間・時間帯 |
Metadata | メタデータ | 運動時の天気、運動が屋内or屋外、記録したデバイス、データ取得したアプリ etc |
4つの項目が存在するHealthSamplesデータを用いることによって、データの保存・取得が可能になります。
HealthSamplesの各データ型について
HKSampleを継承したHealthSamplesのデータ型は、4つが存在します。
データタイプ | 説明 | 例 |
---|---|---|
HKQuantitySample | 数値と単位を扱う。 | 身長、心拍数、消費された食事エネルギー etc |
HKCategorySample | リストから選択された1つのデータを扱う。 | 睡眠データ、疼痛 etc |
HKCorrelationSample | 2つ以上のデータを1つの値に結合する。 | 食物摂取、血圧 etc |
HKWorkout | 単一の身体活動に関する情報を扱う。 | 継続時間、合計距離、合計消費エネルギー etc |
他にもSamplesが存在する。継承元が一部異なることなるものの、HKObject・HKSampleを継承したサブクラスです。
データタイプ | 説明 | 継承元 |
---|---|---|
HKHeartbeatSeriesSample | 心拍の情報を扱うデータを扱う。 | HKSeriesSample |
HKCDADocumentSample | 医療情報にまつわるドキュメントデータを扱う。 | HKDocumentSample |
HKWorkoutRoute | 運動時の時のユーザーの経路のデータを扱う。 | HKSeriesSample |
これらのデータ型を用いて、ヘルスケアに関連するデータを読み書きすることが可能になります。
以上がHealthKitを実装する上で、理解しておくべきデータ型となります。
最後に
記事内に間違い・気になる部分ありましたら、コメントいただけると大変うれしいです。
良かったと思ったら、記事へのいいね・Xのフォローよろしくお願いいたします。
個人でアプリを作成しているので、良かったら覗いてみてください。
参考
Discussion