Об этом проекте

Expo Device Hub — это плагин Expo DevTools, предоставляющий единую панель управления для симуляторов iOS и эмуляторов Android. Он позволяет разработчикам просматривать устройства и взаимодействовать с ними прямо из браузера, не покидая рабочий процесс. При запуске `expo start` плагин регистрирует панель устройств, которая показывает живую трансляцию любого устройства и обеспечивает прямое взаимодействие. Ключевые возможности: - Живая трансляция симуляторов iOS и эмуляторов Android в браузере. - Прямое взаимодействие: касания, свайпы, прокрутка и ввод текста на устройстве. - Запуск, выключение и добавление устройств без открытия Xcode или Android Studio. - Поддержка системной светлой/тёмной темы и переключение оформления устройства. - Подача PNG-изображения в камеру эмулятора Android из раздела Camera инспектора. Требования: для симуляторов iOS нужна macOS с Xcode; для эмуляторов Android — Android SDK (emulator, adb). Использование Hub внутри приложения Expo требует Expo SDK 57 или новее. Использование: установите плагин командой `npx expo install expo-device-hub`, затем запустите `npx expo start`. В терминале появится ссылка. Плагин также можно запускать автономно через `npx expo-device-hub`. Репозиторий представляет собой Bun workspace, оркестрируемый с помощью Turborepo. Пакеты включают основной плагин DevTools, слой device-client (@expo/hub-client), который унифицирует различающиеся проводные протоколы serve-sim (MJPEG/H.264, бинарные пакеты касаний) и serve-emu (H.264 через WebCodecs, JSON-жесты), набор UI-компонентов без зависимостей, построенный на токенах styleguide Expo, утилиты для устройств Apple и Android, а также вендоренные серверы serve-sim/serve-emu. Пример приложения Expo демонстрирует плагин так, как его увидит конечный пользователь. Разработка: установите зависимости с помощью Bun 1.3.14 и соберите все пакеты командой `bun run build`. Пример приложения можно запустить через `bun start`. Для итерации по UI плагин можно запускать как автономное веб-приложение Expo с быстрым обновлением Metro; сервер устройств бандлится, поэтому изменения в src/server требуют выполнения `bun run build:server`.