About Course
Build Real-World Applications
Course Objectives
-
Understand the React Native ecosystem and choose between Expo and React Native CLI
-
Build cross-platform mobile applications using React Native and TypeScript
-
Apply Clean Architecture principles and MVVM pattern in mobile app development
-
Create reusable and maintainable UI components
-
Implement navigation using Stack and Tab Navigators
-
Manage local and global state using Hooks (useState, useEffect, useContext, useReducer)
-
Integrate local storage (AsyncStorage) and SQLite database
-
Connect mobile apps to REST APIs and handle asynchronous operations
-
Implement device permissions (camera, location, notifications) using Expo
-
Optimize performance and prepare applications for production build using EAS
Course Outline
Day 1
- React Native CLI vs Expo:
o Pros, cons, and when to use each - Setting up a new project with Expo CLI and TypeScript
- Overview of the React Native:
o Folder structure and conventions - Software Architecture and Clean Architect
- Understanding MVVM pattern
- JavaScript Refresher
- TypeScript Refresher
Day 2
- Review of React concepts
- Introduction to JSX in React Native
- Using core components
- Local state with useState
- Side effects with useEffect
- Props and basic data flow in React Native
- Handling user input and interactions
- Conditional rendering and basic dynamic updates
- Styling in React Native
- Inline vs external styles
- Using Flexbox for layout in React Native
- Responsive design techniques
Day 3
- Creating and composing custom functional components
- Creating custom reusable components
- Managing props in reusable components
- Code reuse and separation of concerns
- Installing and configuring React Navigation
- Stack Navigator:
o Screen registration and transitions - Navigating between screens and passing parameters
- Accessing route parameters
- Tab Navigation
- Global state with useContext and useReducer
- Designing a reducer and dispatching actions
Day 4
- Installing and using AsyncStorage
- Saving data to local storage
- Loading persisted data on app startup
- Structured data with SQLite database
- Setting up SQLite and basic database operations
- SQLite parameterized queries
- Integrating a REST API
- Fetching data using fetch
- Handling async operations, loading states, and errors
Day 5
- Permissions with Expo:
Camera, location, and notifications - Using expo-camera for taking pictures
- Using expo-location to fetch current location
- Handling permission prompts and fallback states
- Error handling for denied permissions
- Optimizing performance
- Preparing app icons, splash screens, and metadata
- Introduction to EAS Build for iOS/Android
- Generating and testing app builds
