Walk through what happens from tapping an app icon to its first frame rendered

Updated May 17, 2026

Short answer

SpringBoard launches process → dyld loads Mach-O → runtime init → main → UIKit setup → first CoreAnimation commit → GPU renders frame.

Deep explanation

SpringBoard (UI system process) receives tap event, calls launch services. kernel spawns process via exec. dyld loads Mach-O binary, performs rebasing + symbol binding using shared cache. objc runtime initializes classes + categories. UIApplicationMain starts run loop. UIKit builds view hierarchy. Core Animation commits first transaction. Render Server converts layer tree into GPU commands. Metal renders frame at next vsync.

Real-world example

Slow launch caused by heavy +load methods or static initializers.

Common mistakes

  • Thinking UI appears before dyld finishes.

Follow-up questions

  • What is the biggest launch bottleneck?
  • Where can optimization happen?

More Objective-C interview questions

View all →