МЕЖПЛАТФОРМЕННАЯ РАЗРАБОТКА С ИСПОЛЬЗОВАНИЕМ REACT NATIVE - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

МЕЖПЛАТФОРМЕННАЯ РАЗРАБОТКА С ИСПОЛЬЗОВАНИЕМ REACT NATIVE

Маркин Е.И., Рябова К.М., Воронцов А.А.
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
На данный момент времени разработка мобильных приложений является трудоемким и затратным по времени процессом, в связи с тем требуется разрабатывать и поддерживать приложения на разных ОС и языках программирования. Поэтому для упрощения процесса разработки одинаковых приложений начали появляться “кроссплатформенные” решения т.е. разработка приложения для всех ОС ведется на одном языке и запускается во встроенном браузере как веб-приложение или в своей виртуальной машине. Данные подходы помогают сократить затраты по времени на разработку и дальнейшую поддержку в несколько раз т.к. теперь вся работа будет вестись только с одним общим кодом. Но также данные решения имеют много недостатков, например плохую оптимизацию под ОС, невозможность или плохую работу с железом устройства, проблемы в отладке для некоторых устройств и т.д., из-за этого данные решения используются для небольших приложений, которые не требуют особых ресурсов для своей работы и не обладают большим количеством анимации.

В мае 2013 года компания Facebook представила свою библиотеку React Native которая позволяет писать код на языке JavaScript (JS) и в дальнейшем собирать его в стандартный язык программирования для конкретной ОС.

React Native позволяет писать JS код, который работает с родными компонентами операционной системы, под которую идет разработка, тем самым переносятся достоинства и удобства использования React.js в мобильные приложения. Выполнение JS кода выполняется в отдельном фоновом потоке, взаимодействуя с главным потоком асинхронно, т.е. в потоке JS собирается ряд команд к главному потоку и в определенный момент времени, отправляется сгруппированный запрос (batch-запрос), тем самым никак не блокируя главный поток выполнения программы.

Работа с графическим пользовательским интерфейсом является одним из слабых мест подобных систем т.к. на отрисовку графического интерфейса уходит в несколько раз больше ресурсов, чем при использовании стандартных способов ОС, из-за чего происходят снижение скорости работы, низкая частота кадров в анимации и т.п. React Native использует схожую структуру с HTML для создания интерфейсов, только используются собственные компоненты(рис. 1),которые в свою очередь при сборки приложения переводятся в родные элементы ОС, что дает заметный прирост в работе приложения по сравнению с другими межплатформенными решениями.

Рис. 1 – Пример реализации интерфейса на React Native.

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

В заключении можно сказать, что технология React Native очень перспективная. Из прямых конкурентов можно назвать “windows universal apps” от Microsoft с похожей концепцией семантической верстки интерфейса и “Xamarin.Forms”, предлагающий похожее решение с “универсальными” и “платформо-специфичными” элементами интерфейса. Но у React есть перед ними ряд преимуществ: web как одна из платформ, популярные JavaScript и node.js, бесплатность и поддержка facebook. На данный момент React Native можно использовать для быстрого прототипирования мобильных приложений. Создание сложных приложений с дальнейшей публикацией уже возможно, но итоговое завершение приложений может затянуться и возможно в дальнейшем потребует использовать java и objective-c. Список литературы

  1. Introduction to Rx / Lee Campbell. - 2012.-354c.

  2. Официальный сайт ReactiveX: портал [Электронный ресурс] . -Режим доступа: http://reactivex.io/ свободный. – Загл. с экрана.

  3. Манифест реактивного программирования: портал [Электронный ресурс] . -Режим доступа: http://www.reactivemanifesto.org/ свободный. – Загл. с экрана.

Просмотров работы: 267