Реагировать нативный против CRNA

Я хочу начать с разработки собственных приложений и мне нужна помощь, чтобы решить, по какому пути мне идти.

Основной вопрос заключается в следующем: я должен пойти с реагировать родной или создать реагировать родное приложение?

Из того, что я понимаю, CRNA действительно реагирует на использование клиента и инструментов expo с более удобным использованием (учетная запись dev не требуется и т.д.)

Я вижу преимущества использования CRNA по сравнению с нативным реагированием (нет необходимости настраивать зависимости, быстрее начинать разработку, не требуется учетная запись iPhone dev или xcode + android combi и т.д.)

Однако, поскольку включены не все нативные библиотеки, я все равно чувствую необходимость экспортировать свое приложение на более позднем этапе и продолжаю работать с xcode и android studio, как и раньше.

Так что, если CRNA - это просто хороший способ начать все, то я бы сразу пошел на ванильную реакцию, потому что вообще не вижу смысла во временном решении.

Кроме того, и, возможно, вы можете поправить меня в этом, мне не нравится идея иметь еще одну обертку поверх моего приложения, если только нет некоторых более важных преимуществ, которые я упустил.

Не могли бы вы поделиться своим опытом по этому вопросу? Если в прошлом вы разрабатывали приложения с реагированием на натив, по какому пути вы пошли и по какому пути вы пойдете в будущем? Реагировать на нативную, CRNA или реагировать на нативную и экспозиционную среду?

Заранее спасибо.

Ответ 1

Привет, я также расскажу о своем опыте по этой теме.

Поскольку у меня есть фон переднего конца и я не знаком с XCode или Android Studio, я решил начать разработку моего собственного приложения из CRNA.

Действительно, только с текстовым редактором, исключительно с javascript и использованием встроенных компонентов SDK для экспонирования, я быстро смог реализовать и опубликовать в Play Store довольно просто приложение. То, что я нахожу поистине потрясающим:)

Однако после публикации приложения я понял, что есть некоторые подводные камни, которые не могут конкурировать с аналогичными конкурирующими Java-приложениями:

Самый большой IMO - размер apk, сгенерированный с помощью exp оказание услуг. Для приложения с 3 экранами, а не с большой логикой бизнеса, 25 мб и около 60 МБ после установки действительно много. По словам разработчиков expo более сложные приложения будут примерно одного размера или только незначительно больше из-за того, что основная часть размера является родными зависимостями, а не фактическая сторона javascript. Но это все еще большая проблема, и мне, вероятно, придется в любом случае eject приложение оптимизировать размер сборки

Итак, в общем, CRNA - это отличный и быстрый способ начать работу и что-то работающее, но еще до публикации приложения для пользователей, вы не сможете настроить свою собственную сборку и все зависимости, такие как Android Studio

Ответ 2

Я думаю, что создание-реакция-родное приложение - это хороший способ начать, чтобы вы могли сосредоточиться на части React реагировать на native, особенно если вы не знакомы с React. И когда вы готовы делать что-то с помощью native, вы можете просто выбросить с помощью npm run eject

Когда я начал новый проект с реагированием на родной в конце прошлого года, не было приложения для создания-реагирования-native и я сначала оценил expo. Мне это не нравилось, так как не было простой интеграции, если вы не выбросите, когда я точно знаю, что нам понадобится встроенная интеграция. Поэтому я пошел с ванилью реагировать родной. Также у меня уже был опыт работы с React в Интернете и iOS и Android.

Ответ 3

Я хотел бы поделиться своим опытом разработки приложений. Поскольку я был новичком в реакции, я начал с CRNA, и все прошло гладко. Expo действительно предоставляет множество функций, таких как push-уведомления, анимации (рекомендуется Lottie от Airbnb) и спокойствие, что вы можете удалить свое приложение в любое время, когда захотите использовать нативные библиотеки с приложением. Самое приятное, что вам не нужно переписывать код, и все эксклюзивные функции будут работать. Поэтому CRNA (используйте как можно больше) +eject (когда вам нужны нативные библиотеки) = сладкое место.

Ответ 4

TLDR

если вы создаете проект с помощью create_react_native_app myproject

затем он содержит настройку expo (не рекомендуется)

если вы создаете проект с помощью react-native myproject

затем его простой реактивный (рекомендуется для малых, средних, больших проектов)

Примечание: для использования команды react-native в терминале используйте эту ссылку