Подходы разработки на фреймворке Expo | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №3 (293) январь 2020 г.

Дата публикации: 20.01.2020

Статья просмотрена: 273 раза

Библиографическое описание:

Пайгетов, А. В. Подходы разработки на фреймворке Expo / А. В. Пайгетов. — Текст : непосредственный // Молодой ученый. — 2020. — № 3 (293). — С. 22-25. — URL: https://moluch.ru/archive/293/66524/ (дата обращения: 19.11.2024).



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

Фреймворк Expo это платформа для универсальных приложений, основанных на JavaScript-библиотеке React. Данный фреймворк состоит из набора готовых инструментов и сервисов основе React Native и native платформ, которые помогают разрабатывать, создавать, развертывать и быстро выполнять итерации на iOS, Android и веб-приложениях из одной и той же кодовой базы JavaScript/TypeScript.

В данном фреймворке существует два основных подхода к созданию приложений управляемый (managed) и простой (bare) подход.

С помощью управляемого подхода пишутся только инструменты и сервисы JavaScript / TypeScript, а все остальное фреймворк Expo сделает сам.

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

Управляемый подход похож на «Ruby on Rails» и «Create React App» на React. Приложения создаются с помощью управляемого подхода с использованием Expo-клиента на мобильном устройстве и других сервисов таких как: push-уведомлений, службы сборки, а также обновлений по воздуху.

В управляемом подходе Expo пытается облегчить сложность создания мобильных приложений. Разработчики в данном подходе, не используют Xcode или Android Studio, они просто пишут код JavaScript и управляют настройкой таких вещей, как значок приложения и заставка через app.json.

В Expo SDK представлен более полный набор API-интерфейсов, которые дают возможность доступа к таким возможностям устройства, как камера, биометрическая аутентификация, файловая система, тактильные устройства и т. п.

В моменте разработки проекта может произойти момент, когда потребуется полный контроль над собственным кодом в приложении, то у разработчика есть возможность извлечь вспомогательные инструменты (запустить expo eject в своем проекте) expo-cli предоставит доступ ко всем базовым собственным проектам и конфигурации.

В случае использования простого подхода могут произойти не большие неприятности, потому что разработчик имеет полный контроль над всеми инструментами Expo. В данном подходе можно использовать большинство API в Expo SDK, но служба сборки, уведомления, беспроводные обновления и простая настройка с app.json не будут поддерживаться.

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

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

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

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

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

− пока не все API для iOS и Android доступны;

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

− SDK не поддерживает все типы выполнения фонового кода;

Размер управляемого приложения Expo на iOS составляет около 20 Мб, а Android — около 15 Мб. Это связано с тем, что управляемый подход включает в себя множество API-интерфейсов независимо от того, используете ли они в проекте или нет. Использование API позволяет передавать обновления по беспроводной сети для использования новых API-интерфейсов. Некоторые из включенных API-интерфейсов связаны с услугами, которые скорее всего не будут использоваться в проекте, например, Facebook Mobile SDK включен для поддержки входа в Facebook и рекламы Facebook, а также Google Mobile SDK по аналогичным причинам. Если есть необходимость максимально уменьшить размер приложения, управляемый подход может оказаться не лучшим выбором.

− собственные библиотеки для интеграции с проприетарными сервисами обычно не включаются в SDK;

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

− единственный поддерживаемый сервис push-уведомлений внутри фреймворка Expo;

В случае, если API Expo Push-уведомлений не подходит для разработки данного проекта, то следует добавить другую службу push-уведомлений, например OneSignal используя простой подход.

− минимальные поддерживаемые версии ОС: Android 5+ и iOS 10+;

Если нужно поддерживать более старые версии, то не следует использовать управляемый подход.

− бесплатные сборки иногда могут быть поставлены в очередь;

В фреймворке Expo есть возможность создать свое приложение для отправки в Apple App Store и Google Play Store, даже не устанавливая Xcode или Android Studio. Это можно сделать, используя бесплатную автономную службу сборки, но иногда она имеет очередь в зависимости от того, сколько других людей собирают установочный файл в это время.

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

− служба уведомлений работает только в управляемом подходе;

Можно использовать любой другой сервис уведомлений, который вам подходит, но кроме уведомлений Expo.

− сервис сборки работает только в управляемом подходе;

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

− служба обновлений по воздуху работает только в управляемом подходе;

Служба обновлений по воздуху не работает в простом подходе, в случае её надобности следует воспользоваться управляемым подходом.

− конфигурация должна быть выполнена для каждого собственного проекта, а не один раз с app.json

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

Особенность фреймворка можно отметить тем, что он предоставляет возможность для предпросмотра приложения в работе, а в случае изменения в коде пропадает надобность в новой сборке приложения, переносе его на мобильное устройство и его переустановку.

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

Литература:

  1. Сайт Expo [Электронный ресурс]: Expo documentation https://docs.expo.io/versions/v36.0.0/, свободный, — Загл. с экрана.
  2. Сайт Envatotuts+ [Электронный ресурс]: Упрощаем процесс разработки нативных React приложений с помощью Expo Режим доступа: https://code.tutsplus.com/ru/tutorials/easier-react-native-development-with-expo--cms-30546, свободный, — Загл. с экрана.
Основные термины (генерируются автоматически): SDK, управляемый подход, API, простой подход, проект, инструмент, полный контроль, приложение, служба сборки, будущий проект.


Задать вопрос