本アプリは匿名認証方式を採用しており、氏名・メールアドレス・電話番号等の個人を特定する情報は一切取得しません。アカウントはアプリ起動時に自動発行される内部識別ID(UUID)で管理されます。
1. 収集する情報
1.1 ユーザーが提供する情報
| 情報の種類 | 内容 | 必須/任意 |
|---|---|---|
| アカウント情報 | 内部識別ID(匿名認証により自動発行されるUUID。氏名・メールアドレス等は取得しません) | 必須 |
| プロフィール情報 | ニックネーム、年代、性別、身長 | 任意 |
| 身体情報 | 体重、目標体重 | 任意 |
| 食事画像 | カメラまたはギャラリーから選択した食事の写真 | 機能利用時 |
| 食事記録 | AI分析結果の保存データ、手動入力した食事データ | 機能利用時 |
| 投薬情報 | 投薬スケジュール、副作用の記録 | 任意 |
| ソーシャル情報 | 友達申請、フィード投稿、コメント、いいね、通報 | 任意 |
1.2 自動的に収集される情報
| 情報の種類 | 内容 | 目的 |
|---|---|---|
| デバイス情報 | OS種別、バージョン、デバイスモデル(クラッシュレポート時のみ) | アプリの動作最適化 |
| 購入情報 | サブスクリプションの状態(RevenueCat経由) | 課金管理 |
| クラッシュレポート | アプリ異常終了時のエラースタック(Expo / EAS経由) | 不具合調査 |
1.3 収集しない情報
本アプリは以下の情報を収集しません。
- 位置情報: GPSや基地局による位置情報は一切取得しません
- 連絡先: アドレス帳へのアクセスは行いません
- 通話履歴: 通話履歴へのアクセスは行いません
- マイク音声: マイクへのアクセスは行いません(カメラ撮影時を含む)
2. 情報の利用目的
収集した情報は、以下の目的にのみ使用します。
- サービスの提供: 食事のAI分析、栄養素計算、カロリー管理機能の提供
- パーソナライゼーション: ユーザーの身体情報に基づく栄養目標の算出
- サービスの改善: クラッシュレポートに基づく不具合修正
- ソーシャル機能の運営: 友達関係の管理、フィード公開範囲制御、通報レビュー
- カスタマーサポート: お問い合わせへの対応
- 通知: トライアル期限のリマインダー、週次レポート、ソーシャル通知(ユーザーの許可がある場合のみ)
3. 第三者への情報提供
3.1 AI分析のための画像送信
食事画像のAI分析に際し、撮影した画像を以下のAIサービスに送信します。
- 送信先: Google LLC(Gemini API)
- 送信される情報: 食事画像(base64エンコード)
- 目的: 食品の識別および栄養素の推定
- 保存: Google のAPI利用ポリシーに準じます。APIリクエストの画像はモデルのトレーニングには使用されません
3.2 その他の第三者サービス
| サービス | 提供元 | 目的 | 共有される情報 |
|---|---|---|---|
| Supabase | Supabase, Inc. | データベース・匿名認証基盤・Edge Functions | 内部識別ID、食事記録、プロフィール情報、ソーシャル投稿 |
| Google Gemini API | Google LLC | 食品AI識別・栄養素推定 | 食事画像(base64)、食品ヒント文字列 |
| RevenueCat | RevenueCat, Inc. | サブスクリプション管理 | 購入情報、匿名ユーザーID |
| Apple Inc. | Apple Inc. | アプリ内課金、プッシュ通知 | 課金トランザクション、プッシュトークン |
| Google LLC | Google LLC | アプリ内課金、プッシュ通知 | 課金トランザクション、プッシュトークン |
| Sentry | Functional Software, Inc. | クラッシュレポート | エラースタックトレース(個人情報は含みません) |
| Google AdMob | Google LLC | 無料ユーザー向け広告配信(非パーソナライズド) | 端末広告 ID(IDFA / GAID)のみ |
| Expo / EAS | Expo (650 Industries, Inc.) | アプリ配信、OTA 更新 | デバイス情報、build メタ情報 |
3.3 法令に基づく開示
法令に基づく要請がある場合、または権利保護のために必要な場合に限り、関係機関に情報を提供することがあります。
3.4 ソーシャル機能 (友達・フィード・チャレンジ)
本アプリでは、ユーザーが任意で 友達 / フィード / チャレンジ 機能を利用できます。
収集・保存されるデータ
- 友達関係: 申請者・受信者の内部識別 ID、状態(申請中・承認済・拒否・ブロック)
- 投稿(feed_posts): 投稿者 ID、食事タイトル、カロリー、PFC、本文(500 字以内)、公開範囲
- いいね・コメント: 投稿者 ID、本文(コメント 200 字以内)
- 通報(feed_reports): 通報者 ID、対象、理由(200 字以内)
- チャレンジ参加: 参加者 ID、スコア、達成フラグ
公開範囲制御
投稿は投稿者が設定した公開範囲に従い、Row Level Security (RLS) で制御されます。
- 公開: 全ユーザー閲覧可能
- 友達のみ: 双方向の友達関係が確立済みのユーザーのみ
- 非公開: 本人のみ
モデレーション
- クライアント側で NG ワード / URL スパム / 個人情報パターン(電話番号・メールアドレス)を事前検出
- サーバ側で
flaggedフラグを管理(運営による手動レビュー) - 通報されたコンテンツは原則 24-72 時間以内に運営が確認
第三者提供
ソーシャル機能の本文・コメントは、公開範囲を超えて第三者に提供されることはありません。 ただし、法令に基づく開示要請(捜査機関等)には対応する場合があります。
4. データの保存と管理
4.1 保存期間
| データの種類 | 保存期間 |
|---|---|
| アカウント情報(内部識別ID・プロフィール) | アカウント削除まで |
| 食事記録・体重記録 | アカウント削除まで |
| 食事画像(サーバー) | 分析完了後 90 日間 |
| AI分析ログ | 分析完了後 90 日間 |
| ソーシャル投稿・コメント | 投稿者削除またはアカウント削除まで |
| 通報レコード | レビュー完了後 1 年間(モデレーション履歴として) |
| クラッシュレポート(Expo / EAS / Sentry) | 各社の保持ポリシーに準じる(最長 90 日間) |
4.2 保存場所
データは Supabase が提供するクラウドインフラストラクチャ(AWS、東京リージョン)に保存されます。通信はすべてTLS 1.2以上で暗号化されています。
4.3 オフライン同期(端末ローカル保存)
本アプリは端末オフライン時の操作性を高めるため、端末ローカル(AsyncStorage)に 未同期の食事記録 / 体重記録 を一時保存します。
保存される情報
offline_write_queue_v1: ネットワーク復旧時に再送信される pending データoffline_write_dead_letter_v1: 3 回送信に失敗したデータ(最大 200 件)offline_write_force_drop_log_v1: ストレージ満杯等で復旧不能になったデータの PII フリーな ログ(テーブル名・時刻・エラーカテゴリのみ、最大 100 件)offline_write_force_drop_total_v1: 累積件数のみ
第三者提供
これらは端末ローカルにのみ保存され、サーバには送信されません(ネットワーク復旧時の自動再送信を除く)。
削除タイミング
- 同期成功時: queue から自動削除
- ユーザーが「同期の問題」画面から「直近履歴を消す」を選択時
- アプリのアンインストール時
4.4 セキュリティ対策
- 通信の暗号化(TLS 1.2+)
- データベースの暗号化(AES-256)
- 行レベルセキュリティ(RLS)によるアクセス制御
- Edge Function でのリクエスト認証 + Origin allowlist
- 食事画像入力の MIME magic byte 検証 + 5MB サイズ制限
- 定期的なセキュリティレビュー(Codex Adversarial review 累計 6 pass)
5. ユーザーの権利
ユーザーは以下の権利を有します。
5.1 アクセス権
ご自身の個人データの開示を請求できます。
5.2 訂正権
プロフィール情報はアプリ内の「設定」→「プロフィール編集」からいつでも変更できます。
5.3 削除権(忘れられる権利)
アプリ内「プロフィール」→「アカウント設定」→「アカウントを削除」から削除を申請できます。
削除フロー(30 日 grace period)
- 削除申請:
diet_users.deletion_requested_atに申請時刻が記録されます - 30 日間の grace period: いつでも撤回可能(同画面から)
- 30 日経過後: 運営側の日次バッチにより完全削除を実行
- 関連する全データ(食事・体重・スキャン履歴・フィード・友達関係等)が ON DELETE CASCADE で削除
auth.usersレコードも Supabase Admin API 経由で削除
削除されないデータ
- ストレージ層に既に同期済みの 匿名集計データ(misidentification_pairs_mined 等の AI 学習データ)は、ユーザー UUID が含まれない形で集計済みのため削除対象外
- 法令で保存義務がある取引記録(RevenueCat 経由のサブスクリプション履歴)は、適用される法定保存期間に従う
サブスクリプションの注意
アカウント削除と App Store / Google Play のサブスクリプション解約は別手続きです。 削除前に各ストア側でサブスクリプションを解約してください。解約しない場合、課金が継続される可能性があります。
5.4 データポータビリティ権
アプリ内「アカウント設定」→「データをエクスポート」から、以下のデータを JSON または CSV 形式で書き出せます。
- プロフィール(diet_users)
- 食事記録(meal_logs)
- 体重記録(weight_logs)
- AI スキャン履歴(ai_scan_sessions)
- 服薬・サプリ記録
- フィード投稿・友達関係
書き出したデータは端末標準の「共有」シートを通じて、メール・クラウドストレージ・メモアプリ等に保存できます。書き出し処理はクライアント側で行われ、本アプリのサーバには保存されません。
5.5 同意の撤回
通知の受信は、端末の設定または「プロフィール」→「通知設定」からいつでも無効化できます。
6. Cookieおよびトラッキング技術
本アプリはネイティブモバイルアプリであり、Cookieは使用しません。
無料プランのユーザーには Google AdMob を通じた 非パーソナライズド広告 を配信する場合があります。広告 ID (IDFA / GAID) を取得しますが、行動トラッキングや第三者へのデータ販売は行いません。広告は端末の広告設定で無効化できます。
7. 児童のプライバシー
本アプリは、13歳未満の児童からの個人情報の収集を意図していません。13歳未満であることが判明したユーザーのデータは、速やかに削除します。
保護者の方が、お子様が本アプリに個人情報を提供していることに気づかれた場合は、下記の連絡先までご連絡ください。
8. Apple HealthKit / Google Fit 連携
本アプリは、ユーザーの明示的な同意のもと、Apple HealthKit / Google Fit と連携して歩数・運動データを取得する場合があります。
- HealthKit / Google Fit から取得したデータは、広告配信やデータマイニングに使用しません
- HealthKit / Google Fit のデータは、第三者に販売・提供しません
- 連携はいつでもアプリ内の設定から解除できます
9. プライバシーポリシーの改定
本プライバシーポリシーは、法令の変更やサービスの変更に伴い、改定することがあります。
- 重要な変更がある場合は、アプリ内通知またはメールでお知らせします
- 改定後も本アプリを継続利用された場合、改定後のポリシーに同意したものとみなします
10. お問い合わせ
プライバシーに関するご質問やご要望は、以下までお問い合わせください。
- メール: contact@calol.ai
- 運営者: カロル(Calol)
- 所在地: 日本
© 2026 Calol Project. All rights reserved.