Планируете ли вы создать приложение, поддерживающее реакцию? Вы, вероятно, получите много вопросов, например: «Следует ли мне использовать шаблон?» Что такое шаблон? Лучше использовать Expo или нет?

Позвольте мне начать с того, что я новичок в этом стеке технологий. Я давно занимаюсь разработкой приложений на Dart и решил развиваться, потому что JavaScript становится все более популярным.

React Native:

React Native (также известный как RN) - это популярная платформа мобильных приложений на основе JavaScript, созданная Facebook , которая позволяет создавать мобильные приложения с рендерингом для iOS и Android. Фреймворк позволяет создавать приложения для различных платформ, используя одну и ту же кодовую базу.

Шаблоны:

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

Ignite by Infinite Red - самый популярный, у него более 12 тысяч звезд на Github. Давайте углубимся в это. Это передовой шаблон проекта, который включает в себя интерфейс командной строки, генераторы компонентов / моделей и многое другое.
Этот проект с поддержкой Typescript использует MobX для управления состоянием, React-навигацию для маршрутизации и навигации, Apisauce для общение с REST серверами и Jest framework для тестирования.
Если вы полный новичок, я бы посоветовал вам пройти через это.

В основном есть два метода создания приложения, поддерживающего реакцию:

  1. Экспо
  2. React-native CLI

Мы пройдем через них обоих по очереди.

Экспо

Expo - это фреймворк, который используется для создания приложений React Native. По сути, это набор инструментов и сервисов, созданных для React Native, которые помогут вам с легкостью приступить к созданию приложений React Native.

Преимущества:

  • Настроить проект легко и можно за считанные минуты
  • Любой желающий может открыть проект, пока вы над ним работаете
  • Поделиться приложением легко (с помощью QR-кода или ссылки), вам не нужно отправлять весь файл .apk или .ipa.
  • Для запуска приложения сборка не требуется
  • Интегрирует некоторые базовые библиотеки в стандартный проект (Push-уведомления, Asset Manager и т. Д.)
  • Вы можете извлечь его в ExpoKit и интегрировать собственный код, продолжая использовать некоторые функции Expo, но не все из них.
  • Expo может создавать файлы .apk и .ipa (распространение по магазинам возможно с Expo)
  • И самый важный, по крайней мере для меня, вам не обязательно иметь Macbook для разработки приложений для iOS

Недостатки:

  • Вы не можете добавлять собственные модули (возможно, для некоторых это изменит правила игры)
  • Вы не можете использовать библиотеки, использующие собственный код в Objective-C / Java.
  • Стандартное приложение Hello World имеет размер около 25 МБ (из-за встроенных библиотек).
  • Если вы хотите использовать FaceDetector, ARKit или Payments, вам нужно извлечь его в ExpoKit.
  • Выброс его в ExpoKit имеет компромисс между функциями Expo, например. вы не можете поделиться через QR-код
  • При извлечении в ExpoKit вы ограничены версией, поддерживающей реакцию, которая поддерживается ExpoKit, а затем
  • Отладка в ExpoKit (с собственными модулями) намного сложнее, поскольку он смешивает два языка и разные библиотеки (официальной поддержки Expo больше нет)

Интерфейс командной строки для React:

Он генерирует для вас простой проект, поддерживающий реакцию, с отдельными собственными проектами для платформ iOS и Android. Вам просто нужно набрать команду «response-native init».

Преимущества:

  • Вы можете добавлять собственные модули, написанные на Java / Objective-C (возможно, единственный, но самый сильный)

Недостатки:

  • Требуется Android Studio и XCode для запуска проектов
  • Вы не можете разрабатывать для iOS, не имея Mac
  • Устройство должно быть подключено через USB для использования для тестирования.
  • Шрифты нужно импортировать вручную в XCode
  • Если вы хотите поделиться приложением, вам нужно отправить весь файл .apk / .ipa
  • Не предоставляет JS API из коробки, например Push-уведомления, Asset Manager, их нужно вручную установить и связать, например, с npm
  • Правильная настройка рабочего проекта (включая настройку устройства) довольно сложна и может занять время.

Это все, что вам нужно знать, прежде чем переходить на react-native. Я много боролся с этими вещами, поэтому решил поделиться.

Если вам понравилась эта статья, дайте ей оценку :)