Android、iOS、Webで動くReact製のユニバーサルなネイティブアプリを構築するオープンソースフレームワーク。
appeeky/expo-healthkit
Apple HealthKitとAndroid Health Connectを共通のJavaScript APIで利用できるExpo/React Nativeモジュール。
代替できる製品:react-native-healthkit
- スター
- 108
- フォーク
- 8
- 未解決の Issue
- 1
- 最終コミット
- 11 日前
これは何?
@appeeky/expo-healthkitは、Expo Modules APIを基盤とするネイティブモジュールです。ExpoおよびReact Nativeアプリから、両プラットフォームの健康データを共通のJavaScript APIで扱えます。iOSではHealthKit、AndroidではHealth Connectを利用します。アプリのコードでは常にAppleのtype identifierを渡し、ネイティブ層が対応付けを行うため、歩数、心拍数、睡眠、体重、血圧など、マッピング済みのデータ型ごとにプラットフォーム分岐を書く必要はありません。
クエリでは、数量サンプルやカテゴリサンプル、ワークアウト、統計集計、区間ごとの統計を取得できます。また、心電図、アクティビティリング、FHIR臨床記録、ワークアウトのGPSルートなど、iOS専用データにも対応しています。書き込みでは、数量・カテゴリサンプル、ワークアウト、血圧などの相関データを保存でき、削除も可能です。差分同期では不透明なアンカートークンを使用します。Androidでは最初にページ分割してデータを読み込み、その後Health Connectの変更トークンを使います。
Config pluginはHealthKitのentitlementとHealth Connectの権限宣言を書き込み、minSdkを26に引き上げます。Expo SDK 53以降とdevelopment buildが必要です(Expo Goには非対応)。iOS 16.4以降、Android 8以降が必要です。
主な機能
- 01両プラットフォームで共通のAPI:同じメソッドとAppleのtype identifierをiOSとAndroidで使え、マッピングはネイティブ側で処理されます。
- 02数量サンプル、カテゴリサンプル、ワークアウト、統計のクエリに対応し、queryStatisticsCollectionで区間ごとの集計も取得できます。
- 03心電図、アクティビティリング、FHIR臨床記録、聴力図、ワークアウトのGPSルート、心拍系列、相関データなど、iOS専用データのクエリに対応します。
- 04queryAnchoredによる差分同期に対応し、追加・削除データ、アンカー、hasMoreを返してページ分割での追いつき処理を行えます。
- 05保存と削除:saveQuantitySample、saveCategorySample、saveWorkout、saveCorrelation、deleteObjectsを利用できます。
- 06observe、addUpdateListener、enableBackgroundDeliveryによるバックグラウンド配信に対応します。保存済みの監視対象は、アプリが終了した状態から再起動した際に再登録されます。
- 07Config pluginがHealthKitの利用目的文字列とHealth Connectのuses-permission項目を宣言し、minSdkを26に引き上げます。
- 08固有のエラーコード(ERR_HEALTHKIT_UNSUPPORTED、ERR_HEALTH_CONNECT_UNSUPPORTED、ERR_HEALTH_CONNECT_ANCHOR_EXPIRED)により、Platform.OSで判定しなくても非対応のUIを非表示にできます。
ユースケース
- フィットネスアプリで、日々の歩数、心拍数、睡眠データを読み取る。
- 体重、血圧、体組成の推移を表示する健康ダッシュボードを構築する。
- アプリ内で記録したワークアウトやサンプルをHealthKitまたはHealth Connectに書き込む。
- アンカー付きの差分クエリを使い、ユーザーの健康履歴を独自のバックエンドに同期する。
- 心電図やアクティビティリングなどApple専用データをiOSで表示し、Androidでは非表示にする。
クイックスタート
- 1
Expoでパッケージをインストールする
npx expo install @appeeky/expo-healthkit - 2
app.jsonまたはapp.config.tsにconfig pluginを追加する
- 3
ネイティブコードを再ビルドし、development buildで実行する
npx expo prebuild --clean
使う前に知っておきたいこと
- HealthデータAPIはExpo Goでは実行できません。development buildが必要です。
- HealthKit capabilityを有効にしたiOS 16.4以降、またはHealth Connectを搭載したAndroid 8以降が必要です。
- パッケージのメタデータにライセンスが宣言されていません(NOASSERTION)。使用前にライセンスを確認してください。
- iOSでは読み取り権限の状態が不透明なため、アプリから読み取りが拒否されたかどうかを判別できません。
収録されている特集
トピック
よくある質問
- expo-healthkit とは?
- Apple HealthKitとAndroid Health Connectを共通のJavaScript APIで利用できるExpo/React Nativeモジュール。 @appeeky/expo-healthkitは、Expo Modules APIを基盤とするネイティブモジュールです。ExpoおよびReact Nativeアプリから、両プラットフォームの健康データを共通のJavaScript APIで扱えます。iOSではHealthKit、AndroidではHealth Connectを利用します。アプリのコードでは常にAppleのtype identifierを渡し、ネイティブ層が対応付けを行うため、歩数、心拍数、睡眠、体重、血圧など、マッピング済みのデータ型ごとにプラットフォーム分岐を書く必要はありません。
- expo-healthkit は無料で使えますか?ライセンスは?
- expo-healthkit は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- expo-healthkit は今もメンテナンスされていますか?
- 活発にメンテナンス中。expo-healthkit の最終コミットは 2026年10月26日 です。
- expo-healthkit は何に使えますか?
- フィットネスアプリで、日々の歩数、心拍数、睡眠データを読み取る。 体重、血圧、体組成の推移を表示する健康ダッシュボードを構築する。 アプリ内で記録したワークアウトやサンプルをHealthKitまたはHealth Connectに書き込む。 アンカー付きの差分クエリを使い、ユーザーの健康履歴を独自のバックエンドに同期する。 心電図やアクティビティリングなどApple専用データをiOSで表示し、Androidでは非表示にする。
- expo-healthkit のインストール方法は?
- Expoでパッケージをインストールする: npx expo install @appeeky/expo-healthkit app.jsonまたはapp.config.tsにconfig pluginを追加する ネイティブコードを再ビルドし、development buildで実行する: npx expo prebuild --clean
- expo-healthkit はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/appeeky/expo-healthkit
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Expoチーム公式のAIエージェント向けスキル集。Expoアプリの開発、デプロイ、アップグレード、デバッグを支援します。
JavaScriptバンドルの読み込み前、アプリ起動直後からネイティブ再生できるReact Native向けLottie・dotLottieスプラッシュ画面。
iOSとAndroid向けのCherry Studioモバイルアプリ。複数のAIモデルとのチャット、エージェントの実行、MCPツールへの接続、画像生成に対応します。
Bangumiのアニメ・漫画・ゲーム管理サイト向けに、React Nativeで開発された非公式のモバイルファーストクライアント。AndroidとiOSに対応。
Reactを使って、JavaScriptのUIをネイティブのプラットフォームコンポーネントで描画するAndroid・iOSアプリを構築するフレームワーク。