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

3.7 KiB
Raw Blame History

少プロジェクト短期実装計画(担当者に限定版)

1. プロジェクト概要

目標: 担当者マスタ画面のリッチ編集機能を実現し、販売・仕入れ業務との連携を整える

期間: 1-2 ヶ月程度で MVP をリリース 優先度: 担当者マスタ → サンプルデータ → ビルド検証


2. ワークフロー

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 週間)

  1. employee_master_screen.dart のリッチ化

    • MasterEditDialog で編集画面を表示
    • リストビューに編集ボタン付き
    • 追加ダイアログを統合
  2. シンプルなリスト管理から開始

    • ListView.builder で担当者一覧表示
    • Card に編集ボタンを追加

フェーズ 3: 業務連携の準備 (1-2 週間)

  1. 販売画面への担当者紐付機能
  2. 仕入れ画面への担当者紐付機能
  3. 簡易な在庫管理と売上照会

4. テックスタック

カテゴリ ツール
State Management setState (シンプル)
フォーム編集 TextField + TextEditingController
ダイアログ AlertDialog で標準ダイアログ利用
データ永続化 当面はメモリ保持(後日 Sqflite
ロギング 簡易な print 出力

5. デリべラブル

  • MasterEditDialog の実装
  • sample_employee.dart のサンプルデータ追加
  • employee_master_screen.dart の簡素リスト実装(完了)
  • リッチ編集画面の実装
  • ビルドと動作確認

6. 定義済みインターフェース

MasterEditDialog インターフェース:

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 の形式:

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. まとめ

担当者のみから着手し、マスター管理機能とサンプルデータを整備。その後に他のマスタ画面を順次実装する方針で進める。