React Native cheat sheet

A scannable React Native reference: 6 short snippets across 5 topics, each linking back to the lesson it came from.

At a glance

TopicWhat it covers
Setup and your first screenReact Native does not render HTML. Your JavaScript describes a tree of host components, and the runtime translates thatlesson
Navigation, native modules and ExpoThe community standard is React Navigation. A native stack uses the platform's own navigation controller, solesson
Performance optimisationMeasure startup with a custom trace rather than by feel. Time from process start to the first interactive frame, andlesson
Building and releasing with EAS and FastlanePublish updates in stages. A rollout to a small channel first, then to everyone, means a bad JavaScript change reacheslesson
Expo Router, monorepos and the wider ecosystemMetro needs to resolve symlinked workspace packages and, in the New Architecture, which native module is registeredlesson

Quick snippets

Setup and your first screen

Creating a project

# Community CLI: full control over the native projects
npx @react-native-community/cli@latest init Notes --version latest
cd Notes
npx react-native run-android
npx react-native run-ios

# or start with Expo, which manages the native side for you
npx create-expo-app@latest Notes --template blank-typescript
npx expo start

Full lesson: Setup and your first screen →

Navigation, native modules and Expo

Native modules

# most packages are autolinked: install, then rebuild the native app
npm install react-native-mmkv
npx pod-install ios
npx react-native run-android

# permissions still have to be declared natively
# android/app/src/main/AndroidManifest.xml
#   <uses-permission android:name="android.permission.CAMERA" />
# ios/Notes/Info.plist
#   <key>NSCameraUsageDescription</key><string>Scan receipts</string>

Full lesson: Navigation, native modules and Expo →

Performance optimisation

Hermes and startup cost

// metro.config.js: defer expensive modules until they are used
module.exports = {
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: true,
      },
    }),
  },
};

Full lesson: Performance optimisation →

Building and releasing with EAS and Fastlane

Configuration and signing

eas build:configure
eas credentials                 # let EAS manage or upload your own keys

eas build --platform ios --profile production
eas build --platform android --profile production
eas submit --platform ios --latest
eas submit --platform android --latest --track internal

Over-the-air updates

# publish a JS-only fix to the production channel
eas update --branch production --message "Fix currency rounding"

# roll back to the previous update on that branch
eas update:rollback --branch production --message "Reverting bad release"

Full lesson: Building and releasing with EAS and Fastlane →

Expo Router, monorepos and the wider ecosystem

Choosing dependencies and growing a team

// scripts/check-deps.mjs: fail CI on a dependency that is not approved
import { readFileSync } from 'node:fs';

const approved = new Set(JSON.parse(readFileSync('approved-deps.json', 'utf8')));
const pkg = JSON.parse(readFileSync('package.json', 'utf8'));
const used = Object.keys({ ...pkg.dependencies, ...pkg.devDependencies });

const unapproved = used.filter((name) => !approved.has(name));
if (unapproved.length) {
  console.error('Unapproved dependencies:', unapproved.join(', '));
  process.exit(1);
}

Full lesson: Expo Router, monorepos and the wider ecosystem →

FAQ

Is this React Native cheat sheet free to use?
Yes. No sign-up and no tracking: the page is static, every example is on the page itself, and you can print it or save it as a one-page reference.
Where do the examples come from?
Every snippet is taken from the 5 lessons of the React Native course on this site, and each section links back to the lesson it was pulled from.
How do I go deeper than a cheat sheet?
Open the full React Native course — it carries the worked explanations, the edge cases and the exercises behind every line here.

Android iOS Flutter Kotlin Swift

Last refreshed 2026-09-27.