TP3058

React Native Training

In this React Native Training course you'll learn to use React Native to create cross-platform native apps quickly and easily with a 50/50 mix of lecture and real-world labs. You'll start from scratch and build up to a comprehensive app which uses modern techniques and best practices to consume RESTful data from a NodeJS/Express server and present it to the user in a multi-screen, interactive app.
Course Details

Duration

4 days

Prerequisites

A very strong grasp of React, Redux and advanced JavaScript.  Please ask about our JavaScript and React/Redux courses which will prepare you for this course.

Target Audience

Seasoned developers who want to create iOS and Android apps.

Skills Gained

  • iOS app development
  • Swift syntax and framework
  • Higher Order Functions
  • Closures
  • Protocols and Extensions
  • Classes, Structs, Enums
  • Server communication
  • Binary and JSON data handling
  • UI design with Storyboards
  • SwiftUI
  • Generics
  • Delegate/Datasource pattern usage
Course Outline
  • Introduction
  • Hello React Native
    • What is React Native?
    • What does it do for us? Why choose it?
    • Pros and cons
    • Architecture
    • Sharing with web projects
    • What React Native code looks like
    • Leveraging your React knowledge
  • React and Redux reviews (when needed)
    • Redux reminder
    • Reducers, actions, state, store, and middleware
    • React reminder
    • SFCs vs class-based components
    • Composition
    • JSX structure and rules
    • props
    • state
    • Controlled and uncontrolled components
    • Virtual DOM vs the real DOM
  • The Development Process
    • Where do I even start?
    • react-native vs. create-react-native-app
    • Which is better for given situations
    • The React Native team's recommendations
    • What is expo?
    • Creating a new React Native app
    • How to run it on a tethered device
    • How to run it on a wireless device
    • How to run it in an Android emulator
    • How to run it on an iOS simulator
    • Debugging in a browser window
    • Logging, breakpoints, stepping through
    • YellowBoxes and RedBoxes
  • Single-value Controls
    • Components overview
    • Categories of components
    • Text
    • Text props and events
    • TextInput
    • props and events and the event object
    • Image
    • Differences between HTML and React Native images
    • Reserving space for them
    • Local images vs remote images
    • resizeMode
  • Platform-specific Development
    • How can we develop differently on the different platforms?
    • Why would we ever do this?
    • Technical roadblocks
    • The DatePicker - iOS vs Android
    • Using the Platform module
  • Layout Components
    • Components review
    • View
    • SafeAreaView
    • ScrollView
    • Pinch-to-zoom
    • KeyboardAvoidingView
    • How to create modal views
    • Controlling the OS's status bar
  • Flexbox for Native Layouts
    • Why flexbox?
    • Where it came from
    • Flexbox on the web is NOT flexbox on native
    • Containers and items
    • flexDirection
    • flexBasis vs width/height
    • flexShrink, flexGrow
    • The flex shorthand
    • justifyContent and alignContent
    • flexWrap
  • Styling React Native Apps
    • How React Native styles differ from CSS
    • How to apply styles
    • How to control style inheritance
    • Style arrays
    • Four methods of defining styles
    • Common properties
    • Cross-platform fonts
    • Conditional and programmatic styles
  • Navigation
    • What is navigation, really?
    • How to get React Navigation
    • The three types of navigators
    • StackNavigator
    • Routing object
    • Navigation config
    • How to pass params when navigating
    • TabNavigators
    • Three types of TabNavigators
    • How to set icons
    • DrawerNavigator
    • Examples and demos
  • Ajax in React Native
    • Why it must be different on a device
    • The fetch API
    • How to show a loading indicator
    • How to make requests and populate affordances
    • Security in a native environment
  • Pressables and Buttons
    • The Button API
    • Button events and props
    • Why touchables?
    • Pressables
    • Why work with Pressables
    • How to work with Pressables
  • List Components
    • Components review
    • Pickers
    • FlatList
    • SectionList