skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
spencerpauly/awesome-cursor-skills373 installs

react-native-patterns

Build mobile apps with React Native and Expo — navigation, platform-specific code, performance, and native modules.

How do I install this agent skill?

npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill react-native-patterns
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill provides a set of best practices and development patterns for React Native and Expo mobile applications. It uses standard industry tools and libraries for project setup and navigation without any detected security risks.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

  • ZeroLeakspass

    Score: 93/100 · 2 sections analyzed

What does this agent skill do?

React Native Patterns

Build production-quality mobile apps with React Native and Expo.

Project Setup

Expo (recommended for most projects):

npx create-expo-app@latest my-app
cd my-app
npx expo start

Bare React Native (when you need full native control):

npx @react-native-community/cli init MyApp

Use Expo unless you need a custom native module that Expo doesn't support.

Navigation

Use expo-router (file-based routing) or @react-navigation/native:

app/
├── _layout.tsx        # Root layout (tabs, stack, drawer)
├── index.tsx          # Home screen
├── (tabs)/
│   ├── _layout.tsx    # Tab navigator
│   ├── home.tsx
│   ├── profile.tsx
│   └── settings.tsx
└── [id].tsx           # Dynamic route

Platform-Specific Code

import { Platform } from 'react-native';

const styles = StyleSheet.create({
  shadow: Platform.select({
    ios: { shadowColor: '#000', shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.1 },
    android: { elevation: 4 },
  }),
});

For larger differences, use platform-specific files:

  • Component.ios.tsx
  • Component.android.tsx

Styling

Use StyleSheet.create for performance (styles are sent to native once):

const styles = StyleSheet.create({
  container: { flex: 1, padding: 16 },
  title: { fontSize: 24, fontWeight: '700' },
});

For a Tailwind-like experience, use nativewind:

<View className="flex-1 p-4">
  <Text className="text-2xl font-bold">Hello</Text>
</View>

Performance

FlatList over ScrollView for long lists:

<FlatList
  data={items}
  keyExtractor={(item) => item.id}
  renderItem={({ item }) => <ItemRow item={item} />}
  initialNumToRender={10}
  maxToRenderPerBatch={5}
  windowSize={5}
/>

Memoize expensive components:

const ItemRow = React.memo(({ item }: { item: Item }) => (
  <View><Text>{item.name}</Text></View>
));

Avoid:

  • Inline styles (creates new objects every render)
  • Anonymous functions in renderItem
  • Large images without caching (expo-image handles this)

Common Libraries

NeedLibrary
Navigationexpo-router or @react-navigation/native
Statezustand, jotai, or React context
Data fetching@tanstack/react-query
Imagesexpo-image
Icons@expo/vector-icons
Storageexpo-secure-store (sensitive), @react-native-async-storage/async-storage (general)
Animationsreact-native-reanimated
Gesturesreact-native-gesture-handler
Formsreact-hook-form + zod

Tips

  • Test on both iOS and Android from the start, not at the end
  • Use expo-dev-client for custom native modules with Expo
  • Handle safe areas with react-native-safe-area-context
  • Always handle keyboard avoidance for forms (KeyboardAvoidingView)
  • Use expo-updates for OTA updates in production

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/spencerpauly/awesome-cursor-skills/react-native-patterns">View react-native-patterns on skillZs</a>