Научная статья на тему 'Разработка приложения «Расписание МГУП» для мобильных платформ'

Разработка приложения «Расписание МГУП» для мобильных платформ Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Жвакин Д. И.

В 2004 году Г.Б. Рубальским была создана информационнопоисковая система КГБ(Кто Где Будет), которая является дополнением к автоматизированной системе составления расписаний РАСПАСС. Базовая версия данной системы не предоставляет интерфейса для мобильных устройств. В связи с данным фактом было принято решение о разработке приложения для Android и iOS.

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

Текст научной работы на тему «Разработка приложения «Расписание МГУП» для мобильных платформ»

Разработка приложения «Расписание МГУП» для мобильных платформ

Д.И. Жвакин,

студент кафедры информационных систем МГУП имени Ивана Федорова1

В 2004 году Г.Б. Рубальским была создана информационно-поисковая система КГБ(Кто Где Будет), которая является дополнением к автоматизированной системе составления расписаний РАСПАСС. Базовая версия данной системы не предоставляет интерфейса для мобильных устройств. В связи с данным фактом было принято решение о разработке приложения для Android и iOS.

Процесс разработки приложения для мобильных платформ включает в себя следующие этапы:

1. Создание серверной платформы.

2. Написание мобильного приложения.

Создание серверной платформы для мобильного приложения

В качестве платформы для разработки сервера был выбран Node.js. Node.js является серверной реализацией языка JavaScript, основанной на движке V8. Предназначена для создания масштабируемых распределенных сетевых приложений, таких как веб-сервер. Node.js по целям использования сходен с фреймворками Twisted на языке Python и EventMachine на Ruby. В отличие от большинства программ JavaScript, этот фреймворк исполняется не в браузере клиента, а на стороне сервера [1].

Общую структуру работы приложения можно представить следующим образом (рис. 1):

1 Научный руководитель А.А. Марков, д.т.н., профессор.

Мобильное приложение

Рис. 1. Обобщенная схема работы приложения

Обработка запроса к серверу Node.JS происходит в несколько этапов:

1) просмотр cache на наличие актуального расписания для заданной группы. В том случае, если оно имеется на сервере memcached, пользователю выдается сообщение, содержащие список занятий, разбитых по дням в формате JSON;

2) если по каким-то причинам на сервере memcached не оказалось расписания для заданной группы, происходит выполнение POST-запроса на сервер расписания. В случае успешного запроса происходит обработка полученных данных, в противном случае выдается сообщение с кодом и описанием ошибки;

3) обработка полученных данных с сервера расписания происходит с помощью библиотеки Node.JS Jsdom [2]. С помощью встроенного функционала библиотеки происходит подключение JavaScript-фреймворка jQuery. Использование jQuery вызвано рядом причин:

• распространненость и простота в использовании;

• возможность использования CSS-селекторов для извлечения данных;

4) в случае успешного извлечения данных из запроса происходит запись в memcached и вывод полученных данных. В противном случае происходит вывод сообщения об ошибке.

Разработка мобильного приложения для платформы Android 4.0.3

К разрабатываемому приложения предъявляются следующие требования:

1) интуитивность интерфейса;

2) реализация на языке JavaScript;

3) локальное сохранение данных.

В связи с предложенными требованиями было принято решение использовать следующие инструменты разработки:

• Среда разработки Eclipse IDE.

• Фреймворки PhoneGap, jQuery, jQuery Mobile.

• Android SDK.

Общая схема работы приложения выглядит следующим образом (рис. 2):

Рис. 2. Схема выполнения приложения в среде РИопейар

Структура навигации в приложении выглядит следующим образом (рис. 3):

Обновление расписания

Главная

Рис. 3. Схема навигации мобильного приложения

При входе в приложение пользователю показывается окно приветствия (рис. 4):

# Ф_^ ..I* ■ 23:08

Выход Расписание

Главная

Жми кнопку для обновления!

С Обновить

Рис. 4. Главное окно приложения

Главное меню приложения включает в себя элементы: «Главная», «Расписание», «Настройки». При нажатии на каждую из них происходит переход на соответствующую вкладку программы. При нажатии кнопки «Обновить» происходит обновление расписания путем Ajax-зап-роса на сервер. Обмен данных с сервером происходит в формате JSON.

Вкладка «Расписание» содержит элемент «List View» [3] с элементами, каждый из которых представляет собой вкладку с расписанием на конкретный день недели.

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

При нажатии на кнопку «Настройки» происходит переход на одноименную вкладку. На текущей вкладке находятся основные элементы настройки приложения, а именно учебная группа и включение/ отключение автообновления расписания.

Сохранение настроек приложения происходит в localStorage [4]. При сохранении используется метод storage.set(); при получении значения из хранилища используется метод storage.get().

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

ф ® В f ,.i m 23:09

Выход Расписание

Расписание

+ Понедельник [+/ Вторник ™ Среда ф Четверг + Пятница Суббота

Рис. 5. Вкладка с расписанием

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

1. Официальный сайт Node.js. URL: http://nodejs.org

2. Статья : «jQuery + node.js: потрошим страницы на сервере». URL: http://nodejs.ru/404

3. Apache Cordova API Documentation. URL: http://docs. phonegap.com

4. Mozilla Developer Network. URL: https://developer.

mozilla.org

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