• Android
  • iOS
  • Flutter
  • React Native

Mobile app performance monitoring that shows what every release did.

Epsilon Delta Orion is a mobile app performance monitoring SDK for Android, iOS, Flutter and React Native. It measures speed, jank, crashes, API time and rage clicks for every screen on real devices. It counts every Flutter screen on its own, where other tools see the whole app as one, and compares each release with the last.

inspections to date
1 Billion
growth in annual traffic
4%
  • v5.4 is 180% slowerAPI p90 vs v5.3
  • Rage spiked 2.4×above window average
  • AI-curatedJank up 10% on the Flutter app

Pulse

Each day on one page, for all your apps.

Compare your apps side by side, today against yesterday, with the screens, APIs and releases that moved.

Shop app

91 ▲2
First paint
46 ms
Fully drawn
138 ms
Jank
34%

Partner app

96 ▲1
First paint
31 ms
Fully drawn
84 ms
Jank
22%

Ops app

88 ▼3
First paint
52 ms
Fully drawn
190 ms
Jank
41%

What changed

  • Jank · dynamic page▼ 9%
  • Battery / hr · basket page▲ 14%
  • API p90 · /v1/search▲ 210 ms

Orion AI insights

Dynamic page jank improved since yesterday, while battery use rose on the basket page.

The iOS tab adds hangs per session, memory pressure and thermal level.

Open Pulse in the tour

Version impact

Compare your last three releases at a glance.

v5.4.0

  • Fully Drawn▲ 71 ms (38%)
  • Jank▲ 6%
  • Orion Score▼ 4 pts

v5.3.0

  • Fully Drawn▼ 22 ms (11%)
  • Jank▼ 3%
  • Orion Score▲ 2 pts

v5.2.1

  • Fully Drawn▼ 9 ms (4%)
  • Jank▲ 1%
  • Orion Score▲ 1 pt

The kind of issue other tools miss

Cold start

One startup phase dominates launch

One app-start number hides it. Phases show when Flutter engine init takes the largest share, and what pre-warming saves.

Frames

The busiest screen is also the jankiest

Rank Flutter routes by janky frames, and see whether frames fall during data loading, layout or animation.

API

A quiet endpoint fails half its calls

Per-endpoint failure rates surface failing calls that an app-wide average hides.

Rage clicks

Rage taps cluster on one spot

A heatmap with scroll position shows exactly where to look. A stepper tapped quickly also counts, so check what sits there first.

Resources

Animation files are fetched on every launch

Request counts expose assets that could be bundled or cached on disk, saving data and screen load time.

Cold start

See where launch time goes, phase by phase.

Process start, app init, activity, Flutter engine, first frame and first data on Android, by version, plus the gain from a pre-warmed engine.

Open Speed details
  • Process · 9%
  • App · 11%
  • Activity 1.5 s · 36%
  • Engine init 2.1 s · 44%

Engine init is 44% of cold start. Pre-warming cuts first frame to 1.3 s.

Crash / ANR + debug symbols

Stack traces your engineers can read.

Fatal, non-fatal, ANR, OS crash and hang issues with release health and AI analysis. ANRs name the code on the main thread. iOS hangs show duration, time, screen and MetricKit stacks, and uploaded dSYMs name stacks from the last 14 days too.

History Tracking shows the path each affected user took before a crash or ANR: the screens, the slow API calls and the events along the way.

Open Crash / ANR
Fatal
8
ANRs
1.1K
Users
4.6K
Crash-free
99.98%
  • ANRMain thread blocked at QueuedWork.processPendingWork
  • FatalIllegalStateException at PaymentFragment.kt:142
Sample data

API and network

API time as your user waits for it.

Every Dio and http call is captured automatically, so there is no manual wrapping and no extra release.

Server time vs everything else

Server 310 ms Network + app 285 ms

If your server sends an x-response-time header, Orion splits each call so you know which team owns the delay.

Failures your servers never see

  • Connection timeout
  • Receive timeout
  • Connection error
  • Bad certificate

Server-side tools cannot record calls that never arrive. Orion records them on the phone, with the cause.

Network waterfall for one screen load

Sample data · fully drawn at 1,420 ms
  • /v1/config
  • /v1/page
  • hero.webp
  • Frozen frames

See frozen frames against the API calls in flight.

Open API details

Everything else that shapes the experience

Screen Painting

  1. 0.0 s
  2. 0.1 s
  3. 0.2 s
  4. 0.3 s
  5. 0.4 s

