How Uber Measures Performance for iOS Apps
Original post Measuring Performance for iOS Apps | App Startup
Article Summary
Rajat Sharma and Ugo Nwakama from Uber reveal how iOS 15's pre-warming feature broke their app startup metrics, causing a misleading 130% spike in launch times. Here's how they rebuilt their entire measurement system.
Uber's iOS team had to completely redesign how they measure cold app startup performance after iOS 15 introduced pre-warming, which launches apps into memory before users tap the icon. Their old signposting approach became unreliable, forcing them to build a hybrid system combining Apple's MetricKit with custom instrumentation.
Key Takeaways
- iOS 15 pre-warming caused false 130% increase in measured startup times
- New system combines MetricKit histograms with custom post-launch tracking
- Data pipeline processes millions of JSON rows daily across user sessions
- Measures complete journey: process creation to first interactive UI render
- Tracks discrete sub-spans to identify optimization opportunities like pre-fetching
Uber built a scalable measurement system that joins OS-level MetricKit data with custom session metrics to accurately track startup latency despite iOS pre-warming complications.
Continue reading
This page summarizes “Measuring Performance for iOS Apps | App Startup” by Uber, published Apr 20, 2023. All credit for the original work goes to the authors.