MultiBlocProvider
 注册多个Bloc(MultiBlocProvider)
MultiBlocProvider는 Flutter에서 여러 Bloc 또는 Cubit을 하나의 위젯 트리에 제공할 수 있게 하는 위젯입니다. BlocProvider가 단일 Bloc 또는 Cubit을 제공하는 것과 달리, MultiBlocProvider를 사용하면 여러 상태 관리 객체를 한 번에 주입할 수 있습니다. 이는 코드를 깔끔하게 유지하고, 여러 상태 관리 객체를 사용하는 복잡한 위젯 트리에서 특히 유용합니다.
사용 방법
MultiBlocProvider는 리스트 형태로 여러 BlocProvider 객체를 받습니다. 각 BlocProvider는 고유한 Bloc 또는 Cubit을 생성하고 제공합니다.
MultiBlocProvider(
  providers: [
    BlocProvider<BlocA>(
      create: (BuildContext context) => BlocA(),
    ),
    BlocProvider<BlocB>(
      create: (BuildContext context) => BlocB(),
    ),
    // 기타 다른 BlocProvider들...
  ],
  child: MyWidget(),
)
providers: 여러BlocProvider인스턴스를 포함하는 리스트입니다.child:MultiBlocProvider에 의해 제공되는 Bloc 또는 Cubit을 사용할 자식 위젯입니다.
기능
- 효율적인 상태 관리: 여러 Bloc 또는 Cubit을 하나의 위젯 트리에서 관리할 수 있어, 상태 관리가 효율적으로 이루어집니다.
 - 코드 정리: 여러 Bloc 또는 Cubit을 한 곳에서 정의함으로써 코드의 가독성과 구조화를 향상시킵니다.
 - 자동 정리: 각 
BlocProvider는 위젯 트리에서 제거될 때 해당 Bloc 또는 Cubit을 자동으로 닫습니다. 
예시
class MyApp extends StatelessWidget {
  
  Widget build(BuildContext context) {
    return MultiBlocProvider(
      providers: [
        BlocProvider<CounterBloc>(
          create: (context) => CounterBloc(),
        ),
        BlocProvider<ThemeBloc>(
          create: (context) => ThemeBloc(),
        ),
      ],
      child: MyAppView(),
    );
  }
}
class MyAppView extends StatelessWidget {
  // 위젯 구현...
}
이 예시에서 MyApp 위젯은 CounterBloc과 ThemeBloc을 MultiBlocProvider를 통해 제공합니다. MyAppView와 그 하위 위젯들은 이 두 Bloc에 접근할 수 있습니다.
주의 사항
MultiBlocProvider는flutter_bloc패키지의 일부이므로, 이를 사용하기 위해서는 해당 패키지를 프로젝트에 추가해야 합니다.MultiBlocProvider내부에서 제공되는 각 Bloc 또는 Cubit은 서로 다른 상태와 기능을 가지고 있어야 합니다.
MultiBlocProvider를 사용하면 Flutter 애플리케이션에서 복잡한 상태 관리를 효과적으로 처리할 수 있으며, 코드를 더욱 체계적으로 관리할 수 있습니다.