Google Fitプラットフォームは、Androidユーザーの身体活動およびヘルスケアデータを収集、保存、分析するためのGoogleのエコシステムです。Google Developers, 2025によると、このプラットフォームはFitness API、Sensors API、Sessions APIを単一のアーキテクチャに組み合わせ、Google Cloudと同期し、RESTリクエストでアクセスできます。統合ヘルスケアプロファイルにより、ユーザーはどのアプリが自分のフィットネスおよびウェルネスデータにアクセスできるかを制御できます。
メインポイント
Google Fitは、Googleが2014年のI/Oカンファレンスでリリースしたヘルスケア管理プラットフォームです。このプラットフォームは、身体活動データを読み書きするための統一APIを提供し、アプリがGoogleクラウドの中央リポジトリを通じて情報をやり取りできるようにします。
プロプライエタリソリューションとは異なり、Google FitはAndroidオペレーティングシステムおよびREST APIを通じてiOSで動作します。ユーザーはフィットネスバンド、スマートウォッチ、アクティビティトラッキングアプリを接続でき、Google FitはすべてのデータをGoogle Cloudの単一のヘルスケアプロファイルにまとめます。
Google I/O 2024によると、このプラットフォームは世界中の5000以上のアプリで使用され、現役ユーザー数は1億人を超えます。このプラットフォームはWear OSと統合され、サードパーティアプリを通じて人気のフィットネストラッカーをすべてサポートしています。
Google Fitのアーキテクチャは3つのレイヤーで構築されています:クライアントSDK、Google Fitness Storeクラウドストレージ、サーバー統合のためのREST API。クライアントSDKはAndroid(Kotlin、Java)およびiOS(Swift、Objective-C)で利用でき、JavaScriptを通じてウェブクライアントも利用できます。
データはソース(DataSource)およびデータポイント(DataPoint)として組織されます。各ソースはデバイスまたはアプリを表し、各データポイントはタイムスタンプを伴う単一の測定結果を表します。データポイントのグループはセッションにまとめられます — 種類と期間を持つ連続的な活動期間です。
val fitnessClient = Fitness.getClient(activity, GoogleSignIn
.getAccountForExtension(activity, fitnessOptions))
val stepType = DataType.TYPE_STEP_COUNT_DELTA
val request = DataReadRequest.Builder()
.read(stepType)
.setTimeRange(
startTime, endTime, TimeUnit.MILLISECONDS
)
.build()
fitnessClient.readData(request)
.addOnSuccessListener { response ->
for (bucket in response.buckets) {
println(bucket.dataSets)
}
}
Google Fitは、オンラインおよびオフラインの両方をサポートするGoogle Cloudを通じた同期モデルを使用します。アプリはデータをローカルに記録し、Google Fit SDKがインターネット接続があると自動的にクラウドストレージと同期します。競合は最終書き込み先生の原則で解決されます。
各データタイプには標準化された形式があります:歩数 — TYPE_STEP_COUNT_DELTA、カロリー — TYPE_CALORIES_EXPENDED、心卓数 — TYPE_HEART_RATE_BPM、距離 — TYPE_DISTANCE_DELTA。カスタムタイプの場合は、Google APIs Consoleを通じて固有のネームスペースを持つカスタムDataTypeを作成できます。
このプラットフォームは2つの記録モードをサポートしています:アクティブ — アプリがHistoryClient.insertData()を明示的に呼び出すもの、およびパッシブ — RecordingClientを通じてバックグラウンドでデータ収集にサブスクライブするものです。パッシブモードはフィットネスアプリに便利です:ユーザーが一度アプリを起動すると、アプリが最小化されている間も、CPUを使い続けることなく、Google Fitが自動的に歩数、カロリー、距離を収集します。
Googleによると、このプラットフォームは毎日20億以上のデータポイントを処理しています。アクティブ接続の平均同期遅延は5–10秒で、バックグラウンドモードでは電池節約のために30分ごとに同期が行われます。
Google Fitは認証にOAuth 2.0を使用し、アクセススコープはfitness.activity.read、fitness.activity.write、fitness.body.read、fitness.body.writeです。アプリは必要なスコープのみをリクエストし、ユーザーはアカウント選択のある標準のGoogle Sign-Inダイアログでアクセスを確認します。
ユーザーはGoogle Account PermissionsまたはGoogle Fitアプリを通じていつでもアクセスを取り消すことができます。Googleは明示的な同意なしにヘルスケアデータを第三者と共有すること、およびRestricted Scopesポリシーに従って広告目的でデータを使用することを嚴禁しています。
Google Fitは3つの主要APIを提供しています:履歴データを読み書きするためのFitness API、センサーからリアルタイムデータを受け付けるためのSensors API、アクティビティセッションを管理するためのSessions APIです。各APIはAndroid SDKおよびRESTリクエストの両方で利用できます。
Fitness APIはデータを扱うための主要APIです。バッチ操作をサポートしており、一度の呼び出しで1000データポイントまで書き込み、時間範囲、データタイプ、ソースでフィルターして読み込むことができます。データの統合には、選択したメトリックでグルーピングするDataSetが使用されます。
Sensors APIはリアルタイムのセンサーデータ — 歩数、心卓数、加速度 — にサブスクライブできます。データは、センサーの種類とアプリの設定によって決定される頻度でSensorEventListenerを通じて受け取られます。
3つの主要APIに加え、Google Fitはアプリをアクティブに保つ必要のない自動データ収集のためのRecording APIを提供しています。このAPIは特にWear OSで価値があります:スマートウォッチが心卓数と活動データを収集し、接続するとフォンアプリが同期します。Recording APIはGoogle Fit Background Servicesを使用しており、消費電力が最小限に調整されています — パッシブな歩数収集で毎日2%までの電池消費です。
REST API Google Fitはfitness.googleapis.comエンドポイントで利用できます。REST APIは、OAuth認証後にサーバーアプリケーションがユーザーに代わってデータを読み書きできるようにします。これは、ウェブアナリティクスダッシュボード、企業向けフィットネスプログラム、および従業員や患者のヘルスケアデータを一元管理する医療システムに役立ちます。
val recordingClient = Fitness
.getRecordingClient(activity, googleSignInAccount)
recordingClient.subscribe(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener {
println("サブスクリプションは有効です")
}
// 履歴データの取得
val historyClient = Fitness
.getHistoryClient(activity, googleSignInAccount)
val endTime = Calendar.getInstance().timeInMillis
val startTime = endTime - TimeUnit
.DAYS.toMillis(7)
historyClient.readDailyTotal(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener { total ->
println("今日の歩数: $total")
}
Google Fit統合は、build.gradleを通じてGoogle Fit SDKの依存関係を追加することから始まります:com.google.android.gms:play-services-fitness。その後、Google APIs Consoleを設定し、プロジェクトを作成し、Fitness APIを有効にし、正しいSHA-1フィンガープリントを持つOAuth 2.0認証情報を追加する必要があります。
統合プロセスには、必要なスコープでGoogleSignInを初期化し、Fitness.getClient()を通じてFitnessClientを作成し、ユーザーに認証を依頼し、データの読み込みまたは書き込み操作を実行することが含まれます。バックグラウンド記録にはRecordingClientが使用され、アプリが最小化されていても自動的にデータを収集します。Google Fitは電池残量とユーザーの活動に応じて、自動的にデータ収集頻度を管理します。
Googleによると、Google Fit統合を行ったアプリはユーザー保有率が35%向上します。主なアプリカテゴリは、フィットネストラッカー、ランニング、サイクリング、ヨガ、体重管理アプリです。
プライバシー要件を考慮することが重要です:Google FitはRestricted Scopesを使用しており、これらはOAuth Verificationを通じて別途アプリ検証が必要な特別なアクセススコープです。開発者は、収集されるデータ、その使用方法、保管期間を説明する必要があります。Googleはまた、プライバシーポリシーとAPI Services Terms of Serviceへの適合を必要としています。
データを記録するには、タイプ、デバイス、アプリを指定したDataSourceを作成します。その後、タイムスタンプと値を持つDataPointを作成します。複数のDataPointsをDataSetにまとめ、HistoryClient.write()に渡します。
val dataSource = DataSource.Builder()
.setAppPackageName(activity)
.setDataType(DataType.TYPE_STEP_COUNT_DELTA)
.setType(DataSource.TYPE_RAW)
.build()
val stepCount = DataPoint.builder(dataSource)
.setTimestamp(now, TimeUnit.MILLISECONDS)
.setField(Field.FIELD_STEPS, 500)
.build()
val dataSet = DataSet.builder(dataSource)
.add(stepCount)
.build()
historyClient.insertData(dataSet)
.addOnSuccessListener {
println("データが保存されました")
}
よくある質問
Google Fitは50種類以上のデータタイプをサポートしており、歩数、カロリー、心卓数、距離、速度、眠眠、体重、身長、血圧、血糖レベル、体温が含まれます。完全なリストは、AndroidおよびREST APIのDataTypeドキュメンテーションで確認できます。
はい、Google Fitを使用するにはGoogleアカウントが必要です。ユーザーはGoogle Sign-Inを通じて認証し、その後アプリが指定されたスコープでFitness APIにアクセスできます。Googleアカウントがなければ、すべてのデータがGoogle Cloudに保管されるため、プラットフォームを利用できません。
はい、Google FitのデータはGoogle Takeoutを通じてエクスポートできます — このサービスでは、すべてのプラットフォームデータをJSONおよびCSV形式でダウンロードできます。開発者は、適切なアクセススコープを使用してREST APIを通じてプログラム的にデータをエクスポートできます。
Google Fitは、Android、iOS、REST APIで動作するクロスプラットフォームのクラウドプラットフォームであり、HealthKitはApple iOSエコシステムに絡ばれ、データをデバイスにローカル保存します。Google Fitは認証にOAuth 2.0を使用し、HealthKitはiOSシステムのパーミッションを使用します。
Google Fit APIには以下の制限があります:プロジェクトあたり100秒1000リクエスト、書き込みリクエストあたり1000データポイント、読み込みの最大時間範囲はリクエストあたり365日です。制限を上げるには、Google Cloud Consoleでクオータを申し込む必要があります。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。