Научная статья на тему 'ИССЛЕДОВАНИЕ ПОДХОДОВ К ВЫБОРУ ИНСТРУМЕНТА CI/CD НЕЗАВИСИМО ОТ ПОСТАВЛЕННОЙ ЗАДАЧИ ДЛЯ РАЗРАБОТКИ iOS ПРИЛОЖЕНИЙ'

ИССЛЕДОВАНИЕ ПОДХОДОВ К ВЫБОРУ ИНСТРУМЕНТА CI/CD НЕЗАВИСИМО ОТ ПОСТАВЛЕННОЙ ЗАДАЧИ ДЛЯ РАЗРАБОТКИ iOS ПРИЛОЖЕНИЙ Текст научной статьи по специальности «Экономика и бизнес»

CC BY
22
3
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Вестник науки
Область наук
Ключевые слова
разработка приложения / мобильные приложения / iOS разработка / CI CD / iOS / Swift / development of iOS applications / Jenkins / GitLab CI / Circle CI / Xcode / Agile

Аннотация научной статьи по экономике и бизнесу, автор научной работы — Мирешкин И.А., Новиков П.С.

Цель данного исследования заключается в анализе и сравнении различных инструментов непрерывной интеграции и непрерывной доставки (CI/CD), используемых в разработке приложений для операционной системы iOS, с учетом специфических требований и задач проекта. В статье рассмотрены популярные решения, такие как Jenkins, GitLab CI, CircleCI, Bitrise и другие, и оценены их особенности, преимущества и недостатки в контексте различных типов разработки приложений. На основе анализа различных инструментов будет разработан план по выбору технологии для любого проекта. Статья представляет интерес для профессионалов в области разработки программного обеспечения, стремящихся оптимизировать процессы разработки и доставки продуктов.

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

STUDY OF APPROACHES TO CHOOSING A CI/CD TOOL REGARDLESS OF THE SPECIFIC TASK FOR DEVELOPING iOS APPLICATIONS

Aim of this study is to analyze and compare various continuous integration and continuous delivery (CI/CD) tools used in the development of applications for the iOS operating system, taking into account specific project requirements and tasks. The article reviews popular solutions such as Jenkins, GitLab CI, CircleCI, Bitrise, and others, and evaluates their features, advantages, and disadvantages within the context of different types of application development. Based on the analysis of various tools, a plan will be developed for choosing the technology for any project. The article is of interest to professionals in the field of software development seeking to optimize the processes of development and product delivery.

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

УДК 004 Мирешкин И.А., Новиков П.С.

Мирешкин И.А.

студент

Московский политехнический университет (г. Москва, Россия)

Новиков П.С.

к.т.н., доцент Московский политехнический университет (г. Москва, Россия)

ИССЛЕДОВАНИЕ ПОДХОДОВ К ВЫБОРУ ИНСТРУМЕНТА CI/CD НЕЗАВИСИМО ОТ ПОСТАВЛЕННОЙ ЗАДАЧИ ДЛЯ РАЗРАБОТКИ iOS ПРИЛОЖЕНИЙ

Аннотация: цель данного исследования заключается в анализе и сравнении различных инструментов непрерывной интеграции и непрерывной доставки (CI/CD), используемых в разработке приложений для операционной системы iOS, с учетом специфических требований и задач проекта. В статье рассмотрены популярные решения, такие как Jenkins, GitLab CI, CircleCI, Bitrise и другие, и оценены их особенности, преимущества и недостатки в контексте различных типов разработки приложений.

На основе анализа различных инструментов будет разработан план по выбору технологии для любого проекта. Статья представляет интерес для профессионалов в области разработки программного обеспечения, стремящихся оптимизировать процессы разработки и доставки продуктов.

Ключевые слова: разработка приложения, мобильные приложения, iOS разработка.

В современной динамичной среде разработки программного обеспечения, процессы непрерывной интеграции (CI) и непрерывной доставки (CD) становятся ключевыми элементами в обеспечении быстрого выхода на рынок и поддержания высокого уровня качества продукта. CI/CD являются

неотъемлемой частью Agile методик разработки, которые предполагают быструю и частую доставку версий продукта с минимальными рисками для бизнеса.

Правильный выбор инструментов CI/CD на начальном этапе проекта не просто ускоряет процесс разработки, но и формирует основу для будущих операционных возможностей и устойчивости проекта. Ошибка в выборе может привести к значительным техническим, временным и финансовым затратам, подрывая потенциал проекта даже при наличии крепкой разработки и продуктовой стратегии.

Цель данного исследования — исследовать критерии выбора инструментов CI/CD на начальном этапе разработки на общую эффективность и успех разработки iOS приложений. Анализируются критические факторы, которые следует учитывать при выборе инструментов, и оценивается, как различные характеристики и функциональности популярных инструментов CI/CD могут влиять на проект в зависимости от его специфики.

