h-1.flutter.4/docs/short_term_plan.md

129 lines
No EOL
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 少プロジェクト短期実装計画(担当者に限定版)
## 1. プロジェクト概要
**目標**: 担当者マスタ画面のリッチ編集機能を実現し、販売・仕入れ業務との連携を整える
**期間**: 1-2 ヶ月程度で MVP をリリース
**優先度**: 担当者マスタ → サンプルデータ → ビルド検証
---
## 2. ワークフロー
```mermaid
graph TD
A[担当者マスタ画面] --> B[MasterEditDialog 作成]
B --> C[sample_employee.dart 定義]
C --> D[employee_master_screen.dart リッチ化]
D --> E[サンプルデータ追加]
E --> F[ビルド検証]
```
---
## 3. 実装順序
### フェーズ 1: 編集ダイアログの整備 (1-2 週間)
1. `MasterEditDialog` を共有ライブラリとして作成
- TextFormField で全てのフィールドを編集可能
- 保存/キャンセルボタン付き
- 無効な場合のバリデーション表示
2. `sample_employee.dart` にサンプルデータ追加
- 初期担当者データ5-10 件程度)
- employee_id, name, email, tel, department, role
### フェーズ 2: マスタ画面の連携 (2-3 週間)
3. `employee_master_screen.dart` のリッチ化
- MasterEditDialog で編集画面を表示
- リストビューに編集ボタン付き
- 追加ダイアログを統合
4. シンプルなリスト管理から開始
- ListView.builder で担当者一覧表示
- Card に編集ボタンを追加
### フェーズ 3: 業務連携の準備 (1-2 週間)
5. 販売画面への担当者紐付機能
6. 仕入れ画面への担当者紐付機能
7. 簡易な在庫管理と売上照会
---
## 4. テックスタック
| カテゴリ | ツール |
|---------|--------|
| State Management | setState (シンプル) |
| フォーム編集 | TextField + TextEditingController |
| ダイアログ | AlertDialog で標準ダイアログ利用 |
| データ永続化 | 当面はメモリ保持(後日 Sqflite |
| ロギング | 簡易な print 出力 |
---
## 5. デリべラブル
- [x] `MasterEditDialog` の実装
- [ ] `sample_employee.dart` のサンプルデータ追加
- [x] `employee_master_screen.dart` の簡素リスト実装(完了)
- [ ] リッチ編集画面の実装
- [ ] ビルドと動作確認
---
## 6. 定義済みインターフェース
### MasterEditDialog インターフェース:
```dart
class MasterEditDialog<T> {
final String title;
final Map<String, dynamic> initialData; // editMode の時だけ使用
final Future<bool> Function(Map<String, dynamic>) saveCallback;
static const String idKey = 'id';
static const String nameKey = 'name';
static const String emailKey = 'email';
static const String telKey = 'tel';
}
```
### sample_employee.dart の形式:
```dart
class SampleEmployee {
final int id;
final String name;
final String email;
final String tel;
final String department;
final String role;
// factory で作成可能
Map<String, dynamic> toJson() => {...};
}
```
---
## 7. ビルド検証手順
1. `flutter build apk --debug` でビルド
2. Android エミュレータまたは物理デバイスで動作確認
3. マスタ登録・編集のフローテスト
4. 画面遷移の確認
---
## 8. リスク管理
- **State Management の複雑化**: setState を使いすぎると再描画が増える → 最小限に抑える
- **データ永続化なし**: アプリ再起動で失われる → MVP で OK、後日改善
- **サンプルデータ不足**: ユーザーに手入力させる → コード内で初期化
---
## 9. まとめ
担当者のみから着手し、マスター管理機能とサンプルデータを整備。その後に他のマスタ画面を順次実装する方針で進める。