見出し画像

【ミーア】flutterでAppleのHealthKit APIからユーザーの行動ログを取得する方法:環境設定編

はじめに

おしゃべり猫型ロボット「ミーア」を開発していて、以前に天気情報を読み取ってユーザーが設定した時刻になると今日の天気を音声で教えてくれるプログラムを開発した。

ご協力いただいているデザイナーの方にこの機能について伝えたところ

「Appleヘルスアプリなどに行動データを貯めているのですが、そのデータを元にフィードバックしてくれる機能があったら良いなと前から思っていました」

とのことで、確かに、そうだ!と思い、実装を試みることにした。

HealthKitとは

iPhone・AppleWatchを経由して健康データ(心拍数や睡眠に関するデータ等)、フィットネスデータ(ランニングやウォーキング、サイクリング等)の収集と保存 、データを使ったソーシャルインタラクションのを提供するフレームワーク。


HealthKit のセットアップ

HealthKit を使用する前に、アプリの HealthKit 機能を有効にする必要がある。Xcode でプロジェクトを選択し、HealthKit 機能を追加する。

Generalの「Frameworks, Libraries, and Embedded Content」にHealthKitとHealthKitUIフレームワークを追加する。


Signing & CapabilitiesにHealthKitを追加する。

Signing & Capabilities > +Capability(場所分かりにくい) > 検索バーがポップアップで表示されるのでHealthKitを検索して追加。

すると、HealthKitのSectionが追加される。Capabilitiesに下記2項目のチェック欄が表示される。

  • Clinical Health Records:アプリがユーザーの臨床記録にアクセスする必要がある場合のみ選択する(今回は使用しない)。

  • Background Delivery:アプリがバックグラウンドで実行されている間にも、特定の健康データが更新されたときにアプリに通知する

Background Deliveryは、リアルタイムでのデータ監視や即時反応が必要な場合に最も役立つ。例えば、歩数や心拍数などのデータに基づいてユーザーに即時のフィードバック(今日の歩数が1万歩超えました!おめでとうございます!というメッセージを送るなど)を提供したい場合など。

今回のネコ型おしゃべりロボットでは、ユーザーがアプリで設定した特定の時間に前日までの行動データを元に音声を再生する予定なので、リアルタイムでのデータ更新を必要としないので、Background Deliveryを有効にしない。

HealthKitからのデータ取得は、ユーザーがHealthアプリを開いているかどうかに関係なく行われる。アプリケーションにHealthKitデータへのアクセス権が付与されていれば、、、、

続きは、こちらで記載しています。


この記事が参加している募集

仕事について話そう

よろしければサポートお願いします!いただいたサポートはクリエイターとしての活動費に使わせていただきます!