Measuring Mobile Apps Performance in Production
Article Summary
Booking.com discovered that standard performance monitoring tools from Apple, Google, and Firebase couldn't meet their needs. So they built their own—and just open-sourced it.
The Booking.com mobile team spent years refining how they measure app performance in production. After finding that third-party tools couldn't integrate with their experimentation platform or provide flexible alerting, they created PerformanceSuite from scratch in Swift and Kotlin.
Key Takeaways
- They track 3 core metrics: startup time, Time to Interactive (TTI), and frame rendering performance
- Freeze Time metric sums all UI freezes over 16ms per session (better than Firebase's approach)
- PerformanceSuite libraries now power Booking, Pulse, and Agoda apps on iOS and Android
- Cold app startup and screen TTI directly impact conversion rates in their data
- Custom metrics let them end startup measurement earlier than Apple's default system
Booking.com open-sourced their production performance monitoring libraries after proving they catch degradations that standard tools miss.
About This Article
Booking.com's performance monitoring from 2021 wasn't cutting it. The system couldn't handle experimentation integration, flexible alerting, or custom metrics across iOS and Android.
The team rebuilt their performance libraries from scratch using Swift and Kotlin. Each library was designed as an independent module with dependencies injected for experimentation, storage, and networking.
The new PerformanceSuite libraries caught rendering performance issues that Firebase missed. Firebase reported a view rendering time jump from 15ms to 300ms the same way it reported a 15ms to 20ms increase, making it hard to spot real problems. The new system didn't have that blind spot.