盛り上がりもあり、残念感もあり... という状態ではありますが、まだまだあまり見えていない機能があります。
それは Workouts (ワークアウト)。
MyFitnessPalや、Humanなどを使われた方は、Healthの許可にWorkoutsという項目があったのを気づいた方もいらっしゃるかと思います。
標準の"ヘルスケア" アプリでActive Caloriesなどが確認できますが、唯一見えない項目が、Workouts です。
Workoutsは、ランニング、ウォーキング、サイクリング、ボクシング....などの運動種類毎に消費したカロリー、距離、時間を登録できる機能です。
私の想像ですが、来年の Apple Watch リリースとともに、新たなWorkouts専用標準アプリがでてくるのでは? と思っています。
そして、そこでヘルスケアの第二の注目時期がやってくるのではないか! と。(思いたい)
そんな謎多きWorkoutですが、今できる内容を探ってみました。
まずはどんな情報を保存できるのか、クラス構成から。
Workoutsは、Stepなどと兄弟レベルでのクラスです。
Stepなどではその値(数値)を登録する単純なものですが、Workoutsでは
・ワークアウトした時間
・消費カロリー合計
・距離合計
などの値が登録出来ます。
これだけだと、イメージにしくいので、実際のWorkoutをイメージしながら考えてみましょう。
こんな感じの運動したとします。
これを、いまヘルスケアアプリで見えている情報だけで表すと、
こんな感じの情報が並びます。
Active Calories, Distanceは簡略化のためまとめて書きましたが、本来ではもっと細かい時間単位で登録する形の方がBetter。
いま、iPhoneで自動登録されているStepやDistanceのように...。多分、Apple Watchではそう入れてくるはず。
さて、この情報から、たくさん動いたという結果はわかるものの、これだけの情報では、どんなワークアウトをしたのか?というのははっきりわかりません。
そこで、Workoutの情報を加えてみます。
・何時から何時までワークアウトしたのか。
・消費した全体のカロリーはどれくらいだったのか。
などがわかるようになり、ワークアウトの全体像が見えるようになります。
言い方を変えると、Workoutsの情報は全体像のみが登録された情報になっています。
ここでポイントとなるのが、
Active Calories, Distanceなどと、Workoutsの情報を紐付けて登録ができる
ということです。
逆に言うと、紐付けて登録してくれるか、してくれないか はアプリ依存です。
※いまWorkoutsを対応しているHuman, Argusのデータは紐付けていないようです...
また、Workoutsの情報のみ登録し、Active Caloriesなどは登録しない ということももちろん可能。
また、Workoutsの情報のみ登録し、Active Caloriesなどは登録しない ということももちろん可能。
実際に紐付ける処理はこのメソッドを使用します。
Workoutsの情報と紐付けて登録できる項目は、APIを見る限りは何でもOKそうな感じです。
紐付けて登録されることにより、ワークアウトの全体像が見えると、
前回のランニングでは時速○キロで走っていたけど、今回は○キロになった! とか、
前回の心拍数の増加は150%だったのが、140%になった! とか
がわかるようになるわけですね!!
Workoutsの種類(workoutActivityType)は、HKWorkoutActivityType に定義されています。自分で独自にTypeを作成することは出来ないようです。
また、そのActivityTypeの運動強度はどれくらいか? も特に定義が無いようなので、消費カロリーなどは自分で計算する必要があります。
今回は、Workoutsで登録できる内容を見てみました。
次回は、検索する方法について書こうと思います!