Journey to a Faster Everyday Super App
Article Summary
Grab cut app startup time by 60% while shipping dozens of new features. Here's how they did it without compromising velocity.
Renu Yadav from Grab's engineering team breaks down their systematic approach to performance optimization in 2019. They measured real-world performance across 8-9 million daily users, focusing on Time to Interactive as their north star metric.
Key Takeaways
- Reduced iOS dynamic frameworks from 107 to 12, cutting pre-main time by 41%
- Tile caching and animation removal delivered 4 seconds of improvement combined
- Replaced third-party analytics library, saving 2.5 seconds on Android startup
- Built Metabase dashboards to track p50, p90, p95 metrics daily
- Added CI linters to prevent performance regressions from new features
The optimizations saved users 21,388 hours daily on iOS and 38,194 hours on Android through systematic measurement and architectural improvements.
About This Article
Android's app startup was slow because multiple libraries initialized one after another and blocked the main thread. A deprecated third-party analytics library was particularly problematic, performing too many user attribute operations.
Renu Yadav's team refactored the Android initialization process using coroutines to run library startup in parallel. They also replaced the analytics library with Grab's in-house experimentation platform.
Android startup time improved by 0.4 seconds from the coroutines work and another 2.5 seconds from switching analytics libraries. iOS saw gains of 0.5 to 0.7 seconds from the same library replacement.