Моніторинг розміру додатка по версіях
Розмір додатка впливає на конверсію установок напрямо. Google опубліковані дані: кожні 6 МБ понад певний поріг знижують конверсію на 1%. App Store попереджає користувачів при завантаженні >200 МБ по мобільній мережі. Без моніторингу розмір растворяться незабачено: розробник додав SDK, дизайнер завантажив raw PNG замість WebP, хто-то закомітив тестові ресурси — й додаток став на 15 МБ важче, ніхто не помітив.
Що й де моніторити
iOS: App Store Connect → TestFlight → App Size показує розмір для кожної версії по типам пристроїв (Universal, iPhone з конкретним чипом). App Thinning робить різні білди для різних пристроїв — моніторимо кожен варіант окремо. Основний показник: Compressed (downloaded) size та Uncompressed (installed) size.
Android: Google Play Console → Android Vitals → App size. Показує розмір APK й AAB (Android App Bundle) download size по пристроях. AAB автоматично урізає ресурси під конкретний пристрій, тому реальний розмір установки відрізняється від розміру APK.
Автоматичний моніторинг у CI/CD
Ручна перевірка у App Store Connect — ненадійна. Потрібна автоматична перевірка в CI з порогами й блокуванням пайплайну.
Для iOS після сборки xcarchive витягніть розмір:
# Генеруємо IPA з App Thinning
xcodebuild -exportArchive \
-archivePath Build/App.xcarchive \
-exportPath Build/Export \
-exportOptionsPlist ExportOptions.plist
# Отримуємо розмір з SizeReport.txt, який Xcode генерує при експорті
cat Build/Export/App.ipa | wc -c
Точніший спосіб — xcrun simctl addmedia з подальшим аналізом, або використання appstoreconnect-swift-sdk для отримання реального App Store size через API.
Для Android — з AAB:
# bundletool для отримання реального download size
java -jar bundletool.jar get-size total \
--bundle=app-release.aab \
--dimensions=ABI,SCREEN_DENSITY \
--device-spec=device-spec.json
bundletool — офіційний інструмент Google, який імітує те, що робить Play Store при раздачі APK з AAB.
Пороги та алерти
У CI-скрипті: якщо розмір виріс більше ніж на N МБ відносно попередної версії (або відносно main гілки) — білд вважається попереджувальним або падає. Розумні пороги:
- Попередження: +3 МБ за одну версію
- Помилка/блокування: +8 МБ за одну версію
Поріг залежить від типу додатка: для мессенджера +3 МБ — багато, для гри з новим рівнем — нормально.
Dashboard по версіях
Зберігаємо метрики розміру в базу (або простий JSON у репозиторії) при кожному релізі. Структура запису: {version, build_number, date, ios_compressed_mb, ios_installed_mb, android_aab_mb, breakdown_by_category}.
Breakdown by category — розбивка на складові:
- Resources (текстури, звуки, відео) — зазвичай 60–70% розміру
- Frameworks/Libraries — SDK та статичні бібліотеки
- Executable — скомпільований код
На iOS linkmap файл показує вклад кожної бібліотеки та файлу у розмір бінарника. У Android Studio — Analyze APK (Build → Analyze APK) з побайтовою розбивкою.
Відстеження тренду по версіях дозволяє швидко визначити, у якому релізі розмір різко виріс, й знайти коміт-винуватець.
Терміни настройки: один-два робочі дні, включаючи інтеграцію в CI та створення базового dashboard.







