Offline-First React Native: Designing for production
summary
Claims that modeling user actions as event-sourced replayable events plus optimistic response fixes crashes, reconnects, and partial multi-step flows; initial Redux+AsyncStorage approach fails due to memory bloat and poor querying. Implements local SQLite (migrated from AsyncStorage) and recommends SQLite with Drizzle ORM; loading 100,000 rows drops filter time from ~360 ms to ~7 ms. The team builds an inventory and multi-step booking flow that survives restarts, offline edits, and later syncs reliably.
AI-written summary · about
chapters (9)
- 0:00Introduction to offline apps
- 1:26Defining offline-first
- 3:22Architecture and states
- 5:51The pitfalls of naive approaches
- 7:18Limitations of local storage
- 8:39The power of SQLite
- 10:45Event sourcing for writes
- 13:14Implementing event-based data
- 17:55Optimistic UI and conclusions
related talks
28mAsynchronous & Offline Magic Tricks on React Native
28mOffline first applications in React Native done well
24mZero-Latency React Native: Apps Without Loading Spinners
22mRapid Development on Offline First Data Sync
42mReact Native case study: From zero to a super hero app
24mLocal-first app development
34mOffline-First Mobile App Design
09mDelete Your Global State: Use SQLite as the Ultimate State Manager
