Appleヘルスケアを使うメリット
iPhone標準アプリの「ヘルスケア」では、例えば毎日の歩数を表示できる。
歩数カウントはiPhone本体の機能として、自動で計測されているため。
それ以外にも、AppleWatchを持っている場合は心拍数、ヘルスケア連動の健康系アプリを使えば、体重や睡眠時間なども表示される。
Apppleヘルスケア連動のアプリは色々あるが、例えばスマホ連動の体重計なら、そのスマホアプリで体重を見れると同時に、Appleヘルスケアにも体重データを連係できることが多い。
体重計メーカーのアプリでデータを見れるのに、更にAppleヘルスケアにもデータを保存する意味はあるか?
Appleヘルスケアで体重データを管理するメリットは、例えば体重計のメーカーを変えても過去データを引き継げる点。
また、Appleヘルスケアに取り込んだデータはiCloudにバックアップされるので、iPhoneの機種変をしてもずっとデータが引き継がれる。
一方で、iPhoneをやめてAndroidに移行する場合は、データが引き継げないデメリットもある。
その場合でも、Appleヘルスケアのデータは取り出してエクセルで扱うこともできるが、用途は限定的で、扱いが面倒ではある。
ヘルスケアのデータを書き出す
iPhoneからヘルスケアのデータを取り出すのは、簡単にできる。
まずは、ヘルスケア・アプリの右上アイコンを押下。
次に「すべてのヘルスケアデータを書き出す」を選択。
書き出したデータは色んな手法でエクスポートできるが、ここでは簡単な「メール添付で自分に送る」ということで。
データは圧縮されたzipファイルになっている。
解凍すると、xmlファイルが2つあり、データが入っているのは「export.xml」の方。
中身はxmlなので扱いが面倒だが、とりあえずでいうとエクセルで開ける。
export.xmlをエクセルで開く
「export.xml」をエクセルにD&Dすると、以下のメッセージがでるが、「読取り専用のブックとして開く」を選択する。
エクセルで開くと、ずらっとデータが表示される。
以下はエクセルのフィルタ機能で、体重(HKQuantityTypeIdentifierBodyMass)のみを表示したもの。
以下はフィルタ機能で、睡眠時間(HKCategoryTypeIdentifierSleepAnalysis)を表示したもの。
なお睡眠時間は、Appleヘルスケア対応の目覚ましアプリ「Sleep Cycle」のデータである。
ということで、エクセルで開くこと自体は簡単。
ちなみに「HKQuantityTypeIdentifierBodyMass」などデータの意味は、Appleのドキュメントを検索すれば出てくるので、それほど難しくない。
Specify the kind of data used in HealthKit
データはやたらたくさん入っているが、使うのは主に以下の列かと思います。
ヘッダー行 | 意味 |
---|---|
/Record/@type | データの種類 (体重・歩数、etc) |
/Record/@value | 値 |
/Record/@unit | 単位 (kg・km・count、etc) |
/Record/@creationDate | 記録データが作られた日(≠計測日) |
/Record/@startDate | 記録開始日(=計測日) |
/Record/@sourceName | 記録したアプリ(ヘルスケア連動元) |
/Record/MetadataEntry/@key | メタデータのkey(フィルタリング用) |
例えばアプリ「SleepCycle」で記録されたデータは「/Record/@sourceName」列が「SleepCycle」になっているので、それをフィルタリングすれば、そのデータのみ表示できる。
体重だけを表示したい場合は、「/Record/@type」列を「HKQuantityTypeIdentifierBodyMass」でフィルタする。
エクセルで扱う場合の問題点
まず第一に、エクセルでは最近のデータしか開けない場合がある。
例えば自分のexport.xmlには、2013年から2021年のデータが入っていたが、エクセルでは2019年~2021年のデータしか表示できなかった。
これはエクセルの表示行数の限界というより、データ構造がそのあたりで変わったからなんじゃないかと思われるが、ちゃんとはチェックしてない。
次に、データが「記録した単位」で記録されていること。
例えば歩数データであれば、一定時間単位で歩数が記録されており、例えば「ある1日の歩数」を知ろうとすると、複数の行を合算しないといけない。
その程度ならエクセルで何とかなるレベルではあるが、もう少し凝ったデータになるとメンドイことになる。
歩数はともかく、睡眠時間とかはエクセルだけで扱うのが難しそうだった。
そういう意味では「継続的な計測」系は扱いが面倒で、体重のような計測がワンショットの記録は扱いやすい。
あと、メタデータを含めて複数行で表示されること。
例えば体重であれば、エクセル上では同じ計測データが複数行で表現される。
その場合、「/Record/MetadataEntry/@key」でフィルタしてやれば、解決する。
最後に、エクスポートしたデータを、再びiPhoneにインポートする方法がないこと。
ヘルスケアデータはiCloudに保存され、機種変更しても記録は引き継がれる。
そのため「再びiPhoneにインポートする」というシーンはあまりなさそうではあるが、一応、可能・不可能でいえば、今のところ「インポートする方法はない」ということになる。
まとめ
体重計など、計測が1回のデータは、エクセルでも簡単に扱える。
一方で「歩数」や「睡眠時間」のように、継続的に計測されるタイプのデータは、ちょっと工夫しないとエクセルで扱うのが面倒。
また、ここ数年分のデータしか表示できない可能性アリ。
ほい。
そんな感じ。