React Native App Builds and Performance Fixes
Build and debug React Native and Expo apps with navigation, native-module setup, and targeted list performance fixes.
Before & after
Same prompt, same agent — the only difference is the skill.
React Native has excellent navigation libraries like React Navigation that handle complex navigation patterns. You can use bottom tab navigators and stack navigators together. The structure involves nesting navigators strategically - typically a tab navigator at the top level with stack navigators inside each tab. State management is important for passing data between screens correctly. You'll need to install the dependencies and configure the navigators properly. Would you like a basic setup example to get started, or do you need help with a specific navigation pattern or use case? I can provide different approaches depending on your needs.
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import { Ionicons } from '@expo/vector-icons';
const Stack = createNativeStackNavigator();
const Tab = createBottomTabNavigator();
const HomeStack = () => (
<Stack.Navigator screenOptions={{ headerStyle: { backgroundColor: '#007AFF' }, headerTintColor: '#fff' }}>
<Stack.Screen name="HomeFeed" component={HomeFeed} options={{ title: 'Home' }} />
<Stack.Screen name="PostDetail" component={PostDetail} options={{ title: 'Post' }} />
</Stack.Navigator>
);
const ProfileStack = () => (
<Stack.Navigator>
<Stack.Screen name="ProfileView" component={ProfileView} options={{ title: 'Profile' }} />
<Stack.Screen name="Settings" component={Settings} options={{ title: 'Settings' }} />
</Stack.Navigator>
);
const Navigation = () => (
<NavigationContainer>
<Tab.Navigator
screenOptions={({ route }) => ({
tabBarIcon: ({ focused, color }) => {
const iconName = route.name === 'Home' ? 'home' : 'person';
return <Ionicons name={focused ? iconName : iconName + '-outline'} color={color} />;
},
headerShown: false
})}
>
<Tab.Screen name="Home" component={HomeStack} />
<Tab.Screen name="Profile" component={ProfileStack} />
</Tab.Navigator>
</NavigationContainer>
);
KEY PATTERNS: Nesting Stack navigators inside Tab prevents header duplication and manages independent navigation state for each tab. screenOptions standardize styling globally across screens. Ionicons dependency is pre-installed via expo SDK. Each tab screen maintains its own navigation stack independently. Deep linking configuration required for production apps. useFocusEffect hook helps detect when users switch between tabs for analytics or state reset. This pattern scales well to 4-5 tabs maximum.About this skill
Your React Native screen looks right, but scrolling stutters, Android hides the input, or a native package works nowhere outside the example. This skill traces those failures to the navigation tree, installed native runtime, rendering dependencies, or platform layout behavior, then produces a focused implementation and verification plan.
What it does
- Maps tabs, stacks, authentication routes, and modals before wiring navigation, while preserving your existing router.
- Separates Expo Go, development builds, and projects with maintained native directories so native-module instructions match the actual runtime.
- Diagnoses list stalls using render evidence, stable identities, image costs, and accurate item measurements.
- Fixes keyboard and safe-area interactions without stacking competing inset adjustments.
- Distinguishes JavaScript rendering problems from native layout, image decoding, and animation bottlenecks.
- Produces TypeScript patches with platform-specific checks and explicit limits on what was verified.
What you get
A scoped implementation or debugging patch, the evidence behind the change, and concrete iOS and Android acceptance checks. Larger requests also get a navigation map and native configuration requirements.
Best for
Developers building or maintaining React Native and Expo apps, especially teams dealing with slow lists, nested navigation, custom native dependencies, and platform-specific input bugs.
SKILL.md preview
---
name: react-native-app-builds-and-performance-fixes
description: Builds and debugs React Native and Expo apps by mapping navigation ownership, checking native-runtime compatibility, and tracing rendering and platform-layout failures before changing code. Use when the user says "build this React Native screen", "set up tabs and stacks", "my FlatList keeps stuttering", "this native module is missing", "it works in Expo Go but not my build", "the keyboard covers my input", or "review this Expo app".
---
# React Native App Builds and Performance Fixes
… (sign up to view the full skill)More development skills
View all Development skills →Frontend Component UX and Accessibility Review
Severity-ranked fixes with code for UI components: states, keyboard, focus, ARIA, touch targets, contrast, and responsive breakage.
Three.js Click-to-Learn 3D Game Builder
Build click-to-learn 3D games in Three.js: TSL materials, reliable object picking, and an accessible quiz overlay fed by content data.
Angular Standalone Features and State Architecture
Build Angular standalone features with lazy routes, scoped state, safe RxJS flows, and targeted tests.
shadcn/ui Component Building and Theming
Build, theme, and debug shadcn/ui components the way the library is designed to work, with Tailwind v3 and v4 theming handled correctly.