Реализация Bloc Observer во Flutter: руководство с примером кода

Bloc Observer — это термин, обычно используемый в среде Flutter, популярной кроссплатформенной среде разработки мобильных приложений. Во Flutter шаблон BLoC (компонент бизнес-логики) часто используется для управления состоянием приложения. Bloc Observer — это класс, который позволяет разработчикам наблюдать и реагировать на различные события, происходящие в шаблоне BLoC, такие как переходы между состояниями и ошибки.

Вот пример реализации Bloc Observer во Flutter:

import 'package:bloc/bloc.dart';
class SimpleBlocObserver extends BlocObserver {
  @override
  void onEvent(Bloc bloc, Object? event) {
    print(event);
    super.onEvent(bloc, event);
  }
  @override
  void onTransition(Bloc bloc, Transition transition) {
    print(transition);
    super.onTransition(bloc, transition);
  }
  @override
  void onError(BlocBase bloc, Object error, StackTrace stackTrace) {
    print(error);
    super.onError(bloc, error, stackTrace);
  }
}
void main() {
  Bloc.observer = SimpleBlocObserver();
  // ... your app initialization code
}

В приведенном выше примере мы создаем класс SimpleBlocObserver, который расширяет класс BlocObserver, предоставляемый пакетом bloc. Мы переопределяем три метода: onEvent, onTransitionи onError. Эти методы вызываются, когда в шаблоне BLoC происходят события, переходы или ошибки.

Метод onEventвызывается всякий раз, когда событие добавляется в блок. В этом примере мы просто выводим событие на консоль.

Метод onTransitionвызывается всякий раз, когда в блоке происходит переход. Переход представляет собой переход из одного состояния в другое. В этом примере мы печатаем переход на консоль.

Метод onErrorвызывается всякий раз, когда в блоке возникает ошибка. Мы выводим ошибку и связанную с ней трассировку стека на консоль.

Чтобы использовать SimpleBlocObserver, мы присваиваем его экземпляр свойству Bloc.observerв функции main. Это настраивает наблюдателя для использования во всем приложении.