Back

Начало работы с Expo: быстрый способ создания приложений на React Native

Начало работы с Expo: быстрый способ создания приложений на React Native

Если вы JavaScript-разработчик, который хочет создавать мобильные приложения без необходимости разбираться с Xcode или Android Studio, вы попали по адресу. React Native позволяет создавать кроссплатформенные приложения с помощью JavaScript, но первоначальная настройка может быть пугающей. Вот здесь и приходит на помощь Expo — он устраняет сложности и позволяет сразу приступить к разработке.

Ключевые моменты

  • Expo устраняет необходимость в нативной настройке для разработки на React Native
  • Создавайте, тестируйте и развертывайте приложения без Xcode или Android Studio
  • Expo Go позволяет мгновенно тестировать на физических устройствах через QR-коды
  • EAS Build обрабатывает production-сборки и развертывание в магазинах приложений в облаке

Что такое Expo и почему его стоит использовать?

Expo — это фреймворк и платформа, построенная поверх React Native, которая берет на себя самые болезненные аспекты мобильной разработки. Думайте о нем как о React Native со всем необходимым из коробки. Вы пишете на JavaScript, а Expo обрабатывает нативную конфигурацию, процесс сборки и API устройств.

Вот что делает Expo особенно полезным:

  • Не требуется нативная настройка: пропустите установку Xcode, Android Studio или настройку инструментов сборки
  • Мгновенное тестирование: просматривайте изменения на телефоне за считанные секунды с помощью Expo Go
  • Управляемый workflow: Expo обрабатывает сертификаты, подпись приложений и конфигурацию сборки
  • Встроенные API: доступ к камере, геолокации, уведомлениям и многому другому без нативного кода
  • Кроссплатформенность по умолчанию: одна кодовая база работает на iOS, Android и web

Создание первого приложения Expo с помощью create-expo-app

Запуск нового проекта React Native с Expo требует всего одной команды. Откройте терминал и выполните:

npx create-expo-app my-app
cd my-app
npx expo start

Вот и всё. Никаких глобальных установок, никакой сложной конфигурации. Команда create-expo-app настраивает всё необходимое: структуру проекта, зависимости и конфигурационные файлы.

Когда вы запустите npx expo start, в терминале появится QR-код. Вот где начинается магия.

Цикл разработки: пишите код, сохраняйте и мгновенно видите изменения

Тестирование с Expo Go

Скачайте приложение Expo Go на ваше iOS или Android устройство. Отсканируйте QR-код из терминала, и ваше приложение мгновенно загрузится на телефоне. Никаких USB-кабелей, никакого процесса сборки.

Внесите изменение в код:

// App.js
import { Text, View } from 'react-native';

export default function App() {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text style={{ fontSize: 24 }}>Hello, Expo!</Text>
    </View>
  );
}

Сохраните файл, и ваш телефон обновится немедленно. Этот цикл горячей перезагрузки делает разработку на React Native похожей на веб-разработку — быстрой и итеративной.

Когда нужно больше: Development Builds

Expo Go покрывает большинство потребностей разработки, но иногда вам нужен кастомный нативный код или специфические нативные модули. Вот тогда вы создаете development build — по сути, кастомную версию Expo Go, адаптированную под ваше приложение.

npx expo install expo-dev-client
npx expo run:ios  # или run:android

Development builds дают вам гибкость bare React Native с удобством инструментов Expo.

Сборка и развертывание с EAS Build

Когда вы готовы к релизу, EAS Build обрабатывает сложный процесс сборки в облаке. Не нужно поддерживать окружения для сборки или вручную работать с сертификатами.

Настройка EAS Build

Сначала установите EAS CLI:

npm install -g eas-cli
eas login

Настройте проект для сборки:

eas build:configure

Создание production-сборок

Соберите для iOS или Android одной командой:

eas build --platform ios
eas build --platform android

EAS Build обрабатывает:

  • Подпись кода и сертификаты
  • Нативные зависимости
  • Оптимизацию сборки
  • Распространение в магазины приложений

Сборки выполняются на серверах Expo, поэтому вам не нужен Mac для сборки iOS-приложений. По завершении вы получаете ссылку для скачивания бинарного файла приложения или прямую отправку в магазины приложений.

Полный workflow Expo

Вот как всё работает вместе:

  1. Инициализация: используйте create-expo-app для запуска проекта
  2. Разработка: пишите JavaScript, тестируйте мгновенно с Expo Go
  3. Итерация: горячая перезагрузка показывает изменения немедленно
  4. Сборка: используйте EAS Build, когда готовы к production
  5. Развертывание: отправляйте напрямую в магазины приложений или распространяйте внутри компании
  6. Обновление: отправляйте JavaScript-обновления over-the-air без проверки в магазине приложений

Этот workflow устраняет традиционные болевые точки разработки на React Native. Больше никаких проблем «у меня на машине работает», никаких головных болей с сертификатами, никаких платформо-специфичных проблем со сборкой.

Заключение

Expo превращает разработку на React Native из сложного, платформо-специфичного процесса во что-то столь же простое, как веб-разработка. С create-expo-app вы пишете и тестируете код за минуты, а не часы. С Expo Go вы итерируете со скоростью веб-разработки. А с EAS Build вы развертываете без традиционных накладных расходов мобильной разработки.

Если вы колебались насчет мобильной разработки из-за сложности настройки, Expo устраняет этот барьер. Начните с npx create-expo-app, и у вас будет работающее приложение на телефоне раньше, чем остынет ваш кофе.

Часто задаваемые вопросы

Да, вы можете добавить Expo в существующие проекты React Native, используя модули Expo. Выполните npx install-expo-modules в директории вашего проекта, чтобы интегрировать API и инструменты разработки Expo, сохраняя текущую настройку.

Expo Go включает фиксированный набор нативных модулей и не может запускать кастомный нативный код. Если вам нужны специфические нативные библиотеки или кастомные модули, создайте development build, который обеспечивает полную гибкость, сохраняя при этом опыт разработчика Expo.

EAS Build предлагает бесплатный тарифный план с ограниченным количеством минут сборки в месяц. Платные планы начинаются от $29 в месяц для индивидуальных разработчиков и масштабируются в зависимости от частоты сборок и размера команды. Вы также можете собирать локально бесплатно, используя команды expo run.

Да, вы можете выполнить prebuild вашего Expo-проекта для генерации нативных директорий iOS и Android, получив полный контроль над нативным кодом. Это сохраняет библиотеки Expo, позволяя при необходимости прямые нативные модификации.

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay