Руководства

Самостоятельный менеджер состояния приложения

Использование Ark MVP без UseCase Forge и предоставление стабильного ModelBinding через BuildContext.

v0.1.0-dev.1Средний уровень

Самостоятельный менеджер состояния приложения

В этом сценарии используется обычный неизменяемый ApplicationState и широковещательный Stream. В реализации функции нет ни одного типа UseCase Forge.

1. Предоставьте состояние и сигналы изменений

Менеджер владеет актуальным ApplicationState, публикует сигналы и предоставляет именованные операции, например toggleTheme() или selectLanguage().

2. Соберите ModelBinding

Композиция читает актуальное состояние приложения и захватывает только необходимые экрану операции. ModelBinding наблюдает Stream менеджера.

3. Предоставьте ModelBinding через контекст

dart
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: пакет задаёт границу представления, а приложение самостоятельно выбирает механизм бизнес-состояния.

ARKTELOS

Инженерные системы для программного обеспечения, которое обязано выдерживать нагрузку.