Моніторинг швидкості запуску додатку (Launch Time)

Користувачі судять про застосунок за перші секунди — повільний запуск відлякує навіть лояльну аудиторію. Ми налаштовуємо моніторинг часу запуску на iOS та Android, охоплюючи cold, warm і hot launch, щоб ви бачили реальну картину без здогадів. Наша команда реалізує проєкт під ключ — від інтеграції SDK до дашборда з алертами, забезпечуючи стабільну роботу та подальшу підтримку.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Моніторинг швидкості запуску додатку (Launch Time)
Середній
від 4 годин до 2 днів
Часті запитання

Час холодного запуску — перша метрика, яку помічає користувач. Якщо ваш cold launch перевищує 2 секунди, кожен двадцятий користувач може закрити додаток. Apple рекомендує холодний запуск менше 20 секунд, але реальний поріг терпіння нижчий. Без моніторингу ви не дізнаєтесь, що P95 сягає 5 секунд. Моніторинг перцентилів (P50, P95) дає повну картину: середнє значення приховує хвіст, який вбиває користувацький досвід. Налаштування алертів на регресію дозволяє не пропустити погіршення між релізами. Ми налаштовуємо моніторинг запуску для iOS та Android, використовуючи MetricKit і Firebase Performance — багаторічний досвід та десятки реалізованих інтеграцій. За нашої допомоги ви зможете протягом двох днів отримати прозору систему метрик і перестати гадати, що гальмує запуск. Налаштування включає інтеграцію SDK, створення дашборду та налаштування сповіщень у Slack або Telegram. Це дозволяє зекономити до 40% часу на налагодження регресій та підвищити конверсію утримання на 5-10%.

Моніторинг швидкості запуску: що вимірюємо та як

Cold launch — додаток не в пам'яті, процес створюється заново. Найповільніший, найважливіший для моніторингу. Warm launch (iOS) — додаток був у пам'яті, але скинутий у background. Процес живий, але viewDidLoad виконується заново. Hot launch — повернення з background. Практично миттєвий. Моніторити потрібно cold та warm. Hot не показовий.

Чому холодний запуск — головна метрика?

Холодний запуск — перше враження користувача. Якщо він триває довше 3 секунд, кожен двадцятий користувач може закрити додаток. Apple у рекомендаціях щодо продуктивності вимагає холодний запуск менше 20 секунд, але реальний поріг терпіння — близько 2 секунд. Моніторинг P95 показує найгірший сценарій, який не видно в середньому.

Який інструмент моніторингу обрати для вашого проєкту?

Вибір між MetricKit та Firebase Performance залежить від платформи та вимог до real-time даних. MetricKit ідеальний для iOS-only проєктів, де потрібна агрегована статистика від усіх користувачів без встановлення SDK. Firebase Performance підходить для кроссплатформених додатків і дозволяє отримувати дані в реальному часі з розбивкою по пристроях. Детальніше про Firebase Performance можна дізнатися в документації Firebase Performance.

Як налаштувати моніторинг запуску?

  1. Виберіть інструмент: MetricKit або Firebase Performance.
  2. Інтегруйте SDK у проєкт.
  3. Додайте кастомні мітки для pre-main часу (iOS) або ініціалізації (Android).
  4. Створіть дашборд метрик (P50, P95, розподіл по версіях).
  5. Налаштуйте алерти на регресію: сповіщення, якщо P95 холодного запуску зріс на 20% порівняно з попередньою версією.
  6. Перевірте збір даних на реальних пристроях через TestFlight або Firebase App Distribution.

Вбудовані інструменти платформ

iOS — MetricKit. Починаючи з iOS 13, система агрегує діагностику реальних користувачів і віддає через MXMetricManager:

class AppDelegate: MXMetricManagerSubscriber {
    func applicationDidFinishLaunching() {
        MXMetricManager.shared.add(self)
    }
    func didReceive(_ payloads: [MXMetricPayload]) {
        for payload in payloads {
            if let launchMetric = payload.applicationLaunchMetrics {
                let coldLaunchP50 = launchMetric.histogrammedTimeToFirstDrawKey
                    .histogram(for: .applicationLaunchTimeToFirstDraw)
                Analytics.track("cold_launch_p50", value: coldLaunchP50)
            }
        }
    }
}

