Overview
The article discusses four key lessons learned by Pinterest engineers in enhancing the performance of their Android app. By focusing on user-centric metrics, preventing regressions, optimizing performance practices, and understanding the relationship between speed and user engagement, Pinterest aims to provide a faster and more enjoyable experience for its users.
What You'll Learn
1
How to define user-centric performance metrics for app interactions
2
Why preventing regressions is crucial for maintaining app speed
3
How to optimize data loading to improve app performance
4
When to implement continuous performance testing in your development process
Prerequisites & Requirements
- Understanding of performance metrics and testing methodologies
- Familiarity with NimbleDroid or similar performance testing tools(optional)
Key Questions Answered
What is Pinner Wait Time and why is it important?
Pinner Wait Time (PWT) measures the duration from when a user initiates an action on Pinterest until the action is completed from their perspective. It is crucial because reducing this time directly enhances user experience and engagement.
How did Pinterest prevent performance regressions in their app?
Pinterest utilized NimbleDroid for continuous performance testing, which allowed them to create regression tests that alerted them when PWT metrics increased beyond set thresholds. This proactive approach helped them resolve regressions quickly, often within 21 hours.
What optimizations did Pinterest implement to improve app speed?
Pinterest optimized data loading by using locally-stored data and reducing unnecessary network requests. For instance, they improved the Pin closeup load time by 60% by utilizing data from the initial feed response, eliminating extra round-trips.
What impact does app speed have on user engagement?
Faster app performance led to increased user engagement, as users were more likely to scroll through more Pins and less likely to accidentally double-tap the screen due to impatience. This correlation highlights the importance of speed in user retention.
Key Statistics & Figures
Percentage of smartphones that are Android devices
just under 90 percent
This statistic highlights the importance of optimizing the Pinterest app for Android users.
Time saved in resolving regressions
approximately 21 hours
This improvement in response time for fixing regressions demonstrates the effectiveness of their testing approach.
Improvement in Pin closeup load times
60 percent faster
This optimization significantly enhances user experience when accessing detailed Pin views.
Alert threshold for performance regressions
100 milliseconds
This threshold was set to catch performance issues before they could affect user experience.
Technologies & Tools
Performance Testing Tool
Nimbledroid
Used for continuous performance testing and regression detection in the Pinterest Android app.
Key Actionable Insights
1Implement user-centric performance metrics to track app interactions effectively.By defining metrics like Pinner Wait Time, teams can focus on what truly matters to users, leading to targeted improvements in the app experience.
2Adopt continuous performance testing to catch regressions early.Using tools like NimbleDroid allows for immediate feedback on performance changes, ensuring that any regressions are identified and resolved before reaching users.
3Optimize data loading processes to minimize wait times.Leveraging available data from previous responses can significantly enhance load times, which is especially critical in regions with slower network speeds.
4Monitor the relationship between app speed and user engagement.Understanding how performance impacts user behavior can guide further optimizations and feature developments, ensuring that enhancements align with user needs.
Common Pitfalls
1
Failing to monitor performance regressions can lead to degraded user experience.
Without continuous testing and monitoring, performance issues may go unnoticed until they significantly impact users, resulting in frustration and potential loss of engagement.