Автоматизация вспомогательных процессов, возникающих при разработке мобильных приложений для операционной системы IOS. Описание и основные положения template-based подхода к мобильной разработке. Программа автоматизации процессов создания и настройки.
Аннотация к работе
ПРАВИТЕЛЬСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «ВЫСШАЯ ШКОЛА ЭКОНОМИКИ» Факультет компьютерных наук Департамент программной инженерии ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА по направлению 09.03.04 «Программная инженерия» подготовки бакалавраРабота посвящена автоматизации вспомогательных процессов, возникающих при разработке мобильных приложений для операционной системы IOS. В работе рассмотрены основные положения IOS-разработки, описана структура проекта, созданного в IDE Xcode. Приведено описание и основные положения template-based подхода к мобильной разработке, предложенного в работе. Автоматическое выполнение этих процессов реализовано при помощи набора скриптов, работающих независимо друг от друга. Ключевые слова: IOS разработка, Xcode, разработка по шаблону (template-based), ITUNESCONNECT, Apple Developer Center.На данный момент можно выделить три основных направления, которых придерживаются компании, специализирующиеся на мобильной разработке, при создании своих продуктов: custom development (разработка уникального мобильного приложения для выполнения конкретного набора функций), приложения-агрегаторы (мобильное приложение, агрегирующее информацию с различных источников в унифицированном интерфейсе) и разработка приложения по шаблону. Процесс дублирования шаблона включает набор действий по модификации проекта приложения(об этом будет подробно рассказано в Главе №1) и вспомогательных действий, которые упоминались ранее, для каждой копии шаблона. В случае разработки приложений-агрегаторов или разработки по шаблону такой системой можно считать программу(вебсайт), где владелец бизнеса управляет наполнением своего приложения. Для охвата максимально большого числа ресторанов был выбран именно последний подход к разработке, при котором все приложения похожи друг на друга и создаются по одному шаблону. Сначала рассматривается разработка стандартных IOS-приложений и всех сопутствующих процессов.В данной главе были рассмотрены основные этапы создания стандартных и template-based IOS приложений, выделены процессы, автоматизация которых позволит существенно сократить время на разработку приложений при template-based подходе.Для реализации пользовательского интерфейса Desktop-приложения был выбран официальный язык разработки OSX-приложений Swift и IDE Xcode. Для автоматизации процессов создания и настройки шаблонных приложений, а также генерации скриншотов их работы используется набор скриптов, написанных на языке Python. Ассоциация каталога приложения с новым target подразумевает добавление этого каталога в Xcode-проект. # Rename plist plist_path = "%s/TEMPLATEAPP-info.plist" % (new_app_path) new_plist_path = "%s/%s-%s" % (new_app_path, new_app_name, "info.plist") os.rename(plist_path, new_plist_path) Создание и загрузка push-сертификата: # Use the signing request to create a new push certificate # Use the signing request to create a new push certificate push_cert = Spaceship.certificate.production_push.create!(csr: csr, bundle_id: app_bundle_id)В главе была детально описана реализация автоматизации процессов.В главе представлен анализ полученных результатов работы и сравнение временных затрат при работе с использованием системы автоматизации и без нее. В таблице 1 представлены замеры времени, требуемого для выполнения каждого из этапов создания приложения. В колонке “Время разработчика” указано время, требуемое разработчику для выполения операции, либо запуска соответствующей функции в системе автоматизации. Исходя из представленных данных, можно сказать, что при “ручном” выполнении всех операций временные затраты будут составлять почти 10 часов, если нагрузка достигнет отметки в 35 приложений в неделю. В то же время система автоматизации позволяет тратить только 3 часа в неделю на создание уже 50 приложений.В третьей главе были продемонстрированы преимущества использования программы автоматизации в процессе разработки мобильных приложений.Template-based разработка мобильных приложений для операционной системы IOS - одно из наиболее активно развивающихся направлений в сфере мобильной разработки. Данный подход позволяет минимизировать время, требуемое для разработки нового приложений. При этом операции, связанные с созданием новых приложений, их настройкой, тестированием и распространением, становятся потенциально автоматизируемыми. В рамках выпускной квалификационно работы была разработана программа, позволяющая автоматизировать выполнение однотипных задач, возникающих при использовании template-based подхода. Для максимально простого управления автоматизируемыми процессами, а также обеспечения возможности их одновременного выполнения для нескольких приложений было реализовано Desktop-приложение для операционной системы Mac OSX.
План
Оглавление
Реферат......................................................................................................................................2 Abstract ......................................................................................................................................3 Основные определения термины и сокращения.....................................................................4 Введение....................................................................................................................................7
Глава 1. IOS-разработка и автоматизация процессов.............................................................11 1.1 Введение в IOS-разработку......................................................................................................... 11 1.2 Структура Xcode-проекта............................................................................................................ 14 1.3 Процессы - объекты автоматизации.......................................................................................... 16 1.3.1 Создание приложения по шаблону............................................................................................16 1.3.2 Настройка аккаунта в Apple Developer Center ...........................................................................17 1.3.3 Настройка аккаунта в ITUNESCONNECT..........................................................................................18 1.3.4 Сервис распространения тестовых версий Crashlytics..............................................................19
1.4 Тестирование IOS-приложений.................................................................................................. 20 1.5 Существующие решения ............................................................................................................ 21 1.5.1 Библиотека Nomad CLI.................................................................................................................22 1.5.2 Библиотека Fastlane.....................................................................................................................22 1.5.3 Сервис непрерывной интеграции Bitrise ...................................................................................24 Выводы по главе .............................................................................................................................. 24
Глава 2. Разработка программы .............................................................................................25 2.1 Инструменты разработки ........................................................................................................... 25 2.2 Автоматизируемые процессы.................................................................................................... 25 2.2.1 Создание приложения по шаблону............................................................................................25 2.2.2 Настройка аккаунта в Apple Developer Center ...........................................................................27 2.2.3 Автоматическая генерация скриншотов....................................................................................28 2.2.4 Работа с ITUNESCONNECT................................................................................................................29 2.2.5 Тестирование ...............................................................................................................................31
2.3 Desktop-приложение.................................................................................................................. 31 Выводы по главе .............................................................................................................................. 35
Глава 3. Анализ полученных результатов...............................................................................36 3.1 Преимущества использования системы.................................................................................... 36 3.1.1 Создание приложения по шаблону............................................................................................36 3.1.2 Создание скриншотов работы приложения..............................................................................37 3.1.3 Обновление приложений ...........................................................................................................38
3.2 Потенциал масштабирования .................................................................................................... 40 Выводы по главе .............................................................................................................................. 40