본문으로 건너뛰기
cccskills
무료GitHub에 공개

react-native-patterns

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md3.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use Cursor's browser aria snapshots to audit a page for accessibility issues — missing labels, broken tab order, contrast, and ARIA misuse.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

0xAidan/polymarket-bot-test42026년 9월 4일 업데이트

Add PostHog analytics to a web application, including event tracking, page views, feature flags, and session replay.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

0xAidan/polymarket-bot-test42026년 9월 4일 업데이트

Generate OpenAPI/Swagger documentation for an API, including endpoint schemas, request/response types, and interactive docs UI.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

0xAidan/polymarket-bot-test42026년 9월 4일 업데이트

Add authentication to a web application using NextAuth.js (Auth.js), including OAuth providers, session management, and protected routes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

0xAidan/polymarket-bot-test42026년 9월 4일 업데이트

Dockerize an application with a production-ready Dockerfile, docker-compose setup, and .dockerignore.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

0xAidan/polymarket-bot-test42026년 9월 4일 업데이트

Set up Playwright end-to-end testing in a project, including test configuration, example tests, and CI integration.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

0xAidan/polymarket-bot-test42026년 9월 4일 업데이트

0xAidan의 스킬 모두 보기

이 스킬의 문제 신고