Все обзоры
2 мин на чтение

Expo Modules 2.0: первый взгляд на более простой способ подключения нативного кода

Предварительный обзор Expo от 8 сентября показывает, как сократить код связи с нативными модулями. Первый API экспериментальный: iOS в SDK 57, официальная бета запланирована на SDK 58.

Первый взгляд на Expo Modules 2.0 — редакционная обложка обзоров AtmosGate

Мобильному приложению иногда нужно выйти за пределы слоя JavaScript: обратиться к возможности устройства, библиотеке платформы или интеграции, которая должна выполняться нативно. Создание такой связи может требовать повторяющихся объявлений по обе стороны границы.

В предварительном обзоре Modules 2.0 от 8 сентября Expo показывает другой подход к написанию модулей. Аннотации Swift описывают, что нужно открыть для JavaScript, а компилятор берет на себя больше работы по связыванию. Это интересное направление для команд, поддерживающих собственные нативные модули, но с важной оговоркой: первая версия экспериментальная.

Меньше повторяющегося связующего кода

Уже включенные в SDK 57 макросы iOS охватывают объявления модулей, доступные из JavaScript члены, записи, разделяемые объекты и события. Вместо отдельного описания каждого метода в прежнем стиле определения модуля разработчики могут добавлять аннотации к Swift-коду рядом с реализацией поведения.

Основная возможность для упрощения поддержки — более понятный код нативной интеграции. Меньше шаблонного связующего кода может сделать модуль удобнее для проверки, но не отменяет тестирование контракта с JavaScript, поведения в течение жизненного цикла и пограничных случаев, специфичных для платформы.

Источники и примечания к выпускам: [1]

Что доступно сейчас

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 на основе источников ниже. Утверждения поставщиков и сведения о статусе выпуска приведены со ссылками на их публикации.

  1. An early look at Expo Modules 2.0

    Expo · 8 сентября 2026 г.