Mobile Apps · MBC-19

Advanced React Native CLI

Advanced React Native CLI is an advanced course on the bare React Native CLI track, without Expo, covering Turbo Native Modules and Fabric components, performance tuning, offline-first data, push notifications, deep linking, testing and automated store releases with fastlane. It suits React Native developers who already build apps and teams who work alongside Kotlin or Swift code.

Updated
From 7,650 THB / person 8,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration18 hours · 3 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

React Native apps used in real organisations usually need more than screens and API calls. They call device features that no library supports yet, wrap existing native views from the Android and iOS teams, fix slow screens and long start-up times, work without an internet connection, receive push notifications, open from links, and ship new versions to the stores regularly without manual builds. This work needs an understanding of both the JavaScript side and the Android and iOS projects behind it.

This new edition continues the React Native CLI track, without Expo, on React Native 0.87, which runs only on the New Architecture. Learners write Turbo Native Modules and Fabric Native Components through Codegen, measure and tune performance with Hermes V1 and profiling tools, build offline-first data, push notifications through Firebase Cloud Messaging and deep linking, write tests, and then create signed releases and a pipeline that ships apps to Google Play and the App Store with Gradle, Xcode and fastlane. (3 days, 6 hours per day, 18 hours in total, Advanced level.)

What you’ll gain

  • Explain the New Architecture, including JSI, Turbo Native Modules, Fabric and Codegen, and upgrade a project
  • Write Turbo Native Modules and Fabric Native Components in Kotlin and Objective-C++ or Swift
  • Measure and tune app performance with React Native DevTools, the Android Studio Profiler and Instruments
  • Build offline-first data, push notifications and deep linking in a React Native CLI project
  • Write unit and end-to-end tests and set up build variants for each environment
  • Create signed releases and a pipeline that ships apps to Google Play and the App Store with fastlane

Who this course is for

  • React Native developers who already build apps with the React Native CLI and want production-grade apps
  • Teams who need to connect a React Native app to existing Kotlin or Swift code
  • Android or iOS developers who work with a React Native team
  • Teams who want automated builds and store releases

Prerequisites

  • Able to build an app with the React Native CLI, including navigation, state and API calls
  • Confident with TypeScript
  • Have opened a project in Android Studio or Xcode and can read basic Kotlin or Swift
  • Comfortable with Git and the command line

Curriculum

Course Details

This course is the 2026 edition of Advanced React Native, set as the advanced course of the React Native CLI track that follows Basic React Native for React Developers. Unlike Advanced React Native with Expo, which uses Expo, EAS and the Expo Modules API, this course does not use Expo. It works directly with the Android and iOS projects, has you write your own Turbo Native Modules and Fabric

Native Components, and builds with Gradle, Xcode and fastlane. It is updated for React Native 0.87 and runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures alternating with labs. Advanced level. Day one covers the New Architecture and native code, day two performance, offline data, push notifications and deep linking, and day three testing, signed releases and CI with fastlane.

Day 1 The New Architecture and Native Code

Section 1: Lab: The New Architecture in Depth and Upgrading Projects

  • How JSI, Turbo Native Modules, Fabric and Codegen work together
  • New Architecture only since 0.82, and what that means for older libraries
  • The Strict TypeScript API in 0.87 and the end of deep imports
  • Upgrade step by step with the React Native Upgrade Helper
  • Lab: upgrade a sample project and fix libraries that are not supported

Section 2: Lab: Your First Turbo Native Module

  • Write a TypeScript spec with a name starting with Native, and TurboModuleRegistry
  • Set up codegenConfig in package.json and run Codegen
  • Android: write a Kotlin class that extends the spec Codegen generates
  • iOS: implement it in Objective-C++ and register it through modulesProvider
  • Lab: a module that reads device information and storage space

Section 3: Lab: Advanced Native Modules

  • Promises, callbacks and returning errors from native code
  • Send events from native code back to JavaScript
  • Run heavy work on a background thread without blocking the UI
  • Overview of C++ Turbo Modules that share one codebase across platforms
  • Lab: a battery status module that sends real-time events

Section 4: Lab: Fabric Native Components

  • A spec with codegenNativeComponent in a file whose name ends in NativeComponent
  • Android: SimpleViewManager and the interface Codegen generates
  • iOS: RCTViewComponentView and updating props
  • Send events from the native view back to JavaScript
  • Lab: wrap an existing native view from your team for use in React Native

Section 5: Lab: Packaging Native Modules as a Library

  • Scaffold a library with create-react-native-library
  • Autolinking and sharing internal libraries through a private registry
  • Overview of experimental Swift Package Manager support
  • Lab: turn the earlier module into a library and install it in a new app
Day 2 Performance, Data and Notifications

Section 6: Lab: Measuring and Tuning Performance

  • Hermes V1 and bytecode in release builds
  • The Performance and Network panels in React Native DevTools
  • The Android Studio Profiler, Xcode Instruments and Perfetto
  • Shorten start-up time, tune FlatList and cut unnecessary re-renders
  • Lab: find and fix what makes a product list stutter

Section 7: Lab: Offline-First On-Device Data

  • Choose storage: MMKV for settings, and SQLite with op-sqlite for larger data
  • Check network status with NetInfo and queue pending changes
  • Sync when back online and handle conflicting data
  • Store tokens securely with the Keychain and Keystore
  • Lab: an order-taking app that works offline

