Почему важен CI для мобильной разработки

Continuous Integration (CI) — в дословном переводе «непрерывная интеграция». Под интеграцией понимается связь отдельных частей кода приложения между собой в единый продукт.

CI — это автоматизированный процесс, включающий в себя сборку, развертывание и тестирование приложения без участия человека.

Очень часто в разработке ПО можно встатить комбинацию CI/CD или CICD. Подразумевается комбинация непрерывной интеграции (continuous integration) и непрерывного развертывания (continuous delivery или continuous deployment) программного обеспечения в процессе разработки. CI/CD объединяет разработку, развёртывание и команду, ускоряя процесс сборки, тестирования и развёртывания приложения.

Почему важен CI для мобильной разработки

Типы процесса сборки билда мобильного приложения

После завершения разработки кода, разработчики добавляют сформированный файл в систему контроля версий (от англ. Version Control System, VCS). VCS является место хранения кода, где сохраняются все изменения файлов с историей изменений (кто и когда внес изменения).

Для превращения набора файлов с расширением в мобильное приложение необходимо собрать билд. Сборка билда представляет собой создание единого запускаемого файла из набора файлов исходного кода. Данный процесс можно представить в 3-х типах:

  • Ручное

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

  • Полуавтоматическое

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

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

  • Автоматическое

Автоматическое превращение набора файлов исходного кода в готовое к установке приложение без участия человека - CI.

CI забирает изменения из репозитория с кодом без участия человека. Возможны два варианта настройки:

  • CI опрашивает репозиторий раз в N часов/минут, о наличии обновлений.
  • Репозиторий связывается с CI при наличии обновлений.

После получения CI изменения, запускается сборка билда и автотесты. В случае неудачной сборки система направляет электронное письмо добавленным в проект заинтересованным лицам (ПМ, Разработчик и т.д.). Если сборка прошла успешно, CI разворачивает приложение на тестовой машине.

Почему важен CI для мобильной разработки

Статистика

По статистике, оборка одного билда без CI/CD занимает около 40 минут времени разработчика. В день происходит в среднем 2-3 сборки.

Итого: в день разработчик должен потратить около 2-х часов рабочего времени на сборку билдов, вместо прямой разработки мобильного приложения с полной оплатой этих часов.

При 5ти дневной 8ми часовой рабочей неделе, за год из возможных 1976 рабочих часов разработки, разработчик потратит 1482 часа на разработку мобильных приложений, и 494 на сборку и развертывание билдов, что является четвертью рабочего времени. Таким образом, стоимость разработки мобильного приложения возрастает.

Важность CI в мобильной разработке

CI — непрерывная интеграция, проверяющая приложение раз в заданный период на наличие неисправностей без участия человека.

CI особенно актуален для средних и больших команд, где разработкой кода одного приложения занимается несколько разработчиков. CI позволяет быстро обнаружить проблемы, когда по отдельности части кода работают, а вместе - нет. Быстрое обнаружение подобных проблем снижает стоимость их исправления.

Основные задачи CI:

  • Проверка наличия обновлений в коде;
  • Сборка билда;
  • Прогон автотестов;
  • Разворот приложение на тестовом стенде;
  • Прогон тестов Postman на тестовом стенде;
  • Оповещение всех заинтересованных лиц о результатах сборки и тестирования по email.

CI позволяет:

  • Освободить время разработчика, затрачиваемое на процесс сборки и развертывания для других целей;
  • Значительно удешевить процесс, так как стоимость работы одного программиста стоит дороже работы любой системы;
  • Исключить ошибки человеческого фактора;
  • Проводить проверки после каждого изменения в системе, выявляя проблемы на самых ранних стадиях;
  • Запускать автотесты, создавая дополнительные барьеры с целью не допустить ошибки в релиз. Не допускает нерабочие билды.
Почему важен CI для мобильной разработки
66
Начать дискуссию