В чем разница между Expo CLI и React Native CLI?
React Native предоставляет два способа создания проекта.
Первый:
npm install -g expo-cli
Во-вторых:
npm install -g react-native-cli
так что же различается между ними и что следует использовать, если мы создаем реагирующее нативное приложение?
1 ответ
Реагировать на родной init:
Преимущества:
- Вы можете добавить собственные модули, написанные на Java/Objective-C (вероятно, единственный, но самый сильный)
Недостатки:
- Требуется Android Studio и XCode для запуска проектов
- Вы не можете разрабатывать для iOS без Mac
- Устройство должно быть подключено через USB, чтобы использовать его для тестирования
- Шрифты необходимо импортировать вручную в XCode
- Если вы хотите поделиться приложением, вам нужно отправить весь файл.apk / .ipa
- Не предоставляет JS API из коробки, например Push-Notification, Asset Manager, их нужно устанавливать вручную и связывать с npm, например
- Правильная настройка рабочего проекта (включая настройку устройства) довольно сложна и может занять время
Экспо:
Преимущества:
- Настройка проекта проста и может быть выполнена за считанные минуты
- Вы (и другие люди) можете открыть проект, пока вы над ним работаете
- Поделиться приложением просто (через QR-код или ссылку), вам не нужно отправлять весь файл.apk или.ipa
- Не требуется сборка для запуска приложения
- Интегрирует некоторые базовые библиотеки в стандартный проект (Push-уведомления, Asset Manager,...)
- Вы можете извлечь его из ExpoKit и интегрировать собственный код, продолжая использовать некоторые функции Expo, но не все
- Expo может создавать файлы.apk и.ipa (возможно распространение в магазины с помощью Expo)
Недостатки:
- Вы не можете добавлять нативные модули (возможно, для некоторых из них)
- Вы не можете использовать библиотеки, которые используют нативный код в Objective-C/Java
- Стандартное приложение Hello World размером около 25 МБ (из-за встроенных библиотек)
- Если вы хотите использовать: FaceDetector, ARKit o Платежи, вам нужно вывести их в ExpoKit
- Извлечение его в ExpoKit имеет компромисс между функциями Expo, например, вы не можете поделиться через QR-код
- При извлечении в ExpoKit вы ограничены исходной версией реакции, которая поддерживается ExpoKit в данный момент.
- Отладка в ExpoKit (с нативными модулями) намного сложнее, поскольку в нем смешаны два языка и разные библиотеки (больше нет официальной поддержки Expo)
И вы можете использовать любой, который соответствует вашим требованиям приложений