Научная статья на тему 'Использование реактивного программирования при разработке мобильных приложений'

Использование реактивного программирования при разработке мобильных приложений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
604
91
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБРАЗОВАНИЕ / РЕАКТИВНОЕ ПРОГРАММИРОВАНИЯ / ПОТОКИ ДАННЫХ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Маркин Евгений Игоревич, Рябова Ксения Михайловна

Рассматриваемая технология реактивного программирования постепенно набирает популярность среди разработчиков, т.к. она упрощает работу с потоковыми данными. О возможном применение данной технологии высказывались Cisco в своей статье «Цифровое производственное предприятие в Европе Решение. Дилеммы услуг». В данной статье было приведено практическое использование изучаемой технологии на основе мобильного приложения «Абитуриент». Приложение позволяет абитуриентам получать всю актуальную информацию необходимую для поступления. Полученные результаты в ходе изучения и применения реактивного подхода к программированию можно использовать в разнообразных сферах технологий, включая молодые технологии IoT и систем реального времени.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Маркин Евгений Игоревич, Рябова Ксения Михайловна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

The use of reactive programming in mobile apps development

Reactive programming technology gets more and more popular among developers because it provides an easy way to operate with data streams. You can see an example of it's usage described in article by Cisco Systems «Digital production company in Europe Decision. Problem services». The following article describes the practical usage of reactive programming by examining the «University entrant» application. The app allows to get all the required information when one wants to enter a university. The results obtained while studying and trying in practice the reactive programming can be used in various fields of technology including young IoT technologies and real-time systems.

Текст научной работы на тему «Использование реактивного программирования при разработке мобильных приложений»

4.4. ИСПОЛЬЗОВАНИЕ РЕАКТИВНОГО ПРОГРАММИРОВАНИЯ ПРИ РАЗРАБОТКЕ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ

Маркин Евгений Игоревич, студент 3 курса ПензГТУ. E-mail: [email protected]

Рябова Ксения Михайловна, студентка 2 курса ПензГТУ. E-mail: [email protected]

Аннотация: рассматриваемая технология реактивного программирования постепенно набирает популярность среди разработчиков, т.к. она упрощает работу с потоковыми данными. О возможном применение данной технологии высказывались Gsco в своей статье «Цифровое производственное предприятие в Европе Решение. Дилеммы услуг».

В данной статье было приведено практическое использование изучаемой технологии на основе мобильного приложения «Абитуриент». Приложение позволяет абитуриентам получать всю актуальную информацию необходимую для поступления.

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

Ключевые слова: образование, реактивное программирования, потоки данных.

4.4. THE USE OF REACTIVE PROGRAMMING IN MOBILE APPS DEVELOPMENT

Markin Eugeniy Igorevich, 3rd year student in PenzSTU. E-mail: [email protected]

Ryabova Kseniya Mihalovna, 2nd year student in PenzSTU. E-mail: [email protected]

Abstract: reactive programming technology gets more and more popular among developers because it provides an easy way to operate with data streams. You can see an example of it's usage described in article by Cisco Systems «Digital production company in Europe Decision. Problem services».

The following article describes the practical usage of reactive programming by examining the «University entrant» application. The app allows to get all the required information when one wants to enter a university.

The results obtained while studying and trying in practice the reactive programming can be used in various fields of technology including young IoT technologies and real-time systems.

Index terms: education, reactive programming, data streams.

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

ления, что не всегда является возможным.

Для решения проблемы, связанной с доступностью и актуальностью информации в ПензГТУ разрабатывается приложение «Абитуриент», позволяющее поступающим получить интересующую их информацию о направлениях подготовки в вузе, отслеживать мероприятия, проводимые тем или иным вузом.

ИСПОЛЬЗОВАНИЕ РЕАКТИВНОГО ПРОГРАММИРОВАНИЯ ПРИ РАЗРАБОТКЕ МОБИЛЬНЫХ ПРИЛОЖЕНИ

Маркин Е. И., Рябова К. М.

VA Û 16:54

Программа подготовки

O 09.03.01 Информатика и вычислительная техника

Форма обучения: Очная, Заочная,

Очно-заочная, Ускоренная

Уровень образования: Баклавриат

Контрактное обучение: 25 ООО Р (за год)

Экзамены для поступления: Математика, Русский язык, Информатика

Ф VA Q 16:54

<г Календарь абитуриента

16 июня - 26 июля

Оформите заявление

Определитесь с приоритетами

Подайте документы в Приемную

Следите за своим местом в рейтинге

О 27 июля

Найдите себя в общих списках поступающих

О 30 июля

Объявление конкурсного списка абитуриентов

Объявление количества бюджетных

Рисунок 1. Интерфейс приложения «Абитуриент».

Данное приложение разрабатывается на основе технологии реактивного программирования. Реактивный подход к программированию основан на работе с «реактивными» (быстрыми) потоками данных. В базовой концепции реактивного программирования лежат потоки данных.

Потоки данных (observable) - это однотипная информация, которая распространяется во времени. Помимо данных observable может иметь одну ошибку и индикатор окончания потока данных. Схема базовой концепции потока данных приведена на рисунке 2.

Рисунок 2. Схема представления потока данных. Примером таких потоков могут быть: - Сообщения из WebSocket API;

- UI компоненты, например поисковое поле;

- Действие пользователя, например ввод данных, перемещение курсора и т.д.;

- и т.д.

Использование потоков данных имеет ряд преимуществ:

- Изолированность состояний. Внутри observable данные распространяются во времени, а значит они сохраняются в прошедшем, настоящем или будущем состоянии.

