开发与工程 exporeact-nativenative-uiswiftuijetpack-composecross-platform-uiiosandroid

Expo 原生 UI 构建助手

用 @expo/ui 在 Expo 中构建跨平台原生界面。

FollowSkills 评估 · FSRS-2.0
不推荐
59/ 100 五分制 3.0 / 5
信任安全20 / 25 · 4.0/5

技能将工具权限限制为运行指定的 Node 组件枚举脚本,未见凭据读取、隐蔽外传或破坏性默认操作;明确要求扩展本地模块前征得用户确认,并披露平台专属导入可能导致运行时崩溃。扣分原因是安装命令、外部文档访问和项目 node_modules 读取的确认、数据流与回滚边界未完整说明,来源归属也主要依赖仓库元数据。

可靠稳定8 / 20 · 2.0/5

文档具有清晰的 universal-first 决策路径、SDK 版本边界、平台隔离规则和异常导入提示;枚举脚本在缺少项目路径或 @expo/ui 时会输出错误并退出。扣分原因是未见针对关键代码路径的测试或执行证据,脚本只枚举类型定义而不验证 API、文档与项目实际一致性,部分导入安全说明仍存在表述复杂或潜在歧义。

适用触发11 / 15 · 3.7/5

目标用户、适用场景、平台层级选择和非适用范围均描述明确,涵盖 iOS、Android、Web、Expo Router 及社区库迁移。扣分原因是未定义更细的触发条件和输入输出格式,也未提供中文支持;核心参考资料依赖海外 Expo、Android 和 Material 文档,未证明在中国大陆网络环境下可达。

规范维护11 / 15 · 3.7/5

技能采用主文档加分层参考文件结构,包含安装、版本兼容、示例、限制、类型定义优先级和扩展前确认要求;仓库提供 MIT 许可证、版本字段及通用 CI 维护检查。扣分原因是该技能没有变更日志、明确维护负责人或技能级更新路径,故障排查和常见问题覆盖有限,外部链接未固定到修订版本。

有效结果6 / 15 · 2.0/5

内容能直接指导选择 universal、SwiftUI、Jetpack Compose 或 drop-in replacement,并提供可复制的 Host、布局和平台文件示例,核心任务预期可完成。扣分原因是静态材料没有展示已验证的代表性产出或实际项目结果,API 仍需用户自行检查类型和文档,输出完整性与相对手工实现的收益缺乏证据。

证据核验3 / 10 · 1.5/5

仓库内有明确的 SKILL.md、参考文档和可审计的组件枚举脚本,且说明以安装包类型定义作为事实来源。扣分原因是未见覆盖关键路径的提交测试、CI 执行结果或独立第三方复核;外部文档仅以链接形式引用,静态审查无法验证其当前准确性。

证据充分度: 评估于 2026年7月20日 审查版本 8bd359f8a44d
使用前请注意
  • 使用前应在目标项目中核对实际 Expo SDK、@expo/ui 版本及 .d.ts;文档声明“最新 SDK”可能随版本变化。
  • 不要在错误的平台加载 @expo/ui/swift-ui 或 @expo/ui/jetpack-compose;应使用平台文件或经过验证的运行时分支。
  • LazyColumn 和 List 对大型数据集存在 JS 线程性能限制;扩展原生模块前必须取得用户确认。
  • 关键文档依赖外部海外站点,无法从提交材料确认中国大陆网络可达性。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

expo-ui 面向 Expo 和 React Native 项目,指导开发者使用 @expo/ui 构建原生 UI。它优先介绍可在 iOS、Android 和 Web 复用的通用组件,也覆盖 iOS SwiftUI 与 Android Jetpack Compose 的平台专用组件。技能还说明如何使用面向社区库的兼容替代组件。通用层要求 Expo SDK 56 或更高版本,而部分替代组件和平台专用层也支持 SDK 55。

指导安装 @expo/ui,要求将所有 UI 树包裹在 Host 中,并帮助选择通用组件、平台专用 SwiftUI/Jetpack Compose 组件或社区库替代组件。它覆盖 Host、Column、Row、Button、Text、List 等通用组件,以及 BottomSheet、DateTimePicker、Slider、Menu 等替代方案。它还说明如何隔离 iOS 和 Android 专用文件、避免跨平台导入导致运行时错误,并允许通过 Bash 运行 Node.js 组件列表脚本。

  1. Expo 开发者需要用一套组件树同时支持 iOS、Android 和 Web 时,使用通用 @expo/ui 组件。
  2. React Native 标准组件无法提供分组设置、切换项、菜单、表单或原生弹窗体验时,使用 @expo/ui 构建原生界面。
  3. 项目需要 SwiftUI 专用行为或 Android Jetpack Compose 专用能力时,分别使用平台专用组件树。
  4. 已经使用 @gorhom/bottom-sheet 或社区 DateTimePicker 的团队,需要迁移到 @expo/ui 兼容替代组件时,使用对应的 community 模块。
  5. 开发者审查现有 Host、RNHostView 或原生 UI 树,并需要判断通用层与平台专用层取舍时,参考该技能。

这个 Skill 有哪些优点和局限?

优点
  • 以通用组件为优先,支持从单一 React 组件树面向 iOS、Android 和 Web。
  • 提供 SwiftUI 和 Jetpack Compose 的平台专用路径,适合需要原生行为或优化的场景。
  • 包含面向多个 React Native 社区 UI 库的兼容替代方案。
  • 来源明确说明了 SDK 版本要求、Host 包裹规则和跨平台导入风险。
