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.
Agent 可直接安装
这个资产可安装;Agent 先选择当前运行时、检查安装计划,再运行匹配命令。
npx -y tokrepo@latest install ee9542c4-3577-11f1-9bc6-00163e2b0d79 --target codex先 dry-run 确认安装计划,再运行此命令。
What it is
Expo is an open-source framework and platform built on top of React Native. It lets you build native mobile apps for iOS and Android, plus web apps, all from a single JavaScript/TypeScript codebase. Expo provides a managed workflow with over 100 prebuilt native modules, an OTA (over-the-air) update system, and the EAS Build cloud service for compiling native binaries without local Xcode or Android Studio setups.
Expo targets mobile developers, startup teams, and frontend engineers who want to ship cross-platform apps without managing native build toolchains directly.
How it saves time or tokens
Expo's managed workflow eliminates the need to configure Xcode, Gradle, and native module linking manually. The EAS Build service compiles your app in the cloud, cutting local build times to zero. OTA updates let you push JavaScript changes instantly without going through App Store review cycles. For teams, this means faster iteration and fewer native build failures.
The Expo SDK bundles common native APIs (camera, file system, notifications, maps) as drop-in modules, saving days of native integration work per feature.
How to use
- Install the Expo CLI:
npx create-expo-app my-appto scaffold a new project. Runnpx expo startto launch the development server. - Write your app using React Native components and Expo SDK modules. Use Expo Go on your phone to preview changes instantly without compiling.
- Build for production with
eas build --platform all. Submit to app stores witheas submitor push OTA updates witheas update.
Example
import { Camera, CameraView } from 'expo-camera';
import { useState } from 'react';
import { Button, View } from 'react-native';
export default function CameraScreen() {
const [permission, requestPermission] = Camera.useCameraPermissions();
if (!permission?.granted) {
return <Button title='Grant Camera Access' onPress={requestPermission} />;
}
return (
<View style={{ flex: 1 }}>
<CameraView style={{ flex: 1 }} facing='back' />
</View>
);
}
This component uses the Expo Camera module. No native linking or pod install required.
Related on TokRepo
- AI tools for coding — AI-assisted development tools for faster app building
- Automation tools — CI/CD and build automation for deployment pipelines
Common pitfalls
- Expo Go does not support all native modules. If you need a custom native module not in the Expo SDK, you must use a development build or eject to the bare workflow.
- EAS Build is free for limited builds per month. High-volume teams need a paid plan for faster queue times and more build slots.
- OTA updates only apply to JavaScript bundle changes. Native binary changes (new native modules, SDK version bumps) still require a full app store submission.
常见问题
Yes. Expo supports a bare workflow where you add Expo modules to an existing React Native project incrementally. You do not need to start from scratch. The `npx install-expo-modules` command adds Expo support to any React Native app.
The Expo framework and SDK are fully free and open source. EAS Build and EAS Update have free tiers with limited builds and updates per month. Paid plans add faster build queues, more concurrent builds, and priority support.
Yes. Expo for Web uses React Native for Web under the hood. Most Expo SDK modules work on web, though some hardware-specific APIs (NFC, Bluetooth) are mobile-only. You can deploy the web output to any static hosting service.
EAS Update pushes a new JavaScript bundle to your app without going through the App Store or Google Play review. When users open the app, it downloads the latest bundle in the background. Native binary changes still require a store submission.
Expo SDK includes over 100 modules: camera, file system, notifications, location, maps, authentication, haptics, sensors, audio, video, SQLite, and more. Each module is installed individually with npx expo install.
引用来源 (3)
- Expo GitHub— Expo provides over 100 prebuilt native modules and OTA updates
- Expo Documentation— EAS Build compiles native binaries in the cloud
- Expo Web Docs— Expo for Web uses React Native for Web
讨论
相关资产
BeeWare Toga — Native Cross-Platform GUI Apps in Python
Write native desktop and mobile applications in pure Python that render with platform-native widgets on macOS, Windows, Linux, iOS, Android, and the web.
.NET MAUI — Build Native Cross-Platform Apps with C# and XAML
The .NET Multi-platform App UI framework for building native mobile and desktop apps for Android, iOS, macOS, and Windows from a single C# and XAML codebase.
React Native — Build Native Mobile Apps with React
React Native is the leading framework for building native iOS and Android apps using React. Write once in JavaScript/TypeScript, get truly native mobile apps — not webviews — with shared business logic and platform-specific UI when needed.
NativeScript — Build Truly Native iOS and Android Apps with JavaScript or TypeScript
NativeScript lets you build iOS and Android apps with one JavaScript/TypeScript codebase that renders to native UI widgets (not WebView). Direct access to every iOS and Android API from JS.