Изучение
Изучение Ark MVP
Полный путь от бизнес-состояния к Model, Presenter, ViewState, ViewEffect и View.
Изучение Ark MVP
Ark MVP задаёт границу представления, но не становится фреймворком приложения или менеджером состояния. Его зона ответственности начинается после создания бизнес-объектов и заканчивается перед отрисовкой конкретного View.
Начните с задачи
Экран часто использует несколько частей бизнес-состояния, но не должен знать, как они загружаются, координируются или хранятся. Ему нужны готовые подписи, доступность действий, признаки загрузки, публичные операции и одноразовые запросы к UI. Прямая передача UseCase, Repository или менеджера приложения в виджет переносит преобразование бизнес-состояния во View и связывает отрисовку с конкретным источником.
Ark MVP вводит одну явную границу адаптации:
- композиция приложения читает полную неизменяемую Model из существующих бизнес-объектов;
- Presenter преобразует Model и текущее окружение представления во ViewState;
- View отображает ViewState и вызывает именованные действия Presenter;
- ViewEffect переносит одноразовую работу: диалог, уведомление или переход.
Model не становится новым владельцем бизнес-состояния. Это снимок только тех данных и операций, которые доступны функции. Presenter не является универсальным контроллером: он отвечает за адаптацию и небольшие локальные решения представления.
Полный поток
бизнес-объекты под управлением приложения
↓ чтение полного снимка
ModelBinding<Model>
↓ изменение Model
Presenter<Model, ViewState, ViewEffect, Environment>
↓ готовое состояние и действия
View
Направление потока принципиально. View не получает Model, UseCase, Repository или сервис. Presenter адаптирует бизнес-информацию для представления, но не становится вторым хранилищем бизнес-состояния.
Рекомендуемый порядок
- Архитектура распределяет ответственность между композицией, Model, Presenter и View.
- Model и ModelBinding объясняет полные снимки и сигналы изменений.
- Presenter рассматривает адаптацию, действия и небольшое локальное состояние представления.
- ViewState, View и ViewEffect отделяет устойчивые данные от одноразовой работы интерфейса.
- Жизненный цикл и владение определяет идентичность сессии, обновление и завершение.
В руководствах те же контракты применяются к одному UseCase, нескольким UseCase и самостоятельному менеджеру состояния приложения.
С чего начать
- Прочитайте «Архитектура», если различие между бизнес-состоянием и состоянием представления пока неочевидно.
- Изучите Model и ModelBinding до подключения любого менеджера состояния.
- Соберите руководство «Один UseCase» как минимальный полный путь Flutter.
- Переходите к нескольким UseCase, только если экран действительно читает независимые бизнес-источники.
- Используйте руководство с менеджером состояния приложения, когда UseCase Forge не участвует в функции.