React Native против CRNA

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

Главный вопрос: стоит ли мне использовать React Native или создать нативное приложение?

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

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

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

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

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

Так не могли бы вы поделиться своим опытом по этому поводу? Если вы разрабатывали приложения с React Native в прошлом, по какому пути вы пошли и по какому пути пойдете в будущем? React Native, CRNA или React Native и выставочная среда?


person Community    schedule 15.07.2017    source источник


Ответы (4)


Привет, я также поделюсь своим опытом по этой теме.

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

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

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

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

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

person tomekz    schedule 31.08.2017

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

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

person hyb175    schedule 16.07.2017
comment
Как вы добавляете веб-пакет + машинописный текст + модульное тестирование + тестовое покрытие в свое приложение? - person Juni Brosas; 25.07.2017
comment
Мы не используем веб-пакет, а только стандартный сборщик React. Хотя вы можете проверить github.com/callstack-io/haul для использования веб-пакета с React Native. Я не использовал машинописный текст, но мы находимся в процессе добавления потока в проект. Мы используем jest для тестирования, который уже интегрирован с istanbul, чтобы обеспечить хорошее тестовое покрытие. - person hyb175; 25.07.2017
comment
Привет, я новичок в React Native. Я создал свое приложение с помощью create-react-native-app, а затем собрал свой apk с expo, однако размер apk был слишком большим, 25 МБ+. Мой вопрос: автоматически ли приложение create-react-native-app включает выставочные модули? - person Rudolph Opperman; 27.02.2018
comment
@RudolphOpperman Привет, ты прав. create-react-native-app имеет весь встроенный выставочный SDK, который очень большой. Если размер пакета вызывает беспокойство, вам обязательно следует извлечь его. - person hyb175; 27.02.2018
comment
@ hyb175 У меня были некоторые трудности с извлечением, и это беспорядок, потому что мой контроль версий (local-git) не удаляет все папки после сбоя. Я просто хочу знать, когда извлекаю, могу ли я по-прежнему использовать библиотеки, которые я добавил, такие как нативная база и навигатор стека? - person Rudolph Opperman; 01.03.2018

TLDR

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

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

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

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

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

person vijay    schedule 06.06.2018

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

person ASHISH BHARDWAJ    schedule 06.11.2018