Intro
00:00:00По мере расширения приложений Flutter первоначальная зависимость от setState быстро становится громоздкой, что приводит к внедрению provider и, в конечном счете, к необходимости в более надежном решении. BLoC становится мощным инструментом управления состоянием, который четко отделяет бизнес-логику от компонентов пользовательского интерфейса, обеспечивая поддержку кода по мере роста приложений. Этот подход разработан специально для начинающих, стремящихся эффективно масштабировать свои проекты, с подробными рекомендациями можно ознакомиться в официальной документации.
Cubit
00:00:51Новый проект Flutter начинается с создания чистого scaffold, который создает чистый холст для приложения counter. Создается специальная папка для размещения файла Cubit, который использует упрощенный блок для управления состоянием. Класс Cubit, основанный на целых числах, содержит конструктор для начального состояния и методы увеличения и уменьшения значения счетчика с помощью функции emit. Основные команды терминала добавляют необходимый пакет Flutter Block, обеспечивая плавную интеграцию бизнес-логики.
BlocProvider (provides cubit to UI)
00:02:39Для страницы счетчика создается новый файл, на котором виджет без сохранения состояния дополняет пользовательский интерфейс с помощью BlocProvider. BlocProvider используется для создания экземпляра счетчика cubit и добавления его в представление счетчика, начиная с начального значения, равного нулю. Эта настройка четко отделяет бизнес-логику от пользовательского интерфейса, создавая надежную схему для масштабируемого управления состоянием.
BlocBuilder (UI)
00:03:40Приложение Flutter запускается на странице счетчика, которая предоставляет интерфейсу Cubit, используя шаблон "поставщик-потребитель". Каркас используется для центрирования текстового виджета, отображающего целочисленное состояние счетчика крупным шрифтом с помощью BlocBuilder, который отслеживает изменения состояния. Две плавающие кнопки действий, расположенные в столбце, запускают методы увеличения и уменьшения с помощью context.read, обновляя отображение в режиме реального времени.
BlocListener (reacts to state changes)
00:06:50Интеграция BlocListener в приложение счетчика позволяет оперативно реагировать на изменения состояния, вызывая определенные действия, такие как отображение всплывающего предупреждения при заданном значении счетчика. В проекте фиксируется каждый переход состояния, включая такие операции, как увеличение и уменьшение, и каждое изменение регистрируется в консоли для четкой прослеживаемости. Такой подход не только упрощает немедленную обратную связь, но и эффективно масштабируется для управления состоянием в более сложных приложениях.