TripAdvisor Nate Mackey Oct 30, 2017

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

Critical Insight

TripAdvisor proved that measuring first, then optimizing based on real user data (not assumptions) leads to both better performance metrics and improved business outcomes.

Their approach to preventing content from shifting while users are reading it is clever and something most apps get wrong.

About This Article

Problem

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.

Solution

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.

Impact

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.