Інтеграція Bugsnag для відстеження помилок мобільного додатку

TRUETECH займається розробкою, підтримкою та обслуговуванням мобільних додатків iOS, Android, PWA. Маємо великий досвід та експертизу для публікації мобільних додатків до популярних маркетів Google Play, App Store, Amazon, AppGallery та інші.

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Інтеграція Bugsnag для відстеження помилок мобільного додатку
Простий
~1 день
Часті запитання

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

Етапи розробки

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

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

Інтеграція Bugsnag для відстеження помилок мобільного додатка

Bugsnag займає нішу між Crashlytics та Sentry: більш багата группировка помилок, ніж у Firebase, але без overhead performance-трейсингу з Sentry. Основна сила — алгоритм intelligent error grouping: Bugsnag групує схожі краші по стектрейсу інтелектуально, не створюючи тисячу окремих issue з однієї помилки з різними адресами пам'яті. У проектах з великою аудиторією це різко спрощує приоритизацію.

Підключення на iOS

// Package.swift або SPM в Xcode
// https://github.com/bugsnag/bugsnag-cocoa

import Bugsnag

@main
struct MyApp: App {
    init() {
        let config = BugsnagConfiguration.loadConfig()
        config.apiKey = "YOUR_API_KEY"
        config.releaseStage = Bundle.main.infoDictionary?["ReleaseStage"] as? String ?? "production"
        config.notifyReleaseStages = ["staging", "production"]
        Bugsnag.start(with: config)
    }
}

notifyReleaseStages — один з перших параметрів, який варто налаштувати. Без нього debug-сборки засоряють панель управління подіями розробки.

Підключення на Android

implementation("com.bugsnag:bugsnag-android:5.+")

В AndroidManifest.xml:

<meta-data android:name="com.bugsnag.android.API_KEY" android:value="YOUR_API_KEY"/>

SDK автоматично ініціалізується при старті Application. Для кастомної конфігурації:

val config = Configuration.load(this).apply {
    releaseStage = BuildConfig.RELEASE_STAGE
    enabledReleaseStages = setOf("staging", "production")
    maxBreadcrumbs = 50
}
Bugsnag.start(this, config)

Збагачення контексту

Bugsnag особливо добре працює з метаданими — вони структуровані за табами в кожному баг-репорті:

Bugsnag.addOnSendError { event in
    event.addMetadata([
        "user_id": userId,
        "subscription": "premium",
        "cart_items": cartCount
    ], section: "app_state")
    event.setUser(userId, withEmail: email, andName: name)
    return true
}

Секція app_state з'явиться окремою вкладкою в інтерфейсі Bugsnag. Швидко видно стан додатка в момент помилки без розбору логів.

Severity та управління пріоритетом

// Явно позначити помилку як некритичну
Bugsnag.notifyError(NetworkError.timeout) { event in
    event.severity = .warning
    event.context = "profile_image_load"
    return true
}

Severity впливає на сортування у панелі управління та на алерти. error — попадає в Slack/PagerDuty одразу, warning — агрегується в дайджест.

Bugsnag vs Crashlytics: коли вибрати Bugsnag

Критерій Bugsnag Crashlytics
Groupировка помилок Інтелектуальна, налаштовувана Базова по стектрейсу
Метадані Вкладки з довільною структурою Key-value, flat
Безплатний план Обмежений (до 7500 подій/мес) Безплатно у Firebase
Self-hosted Ні Ні
Інтеграції Jira, PagerDuty, Slack, GitHub Firebase Console, Email

Bugsnag виправданий там, де команда витрачає час на розбір дубликатів у Crashlytics. Хороша groupировка окупається при обсязі 10k+ DAU.

Що входить до роботи

  • Підключення SDK (iOS SPM / Android Gradle / Flutter / React Native)
  • Конфігурація release stages та фільтрація dev-сборок
  • Конфігурація метаданих через addOnSendError
  • Налаштування breadcrumbs та кастомного контексту
  • Інтеграція з Jira або Slack для алертів
  • Upload dSYM (iOS) та ProGuard mapping (Android)

Сроки

Базова інтеграція: 0,5–1 день. Повна налаштування з метаданими та інтеграціями: 1–2 дні. Вартість розраховується індивідуально.