A comprehensive introduction to mobile development using React Native and Expo, progressing from basic UI concepts to advanced features like authentication and API integration.
This piscine consists of 6 modules that progressively build mobile development skills:
- Modules 00-03: Focus on weather applications with increasing complexity
- Modules 04-05: Focus on diary applications with authentication and navigation
- React Native: Cross-platform mobile framework
- Expo: Development toolchain and platform
- React Navigation: Navigation library
- Clerk: Authentication service (Modules 04-05)
- Context API: State management
- Weather APIs: External data integration (Modules 02-03)
Module 00 - Introduction to React Native
Introduction to React Native basics with Expo.
- Projects: ex00, ex01, ex02, calculator_app
- Focus: Core components, state management, responsive layouts
- Key Topics: TouchableOpacity, useState, useRef, portrait/landscape modes
Module 01 - UI Fundamentals
Building a weather app UI skeleton.
- Project: weather_app
- Focus: Navigation, tabs, search functionality
- Key Topics: PagerView, SafeAreaView, Ionicons, KeyboardAvoidingView
- Note: UI only, no actual API integration
Module 02 - API Integration
First real weather app with API integration.
- Project: medium_weather_app
- Focus: Weather API, geolocation, geocoding services
- Key Topics: Async/await, Promise.all, useCallback, useEffect, error handling
- Services: WeatherService, LocationService, GeocodingService
Module 03 - Advanced Features
Polished weather app with advanced UI/UX.
- Project: advanced_weather_app (+ light mode variant)
- Focus: Dark theme, responsive design, advanced error handling
- Key Topics: WeatherBackground component, useWindowDimensions, StatusBar, complex state management
- Features: Dynamic backgrounds, landscape support, consolidated error states
Module 04 - Authentication
Diary app with user authentication.
- Project: diary_app
- Focus: Clerk authentication, secure storage, Context API
- Key Topics: SecureStore, SignedIn/SignedOut, custom fonts, SplashScreen
- Screens: Welcome, AuthOptions, EntriesList, EntryDetail, NewEntry (5 total)
- Contexts: Theme, Overlay, Entries
Module 05 - Advanced Navigation
Enhanced diary with tab navigation and calendar views.
- Project: advanced_diary_app
- Focus: Tab navigation, calendar/agenda views
- Key Topics: TabNavigator component, complex navigation hierarchies (Stack + Tab)
- Screens: All Module 04 screens + AgendaScreen (6 total)
- New Feature: Calendar-based entry organization
Each module (01-05) includes a run script for easy project management:
# Navigate to any project directory
cd mobileModule01/weather_app
# Clean, install, and start with tunnel
./run rebuild
# Start development server
./run start
# Clean project artifacts
./run clean
# Or manually
npm install
npx expo start- Module 00: Learn React Native basics and component fundamentals
- Module 01: Build UI layouts and navigation patterns
- Module 02: Integrate external APIs and handle async operations
- Module 03: Polish UI with themes, responsive design, and error handling
- Module 04: Implement authentication and global state management
- Module 05: Master complex navigation patterns and calendar UIs
- Node.js and npm installed
- Expo CLI (
npm install -g expo-cli) - iOS Simulator (Mac) or Android Emulator
- Expo Go app on physical device (optional)