Use when learning React Native with Expo - collection of example projects showcasing Expo features and React Native patterns
This skill provides access to a collection of Expo example projects that showcase various React Native features, patterns, and best practices for mobile app development.
Use this skill when:
| Category | Examples |
|---|---|
| Navigation | Stack, Tab, Drawer navigation |
| UI Components |
| Lists, Forms, Animations |
| API Integration | REST, GraphQL, Firebase |
| Authentication | OAuth, JWT, Biometric |
| Media | Camera, Images, Video, Audio |
| Storage | SQLite, AsyncStorage, Cloud |
| Notifications | Push notifications, local |
| Maps | Location, Maps, Geofencing |
| Sensors | Accelerometer, Gyroscope |
| Payments | In-app purchases, Stripe |
| Layer | Technology |
|---|---|
| Framework | React Native |
| Development | Expo SDK |
| Language | JavaScript/TypeScript |
| Navigation | React Navigation |
| State | Context API, Zustand, Redux |
| Backend | Various (Firebase, Supabase, custom) |
# Browse examples
cd expo-examples
# Run specific example
cd examples/with-navigation
npm install
npx expo start
# Scan QR code with Expo Go app
# Or run on simulator
npx expo run:ios
npx expo run:android
// App.js
import { NavigationContainer } from '@react-navigation/native';
import { createNativeStackNavigator } from '@react-navigation/native-stack';
const Stack = createNativeStackNavigator();
export default function App() {
return (
<NavigationContainer>
<Stack.Navigator>
<Stack.Screen name="Home" component={HomeScreen} />
<Stack.Screen name="Details" component={DetailsScreen} />
</Stack.Navigator>
</NavigationContainer>
);
}
// Fetch data
const fetchUsers = async () => {
const response = await fetch('https://api.example.com/users');
const data = await response.json();
return data;
};
// With React Query
const { data, isLoading } = useQuery(['users'], fetchUsers);
import { Camera } from 'expo-camera';
const [hasPermission, setHasPermission] = useState(null);
const cameraRef = useRef(null);
useEffect(() => {
(async () => {
const { status } = await Camera.requestCameraPermissionsAsync();
setHasPermission(status === 'granted');
})();
}, []);
When helping with Expo projects:
react-native-boilerplate - React Native starterignite-boilerplate - Production React Nativeflutter-sdk - Alternative mobile frameworkC:\Users\user\.qwen\skills\expo-examples