MetricKit віддає дані раз на добу, агреговані за попередні 24 години. Це не real-time, але реальна вибірка по всіх користувачах.

Android — Firebase Performance Monitoring. app_start trace збирається автоматично при підключенні SDK. Розділяє app_start_cold та app_start_warm. Доступний у Firebase Console з розбивкою по пристроях, версіях ОС, версіях додатку.

Для кастомних міток в Android — FirebasePerformance.getInstance().newTrace("custom_init") + start() / stop(). Дозволяє зрозуміти, яка саме ініціалізація гальмує.

Як виміряти pre-main час на iOS?

Pre-main час (завантаження dynamic linker, ініціалізація Objective-C runtime) не покривається звичайними вимірами в AppDelegate. Єдиний спосіб побачити його — увімкнути змінну середовища DYLD_PRINT_STATISTICS у схемі Xcode. Для автоматичного збору використовуйте інструментування через MetricKit та спеціалізовані бібліотеки.

Інструментування в коді

Навіть без зовнішніх SDK можна виміряти запуск самостійно. iOS:

// В AppDelegate або @main
static let appLaunchTimestamp = Date()

// В viewDidAppear першого екрану
let launchDuration = Date().timeIntervalSince(AppDelegate.appLaunchTimestamp)
Analytics.track("cold_launch_duration", value: launchDuration)

Але цей метод неточний — не враховує pre-main час (динамічні бібліотеки, runtime). Для pre-main: змінна середовища DYLD_PRINT_STATISTICS у схемі Xcode.

Android:

class App : Application() {
    override fun onCreate() {
        val start = SystemClock.elapsedRealtime()
        super.onCreate()
        // ... ініціалізації
        val initDuration = SystemClock.elapsedRealtime() - start
        FirebaseAnalytics.getInstance(this).logEvent("app_init_duration") {
            param("duration_ms", initDuration)
        }
    }
}

SystemClock.elapsedRealtime() точніше System.currentTimeMillis() для вимірювання інтервалів.

Dashboard та алерти

Мінімальний набір метрик для моніторингу:

Метрика Інструмент Цільове значення
Cold launch P50 Firebase / MetricKit < 1.5 сек
Cold launch P95 Firebase / MetricKit < 3.0 сек
Cold launch по версіях Firebase Не зростає
Slow cold launches (> 5 сек) Firebase < 5%

Алерт на зростання P95 між версіями — важливіше абсолютного значення. Регресія на 500 мс між двома релізами — сигнал шукати винуватця в diff змін.

У Grafana або Firebase Alerts налаштовуємо сповіщення: якщо P95 cold launch у поточній версії перевищує P95 попередньої версії на 20% — сповіщення в Slack.

Порівняння інструментів
Інструмент Частота оновлення Кроссплатформеність Кастомні метрики
MetricKit Раз на добу Тільки iOS Обмежена
Firebase Performance Real-time iOS + Android Так

Firebase Performance краще підходить для кроссплатформених проєктів, MetricKit — якщо потрібні дані від усіх користувачів iOS без встановлення SDK.

Що входить у налаштування моніторингу

  • Інтеграція MetricKit або Firebase Performance SDK.
  • Налаштування збору даних cold/warm launch.
  • Створення дашборду в Firebase Console або Grafana.
  • Налаштування алертів на регресію (Slack, email).
  • Документація з експлуатації та рекомендації з оптимізації.
  • Навчання розробників — до 1 години консультації.

Ми гарантуємо, що після налаштування ви будете бачити P50, P95 та розподіл часу запуску по версіях і пристроях.

Терміни: від 1 до 2 днів на базову інтеграцію. Оцінимо ваш проєкт — зв'яжіться з нами для консультації. Замовте налаштування моніторингу запуску під ключ і отримайте готову систему з алертами.

Наші компетенції:

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714