react-native-app
This skill helps developers build cross-platform React Native mobile apps with navigation, state management, and API integration, enabling efficient iOS/Android development while addressing common challenges like bridge errors and performance.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install secondsky-claude-skills-react-native-app
Repository
Skill path: plugins/react-native-app/skills/react-native-app
This skill helps developers build cross-platform React Native mobile apps with navigation, state management, and API integration, enabling efficient iOS/Android development while addressing common challenges like bridge errors and performance.
Open repositoryBest for
Primary workflow: Build Mobile.
Technical facets: Full Stack, Frontend, Backend, Mobile, Integration.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: secondsky.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install react-native-app into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/secondsky/claude-skills before adding react-native-app to shared team environments
- Use react-native-app for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw 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
```javascript
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)
```javascript
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
```javascript
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