- 本人(高齢の親)はアプリを利用しない。子が後追いで事実を入力し、カレンダー中心に閲覧する。
- 通知や予定管理、遵守率のような能動機能は不要。対象データは「睡眠時間」「風呂」「服薬」「病院(行った/行っていない)」「症状・出来事(note)」。
- 利用は家族内のみ。ローカル操作が主でネットワークは最小限。セキュリティは端末ロックに依存し、アプリ内ロックやDB暗号化は不要。
- バックアップは必須。Roomを唯一の参照・検索・集計ソースとし、Firestoreは全量バックアップ兼リストアに用いる。
- 出来事は「日々の記録」入力から抽出され、専用タブで一覧化。目的は「いつ/何が起こったか」を短時間で把握すること。
- Android: minSdk 34(Android 14固定)、target 最新(現行36想定)。
- オフライン優先。端末再起動やクラッシュでもローカルは欠損しない。
- 保存・表示とも端末ローカル日付を採用。時刻は要求せず、必要に応じ時間帯をnoteに任意記述。秒精度は扱わない。
- 保存:Roomに確定後、非同期でFirestoreにアップサート。失敗時はキューして後送。
- リストア:ユーザー操作で全量取得→Roomに前回取得日以降の記録のみ挿入(既存は上書きしない)。薬情報も全件取得→更新。
- Firestoreは検索・差分活用は行わず、バックアップ用途に限定。
- Firebase Authでログイン必須。Firestoreルールは
request.auth != null。 - アプリ内暗号化・ロックは導入せず、端末ロックに依存。
- 外部共有や第三者利用は想定しない。
Accepted — 2025-09-20
- 良い影響
- オフライン完全対応。Roomに集約することでUI・集計が柔軟。Firestore依存を最小化してコスト・複雑度を抑制。
- カレンダー・出来事の双方向リンクにより直感的な操作。
- トレードオフ
- Firestore検索やリアルタイム同期は捨てているため将来拡張は別設計が必要。
- 暗号化や監査を導入していないため端末紛失時は端末側セキュリティに依存。