AI-driven insights into how each screen paints for real users.

Now part of Speed details

Activity Clustering

  • ProductActivity
  • CheckoutActivity

RenderAPIResources

Group slowness by activity to separate render, API and resource time.

Now part of API details

History Tracking

  1. Home → Product
  2. Checkout · slow API
  3. Crash · IllegalStateException

Follow the history of crashes and ANRs for anonymous users.

Now part of Crash / ANR

Frames

Good, janky and frozen frames. Severity, cluster size and whether time is lost to layout, data or animation.

Open in the tour

Rage click heatmap

Count per screen and a heatmap with scroll position, with version comparison per 100 sessions.

Open in the tour

API and resources

  • v5.4 · 4,100 ms
  • v5.3 · 820 ms

Status codes, error endpoints, largest payloads and Android vs iOS, per release.

Open in the tour

Device and session health

  • Battery
  • Memory
  • Disk
  • Slow sessions
  • Session depth

Memory, battery and wake locks per screen and per session, on Android and iOS.

Open in the tour

Top devices and OS versions

Find the devices and OS versions behind slow Fully Drawn Paint.

Open in the tour

Sampling and custom routing

Sample each platform separately, or switch one off. Every first screen is recorded, and rates and latencies stay accurate. Apps with custom routing can use the manual screen tracker.

Alerts

Every API endpoint watched, with no thresholds to set.

Each endpoint is compared with the same time yesterday and last week. Several endpoints failing together arrive as one email, and you get a resolved note when they recover.

Choose real-time email, a daily or weekly digest, and Slack for critical alerts. Set thresholds per product, snooze from the email and use quiet hours.

Open Alerts
  • Failing API endpointError rate against yesterday and last week
  • Slow API endpointp90 latency against yesterday and last week
  • Crash or ANR spikeRates against the previous 24 hours; iOS watchdog terminations count as ANRs
  • Slower new versionFires when a new version is 15% slower or worse
  • Slow screen loadsApp-wide p90 fully drawn time
  • Jank and rage clicksSpikes, and the screen behind most janky frames
  • Traffic dropRequests fall sharply or stop
  • Cold startDegradation alert, launching soon

What Orion adds to the tools you already use

Capability Orion Firebase Play Console vitals Xcode Organizer
Load time of each Flutter screen First paint and fully drawn, per route Not possible for Flutter screens App start only App launch only
Every Dio or http API call Automatic: status, latency, size, screen Manual HttpMetric per call None None
Jank on each Flutter screen Janky and frozen frames per route, with phase Whole Flutter app counts as one screen App-wide App-wide hitch rate
Rage clicks Per screen, heatmap with scroll position None None None
Cold start phases Process to first data (Android) One app-start duration Time to first frame, % slow starts Launch time, slowest functions
iOS hangs Per session, MetricKit stacks per version None documented Android only Hang rate and logs, opted-in users
Memory, battery, wake locks Per screen and session, Android and iOS Memory for a sample of sessions App-level, Android only App-level
Crashes and ANRs Yes, naming main-thread code Yes, with AI insights Yes, the rates Google ranks on Yes

Crashlytics and Play Console remain the reference for crash and ANR rates. Firebase also covers all users and updates within minutes; Play Console and Organizer use opted-in users and update daily. Based on public documentation, October 2026.

A small footprint in your app

iOS download size
+202 KB
iOS installed size
+644 KB
Orion code on Android
~107 KB
Android main-thread time in a 40 s session; longest block 2.0 ms
7.6 ms

Flutter SDK 1.2.42. Sizes from release builds of a blank Flutter app, with and without Orion. Main-thread time from a debug build on an emulator.

Questions about Orion

What is mobile app performance monitoring?

It measures how an app behaves on real users’ phones: start time, screen load, frame drops, crashes, ANRs and API time, broken down by device and app version.

What is an ANR?

Application Not Responding. Android shows it when the app’s main thread is blocked for 5 seconds while the user is interacting.

How is Orion different from Firebase Crashlytics?

Crashlytics focuses on crashes. Orion adds screen speed, jank, API time on the phone, rage taps and per-endpoint alerts, compared release by release.

Does Orion slow my app down?

The Flutter SDK adds about 202 KB to the iOS download, and used 7.6 ms of Android main-thread time in a 40-second test session.

Does History Tracking collect personal data?

[Confirm what History Tracking records and how it is anonymised.]

Last updated 6 Nov 2026 · Reviewed by [Name], [Role]

Know how your next release really landed.