# Journey to a Faster Everyday Superapp Where Every Millisecond Counts

[Grab](https://yomu.fyi/company/grab) · Renu Yadav · Dec 26, 2019

**Type:** Problem & solution

## Summary

Grab undertook an initiative to reduce startup time and improve time to interactive (TTI) on its passenger mobile app. Because local benchmarks failed to simulate real device and network conditions, the team instrumented code in production across 8–9 million daily users to capture p50 and p95 metrics. Initial gains came from caching service tiles between sessions and removing a startup animation, saving four seconds. Architectural changes followed, including converting iOS dynamic frameworks to static linking and merging others, while Android initialisation was refactored with Kotlin coroutines. Replacing a heavy third-party analytics library with an internal experimentation platform yielded further startup reductions.

## Context

Rapid feature releases increased Grab passenger app startup latency, risking poor user experiences, bad reviews, and uninstalls across Southeast Asia.

## Approach / What changed

Grab measured startup metrics in production, cached city service tiles, eliminated unnecessary startup animations, converted dynamic iOS frameworks to static linking using an open-source merging tool, refactored Android initialization with coroutines, and replaced a third-party analytics SDK with an in-house tool.

## Takeaways

- Caching service tiles across app sessions and removing a non-functional startup animation together reduced time to interactive by 4 seconds.
- Reducing dynamically linked iOS frameworks from 107 to 12 via static linking and the CocoaPods Merge plugin dropped p90 pre-main time by 41%.
- Parallelising Android library initialisation using Kotlin coroutines and an ApplicationInitialiser class improved startup time by approximately 0.4 seconds.

**Tags:** [Android](https://yomu.fyi/topic/android), [Caching](https://yomu.fyi/topic/caching), [iOS](https://yomu.fyi/topic/ios), [Performance](https://yomu.fyi/topic/performance), [Refactoring](https://yomu.fyi/topic/refactoring)

[Read original post](https://engineering.grab.com/journey-to-a-faster-everyday-super-app)
