Тип работы:
Предмет:
Язык работы:


РАЗРАБОТКА ИНСТРУМЕНТА ДЛЯ АВТОМАТИЧЕСКОЙ КОНФИГУРАЦИИ XCODE-ПРОЕКТА

Работа №41597

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы59
Год сдачи2019
Стоимость6500 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
183
Не подходит работа?

Узнай цену на написание


Введение 4
1. Требования К программному решению 6
1.1. Требования К интерфейсу 6
1.2. Требования К конфигурационному файлу 6
1.3. Требования К функционалу 6
2. Принцип работы инструмента 8
2.1. Общее представление решения 8
2.2. Модуль обработки КОНСОЛЬНЫХ команд 9
2.3. Модуль ядра генерации 10
3. Проектирование формата конфигурационного файла 12
3.1. Формат файла проекта Xcode 12
3.2. YAML 12
3.3. Разработка формата конфигурации 13
3.3.1. Параметр Options 14
3.3.2. Параметр Settings preset 14
3.3.3. Параметры Config И ConfigFiles 15
3.3.4. Параметр Setting 15
3.3.5. Параметр Target 16
3.3.6. Параметр Sources 19
3.3.7. Параметр Plist 20
3.3.8. Параметр Build Script 21
3.3.9. Параметр Target Scheme 22
3.3.10. Параметр Scheme 23
4. Реализация программного инструмента 25
4.1. Используемые технологии 25
4.1.1. ЯЗЫК программирования Swift 25
4.1.2. Менеджер зависимостей Swift Package Manager .... 25
4.2. Реализация CLI компонента 26
4.3. Разработка Core компонента 27
5. Пример ИСПОЛЬЗОВАНИЯ инструмента 33
Заключение 35
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 36
Приложение А. Основные классы CLI модуля 38
Приложение Б. ИСХОДНЫЙ КОД .pbxproj 47
Приложение В. ИСХОДНЫЙ КОД конфигурационного файла 58

На сегодняшний день ОСНОВНЫМ инструментом ДЛЯ управления И создания iOS, macOS, tvOS И watchOS проектов является среда разработки Xcode, создаваемая И поддерживаемая компанией Apple, ОСНОВНЫМ недостатком данной среды является проблема синхронизации проекта между разработчикам при ИСПОЛЬЗОВАНИИ систем контроля версий (git, svn), Структура Xcode не основывается на иерархии файлов В системе, а выстраивает СВОЙ собственный индекс, генерируя уникальный идентификатор UUID ДЛЯ каждого файла локально, Из-за ЭТОГО ОДИН И тот же файл, добавленный на разных устройствах, будет добавлен несколько раз, В СВЯЗИ С ЭТИМ, ОСНОВНЫМ конфликтом, возникающим при git merge, является конфликт файла .pbxproj, В котором В формате PLIST записана структура проекта, ПО статистике, собранной В компании «Технократия», В 90% merge request присутствует конфликт В ЭТОМ файле, В 60% случаев ОН требует ручного решения И не может быть автоматически обработан, Это занимает приблизительно 8 минут разработчика для каждого удачного СЛИЯНИЯ, а В случае ошибки И неудачного СЛИЯНИЯ необходимо откатывать процесс И начинать его заново, что может увеличить время ДО 20 - 30 минут, Так же, если разработчик не имеет достаточно опыта, эта задача может занять у него БОЛЬШИЙ период времени, ЕСЛИ учесть, что В среднем разработчик В неделю делает от 3 ДО 6 СЛИЯНИЙ, ТО ЭТО В худшем случае может занять 3 часа В неделю, что составляет 10% рабочего времени, Кроме сложностей для разработчика, это потенциально увеличивает риск ошибки, возникшей при СЛИЯНИИ, которая не будет выявлена своевременно,
Решением выявленной проблемы может стать генерация Xcode-проекта на основе на иерархии файлов В файловой системе, С конфигурацией настроек, объединенных В файл С более человеко-читаемым форматом, чем plist, Целью данной работы является разработка КОНСОЛЬНОГО приложения, позволяющего генерировать файл .pbxproj на основе декларативного конфигурационного файла И иерархии файлов В файловой системе ДЛЯ автоматической конфигурации Xcode-проекта.
ДЛЯ достижения поставленной цели были определены следующие задачи:
1. Разработать КОНСОЛЬНЫЙ интерфейс, определив основные имена команд, необходимых ДЛЯ полноценной работы приложения.
2. Разработать формат конфигурационного файла, определить основные КЛЮЧИ, описать ИХ назначение.
3. Реализовать компонент, валидирующий файл конфигурации И проверяющий его наличие.
4. Реализовать компонент, трансформирующий файл конфигурации
И файловую структуру В модели программы, на основании которых будет реализована генерация.
5. Реализовать компонент, отвечающий за генерацию .pbxproj-файла на основе промежуточных моделей.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате выполнения данной ДИПЛОМНОЙ работы был реализован инструмент ПОЗВОЛЯЮЩИЙ генерировать файл .pbxproj на основе декларативного конфигурационного файла И иерархии файлов В файловой системе для автоматической конфигурации Xcode-проекта.
Для достижения поставленной цели были выполнены следующие задачи:
1. Разработан КОНСОЛЬНЫЙ интерфейс, определены основные имена команд, необходимые для полноценной работы приложения.
2. Установлен формат конфигурационного файла, определены основные КЛЮЧИ, описано ИХ назначение.
3. Реализован компонент, валидирующий файл конфигурации И проверяющий его наличие.
4. Реализован компонент, трансформирующий файл конфигурации И файловую структуру В модели программы, на основании которых реализована генерация.
5. Реализован компонент, отвечающий за генерацию .pbxproj-файла на основе промежуточных моделей.
Данное решение ПОЗВОЛИЛО получать ОДИН И тот же файл независимо от платформы И устройства, на котором происходила настройка проекта. Данный инструмент ПОЗВОЛИЛ избавиться от хранения файла проекта В общем репозитории И избавил от конфликтов С данным файлом.



