Всем привет! Меня зовут Дима Воронин, я архитектор мобильных приложений в Авито, занимаюсь инфраструктурой тестирования, CI. 27 сентября на нашем ютуб-канале мы проведем прямой эфир и обсудим continuous integration и continuous delivery в iOS и Android. Вещаем прямиком из нашего офиса. Поговорим об основах: зачем нужны CI/CD и как их настраивать, коснемся UI-тестирования и feature toggling, а дальше — глубже и интереснее. Сами не знаем, куда заведет разговор. В дискуссии будут участвовать эксперты из Яндекса, Альфа-Банка и Авито.


Под катом — примерные вопросы, которые планируем обсуждать (и предлагаем вам дополнить этот список), а также пароли и явки для тех, кто захочет присоединиться к трансляции. Добавляйте пост в закладки: после встречи обновим его и выложим видео.



Участники дискуссии


Константин Заикин (Яндекс)


image Руководитель группы разработки Яндекс.Браузера. Писал программы для Windows CE в Восточной Сибири, разрабатывал мобильный аудиокодек на C#, участвовал в разработке системы обучения L'Oreal и биржи для американских дальнобойщиков на ASP.NET. В Яндексе участвовал в создании Карт для Windows, Метрики для .NET-приложений, был в команде Яндекс.Такси.


Алексей Шпирко (Авито)


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


Дмитрий Воронин (Авито) — это я


imageАрхитектор мобильных приложений. В Авито с 2014 года, занимаюсь инфраструктурой тестирования, CI.


Дмитрий Стешин (Альфа-Банк)


imageiOS-разработчик, в том числе занимается CI/CD и релизами приложения.


Ведущий и модератор дискуссии


Илья Царев (Альфа-Банк)


image
Руководитель направления iOS-разработки в Альфа-Банке. Занимается разработкой iOS-приложений более пяти лет, развивает общебанковскую дизайн-систему (библиотеку для мобильных приложений) и собственный архитектурный подход.


Примерные вопросы для обсуждения


CI для каждой из платформ


Зачем нужно настраивать CI
Какие решения вы используете для CI
Какие проверки используются: правила, pr, линтеры, code coverage и так далее
UI-тестирование
Зачем нужно UI-тестирование. Как уменьшить время регресса с бесконечности до одного дня. Инфраструктура для UI-тестов. Как привлечь людей к написанию тестов, как программистов, так и не программистов. Сколько это стоит: поддерживать код, железо, экономит ли это время.
Какое железо нужно для всего этого
Потребуется ли ферма из Mac Mini или Mac Pro. Много ли времени занимает CI, какие параметры нужны, сколько стоит, есть ли альтернативы? А что делать, если нет денег?
Как происходит выкатка в магазины приложений?


CD


В чем отличие от CI
Feature Toggling
Как работают процессы до релиза. Как проверять, что не забыли добавить флаг на фичу. Что делать, если флагов стало больше трёхсот. Как работает система после релиза. Как происходит откатка.
Мониторинг приложений после релиза — как это устроено
Краши и что с ними делать. Какие продуктовые и технические метрики нужно считать.
Типы сборок для внутреннего тестирования
Бета-версии приложения, ранние релизы, поэтапные выкатки, работа с бета-версиями приложения в магазинах, работа с ранним доступом.


Open Source


Нужны ли опенсорсные проекты компаниям и зачем.


Где и когда смотреть


Дискуссия пройдёт 27 сентября и начнется в 17:00 по московскому времени. Посмотреть можно на ютуб-канале AvitoTech. Если у вас есть вопросы по CI/CD в мобильных платформах — задавайте в комментариях. Постараемся ответить на них во время обсуждения.


Присоединяйтесь!

Комментарии (10)


  1. Jack4Martynov
    18.09.2018 15:48

    Emulator/Simulator или реальное железо?
    Используется ли Docker и как?


  1. Jack4Martynov
    18.09.2018 15:52

    Есть ли жизнь е2е тестам?
    Есть ли другие автомтизацированные чеки — размера бинарника, новых permission?
    Гоняется ли obfuscated бинарник.


  1. Jack4Martynov
    18.09.2018 15:54

    Чеклист релиза/фичи:
    1. Есть ли аналитика
    2. Есть ли локализация
    3. Есть ли новые звисимости
    4. Есть ли скроншоты для маркетинга

    И как проверяется, автоматизируется?


  1. petrovichtim
    19.09.2018 03:54
    +2

    Какаие используете бесплатные инструменты для публикации в Google Play?


    1. WondeRu
      19.09.2018 10:05
      +1

      Мы jenkins’ом выкладываем в Google Play. День потерять, чтобы настроить, а потом все как по маслу


  1. punksta
    19.09.2018 11:03
    +1

    Используется ли fastlane для загрузки билдов в appstore и если да, как решаются поломки связанные с обновлением api apple?


  1. blainepwnz
    19.09.2018 11:30
    +1

    боритесь ли вы с флаки тестами, если боритесь — то как?
    почему только UI тестирование?
    В последнее время все чаще слышу, что юнит тесты не приносят никакой пользы, есть ли у вас юнит тесты?


  1. denis1stomin
    19.09.2018 11:30
    +1

    Как выглядит процесс приемочного тестирования (acceptance tests)?
    Сколько времени такое тестирование занимает и какие минимальные критерии приемки фичи должны быть, чтобы ее отправить в мастер бранч?
    Является ли попадание в мастер бранч автоматическим индикатором для деплоймента в продакшн? (Или есть еще несколько предварительных сред для деплоймента из мастера?)


  1. divor Автор
    19.09.2018 11:31
    +4

    На все вопросы из комментариев постараемся ответить во время прямого эфира


  1. permenko
    19.09.2018 20:52

    Какие метрики отслеживаете (напр. размер приложения, время билда), какие из них стараетесь улучшить, а какие просто мониторите?