Master React Native and build cross-platform mobile applications. Learn components, navigation, styling, and API integration.
React Native is a popular framework for building native mobile applications using JavaScript and React. It allows you to write code once and deploy to both iOS and Android platforms.
// Create a new React Native project
npx react-native init MyApp
// Navigate to project
cd MyApp
// Run on iOS
npx react-native run-ios
// Run on Android
npx react-native run-androidSetting up a new React Native project
React Native provides built-in components that map to native UI elements. Learn the essential components for building mobile interfaces.
import React from 'react';
import { View, Text, StyleSheet } from 'react-native';
const App = () => {
return (
<View style={styles.container}>
<Text style={styles.title}>Hello React Native!</Text>
<Text style={styles.subtitle}>Build native apps with React</Text>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#f5f5f5',
},
title: {
fontSize: 24,
fontWeight: 'bold',
color: '#333',
},
subtitle: {
fontSize: 16,
color: '#666',
marginTop: 8,
},
});
export default App;Basic View and Text components with styling
Learn how to handle user interactions with buttons, text inputs, and touch events in React Native.
import React, { useState } from 'react';
import { View, TextInput, Button, Text, StyleSheet } from 'react-native';
const InputExample = () => {
const [text, setText] = useState('');
const [displayText, setDisplayText] = useState('');
const handleSubmit = () => {
setDisplayText(text);
setText('');
};
return (
<View style={styles.container}>
<TextInput
style={styles.input}
placeholder="Enter text here"
value={text}
onChangeText={setText}
/>
<Button title="Submit" onPress={handleSubmit} />
{displayText ? (
<Text style={styles.result}>You entered: {displayText}</Text>
) : null}
</View>
);
};
const styles = StyleSheet.create({
container: {
padding: 20,
},
input: {
height: 40,
borderColor: '#ccc',
borderWidth: 1,
borderRadius: 5,
paddingHorizontal: 10,
marginBottom: 10,
},
result: {
marginTop: 20,
fontSize: 16,
color: '#333',
},
});
export default InputExample;TextInput and Button components with state management
Display scrollable lists of data using FlatList and ScrollView components.
import React from 'react';
import { FlatList, View, Text, StyleSheet } from 'react-native';
const DATA = [
{ id: '1', title: 'First Item' },
{ id: '2', title: 'Second Item' },
{ id: '3', title: 'Third Item' },
];
const ListExample = () => {
const renderItem = ({ item }) => (
<View style={styles.item}>
<Text style={styles.title}>{item.title}</Text>
</View>
);
return (
<FlatList
data={DATA}
renderItem={renderItem}
keyExtractor={item => item.id}
/>
);
};
const styles = StyleSheet.create({
item: {
backgroundColor: '#f9f9f9',
padding: 20,
marginVertical: 8,
marginHorizontal: 16,
borderRadius: 5,
},
title: {
fontSize: 18,
},
});
export default ListExample;FlatList for efficient scrollable lists
Implement navigation between screens using React Navigation, the most popular navigation library for React Native.
// Install React Navigation
npm install @react-navigation/native
npm install react-native-screens react-native-safe-area-context
npm install @react-navigation/native-stackInstall React Navigation dependencies
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
import { View, Text, Button } from 'react-native';
const Stack = createNativeStackNavigator();
function HomeScreen({ navigation }) {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Home Screen</Text>
<Button
title="Go to Details"
onPress={() => navigation.navigate('Details')}
/>
</View>
);
}
function DetailsScreen() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Details Screen</Text>
</View>
);
}
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Details" component={DetailsScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}Basic stack navigation setup
Learn how to fetch data from APIs and display it in your React Native app.
import React, { useState, useEffect } from 'react';
import { View, Text, FlatList, ActivityIndicator } from 'react-native';
const DataFetchExample = () => {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
fetch('https://jsonplaceholder.typicode.com/posts')
.then(response => response.json())
.then(json => {
setData(json);
setLoading(false);
})
.catch(error => {
console.error(error);
setLoading(false);
});
}, []);
if (loading) {
return <ActivityIndicator size="large" color="#0000ff" />;
}
return (
<FlatList
data={data}
keyExtractor={item => item.id.toString()}
renderItem={({ item }) => (
<View style={{ padding: 10 }}>
<Text style={{ fontWeight: 'bold' }}>{item.title}</Text>
<Text>{item.body}</Text>
</View>
)}
/>
);
};
export default DataFetchExample;Fetching and displaying API data
npx react-native init - Create new projectnpm start - Start Metro bundlernpx react-native run-ios - Run on iOSnpx react-native run-android - Run on Android