~200 ms to load Flutter-dependent fonts and assets.

~400 ms to run the entrypoint, create the first widget tree,
and  compile the needed GPU shader programs.

The FlutterEngine should be pre-warmed late enough to delay the
memory consumption needed but early enough to avoid combining the
Flutter engine start-up time with the first frame latency of
showing Flutter.

The exact timing depends on the app’s structure and heuristics.
An example would be to load the Flutter engine in the screen
before the screen is drawn by Flutter.

Given an engine pre-warm, the first frame cost on UI attach is:

320 ms on Android and an additional 12 MB
(highly dependent on the screen’s physical pixel size).

200 ms on iOS and an additional 16 MB
(highly dependent on the screen’s physical pixel size).