- 20 Sections
 - 351 Lessons
 - 8 Weeks
 
Expand all sectionsCollapse all sections
- Getting Started16
- 1.1Welcome!
 - 1.2What is React Native?
 - 1.3Join our Online Learning Community
 - 1.4Expo vs React Native CLI
 - 1.5How React Native Works
 - 1.6Node.js Download
 - 1.7Creating Our First React Native App
 - 1.8Working on Our First App
 - 1.9React Native Apps Are Hard Work!
 - 1.10React Native Alternatives
 - 1.11Course Requirements
 - 1.12Course Requirement Refreshers
 - 1.13Running the App on an Android Emulator
 - 1.14Course Outline
 - 1.15How to get the Most out of This Course
 - 1.16Useful Resources & Links
 
 - JavaScript Refresher14
- 2.1Module Introduction
 - 2.2JavaScript – A Summary
 - 2.3Project Setup
 - 2.4Core Syntax Refresher
 - 2.5let & const
 - 2.6Arrow Functions
 - 2.7Objects: Properties & Methods
 - 2.8Arrays & Array Methods
 - 2.9Arrays, Objects & Reference Types
 - 2.10Spread Operator & Rest Parameters
 - 2.11Destructuring
 - 2.12Async Code & Promises
 - 2.13Wrap Up
 - 2.14Module Resources
 
 - React.js Refresher15
- 3.1Module Introduction
 - 3.2What is React
 - 3.3A Starting Project
 - 3.4Understanding JSX
 - 3.5Understanding Components
 - 3.6Working with Multiple Components
 - 3.7Working with Props
 - 3.8Rendering Lists of Data
 - 3.9Handling Events
 - 3.10Parent-Child Communication
 - 3.11Managing State
 - 3.12More on State
 - 3.13User Input & Two-Way Binding
 - 3.14Wrap Up
 - 3.15Module Resources
 
 - Diving into the Basics [COURSE GOALS APP]26
- 4.1Module Introduction
 - 4.2How to work with React Native Components
 - 4.3Setting Up A New Project
 - 4.4Planning the App
 - 4.5Working with Core Components
 - 4.6Getting Started with Styles
 - 4.7Flexbox & Layouts (Intro)
 - 4.8React Native Flexbox Deep Dive
 - 4.9Inline Styles & StyleSheet Objects
 - 4.10Components, Styles, Layouts
 - 4.11Working with State & Events
 - 4.12Outputting a List of Items
 - 4.13Styling List Items
 - 4.14Making it Scrollable with ScrollView!
 - 4.15A Better List: FlatList
 - 4.16More Components & Lists
 - 4.17Splitting the App Into Components
 - 4.18Passing Data Between Components
 - 4.19Working with Touchable Components
 - 4.20Deleting Items
 - 4.21Adding a Modal Overlay
 - 4.22More Flexbox Styling
 - 4.23Closing the Modal & Clearing Input
 - 4.24Finishing the Modal Styling
 - 4.25Wrap Up
 - 4.26Useful Resources & Links
 
 - Debugging React Native Apps10
- 5.1Module Introduction
 - 5.2What To Debug & How To Debug?
 - 5.3Running the App on a Real Device & Debugging
 - 5.4Handling Error Messages
 - 5.5Understanding Code Flow with console.log()
 - 5.6Using the Remote Debugger & Breakpoints
 - 5.7Working with the Device DevTools Overlay
 - 5.8Debugging the UI & Using React Native Debugger
 - 5.9Wrap Up
 - 5.10Useful Resources & Links
 
 - Components, Styling, Layouts - Building Real Apps [GUESS A NUMBER APP]39
