React Native Skills
Specialized React Native development for automated cross-platform mobile workflows and native integration
React Native Skills is a community skill for building mobile applications with React Native, covering component patterns, navigation setup, native module integration, platform-specific code, and performance optimization for cross-platform apps.
What Is This?
Overview
React Native Skills provides patterns for building production mobile applications with React Native. It covers component patterns with FlatList, ScrollView, and Pressable for native-feeling interactions, navigation setup using React Navigation with stack, tab, and drawer navigators, native module integration for accessing platform APIs like camera, biometrics, and push notifications, platform-specific code using Platform.select and file extensions for iOS and Android customization, and performance optimization with InteractionManager, lazy loading, and image caching. The skill enables web developers to build native mobile experiences using React knowledge.
Who Should Use This
This skill serves React developers building their first mobile applications with React Native, teams creating cross-platform apps that share code between iOS and Android, and engineers integrating native modules for platform-specific functionality.
Why Use It?
Problems It Solves
Web-style scrolling patterns cause poor performance in mobile lists without native optimization. Navigation between screens requires platform-aware transitions and gesture handling. Platform-specific features like biometrics need native module bridges. Performance issues from JavaScript thread blocking cause janky animations and interactions.
Core Highlights
FlatList provides virtualized list rendering for smooth scrolling of large datasets. React Navigation handles platform-native transitions with gesture-driven navigation. Native modules bridge JavaScript to platform APIs for device capabilities. Performance patterns keep the JavaScript thread responsive.
How to Use It?
Basic Usage
import React from 'react';
import { FlatList, View,
Text, StyleSheet,
Pressable } from
'react-native';
interface Item {
id: string;
title: string;
subtitle: string;
}
function ItemList({
items,
onPress,
}: {
items: Item[];
onPress: (id: string)
=> void;
}) {
return (
<FlatList
data={items}
keyExtractor={
(item) => item.id}
renderItem={({ item }) => (
<Pressable
onPress={() =>
onPress(item.id)}
style={({ pressed }) => [
styles.row,
pressed &&
styles.pressed,
]}>
<View>
<Text
style={
styles.title}>
{item.title}
</Text>
<Text
style={
styles.subtitle}>
{item.subtitle}
</Text>
</View>
</Pressable>
)}
ItemSeparatorComponent={
() => <View
style={styles.sep} />}
/>
);
}
const styles =
StyleSheet.create({
row: { padding: 16 },
pressed: { opacity: 0.7 },
title: { fontSize: 16,
fontWeight: '600' },
subtitle: { fontSize: 14,
color: '#666',
marginTop: 4 },
sep: { height: 1,
backgroundColor:
'#eee' },
});Real-World Examples
import React from 'react';
import {
createNativeStackNavigator
} from
'@react-navigation/'
+ 'native-stack';
import {
NavigationContainer
} from
'@react-navigation/native';
type RootStack = {
Home: undefined;
Detail: { id: string };
Settings: undefined;
};
const Stack =
createNativeStackNavigator<
RootStack>();
function App() {
return (
<NavigationContainer>
<Stack.Navigator
screenOptions={{
headerLargeTitle:
true,
animation:
'slide_from_right',
}}>
<Stack.Screen
name="Home"
component={
HomeScreen} />
<Stack.Screen
name="Detail"
component={
DetailScreen} />
<Stack.Screen
name="Settings"
component={
SettingsScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}Advanced Tips
Use Reanimated for complex animations that run on the UI thread without JavaScript bridge overhead. Implement FlashList as a drop-in replacement for FlatList with better recycling performance. Use Hermes engine for faster startup and reduced memory usage. Implement CodePush for over-the-air JavaScript updates that bypass app store review cycles for minor fixes.
When to Use It?
Use Cases
Build a product listing app with virtualized scrolling and native-feeling press interactions. Create a tabbed navigation structure with typed route parameters. Implement biometric authentication using a native module bridge.
Related Topics
React Native, mobile development, React Navigation, native modules, and cross-platform apps.
Important Notes
Requirements
React Native CLI or Expo for project setup and building. Xcode for iOS development and Android Studio for Android. Node.js and platform-specific SDKs for native compilation.
Usage Recommendations
Do: use FlatList or FlashList for all scrollable lists to get virtualized rendering. Prefer Pressable over TouchableOpacity for consistent press feedback. Use typed navigation with TypeScript for route parameter safety.
Don't: use ScrollView for long lists which renders all items at once causing memory issues. Run heavy computations on the JavaScript thread during animations. Inline styles in render methods when StyleSheet.create provides optimized style references.
Limitations
Native module integration requires Objective-C/Swift or Java/Kotlin knowledge for custom bridges. Platform differences in behavior require testing on both iOS and Android. Hot reload may not reflect native code changes requiring full rebuilds. Debugging requires separate tools for JavaScript and native layers which adds complexity to the development workflow.
More Skills You Might Like
Explore similar skills to enhance your workflow
Gws Classroom
Google Classroom: Manage classes, rosters, and coursework
Guard
Enables full safety mode combining destructive command warnings and directory-scoped edits
Terraform Engineer
Infrastructure as Code expert specializing in Terraform automation and multi-cloud resource integration
Ai Image Generator
Generate AI images using Gemini or GPT APIs directly. Covers model selection (Gemini for scenes, GPT for transparent icons), the 5-part prompting fram
Accessibility Compliance
Master accessibility implementation to create inclusive experiences that work for everyone, including users with disabilities
Wiki Researcher
Research and compile technical documentation from multiple source materials