Default to performance
summary
Shopify defaults to performance with concrete choices: use Flash List full stop and avoid ScrollView/FlatList; measure in production with a native marker view and end-to-end performance tests; use state per feature with separate repos, reference-counted shared stores and a local-store option; provide stable callbacks via a small useActions pattern and lint rules for referential stability; a tiny off-screen freeze shim slashes sub-screen load from hundreds of milliseconds to near-instant; Kotlin Multiplatform handles the POS database; several libraries and tools are planned to be open sourced.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 3:40Shopify mobile app React Native
- 6:54Migrating to React Native
- 8:23Performance mindset in production
- 13:00Sensible React Native defaults
- 15:11Custom performance tools
- 17:40State management for performance
- 21:15Shared state memory management
- 24:04Stable hooks rules
- 27:35Stable callbacks with actions
- 31:04Flash List optimization
- 34:38Off-screen freezing tricks
- 36:46useQuery batching issues
- 38:11Skia advanced UI closing
related talks
21mImproving Shopify App's Performance
19mFast by Default: Performance Starts with State
22mCrossing the chasm between quality and performance
22mYou can go EVERYWHERE but I can go FAST - performance case study
24mThe Performance Myths of React Native apps
26mImproving React Native Performance in Facebook Marketplace
30mMaking your app fast with high-performance components
01h 23mWhy Slow?
