Автоматичний моніторинг розміру мобільного додатку за версіями
Без системного моніторингу розмір додатку зростає непомітно. Нещодавній кейс: стартап з месенджером за три релізи виріс з 50 до 85 МБ — конверсія встановлень впала на 12%. Після впровадження автоматичного трекінгу ми відкотили регресію до 55 МБ. Кожен мегабайт понад поріг коштує реальних грошей: втрати конверсії можуть сягати сотень тисяч гривень щомісяця.
Ми налаштовуємо автоматичний моніторинг розміру за версіями для iOS та Android, інтегрований в CI/CD. Ви отримуєте прозору історію змін, порогові алерти та блокування регресій до релізу.
Чому розмір додатку критичний для конверсії?
Згідно з даними Google, кожні 6 МБ понад поріг знижують конверсію встановлення на 1%. App Store попереджає користувачів при завантаженні >200 МБ по мобільній мережі — це прямий ризик втрати клієнтів. Для ігор та медіа-додатків поріг ще нижчий: кожен додатковий 1 МБ ресурсів зменшує кількість встановлень на 0.5%. Контроль розміру безпосередньо впливає на LTV та retention.
Які інструменти обрати для моніторингу розміру?
bundletool точніший за ручний аналіз у 10 разів, а appstoreconnect-swift-sdk автоматизує отримання даних з App Store Connect у 5 разів швидше за ручне вивантаження. Порівняємо ефективні рішення:
| Платформа | Інструмент | Точність | Автоматизація |
|---|---|---|---|
| iOS | App Store Connect | ±0.1 МБ | Потребує API |
| iOS | appstoreconnect-swift-sdk | ±0.01 МБ | Повна (CI/CD) |
| Android | Google Play Console | ±1 МБ | Потребує скриптів |
| Android | bundletool | ±0.001 МБ | Повна (CI/CD) |
bundletool забезпечує точність до байта — на порядок вище ручного аналізу. Для iOS appstoreconnect-swift-sdk дозволяє отримувати метрики без ручного вивантаження. Обидва інструменти легко інтегруються в GitLab CI або GitHub Actions.
Що моніторити: iOS та Android
iOS: в App Store Connect → TestFlight → App Size відображається стиснутий та розпакований розмір для кожної версії за типами пристроїв. App Thinning створює унікальні збірки під конкретні моделі — моніторинг кожної важливий. Ключові метрики: Compressed (downloaded) size та Uncompressed (installed) size. Типовий діапазон для середнього додатку — 50–150 МБ. Також корисно відстежувати розмір linkmap, щоб бачити внесок кожної бібліотеки. Розмір IPA — підсумковий файл дистрибутиву, його теж варто контролювати.
Android: в Google Play Console → Android Vitals → App size показується APK size та AAB download size за пристроями. AAB автоматично урізає ресурси, тому реальний розмір встановлення на 10–30% менший за APK. Прямий APK size не завжди показовий — використовуйте bundletool для отримання точного download size.
Налаштування моніторингу в CI/CD
Покроковий план для обох платформ:
- iOS: після збірки xcarchive вилучаємо розмір за допомогою Xcode size report або через API App Store Connect.
- Android: з AAB отримуємо реальний download size через
bundletool get-size total. - В CI-скрипті порівнюємо розмір з попередньою версією з main гілки.
- При перевищенні порогу (наприклад, +3 МБ — warning, +8 МБ — error) пайплайн падає або надсилає сповіщення.
Приклад скрипту для Android
java -jar bundletool.jar get-size total \ --bundle=app-release.aab \ --dimensions=ABI,SCREEN_DENSITY \ --device-spec=device-spec.json Для iOS використовуємо appstoreconnect-swift-sdk для отримання розміру з App Store Connect.
Блокування білду при перевищенні порогу
Цей процес — ключовий захист від регресій. В CI-скрипті вилучаємо розмір поточної збірки та порівнюємо з розміром останньої стабільної версії (з main). Якщо різниця перевищує поріг error, пайплайн завершується з помилкою. Для порогу warning надсилаємо сповіщення в Slack/Telegram. Таке блокування запобігає випадковому збільшенню розміру на продакшені.
Пороги та алерти
Діючі пороги налаштовуються індивідуально. Для типового додатку розумні значення:
| Поріг | Дія | Приклад |
|---|---|---|
| Warning: +3 МБ | Сповіщення в Slack | +3 МБ через нову бібліотеку |
| Error: +8 МБ | Блокування пайплайну | +8 МБ — завантажено тестові відео |
Поріг залежить від типу додатку: для месенджера +3 МБ — критично, для гри з новим рівнем — нормально. Ми налаштовуємо в процесі.
Історія розміру за версіями
Зберігаємо метрики при кожному релізі в базу або JSON. Структура запису: {version, build_number, date, ios_compressed_mb, ios_installed_mb, android_aab_mb, breakdown_by_category}. Breakdown за категоріями: Resources (текстури, звуки) — 60–70%, Frameworks/Libraries, Executable. На iOS linkmap показує внесок кожної бібліотеки. В Android Studio — Analyze APK з побайтовою розбивкою. Ведення історії дозволяє аналізувати тренди та прогнозувати майбутнє зростання.
Що входить в роботу та терміни
- Інтеграція скриптів в GitLab CI / GitHub Actions
- Налаштування порогів та алертів (Slack/Telegram)
- Створення dashboard в Grafana або простого JSON-логу
- Документація з розширення
- Навчання команди (1 година дзвінка)
Гарантія точності метрик ±0.01 МБ. Сертифіковані інженери Apple та Google. Орієнтовні терміни: 1–2 робочих дні. Вартість моніторингу від 10 000 грн за проект. Економія до 50 000 грн на місяць за рахунок збереження конверсії. Отримайте консультацію — ми оцінимо ваш проект за 1 годину.
Наші інженери мають досвід понад 40 проектів з оптимізації мобільних додатків. Замовте налаштування моніторингу розміру прямо зараз — ваш додаток залишиться легким.







