O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

React Native - The Practical Guide

Video Description

Use React Native and your React knowledge and take your web development skills to build native iOS and Android Apps

About This Video

  • The core concepts and theory
  • How to use React, JavaScript and native components
  • Understand how to navigate in React Native apps
  • A closer look at styling and animating React Native apps
  • Instructions on how to use third-party libraries in your React Native app
  • Detailed examples on how to use maps or an image picker
  • A full user authentication flow
  • How to connect to a backend server from your app
  • Debugging instructions

In Detail

Mobile applications are one of the best ways to engage with users - no wonder everyone wants to build one! Wouldn't it be great if you could use your web development knowledge, combined with your React knowledge, to build mobile apps with that? That's exactly what React Native allows you to do! No need to learn Java, Android, Swift, ObjectiveC or anything like that - React and JavaScript is all you need to create awesome native mobile apps that work on both Android and iOS. That's probably the reason why Instagram, AirBnB, Skype, and many other global companies are using it to build their mobile apps! You'll learn all about the theory behind React Native, its core concepts, how to build responsive designs that work on different device sizes, how to animate React Native apps, how to navigate around, use maps and the camera. and so much more! And what better way to learn than by building a real app? We'll build the "Awesome Places" app in this course, an app where users can share amazing pictures and the location where they took them. This app will allow you to see things like using maps, the camera, user authentication, connecting to a server and much more in action. By the end of the course, we'll of course also go through all the steps required to get it into an app store.