- 6.1Module Introduction
 - 6.2Setup & App Planning
 - 6.3Adding a Custom Header Component
 - 6.4Adding a Screen Component
 - 6.5Working on the Layout
 - 6.6Styling a View as a “Card” Container (with Drop Shadows & Rounded Corners)
 - 6.7React Native Styling vs CSS Styling
 - 6.8Extracting a Card Component (Presentational Component)
 - 6.9Components & Styling
 - 6.10Color Theming with Constants
 - 6.11Configuring & Styling a TextInput
 - 6.12Cleaning User Input & Controlling the Soft Keyboard
 - 6.13Resetting & Confirming User Input
 - 6.14Configuring Components
 - 6.15Showing an Alert
 - 6.16Time to Finish the “Confirmation Box”
 - 6.17Adding Random Number Generation
 - 6.18Switching Between Multiple “Screens”
 - 6.19Adding Game Features: Hints & Validation
 - 6.20Checking the “Win” Condition with useEffect()
 - 6.21Finishing the Game Logic
 - 6.22Adding AppLoading
 - 6.23Adding Custom Fonts
 - 6.24Installing expo-font
 - 6.25A Synthetic Style “Cascade”: Custom Wrapper Components & Global Styles
 - 6.26Adding Local Images
 - 6.27Styling Images
 - 6.28Working with Network (Web) Images
 - 6.29A Closer Look at the “Text” Component (and what you can do with it)
 - 6.30vs – A Summary
 - 6.31Building a Custom Button Component
 - 6.32Adding Icons
 - 6.33Exploring UI Libraries
 - 6.34Managing Past Guesses as a List
 - 6.35Styling List Items & Lists
 - 6.36ScrollView & Flexbox (Yes, that works!)
 - 6.37Using FlatList Instead of ScrollView
 - 6.38Wrap Up
 - 6.39Useful Resources & Links
 
 - Responsive & Adaptive User Interfaces and Apps21
- 7.1Module Introduction
 - 7.2Finding Improvement Opportunities
 - 7.3Working with More Flexible Styling Rules
 - 7.4Introducing the Dimensions API
 - 7.5Using Dimensions in “if” Checks
 - 7.6Calculating Sizes Dynamically
 - 7.7Problems with Different Device Orientations
 - 7.8Controlling Orientation & Using the KeyboardAvoidingView
 - 7.9Listening to Orientation Changes
 - 7.10Rendering Different Layouts
 - 7.11Fixing the GameOver Screen
 - 7.12Updating All Code to Update Dynamically
 - 7.13The Dimensions API & Responsive UIs
 - 7.14Expo’s ScreenOrientation API
 - 7.15Introducing the Platform API
 - 7.16Working with Platform.select() and Platform in “if” Checks
 - 7.17Using Platform-specific Code Files
 - 7.18The Platform API
 - 7.19Using the SafeAreaView
 - 7.20Wrap Up
 - 7.21Useful Resources & Links
 
 - Navigation with React Navigation [THE MEALS APP]43
- 8.1Module Introduction
 - 8.2Planning the App
 - 8.3Adding Screens
 - 8.4Adding AppLoading
 - 8.5Adding Fonts
 - 8.6React Navigation Docs
 - 8.7Installing React Navigation & Adding Navigation to the App
 - 8.8MUST READ: Installing Different Navigators
 - 8.9Creating a StackNavigator
 - 8.10React Navigation & Code Attachments
 - 8.11Navigating Between Screens
 - 8.12Alternative Navigation Syntax
 - 8.13Navigation Basics
 - 8.14Navigation to the “Meal Details” Screen
 - 8.15Pushing, Popping & Replacing
 - 8.16Outputting a Grid of Categories
 - 8.17Configuring the Header with Navigation Options
 - 8.18Passing & Reading Params Upon Navigation
 - 8.19Setting Dynamic Navigation Options
 - 8.20Default Navigation Options & Config
 - 8.21Navigation Params & Configuration
 - 8.22Grid Styling & Some Refactoring
 - 8.23Adding Meal Models & Data
 - 8.24Loading Meals for Categories
 - 8.25Rendering a Meals List
 - 8.26Passing Data to the Meal Detail Screen
 - 8.27Adding Header Buttons
 - 8.28Fixing the Shadows
 - 8.29Adding Tabs-based Navigation
 - 8.30Setting Icons and Configuring Tabs
 - 8.31navigationOptions inside of a Navigator
 - 8.32Adding Material Bottom Tabs
 - 8.33Adding a Favorites Stack
 - 8.34Adding a Menu Button & Drawer Navigation
 - 8.35Configuring the Drawer
 - 8.36More Navigation Config & Styling
 - 8.37Adding a DefaultText Component
 - 8.38Adding the MealDetail Screen Content
 - 8.39Time for the “Filters” Screen Content!
 - 8.40Passing Data Between Component & Navigation Options (Header)
 - 8.41[React Refresher] useEffect() & useCallback()
 - 8.42Wrap Up
 - 8.43Useful Resources & Links
 
 - State Management & Redux13