Section 8: Lab: Push Notifications through FCM and APNs

  • Set up Firebase and an APNs key for iOS
  • Request permission with react-native-permissions, and POST_NOTIFICATIONS on Android 13 and later
  • Get the token and handle foreground and background messages with React Native Firebase
  • Test on real devices, because the iOS Simulator does not receive real pushes
  • Lab: notify users when an order status changes

Section 9: Lab: Local Notifications with a Native Module

  • Android: notification channels and NotificationManager
  • iOS: UNUserNotificationCenter and scheduled notifications
  • Wrap both platforms in a single Turbo Native Module
  • Lab: appointment reminders scheduled on the device

Section 10: Lab: Deep Linking, Universal Links and App Links

  • Custom URL schemes versus https links that open the app
  • Android App Links: intent filters and the assetlinks.json file
  • iOS Universal Links: Associated Domains and RCTLinkingManager
  • Configure linking in React Navigation 7 and open screens from notifications
  • Lab: an email link that opens the order detail screen in the app
Day 3 Testing, Release and CI

Section 11: Lab: Unit and End-to-End Tests

  • Jest with @react-native/jest-preset and React Native Testing Library
  • Mock your own native modules in tests
  • End-to-end tests with Detox on the emulator and simulator
  • Lab: a unit and end-to-end test suite for the ordering flow

Section 12: Lab: Build Variants and Environments

  • Android productFlavors and iOS schemes with build configurations
  • Separate application IDs, app names and icons for Dev, Staging and Production
  • Pass environment values into the app without putting secrets in the bundle
  • versionCode, versionName and build numbers
  • Lab: install Staging and Production side by side on one device

Section 13: Lab: Signed Releases for Google Play and the App Store

  • An upload key with keytool and signingConfigs in Gradle
  • Build an AAB and use Play App Signing with internal testing
  • iOS: the Release scheme, Archive and Distribute App to App Store Connect
  • Test through TestFlight and prepare the store listing
  • Lab: build a release and send it to a testing track

Section 14: Lab: CI, fastlane and Crash Monitoring

  • A fastlane lane for Android with gradle and upload_to_play_store
  • A fastlane lane for iOS with match, build_app and upload_to_testflight
  • Run the pipeline on GitHub Actions and keep secrets safe
  • Track crashes with Sentry and upload Hermes source maps
  • Lab: a pipeline that tests, builds and ships to testing tracks automatically

Section 15: Workshop: A Store-Ready App

  • Bring native modules, offline data, push and deep links together in one app
  • Measure performance and fix problems found on real devices
  • Run the test suite and pipeline through to a test build
  • Present your work, review the code and plan the next release

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

How does this course differ from Advanced React Native with Expo?

Advanced React Native with Expo uses Expo, Expo Router, EAS Build and EAS Update, which handle much of the native side for you. This course is the React Native CLI track without Expo and follows Basic React Native for React Developers. You work directly with the Android and iOS projects, write your own Turbo Native Modules and Fabric Native Components in Kotlin and Objective-C++, set up push notifications and deep linking in the native projects, and build and ship to the stores with Gradle, Xcode and fastlane. It suits teams with existing native code or who need to control the build process themselves.

What is a Turbo Native Module, and how does it differ from the old native modules?

A Turbo Native Module is how you write native code for JavaScript to call in the New Architecture. You start with a TypeScript spec, and Codegen generates typed glue code for Android and iOS, then you write the real implementation in Kotlin and Objective-C++. Calls go directly through JSI rather than through the old bridge, and modules load when they are needed. Since React Native 0.82, apps run only on the New Architecture, so new modules should be written this way.

What do I need to set up push notifications in a React Native CLI app?

You need a Firebase project for Firebase Cloud Messaging and, for iOS, an APNs key from your Apple Developer account. Install React Native Firebase in the project, ask the user for notification permission, which on Android 13 and later means requesting POST_NOTIFICATIONS yourself, then get the token, store it on your server and write handlers for messages in the foreground and in the background. Test on real devices, because the iOS Simulator does not receive real pushes.

Who is the Advanced React Native CLI course for, and what should I know beforehand?

It suits React Native developers who already build apps with the React Native CLI, teams who need to connect apps to existing Kotlin or Swift code, and Android or iOS developers who work with a React Native team. You should be able to handle navigation, state and API calls, be confident with TypeScript, have opened projects in Android Studio or Xcode and use Git. If you have not used the React Native CLI before, we recommend Basic React Native for React Developers first.

What will I be able to do after the Advanced React Native CLI course?

You will be able to write Turbo Native Modules and Fabric Native Components and package them as a library, measure and tune app performance with profiling tools, build offline-first apps, receive push notifications through FCM and APNs, add local notifications and deep linking, write unit and end-to-end tests, set up build variants, and create signed releases and a fastlane pipeline that ships to Google Play and the App Store. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

Can the Advanced React Native CLI course be run in-house for our team?

Yes. It can be run in-house for your team, with examples adapted to your own work, such as writing native modules from your team's existing native code or building a pipeline that matches how your app is released. You can request a quotation from this page, or contact us on LINE @itgenius or by phone on 02-570-8449.