Imagine you release a mobile app update, and within an hour crash reports show a 200% error spike. You open Firebase Crashlytics and see the stack trace, but have no idea what the user was doing. Sentry solves this by collecting not only stack traces but also breadcrumbs, performance data, and user context. Our team, with over 5 years of production experience, ensures a stable turnkey integration. Basic setup takes 0.5 to 1 day; full performance tracing takes 1 to 2 days. The investment pays off after the first release: average debugging time drops by 40%, and crash rates can decrease by 90%.
Why Choose Sentry?
Sentry goes beyond crash reporting by including performance monitoring: transactions, spans, slow HTTP requests, and ANR detection. For apps that need a smooth UI, this provides a fuller picture. According to Sentry documentation, breadcrumbs reconstruct the user's action sequence, cutting diagnosis time by half compared to raw stack traces.
| Criteria | Sentry | Firebase Crashlytics |
|---|---|---|
| Crash reporting | + | + |
| Performance tracing | + (transactions/spans) | - |
| Breadcrumbs | + (automatic and manual) | - (only logs) |
| User context | + (tags, identifiers) | + (limited) |
| Source maps support | + (iOS dSYM, Android ProGuard, JS) | + (Android only) |
| Pricing | Pay-as-you-go, free tier | Free with limitations |
Sentry wins in scenarios where you need not just to log crashes but to investigate their root cause: breadcrumbs show the user's path, and performance tracing uncovers slow requests.
How We Implement Sentry
We connect Sentry to your specific platform, following best practices. Example configuration for iOS (SwiftPM):
// AppDelegate.swift or @main import Sentry SentrySDK.start { options in options.dsn = "https://[email protected]/project" options.environment = Bundle.main.object(forInfoDictionaryKey: "SentryEnvironment") as? String ?? "production" options.tracesSampleRate = 0.2 // 20% of transactions for performance options.profilesSampleRate = 0.1 options.attachViewHierarchy = true // UI snapshot on crash } SentrySDK.configureScope { scope in scope.setUser(SentryUser(userId: userId)) scope.setTag(value: "premium", key: "subscription") scope.addBreadcrumb({ let crumb = Breadcrumb() crumb.message = "Cart screen opened" crumb.category = "navigation" return crumb }()) } For Android (Gradle + Application):
// build.gradle (module) implementation("io.sentry:sentry-android:7.+") // Application.onCreate() SentryAndroid.init(this) { options -> options.dsn = "https://[email protected]/project" options.environment = BuildConfig.SENTRY_ENVIRONMENT options.tracesSampleRate = 0.2 options.isEnableUserInteractionTracing = true // auto trace taps } // add breadcrumbs Sentry.configureScope { scope -> scope.setUser(SentryUser(id = userId)) scope.setTag("subscription", "premium") scope.addBreadcrumb(Breadcrumb().apply { message = "Cart screen opened" category = "navigation" }) } We also add manual transactions for performance monitoring:
let transaction = SentrySDK.startTransaction(name: "checkout", operation: "ui.action") let span = transaction.startChild(operation: "http.client", description: "POST /orders") // ... perform request ... span.finish() transaction.finish() What to Know About Sample Rate?
Sample rate determines what percentage of sessions send performance traces. For production, we recommend 0.2 (20%) to avoid hitting quotas. Setting it to 1.0 can lead to extra costs. We help you find the optimal value for your audience.
Step-by-Step Integration Guide
- Create a project in Sentry and obtain the DSN.
- Add SDK via SPM/CocoaPods/Gradle/Maven.
- Configure environments (dev/staging/production) via environment variables.
- Set up performance tracing with a chosen sample rate (recommend 0.2 for production).
- Add breadcrumbs at key points (navigation, network requests).
- Set up upload of dSYM/ProGuard mapping/JS source maps in CI/CD.
- Create alerts based on error rate and p95 latency.
How to Set Up Alerts and Dashboards?
After integration, configure alerts to respond in time. Sentry allows rules based on:
- Error rate – e.g., >10 crashes per hour per version.
- p95 latency – if p95 exceeds 2 seconds.
- New errors – first-time crash seen.
Dashboards show heatmaps of slow requests, performance percentiles, and error trends. We tailor these to your business metrics.
Common Problems When Setting Up Sentry
- High sample rate: Setting it to 1.0 will send 100% of transactions, potentially exceeding quota. Stick to 0.2 for production.
- Missing source maps: React Native stack traces become useless. Always set up upload in CI.
- Ignoring environments: All errors land in production, making filtering impossible.
- No user context: Without tags and breadcrumbs, investigating errors is difficult.
Performance Comparison: Sentry vs Crashlytics
In our measurements, Sentry adds roughly 2-5% to app launch time with proper setup. Crashlytics adds about 1-3%. But Sentry provides much richer data for analysis.
| Parameter | Sentry | Crashlytics |
|---|---|---|
| Overhead (init) | ~50ms | ~30ms |
| Breadcrumbs | + (up to 100 events) | - |
| Performance | + (spans, transactions) | - |
| Source maps | iOS dSYM, Android ProGuard, JS | Android only |
What's Included in the Work
- Connecting sentry-cocoa / sentry-android / sentry-react-native
- Setting up environments (dev, staging, production)
- Configuring performance tracing with optimal sample rate
- Integrating scope: User ID, tags, breadcrumbs
- Setting up alerts by error rate and p95 latency
- Uploading dSYM / ProGuard mapping / JS source maps in CI
- Documentation and team training
Process for Integration
- Analysis: Review your app and choose the best configuration.
- Design: Plan scope, tags, and breadcrumbs matching your business logic.
- Implementation: Integrate SDK, configure environments, add code.
- Testing: Simulate errors, verify dashboards.
- Deployment: Set up symbol upload in CI, document setup.
Timeline and Pricing
Basic crash reporting setup takes 0.5 to 1 day. Full performance tracing with custom transactions and alerts takes 1 to 2 days. Cost is calculated individually based on app complexity. We've completed over 30 successful integrations for apps with up to 10 million users. On average, the investment pays back within 2 months by reducing debugging time.
Contact us to discuss the details of integrating Sentry. Get a consultation and preliminary estimate within one day. Order Sentry integration and cut your error-search time.







