-
UI:
- Состоит из виджетов, которые отображают информацию для пользователя и принимают пользовательский ввод
UI-компоненты
принимают события (например, нажатие кнопки) и передают ихBLoC
-у для обработки
-
Scope:
- Слой
Scope
создает и управляетBLoC
-ом - Предоставляет
BLoC
ниже по иерархии виджетов
- Слой
-
BLoC:
- Выпускает различные состояния при изменении данных
- При обработке
event
-ов использует метод_performMutation
, которыйemit
-ит разные стейты - Любое состояние
BLoC
-а содержит объектdata
-
Repository:
- Используется для абстрагирования доступа к данным от источников данных (например, сетевой запрос или локальная база данных)
- Имеет метод
currentData
, который возвращает актуальные данные, полученные изDAO
/Service
или другого источника
-
DAO:
- Выполняет конкретные операции с данными, такие как чтение из локальной базы данных или другие операции доступа к данным
-
Service:
- Генерируется посредством библиотеки
swagger_dart_code_generator
- Получает данные с сервера через сетевые запросы
- Генерируется посредством библиотеки
Поток данных в приложении начинается с пользовательских действий, событие передается от UI
к Scope
-у, после достигает BLoC
-а, где выполняется бизнес-логика. При необходимости BLoC
обращается к Repository
, который в свою очередь выбирает источник данных (DAO
/Service
) и возвращает нужные значения. Изменения данных отражаются в состоянии BLoC
-а, которое оповещает UI
для обновления пользовательского интерфейса в соответствии с новыми данными