React Native Design

作者 wshobson46891e7e60da無授權條款收錄於 2026年10月8日更新於 2026年10月8日

Master React Native styling, navigation, and Reanimated animations for cross-platform mobile development. Use when building React Native apps, implementing navigation patterns, or creating performant animations.

AI 產生的概覽

指導 React Native 樣式、React Navigation 導覽與 Reanimated 3 動畫,用於跨平台行動應用開發。

功能
提供建構 React Native 行動介面的指引與參考資料,涵蓋使用 StyleSheet 與 styled-components 的樣式、React Navigation 導覽模式,以及 Reanimated 3 動畫。內容包含快速上手元件範例、最佳實務與常見問題處理,並在參考檔案中提供樣式、導覽與 Reanimated 模式的更詳細說明。產出的是說明與程式碼範例,而非可直接執行的成品。
適用情境
適用於建構或美化 React Native 應用程式、使用 React Navigation 建立導覽,或實作手勢驅動與高效能動畫的情境。也適合處理響應式版面、iOS 與 Android 平台差異化設計,以及 React Native 效能調校。
執行需求
此技能不附帶指令碼或執行階段相依項目,僅為說明與參考文件。所述方法假定已有 React Native 專案,並可使用 React Navigation、Reanimated 3 與 Gesture Handler。

React Native Design

Master React Native styling patterns, React Navigation, and Reanimated 3 to build performant, cross-platform mobile applications with native-quality user experiences.

When to Use This Skill

  • Building cross-platform mobile apps with React Native
  • Implementing navigation with React Navigation 6+
  • Creating performant animations with Reanimated 3
  • Styling components with StyleSheet and styled-components
  • Building responsive layouts for different screen sizes
  • Implementing platform-specific designs (iOS/Android)
  • Creating gesture-driven interactions with Gesture Handler
  • Optimizing React Native performance

Detailed section: Core Concepts

Originally a 6471-byte section in this SKILL.md. Moved to references/details.md to fit Codex's 8 KB skill body cap.

Quick Start Component

typescript
import React from 'react';import {  View,  Text,  StyleSheet,  Pressable,  Image,} from 'react-native';import Animated, {  useSharedValue,  useAnimatedStyle,  withSpring,} from 'react-native-reanimated';
interface ItemCardProps {  title: string;  subtitle: string;  imageUrl: string;  onPress: () => void;}
const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
export function ItemCard({ title, subtitle, imageUrl, onPress }: ItemCardProps) {  const scale = useSharedValue(1);
  const animatedStyle = useAnimatedStyle(() => ({    transform: [{ scale: scale.value }],  }));
  return (    <AnimatedPressable      style={[styles.card, animatedStyle]}      onPress={onPress}      onPressIn={() => { scale.value = withSpring(0.97); }}      onPressOut={() => { scale.value = withSpring(1); }}    >      <Image source={{ uri: imageUrl }} style={styles.image} />      <View style={styles.content}>        <Text style={styles.title} numberOfLines={1}>          {title}        </Text>        <Text style={styles.subtitle} numberOfLines={2}>          {subtitle}        </Text>      </View>    </AnimatedPressable>  );}
const styles = StyleSheet.create({  card: {    backgroundColor: '#ffffff',    borderRadius: 16,    overflow: 'hidden',    shadowColor: '#000',    shadowOffset: { width: 0, height: 2 },    shadowOpacity: 0.1,    shadowRadius: 8,    elevation: 4,  },  image: {    width: '100%',    height: 160,    backgroundColor: '#f3f4f6',  },  content: {    padding: 16,    gap: 4,  },  title: {    fontSize: 18,    fontWeight: '600',    color: '#1f2937',  },  subtitle: {    fontSize: 14,    color: '#6b7280',    lineHeight: 20,  },});

Best Practices

  1. Use TypeScript: Define navigation and prop types for type safety
  2. Memoize Components: Use React.memo and useCallback to prevent unnecessary rerenders
  3. Run Animations on UI Thread: Use Reanimated worklets for 60fps animations
  4. Avoid Inline Styles: Use StyleSheet.create for performance
  5. Handle Safe Areas: Use SafeAreaView or useSafeAreaInsets
  6. Test on Real Devices: Simulator/emulator performance differs from real devices
  7. Use FlatList for Lists: Never use ScrollView with map for long lists
  8. Platform-Specific Code: Use Platform.select for iOS/Android differences

Common Issues

  • Gesture Conflicts: Wrap gestures with GestureDetector and use simultaneousHandlers
  • Navigation Type Errors: Define ParamList types for all navigators
  • Animation Jank: Move animations to UI thread with runOnUI worklets
  • Memory Leaks: Cancel animations and cleanup in useEffect
  • Font Loading: Use expo-font or react-native-asset for custom fonts
  • Safe Area Issues: Test on notched devices (iPhone, Android with cutouts)

來源與署名

來源:wshobson/agents位於plugins/ui-design/skills/react-native-design提交46891e7

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架