Введение
1 ТРЕБОВАНИЯ К СТРУКТУРЕ ПРОЕКТА 6
1.1 Анализ известных решений проекта 6
1.2 Используемые инструменты 6
1.3 Используемые элементы интерфейса 7
1.4 Требования к структуре HTML/CSS-проекта 12
2. РЕАЛИЗАЦИЯ ПРОГРАММНОГО ИНСТРУМЕНТА 15
2.1 Проектирование программного решения 15
2.2 Принцип работы алгоритма 18
2.3 Чтение файлов исходного HTML/CSS-проекта 22
2.4 Анализ HTML-страниц 22
2.5 Хранение полученных данных 24
3. ОПИСАНИЕ РАБОТЫ ПРОГРАММЫ 27
ЗАКЛЮЧЕНИЕ 34
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 35
ПРИЛОЖЕНИЕ А Исходный код HTML-файла 37
ПРИЛОЖЕНИЕ Б Исходный код классов ItemGenerator и FieldsGenerator 38
ПРИЛОЖЕНИЕ В Исходный код пользовательского интерфейса
В 2016 году операционная система Sailfish OS[l] была включена в реестр[2] отечественного программного обеспечения, составляемый Министерством цифрового развития, связи и массовых коммуникаций Российской Федерации. Поэтому к 2021 году в России планируется обеспечить сотрудников государственных органов, бюджетных учреждений и компаний с государственным участием смартфонами, работающими под операционной системой Sailfish OS по программе импортозамещения. Согласно проекту распоряжения правительства^] число таких сотрудников составит 7,9 миллионов человек. Под эту программу попадает и компания систем электронного документооборота “Практика”, которая занимается разработкой проекта "Мобильный офис". Этот проект использует около 4 тысяч компаний, министерств и других государственных учреждений.
Следовательно, необходимо, чтобы это приложение было реализовано и для данной операционной системы. Но Sailfish OS - относительно молодая операционная система, которая не имеет широкого распространения, потому для неё отсутствуют готовые фреймворки для написания кроссплатформенных приложений. По этой причине было решено разработать средство для генерации мобильных приложений для Sailfish OS, что является целью дипломной работы.
Для того, чтобы достичь цели, было поставлено несколько задач:
• определение перечня элементов интерфейса;
• разработка требований к структуре HTML/CSS-файлов;
• разработка алгоритма для генерации QML-файлов на основе данных HTML/CSS-файлов;
• разработка алгоритма для генерации итогового Sailfish-проекта;
• разработка графического интерфейса для взаимодействия пользователя с программой.
Объектом исследования в рамках данной дипломной работы является процесс разработки под Sailfish OS. А предметом исследования является средство генерации приложений для Sailfish OS.
Результаты данной выпускной квалификационной работы будут внедрены в дальнейшую разработку и поддержку проекта “Мобильный офис” компании систем электронного документооборота “Практика”.
В результате выполнения данной дипломной работы был разработан программный инструмент генерации кода для мобильных приложений для операционной системы Sailfish OS. Разработанное решение способно генерировать Sailfish-проект со всеми вспомогательными файлами и правильной структурой для запуска и работы приложения по исходному HTML/С S S -ко ду.
Задачи, выполненные в рамках работы:
• разработаны технические требования и требования к структуре HTML/CSS-проекта;
• разработан алгоритм генерации QML-кода по данным HTML/С S S -страниц;
• создан программное средство, которое реализует генерацию всех необходимых файлов для дальнейшего использования в Sailfish-проектах;
Разработанное программное решение позволит разработчикам значительно сократить время на разработку QML-страниц, что сократит общее время для разработки программного средства для Sailfish OS.
В дальнейшем планируется расширить список генерируемых элементов, добавить обработку JavaScript-файлов, а также выложить проект в открытый доступ, что даст возможность другим разработчикам оптимизировать алгоритм под свои требования.
1. Info Sailfish OS [Электронный ресурс] // Официальный сайт Sailfish OS. - Режим доступа: https://sailfishos.org/info/ (дата обращения: 11.02.2019).
2. Реестр отечественного программного обеспечения [Электронный
ресурс] // Единый реестр российских программ для электронных вычислительных машин и баз данных. - Режим доступа:
https://reestr.minsvyaz.ru/ (дата обращения: 11.02.2019).
3. Смартфон государственной важности [Электронный ресурс] //
Официальный сайт газеты “Коммерсантъ”. - Режим доступа:
https://www.kommersant.ru/doc/3733374 (дата обращения: 20.02.2019).
4. Инструменты и API для разработки приложений для Sailfish OS [Электронный ресурс] // Официальный сайт кафедры информатики и вычислительной математики МФТИ. - Режим доступа: http://cs.mipt.m/wp/wp-content/uploads/2018/03/Sailfish_QS_%E2%80%94_02._% D0%98%D0%BD%D1 %81 %D1 %82%D1 %80%D1 %83%D0%BC%D0%B5%D0% BD%Dl%82%Dl%8B_%D0%B8_API_%E2%80%94_Slides.pdf (дата обращения:
15.03.2019) .
5. Начало разработки для Sailfish OS [Электронный ресурс] // Habr. - Режим доступа: https://habr.com/post/305510/ (дата обращения: 10.03.2019).
6. This is QT [Электронный ресурс] // Официальный сайт Qt. - Режим доступа: https://www.qt.io/what-is-qt/ /дата обращения: 10.03.2019).
7. Официальная документация API Sailfish. Silica [Электронный ресурс] // API Documentation. - Режим доступа: https://sailfishos.org/develop/docs/silica/ (дата обращения: 8.02.2019).
8. Основные элементы пользовательского интерфейса [Электронный ресурс] // Ерафические интерфейсы. - Режим доступа: https://sites.google.com/site/srdl8docs/graficeskij-interfejs/osnovnye-elementy-polzo vatelskogo-interfejsa (дата обращения: 20.05.2019).
9. Основы разработки интерфейсов мобильных приложений [Электронный ресурс] // НОУ «ИНТУИТ». - Режим доступа: https://www.intuit.ru/studies/professional_skill_improvements/12646/courses/1191/le cture/21986?page=5 (дата обращения: 20.04.2019).
10. Основы создания UI для Sailfish OS [Электронный ресурс] //
Официальный сайт кафедры информатики и вычислительной математики МФТИ. - Режим доступа:
http://cs.mipt.ru/wp/wp-content/uploads/2018/03/Sailfish_QS_%E2%80%94_03._% D0%9E%D 1 %81 %D0%BD%D0%BE%D0%B2%D 1 %8B_%D 1 %81 %D0%BE%D0 %B7%D0%B4%D0%B0%D0%BD%D0%B8%Dl%8F_UI_%E2%80%94_Slides.pd f (дата обращения: 15.03.2019).
11. Поддерживаемое подмножество HTML [Электронный ресурс] //
Всё о кроссплатформенном программировании. - Режим доступа: http: //doc. crossplatform .ru/qt/4.3.5/ richtext-html- subset .html (дата обращения: 20.03.2019) .
12. Результаты исследования Google о частоте использования html-тегов [Электронный ресурс] // Advanced Web Ranking. - Режим доступа: https://www.advancedwebranking.com/html/ (дата обращения 20.05.2019).