Performance problems are memory problems in disguise. Learn the few habits that prevent most of them.
Core concepts
- Virtualise lists: Render only visible rows with FlatList or FlashList and avoid ScrollView for long collections. — FlashList
- Images: Use
expo-imagewith caching and request appropriately sized images. Full-resolution photos in thumbnails waste memory. — Expo Image - Clean up effects: Remove listeners, timers and subscriptions in the effect cleanup function to prevent leaks and duplicate callbacks. — React docs
- Avoid wasted renders: Memoise expensive components, select store slices, and keep props stable. Use the profiler before optimising. — React Native performance
- Profile on real devices: Test on a mid-range Android phone, watch the JS and UI frame rates, and use platform profilers to find memory growth. — React Native debugging
Concept videos
YouTube channels and searches for these topics. On a large screen they open in the reading panel next to the roadmap.
- React Native performance — YouTube search: React Native performance optimization 2026
Explanation
Measure first
Guessing at optimisations makes code harder to read for no gain. Profile, find the biggest cost, fix that.
Low-end device rule
If it is smooth on a cheap Android phone it will be smooth everywhere.
What Is It?
Performance work means keeping the app's CPU and memory use low enough to stay responsive.
Why Should I Care?
Slow or crashing apps get one-star reviews and uninstalls.
Real World Analogy
It is packing a backpack for a hike: only carry what you need now, and put the rest in the car.
Visual Mental Model
measure -> find hot spot -> fix one thing -> measure againSmallest Possible Example
useEffect(() => {
const sub = AppState.addEventListener('change', onChange);
return () => sub.remove();
}, []);Common Mistakes
❌ Optimising before measuring.
You may speed up code that never mattered.
❌ Forgetting effect cleanup.
Listeners pile up every time the screen mounts.
Build This Mini Project
Seed 5,000 rows, profile scroll on a mid-range Android phone, and fix the top two bottlenecks.
Prompts for Cursor, Claude Code & Codex
Paste these into Cursor, Claude Code, Codex, or any coding agent. Replace the bracketed parts with your app details, and keep the agent in plan mode first so you review the approach before it edits files.
Performance review
Review [screen] for performance: list virtualisation, image sizes, effect cleanup, unnecessary re-renders. Rank findings by likely impact, and fix only the top two with minimal changes.Rules, databases & blogs to use
- Mobile rules: performance rules
- Why websites are slow: bundle size lessons that also apply to apps


