Вы думаете об использовании React Native для создания кроссплатформенных приложений? Когда вы встаете на путь создания приложений с использованием React Native, вы сталкиваетесь с вопросом, следует ли мне использовать Expo или нет?

Реагировать на родной фон

Прежде чем мы поговорим о Expo, вот краткая справка о React Native.

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

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

Что такое Экспо?

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

Итак, есть два способа создания приложений React Native. Один использует expo, а другой просто использует React Native, без Expo.

Когда и почему мне следует использовать Expo?

Когда вы начинаете создавать приложения React Native, вы должны принять это решение заранее. Вы должны решить, будете ли вы использовать Expo для своего проекта или нет. Это связано с тем, что от этого решения зависит архитектура всего вашего проекта.

Вот несколько веских причин использовать Expo для создания приложения React Native.

1. Самый быстрый способ создания приложений React Native

Если вам предложили проект, требующий быстрой разработки, и вы выбрали React Native для создания кроссплатформенного приложения, Expo лучше всего подходит для вас. С Expo вы можете легко создавать и развертывать приложения React Native как для iOS, так и для Android.

2. Вам не нужно знать кодирование для мобильных устройств

С Expo вы никогда не коснетесь нативного кода iOS или Android. Это означает, что вам не нужно, чтобы разработчики знали нативное мобильное программирование при создании приложений с помощью Expo. Expo обрабатывает весь собственный код под капотом, и это недоступно разработчикам, которые его используют.

Принимая во внимание, что если вы создаете приложения React Native с нуля без Expo, исходя из того, что я видел, вам нужно будет использовать немного своих собственных навыков мобильного программирования. Хотя 95% кода совместно используется iOS и Android, в зависимости от вашего сценария использования вам все равно, возможно, придется настроить некоторый собственный код на обеих платформах. Для тех, кто хочет избежать этого, Expo - лучший выбор.

3. Ни Xcode, ни Android Studio

Если вам не нужно создавать собственное мобильное кодирование с помощью Swift (iOS) или Java (Android), это означает, что вам никогда не придется использовать такие инструменты, как Xcode или Android Studio. Моя наименее любимая часть работы разработчика React Native - это решать все проблемы, с которыми я сталкиваюсь, когда использую как Xcode, так и Android Studio.

С Expo нет необходимости когда-либо беспокоиться об этих инструментах, поскольку они вам никогда не понадобятся.

4. Мгновенная публикация обновлений по воздуху (OTA)

Действительно приятная функция, которую вы можете использовать при использовании Expo, - это обновления по воздуху (OTA). Поскольку весь код, который вы пишете для создания приложения с помощью Expo, находится на JavaScript, вы можете отправлять обновления в свое приложение в любое время по беспроводной сети. Для этого вам не потребуется одобрение магазина приложений. Самая большая проблема в разработке мобильных приложений - это публикация обновлений ваших приложений через магазины приложений.

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

5. Встроенный доступ к собственным API

Expo поставляется с множеством встроенных API-интерфейсов как для iOS, так и для Android. Это упрощает работу разработчиков по добавлению встроенных функций в приложение. Некоторые из общих встроенных функций, предоставляемых Expo, - это камера, файловая система, местоположение, социальная аутентификация, push-уведомления и многие другие. При использовании Expo вам не нужно беспокоиться об интеграции этих встроенных функций, поскольку они доступны вам как часть пакета Expo.

Полный список доступных API с Expo SDK приведен ниже по ссылке:

Экспо API

6. Это БЕСПЛАТНО и с открытым исходным кодом

И последнее, но не менее важное: Expo бесплатна и также имеет открытый исходный код. Сообщество Expo радушно и растет. Вы также можете внести в него свой вклад, поскольку он имеет открытый исходный код. Вы можете получить доступ к репо Expo по ссылке ниже:



Почему не Экспо?

Что ж, есть так много причин, по которым вы должны использовать Expo для создания приложения React Native. Но всегда есть возможность сказать «нет». Могут возникнуть ситуации, когда Expo может вам не подойти. Позвольте мне перечислить некоторые из предостережений при использовании Expo ниже:

1. Если вы нативный мобильный разработчик или в команде есть нативные разработчики

Самым большим преимуществом использования Expo является то, что вам не нужно трогать собственный код. Но если вы нативный мобильный разработчик или в вашей команде есть нативные мобильные разработчики, которые работают над созданием приложения React Native, не используйте Expo. Потому что вы не будете использовать опыт нативного кодирования при использовании Expo. Это может расстроить разработчика с нативным опытом.

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

2. Добавляет еще один уровень абстракции - слишком много магии

Некоторым разработчикам не нравится, что Expo добавляет еще один уровень абстракции к уже абстрактному слою. Сам React Native имеет уровень абстракции и по сути является оболочкой для собственных компонентов iOS и Android. Теперь добавление еще одного уровня абстракции с помощью Expo - это не то, что некоторым разработчикам может быть удобно. Это означает, что под капотом происходит множество вещей, которые мы не контролируем. На мой взгляд, это не настоящая проблема. Если конечной целью является создание надежного приложения на React Native, магия на самом деле хорошая вещь. Но это совершенно субъективно.

3. Пока доступны не все API для iOS и Android.

В официальной документации Expo указано, что пока доступны не все API для iOS и Android. Такие функции, как bluetooth, покупки в приложении пока недоступны в Expo. Обязательно прочтите, чтобы убедиться, что все функции, которые вы пытаетесь создать, доступны в Expo, прежде чем вы решите так или иначе.

4. Не могу выбрать службу push-уведомлений.

С Expo вы не можете выбирать службу push-уведомлений, например Firebase. Вы должны использовать то, что выходит из коробки, то есть Единый сигнал. Если это может быть проблемой для вас, то Expo не для вас.

Вы всегда можете катапультироваться с выставки

Допустим, вы решили создать приложение React Native с помощью Expo, но несколько месяцев спустя хотите отказаться. Вы всегда можете удалить свое приложение из экосистемы Expo. Но за это может потребоваться цена:

  • Возможно, вам придется переписать код push-уведомления
  • Выполните рефакторинг кода для использования других библиотек, не входящих в экосистему Expo.
  • Изменения в навигации и общий рефакторинг кода

Заключение

Это интересное время для мобильной разработки. Использование Expo для ваших приложений React Native зависит от функций, сроков, предпочтений и разработчиков, которые над ним работают.

Вы можете проверить мой курс по React Native ниже, чтобы начать работу с React Native:

React Native: общая картина

Другие ресурсы:

Https://expo.io/developer-services

Https://facebook.github.io/react-native/blog/

Надеюсь, вам понравилась эта статья. Увидимся снова с другими статьями. Если вам понравился этот пост, не забудьте поделиться им со своей сетью. Вы можете следить за мной в твиттере @AdhithiRavi, чтобы узнавать больше обновлений или если у вас есть какие-либо вопросы.

Эта статья изначально была размещена на https://programmingwithmosh.com/