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

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

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Інтеграція Sentry для відстеження помилок мобільного додатку
Простий
~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

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

Sentry відрізняється від Firebase Crashlytics однією принциповою річчю — він умиє відстежувати не тільки краші, але й продуктивність: транзакції, spans, повільні HTTP-запити, ANR/hang на UI-потоці. Для додатків, де важливий не тільки факт падіння, але й деградація UX, це робить Sentry більш інформативним інструментом.

iOS: підключення через SPM

Додаємо https://github.com/getsentry/sentry-cocoa в Package Dependencies, потім у AppDelegate або @main:

import Sentry

SentrySDK.start { options in
    options.dsn = "https://<key>@sentry.io/<project>"
    options.environment = Bundle.main.object(forInfoDictionaryKey: "SentryEnvironment") as? String ?? "production"
    options.tracesSampleRate = 0.2  // 20% транзакцій для performance
    options.profilesSampleRate = 0.1
    options.attachViewHierarchy = true  // снимок ієрархії при краші
}

attachViewHierarchy = true — корисна фіча: у кожному краш-репорті з'являється дерево UIView/SwiftUI-ієрархії в момент падіння. Одразу видно, на якому екрані та у якому стані UI сталося падіння.

Android: Gradle + Application

implementation("io.sentry:sentry-android:7.+")
// Application.onCreate()
SentryAndroid.init(this) { options ->
    options.dsn = "https://<key>@sentry.io/<project>"
    options.environment = BuildConfig.SENTRY_ENVIRONMENT
    options.tracesSampleRate = 0.2
    options.isEnableUserInteractionTracing = true  // автотрейсинг тапів
}

isEnableUserInteractionTracing автоматично створює транзакції при взаємодії користувача з UI. Без дополнительного кода видно, що кнопка "Оформити замовлення" викликає мережевий запит довжиною 4,2 секунди на 3G.

Мониторинг продуктивності

// iOS: ручна транзакція
let transaction = SentrySDK.startTransaction(name: "checkout", operation: "ui.action")
let span = transaction.startChild(operation: "http.client", description: "POST /orders")
// ... запрос ...
span.finish()
transaction.finish()

Транзакції попадають у розділ Performance у Sentry. Там видні p50/p75/p95/p99 перцентилі, тепловідна карта повільних запитів та точні spans.

Користувацькі теги та breadcrumbs

SentrySDK.configureScope { scope in
    scope.setUser(SentryUser(userId: userId))
    scope.setTag(value: "premium", key: "subscription")
    scope.addBreadcrumb({
        let crumb = Breadcrumb()
        crumb.message = "Відкрито екран корзини"
        crumb.category = "navigation"
        return crumb
    }())
}

Breadcrumbs — послідовність подій до краху. Дозволяють відновити шлях користувача без відтворення бага.

Source maps для React Native

Якщо проект на React Native — потрібна виграння JS bundle source maps при кожному релізі:

npx sentry-cli releases \
  files "$VERSION" \
  upload-sourcemaps \
  --dist "$BUILD_NUMBER" \
  ./dist/bundle.js.map

Без source maps стектрейс RN-крашів виглядає як набір анонімних функцій з мініфіцованого бандла.

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

  • Підключення sentry-cocoa / sentry-android / sentry-react-native
  • Конфігурація environments (dev / staging / production)
  • Конфігурація performance tracing з розумним sample rate
  • Інтеграція scope: User ID, теги, breadcrumbs
  • Налаштування алертів по error rate та p95 latency
  • Upload dSYM / ProGuard mapping / JS source maps в CI

Сроки

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