Mobile

Expo

A platform and toolset on top of React Native: quick start, ready modules, cloud builds and updates.

What it is

Expo appeared in 2015 and is now the recommended way to start a React Native project. It adds the Expo SDK (camera, files, notifications, sensors), Expo Router for file-based routing and Expo Go for quick on-device preview.

EAS (Expo Application Services) builds apps in the cloud, submits them to the App Store and Google Play, and delivers JS updates without a new release (EAS Update). Custom native code is supported through development builds and config plugins.

Expo reduces the need to open Xcode and Android Studio. That makes it a good fit for teams that want to reach mobile platforms quickly.

Use it when

  • A new React Native app: it is the default choice.
  • You have no Mac or native build experience but need to ship to both stores.
  • You need quick updates without store review (for JS changes).

Avoid it when

  • The app is not on React Native at all.
  • Paid EAS cloud builds do not fit and you want fully custom CI (possible, but takes effort).

Key concepts

Expo SDK
A set of modules for camera, notifications, files, biometrics.
Expo Router
File-based routing on top of React Navigation for native and web apps.
EAS Build / Submit
Cloud builds of binaries and submission to stores.
EAS Update
Over-the-air updates of JS code and assets.
Development build
A custom version of Expo Go with your native modules.

Example

A home screen with Expo Router navigation.

Interview questions

  1. 1. How does Expo differ from bare React Native?

    Expo provides an SDK, routing, build and update tooling. In the bare approach you configure native projects yourself. The gap is smaller today because Expo supports custom native code.

  2. 2. What is EAS Update?

    A service that delivers JS and asset updates straight to devices without a new store release. Native changes still require a new build.

  3. 3. What is Expo Go and why is it not enough for production?

    Expo Go is a ready app for previewing a project quickly. It only includes built-in modules, so custom native libraries need a development build.

  4. 4. What is a config plugin?

    A script that modifies native projects (Info.plist, AndroidManifest) during prebuild so a library is wired in without manual edits.

Logos belong to their owners and are used for identification only. Icons: Simple Icons (CC0), Devicon (MIT).