- 9.1Module Introduction
 - 9.2What is State & What is Redux?
 - 9.3Redux & Store Setup
 - 9.4Selecting State Slices
 - 9.5Redux Data & Navigation Options
 - 9.6Dispatching Actions & Reducer Logic
 - 9.7Switching the Favorites Icon
 - 9.8Rendering a Fallback Text
 - 9.9Adding Filtering Logic
 - 9.10Dispatching Filter Actions
 - 9.11Debugging Redux in React Native Apps
 - 9.12Wrap Up
 - 9.13Useful Resources & Links
 
 - Time to Practice - THE SHOP APP28
- 10.1Module Introduction
 - 10.2Planning the App
 - 10.3Creating the Basic Project Setup
 - 10.4The Products Overview Screen
 - 10.5Setting Up a Navigator
 - 10.6Styling the Product Items
 - 10.7Adding Touchable Components
 - 10.8Working on the Product Details Screen
 - 10.9Using Custom Fonts
 - 10.10Adding Items to the Cart
 - 10.11Implementing Header Buttons
 - 10.12Outputting Cart Items
 - 10.13Adding Logic to Delete Items
 - 10.14Adding Redux Logic for Orders
 - 10.15SideDrawer & The Orders Screen
 - 10.16Clearing the Cart
 - 10.17Styling Order Items
 - 10.18Making the “Show Details” Button Work
 - 10.19Building the “User Products” Screen
 - 10.20Reorganizing the ProductItem Component
 - 10.21Deleting Items
 - 10.22Adding Basic Editing & Navigation Logic
 - 10.23Handling User Input
 - 10.24Using Params to Submit User Input
 - 10.25Dispatching Actions for Creating & Updating
 - 10.26Time to Improve the App!
 - 10.27Wrap Up
 - 10.28Useful Resources & Links
 
 - Handling User Input10
- 11.1Module Introduction
 - 11.2Configuring TextInputs
 - 11.3Adding Basic Validation
 - 11.4Getting Started with useReducer()
 - 11.5Finishing the Merged Form & Input Management
 - 11.6Moving Input Logic Into A Separate Component
 - 11.7Connecting Input Component & Form
 - 11.8Tweaking Styles & Handling the Soft Keyboard
 - 11.9Alternatives & Wrap Up
 - 11.10Useful Resources & Links
 
 - Http Requests & Adding a Web Server + Database15
- 12.1Module Introduction
 - 12.2Setup & How To Send Requests
 - 12.3Installing Redux Thunk
 - 12.4Storing Products on a Server
 - 12.5Fetching Products from the Server
 - 12.6Displaying a Loading Spinner & Handling Errors
 - 12.7Setting Up a Navigation Listener
 - 12.8Updating & Deleting Products
 - 12.9Handling Additional Errors
 - 12.10Storing Orders
 - 12.11Displaying an ActivityIndicator
 - 12.12Fetching Stored Orders
 - 12.13Adding “Pull to Refresh”
 - 12.14Wrap Up
 - 12.15Useful Resources & Links
 
 - User Authentication15
- 13.1Module Introduction
 - 13.2How Authentication Works
 - 13.3Implementing a Basic Login Screen
 - 13.4Adding User Signup
 - 13.5Logging Users In
 - 13.6Managing the Loading State & Errors
 - 13.7Using the Token
 - 13.8Mapping Orders to Users
 - 13.9Improved Mapping (Scoping)
 - 13.10Implementing “Auto Login”
 - 13.11Adding Logout
 - 13.12Implementing “Auto Logout”
 - 13.13Auto-Logout & Android (Warning)
 - 13.14Wrap Up
 - 13.15Useful Resources & Links
 
 - Native Device Features (Camera, Maps, Location, SQLite, ...) [GREAT PLACES APP]30
