Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    okwasniewski

    react-native-best-practices

    okwasniewski/react-native-best-practices
    Coding

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    React Native performance optimization guidelines from Callstack's Ultimate Guide. Use this skill when writing, reviewing, or debugging React Native code for performance issues.

    SKILL.md

    React Native Best Practices

    Overview

    Performance optimization guide for React Native applications, covering JavaScript/React, Native (iOS/Android), and bundling optimizations. Based on Callstack's "Ultimate Guide to React Native Optimization".

    When to Apply

    Reference these guidelines when:

    • Debugging slow/janky UI or animations
    • Investigating memory leaks (JS or native)
    • Optimizing app startup time (TTI)
    • Reducing bundle or app size
    • Writing native modules (Turbo Modules)
    • Profiling React Native performance
    • Reviewing React Native code for performance

    Priority-Ordered Guidelines

    Priority Category Impact Prefix
    1 FPS & Re-renders CRITICAL js-*
    2 Bundle Size CRITICAL bundle-*
    3 TTI Optimization HIGH native-*, bundle-*
    4 Native Performance HIGH native-*
    5 Memory Management MEDIUM-HIGH js-*, native-*
    6 Animations MEDIUM js-*

    Quick Reference

    Critical: FPS & Re-renders

    Profile first:

    # Open React Native DevTools
    # Press 'j' in Metro, or shake device → "Open DevTools"
    

    Common fixes:

    • Replace ScrollView with FlatList/FlashList for lists
    • Use React Compiler for automatic memoization
    • Use atomic state (Jotai/Zustand) to reduce re-renders
    • Use useDeferredValue for expensive computations

    Critical: Bundle Size

    Analyze bundle:

    npx react-native bundle \
      --entry-file index.js \
      --bundle-output output.js \
      --platform ios \
      --sourcemap-output output.js.map \
      --dev false --minify true
    
    npx source-map-explorer output.js --no-border-checks
    

    Common fixes:

    • Avoid barrel imports (import directly from source)
    • Remove unnecessary Intl polyfills (Hermes has native support)
    • Enable tree shaking (Expo SDK 52+ or Re.Pack)
    • Enable R8 for Android native code shrinking

    High: TTI Optimization

    Measure TTI:

    • Use react-native-performance for markers
    • Only measure cold starts (exclude warm/hot/prewarm)

    Common fixes:

    • Disable JS bundle compression on Android (enables Hermes mmap)
    • Use native navigation (react-native-screens)
    • Defer non-critical work with InteractionManager

    High: Native Performance

    Profile native:

    • iOS: Xcode Instruments → Time Profiler
    • Android: Android Studio → CPU Profiler

    Common fixes:

    • Use background threads for heavy native work
    • Prefer async over sync Turbo Module methods
    • Use C++ for cross-platform performance-critical code

    References

    Full documentation with code examples in references/:

    JavaScript/React (js-*)

    • js-profile-react.md - React DevTools profiling
    • js-measure-fps.md - FPS monitoring
    • js-memory-leaks.md - JS memory leak hunting
    • js-lists-flatlist-flashlist.md - List performance
    • js-atomic-state.md - Jotai/Zustand patterns
    • js-concurrent-react.md - useDeferredValue, useTransition
    • js-react-compiler.md - Automatic memoization
    • js-animations-reanimated.md - Reanimated worklets
    • js-uncontrolled-components.md - TextInput optimization

    Native (native-*)

    • native-platform-setup.md - iOS/Android tooling guide
    • native-profiling.md - Xcode/Android Studio profiling
    • native-measure-tti.md - TTI measurement setup
    • native-memory-patterns.md - C++/Swift/Kotlin memory
    • native-threading-model.md - Turbo Module threads
    • native-view-flattening.md - View hierarchy debugging
    • native-sdks-over-polyfills.md - Native vs JS libraries
    • native-turbo-modules.md - Building fast native modules
    • native-memory-leaks.md - Native memory leak hunting

    Bundling (bundle-*)

    • bundle-analyze-js.md - JS bundle visualization
    • bundle-analyze-app.md - App size analysis
    • bundle-library-size.md - Evaluate dependencies
    • bundle-barrel-exports.md - Avoid barrel imports
    • bundle-tree-shaking.md - Dead code elimination
    • bundle-code-splitting.md - Re.Pack code splitting
    • bundle-r8-android.md - Android code shrinking
    • bundle-native-assets.md - Asset catalog setup
    • bundle-hermes-mmap.md - Disable bundle compression

    Searching References

    # Find patterns by keyword
    grep -l "reanimated" references/
    grep -l "flatlist" references/
    grep -l "memory" references/
    grep -l "profil" references/
    grep -l "tti" references/
    grep -l "bundle" references/
    

    Problem → Skill Mapping

    Problem Start With
    App feels slow/janky js-measure-fps.md → js-profile-react.md
    Too many re-renders js-profile-react.md → js-react-compiler.md
    Slow startup (TTI) native-measure-tti.md → bundle-analyze-js.md
    Large app size bundle-analyze-app.md → bundle-r8-android.md
    Memory growing js-memory-leaks.md or native-memory-leaks.md
    Animation drops frames js-animations-reanimated.md
    List scroll jank js-lists-flatlist-flashlist.md
    TextInput lag js-uncontrolled-components.md
    Native module slow native-turbo-modules.md → native-threading-model.md

    Attribution

    Based on "The Ultimate Guide to React Native Optimization" by Callstack.

    Repository
    okwasniewski/dotfiles
    Files