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
讨论
相关资产
Fluentd — Unified Logging Layer for Cloud-Native Infrastructure
Fluentd is a CNCF-graduated open-source data collector that unifies log collection and routing. With 1000+ plugins, it connects any source to any destination — the standard log layer for Kubernetes alongside Fluent Bit.
Gatsby — React-Based Framework for Performant Static Sites
Gatsby is a React-based open-source framework for building fast, secure websites and apps. It combines static site generation with dynamic capabilities, pulling data from any source via GraphQL.
RSSHub — Universal RSS Feed Generator for Any Website
Self-hosted RSS feed generator that creates RSS feeds from virtually any website, supporting hundreds of sources including social media, news, and developer platforms.
OpenControl — Universal Control Plane for AI Agents
SST team's universal control-plane MCP server exposing AWS / Cloudflare / Vercel infra to AI agents in natural language. Audit-logged, scoped.