Почти три из каждых четырёх настольных компьютеров в мире не являются компьютерами Mac. С помощью Expo вы уже могли собирать приложения для iOS на любом из них благодаря EAS Build. Но в эпоху агентной разработки мы столкнулись с еще одним узким местом: агентам требуется мгновенная обратная связь для непрерывной итерации своих изменений в коде. Симулятор iOS поставляется только с Xcode, а Xcode работает только на macOS, поэтому без Mac каждое изменение, сделанное вами или вашим агентом, приходится проверять на реальном iPhone. EAS Simulator устраняет это требование.
С функциональной точки зрения EAS Simulator запускает сеанс симулятора в облаке и транслирует его в вкладку браузера. То, что открывает эта служба, изменит подход к созданию мобильного ПО: любой ноутбук становится машиной для разработки под iOS, любой агент-программист получает реальное устройство для проверки своей работы, а любой человек с URL-адресом может управлять тем же телефоном вместе с вами.
Кит Курак (Keith Kurak), один из наших инженеров, применил EAS Simulator там, где никто из нас еще не пробовал: симулятор iOS с функцией Fast Refresh на ноутбуке Windows on ARM. В этом посте рассказывается о том, что показал Кит, и о пяти возможностях, которые я использовал для разработки приложений.
Предпочитаете видео? Краткая версия здесь:
Что показал Кит: разработка под iOS на машине с Windows
Вот что опубликовал Кит:
Windows on ARM не может запускать Android Studio, а Microsoft отказалась от подсистемы Windows для Android на Snapdragon X. На этом ноутбуке не было никаких симуляторов или эмуляторов. Теперь на нем есть iPhone в вкладке браузера, а изменения в VS Code попадают на него через Fast Refresh.
Все, что вам нужно — это две команды. Вам нужна сборочная версия для разработки (development build), ориентированная на симулятор, поскольку релизная сборка не поддерживает горячую перезагрузку: ее JavaScript фиксируется во время сборки. Затем запустите Metro с туннелем и начните сеанс, указав на него:
Команда выдает вам параметр webPreviewUrl. Откройте его, и ваше приложение запустится на облачном iPhone. Отредактируйте файл, сохраните его, и изменение появится на устройстве. Кит запустил это внутри WSL. Полное пошаговое руководство, включая вариант с Expo Go, находится в документации Run and control.
Уже одно это меняет то, что вы можете создавать на машине с Windows или Linux. Но вот еще пять вещей, которые умеет EAS Simulator и о которых вам стоит знать:
1. Тестирование камеры в приложении на симуляторе
Я создаю приложение для работы с камерой под названием OpenMulticam. Оно производит запись с нескольких камер iPhone одновременно, и его тестирование всегда требовало физического устройства, поскольку в симуляторе никогда не было камеры. Веб-превью EAS Simulator это меняет. В панели его инструментов есть раздел Camera, и при его включении приложение получает симулируемый поток с камеры.
Нажмите запись, стоп и откройте отснятый материал. Весь конвейер захвата камеры работает на устройстве в облаке, а управляете им вы из вкладки браузера.
Две вещи, которые следует иметь в виду при тестировании. Источником по умолчанию является анимированный тестовый паттерн, но вы также можете перетащить видео или фото с вашего компьютера в панель и использовать его в качестве потока. Чтобы внедрение работало, ваше приложение должно использовать стандартные API захвата AVFoundation, как это делает большинство библиотек для работы с камерой.
Одно ограничение, о котором стоит знать: на данный момент панель камеры — это элемент, на который нужно нажимать в браузере. Она пока недоступна для агентов, поэтому агент не может самостоятельно внедрить камеру. Все остальное в этом посте агент делать умеет.
2. Позвольте вашему агенту самостоятельно проверять свою работу
Облачный агент или ваш локальный агент-программист может управлять симулятором через agent-device. Argent тоже подходит, как и computer use, если вы его предпочитаете.
Самый быстрый способ настроить это — использовать навык eas-simulator. Установите его в Claude Code, Cursor или Codex, скажите агенту, что нужно проверить, и он сделает все остальное: соберет приложение, запустит облачный сеанс, понажимает на экраны и отправит обратно скриншоты. По завершении вы просматриваете запись сеанса вместо того, чтобы самостоятельно клонировать ветку и проводить тестирование.
3. Делитесь телефоном с вашей командой по URL
Превью представляет собой веб-сайт. Отправьте URL-адрес коллеге, и он увидит то, над чем вы работаете, в режиме реального времени, а также сможет взаимодействовать с симулятором. Вы, ваши коллеги, ваши облачные агенты и ваши локальные агенты — все вы можете работать на одном устройстве одновременно.
Если вам нужен только общий доступ для просмотра без управления агентом, для этого существует специальный тип сеанса:
В превью также есть кнопка полноэкранного режима, которая убирает все лишнее, оставляя только устройство.
4. Повторяйте каждый сеанс, включая действия вашего агента
Каждый сеанс отображается на странице вашего проекта на expo.dev.
Откройте завершенный сеанс, и вы получите полное видео происходящего на устройстве, а также таймлайн каждого взаимодействия. В сеансе из видео вы можете посмотреть, как агент нажимает на элементы приложения, тестируя запрошенные мной функции, со скриншотами на каждом шаге.
Я начал использовать эти ссылки в качестве доказательств в пулл-реквестах. Формулировка «Вот баг, вот исправление, вот запись сеанса» звучит гораздо убедительнее, чем «поверьте на слово, я все заприметил».
5. Переносите приложения с любого фреймворка
Вашему приложению не обязательно использовать Expo или React Native. Устройство запускается чистым, и вы можете загрузить на него любую сборку симулятора iOS или Android APK: SwiftUI, Kotlin, Flutter, все, что работает на симуляторе.
С чего начать
EAS Simulator находится в режиме превью с ограниченным доступом, и мы открываем к нему доступ из листа ожидания партиями.
- Присоединяйтесь к листу ожидания на expo.dev/services/simulators.
- Прочитайте документацию. В разделе Get the started описаны типы сеансов, а в Run and control an app содержится рецепт Fast Refresh из этого поста.
- Дайте доступ своему агенту. Установите навык eas-simulator и попросите его проверить что-нибудь на реальной среде выполнения устройства.
Если вам нужен полный учебник по настройке этого на вашей собственной машине, дайте нам знать. Нам также интересно, как бы вы использовали облачный симулятор. Поделитесь своими сценариями использования в канале #eas-simulator нашего сообщества в Discord.
Часто задаваемые вопросы
Что такое EAS Simulator? Это служба от Expo, которая запускает удаленный симулятор iOS или эмулятор Android на инфраструктуре EAS. Вы управляете им из CLI, через REST API, с помощью агента-программиста или браузера. Поддерживаемые сеансы iOS включают интерактивное веб-превью. Сервис находится в режиме превью с ограниченным доступом.
Можно ли собирать приложения для iOS на Windows с помощью Expo? Да. EAS Build компилирует приложение на инфраструктуре Mac от Expo, и EAS Simulator также запускает там симулятор iOS. Сборочная версия для разработки, подключенная к Metro через туннель, обеспечивает работу Fast Refresh в браузере. Интерфейс командной строки (CLI) работает в WSL.
Можно ли тестировать функции камеры в симуляторе iOS? С веб-превью EAS Simulator — да. Раздел Camera на панели инструментов предоставляет приложению симулируемый поток с камеры: анимированный тестовый паттерн по умолчанию либо добавленные вами фото или видео. Приложение должно использовать стандартные API захвата AVFoundation.
Может ли ИИ-агент использовать EAS Simulator? Да. Агенты управляют устройством через agent-device или Argent. Навык eas-simulator обучает Claude Code, Cursor и Codex полному циклу: проверка доступа, сборка, сеанс, управление устройством, сбор доказательств, очистка.
Обязательно ли моему приложению использовать Expo или React Native? Нет. Подойдет любая сборка iOS Simulator или Android APK.
Можно ли поделиться сеансом EAS Simulator с кем-нибудь? Да. Веб-превью представляет собой URL-адрес. Любой, у кого он есть, может одновременно просматривать то же устройство и взаимодействовать с ним. Используйте тип сеанса только с веб-превью, если вам не требуется управление агентом.
Полезные ссылки
- Документация по EAS Simulator: https://docs.expo.dev/preview/eas-simulator/introduction/
- Список ожидания: https://expo.dev/services/simulators
- Запуск приложения и управление им: https://docs.expo.dev/preview/eas-simulator/run-and-control/
- навык eas-simulator:
- устройство агента: https://docs.expo.dev/agents/agent-device/
- serve-sim, инструмент, лежащий в основе веб-превью: https://github.com/expo/serve-sim
- Публикация Кита: https://x.com/llamaluvr/status/2094414188181332015
- OpenMulticam:










