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