Why WhatsApp Uses ListView
summary
WhatsApp keeps a legacy ListView with CursorAdapter on the chat screen because it supports dozens of message layouts, reads pages from the DB on demand, and can’t reliably reuse views when types change, so recycling is partial and code already caches objects. Updates often use notifyDataSetChanged to avoid animation delays, and a full migration to RecyclerView would require changing data flow, rebuilding features, running risky A/B tests for a billion daily users, and only gains diffutil updates and marginal layout features.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 1:31WhatsApp chat screen
- 3:00ListView vs RecyclerView
- 6:54WhatsApp’s CursorAdapter
- 9:09Message types and recycling
- 10:13Handling list updates
- 11:36RecyclerView benefits
- 14:50Risks of RecyclerView
- 17:20Cost analysis
- 20:35Decision to keep ListView
- 21:41RecyclerView elsewhere
- 22:45Q&A
related talks
33mListView - Recycle Your Knowledge
25mRecyclerview to the rescue
48mPro RecyclerView
34mPerformance by Construction
45mGraywater: A Framework for Fast Scroll Performance
46mRecyclerView Animations and Behind the Scenes
41mEfficient Lazy Loading for RecyclerView with Room
37mRecyclerViews – A Developer’s deep dive
