1. 基本信息
| 项目 | 内容 | 数据来源 |
|---|---|---|
| 名称 | expo-ui-expo-skills | — |
| 作者/维护者 | Expo 官方团队(expo/skills 官方仓库) |
GitHub API |
| 来源链接 | https://github.com/expo/skills/tree/main/plugins/expo/skills/expo-ui | — |
| 许可证 | MIT(仓库根 LICENSE 与 SKILL.md 均声明) | GitHub API + SKILL.md |
| GitHub Stars / Forks | 所属仓库 2,345★ / 122 forks(该数字属整个合集仓库,不代表本子技能个体热度;子技能自身证据见第 6 章) | GitHub API |
| 最新版本 | SKILL.md 声明 1.0.0;最近一次专属改动提交于 2026-07-22 | GitHub API(commits)+ SKILL.md |
| 安装方式 | Claude Code / Codex 官方插件市场一条命令,或通用 skills CLI |
仓库 README |
2. 功能介绍与亮点
expo-ui 教 Agent 使用 @expo/ui 包,在 Expo / React Native 应用里渲染真正的原生 UI——iOS 上是真实 SwiftUI,Android 上是真实 Jetpack Compose,而不是用 JS 组件模拟原生外观。核心覆盖:
- 分层选型指南:优先使用一套代码通吃 iOS / Android / Web 的通用组件层(
Host、Column、Row、Button、List等);通用层覆盖不到时才下沉到@expo/ui/swift-ui(仅 iOS)或@expo/ui/jetpack-compose(仅 Android)平台专属层,文档明确给出每层的取舍标准与常见运行时报错原因。 - 社区库迁移路径:提供
@gorhom/bottom-sheet、@react-native-community/datetimepicker等热门第三方 UI 库的 API 兼容替换方案,降低迁移成本。 - 配套脚本:内置
list-components.js,可扫描项目里已安装的@expo/ui版本并列出可用组件/修饰符清单,辅助 Agent 生成正确代码。 - 官方反馈闭环:技能内建
submit-expo-feedback命令,供 Agent 在发现文档过时或有误时向 Expo 团队提交具体反馈。
亮点:该技能是 expo/skills(Expo 官方 AI Agent 技能合集)中投入最集中的条目之一——过去两个月内由至少 5 位不同贡献者(含 Expo 联合创始人 brentvatne)持续提交实质性改动,同一目录曾发生过一次结构重组(将拆分的 SwiftUI / Jetpack Compose 子技能合并为统一的 expo-ui),并配有专门的 CI 技能质量评测流水线(expo-skill-eval)。
3. 适用场景
固定分类:前端与设计。
面向用 Expo / React Native 开发原生风格移动应用的开发者,在标准 RN 组件无法呈现原生外观(设置表单、菜单、滑块等)时用于构建真正原生的 SwiftUI/Compose 界面。
4. 跨 Agent 兼容性
- Claude Code:✅ 原生支持——官方插件市场一条命令
/plugin install expo@claude-plugins-official即可安装含本技能在内的整个 expo 插件。 - Codex:✅ 原生支持——官方
openai-curated插件市场提供codex plugin add expo@openai-curated,或在 Codex 内/plugins面板安装。 - OpenClaw:❓ 未验证——官方文档未点名,仅提供通用
skillsCLI 安装方式,理论上因遵循标准 SKILL.md 格式而可用,但无官方声明。 - Hermes Agent:❓ 未验证——同上。
5. 推荐理由
Expo 官方出品,教 Agent 用 @expo/ui 渲染真正原生的 SwiftUI/Jetpack Compose 界面,而非 JS 模拟的近似原生外观;覆盖组件选型、社区库迁移、配套校验脚本一整套实操路径,是目前该技能合集里维护投入最集中的条目之一,适合任何在做 Expo/React Native 原生质感界面开发的团队直接采用。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | 所属合集仓库 2,345★ 不代表本子技能个体热度,改看子目录自身证据:过去两个月内 5 位不同贡献者(含 Expo 联合创始人 brentvatne)持续提交实质性改动;GitHub Issue 中另有 mattr、vladcristianmarin、lorenc-tomasz 等外部开发者就该技能覆盖的原生组件文档报告过具体问题并获得核心团队响应 |
| 可用性 | 9 | 三条官方安装路径(Claude Code / Codex 插件市场、通用 skills CLI)均一条命令可达;SKILL.md 结构清晰、含分层决策指南与可运行安装命令,配套 4 份专题参考文档;近一周内仍有提交,维护频率接近每日;纯开源框架层技能,不依赖任何付费服务 |
| 安全性 | 9 | 检查清单详见下表 |
安全检查清单:
- ① 是否执行 shell 命令及权限范围:
allowed-tools显式白名单仅放行node list-components.js,功能是只读扫描本地node_modules内已安装的包版本与组件清单,不写入、不外联 - ② 运行时是否联网外发数据:技能本身不自动联网;仓库整体的匿名遥测默认关闭(Claude Code 场景下需用户主动开启),开启后仅上报技能名/平台/随机安装 ID 哈希,不含代码、提示词或文件路径;反馈提交脚本需 Agent 主动调用且内容由使用者决定
- ③ 是否要求 API key/凭据及其存储方式:不涉及
- ④ SKILL.md 与附带脚本中有无可疑指令:逐行审阅 SKILL.md 与
list-components.js全文,未见混淆代码或 prompt injection 迹象 - ⑤ 作者/组织信誉:Expo 官方团队,React Native 生态知名工具厂商,仓库徽章标注 “Official Expo”
- ⑥ License 是否明确:明确,MIT
- ⑦ 最近维护时间:非常活跃,最近一次提交在 2026-07-22,仓库整体在 2026-07-30 仍有推送
7. 跟同类 Skills 相比的优势
| 对比对象 | 定位 | 与本技能的差异 |
|---|---|---|
| react-native-paper(14,431★) | Material Design 风格的 JS 组件库 | 组件由 JS 渲染模拟原生外观,非真实原生控件;expo-ui 直接调用平台原生渲染引擎(SwiftUI / Jetpack Compose),视觉与交互行为与系统原生应用完全一致 |
| Tamagui(14,107★) | 编译期优化的跨平台样式框架 + UI kit | 走“一套代码统一编译、多端复用”路线,牺牲部分平台专属细节换取开发效率;expo-ui 走“通用层优先、平台专属层兜底”路线,复杂交互组件可直接落到真实原生控件 |
| expo-native-ui(同仓库姊妹技能) | 原生质感的样式与视效指南(色彩、动效、SF Symbols 等) | 解决“如何让界面看起来原生”(样式层);expo-ui 解决“如何渲染出真正原生的组件树”(渲染层),两者互补、常配合使用 |
8. 用户评价
该技能目前在第三方平台尚无具名用户评价文本。可查证的第三方技术互动来自 GitHub:多位外部开发者(如 mattr、vladcristianmarin)曾就该技能所覆盖的原生 UI 组件文档提交过具体问题报告,Expo 核心团队与外部贡献者均有实质性响应与后续改进提交。
9. 其他补充
同仓库内还有 expo-router、expo-native-ui、expo-data-fetching 等十余个免费开源技能,以及基于付费 EAS 服务的 eas-workflows、eas-app-stores 等技能,二者在 README 中以“Framework(免费)“与”Services(付费)“分组标注,边界清晰。仓库另提供 expo-experiments 插件收录尚未定型的实验性技能。
10. 安装使用方式
方式一:Claude Code 插件市场(推荐)
/plugin install expo@claude-plugins-official
方式二:Codex 插件市场
codex plugin add expo@openai-curated
或在 Codex 内打开 /plugins 面板选择 openai-curated 市场下的 expo。
方式三:通用 skills CLI(Cursor、OpenCode、GitHub Copilot、Windsurf 等)
npx skills add expo/skills
CLI 会交互式询问安装到哪个 Agent 目录;也可按需只勾选 expo-ui 单个技能。
安装后无需重启,Agent 会根据 SKILL.md 的 description 字段在涉及原生 UI 组件、SwiftUI/Jetpack Compose 开发的对话中自动匹配加载。
11. 注意事项
- 通用组件层要求 Expo SDK 56 及以上;SDK 55 仅支持社区库替换层与平台专属层,使用前需确认项目 SDK 版本。
- 平台专属层(
@expo/ui/swift-ui、@expo/ui/jetpack-compose)互不兼容,在跨平台共用文件中混用会在运行时报错,需按.ios.tsx/.android.tsx拆分或用Platform.OS守卫。 - OpenClaw、Hermes Agent 暂无官方兼容性声明,实际可用性以自测为准。
- 技能覆盖的是
@expo/ui组件库本身;路由导航、动画、数据请求等需求需配合同仓库的 expo-router、expo-native-ui、expo-data-fetching 等其他技能使用。