- Не изменчивость observable. При изменении observable, происходит создание observable с новыми параметрами.

- Строгая типизация. Мы не можем над потоком одного типа данных провести операции для другого типа.

В основе реактивного подхода лежат 4 базовых принципа, которые прописаны в реактивном манифесте [1], схематичное изображение принципов представлено на рисунке 3, это:

- отказоустойчивость;

- отзывчивость;

- событийная ориентированность;

- большие возможности для масштабирования.

Рисунок 3. Принципы реактивного подхода

Достоинствами реактивного подхода являются:

- Изолированные состояния во времени;

- Легкая работа с многопоточностью;

- Легкое комбинирование observable;

- Простота и понятность кода;

- Устойчивость к ошибкам.

Для реализации реактивного подхода использовалась библиотека RxJava, основанная на технологии ReactiveX (Rx) [2] с открытым исходным кодом, которая изначально разрабатывалась компанией Netflix.

Разрабатываемое приложение «Абитуриент» активно работает с сетью, чтобы предоставлять пользователю всю самую актуальную информацию. В таких приложениях могут возникать проблемы с подключением к сети, получением данных от сервера, целостностью данных, битыми пакетами данных и т.д. При императивном подходе к программированию такие ошибки приходится обрабатывать вручную, что приводит к дублированию кода. Реактивный подход позволит избежать многих проблем, т.к. в потоке данных все ошибки собираются в одном месте, что убирает задачу ручного поиска ошибок, и при возникновении неожиданных ошибок код продолжит работать.

Приложение «Абитуриент», основанное на реактивном подходе к программированию, является простым примером возможностей данной технологии. Оно является более устойчивым к ряду распространенных непредвиденных ошибок, и имеет широкие возможности для расширения функционала, без лишнего переписывания кода.

ЗАКЛЮЧЕНИЕ

Технология ReactiveX является кросс платформенной и реализована на более 10 различных языках программирования, а именно:

Java, Scala, C#, C++, Clojure, JavaScript, Python, Groovy, JRuby и др. Она может активно применяться в фронтенде (frontend), где требуется динамичное обновление данных и взаимодействие с пользователем, и в бэкенде (backend), работающем с асинхронными потоками данных, т.к. данный подход исключает ряд возможных ошибок из-за изменения данных в непредусмотренных местах в высоко-нагруженных системах, например в реконфи-гурируемых системах и кластерах [3-6], а также в аппаратно реализованных узлах высокопроизводительных вычислительных систем [7-9].

Список литературы:

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

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

3. Мартенс-Атюшев Д.С., Мартышкин А.И. Разработка реконфигурируемой вычислительной системы для цифровой обработки сигнала // Технические науки - от теории к практике. - 2015. - № 52. -С. 50-58.

4. Мартенс-Атюшев Д.С., Мартышкин А.И. Разработка и исследование реконфигурируемого вычислительного кластера для цифровой обработки сигнала // Современные информационные технологии. - 2015. - № 21. - С. 190-195.

5. Мартенс-Атюшев Д.С., Мартышкин А.И. Ре-конфигурируемый вычислительный кластер для цифровой обработки сигнала // В сборнике: Современные методы и средства обработки пространственно-временных сигналов. Сборник статей XIII Всероссийской научно-технической конференции. Под редакцией И.И. Сальникова. -2015. - С. 112-117.

6. Воронцов А.А., Мартенс-Атюшев Д.С. Разработка и исследование реконфигурируемой вычислительной системы для цифровой обработки сигнала // Инновации в науке. - 2016. - № 54. - С. 174-179.

7. Мартышкин А.И. Разработка аппаратного буферного устройства памяти многопроцессорной системы // Фундаментальные исследования. -2015. - № 12-3. - С. 485-489.

8. Мартышкин А.И. Реализация аппаратного буфера памяти многопроцессорной системы // В сборнике: Новые информационные технологии и

ИСПОЛЬЗОВАНИЕ РЕАКТИВНОГО ПРОГРАММИРОВАНИЯ ПРИ РАЗРАБОТКЕ МОБИЛЬНЫХ ПРИЛОЖЕНИ

Маркин Е. И., Рябова К. М.

системы сборник научных статей XII Международной научно-технической конференции. -2015. - С. 96-99.

9. Мартышкин А.И. Математическое моделирование аппаратного буфера памяти многопроцессорной системы // В сборнике: Оптико-электронные приборы и устройства в системах распознавания образов, обработки изображений и символьной информации сборник материалов XII Международной научно-технической конференции. - 2015. - С. 247-249.

РЕЦЕНЗИЯ

на статью авторов Маркина Е.И., Рябовой К.М. «Использование реактивного программирования

при разработке мобильных приложений» В статье продемонстрирован один из набирающих популярность подходов к разработке - реактивное программирование. Нельзя подвергать сомнению, что данный способ разработки различных приложений актуален, это подтверждается в статье. Очевидно, что такой вид программирования нацелен на доступность и легкость разработок, что отражено в разработанном приложении «Абитуриент».

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

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

На моя взгляд, работа выполнена профессионально и грамотно, что выражается в специфических терминах. Недостатком работы является нехватка информации о практическом применении данного приложения вне учебного заведения. Однако, несмотря на указанное замечание, считаю, что статья «Использование реактивного программирования при разработке мобильных приложений» заслуживает высоких и положительных оценок и может быть принята к публикации в журнале «Computational nanotechnology».

Доц. каф. «Вычислительные машины и системы» Пензенского государственного технологического университета, канд. техн. наук

А.И. Мартышкин

i Надоели баннеры? Вы всегда можете отключить рекламу.