1. Ergonomic requirements for office work with visual display terminals (VDTs) : Standart / International Organization for Standardization. —
05.1996. — ISO 9241-10-1996.
2. Ergonomics of human-system interaction : Standart / International Organization for Standardization. — 03.2010. — ISO 9241-210:2010.
3. Информационная технология. Пакеты программ. Требования к качеству и тестирование : Standart / ВНИИстандарт Госстандарта России. — 11.2000. — ГОСТ Р ИСО/МЭК 12119-2000.
4. Пользовательская документация по Xcode project [Электронный ресурс]. — URL: http://www.monobjc.net/xcode-project-file-format.html (дата обращения: 03.04.2019).
5. Veronica D’Souza S. JSON vs XML: A comparative performance analysis of data exchange formats // IJCSN International Journal of Computer Science and Network. — 2014. — Авг. — Т. 3, No 4. — URL: http://ijcsn.org/nCSN-2014/3-4/JSON-vs-XML-A-Comparative-Performanc e-Analysis-of-Data-Exchange-Formats.pdf (дата обращения: 05.04.2019).
6. Victor Hallberg M. Comparison between JSON and YAML for data
serialization. — 2011. — URL:
http://www.csc .kth. se/utbildning/kth/kurser/DD 143X/dkand 11/ Group2Mads /Rapport_Malin_Eriksson_Viktor_Hallberg.pdf (дата обращения:
06.04.2019) .
7. Документация YAML [Электронный ресурс]. — URL: https://yaml.org/spec/L2/spec.html (дата обращения: 20.04.2019).
8. Xcode Target [Электронный ресурс]
https://developer.apple.com/library/archive/featuredarticles/XcodeConcepts/ Concept-Targets.html#//apple_ref/doc/uid/TP40009328-CH4-SW1 (дата обращения: 03.04.2019).
9. About Swift [Электронный ресурс]. — URL: https://swift.org/about/ (дата обращения: 07.05.2019).
10. PathKit [Электронный ресурс]. — URL: https://github.com/kylef/PathKit (дата обращения: 15.04.2019).
11. Yams [Электронный ресурс]. — URL: https://github.com/jpsim/Yams (дата обращения: 25.04.2019).
12. xcodeproj [Электронный ресурс]. — URL:
https://github.com/tuist/xcodeproj (дата обращения: 11.05.2019)
13. SwiftCLI [Электронный ресурс]. — URL:
https://github.com/jakeheis/SwiftCLI (дата обращения: 18.04.2019).


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