- 14.1Module Introduction
 - 14.2Planning the App
 - 14.3Navigation Setup in Next Lecture
 - 14.4Screen & Navigation Setup
 - 14.5Getting Started with the Form
 - 14.6Redux & Adding Places
 - 14.7Outputting a List of Places
 - 14.8Accessing the Device Camera
 - 14.9Configuring the Camera Access
 - 14.10Using the Picked Image
 - 14.11Storing the Image on the Filesystem
 - 14.12Changed SQLite Import
 - 14.13Diving into SQLite for Permanent Data Storage
 - 14.14Storing Data in the Local Database
 - 14.15Fetching Data from the Local Database
 - 14.16Getting the User Location
 - 14.17Showing a Map Preview of the Location
 - 14.18More on Environment Variables
 - 14.19Displaying an Interactive Map
 - 14.20Adding a Marker
 - 14.21Making the Picked Location “Saveable”
 - 14.22Storing Picked Places
 - 14.23Updating the Location Screen When the Location Changes
 - 14.24Storing the Address
 - 14.25Displaying the “Details” Screen
 - 14.26Finishing the “Map” Screen
 - 14.27Running the App on iOS
 - 14.28Running the App on Android
 - 14.29Wrap Up
 - 14.30Useful Resources & Links
 
 - Building Apps Without Expo10
- 15.1Module Introduction
 - 15.2Alternatives to Expo
 - 15.3Building Apps with Just the React Native CLI
 - 15.4Live Reload and RN CLI Apps
 - 15.5Important: Using React Native Image Picker
 - 15.6Adding Native Modules to Non-Expo Apps
 - 15.7Understanding Expo’s “Bare Workflow”
 - 15.8Ejecting from Expo’s “Managed Workflow”
 - 15.9When To Use Which?
 - 15.10Useful Resources & Links
 
 - Publishing React Native Apps11
- 16.1Module Introduction
 - 16.2Deployment Steps
 - 16.3Configuring the App & Publishing
 - 16.4Configuring Icons & The Splash Screen
 - 16.5Working with Offline Asset Bundles
 - 16.6Using “Over the Air Updates” (OTA Updates)
 - 16.7Building the Apps for Deployment (iOS & Android)
 - 16.8Publishing iOS Apps without Expo
 - 16.9Publishing Android Apps without Expo
 - 16.10Configuring Android Apps
 - 16.11Useful Resources & Links
 
 - Updating to React Navigation 5+15
- 17.1Module Introduction
 - 17.2What Changed?
 - 17.3Preparing the Project
 - 17.4More Information & Updating the Project Dependencies
 - 17.5Moving from the “Registry-like” to the “Component-based” Navigation Config
 - 17.6First Migration Steps
 - 17.7Converting More Stack Navigators to the New Config
 - 17.8Migrating the Drawer Navigation
 - 17.9Replacing the “Switch” Navigator & Auth Flow
 - 17.10Logout & Further Fixes/ Adjustments
 - 17.11Extracting Screen Params
 - 17.12Setting Screen Options Dynamically
 - 17.13Remaining Migration Steps & Roundup
 - 17.14A Summary Of All Important Changes
 - 17.15Useful Resources & Links
 
 - Push Notifications18
- 18.1Module Introduction
 - 18.2Understanding Notifications
 - 18.3Sending Local Notifications
 - 18.4Getting Permissions
 - 18.5Controlling How Notifications Are Displayed
 - 18.6Reacting to Foreground Notifications
 - 18.7Reacting to Background Notifications
 - 18.8How Push Notifications Work
 - 18.9Expo & Push Notifications
 - 18.10Getting a Push Token
 - 18.11Sending Push Notifications
 - 18.12Using Expo’s Push Server
 - 18.13More on Push Tokens
 - 18.14Adding Push Notifications to the Shop App (1/3)
 - 18.15Adding Push Notifications to the Shop App (2/3)
 - 18.16Adding Push Notifications to the Shop App (3/3)
 - 18.17Push Notifications in non-Expo Managed Apps
 - 18.18Module Resources
 
 - Course Roundup & Next Steps1
 - Bonus1