🧩
BLoCパターン
Business Logic Componentで関心の分離
BLoC(Business Logic Component)はGoogleが提案したFlutterアーキテクチャパターンです。
UIからEventを発生させるとBLoCがビジネスロジックを処理し、新しいStateをemitします。UIはStateのみを購読して画面を更新します。
flutter_blocパッケージが最も広く使われ、Cubit(簡易版)とBloc(イベントベース)の2つのアプローチを提供します。
実装ステップ
1
Cubit開始:State定義 → Cubitクラス作成 → BlocBuilderでUI接続
2
Blocに切替:Eventクラス定義 → on<Event>()ハンドラ作成
3
BlocProviderで依存性注入、MultiBlocProviderで複数Bloc提供
4
bloc_testパッケージでビジネスロジック単体テスト
メリット
- ✓ ビジネスロジック100%単体テスト可能
- ✓ イベントログでデバッグが容易
デメリット
- ✗ ボイラープレートコードが多い(Event、State、Blocそれぞれ必要)
- ✗ 小規模アプリには過度な構造
ユースケース
大規模チームプロジェクトでの役割分離
複雑なフォームバリデーションロジックの分離