Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
spencerpauly avatar

React Native Patterns

  • 199 installs
  • 655 repo stars
  • Updated August 2, 2026
  • spencerpauly/awesome-cursor-skills

Helps with frontend development tasks.

About

react-native-patterns is a Claude Code skill for frontend development. It helps solo builders move faster with AI-assisted coding.

  • react-native-patterns
  • Frontend Development
  • AI-coding skill

React Native Patterns by the numbers

  • 199 all-time installs (skills.sh)
  • +20 installs in the week ending Jul 27, 2026 (Skillselion tracking)
  • Ranked #857 of 2,245 Frontend Development skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill react-native-patterns

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs199
repo stars655
Last updatedAugust 2, 2026
Repositoryspencerpauly/awesome-cursor-skills

What it does

Helps with frontend development tasks.

Files

SKILL.mdMarkdownGitHub ↗

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

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.