Skip to content
RN/APPS

posts/rn-performance-checklist.md · 2026-09-20

The React Native Performance Checklist We Run Before Launch

Not financial advice. Verify claims independently.

Engineering notes from the RN/APPS desk. Verify claims independently — not a verified account of any production system.

Before every Stock Picks (and client) launch we run the same checklist. It catches the issues that only appear on a warm mid-tier Android after thirty minutes of scrolling.

Lists

  • Prefer FlashList (or LegendList) for any feed over ~50 rows
  • Set estimatedItemSize from a real device measurement, not a guess
  • Avoid anonymous renderItem closures that close over changing props every tick
  • Memoize row components; compare on symbol + last only

Reanimated & UI thread

  • Move opacity / transform work into worklets — never setState for frame animations
  • Use runOnUI for gesture-driven charts
  • Profile with Reanimated's logger in staging builds only

Memory

  • Detach listeners in useEffect cleanup (WebSocket ticks are the usual leak)
  • Cap image caches; recycle Skia surfaces when leaving a route
  • Watch Hermes heap on a 30-minute soak test — leaks show as steady climb, not spikes

Startup

  • Defer non-critical native modules until after first paint
  • Keep the splash until fonts + critical query settle — not until every store hydrates
  • Measure TTI on a throttled Android emulator and a physical SE-class iPhone

Networking

  • Batch quote updates (100–250ms) instead of per-tick re-renders
  • Prefer WebSocket fan-in with a single store write
  • Gate analytics until interaction — PostHog/Sentry should not block first frame

Ship gate

We do not cut a store build until:

  1. FlashList scroll stays ≥ 55 fps on the watchlist
  2. Cold start to interactive < 2.5s on mid-tier Android
  3. 30-minute soak with no Hermes heap climb
  4. OTA fingerprint matches the binary under test

Want to feel the result? Practice on Stock Picks — the same checklist shipped that UI.

cta/stockspicks.sh

Put it into practice

Rehearse on Stock Picks — the Expo fintech app from the team behind RN/APPS.

$ open stockspicks →