К содержанию

Wiki · Технологии разработки

Expo

6 мин чтенияОбновлено 09.10.2026Автор: Сергей ЧерняковСоавторы: Евгений Баев

Expo – это открытый фреймворк и набор облачных сервисов для разработки мобильных приложений на React Native: он берёт на себя настройку проекта, доступ к функциям телефона, сборку и обновления. Документация React Native советует начинать новые приложения с такого фреймворка и приводит Expo как основной пример.

Заказчик обычно слышит про Expo в двух ситуациях: подрядчик предлагает сделать на Expo, потому что так быстрее, или, наоборот, говорит, что на Expo задача не решается. Обе фразы стоит уточнить: многие старые ограничения Expo уже сняты.

Из чего состоит Expo

  • Expo SDK: готовые модули для камеры, уведомлений, картинок, файлов и других функций телефона.
  • Expo Router: навигация по структуре папок, как адреса страниц на сайте.
  • Expo Go: приложение-песочница, в котором проект открывают на телефоне без сборки. Сами авторы называют его учебным инструментом.
  • Development build: собственная отладочная сборка приложения со всеми нужными нативными модулями.
  • EAS (Expo Application Services): облачные сервисы сборки, отправки в магазины и обновлений. Они необязательны, есть бесплатный тариф и платные планы.

Сам фреймворк бесплатный и открыт под лицензией MIT. Компания Expo входит в число учредителей фонда React Foundation, которому с 2026 года принадлежит React Native.

Путь приложения от кода до магазина

  1. Код пишут на React и TypeScript, а название, иконку и разрешения приложения задают в конфигурации Expo.
  2. Команда prebuild генерирует из конфигурации нативные проекты для iOS и Android. Нестандартные настройки вносят плагинами конфигурации. Шаг необязательный: нативные проекты можно вести и вручную.
  3. Сборка идёт в облаке EAS Build, локально той же командой с флагом --local или обычным путём через Android Studio и Xcode.
  4. Публикация: EAS Submit загружает подписанный файл (.aab для Android, .ipa для iOS) в Google Play Console и App Store Connect. Можно загрузить и вручную.
  5. Исправления JavaScript-части доставляют через EAS Update или собственный сервер обновлений.
eas build --platform android
eas submit --platform ios
Пять шагов приложения на Expo: код и конфигурация, prebuild, сборка в EAS или локально, публикация в магазины и обновления по воздуху
Путь приложения на Expo до магазина

Что можно обновить без магазина

Для бизнеса в Expo практичнее всего обновления по воздуху. Исправить опечатку, поменять текст акции или починить ошибку в логике можно без новой сборки и проверки в магазине: пользователи получат изменения при одном из следующих запусков приложения.

У таких обновлений есть граница. Через EAS Update меняются JavaScript, стили и картинки. Новый нативный модуль, изменение разрешений или переход на новую версию Expo SDK требуют новой сборки и публикации через магазин. И сами обновления должны соответствовать правилам App Store и Google Play, документация Expo прямо об этом предупреждает.

Сравнение обновлений Expo: JavaScript, стили, картинки и тексты обновляются через EAS Update, нативные модули и разрешения только новой сборкой
Что можно обновить без магазина

Когда Expo хватает, а когда нет

Раньше главным ограничением было то, что в Expo нельзя добавить свой нативный код. Сейчас в development build подключается любая библиотека React Native, а недостающий модуль пишут на Swift и Kotlin через API модулей Expo. Выход из Expo, который раньше называли eject, документация считает устаревшим понятием.

Чего Expo не даёт сам по себе:

  • Expo Go не подходит для боевого приложения: вашего нативного кода в нём нет, а версия в App Store может отставать от свежего SDK. В начале мая 2026 года Expo Go для SDK 55 всё ещё не был одобрен Apple.
  • Нативные изменения не доставить обновлением по воздуху, только новой версией в магазине.
  • Если нужной функции телефона нет ни в SDK, ни в сторонних библиотеках, модуль придётся писать на Swift и Kotlin. Это работа нативного разработчика.

Цена, сборка и обновления приложения

Сколько стоит Expo для коммерческого приложения?

Сам фреймворк ничего не стоит: Expo SDK, инструменты командной строки и Expo Go открыты под лицензией MIT. Платить можно только за облачные сервисы EAS, у которых кроме платных планов есть и бесплатный тариф. Пользоваться ими не обязательно, а условия оплаты из России лучше уточнить у Expo до старта.

Чем Expo отличается от «голого» React Native?

