React Native Course: Build Mobile Apps with Expo

Mobile Apps with React Native is an intermediate-level course of 5 lessons (about 1 h 30 min), with 15 exercises and 15 quiz questions. Prerequisites: React. The course needs a full project environment, planned for a later phase of the platform.

  • Mobile
  • Intermediate
  • 5 lessons
  • 1 h 30 min
  • 15 exercises
  • Full project environment (phase 2)

The course in brief

This course teaches you how to turn your React skills into native mobile apps for iOS and Android with React Native and Expo. You will build screens with native components, organize navigation with Expo Router, load and store data with offline mode in mind, access phone features while respecting permissions, and then prepare for publication. The app's logic is tested automatically in JavaScript and the screens are built in guided tasks.

What you will be able to do

  • Build mobile screens with native components, StyleSheet and Flexbox
  • Organize stack and tab navigation with Expo Router and display performant lists
  • Load remote data, cache it locally and handle offline mode
  • Store preferences and secrets with the right mechanism (AsyncStorage, SecureStore)
  • Access location, photos and notifications while handling permissions and denials
  • Configure, build and prepare an app for publication with EAS

Syllabus: 5 lessons

    • Create a React Native project with Expo and run it on a phone or an emulator
    • Build a screen with the native components View, Text, Image, TextInput and Pressable
    • Lay out a screen with StyleSheet and Flexbox, accounting for the differences from web CSS

    Native componentsStyleSheet and FlexboxExpo

  1. 02

    Lists and Navigation Between Screens

    18 min
    • Display long, performant lists with FlatList
    • Organize screens with Expo Router: stack, tabs and route parameters
    • Navigate between screens and go back, understanding the navigation stack

    FlatListNavigationExpo Router

  2. 03

    Networking, Local Storage and Offline Mode

    20 min
    • Call an API with fetch, handling loading, errors and cancellation
    • Store data locally with AsyncStorage and secrets with SecureStore
    • Design offline behavior: local cache and a queue of deferred sends

    Network callsAsyncStorageSecure storageOffline mode

  3. 04

    Accessing the Phone: Permissions, Location, Photos, Notifications

    18 min
    • Request a permission at the right time and handle every possible response
    • Use location, the gallery or the camera with Expo modules
    • Adapt behavior per platform and open settings or other apps

    PermissionsLocation and cameraNotifications

  4. 05

    Preparing and Publishing the App

    16 min
    • Configure the app's identity: name, identifiers, icon, version and build number
    • Produce test and production builds with EAS Build and profiles
    • Know the principles of publishing and updating on app stores

    App configurationEAS BuildPublishing a React Native app

Final project

Mobile Shop App with Offline Mode

Build a shop app with React Native and Expo: Catalog and Account tabs, a product list in a FlatList with refresh, a product page by identifier, a persistent cart, a catalog displayed from the offline cache, the authentication token in SecureStore, a nearest-shop search with complete permission handling, and an installable test build produced with EAS.

Deliverables

  • The Expo project's source code (src/app/, src/components/, src/lib/)
  • The pure functions (navigation stack, cache, offline queue, permissions, version) with their tests
  • The app.json or app.config.ts file and eas.json with the profiles
  • An installable preview build (EAS link or APK)
  • A short publication sheet: description, collected data, justification of permissions
  • A README explaining the architecture and the offline behavior

Assessment criteria

  • Screens faithful to mobile conventions (safe areas, back navigation, sufficient touch targets, accessibility)
  • Performant lists and consistent navigation (push, replace, tabs)
  • Data displayed offline and sends not lost
  • Secrets in SecureStore and no secret key in the code
  • Permissions requested in context, with a fallback on refusal
  • Correct publication configuration (identifier, version, build number)

Frequently asked questions

Do I need to know React to take this course?

Yes. The React course is the prerequisite: components, props, state, effects and hooks are reused as-is in React Native. This course focuses on what changes on mobile.

Do I need a Mac to develop an iOS app?

To learn, no: the Expo Go app lets you test on an iPhone, and EAS Build can compile the iOS app in the cloud. The iOS simulator, however, requires a Mac.

Why use Expo?

Expo is the framework recommended by the React Native documentation to get started: it simplifies project creation, testing on a phone, access to native features and building.

Does the course explain how to publish to the app stores?

It covers the principles: app identity, versions, signing, test and production builds, review rules and updates. Account procedures and store terms should be checked with Apple and Google.

This course, told for your job

Say what you want to be able to do: “Mobile Apps with React Native” takes its place in your path, with examples from your field. The concepts stay those of the course.

The preview is free, and you can take the courses one at a time without paying. The path only contains lessons from the catalogue.