Актуальность.

Актуальность выбора конкретного инструмента CI/CD для разработки iOS приложений подчеркивается несколькими факторами:

1. Специфика iOS: Не каждый CI/CD инструмент подходит для специфических шагов разработки iOS, таких как подпись кода и сборка приложений, что требует тщательного подхода к выбору с начала проекта.

2. Разнообразие проектных требований: Разные проекты имеют уникальные нужды, от масштабируемости до интеграции с другими сервисами, что подчеркивает необходимость анализа подходящих инструментов в контексте задачи.

3. Быстрое обновление и конкурентоспособность: Эффективные CI/CD инструменты помогают компаниям быстро реагировать на изменения рынка, поддерживая актуальность и конкурентоспособность продукта.

4. Сокращение рисков и повышение качества: Автоматизация через CI/CD снижает вероятность ошибок, улучшает точность выпуска версий, снижает риски и улучшает качество приложений.

Виды инструментов CI/CD и краткое описание преимуществ.

Выбор инструмента CI/CD для разработки iOS приложений зависит от множества факторов, включая размер команды, сложность проекта, интеграцию с другими сервисами и предпочтения в рабочих процессах. Ниже приведены примеры ситуаций, когда определенные CI/CD инструменты могут быть наиболее подходящими для разработки iOS приложений:

1. Jenkins:

• Сценарий: Для больших команд и сложных проектов, требующих высокой степени настройки и многоступенчатых рабочих процессов.

• Преимущества: Jenkins предоставляет мощные возможности по настройке и может быть интегрирован практически с любыми инструментами и сервисами. Он подходит для проектов, где требуется точная кастомизация пайплайнов и детальный контроль над процессом разработки.

2. GitLab CI:

• Сценарий: Для проектов, требующих интеграции с системой контроля версий и управления репозиторием в одном месте.

• Преимущества: GitLab CI обеспечивает удобную интеграцию с репозиториями GitLab и позволяет управлять всем процессом CI/CD в рамках одной платформы. Это удобно для команд, предпочитающих всё-в-одном решения, сокращая необходимость во внешних инструментах.

3. Bitrise:

• Сценарий: Особенно подходит для мобильных разработчиков, которым нужен специализированный инструмент для автоматизации мобильных CI/CD процессов.

• Преимущества: Bitrise специально разработан для мобильной разработки, предлагая встроенные шаблоны и инструменты, оптимизированные

для iOS (и Android). Это идеальный выбор для команд, которые хотят быстро настроить и запустить свои пайплайны без сложной настройки.

4. Circled:

• Сценарий: Для проектов, которые требуют быстрой настройки и интеграции с облачными сервисами.

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

5. Travis CI:

• Сценарий: Идеально подходит для небольших до средних проектов, которые требуют простой интеграции с GitHub.

• Преимущества: Travis CI легко интегрируется с GitHub, предлагая простую настройку и автоматическое развертывание при каждом push в репозиторий. Это хороший вариант для проектов, которые не требуют сложной кастомизации рабочих процессов.

6. Xcode Cloud:

• Сценарий: Разработка исключительно для Apple устройств с малой или средней командой разработчиков, стремящихся максимально интегрироваться с экосистемой Apple.

• Преимущества: Xcode Cloud предлагает глубокую интеграцию с Xcode и всей экосистемой Apple, поддерживает автоматическое тестирование на реальных устройствах через TestFlight, облегчает управление сертификатами и профилями, а также предоставляет инструменты для прямой публикации приложений в App Store.

Набор действий, который поможет выбрать нужный инструмент.

1. Определение требований проекта.

• Сбор требований: Соберите все технические и бизнес-требования, которые влияют на процесс разработки, включая спецификации платформы iOS.

• Приоритизация: Определите, какие функции CI/CD являются критически важными, например, поддержка автоматического тестирования, сборки, развертывания и интеграции с используемыми инструментами управления версиями.

2. Исследование доступных инструментов.

• Обзор рынка: Проведите исследование существующих инструментов CI/CD, специально предназначенных или подходящих для разработки под iOS.

• Сравнение возможностей: Сравните функции, интеграцию, удобство использования и стоимость каждого инструмента.

3. Анализ совместимости.

• Интеграция с другими инструментами: Убедитесь, что инструмент CI/CD хорошо интегрируется с другими инструментами, которые вы используете, например, с системами управления версиями, трекерами задач и базами данных.

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

4. Проведение тестов и оценка.

• Пробное использование: Используйте пробные версии или бесплатные тарифы для тестирования инструментов на практике. Оцените удобство настройки, производительность и эффективность каждого инструмента.

• Оценка пользовательского опыта: Получите отзывы от разработчиков и других пользователей о их опыте работы с инструментами.

