ScriptsApr 11, 2026·1 min read

Expo — Universal Native Apps for iOS, Android & Web

Expo is an open-source framework and platform for making universal React Native apps. Ship to iOS, Android, and web from one codebase — OTA updates, managed workflow, EAS Build cloud service, and 100+ prebuilt native modules.

SC
Script Depot · Community
Quick Use

Use it first, then decide how deep to go

This block should tell both the user and the agent what to copy, install, and apply first.

npx create-expo-app@latest my-app
cd my-app
npm start      # Metro bundler + QR code

Scan the QR with Expo Go app on your phone, or run:

npm run ios      # iOS simulator
npm run android  # Android emulator
npm run web      # Browser

A component:

import { Text, View, Button } from "react-native";
import * as Haptics from "expo-haptics";

export default function App() {
  return (
    <View style={{ flex: 1, justifyContent: "center" }}>
      <Text>Hello from Expo</Text>
      <Button
        title="Haptic!"
        onPress={() => Haptics.impactAsync()}
      />
    </View>
  );
}
Intro

Expo is an open-source framework and platform for universal React Native apps. Makes React Native development 10x easier: no Xcode/Android Studio setup required, OTA updates, cloud builds (EAS), and 100+ prebuilt native modules.

What Expo Does

  • Managed workflow — develop without touching native code
  • Expo Go app — preview on device via QR code
  • EAS Build — cloud-build iOS/Android binaries
  • EAS Submit — submit to App Store/Play Store
  • EAS Update — OTA JS updates (skip store review)
  • Expo Router — file-based routing (like Next.js)
  • 100+ modules — camera, notifications, location, sensors, biometrics
  • Web support — same code runs in browser via react-native-web

Architecture

Expo sits on top of React Native. Managed workflow uses expo prebuild to generate native projects on demand. Bare workflow exposes full native access. Expo Router uses file-system routing with shared layouts.

Self-Hosting

CLI is free and open source. EAS (build/submit/update) is a paid SaaS with free tier. You can self-host EAS Update via expo-updates + your own CDN.

Key Features

  • File-based routing (Expo Router)
  • Hot reload on device
  • OTA updates (EAS Update)
  • Cloud builds (EAS Build)
  • Web support (react-native-web)
  • 100+ first-party modules
  • TypeScript-first templates
  • Dev Client for native testing

Comparison

Framework Approach Native Access Cloud Build
Expo Managed + bare Full (prebuild) EAS
Bare RN Manual Full Manual
Flutter Dart + Skia Full Codemagic
Capacitor Web in WebView Plugin Ionic Hub

常见问题 FAQ

Q: Expo vs Bare React Native? A: Expo 是默认推荐。Bare 只在需要深度原生定制(自定义 ObjC/Swift/Java/Kotlin 代码)时选择。

Q: 支持 Web 吗? A: 支持。同一套代码通过 react-native-web 在浏览器运行。适合中后台 + App 同构。

Q: EAS 贵吗? A: 免费层够小团队用(每月 30 次 Build、无限 Update)。商业项目 $19/月 起。

来源与致谢 Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets