【Swift】HealthKitの血中酸素濃度(OxygenSaturation)を取得して表示する

HealthKitの血中酸素濃度(OxygenSaturation)データを取得・表示する方法について記載します。

Xcodeで HealthKit の設定を行っていない場合は、以下の設定も行ってください。

HealthKitデータの読み込み・書き込みの設定方法について

血中酸素濃度データの取得方法

環境

・iOS14.4

・Xcode 12.4

デモ

最後に記載しているコードを実行すると以下のように表示されます。

ポイント1:権限のリクエスト

権限のリクエストには “HKQuantityTypeIdentifier.oxygenSaturationを指定します。

ポイント2:血中酸素濃度データの取得

権限のリクエストが成功した場合、データを取得することができます。
次のように、HKSampleQuery を生成し実行するとデータを取得できます。

サンプルコード

サンプルコードは次の構成になっています。

ContentView.swift
取得データをリストで表示します。
ContentViewModel で格納される dataSource配列 の値を参照してリストを生成します。

ContentViewModel.swift
血中酸素濃度データを取得します。
取得したデータは、1データずつ ListRowItem構造体に格納し、dataSource配列に追加します。

ListRowItem.swift
取得したデータを格納するための構造体です。

ContentView.swift

ContentViewModel.swift

ListRowItem.swift