Store Grand Re-opening: Loading Android Data with Coroutines
Article Summary
Dropbox just took over Store, the popular Android data loading library, and rewrote it from scratch in Kotlin. The reason? RxJava was making it too easy for developers to leak memory.
Originally created at the New York Times, Store (3,500+ GitHub stars) helps Android apps manage data fetching, caching, and sharing. Dropbox rebuilt it as Store 4 using Kotlin Coroutines and Flow to align with modern Android architecture and solve critical memory management issues.
Key Takeaways
- Switched from RxJava to Kotlin Flow for structured concurrency and automatic leak prevention
- Fills the Repository gap in Android Jetpack's architecture with reusable abstractions
- Prevents duplicate network requests through inflight debouncing (major data usage reduction at NYT)
- Supports disk as source of truth with Room, SQLDelight, or Realm for offline-first apps
- Returns sealed class responses (Loading/Data/Error) so UI streams never break on errors
Critical Insight
Store 4 provides production-ready repository pattern implementation with memory caching, disk persistence, request deduplication, and guaranteed leak prevention through Kotlin's structured concurrency.