Мобильному приложению иногда нужно выйти за пределы слоя JavaScript: обратиться к возможности устройства, библиотеке платформы или интеграции, которая должна выполняться нативно. Создание такой связи может требовать повторяющихся объявлений по обе стороны границы.
В предварительном обзоре Modules 2.0 от 8 сентября Expo показывает другой подход к написанию модулей. Аннотации Swift описывают, что нужно открыть для JavaScript, а компилятор берет на себя больше работы по связыванию. Это интересное направление для команд, поддерживающих собственные нативные модули, но с важной оговоркой: первая версия экспериментальная.
Что доступно сейчас
Expo описывает реализацию в SDK 57 как экспериментальную и недокументированную: API еще может измениться. Официальная бета, документация и навык для агента запланированы на SDK 58.
Реализация для Android, поддержка нативных представлений и генерация объявлений TypeScript по-прежнему находятся в работе. Это предварительная версия для оценки, а не свидетельство того, что полноценная кроссплатформенная замена уже выпущена. Поддержка Modules 1.0 продолжается.
Источники и примечания к выпускам: [1]
Попробуйте один модуль, прежде чем планировать миграцию
По словам Expo, Modules 1.0 и 2.0 могут сосуществовать внутри одного модуля. Это позволяет команде переносить по одной функции или свойству, сохраняя работоспособность приложения.
Для полезного эксперимента подойдет небольшая iOS-интеграция с четкими требованиями к проверке. Проверьте значения, ошибки, события и поведение при переходах приложения между состояниями жизненного цикла. На время оценки нового API сохраните реализацию Android и существующий процесс выпуска.
- Начните с небольшого модуля с известным поведением со стороны JavaScript.
- Проверьте границу с нативным кодом, включая ошибки и изменения жизненного цикла.
- Зафиксируйте версии экспериментальных SDK и API, использованные при оценке.
Источники и примечания к выпускам: [1]
Оценивайте тесты производительности в правильном масштабе
В анонсе сообщается об ускорении синхронных нативных вызовов в конкретной тестовой конфигурации релизной сборки. Результаты асинхронных вызовов в этом сравнении остались близкими. Эти измерения описывают вызовы через границу слоев, а не скорость приложения в целом.
Наш подход — сначала оценить удобство поддержки и корректность, а затем измерить реальное узкое место, если оно есть. Команды со стабильными нативными модулями могут следить за предварительной версией, не превращая ее появление в повод для срочного переписывания.
Источники и примечания к выпускам: [1]
Источники и примечания к выпускам
Авторский анализ AtmosGate на основе источников ниже. Утверждения поставщиков и сведения о статусе выпуска приведены со ссылками на их публикации.
- An early look at Expo Modules 2.0
Expo · 8 сентября 2026 г.
