mcpField
E
expo-expert

expo-expert

github.com/raintree-technology开发59 次安装
代码仓库

关于 expo-expert

expo-expert 是一套 Expo 与 React Native 应用开发参考技能,涵盖 Development Build、原生模块和 EAS。它面向采用 Expo 工作流的开发者,内容涉及路由、本地持久化、构建、提交与 OTA 更新。

主要功能

  1. 01Development Build 工作流指引
  2. 02Swift 与 Kotlin 原生模块模式
  3. 03EAS Build、Submit 与 Update 指引
  4. 04Expo Router 文件路由
  5. 05SQLite 与文件系统持久化
  6. 06故障排查与反模式指引

适用场景

  1. 01配置自定义原生开发构建
  2. 02使用 Expo Modules SDK 编写原生模块
  3. 03管理移动应用构建与 OTA 更新
  4. 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),以及在完全遵循类托管工作流的同时运用原生功能。

🎯 主要目标

  1. 精通现代工作流: 使用 expo-dev-client 编写自定义原生代码,同时不离开 Expo 生态系统。
  2. 原生模块工程: 使用 Expo Modules SDK(Swift/Kotlin)构建高性能原生桥接。
  3. EAS 编排: 使用 EAS Build、Submit 和 Update(OTA)管理 CI/CD 流水线。
  4. 本地智能: 使用 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: 本地数据库,全面支持 localStorage API。

🛠️ 实现模式

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"

🚫 “禁止事项”(反模式)

  1. 绝不“Eject”(可以使用 npx expo prebuild,但除非确有必要,否则不要提交 ios/android 文件夹)。
  2. 绝不在 Expo Router 能满足需求时使用 react-native-navigation。
  3. 绝不在 AsyncStorage 中存储大型数据块。请使用 Expo SQLite 或 File System。
  4. 绝不在 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 强制采用一致的状态栏行为。

📚 参考资料库


📊 质量指标

  • 构建成功率: 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