Marketplace
react-native-app
React Native cross-platform mobile apps with navigation, state management, native features. Use for iOS/Android development, mobile prototyping, code sharing, or encountering bridge errors, platform-specific bugs, performance bottlenecks.
$ Installer
git clone https://github.com/secondsky/claude-skills /tmp/claude-skills && cp -r /tmp/claude-skills/plugins/react-native-app/skills/react-native-app ~/.claude/skills/claude-skills// tip: Run this command in your terminal to install the skill
SKILL.md
name: react-native-app description: React Native cross-platform mobile apps with navigation, state management, native features. Use for iOS/Android development, mobile prototyping, code sharing, or encountering bridge errors, platform-specific bugs, performance bottlenecks.
React Native App Development
Build cross-platform mobile applications with modern React Native patterns.
Project Structure
src/
âââ components/ # Reusable UI components
âââ screens/ # Screen components
âââ navigation/ # React Navigation setup
âââ services/ # API and business logic
âââ store/ # State management
âââ hooks/ # Custom hooks
âââ utils/ # Helpers
Navigation Setup
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
const Stack = createNativeStackNavigator();
const Tab = createBottomTabNavigator();
function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Main" component={MainTabs} />
<Stack.Screen name="Details" component={DetailsScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
function MainTabs() {
return (
<Tab.Navigator>
<Tab.Screen name="Home" component={HomeScreen} />
<Tab.Screen name="Profile" component={ProfileScreen} />
</Tab.Navigator>
);
}
State Management (Redux Toolkit)
import { createSlice } from '@reduxjs/toolkit';
const userSlice = createSlice({
name: 'user',
initialState: { data: null, loading: false, error: null },
reducers: {
setUser: (state, action) => { state.data = action.payload; },
setLoading: (state, action) => { state.loading = action.payload; },
setError: (state, action) => { state.error = action.payload; }
}
});
API Client
import axios from 'axios';
import AsyncStorage from '@react-native-async-storage/async-storage';
const api = axios.create({ baseURL: 'https://api.example.com' });
api.interceptors.request.use(async config => {
const token = await AsyncStorage.getItem('token');
if (token) config.headers.Authorization = `Bearer ${token}`;
return config;
});
Best Practices
- Use functional components with hooks
- Implement proper error boundaries
- Optimize FlatList with keyExtractor, getItemLayout
- Handle platform-specific code with Platform.select()
- Use TypeScript for type safety
- Test on both iOS and Android
Avoid
- Inline styles (use StyleSheet)
- Index as list keys
- Storing sensitive data in AsyncStorage
- Ignoring platform differences
Repository

secondsky
Author
secondsky/claude-skills/plugins/react-native-app/skills/react-native-app
9
Stars
0
Forks
Updated5d ago
Added1w ago