Научная статья на тему 'РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ПРОСМОТРА РАСПИСАНИЯ ЗАНЯТИЙ УНИВЕРСИТЕТА '

РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ПРОСМОТРА РАСПИСАНИЯ ЗАНЯТИЙ УНИВЕРСИТЕТА Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
50
2
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
iOS / Swift / Python / расписание / Core Data / Flask / iOS / Swift / Python / timetable / Core Data / Flask

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — А.О. Камышев, А.Г. Зотин

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — А.О. Камышев, А.Г. Зотин

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

MOBILE APPLICATION DEVELOPMENT FOR VIEWING UNIVERSITY TIMETABLE

Described aspects of mobile application development for iOS operation system, that allows students receive actual university timetable for entire academic term in offline mode with systematic updates.

Текст научной работы на тему «РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ПРОСМОТРА РАСПИСАНИЯ ЗАНЯТИЙ УНИВЕРСИТЕТА »

УДК 004.9

РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ПРОСМОТРА РАСПИСАНИЯ ЗАНЯТИЙ УНИВЕРСИТЕТА

А. О. Камышев Научный руководитель - А. Г. Зотин

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газеты «Красноярский рабочий», 31

E-mail: pocharua@mail.ru

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

Ключевые слова: iOS, Swift, Python, расписание, Core Data, Flask.

MOBILE APPLICATION DEVELOPMENT FOR VIEWING UNIVERSITY TIMETABLE

A. O. Kamyshev Scientific supervisor - A. G. Zotin

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarskii rabochii prospekt, Krasnoyarsk, 660037, Russian Federation

E-mail: pocharua@mail.ru

Described aspects of mobile application development for iOS operation system, that allows students receive actual university timetable for entire academic term in offline mode with systematic updates.

Ключевые слова на английском языке: iOS, Swift, Python, timetable, Core Data, Flask.

Своевременный доступ к актуальному расписанию для студента является первоочередной задачей. Сталкиваясь с проблемами сайта расписания СибГУ [1], такими как недоступность сервиса и недостатка функции просмотра расписания на определенный день календаря, появилась идея написать мобильное приложение. Данное приложение могло бы собирать информацию с сайта СибГУ и предоставлять ее пользователям в удобной форме в режиме офлайн, с возможность обновления расписания до актуального. В рамках реализации мобильного приложения, часть функционала отвечающего за парсинг расписания решено было вывести в серверную часть.

Сервер парсинга расписания основан на веб-фреймворке Flask, который позволяет настроить простой REST API [2] для клиентского приложения. В качестве инструмента для парсинга выбрана библиотека lxml [3], которая предоставляет возможность извлекать блоки информации с помощью языка запросов XPath [4]. Ранее была опробована реализация на основе библиотеки BeautifulSoup, которая предоставляла методы для извлечения информации по тегам и классам. После перехода на XPath кодовая база сократилась в 3 раза.

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

Актуальные проблемы авиации и космонавтики - 2020. Том 2

расписание не обновлялось больше одного дня производится парсинг актуального расписания с сайта СибГУ с сохранением в кэш и базу.

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

Для реализации мобильного приложения использован язык программирования Swift, с применением реактивного подхода с помощью библиотеки RxSwift. Для хранения данных на устройстве используется фреймворк Core Data [5]. Боковое меню реализовано с применением библиотеки SideMenuSwift. Библиотека FSCalendar используется для отображения календаря.

Мобильное приложение основано на модифицированной архитектуре MVVM-C, где C означает Coordinator. Модификация заключается в том, что ViewModel обслуживается ViewModelController, который выполняет всю бизнес-логику приложения, a ViewModel является оберткой над данными в пригодном для отображения формате во View. Данный архитектурный шаблон позволяет организовывать приложение по принципу подписки на изменения данных. Контроллер явно не запрашивает данные, а подписывается на изменения с помощью библиотеки RxSwift.

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

Рис. 1. Архитектура iOS-приложения

Верстка представлений реализуется с использованием механизма AutoLayout [6]. В свою очередь ограничения (constraint) создаются программно, что позволяет просто объединять изменения в Git [7]. Программный подход при создании ограничений позволяет проще тестировать и читать код, но есть и недостаток - визуализация и скорость разработки.

Основные экраны мобильного приложения представлены на рис. 2. Для реализации поиска по группам используется разработанный сервер, который отравляет запрос на сайт СибГУ, кэширует ответ и отправляет результат пользователю.

Рис. 2. Пример вида приложения: а - главный экран приложения; б - поиск расписания по названию группы

На данный момент сервер состоит из 6 файлов, в которых содержится около тысячи строк исходного кода. Проект мобильного приложения состоит из 67 файлов с расширением .swift, в которых содержится около четырех тысяч строк исходного кода.

В настоящий момент приложение тестируется и дорабатывается для последующей публикации в AppStore. Для соответствия нынешним потребностям пользователей на данный момент стоит задача по добавлению Dark Mode в мобильное приложение.

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

1. Расписание СибГУ [Электронный ресурс]. URL: https://timetable.pallada.sibsau.ru/ timetable/ (дата обращения: 25.3.2020).

2. REST API [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/REST (дата обращения: 26.3.2020).

3. lxml - XML and HTML with Python [Электронный ресурс]. URL: https://lxml.de/ (дата обращения: 26.3.2020).

4. XPath [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/XPath (дата обращения: 26.3.2020).

5. Core Data [Электронный ресурс]. URL: https://developer.apple.com/documentation/coredata (дата обращения: 26.3.2020).

6. Understanding Auto Layout [Электронный ресурс]. URL: https://developer.apple.com/ library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/index.html (дата обращения: 27.3.2020).

7. Git [Электронный ресурс]. URL: https://git-scm.com (дата обращения: 27.3.2020).

© Камышев А. О., 2020

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