Launch time & MetricKit
Cold vs. warm launch
A cold launch is starting PawWalk from nothing β the OS hasn't got any of its code or data in memory, so it has to map the binary, run everything before main() (loading dynamic libraries, running static initializers β the pre-main phase), then build and show the first frame. A warm launch (the app was already recently in memory, e.g. resumed from the background) skips most of that and is much faster. Users mostly notice cold launches β it's the wait before the very first thing they see.
The budget that matters is time-to-first-frame: work that isn't needed to draw that first screen β an analytics SDK's full setup, prefetching data the learner won't see for a few taps, non-essential background registrations β should be deferred until just after, not done inline during launch.