mcpField
R
react-native-guidelines

react-native-guidelines

github.com/itallstartedwithaideaDevelopment4482 installsUpdated 28w ago
Repository

About react-native-guidelines

A skill for applying React Native development guidelines in code generation and review. It organizes 16 rules across seven areas, including performance, animation, architecture, and platform-specific behavior.

Key features

  1. 0116 rules across seven sections
  2. 02JS thread and FlatList performance guidance
  3. 03Native-driver animation guidance
  4. 04iOS and Android behavior guidance

Use cases

  1. 01Building React Native screens and components
  2. 02Investigating performance on iOS or Android
  3. 03Reviewing cross-platform React Native code
  4. 04Optimizing large lists and gesture interactions

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/itallstartedwithaidea/agent-skills --skill react-native-guidelines

After installing, type/react-native-guidelinesin Claude Code to confirm it loaded.

Details

From the project README

React Native Guidelines

Part of Agent Skills™ by googleadsagent.ai™

Description

React Native Guidelines codifies 16 rules across 7 sections—Performance, Layout, Animation, Images, State, Architecture, and Platform—that prevent the most common pitfalls in cross-platform mobile development. Each rule addresses a specific failure mode unique to React Native's bridge architecture and native rendering pipeline.

React Native's performance characteristics differ fundamentally from web React. The JavaScript thread, the UI thread, and the native modules thread communicate asynchronously, and bottlenecks in any thread degrade the user experience. These guidelines focus on keeping the JS thread unblocked, using the native driver for animations, optimizing FlatList rendering, and minimizing bridge crossings.

The rules are calibrated for production applications running on both iOS and Android. Platform-specific behaviors, gesture handling differences, and navigation patterns are addressed explicitly rather than treated as edge cases.

Use When

  • Building new React Native screens or components
  • Debugging performance issues on iOS or Android
  • Reviewing React Native code for cross-platform correctness
  • Implementing animations or gesture interactions
  • Optimizing list rendering for large datasets
  • Handling platform-specific behavior differences

How It Works

graph TD
    A[React Native Code] --> B{Section Analysis}
    B --> C[Performance: JS Thread Budget]
    B --> D[Layout: Flexbox + Safe Areas]
    B --> E[Animation: Native Driver]
    B --> F[Images: Caching + Sizing]
    B --> G[State: Minimal Re-renders]
    B --> H[Architecture: Navigation + Deep Links]
    B --> I[Platform: iOS/Android Specifics]
    C --> J[Optimized Output]
    D --> J
    E --> J
    F --> J
    G --> J
    H --> J
    I --> J

Each section contains 2-3 focused rules targeting the highest-impact issues in that category. Rules are applied during code generation and flagged during review.

Implementation

Performance: Optimize FlatList
// BAD: Re-creates renderItem on every render
<FlatList
  data={items}
  renderItem={({ item }) => <Card item={item} />}
/>

// GOOD: Stable renderItem + keyExtractor + windowing config
const renderItem = useCallback(
  ({ item }: { item: Item }) => <Card item={item} />,
  []
);

<FlatList
  data={items}
  renderItem={renderItem}
  keyExtractor={item => item.id}
  getItemLayout={(_, index) => ({
    length: CARD_HEIGHT,
    offset: CARD_HEIGHT * index,
    index,
  })}
  maxToRenderPerBatch={10}
  windowSize={5}
  removeClippedSubviews
/>
Animation: Use Native Driver
// BAD: JS-driven animation blocks the thread
Animated.timing(opacity, {
  toValue: 1,
  duration: 300,
  useNativeDriver: false,
}).start();

// GOOD: Native driver runs on UI thread
Animated.timing(opacity, {
  toValue: 1,
  duration: 300,
  useNativeDriver: true,
}).start();

// BEST: Reanimated for gesture-driven animations
const animatedStyle = useAnimatedStyle(() => ({
  transform: [{ translateX: withSpring(offset.value) }],
}));
Platform: Safe Area Handling
import { useSafeAreaInsets } from "react-native-safe-area-context";

function Screen({ children }: PropsWithChildren) {
  const insets = useSafeAreaInsets();
  return (
    <View style={{ paddingTop: insets.top, paddingBottom: insets.bottom }}>
      {children}
    </View>
  );
}

Best Practices

  • Profile with Flipper or React DevTools before optimizing—measure, do not guess
  • Keep the JS thread under 16ms per frame for 60fps rendering
  • Use useNativeDriver: true for all opacity and transform animations
  • Avoid inline styles in list items—use StyleSheet.create for static styles
  • Handle both iOS and Android safe areas, notches, and gesture navigation
  • Test on real devices, not just simulators—performance differs significantly

Platform Compatibility

PlatformSupportNotes
CursorFullReact Native project support
VS CodeFullReact Native Tools extension
WindsurfFullMobile development support
Claude CodeFullCode generation + review
ClineFullReact Native aware
aiderPartialLimited mobile context

Related Skills

Keywords

react-native mobile performance flatlist native-driver animation safe-area cross-platform ios android


© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License

Comments

Markdown supported