健康管理のために、スマートウォッチやスマートフォンで計測されるヘルスケアデータを、他のデータと合わせて分析可能にするために、Googleスプレッドシートに吸い上げる仕組みを作ってみた。

全体像
データの流れとしては以下の通り。うち、今回作ったのは★をつけた3と4のプロセス。
- スマートウォッチ(Gramin)で計測したデータをスマートフォン(iPhone)内のGramin Connectアプリに送信
- Gramin ConnectからAppleヘルスケアへのデータ連携
- ★「ショートカット」アプリにてJSON形式に整形し、Googleスプレッドシート連携のWebアプリにデータ送信
- ★Googleスプレッドシート側でGASでデータ受取処理、シート内にデータ転載
- データが記載されたスプレッドシートを他のデータと組み合わせてNotebookLMに突っ込む
意識したのは、なるべくあり物のプロダクト(Garmin Connect、Appleヘルスケア、Googleスプレッドシート)を使いつつ、カスタムするのは必要な箇所の結合に絞ること。iPhoneやGarminなどデバイス依存で作り込まないこと。エンジニアではないので、なるべくメンテ性が高いこと。
ポイント①:iPhone内でのヘルスケアデータの整形
ヘルスケアデータの扱いにはかなりクセがある。話せばやや長くなるので別記事にまとめた。
データ送信は「URLの内容を取得」で、Webアプリ側で発行したURLにデータをPOSTするだけ。
ポイント②:Googleスプレッドシート側のGAS
Geminiに相談したらコード書いてくれた。それをそのままGASのWebアプリとしてデプロイしたら動いた。アクセス制限を「全員」に公開するのをお忘れなく。あとはここに向けて、iPhone側から一日一回データ送信するだけ。

ポイント③:過去データの取り込み
ここで作ったフローで取り込めるのは、当日や前日のデータである。一方でこの仕組みを作る前のデータは、Garmin ConnectのWeb版の「レポート」からエクスポートし、個別にスプレッドシートの別タブにコピペした。
残課題
- GarminからConnectアプリを介してiPhone側へのデータ連携が自動で行われない。iPhoneからGoogle側にデータ送信する前に手動で連携させる必要がある。
- 運動ログやVO2Maxなど、他にも取得したいデータはあるが、ヘルスケアアプリの出力に制約があったりして手を出せていない。
まとめ/感想
iPhoneショートカットを使ってiPhone内のデータ(今回はヘルスケアデータ)を外部送信する仕組みを作ることができた。プロセス全体の設計から、必要なコードの生成まで、全部Geminiと相談しながら進めた。
AIが書いたコードを使うのは初めて。最低限のプログラミング知識と設計の勘所があれば、出力されたコードはある程度読めるし、プロンプトを変えれば意識したとおりにロジックを変えることもできる。そしてそのコードはそのまま使える。
最終的な解析もAIなので、データ型にはそこまで気を使わなくても良い。良い時代になったと思います。