- ニュース

写真:Graham Bower/Cult of Mac
iPhone のヘルスケア アプリから一部のワークアウト データが消えていることに気づいたことがありますか?
Appleのヘルスケアアプリは、すべてのフィットネスアプリがデータを保存・共有するためのハブとして機能するように設計されています。つまり、どのアプリで記録したかに関係なく、すべてのアクティブカロリーが合計されるということだと思うかもしれません。しかし、実際はそれほど単純ではありません。ただし、いくつかの隠れた設定を調整することで、表示内容をカスタマイズできます。
このことに気づいたのは、パートナーのマーティン・アルゲステンと共同開発しているフィットネスアプリ「Reps & Sets」にHealthKit対応を導入した後のことです。ユーザーから、なぜカロリーが表示されないのかと尋ねられるようになりました。
この問題を調査したところ、バグを発見しました(ええと、近日中に修正予定です)。しかし、問題はそれだけではありませんでした。ヘルスケアアプリのカロリー表示方法に、より根本的な問題があることが判明しました。
私のカロリーはどこに行くのでしょうか?
HealthKit をサポートするアプリを使用してワークアウトを記録する場合、アクティブカロリーを Apple のヘルスケア アプリに保存することを選択できます。アクティブカロリーは「すべてのデータを表示」リストに表示されます。
ただし、特定の日に記録されたカロリーの合計は、アクティブカロリーグラフに表示される合計と一致しない場合があります。さらに、Apple Watchも使用している場合は、サードパーティ製アプリで追加されたカロリーは合計に含まれない可能性があります。
これは、Reps & Sets の多くのユーザーが遭遇していた問題であり、私はその理由を解明しようと試みました。
マニア向け警告: これから HealthKit の核心部分について説明します...
すべてのカロリーがカウントされないのはなぜか
ヘルスケア アプリは、iPhone の内蔵 M8 モーション コプロセッサ、Apple Watch (お持ちの場合)、HealthKit 経由のサードパーティ アプリなど、さまざまなソースからカロリー データを取得します。
これらのカロリーをすべて合計できないのは、重複するカロリーが含まれている可能性があるためです。例えば、Apple Watchは運動による消費カロリーを常にモニタリングしています。Apple Watchを装着した状態でReps & Setsなどのサードパーティ製アプリを使ってワークアウトを記録すると、実質的に同じワークアウトが2回記録されることになります。
ヘルスケア アプリが両方のワークアウトのデータを単純に合計すると、カロリーが二重にカウントされ、毎日の消費カロリーの合計が誤解を招くことになります。
ヘルスケアアプリの隠れた優先事項
この問題を解決するため、ヘルスケアアプリはデータソースの優先順位を設定します。デフォルトでは、手動で入力したカロリーが最優先され、次にApple Watch、iPhoneのM8コプロセッサ、そして最後にHealthKit経由でサードパーティ製アプリからのデータが使用されます。
つまり、Apple Watch を使用している場合、「すべてのデータを表示」を選択するとサードパーティのフィットネス アプリのデータは表示されますが、アクティブ カロリーの合計には含まれません。

データソースの管理
嬉しいことに、ヘルスケアが情報源の優先順位を変更することができます。ただし、このオプションは非常に隠れた場所にあります。見つけるには少し苦労するかもしれません。「データを共有」という、やや直感に反するメニューオプションの下にあります。
「データを共有」画面にはデータソースのリストが表示されます。右上の「編集」ボタンをタップすると、これらのソースを並べ替えることができ、サードパーティ製アプリをApple Watchよりも優先させることができます。
これにより、アクティブカロリーの合計が大幅に変更される可能性があります。ヘルスケアアプリは引き続きApple Watchのデータを使用しますが、優先的に選択したサードパーティのデータとインテリジェントに組み合わせるようになります。
そのため、サードパーティ アプリからのカロリーが欠落していた場合でも、この機能を使用してカロリーを復元できます。
しかし、しばらくこれらの設定をいじってみたものの、Appleがこれらのカロリー源をどのように計算して合計しているのか、いまだに理解できていません。数字が全く合わないのです。おそらくアプリが二重カウントを補正しようとしているのでしょう。つまり、これらの合計値が実際にどれほど正確かは分かりません。
アクティブカロリーはムーブリングのカロリーとは異なります
カロリーに関する混乱のもう 1 つの原因は、ヘルスケア アプリのアクティブカロリーの合計が、Apple Watch のアクティビティ アプリの Move リングのカロリーの合計と同じではないことです。
これは、ヘルスケア アプリとは異なり、アクティビティ アプリには複数のソースからのデータが含まれず、Apple Watch からのデータのみが使用されるためです。
今年後半にwatchOS 2がリリースされると、サードパーティ製アプリからムーブリングにカロリーを追加できるようになりますが、いくつか重要な制限事項があります。カロリーは新しいワークアウトAPIを使用するWatchアプリからのみ追加されますが、このAPIは内蔵ワークアウトアプリでサポートされているエクササイズの種類に制限されています。そのため、他の種類のフィットネスアプリから追加されたカロリーは、ムーブリングの合計には加算されません。
単純すぎるでしょうか?
私のアプリのユーザーからカロリーはどうなったのかと聞かれたら、私は全て説明できます。でも、そうする必要はないんです。
Appleは製品をシンプルで直感的に使えるように努めています。しかし、時にそれが過剰な単純化につながることもあり、AppleのフィットネスアプリエコシステムにおけるActive Caloriesはまさにその典型だったと思います。クパティーノのコーディングの達人たちは、カロリー計算の複雑さをうまく隠蔽しましたが、その過程で新たな問題を生み出してしまいました。
その結果、ヘルスケアアプリとアクティビティアプリは消費カロリーの推定値に矛盾が生じることがあります。そして、それはシンプルでも直感的でもありません。
注意: iOS 9 では、アクティブカロリーはアクティブエネルギーに名前が変更され、カロリーまたはキロジュールで測定できるようになりました。