关于 expo-expert
expo-expert 是一套 Expo 与 React Native 应用开发参考技能,涵盖 Development Build、原生模块和 EAS。它面向采用 Expo 工作流的开发者,内容涉及路由、本地持久化、构建、提交与 OTA 更新。
主要功能
- 01Development Build 工作流指引
- 02Swift 与 Kotlin 原生模块模式
- 03EAS Build、Submit 与 Update 指引
- 04Expo Router 文件路由
- 05SQLite 与文件系统持久化
- 06故障排查与反模式指引
适用场景
- 01配置自定义原生开发构建
- 02使用 Expo Modules SDK 编写原生模块
- 03管理移动应用构建与 OTA 更新
- 04选择本地存储和路由模式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ raintree-technology/ claude-starter --skill expo-expert安装后在 Claude Code 中输入/expo-expert确认已加载。
详细介绍
Expo 专家(标准版 2026)
角色: Expo 专家是现代、可扩展移动基础设施的架构师。到了 2026 年,Expo 已全面转向 Development Build 模式,不再需要“Eject”。本技能专注于 Expo Modules SDK、EAS(Expo Application Services),以及在完全遵循类托管工作流的同时运用原生功能。
🎯 主要目标
- 精通现代工作流: 使用
expo-dev-client编写自定义原生代码,同时不离开 Expo 生态系统。 - 原生模块工程: 使用 Expo Modules SDK(Swift/Kotlin)构建高性能原生桥接。
- EAS 编排: 使用 EAS Build、Submit 和 Update(OTA)管理 CI/CD 流水线。
- 本地智能: 使用 Expo SQLite 实现持久化存储,并管理原生文件系统。
🏗️ 2026 年 Expo 工具集
1. 核心服务
- Expo SDK 55: 要求使用 React Native 新架构。
- Expo Router 4+: 基于文件的路由,支持静态类型和自动深度链接。
- EAS Build: 基于云端生成 iOS 和 Android 二进制文件。
2. 专用 SDK
- Expo Modules SDK: 编写现代原生模块的标准。
- Expo Image: 支持 blurhash 的高保真图像加载。
- Expo SQLite: 本地数据库,全面支持
localStorageAPI。
🛠️ 实现模式
1. Expo 模块(Swift/Kotlin)
2026 年通过“DSL”方式编写原生代码,比旧版 Bridge 更安全、更快捷。
// ios/MyModule.swift
import ExpoModulesCore
public class MyModule: Module {
public function definition() -> ModuleDefinition {
Name("MyModule")
Function("hello") { (name: String) -> String in
return "Hello \(name) from Native!"
}
}
}
2. Expo Router(基于文件的导航)
根据文件系统自动生成路由。
// app/user/[id].tsx
import { useLocalSearchParams } from 'expo-router';
export default function UserPage() {
const { id } = useLocalSearchParams();
return <Text>User ID: {id}</Text>;
}
3. EAS Update(OTA)
无需经过 App Store 审核,即可在几分钟内部署关键 Bug 修复。
eas update --branch production --message "Fix: Hydration error in Checkout"
🚫 “禁止事项”(反模式)
- 绝不“Eject”(可以使用 npx expo prebuild,但除非确有必要,否则不要提交
ios/android文件夹)。 - 绝不在
Expo Router能满足需求时使用react-native-navigation。 - 绝不在
AsyncStorage中存储大型数据块。请使用Expo SQLite或File System。 - 绝不在
app.json配置中执行繁重操作。复杂的原生修改请使用 Config Plugins。
🛠️ 故障排查与基础设施
| 问题 | 可能原因 | 2026 年的纠正措施 |
|---|---|---|
| 缺少原生模块 | 使用 Go/Prebuilt Expo Go | 使用 eas build --profile development 创建 Development Build。 |
| 构建失败(EAS) | 库缺少 Config Plugin | 检查 app.json 中的 plugins,并在本地运行 npx expo prebuild 进行调试。 |
| OTA 更新过期 | 更新清单缓存 | 使用 expo-updates API,在应用启动时强制重新检查。 |
| Android 全面屏显示 | 系统 UI 与 SDK 55 不兼容 | 使用 expo-system-ui 强制采用一致的状态栏行为。 |
📚 参考资料库
- 现代 Expo 工作流: Development Build 和 Prebuild。
- 原生模块与插件: 扩展 SDK。
- 本地数据与持久化: SQLite 和 File System。
📊 质量指标
- 构建成功率: EAS 上 > 95%。
- OTA 成功率: > 99%。
- 原生崩溃率: < 0.1%。
🔄 从 SDK 48 到 55 的演进
- SDK 50: 默认引入 Dev Client。
- SDK 52: Expo Router 成为标准。
- SDK 54: iOS 上的预编译 RN,支持“Liquid Glass”。
- SDK 55: 强制采用新架构,支持预测性返回手势。
Expo Expert Standard 结束(v1.1.0)
评论
支持 Markdown