Доклад

Мониторим здоровье Gradle-сборки KMP проекта

Зал 3Кроссплатформенность

Gradle-сборка нашего большого КМП-проекта жутко тормозила: больше 20 минут IDE sync, 7 минут Android debug clean build. Миллион строк кода, 30 мобильщиков, таргеты Android и iOS, 98% переиспользование UI и логики (Compose Multiplatform).

Пробовали замерять оптимизации ручками, ударились о нестабильность окружения и гору ручной работы. Пробовали найти полноценное решение, чтобы мониторить здоровье сборки, — кроме Develocity «коробки» нет, а Develocity в России нельзя купить. Отдельные open-source инструменты решают только части проблемы. Статьи и доклады в интернете в основном про чистые Android-проекты, без привкуса KMP.

Пришлось разобраться и собрать Франкенштейна из open-source решений и самопала. Итог — MVP системы мониторинга здоровья сборки KMP проекта, которая закрывает потребность по правилу 20/80 и легко скейлится на любые проекты компании. Ключевые элементы:

  • сбор живых метрик билдов с локальных машин разработчиков и CI — Talaiot + ClickHouse + Grafana;
  • бенчмарк сборки для точечной оценки оптимизаций — Gradle-Profiler + кастомные скрипты интерпретации измерений;
  • лайтовый профайлинг на основе данных из Talaiot, визуализация в Perfetto.

Все три инструмента составляют «святую троицу», только вместе дают мощную синергию.

Несмотря на то что проект KMP, — выгоднее всего фокуситься на мониторинге именно Android debug-сборки. Важно не забыть про IDE sync, однако измерять его крайне сложно — обсудим, как с этим жить. iOS-билд — последний по приоритету, однако тоже важно учесть.

Система уже себя оправдала, расскажу про реальные кейсы ценности, например:

  • как вовремя предотвратили замедление сборки в 2-3 раза из-за нового антивируса;
  • как продали руководству ценность задачи распила проекта пополам, благодаря чему ускорили сборку в два раза. Уверены в метриках, 10 минут IDE sync, 3 минуты Android debug clean build.

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

Спикеры

Расписание