react-native-expert
React Native core patterns, navigation, state management, and performance optimization.
When & Why to Use This Skill
This Claude skill provides a comprehensive framework for React Native development, focusing on scalable project architecture, efficient state management, and high-performance mobile patterns. It streamlines the creation of cross-platform applications by offering expert-level guidance on navigation, memoization, and platform-specific optimizations to ensure production-ready code quality.
Use Cases
- Architecting a scalable React Native project structure for enterprise-level mobile applications using industry-standard folder conventions.
- Implementing efficient global state management using Zustand to reduce boilerplate and improve application responsiveness.
- Optimizing mobile app performance through advanced FlatList configurations and strategic component memoization to eliminate lag.
- Designing robust, type-safe navigation systems using React Navigation for complex multi-screen user flows.
- Developing platform-aware UI components that leverage the Platform API to provide native looks and feels for both iOS and Android.
| name | react-native-expert |
|---|---|
| description | React Native core patterns, navigation, state management, and performance optimization. |
React Native Expert
Project Structure
src/
├── components/ # Reusable UI components
├── screens/ # Screen components
├── navigation/ # Navigation config
├── hooks/ # Custom hooks
├── services/ # API, storage
├── store/ # State management
├── utils/ # Helpers
└── types/ # TypeScript types
Navigation
// navigation/RootNavigator.tsx
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
const Stack = createNativeStackNavigator<RootStackParamList>();
export function RootNavigator() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Details" component={DetailsScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
State Management
// Zustand (recommended)
import { create } from 'zustand';
interface AuthStore {
user: User | null;
login: (user: User) => void;
logout: () => void;
}
export const useAuthStore = create<AuthStore>((set) => ({
user: null,
login: (user) => set({ user }),
logout: () => set({ user: null }),
}));
Performance
Memoization
// Memoize expensive components
const MemoizedList = memo(({ items }) => (
<FlatList
data={items}
renderItem={renderItem}
keyExtractor={(item) => item.id}
/>
));
// Memoize callbacks
const handlePress = useCallback(() => {
// ...
}, [dependency]);
FlatList Optimization
<FlatList
data={items}
renderItem={renderItem}
keyExtractor={(item) => item.id}
getItemLayout={(data, index) => ({
length: ITEM_HEIGHT,
offset: ITEM_HEIGHT * index,
index,
})}
windowSize={5}
maxToRenderPerBatch={10}
removeClippedSubviews={true}
/>
Platform-Specific Code
import { Platform } from 'react-native';
const styles = StyleSheet.create({
container: {
paddingTop: Platform.OS === 'ios' ? 20 : 0,
...Platform.select({
ios: { shadowColor: '#000' },
android: { elevation: 4 },
}),
},
});