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

Молодой учёный

Подходы разработки на фреймворке Expo

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


Мобильная разработка в настоящее время является важной частью нашего мира, так как сейчас нельзя представить людей без смартфонов, а приложения занимают очень большой сегмент рынка. Чтобы понять основы разработки приложения можно воспользоваться фреймворком 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, свободный, — Загл. с экрана.
Можно быстро и просто опубликовать свою научную статью в журнале «Молодой Ученый». Сразу предоставляем препринт и справку о публикации.
Опубликовать статью
Молодой учёный №3 (293) январь 2020 г.
Скачать часть журнала с этой статьей(стр. 22-25):
Часть 1 (стр. 1-79)
Расположение в файле:
стр. 1стр. 22-25стр. 79

Молодой учёный