Overview
In this React Native training class, attendees learn how to use React Native to create cross-platform native apps quickly and easily. In addition, participants learn best practices to consume RESTful data from a NodeJS/Express server and present it to the user in a multi-screen, interactive app.
Objectives
At the end of React Native training course, participants will be able to
Prerequisites
All attendees must have a very strong grasp of React, Redux and advanced JavaScript.
Course Outline
- 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
- 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
- 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
- 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
- Components review
- View
- SafeAreaView
- ScrollView
- Pinch-to-zoom
- KeyboardAvoidingView
- How to create modal views
- Controlling the OS’s status bar
- 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
- 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
- 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
- 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
- The Button API
- Button events and props
- Why touchables?
- TouchableWithoutFeedback
- TouchableNativeFeedback
- TouchableOpacity
- TouchableHighlight
- How to disable a touchable