Руководства
Самостоятельный менеджер состояния приложения
Использование Ark MVP без UseCase Forge и предоставление стабильного ModelBinding через BuildContext.
Самостоятельный менеджер состояния приложения
В этом сценарии используется обычный неизменяемый ApplicationState и широковещательный Stream. В реализации функции нет ни одного типа UseCase Forge.
1. Предоставьте состояние и сигналы изменений
Менеджер владеет актуальным ApplicationState, публикует сигналы и предоставляет именованные операции, например toggleTheme() или selectLanguage().
2. Соберите ModelBinding
Композиция читает актуальное состояние приложения и захватывает только необходимые экрану операции. ModelBinding наблюдает Stream менеджера.
3. Предоставьте ModelBinding через контекст
MvpModelProvider<ApplicationModel>.value(
binding: applicationBinding,
child: const ApplicationScreen(),
)
Вложенный MvpView<ApplicationModel, ...> не передаёт прямой аргумент model. Поиск определяется точным типом Model; её интерфейсы не регистрируются автоматически.
4. Безопасно используйте окружение представления
FlutterPresenter.buildViewState(context) может читать Theme, локаль и направление текста при формировании ViewState. Контекст нельзя сохранять. Публичные действия принимают явные параметры или вызывают разрешённые операции Model.
5. Сохраните явное владение
Внешний виджет создаёт и закрывает менеджер. MvpModelProvider.value предоставляет ModelBinding, но не становится владельцем менеджера. MvpView создаёт и закрывает Presenter.
Этот пример показывает область универсальности Ark MVP: пакет задаёт границу представления, а приложение самостоятельно выбирает механизм бизнес-состояния.