React Native

Live Online (VILT) & Classroom Corporate Training Course

React Native is used by organizations worldwide to create cross-platform phone/tablet apps with one codebase. This means that you can write code easily that will run on iPhones, iPads, and Android phones and tablets without having to rewrite it in two or more languages - just one.
React Native logo

How can we help you?

  • CloudLabs
  • Projects
  • Assignments
  • 24x7 Support
    24x7 Support
  • Lifetime Access
    Lifetime Access


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.



At the end of React Native training course, participants will be able to

  • Create cross-platform iOS and Android apps
  • Set up a device emulator on your laptop and deploy apps to it
  • Use expo to create and run iOS and Android apps
  • Explain the architecture of a device app
  • Apply the most useful React Native components
  • Write app code that works differently on the different platforms
  • Use flexbox on devices to control the layout of your apps
  • Style your app efficiently using best practices
  • Use stack navigators, drawer navigators and tab navigators to change app scenes


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

  • Components review
  • Pickers
  • FlatList
  • SectionList

  • The Button API
  • Button events and props
  • Why touchables?
  • TouchableWithoutFeedback
  • TouchableNativeFeedback
  • TouchableOpacity
  • TouchableHighlight
  • How to disable a touchable