Back to skills
SkillHub ClubBuild MobileFull StackFrontendBackend

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.

Stars
84
Hot score
93
Updated
March 20, 2026
Overall rating
C4.6
Composite score
4.6
Best-practice grade
A92.0

Install command

npx @skill-hub/cli install secondsky-claude-skills-react-native-app

Repository

secondsky/claude-skills

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 repository

Best 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

Claude CodeCodex CLIGemini CLIOpenCode

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