Edited at

Apple WatchとHealthKitで何ができるかを調査(主に心拍系)

More than 1 year has passed since last update.


HealthKitの概要


  • HealthStoreというHealthKitが管理している保存領域がある。


    • HealthStoreへは扱えるデータがあらかじめ決まっており、健康データならなんでも扱えるというわけではない。

    • HealthStoreへの書き込み、読み込みはユーザの許可がデータごとに許可が必要


      • ユーザは、心拍データは許可、血圧は拒否などデータ単位でのパーミッションの制御が可能



    • HealthStore内のデータは、iPhoneやApple Watch、サードパーティアプリが書き込みと読み込みができるという仕組み




HealthKitで扱えるデータ



  • HealthKit データ一覧(iOS 11までカバーされている)



  • HealthKitはあくまでもデータを取り扱えるだけなので、例えば睡眠分析をApple Watchが書き込むわけではない



    • AutoSleepのようなサードパーティアプリが心拍数などから睡眠状況を書き込んだりする




Apple Watchが書き込むデータ


  • 書き込み頻度は、Apple Watch 2(watchOS 4.3.2) と Apple Watch 4(watchOS 5.0)で差がみられなかった


心拍系


  • Watchアプリ内に設定があり、許可すればその後自動で書き込み続けられる

watch1.png


心拍数


  • 1分間あたりの心臓の鼓動の回数を示し、心血管の健康状態を表す(ヘルスケアアプリの説明より)

  • 概ね5分間隔くらいで書き込まれていた

ss1.png


安静時心拍数


  • 数分間の安静した状態またはリラックスした状態で測定される1分間あたりの平均心拍数(ヘルスケアアプリの説明より)

  • 1日に1回を限度に安静した状態を検知したときに書き込まれる?

ss2.png


歩行時平均心拍数


  • 1日を通して、安定したペースでの歩行時にApple Watchで測定された1分あたりの平均心拍数(ヘルスケアアプリの説明より)

  • 安定したペースでの歩行が検知されたら書き込まれる?

ss3.png


心拍変動


  • 1日に数回書き込まれていた

ss4.png


高心拍数の通知/低心拍数の通知


  • 安静時心拍数が選択した閾値より高い(or 低い)心拍数が10分間続いていることが検出された場合通知される(ヘルスケアアプリの説明より)

  • Watchアプリ内に設定があり、許可すればその後通知がされれば自動で書き込まれる

  • 低心拍数の通知はwatchOS 5.0から有効

watch2.png


アクティブエネルギー


  • 安静時消費エネルギーを超えるエネルギー燃焼量の推定値(ヘルスケアアプリの説明より)

  • 最短で1分ごとに書き込まれていた

  • 睡眠中などほぼ動いてなくて推定できない場合は書き込まれていなかった


    • デスクワークでほぼキーボードを打っているだけくらいの動きでも書き込まれていたため、Apple Watchをしている方の腕を完全に動かさないくらいしない限り推定されるような挙動だった



active.png


開発メモ


クエリ


バックグラウンドでHealthKitのデータにアクセスできるか


  • 端末がロックされているとHealthKitのデータにアクセスできない



  • Background Fetchでアプリが定期的にHealthKitのデータにアクセスしてデータを集計するというのはできないと考えた方良い(ロック解除した状態で他のアプリを操作しているときは可能だけど状況が限定的過ぎる)


    • アプリの起動時にアクセスや、明示的な更新ボタンなどを設ける必要がある




その他


禁止事項


開発者が「HealthKit APIで収集したエンドユーザーの健康情報を広告プラットフォームや情報ブローカー、データ再販業者に販売することが禁止」されたという。

ユーザーの許可を得たうえで「医療研究を目的にサードパーティーと」データを共有することは認められている。



HealthKitに関連するその他のフレームワーク


  • HealthKitと連携するAppleのフレームワークがいくつかある

  • 一般的なアプリでの利用を想定したものではなく、医学的な研究目的のためのフレームワークだと思われる


ResearchKit


このソフトウェアフレームワークで開発したアプリケーションを使うと、医学研究者が意味のある確実なデータを収集できるようになります。



CareKit


このソフトウェアフレームワークで開発したアプリケーションを使うと、みんなが自分の症状をもっと良く理解し、自分でそれを管理できるようになります。