Skyscanner Csaba Toth Jul 17, 2018

3 Techniques We Used to Improve Skyscanner for iOS Performance

Article Summary

Skyscanner's iOS team discovered their app was lagging on nearly half their user base. The culprit? Testing only on high-end devices.

The Skyscanner engineering team shares how they systematically improved iOS app performance using measurement-driven optimization. Their approach focused on identifying bottlenecks that affected users on older devices like the iPhone 5, which represented 10% of their user base.

Key Takeaways

Critical Insight

Through targeted caching and measurement-first optimization, Skyscanner increased the percentage of users experiencing smooth 30+ FPS navigation from 61% to 97.47%.

The team's custom FPS monitoring tool revealed performance patterns that standard profiling missed, fundamentally changing how they approach optimization.

About This Article

Problem

Skyscanner's flights result page was recalculating accessibility labels for all 1000+ results even when users hadn't enabled the accessibility feature, wasting CPU resources on the main thread.

Solution

The team added a check to skip accessibility label generation for users who hadn't turned on the feature, which stopped the unnecessary string calculations.

Impact

CPU time spent on localized resources dropped from 13.5% to 4.6%, resulting in an 8.9% performance improvement overall.