A hands-on learning template for teaching React web developers how to build React Native apps. Students build a functional Bucket List app in 40 minutes!
This workshop teaches React web developers React Native through a progressive, hands-on project. Students build a real app while learning mobile-specific concepts.
App Features:
- ✅ Add bucket list items with descriptions
- ✅ Mark items as complete/incomplete
- ✅ View active and completed items in separate tabs
- ✅ Data persists using AsyncStorage
- ✅ Clean, polished UI with empty states
Complete these steps BEFORE the workshop:
- 
Install Node.js (v16+) node --version # Should be 16.x or higher
- 
Install Expo Go on your phone/tablet - iOS: App Store
- Android: Play Store
 
- 
Clone and setup project git clone [YOUR-REPO-URL] cd react-next-template npm install
- 
Test the app npx expo start Scan QR code with Expo Go app 
react-next-template/
├── app/(tabs)/
│   ├── index.tsx         # "My List" tab (active items)
│   └── explore.tsx       # "Completed" tab
├── components/
│   ├── bucket-list-item.tsx    # Individual item component
│   └── add-item-modal.tsx      # Add item modal
├── hooks/
│   └── use-bucket-storage.ts   # AsyncStorage hook
├── types/
│   └── bucket-item.ts          # TypeScript interfaces
Each step includes:
- 🎯 Challenge: "Try implementing this yourself!"
- 💡 Hints: Comments guiding the approach
- ✅ Solution: Commented-out working code
Extensive comments comparing to React web:
/**
 * 🌐 React Web Comparison:
 * - <Pressable> is like <button> or onClick
 * - Use onPress instead of onClick
 * - Styling works like CSS-in-JS
 */- State Management (familiar territory - same as web!)
- Component Structure (same React patterns)
- Native Primitives (View, Text, FlatList)
- Mobile-Specific (AsyncStorage, Modal, Platform)
- Expo SDK 54 - React Native development platform
- Expo Router - File-based navigation
- TypeScript - Type safety
- AsyncStorage - Data persistence
- Expo Go - Testing on real devices
✅ React concepts transfer directly to React Native ✅ Different UI primitives (View vs div, Text vs span) ✅ Mobile-optimized components (FlatList) ✅ Touch interactions (onPress vs onClick) ✅ Styling with StyleSheet (vs CSS) ✅ Data persistence on mobile (AsyncStorage) ✅ Navigation patterns with tabs
After this workshop, students can:
- Build basic React Native apps using Expo
- Understand React Native vs React web differences
- Use core RN components (View, Text, FlatList, Pressable)
- Implement state management with hooks
- Persist data with AsyncStorage
- Navigate between screens
- Style components with StyleSheet
npx expo startnpx expo start -cnpx expo start --ios
npx expo start --android
npx expo start --webnpx tsc --noEmitFor quick learners who finish early:
- Edit existing items
- Add photos with expo-image-picker
- Custom completion dates
- Notes/comments on items
- Categories and tags
- Search/filter functionality
- Ensure phone and computer on same WiFi
- Try tunnel mode: npx expo start --tunnel
- Use web version: Press win terminal
npx expo start -c  # Clear cacherm -rf node_modules
npm installBuilt as a teaching template for React web developers learning React Native. Uses Expo SDK 54 with Expo Router for navigation.
Feel free to use this template for your workshops and courses!