High-Performance App Development: Common Bottlenecks and How TripAdvisor Measured Its Way to a Faster App
Article Summary
TripAdvisor ships a 100MB app every two weeks to millions of users. One regression could tank performance for their entire user base.
Nate Mackey and Jay Harris from TripAdvisor share how they rebuilt their home screen with performance as a first-class requirement. They measured their way through network bottlenecks, image loading issues, and scroll jank to create a data-driven performance optimization playbook.
Key Takeaways
- 90th percentile network requests took 1.5 seconds globally, even with fast servers
- Images were 93% of payload. Adaptive quality based on bandwidth increased engagement.
- Built priority queue for image loading so new screens don't compete with old ones
- Used Instagram's IGListKit and reference-counted network loaders to coordinate requests
- Measured pre-main startup time and flagged CI builds that increased app size
TripAdvisor proved that measuring first, then optimizing based on real user data (not assumptions) leads to both better performance metrics and improved business outcomes.
About This Article
TripAdvisor's redesigned home screen had network requests firing unpredictably, repeated data reloads that made the screen flicker, and bloated view controllers with hundreds of thousands of lines of code spread across six teams.
TripAdvisor switched to Instagram's IGListKit and Airbnb's Epoxy frameworks, using a decorator pattern for section controllers. This let each section manage its own network requests independently and made the code easier to test. The view controllers and network logic were no longer tightly coupled.
The team cut above-the-fold content down to a single JSON call while keeping sections dynamic and customizable. Scroll jank disappeared after they simplified view hierarchies and removed excessive auto layout constraints that were pushing past the 16-millisecond frame budget.