mcpField
E
expo-ios-screen-scaffolder

expo-ios-screen-scaffolder

github.com/pproenca设计与 UI218124 次安装11 周前更新
代码仓库

关于 expo-ios-screen-scaffolder

Expo iOS Screen Scaffolder 提供参数化模板,用于在 Expo Router 应用中创建符合原生设计习惯的界面。它面向新增 iOS 路由和布局的开发者,模板覆盖常见界面类型,并注明所遵循的规则。

主要功能

  1. 01覆盖六种界面类型的模板
  2. 02路由和界面值占位符
  3. 03原生导航与安全区域模式
  4. 04列表、表单、弹层和设置页
  5. 05生成文件注明 expo-ios-hig 规则

适用场景

  1. 01搭建新的 iOS 列表或详情路由
  2. 02创建表单或模态弹层
  3. 03设置原生标签页或分组设置
  4. 04让现有界面符合约定

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill expo-ios-screen-scaffolder

安装后在 Claude Code 中输入/expo-ios-screen-scaffolder确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

config.json
gotchas.md
metadata.json
assets/templates/
detail-screen.tsx.template
form-screen.tsx.template
list-screen.tsx.template
modal-sheet.tsx.template
native-tabs-layout.tsx.template
settings-screen.tsx.template
references/
conventions.md

详细介绍

Expo iOS 屏幕脚手架

用于生成符合 HIG 的 Expo Router 屏幕的参数化模板。每个模板生成的屏幕从构建之初就是原生体验——包括原生导航、虚拟化列表、安全区域、语义颜色、SF Symbols、触觉反馈和真实的空状态——因此新屏幕一开始就符合规范,无须事后改造。每个生成的文件都会注明其遵循的 expo-ios-hig 规则。

适用场景

当用户希望执行以下操作时,使用此技能:

  • 在 iOS 版 Expo 应用中创建或添加新屏幕、路由或布局
  • 搭建列表、详情、表单、模态页、标签栏或设置屏幕
  • 启动新的 Expo 功能,并希望屏幕从首次提交起就具有原生体验
  • 让现有屏幕符合 references/conventions.md 中的规范

可用模板

搭建屏幕:读取模板、替换占位符,并将结果写入 app/ 下对应的路由路径。占位符使用单层花括号(例如 {ScreenName});字面 TSX 花括号保持原样。

模板生成内容占位符
list-screen.tsx.template大标题列表:FlashList + RefreshControl + 空状态 + 底部安全区域内边距{ScreenName} {Entity} {entity_plural} {Title} {route_path} {sf_symbol}
detail-screen.tsx.template推入式详情页:边缘到边缘滚动、语义颜色、系统分享按钮{ScreenName} {Entity} {entity} {entityId}
form-screen.tsx.template创建表单:键盘避让、已配置的输入框、乐观保存 + 触觉反馈{ScreenName} {Entity} {entity}
modal-sheet.tsx.template带有停靠点和抓手,以及取消/完成操作的 formSheet 路由{ScreenName} {Title} {route_name}
native-tabs-layout.tsx.template使用 SF Symbol 图标的根 NativeTabs 布局(每个标签重复填写){tab_name} {Tab_label} {tab_sf_symbol}
settings-screen.tsx.template分组设置:SectionList + 平台 Switch 行{ScreenName} {Title}

常用占位符:

  • {ScreenName} — 使用 PascalCase 并以 Screen 结尾的组件,例如 TrailsScreen
  • {Entity} / {entity} / {entity_plural} — PascalCase、camelCase 和复数形式,例如 Trail / trail / trails
  • {entityId} — 动态路由参数名,需与文件名一致([trailId].tsx → trailId)
  • {Title} — 导航栏标题文本,例如 Trails
  • {route_path} / {route_name} — 用于导航的路由段
  • {sf_symbol} / {tab_sf_symbol} — Apple SF Symbols 应用中的 SF Symbol 名称
  • {file_path} — 目标路径,会写入头部注释

使用方法

  1. 选择适合屏幕类型的模板。
  2. 为模板占位符选择值(参见上表和各模板中的头部注释)。
  3. 替换占位符并写入路由路径,例如 app/(trails)/index.tsx、app/(trails)/[trailId].tsx。
  4. 实现导入的配套项(use{Entity}List、create{Entity} 等)——脚手架负责视图,数据层由你负责。
  5. 阅读 references/conventions.md,了解每个模板强制执行的规则以及何时可以偏离这些规则。

设置

config.json 是可选的。如果项目配置不同,可在首次使用时进行覆盖:

  • app_dir — Expo Router 路由目录(默认为 app)
  • components_dir — 共享组件目录(默认为 components)
  • list_component — 列表模板使用 FlashList(默认)或 FlatList

相关技能

  • expo-ios-hig — 这些模板遵循的规则;每个生成的文件都会注明这些规则。
  • expo-ios-hig-verify — 搭建屏幕后运行此技能,确认屏幕仍具有原生体验。

评论

支持 Markdown