Four Lessons in Making Pinterest Faster on Android
Article Summary
Pinterest was bleeding user engagement on Android. With 75% of signups coming from outside the U.S. and 90% of global smartphones running Android, they had to fix their performance problem fast.
The Pinterest Android team tackled their speed crisis head-on, implementing systematic performance monitoring and optimization. They focused on what matters most: reducing the time users wait between tapping and seeing content.
Key Takeaways
- Created Pinner Wait Time metric tracking every key user action from tap to completion
- Caught 30+ regressions early using NimbleDroid, preventing 3+ seconds of cumulative slowdown
- Optimized Pin closeup loading by reusing feed data, achieving 60% faster load times
- Faster home feed loads drove more scrolling and Pin views across the board
By preventing regressions and optimizing data parsing, Pinterest proved that every 100ms saved directly increases user engagement.
About This Article
Pinterest's Android app was slow to start because Gson's reflective type adapters were eating up resources during cold launches. New users had to wait longer to see content.
Pinterest Engineering switched to generating Gson type adapters at compile time instead of runtime. This removed the expensive reflection calls and made JSON parsing much faster.
The change cut about 30 milliseconds off the app's cold start time. That means Pinners see content faster when they open the app for the first time.