Journey to a Faster Everyday Superapp Where Every Millisecond Counts
Dec 26, 2019Renu Yadav

Summary
This post details the optimization of the Grab passenger app's Time To Interactive (TTI) by focusing on app startup time and service tile rendering. Key improvements include implementing tile caching (saving ~3s), removing app start animations (saving ~1s), adopting static linking on iOS (reducing pre-main time by 41% and overall dynamic frameworks by 88%, saving ~0.8s with CocoaPods merge), and utilizing coroutines for parallel library initialization on Android (saving ~0.4s). The team also improved visualization and tracking of performance metrics using Metabase and migrated to an in-house experimentation platform, leading to significant improvements (~2.5s on Android, ~0.5-0.7s on iOS) by removing a third-party analytics library.