Table of Contents

  1. Chapter 1 : Getting Started
    1. Welcome! 00:01:58
    2. What is React Native? 00:04:14
    3. A Closer Look 00:03:01
    4. What Happens to JavaScript? 00:01:28
    5. Creating Our First React Native App 00:07:38
    6. Dealing with Limitations of React Native 00:05:34
    7. What a Good Course Offers 00:01:45
    8. Course Requirements 00:03:04
    9. Course Outline 00:02:44
    10. How to get the Most out of This Course 00:01:20
  2. Chapter 2 : Diving into the Basics
    1. Module Introduction 00:01:24
    2. Creating a New Project 00:04:01
    3. JSX Elements you can and can't Use 00:05:46
    4. Ejecting from Create React Native App 00:02:31
    5. Running the App on an Android Simulator (+ Setup) 00:09:49
    6. Running our App on a Real Android Device 00:01:04
    7. Running our App on an iOS Simulator 00:02:16
    8. Running our App on an iOS Device 00:03:54
    9. A Good Development Setup 00:03:53
    10. Working on the App: Adding a Textinput 00:08:26
    11. Styling - Understanding the Basics 00:10:16
    12. Positioning Elements with Flexbox 00:08:29
    13. Adding a Button and Managing State 00:06:27
    14. Creating a Custom Component 00:08:37
    15. Listening to Touch Events 00:08:31
    16. Reacting to Press Events 00:05:02
    17. Using a ScrollView 00:03:02
    18. Rendering Lists Correctly 00:08:15
    19. Adding Static Images 00:09:50
    20. Using Network Images 00:03:23
    21. Adding a Modal 00:17:43
    22. React vs React Native 00:02:07
    23. JavaScript - Supported Features 00:03:49
    24. Wrap Up 00:01:33
  3. Chapter 3 : Using Redux with React Native
    1. Module Introduction 00:00:52
    2. A Brief Redux Refresher 00:03:43
    3. Installing Redux and Creating a Basic Setup 00:05:29
    4. Setting up Actions 00:07:22
    5. Setting up the Reducer 00:06:31
    6. Creating the Store 00:07:10
    7. Connecting React Native to Redux 00:09:25
    8. Wrap Up 00:00:45
  4. Chapter 4 : Debugging React Native Apps
    1. Module Introduction 00:00:52
    2. Using the Remote JavaScript Debugging console.log 00:04:12
    3. Debugging with Breakpoints 00:01:58
    4. Debugging+++ with React Native Debugger 00:04:04
    5. Debugging Redux 00:05:21
    6. Wrap Up 00:00:57
  5. Chapter 5 : Linking and Using Third Party Libraries
    1. Module Introduction 00:01:25
    2. Installing Libraries 00:02:51
    3. Linking Libraries on iOS 00:04:12
    4. Linking Libraries on Android 00:04:03
    5. Using Library Features: Adding Icons 00:05:25
    6. Wrap Up 00:00:45
  6. Chapter 6 : Navigation in React Native Apps
    1. Module Introduction 00:01:08
    2. Navigation in Web Apps vs Native Apps 00:01:13
    3. Exploring Native Navigation Solutions 00:02:31
    4. Adding React Native Navigation to iOS 00:04:05
    5. Adding React Native Navigation to Android 00:05:18
    6. Finishing the Library Setup 00:01:56
    7. Registering and Rendering a Screen 00:09:57
    8. Adding a Tabs Screen (Tabs Navigation) 00:09:32
    9. Adding Icons to Tabs 00:05:58
    10. Connecting Screens to Redux 00:03:13
    11. Updating Redux 00:09:44
    12. Pushing Pages (Navigating "Forwards") 00:09:14
    13. Popping Pages (Navigating "Backwards") 00:07:46
    14. More Navigator Methods 00:01:00
    15. Adding a Side Drawer 00:07:46
    16. Using Navigation Events & Toggling the Drawer 00:07:44
    17. Finishing the Drawer 00:03:05
    18. Wrap Up 00:01:00
  7. Chapter 7 : Styling & Animating React Native Apps (Correctly)
    1. Module Introduction 00:02:10
    2. Using StyleSheet vs Normal JS Objects 00:01:56
    3. Vanilla CS vs React Native Styles 00:04:44
    4. Flexbox in Action 00:09:25
    5. Styling with Relative Units 00:04:17
    6. "Global Styles" with Custom Components 00:05:24
    7. Synthetic Cascading of Styles 00:03:53
    8. Styling Text 00:05:17
    9. Cascading Text Styles 00:04:16
    10. Adding a Background Image 00:06:23
    11. Creating a Re-Usable Custom Button 00:07:10
    12. Editing the "Share Place" Screen 00:14:45
    13. Styling & Splitting the "Share Place" Screen 00:10:50
    14. Finishing the "Share Place" Screen 00:04:38
    15. You’re Challenge! 00:01:10
    16. Styling the Side Drawer 00:05:10
    17. Quick Bug Fix: PlaceInput Component 00:00:42
    18. Intro: Cross Platform Styles & Responsiveness 00:02:03
    19. Cross-Platform Styling Made Easy! 00:02:16
    20. Using the Platform API 00:04:52
    21. Loading Different Icons for Different Platforms 00:05:55
    22. Using Different Entry Points (into the App) 00:01:17
    23. Cross-Platform UI Libraries 00:02:47
    24. The "Responsive Styling" Problem 00:02:06
    25. Responsive Design Solutions 00:02:20
    26. Using the Dimensions API 00:07:16
    27. Adjusting Styles Dynamically (to changing Width / Height) 00:08:13
    28. A Better Responsive Solution 00:05:17
    29. Bug Fix: Centering with Margins 00:00:57
    30. Cleaning Up Dimensions Listeners 00:02:41
    31. Styling Navigation Items (react-native-navigation) 00:04:07
    32. Preparing the App for Animations 00:08:50
    33. Using the Animated API 00:09:46
    34. Animations Summary 00:01:22
    35. Wrap Up 00:01:12
  8. Chapter 8 : Handling User Input
    1. Module Introduction 00:00:56
    2. Managing Input/ Control State 00:11:22
    3. Adding Custom Validation Logic 00:20:45
    4. Using the Validation State 00:08:47
    5. Dispatching an Auth Action 00:05:23
    6. Switching Form (Auth) Modes 00:06:55
    7. Configuring Text Input Components 00:04:40
    8. Handling the Soft Keyboard 00:04:46
    9. Wrap Up 00:01:08
  9. Chapter 9 : Using Native Device Features - Maps, Camera & Image Gallery
    1. Module Introduction 00:01:14
    2. Installing react-native-maps 00:08:54
    3. Rendering a Map 00:11:12
    4. Picking a Location on the Map 00:04:56
    5. Adding a Map Marker 00:03:21
    6. Animating Map Movement 00:03:50
    7. Locating the User 00:08:31
    8. Storing the Picked Location with Redux 00:07:23
    9. Installing react-native-image-picker 00:06:38
    10. Using the Image Picker 00:05:37
    11. Storing the Picked Images 00:06:07
    12. Image Picker and the Data it Returns 00:01:56
    13. Wrap Up 00:01:13
  10. Chapter 10 : Networking - Sending Http Requests
    1. Module Introduction 00:01:14
    2. Sending Http Requests – Theory 00:01:29
    3. Creating the Server 00:02:51
    4. Using the Fetch-API 00:02:59
    5. Storing Data in Firebase 00:10:24
    6. Storing Images 00:19:26
    7. Finishing the Image Upload Function 00:10:17
    8. Storing the Remaining Data 00:03:38
    9. Adding the Activity Indicator 00:10:24
    10. Handling Errors 00:01:33
    11. Getting Data from the Server 00:12:55
    12. Fixing an Error 00:01:39
    13. Wrap Up 00:00:59
  11. Chapter 11 : Authentication in React Native Apps
    1. Module Introduction 00:01:15
    2. How Authentication Works in React Native Apps 00:03:03
    3. Enabling Firebase Authentication 00:02:09
    4. Signing Users Up 00:08:30
    5. Using the Authentication Result (Response) 00:07:09
    6. Supporting Signup and Login 00:02:49
    7. Adding User Login 00:05:07
    8. Protecting Routes on Firebase 00:02:40
    9. Storing the Auth Token in Redux 00:06:09
    10. Using the Auth Token 00:03:53
    11. Fetching the Token in a Re-Usable Way 00:07:17
    12. Protecting the Firebase Cloudfunction 00:07:20
    13. Adding Places (Authenticated) 00:04:41
    14. Storing the Token in AsyncStorage 00:07:05
    15. Adding an Auto-Signin Functionality 00:05:17
    16. Managing the Token Expiration 00:10:51
    17. Clearing the Auth Storage (AsyncStorage) 00:02:38
    18. Refreshing the Token 00:14:55
    19. Adding User Logout 00:08:17
    20. Refreshing the Token without App Reloads 00:06:51
    21. Wrap Up 00:00:58
  12. Chapter 12 : Polishing the App
    1. Module Introduction 00:00:44
    2. Identifying "Improvement Potential" 00:02:37
    3. Shrinking Image Sizes 00:02:17
    4. Resetting the "Share Place" Screen 00:07:57
    5. Redirecting to another Tab 00:10:59
    6. Loading Places All the Time! 00:03:05
    7. Improving Http Error Handling 00:03:26
    8. Cleaning Stored Images (on Firebase) 00:08:50
    9. Wrap Up 00:00:28
  13. Chapter 13 : Publishing the App
    1. Module Introduction 00:00:56
    2. Adding Launcher Icons 00:05:13
    3. Adding a Splash Screen 00:08:17
    4. Configuring & Building the App 00:07:51
    5. Publishing to Google Play Store (Android) 00:02:43
    6. Publishing to the App Store (iOS) 00:06:35
  14. Chapter 14 : Round Up
    1. Course Roundup 00:01:04