前提条件
・Xcode11.3
・Swift5
【2020年8月3日】Xcode11.6 で動作確認
br>
br>
HealthKit を使う準備
HealthKit を追加
対象のプロジェクトを起動後、以下の手順で HealthKit を選択してください。
br>
br>
Info.plist を編集
HealthKit を追加したら、今度は Info.plist に以下の2つを追加します。
1 2 3 4 |
<key>NSHealthShareUsageDescription</key> <string>読み込み許可を求めるメッセージ</string> <key>NSHealthUpdateUsageDescription</key> <string>書き込み許可を求めるメッセージ</string> |
上記のメッセージですが、13文字以上ないといけません。
13文字未満だとクラッシュしますのでご注意ください!
プロジェクト内で使えるようにする準備はこれで完了です!
予備知識をぶっこみましょう
扱う数字の「単位」
身体を管理するだけでも、身長は「cm」、体重は「kg」、体温は「℃」、体脂肪率は「%」、基礎代謝は「kcal」などがあります。
それだけじゃなく、国によっても違ってきます。
ローカライズなんかした日には…((( ;゚Д゚)))
そんな問題を解決するために、単位の相互変換をサポートしている HKUnit というものがあります。
HealthKit のデータは単位も一緒に管理され、HKUnit は必ず扱うことになりますので、知っておきましょう!
br>
br>
「数字」の管理
身長「170」、体重「60」、体温「35」、体脂肪「20」などの数字は、HKQuantity で管理することができます。
このオブジェクトを扱うには、先程の「単位」と組み合わせることが必須です。
ここまできたらお察しですが、HKUnit を「kg」にして「60」という数字を管理する HKQuantity を生成してあと、その HKQuantity に対して「lb(ポンド)」を与えることで、kg → lb へ自動変換してくれます!
br>
br>
なんの「数字」なのか
先程の「60」という数字、流れや数字的に「体重」と分かりますが、HealthKit からすると、何の数字なのか分かりません。
それを管理するための HKObjectType というオブジェクトがあります。
種類が超絶多いので、気になる方は ドキュメント 見てください。笑
br>
br>
保存して管理するために
HKUnit/HKQuantity/HKObjectType を組み合わせることで、HealthKit で保存して管理できるようになります。
そのオブジェクトが HKSample です。
今はこの流れだけ分かっていたら大丈夫です。
さいごに
最初はめんどくせぇ…って思ってたのですが、意外と公式ドキュメントがまとめられていて分かりやすかったです。
次の記事は実際にヘルスケアデータにアクセスして保存していきます。
コメント