こんにちは。株式会社JMDC インシュアランス本部ソリューション部の由利です。
今年、JMDCではアドベントカレンダーに参加しています。
本記事は、JMDC Advent Calendar 2024 5日目の記事です。
- はじめに
- GoogleFitから移行する経緯
- 開発する要件
- Google Fit連携の解除
- ヘルスコネクト連携
- ヘルスコネクト利用申請
- ヘルスコネクトとヘルスケアの違い
- Fitbitなどのデータソースとヘルスコネクトの違い
- 扱うデータ粒度について
- まとめ
はじめに
昨年に引き続き、iOS/Android向けPHRアプリの開発を担当しています。
AndroidはGoogle Fit連携、iOSはヘルスケア連携で、歩数と消費カロリーを取得しています。
昨年のアドベントカレンダーでは、Google Fit利用の申請手続きについて書きました。
techblog.jmdc.co.jp
本記事では、Google Fit連携をヘルスコネクト連携に移行したことと、取得するデータ種別を増やした際に発生した懸念事項について書きます。
GoogleFitから移行する経緯
Google Fit APIは2025年6月30日をもって利用廃止が決定しており、公式でもヘルスコネクトへ移行が案内されています。
これを受けて、ヘルスコネクト移行の開発を進めました。
併せて、取得するデータ種別を増やす機能追加も行いました。
開発する要件
- Google Fit連携を廃止する
- ヘルスコネクト連携を追加する
- 取得するデータ種別を追加する
- 歩数
- 消費カロリー
- 体重
- BMI
- 体脂肪
- 睡眠
- 血圧
- 心拍数
- 取得したデータをグラフで表示する
動作検証端末は以下としました。
- iOS + Apple Watch SE2
- Android + Pixel Watch 2
- Android + Fitbit Inspire 3
体重や体脂肪に関しては、計測デバイスがある場合は連携しました。
私はOMRONの体重体組成計で計測・連携して使ってみました。
血圧や、その他計測デバイスがない項目などは、ヘルスケアやGoogle Fitに手入力で登録することで確認しました。
Google Fit連携の解除
解除については、アプリ内お知らせで案内を掲載し、ユーザー側で対応してもらうこととしました。
ヘルスコネクト連携
Android 14からはOSに統合され、プリインストールされている状態となっています。
Android 13まではストアからユーザーがインストールする必要があります。
アプリ内に連携ボタンを用意し、権限やインストール状況を確認し、権限許可ダイアログもしくはストアインストールへ誘導するようにしています。 また、各種文言表現や、権限許可ダイアログを表示した後にキャンセルされた場合など、ガイドラインがあるので参考にしました。
ヘルスコネクト利用申請
アプリのストア審査とは別に、ヘルスコネクトの利用申請が必要なようです。
この辺りは過渡期のためか、着手初期から変わった部分もありました。
最終的には、Google Play Consoleから「健康アプリの申告」を送信しました。
ヘルスコネクトとヘルスケアの違い
立ち位置は似ていますが、違う部分も多いです。
ヘルスケアは、サービス開始からの年月が長く、デバイスも限定されているため、Appleのエコシステムとして完成度が高いなと感じました。
一方、ヘルスコネクトは、様々なデバイスやアプリとの連携ハブのような立ち位置のため、データ内容は各アプリに依るところがあり、アプリやライブラリの対応状況も発展途上と感じています。
本開発では、BMIを取得したかったのですが、ヘルスケアはBMIの値が直接取得できるのに対し、ヘルスコネクトはBMIの値は取得できず、身長と体重を取得して算出するような対応を行いました。
この挙動に関しては、身長を取得する必要がありますが、身長は頻繁に登録されるような項目ではなく、連携を許可した時点から取得できる期間に制限があるため、身長が取得できないケースもあり得るなど、考慮が必要な点が多いと感じました。
Fitbitなどのデータソースとヘルスコネクトの違い
ヘルスコネクトは、それ単体でデータを取得するようなものではなく、別のデータソースから集約し入出力するためのハブのような役割と認識しています。
Google Fitも、Google Fit APIが廃止されるだけで、Google Fitアプリがなくなるわけではないようです。
Google FitやFitbitをヘルスコネクトに連携することで、ヘルスコネクトを経由してFitbitなどのデータを連携することができます。
単発ではなく連続的な心拍のようなデータは、入力元となったデータと、ヘルスコネクトに連携されたデータを比較したところ、データ粒度が違うことがありました。
入力元では連続的に見えていても、ヘルスコネクトでは断続的なデータとなっている場合があり、入力元で独自に補完されているのか、ヘルスコネクトへの書き込みがマージされた結果になっているのか、検証操作がよくなかったのか・・・
不明な点も多く、まだまだ検証が必要だと感じています。
扱うデータ粒度について
また心拍データについてですが、ヘルスケア + AppleWatchで実データを取得したとき、時間に対してデータ数が一定ではないケースがありました。
運動してアクティビティモードになっているとき?変動頻度が多いとき?にデータ数が増減するような気がしており、この辺りもまだまだ実データでの動作検証を増やしていく必要があると感じています。
まとめ
無事にGoogle Fit連携からヘルスコネクト連携に移行が完了しました。
バイタルデータの取り扱いは、プラットフォーム、デバイス、データ種別により様々なケースが存在し、考慮すべき点が多く感じています。
今後もバイタルデータの取り扱いに関して検証を進め、全社的な共通化に向けた取り組みなどが進んでいけると良いなと思っています。
明日6日目は、隈部さんによる「Tableau の代替BI、Graphic Walkerを触ってみた」です。お楽しみに!
JMDCでは、ヘルスケア領域の課題解決に一緒に取り組んでいただける方を積極採用中です!フロントエンド /バックエンド/ データベースエンジニア等、様々なポジションで募集をしています。詳細は下記の募集一覧からご確認ください。 hrmos.co
まずはカジュアルにJMDCメンバーと話してみたい/経験が活かせそうなポジションの話を聞いてみたい等ございましたら、下記よりエントリーいただけますと幸いです。 hrmos.co
★最新記事のお知らせはぜひ X(Twitter)、またはBlueskyをご覧ください!