react-native-expert

v2026.09.24

Expert in React Native, cross-platform mobile development, native modules, and performance optimization. Use when the user mentions mobile, JavaScript, TypeScript, cross platform, iOS, or Android, or when the task involves React Native Architecture, Component Types, Hooks Essentials, or Navigation.

GitHub
Install command
npx skhub add personamanagmentlayer/react-native-expert
Markdown
SKILL.md

React Native Expert

You are an expert in React Native, cross-platform mobile development, and native module integration.

Core Concepts

React Native Architecture

  • JavaScript Thread: Runs React code and business logic
  • Native Thread: Handles UI rendering and native modules
  • Bridge: Asynchronous message passing between JS and native
  • New Architecture (Fabric + TurboModules): Synchronous, type-safe, C++ based
  • Metro Bundler: JavaScript bundler for React Native
  • Hermes: Optimized JavaScript engine for Android/iOS

Component Types

  • Function Components: Modern approach with Hooks
  • Class Components: Legacy, still supported
  • Native Components: Platform-specific (View, Text, Image, etc.)
  • Composite Components: Built from other components
  • Higher-Order Components (HOC): Component wrapping pattern
  • Render Props: Share code using props with function values

Hooks Essentials

  • useState: Local component state
  • useEffect: Side effects and lifecycle
  • useContext: Access context values
  • useReducer: Complex state logic
  • useCallback: Memoize callbacks
  • useMemo: Memoize expensive calculations
  • useRef: Mutable refs, access native components
  • useLayoutEffect: Synchronous effects before paint

Navigation (React Navigation)

  • Stack Navigator: Screen stack with back button
  • Tab Navigator: Bottom or top tabs
  • Drawer Navigator: Side menu
  • Native Stack: iOS/Android native navigation
  • Deep Linking: Handle external URLs
  • Navigation Lifecycle: focus, blur, beforeRemove events

Styling Approaches

  • StyleSheet API: Performance optimized
  • Inline Styles: Object literals
  • Flexbox: Default layout system
  • Dimensions API: Screen size information
  • Platform-specific styles: .ios.js, .android.js, Platform.select()
  • Styled Components: CSS-in-JS library
  • Tailwind (NativeWind): Utility-first CSS

Best Practices

Performance

  • Use FlatList/SectionList for long lists, not ScrollView
  • Implement getItemLayout for known item heights
  • Use React.memo for pure components
  • Avoid inline function definitions in render
  • Use useMemo and useCallback appropriately
  • Enable Hermes engine for faster startup
  • Profile with React DevTools and Flipper
  • Optimize images (resize, compress, use WebP)
  • Use InteractionManager for post-interaction tasks

Code Organization

  • Feature-based folder structure
  • Separate business logic from UI components
  • Use TypeScript for type safety
  • Create custom hooks for reusable logic
  • Use absolute imports with module resolver
  • Keep components small and focused
  • Extract platform-specific code to separate files

Expo vs Bare Workflow

  • Expo Managed: Fast development, limited native access
  • Expo Bare: Full native access, managed dependencies
  • Bare React Native: Complete control, manual configuration
  • Use Expo for most projects, eject only when necessary
  • Consider EAS Build and EAS Update for Expo apps

Security

  • Store sensitive data in Keychain/Keystore (react-native-keychain)
  • Use SSL pinning for API requests
  • Implement code obfuscation for production
  • Validate all user input
  • Use secure random number generation
  • Handle deep links carefully (validate URLs)

Anti-Patterns

Avoid These Mistakes

  • Not using keys in lists: Causes performance issues
  • Mutating state directly: Use setState/useState
  • Memory leaks: Clean up subscriptions in useEffect
  • Overusing useEffect: Consider if you need it
  • Not handling safe area: Use SafeAreaView
  • Blocking main thread: Move heavy work to background
  • Not testing on real devices: Simulators don't catch all issues
  • Ignoring platform differences: Test on both iOS and Android
  • Large bundle sizes: Code split, lazy load

Bad Code Example

// DON'T: Inline styles and functions
<FlatList
  data={items}
  renderItem={({item}) => (
    <TouchableOpacity
      style={{padding: 10, backgroundColor: '#fff'}}
      onPress={() => {
        console.log(item.id);
        navigation.navigate('Details');
      }}>
      <Text>{item.name}</Text>
    </TouchableOpacity>
  )}
/>

// DO: Extract styles and callbacks
const styles = StyleSheet.create({
  item: {padding: 10, backgroundColor: '#fff'},
});

const handlePress = useCallback((item) => {
  console.log(item.id);
  navigation.navigate('Details');
}, [navigation]);

<FlatList
  data={items}
  renderItem={({item}) => (
    <ListItem item={item} onPress={handlePress} />
  )}
/>

Reference Documentation

Detailed material lives alongside this skill and is read on demand:

  • Code Examples — Basic App Structure, Component with Hooks, React Navigation Setup, Context API for State Management, Native Module (Objective-C/Java), Performance Optimization

Resources

Documentation

Navigation & State

Tools & Debugging

Testing

Deployment

Popular Libraries

Community

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Apache-2.0

Source path

stdlib/frameworks/react-native-expert

Default branch

main

Latest commit

79ccaa9

Tree SHA

d3a3f94