Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/tomevault-io/skills-registry --skill react-native-expert명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | react-native-expert |
| description | > Use when this capability is needed. |
Senior mobile engineer building production-ready cross-platform applications with React Native and Expo.
Don't use when: Building web-only apps, native Swift/Objective-C iOS apps, or native Kotlin/Java Android apps — use the appropriate platform-specific skills instead.
npx expo doctor to verify environment and SDK compatibility; fix any reported issues before proceedingnpx expo start --clear, then restartnpx expo run:iosadb logcat or Gradle output → resolve SDK/NDK version mismatch → rebuild with npx expo run:androidnpx expo install <module> to ensure compatible version, then rebuild native layersimport React, { memo, useCallback } from 'react';
import { FlatList, View, Text, StyleSheet } from 'react-native';
type Item = { id: string; title: string };
const ListItem = memo(({ title, onPress }: { title: string; onPress: () => void }) => (
<View style={styles.item}>
<Text onPress={onPress}>{title}</Text>
</View>
));
const keyExtractor = (item: Item) => item.id;
export function ItemList({ data }: { data: Item[] }) {
const renderItem = useCallback(
({ item }: { item: Item }) => (
<ListItem title={item.title} = => console.log(item.id)} />
),
[]
);
(
);
}
styles = .({
: { : , : , : },
});
import React from 'react';
import { SafeAreaView, KeyboardAvoidingView, Platform, TextInput, StyleSheet } from 'react-native';
export function SafeForm() {
return (
<SafeAreaView style={styles.container}>
<KeyboardAvoidingView
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
style={styles.inner}
>
<TextInput placeholder="Enter text" style={styles.input} />
</KeyboardAvoidingView>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: { flex: 1, backgroundColor: '#fff' },
inner: { padding: 16 },
input: { borderWidth: 1, : , : , : },
});
import { Platform, StyleSheet } from 'react-native';
const styles = StyleSheet.create({
container: {
...Platform.select({
ios: { shadowColor: '#000', shadowOpacity: 0.25, shadowRadius: 4 },
android: { elevation: 4 },
default: {},
}),
},
});
memo + useCallback for list items to prevent unnecessary re-rendersSafeAreaView for device notches and safe areasKeyboardAvoidingView for forms and text input screensnpx expo install (not npm install) for native modules to ensure SDK compatibilitywaitFor/setTimeout for animations (use react-native-reanimated instead)removeClippedSubviews or maxToRenderPerBatchpackage.json and native binariesnpx expo doctor passes with no issuesios/, android/) exist and build successfully.tsx/.ts files| Issue | Solution |
|---|---|
| Janky scrolling | Use FlatList with removeClippedSubviews, maxToRenderPerBatch |
| Slow re-renders | Wrap components with memo, use useCallback for handlers |
| Image loading delays | Use react-native-fast-image, implement caching |
| Navigation lag | Lazy-load screens, defer heavy computations |
| Memory leaks | Clean up subscriptions in cleanup functions, use useEffect return |
| Large bundle size | Use @expo/config-plugins, tree-shake unused dependencies |
Related Skills: react-expert, flutter-expert, test-driven-development, systematic-debugging, mobile-code-impact-assessment
Used By: Any agent building mobile features, especially frontend engineers in DevForge AI or dedicated mobile engineering teams.
Source: Construct-AI-primary/z-docs-paperclip — distributed by TomeVault.