5. Рассмотрение стоимости и поддержки.

• Анализ затрат: Рассмотрите общую стоимость владения каждым инструментом, включая лицензии, поддержку и возможные затраты на обучение персонала.

• Поддержка и сообщество: Убедитесь, что выбранный инструмент имеет хорошую техническую поддержку и активное сообщество пользователей.

6. Принятие решения.

• Составление финального списка: Определите, какие инструменты лучше всего соответствуют вашим требованиям.

• Выбор инструмента: Выберите инструмент, который лучше всего подходит для вашего проекта на основе анализа функциональности, интеграции, стоимости и отзывов.

Выгода от использования CI/CD.

Выгоду от использования CI/CD достаточно сложно обобщенно оценить в цифрах. Она уникальна для каждого проекта. Но вот список метрик и как их настроить, чтобы понять плюсы использования этого инструмента в проекте:

1. Сокращение времени цикла разработки.

• Метрика: Среднее время от начала разработки до развертывания в продакшн.

• График: Линейный график, показывающий уменьшение времени разработки с течением времени после внедрения CI/CD.

2. Увеличение частоты релизов.

• Метрика: Количество релизов за определенный период.

• График: Столбчатый график, демонстрирующий увеличение количества релизов после внедрения CI/CD по сравнению с предыдущими периодами.

3. Сокращение количества ошибок при развертывании.

• Метрика: Процент ошибок или неудачных развертываний до и после внедрения CI/CD.

• График: Круговая диаграмма или график с накоплением, показывающий снижение доли ошибок в общем количестве операций.

4. Улучшение стабильности и качества продукта.

• Метрика: Количество обнаруженных и исправленных ошибок на этапе тестирования.

• График: Линейный график, отображающий рост количества обнаруженных ошибок (благодаря улучшенным тестам) и сокращение критических ошибок после внедрения.

5. Улучшение производительности команды.

• Метрика: Среднее время на исправление ошибок или добавление новых функций.

• График: График Ганта или столбчатый график, демонстрирующий уменьшение времени на доработки и ускорение процесса разработки.

Как можно увидеть эти метрики.

Можно создать дашборд с графиками, чтобы визуализировать эти данные. Например, использование инструментов как Tableau, Power BI или даже Excel поможет объединить данные в единую панель мониторинга, где каждый график демонстрирует специфические улучшения, достигнутые с помощью CI/CD. Это может включать интерактивные элементы для детализации данных по требованию, позволяя заинтересованным сторонам глубже понять влияние изменений на процесс разработки.

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

Заключение.

В рамках проведенного исследования была выполнена оценка существующих на рынке инструментов CI/CD, с учетом их уникальных характеристик и способности удовлетворять специфические требования различных проектов. Анализ позволил выявить ключевые функции и возможности каждого из инструментов, а также их преимущества и ограничения в контексте конкретных задач разработки. Основываясь на этом анализе, был разработан комплексный план по выбору оптимального инструмента CI/CD, который включает критерии отбора, методы оценки и процедуру верификации

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

СПИСОК ЛИТЕРАТУРЫ:

1. Что такое CI/CD? Разбираемся с непрерывной интеграцией и непрерывной поставкой [Электронный ресурс]. URL: https://habr.com/ru/companies/otus/articles/515078/ (дата обращения: 20.04.24);

2. Comparing the top 10 mobile CI/CD providers [Электронный ресурс]. URL: https://www.runway.team/blog/comparing-the-top-10-mobile-ci-cd-providers (дата обращения: 20.04.24);

3. iOS CI/CD: Continuous Integration and Continuous Delivery Explained [Электронный ресурс]. URL: https://semaphoreci.com/ios-continuous-integration (дата обращения: 20.04.24)

Mireshkin I.A., Novikov P.S.

Mireshkin I.A.

Moscow Polytechnic University (Moscow, Russia)

Novikov P.S.

Moscow Polytechnic University (Moscow, Russia)

STUDY OF APPROACHES TO CHOOSING A CI/CD TOOL REGARDLESS OF THE SPECIFIC TASK FOR DEVELOPING iOS APPLICATIONS

Abstract: aim of this study is to analyze and compare various continuous integration and continuous delivery (CI/CD) tools used in the development of applications for the iOS operating system, taking into account specific project requirements and tasks. The article reviews popular solutions such as Jenkins, GitLab CI, CircleCI, Bitrise, and others, and evaluates their features, advantages, and disadvantages within the context of different types of application development.

Based on the analysis of various tools, a plan will be developedfor choosing the technology for any project. The article is of interest to professionals in the field of software development seeking to optimize the processes of development and product delivery.

Keywords: CI CD, iOS, Swift, development of iOS applications, Jenkins, GitLab CI, Circle CI, Xcode, Agile.

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