Что такое архитектуры с state machine, например Redux или ReSwift
Что проверяют
Умеете ли вы работать с состоянием экрана как с данными, а не как с набором флагов во вью-контроллере. Заодно проверяют трезвость взгляда: однонаправленный поток даёт предсказуемость, но платит многословностью, и от вас ждут обоснования выбора на конкретном экране, а не восторга.
Как отвечать
Сначала честно про термин. Такие библиотеки это не конечный автомат в строгом смысле: допустимые переходы не заданы таблицей, а описаны редьюсером. Общее с автоматом одно, и оно главное: состояние явное, и поменять его можно только через описанное событие.
Схема простая. Единственное хранилище держит состояние, представление шлёт действие, редьюсер это чистая функция от пары состояние и действие в новое состояние, подписчики получают новое значение и перерисовываются. Побочные эффекты (сеть, база, таймеры) вынесены в промежуточный слой, редьюсер остаётся чистым и потому тривиально тестируется.
На iOS есть своя специфика. Хранилище обычно живёт на главной очереди, оттуда же идёт рассылка. Подписываться нужно на срез состояния, а не на всё хранилище, иначе любое действие будит все экраны; для среза нужен Equatable и отсечение повторов. Отписка при закрытии экрана обязательна.
Уместно добавить, что SwiftUI сам построен на перерисовке от состояния, поэтому однонаправленная схема ложится на него естественно, а из готовых решений сегодня чаще берут композиционные библиотеки с разбиением хранилища на модули.
Где спотыкаются
Не могут сказать, где живут сетевые запросы, и тянут их либо в редьюсер, либо обратно во вью. Чистота редьюсера не догма ради красоты: как только внутри появляется текущее время, случайное число или запрос, воспроизводимый тест на нём писать уже нельзя.
Держат одно гигантское состояние на всё приложение и подписывают экраны на него целиком. Каждое нажатие тогда перерисовывает половину интерфейса, а сравнение больших структур на главной очереди даёт просадки прокрутки.
Забывают про потоки и время жизни. Изменение хранилища из фонового потока ломает предположение, на котором держится вся схема, а подписчик, не снятый при закрытии экрана, продолжает получать события и удерживать ссылку на уже закрытый контроллер.