局限
  • 平台专用方案需要维护两套 UI 树,并处理 `.ios.tsx`、`.android.tsx` 或 Platform.OS 分支。
  • 通用层要求 SDK 56 或更高版本;SDK 55 的支持范围较窄。
  • 来源没有提供测试套件、性能基准或各平台覆盖率证据。
  • SKILL.md 使用了 `allowed-tools` 的 Bash(Node.js 脚本)权限语法,移植到其他 Agent 实现可能需要调整。

如何安装这个 Skill?

按仓库 README 安装整个 Expo Skills 集合:npx skills@latest add expo/skills --skill '*'。该命令会询问安装目标;来源未提供仅安装 expo-ui 技能的安装命令。安装后重启或刷新 Agent 会话,使其发现 SKILL.md。

如何使用这个 Skill?

在已安装该技能的 Agent 中提出具体任务,例如:“在 Expo 项目中用 @expo/ui 创建一个包含分组设置、开关和菜单的原生界面,并判断应使用通用组件还是平台专用组件。” 使用 @expo/ui 时先从通用组件开始;所有通用或平台专用 UI 树都包裹在从 @expo/ui 导入的 Host 中。平台专用文件应放在 components/ 中的 .ios.tsx.android.tsx 文件内,而不是 Expo Router 的 app/ 目录。

这个 Skill 与同类方案有什么区别?

与标准 React Native UI 相比,expo-ui 适合标准组件无法提供足够原生体验的界面。与 React Native 社区 UI 库相比,它还提供 BottomSheet、DateTimePicker、Slider 和 Menu 等兼容替代组件,适合迁移现有依赖。

常见问题

使用 expo-ui 是否需要自定义构建?
在 SDK 56 上,来源称 @expo/ui 可在 Expo Go 中运行,使用 `npx expo start` 无需自定义构建。较旧 SDK 需要先运行 `npx expo run:ios` 或 `npx expo run:android` 构建开发客户端。
expo-ui 是否适合所有 Expo UI 需求?
不一定。它聚焦 @expo/ui 原生 UI,不覆盖自定义原生模块、Expo Router 导航、Reanimated 或数据获取。
平台专用组件可以在任意文件中导入吗?
不能。`@expo/ui/swift-ui` 仅适用于 iOS,`@expo/ui/jetpack-compose` 仅适用于 Android;在另一平台运行可能产生 Unable to get view config 错误。

同仓库的其他 Skills

均来自 expo/skills

开发与工程

Expo 棕地集成助手

帮助团队将 Expo 和 React Native 增量集成到现有的原生 iOS 或 Android 应用中。

开发与工程

Expo Web 转原生迁移指南

将现有 React 网站逐屏迁移为可发布的 Expo 原生应用。

开发与工程

Expo 开发客户端构建助手

为 Expo 原生代码测试构建并分发开发客户端。

开发与工程

Expo 应用商店发布助手

用 EAS 构建并发布 Expo 应用到 App Store、Google Play 和 TestFlight。

开发与工程

Expo 技能评测器

端到端验证 Expo 技能是否触发、产出可用代码并正确渲染。

开发与工程

Expo Tailwind 样式配置助手

为 Expo 应用配置 Tailwind CSS v4、NativeWind v5 与跨平台样式支持。

开发与工程

Expo 项目结构指南

为全新的 Expo Router 应用建立清晰、可扩展的文件结构。

自动化与运维

EAS Observe 性能观测助手

帮助 Expo 团队接入、查询并解读生产环境中的启动、导航和自定义事件性能指标。

开发与工程

Expo 数据请求指南

为 Expo 应用提供从 API 请求到缓存、离线与身份验证的网络开发指导。

开发与工程

Expo 技能反馈

帮助用户提交 Expo 技能或框架反馈,并管理匿名使用遥测。

开发与工程

Expo 集成示例助手

用 Expo 官方示例快速适配第三方库与服务。

设计与前端

Expo 原生界面设计指南

帮助 Expo 开发者构建符合 Apple 设计规范、具备原生体验的响应式界面。

开发与工程

Expo SDK 升级助手

帮助 Expo 团队升级 SDK、处理依赖冲突并完成兼容性清理。

开发与工程

Expo DOM 组件助手

让 Expo 原生应用渐进式复用 Web 代码与 Web 专属库。

开发与工程

EAS 云端模拟器助手

让无法本地运行模拟器的团队在 EAS 云端运行、操控并截图 Expo 应用。

开发与工程

Expo 原生模块迁移助手

将现有 Expo 原生模块从 1.0 DSL 迁移到 2.0 宏 API,同时保持 JavaScript 接口不变。

开发与工程

Expo App Clip 助手

为 Expo 应用配置可由网址唤起的 iOS App Clip。

自动化与运维

EAS 更新健康洞察

用 CLI 检查 EAS Update 的崩溃率、采用情况与发布健康度。

自动化与运维

Expo EAS 工作流助手

帮助 Expo 项目编写、编辑和验证 EAS CI/CD 工作流。

开发与工程

Expo EAS 托管部署

帮助 Expo 项目部署网站与 API 路由,并配置密钥、域名和边缘运行时。

相关 Skills