Strava David Rozsnyai Sep 13, 2022

Android Launch Performance

Article Summary

Strava's Android team cut app launch time in half by treating performance optimization like athletic training: consistent measurement, strategic improvements, and relentless focus on efficiency.

David Rozsnyai from Strava Engineering shares how the team systematically improved cold start performance. They tracked three key metrics: app initialization, Feed screen appearance, and content display time. The work revealed surprising insights about what actually slows down mobile apps.

Key Takeaways

Critical Insight

Performance optimization requires continuous measurement and willingness to challenge assumptions, even removing features that seem core to the experience.

The team discovered that moving certain operations to background threads actually made performance worse, revealing a counterintuitive lesson about mobile optimization.

About This Article

Problem

Strava's Android team found that performance wasn't distributed evenly across devices. The bottom 50% of users hit serious thread scheduling delays, with the 75th percentile reaching 221ms when subscribing to shared RxJava observables for feed content.

Solution

David Rozsnyai's team swapped out the shared observable for basic event listeners. This gave them direct control over thread scheduling and removed the unpredictable delays that came from RxJava's thread management.

Impact

Lower-end devices no longer had the performance gap. Feed content now rendered consistently without the multi-hundred millisecond delays that had affected half the user base.