Изучение

Изучение Ark MVP

Полный путь от бизнес-состояния к Model, Presenter, ViewState, ViewEffect и View.

v1.1.0Начальный уровень

Изучение Ark MVP

Ark MVP задаёт границу представления, но не становится фреймворком приложения или менеджером состояния. Его зона ответственности начинается после создания бизнес-объектов и заканчивается перед отрисовкой конкретного View.

Начните с задачи

Экран часто использует несколько частей бизнес-состояния, но не должен знать, как они загружаются, координируются или хранятся. Ему нужны готовые подписи, доступность действий, признаки загрузки, публичные операции и одноразовые запросы к UI. Прямая передача UseCase, Repository или менеджера приложения в виджет переносит преобразование бизнес-состояния во View и связывает отрисовку с конкретным источником.

Ark MVP вводит одну явную границу адаптации:

  • композиция приложения читает полную неизменяемую Model из существующих бизнес-объектов;
  • Presenter преобразует Model и текущее окружение представления во ViewState;
  • View отображает ViewState и вызывает именованные действия Presenter;
  • ViewEffect переносит одноразовую работу: диалог, уведомление или переход.

Model не становится новым владельцем бизнес-состояния. Это снимок только тех данных и операций, которые доступны функции. Presenter не является универсальным контроллером: он отвечает за адаптацию и небольшие локальные решения представления.

Полный поток

text
бизнес-объекты под управлением приложения
        ↓ чтение полного снимка
ModelBinding<Model>
        ↓ изменение Model
Presenter<Model, ViewState, ViewEffect, Environment>
        ↓ готовое состояние и действия
View

Направление потока принципиально. View не получает Model, UseCase, Repository или сервис. Presenter адаптирует бизнес-информацию для представления, но не становится вторым хранилищем бизнес-состояния.

Рекомендуемый порядок

  1. Архитектура распределяет ответственность между композицией, Model, Presenter и View.
  2. Model и ModelBinding объясняет полные снимки и сигналы изменений.
  3. Presenter рассматривает адаптацию, действия и небольшое локальное состояние представления.
  4. ViewState, View и ViewEffect отделяет устойчивые данные от одноразовой работы интерфейса.
  5. Жизненный цикл и владение определяет идентичность сессии, обновление и завершение.

В руководствах те же контракты применяются к одному UseCase, нескольким UseCase и самостоятельному менеджеру состояния приложения.

С чего начать

  • Прочитайте «Архитектура», если различие между бизнес-состоянием и состоянием представления пока неочевидно.
  • Изучите Model и ModelBinding до подключения любого менеджера состояния.
  • Соберите руководство «Один UseCase» как минимальный полный путь Flutter.
  • Переходите к нескольким UseCase, только если экран действительно читает независимые бизнес-источники.
  • Используйте руководство с менеджером состояния приложения, когда UseCase Forge не участвует в функции.