Flutterで健康管理アプリ (Health Management App)を開発_No.1

傍観者k
投稿日: 2026年02月25日 02:52
# 健康管理アプリ (Health Management App) Flutterで作成した健康管理モバイルアプリケーションです。毎日の健康データを記録して、体の変化を追跡できます。 ## 機能 - **服薬管理**: 薬の服用時間と用量を記録 - **血圧管理**: 血圧と脈拍を測定・記録 - **心情状況**: 1日の気分や心理状態を記録 - **今日の状況**: 本日のすべての健康データを表示 - **ホーム**: 各機能へのアクセスと統計情報 - **設定**: ユーザープロフィールとシステム設定 ## プロジェクト構造 ``` lib/ ├── main.dart # メインエントリーポイント ├── models/ │ ├── medication.dart # 薬のモデル │ ├── blood_pressure.dart # 血圧のモデル │ ├── mood.dart # 気分のモデル │ └── user.dart # ユーザー情報のモデル ├── screens/ │ ├── home_screen.dart # ホーム画面 │ ├── today_screen.dart # 今日の状況画面 │ └── settings_screen.dart # 設定画面 ├── services/ │ └── api_service.dart # API通信サービス(統一インターフェース) └── widgets/ └── common_widgets.dart # 再利用可能なウィジェット ``` ## インストール ### 前提条件 - Flutter 3.0.0以上 - Dart 3.0.0以上 ### セットアップ 開発環境の構築手順(Windows)は以下を参照してください: - [Flutterアプリ開発環境構築ガイド(Windows)](FLUTTER_DEV_ENV_SETUP.md) 1. プロジェクトディレクトリに移動 ```bash cd app_health ``` 2. 依存パッケージをダウンロード ```bash flutter pub get ``` ## 🚀 クイックスタート(虚拟机での起动) ### ステップ 1: 利用可能なエミュレータを確認 ```bash flutter emulators ``` 出力例: ``` 4 available emulators: Id • Name • Manufacturer • Platform Medium_Phone • Medium Phone • Generic • android Pixel_Fold_API_34 • Pixel Fold API 34 • Google • android flutter_emulator • flutter emulator • Google • android flutter_emulator_2 • flutter emulator 2 • Google • android ``` ### ステップ 2: エミュレータを起動 任意のエミュレータを選択して起動: ```bash # Medium Phone エミュレータを起動 flutter emulators --launch Medium_Phone # または他のエミュレータ: flutter emulators --launch Pixel_Fold_API_34 flutter emulators --launch flutter_emulator ``` **注意**: エミュレータの起動には 1-3 分かかる場合があります。 ### ステップ 3: プラットフォーム ファイルの初期化(初回のみ) エミュレータが起動中の間に、別のターミナルで以下を実行: ```bash flutter create . ``` このコマンドは Android、iOS、Web などのプラットフォーム固有のファイルを生成します。 ### ステップ 4: アプリを実行 ```bash flutter run ``` または詳細ログを表示: ```bash flutter run -v ``` アプリはエミュレータに自動的にインストールされ、起動します。初回は Gradle ビルドに 2-5 分かかる場合があります。 ### 利用可能なデバイスを確認 ```bash flutter devices ``` 出力例: ``` Found 3 connected devices: Windows (desktop) Chrome (web) Edge (web) sdk gphone64 x86 64 (mobile) • emulator-5554 • Android 16 ``` ## 🎮 実行時のコマンド アプリ実行中に以下のコマンドが使用可能: - `r` - ホットリロード(コード変更を即座にリロード) - `R` - 完全リスタート(アプリを完全に再起動) - `h` - ヘルプを表示 - `q` - アプリを終了 ## 📋 代替実行方法 ### 特定デバイスで実行 ```bash # Windows デスクトップで実行 flutter run -d windows # Chrome ブラウザで実行 flutter run -d chrome # iOS シミュレータで実行(Mac のみ) flutter run -d ios ``` ### リリースモードで実行 ```bash flutter run --release ``` ### プロファイルモードで実行 ```bash flutter run --profile ``` ## 🐛 トラブルシューティング ### エミュレータが起動しない場合 1. Android Studio を開く 2. AVD Manager (Android Virtual Device Manager) から手動で起動 3. または以下を実行: ```bash flutter doctor ``` ### "No supported devices connected" エラー 1. `flutter devices` でデバイスを確認 2. エミュレータが完全に起動するまで待機(3-5分) 3. 以下を実行: ```bash flutter create . flutter run ``` ### ビルドエラー キャッシュをクリアしてやり直す: ```bash flutter clean flutter pub get flutter run ``` ### Android Gradle エラー Java をインストール: ```bash # Windows (チョコレート経由) choco install openjdk11 # または詳細診断 flutter doctor -v ``` ## API設定 `lib/services/api_service.dart`のベースURLを設定してください: ```dart static const String baseUrl = 'http://your-api-server.com/api'; // ここを実際のAPI URLに変更 ``` ### APIエンドポイント #### 服薬管理 - `GET /api/medications?date=YYYY-MM-DD` - 日付別の服薬記録取得 - `POST /api/medications` - 新規服薬記録作成 - `PUT /api/medications/{id}` - 服薬記録更新 - `DELETE /api/medications/{id}` - 服薬記録削除 - `GET /api/medications/list` - 常用薬一覧取得 #### 血圧管理 - `GET /api/blood_pressure?date=YYYY-MM-DD` - 日付別の血圧記録取得 - `POST /api/blood_pressure` - 新規血圧記録作成 - `PUT /api/blood_pressure/{id}` - 血圧記録更新 - `DELETE /api/blood_pressure/{id}` - 血圧記録削除 - `GET /api/blood_pressure/history?start=YYYY-MM-DD&end=YYYY-MM-DD` - 血圧履歴取得 #### 気分管理 - `GET /api/mood?date=YYYY-MM-DD` - 日付別の気分記録取得 - `POST /api/mood` - 新規気分記録作成 - `PUT /api/mood/{id}` - 気分記録更新 - `DELETE /api/mood/{id}` - 気分記録削除 - `GET /api/mood/history?start=YYYY-MM-DD&end=YYYY-MM-DD` - 気分履歴取得 #### ユーザー情報 - `GET /api/user/info` - ユーザー情報取得 - `PUT /api/user/info` - ユーザー情報更新 - `GET /api/system/info` - システム情報取得 #### 統計 - `GET /api/today/summary` - 本日データ汇總取得 ## データモデル ### Medication(服薬記録) ```dart { "id": "string", "medication_name": "string", "dosage": "string", "unit": "string", // mg, ml, 片など "taken_time": "ISO 8601 datetime", "remarks": "string" } ``` ### BloodPressure(血圧記録) ```dart { "id": "string", "systolic": "number", // 収缩压 "diastolic": "number", // 舒张压 "pulse": "number?", // 脉搏(オプション) "measure_time": "ISO 8601 datetime", "remarks": "string" } ``` ### Mood(気分記録) ```dart { "id": "string", "mood_level": "number", // 1-5(1:非常に悪い、5:非常に良い) "mood_type": "string?", // happy, sad, angry, anxious, calm "record_time": "ISO 8601 datetime", "note": "string?" } ``` ### User(ユーザー情報) ```dart { "id": "string", "name": "string", "age": "string?", "gender": "string?", // M (男), F (女) "phone": "string?", "email": "string?", "height": "string?", // cm単位 "weight": "string?", // kg単位 "blood_type": "string?", // O, A, B, AB "created_at": "ISO 8601 datetime", "updated_at": "ISO 8601 datetime" } ``` ## 今後の機能拡張予定 - [ ] パスワード認証機能の実装 - [ ] ローカルデータベース(SQLite)への対応 - [ ] 健康データの历史グラフ表示 - [ ] 医療通知・リマインダー機能 - [ ] データバックアップ・クラウド同期 - [ ] 複数ユーザー対応 - [ ] ウェアラブルデバイス連携 - [ ] 健康分析とレポート生成 ## ライセンス このプロジェクトはMITライセンスの下で公開されています。 ## サポート 問題が発生した場合は、GitHubのIssueセクションでお知らせください。 ## 開発者 健康管理アプリ開発チーム --- **注意**: このアプリは医療デバイスではなく、医学的なアドバイスを提供するものではありません。重要な健康上の懸念がある場合は、医療専門家にご相談ください。
最終更新: 2026年03月06日 05:27