tug
リハビリモニタリングシステム - 実装ログ 2025-12-09
🏥 リハビリモニタリングシステム - 実装ログ
日付: 2025年12月9日
プロジェクト: rehab_monitoring_project
Firebase プロジェクト: rehab-monitoring-system
📋 実施した作業
1. 自動アップロード時刻の変更 ✅ 完了
変更内容: 23:55 → 27時(翌3時)
理由: 就寝時間を考慮し、翌日AM3時にデータを転送
変更ファイル:
- lib/screens/home_screen.dart:886 - UI表示テキスト更新
- NEXT_STEPS.md:185 - ドキュメント更新
- docs/test_checklist.md:51 - テストチェックリスト更新
実装状況:
lib/services/firebase_data_service.dartのshouldAutoUpload()メソッドは既に実装済み。AM3:00(hour == 3)の時のみtrueを返し、前日のデータがまだアップロードされていない場合に自動アップロードを実行。
2. Firebaseデプロイ ✅ 完了
実行コマンド:
firebase use rehab-monitoring-system
firebase deploy --only firestore:rules
firebase deploy --only firestore:indexes
デプロイ内容:
- Firestoreセキュリティルール
- Firestoreインデックス(alerts、users コレクション用)
確認事項:
- ✅ Firestoreデータベース作成済み
- ✅ Authentication有効化済み(2アカウント登録済み)
3. 歩数計測機能の統合 ✅ 完了
実装内容:
- pedometerパッケージの統合
- リアルタイム歩数計測
- Web版では非対応(モバイル専用機能)
追加・変更したコード:
| ファイル |
変更内容 |
| lib/screens/home_screen.dart |
• pedometerパッケージのインポート追加
• StreamSubscription<StepCount> 追加
• _initPedometer() メソッド実装
• _onStepCount() 歩数更新処理
• Web版での無効化処理(kIsWeb)
|
4. 60分リマインダー実装 ✅ 完了
実装内容:
- flutter_local_notificationsパッケージを使用
- 60分ごとに運動促進通知を送信
- Web版では非対応(モバイル専用機能)
追加したメソッド:
| ファイル |
メソッド |
説明 |
| lib/services/notification_service_mobile.dart |
scheduleHourlyExerciseReminder() |
60分ごとの運動リマインダーをスケジュール |
| lib/services/notification_service_mobile.dart |
cancelHourlyReminder() |
定期通知をキャンセル |
| lib/screens/home_screen.dart |
_initNotifications() |
通知サービスの初期化 |
5. 27時自動アップロード実装 ✅ 完了
実装内容:
- 1時間ごとにshouldAutoUpload()をチェック
- AM3時のタイミングで前日のデータを自動アップロード
- アップロード成功後、歩数をリセット
追加したコード:
// home_screen.dart
Timer? _autoUploadTimer;
void _initAutoUpload() {
_autoUploadTimer = Timer.periodic(
const Duration(hours: 1),
(timer) async {
final shouldUpload = await _firebaseDataService.shouldAutoUpload();
if (shouldUpload && _steps > 0) {
final yesterday = DateTime.now().subtract(const Duration(days: 1));
await _firebaseDataService.uploadDailyRecord(
date: yesterday,
steps: _steps,
exerciseDone: true,
reminderResponses: 0,
activeHours: [],
);
}
},
);
}
🚀 次のステップ
1. モバイルアプリのビルドとデプロイ ⏳ 未実施
Android版:
# APKビルド(デバッグ版)
flutter build apk --debug
# APKビルド(リリース版)
flutter build apk --release
# App Bundleビルド(Google Play配信用)
flutter build appbundle --release
ビルド成果物の場所:
• APK: build/app/outputs/flutter-apk/app-release.apk
• App Bundle: build/app/outputs/bundle/release/app-release.aab
iOS版:
⚠️ iOS版のビルドにはMac環境とXcodeが必要です
# iOSビルド(Mac環境のみ)
flutter build ios --release
2. Web版のデプロイ ⏳ 未実施
Firebase Hostingへのデプロイ:
# Web版ビルド
flutter build web --release
# Firebase Hostingにデプロイ
firebase deploy --only hosting
デプロイ後のURL:
https://rehab-monitoring-system.web.app
3. テスト実施 ⏳ 未実施
チェック項目:
- 歩数計測がリアルタイムで更新されるか(モバイル版)
- 60分ごとに通知が届くか(モバイル版)
- 27時(翌3時)に自動アップロードされるか
- オフライン時のデータ保存とオンライン復帰後の同期
- Firebase Consoleでデータが正しく保存されているか
詳細なチェックリスト:
docs/test_checklist.mdを参照
4. Android環境のセットアップ ⏳ 未実施
セットアップ用スクリプト:
setup_android_manual.bat をダブルクリック
必要な環境:
- Android Studio インストール済み
- Android SDK Command-line Tools
- ライセンスの承認
📱 アプリ配布方法
オプション1: APKの直接配布
- APKをビルド:
flutter build apk --release
- APKファイルを共有(メール、クラウドストレージなど)
- ユーザーがAPKをダウンロードしてインストール
⚠️ Google Play以外からのインストールには「提供元不明のアプリ」の許可が必要
オプション2: Firebase App Distribution
- Firebase Consoleで「App Distribution」を有効化
- APKをアップロード
- テスターのメールアドレスを登録
- テスターにダウンロードリンクを送付
オプション3: Google Play(内部テスト/クローズドテスト)
- Google Play Consoleでアプリを登録
- App Bundleをアップロード
- 内部テストまたはクローズドテストトラックで配信
- テスターグループを作成してリンクを共有
🔧 トラブルシューティング
ビルドエラーが発生した場合:
# 依存関係のクリーンアップ
flutter clean
flutter pub get
# ビルドキャッシュのクリア
flutter build apk --release --no-cache-sksl-warmup
Firebase接続エラー:
- lib/firebase_options.dartが正しく生成されているか確認
flutterfire configureを再実行
通知が届かない場合:
- アプリの通知権限が有効になっているか確認
- バッテリー最適化の除外設定を確認(Android)
📚 関連ドキュメント
| ドキュメント |
パス |
| README |
README.md |
| 次のステップ |
NEXT_STEPS.md |
| テストチェックリスト |
docs/test_checklist.md |
| Firebaseセットアップ |
FIREBASE_SETUP_QUICK_START.md |
| Android環境セットアップガイド |
ANDROID_SETUP_GUIDE.html |
🎯 実装完了状況サマリー
| 機能 |
状態 |
備考 |
| Firebase基盤構築 |
✅ 完了 |
Firestore、Authentication設定済み |
| 歩数計測機能 |
✅ 完了 |
モバイル版のみ対応 |
| 60分リマインダー |
✅ 完了 |
モバイル版のみ対応 |
| 27時自動アップロード |
✅ 完了 |
全プラットフォーム対応 |
| モバイルアプリビルド |
⏳ 未実施 |
Android SDK環境設定後に実施 |
| Web版デプロイ |
⏳ 未実施 |
Firebase Hostingにデプロイ可能 |
リハビリモニタリングシステム 開発ログ
最終更新: 2025年12月9日