Это не конкуренты: проект на Expo всегда остаётся проектом на React Native. React Native превращает код на React в приложение для iOS и Android, а Expo добавляет поверх него готовые модули, навигацию, сборку и обновления.

Почему Expo Go не годится для боевого приложения?

В Expo Go нет вашего нативного кода, а сборка Expo Go в App Store не всегда успевает за новым SDK: в мае 2026 года Apple ещё не одобрила её для SDK 55. Поэтому разработку переводят на development build как можно раньше.

Как собрать приложение на Expo без облака EAS?

Локально: той же командой eas build с флагом --local или через Android Studio и Xcode, предварительно сгенерировав нативные проекты через prebuild. Облако удобно, но без него можно обойтись.

Какие исправления доходят до пользователей без проверки в магазине?

Через EAS Update без магазина доставляют изменения в JavaScript, стилях и картинках: поправить опечатку, сменить текст акции, починить логику. Пользователь получит их при одном из ближайших запусков приложения. Новый нативный модуль, другие разрешения или переход на свежий SDK так не выпустить, а сами обновления должны укладываться в правила App Store и Google Play.

Как добавить в приложение на Expo свой нативный модуль?

Подключить готовую библиотеку React Native в development build, а если такой нет, написать модуль самим, на Swift для iOS и Kotlin для Android, с помощью Expo Modules API. Ограничение на собственный нативный код есть только у Expo Go.

Что означал eject и почему о нём больше не говорят?

Так называли выход из Expo на обычный проект React Native, когда требовался свой нативный код. Документация Expo теперь считает это понятие устаревшим: нативные проекты генерирует prebuild из конфигурации, а при желании их ведут вручную, не уходя из Expo.

Кому должен принадлежать проект в Expo и как передать его компании?

Компании. Для этого в Expo заводят аккаунт организации, раздают участникам роли и переносят туда проект с личного аккаунта разработчика. Заодно проверьте, что App Store, Google Play и сертификаты подписи тоже оформлены на компанию.

Какую версию Expo SDK ставить осенью 2026 года?

Стабильный SDK 57: он вышел 30 июня 2026 года и работает на React Native 0.86. SDK 58 с React Native 0.88 пока в бете, для боевого приложения лучше дождаться релиза.

Версии и поддержка

Expo SDK выходит вслед за React Native. На начало октября 2026 года актуален SDK 57 (вышел 30 июня 2026 года, внутри React Native 0.86), а SDK 58 с React Native 0.88 с середины сентября проходит бета-тестирование. SDK 54 был последним, где можно было остаться на старой архитектуре React Native. Вывод простой: приложение на Expo нужно обновлять так же регулярно, как на чистом React Native.

Аккаунты, оплата EAS и RuStore

  • Аккаунты. Проект в Expo, App Store и Google Play должен принадлежать компании. В Expo для этого есть аккаунты организаций с ролями участников, а проект можно передать с аккаунта на аккаунт.
  • Облачные сервисы. Условия оплаты EAS из России уточняйте у Expo. Если облако недоступно, сборку делают локально или на своём сервере сборки.
  • Публикация. Одну и ту же Android-сборку можно выложить в Google Play и в RuStore.

Как понять, на чём собрано приложение

В репозитории проекта в файле package.json есть пакет expo, рядом лежит конфигурация app.json или app.config с разделом expo, а если используются облачные сервисы, то и файл eas.json.

Что тормозит выпуск и обновление приложения

  • Вести разработку только в Expo Go и откладывать переход на development build до последнего.
  • Пытаться выпустить нативное изменение через EAS Update, хотя такие правки доходят до пользователей только новой сборкой.
  • Держать проект и сертификаты на личном аккаунте разработчика.
  • Пропускать версии SDK, а потом перепрыгивать через несколько сразу.

Приложения на React Native и Expo делаем в составе услуги разработка мобильного приложения, кабинеты клиентов в услуге разработка личного кабинета. Если приложение уже работает на Expo, берём его на доработку и поддержку.

Документация и журнал изменений

См. также: Мобильная версия сайта, Юзабилити, Мобильное приложение, React.

Остались вопросы по теме «Expo»?

Напишите нам в Telegram или MAX. Ответит специалист, который отвечает за эту тему, или руководитель проектов в рабочее время.

Сергей ЧерняковОтвечает по темеСергей ЧерняковWeb-разработчик

Посчитайте стоимость проекта за 2 минуты

Калькулятор соберёт смету по нашим тарифам: сайт, дизайн, интеграции и поддержка.