# Mobile vitals

Copy as Markdown[Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fuser-guides%2Frum%2Fsdk-installation%2Fflutter%2Fmobile%2Ffeatures%2Fmobile-vitals.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fuser-guides%2Frum%2Fsdk-installation%2Fflutter%2Fmobile%2Ffeatures%2Fmobile-vitals.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)

### App start time[​](#app-start-time "Direct link to App start time")

With mobile vitals enabled, the SDK reports the `cold` mobile vital once per cold launch. From version 0.17.0 it also reports `cold_hybrid`. Both are in milliseconds and both are measured from process start:

| Mobile vital  | Ends when                                                                              |
| ------------- | -------------------------------------------------------------------------------------- |
| `cold`        | The first native screen is drawn (Android) or the app first becomes active (iOS)       |
| `cold_hybrid` | The first Flutter frame is on screen, including engine startup and Dart initialization |

`cold_hybrid` does not wait for data: a first route that shows a loading spinner counts.

The two values relate differently on each platform:

* **iOS:** `cold` ends when the launch screen appears, so `cold_hybrid` is larger, and the difference is the time Flutter adds to the launch. `cold_hybrid` includes the launch screen's 0.2 second fade-out, which Flutter completes before it reports the first frame.
* **Android:** `FlutterActivity` holds its first draw until Flutter's first frame is ready, so `cold` already includes Flutter startup and ends shortly after `cold_hybrid`. Use `cold_hybrid` to compare launches across both platforms.

Both values are recorded natively as the launch happens, so they are reported whether you call `initSdk` in `main()` or later, for example after a splash route or a login screen.

`cold_hybrid` is reported only when the app launches into Flutter:

* **Android:** the launch activity is a `FlutterActivity` or `FlutterFragmentActivity`.
* **iOS:** the root view controller is a `FlutterViewController`, or a `UINavigationController` or `UITabBarController` showing one.

In add-to-app integrations, where the app launches into a native screen, `cold_hybrid` is not reported, because the first Flutter frame there is not part of the launch.

Note

`cold_hybrid` is reported once per process, for the first Flutter frame in that process. Launches longer than 60 seconds, which come from a process the system started in the background, are dropped, as are iOS prewarmed launches.
