🧩

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それぞれ必要)
  • 小規模アプリには過度な構造

ユースケース

大規模チームプロジェクトでの役割分離 複雑なフォームバリデーションロジックの分離