App State
Переменные App State хранят состояние приложения целиком: они доступны на любой странице и в любом компоненте. Сюда кладут то, что нужно нескольким частям приложения сразу, — настройки пользователя, токен авторизации, содержимое корзины.

Признак, по которому выбирают App State: одни и те же данные читаются и меняются из разных мест. Корзина в магазине — типичный случай: товары нужны и на странице каталога, и на экране оформления заказа.
А вот временным данным здесь не место. Введённый в форму текст, который нигде больше не нужен, лучше держать в состоянии страницы или компонента: такие переменные исчезают вместе со своим экраном и не занимают память приложения.
Переменные App State
Разберём работу с App State на примере корзины в магазине.
Создание переменной
Переменные создаются из левого меню навигации.
Свойства переменной
- isList — поле является списком (например, список строк или список объектов собственного типа).
- Persisted — значение сохраняется на устройство и восстанавливается при следующем запуске. Без этого флага переменная обнуляется при перезапуске приложения.
Что именно происходит при включённом Persisted, разобрано в руководстве по сгенерированному коду.
Использование
Созданная переменная появляется в меню Set from Variable. Например, на странице корзины по ней можно пройтись циклом и вывести каждый товар.

Действие Update App State
Изменить App State можно из панели действий в любом месте приложения — по нажатию на виджет страницы или компонента, а также из кастомного кода.
При обновлении через редактор действий доступны следующие настройки.

Тип перестроения
Определяет, что перерисуется после изменения переменной.
- Rebuild All Pages — перестроить все страницы приложения.
- Rebuild Current Page — перестроить только текущую страницу.
- No Rebuild — не перестраивать ничего.
Как изменения состояния обрабатываются внутри при каждом варианте Update Type, показано в руководстве по FFAppState.
Ниже — короткий пример: к кнопке «Add to Bag» добавляется действие, которое кладёт данные товара в список корзины.
Если нужно перестроить страницу или компонент, не меняя переменных, используйте действие Rebuild.
Частые вопросы
Почему в App State доступны не все типы переменных?
Некоторые типы — например, Firestore Documents и Supabase Row — можно использовать в Page State и Component State, но не в App State. Причина в том, что переменные App State глобальны и живут в памяти всё время работы приложения, а с включённым Persisted ещё и записываются в локальное хранилище устройства.
Хранить там документы и другие тяжёлые структуры — прямой путь к проблемам с памятью и размером хранилища, особенно на слабых устройствах. Поэтому App State ограничен лёгкими типами, а Page и Component State, у которых область видимости меньше и жизнь короче, допускают больше свободы.
Если такие данные всё же нужны, держите их в состоянии страницы или компонента.