关于 expo-ios-screen-scaffolder
Expo iOS Screen Scaffolder 提供参数化模板,用于在 Expo Router 应用中创建符合原生设计习惯的界面。它面向新增 iOS 路由和布局的开发者,模板覆盖常见界面类型,并注明所遵循的规则。
主要功能
- 01覆盖六种界面类型的模板
- 02路由和界面值占位符
- 03原生导航与安全区域模式
- 04列表、表单、弹层和设置页
- 05生成文件注明 expo-ios-hig 规则
适用场景
- 01搭建新的 iOS 列表或详情路由
- 02创建表单或模态弹层
- 03设置原生标签页或分组设置
- 04让现有界面符合约定
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill expo-ios-screen-scaffolder安装后在 Claude Code 中输入/expo-ios-screen-scaffolder确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
config.jsongotchas.mdmetadata.jsonassets/templates/detail-screen.tsx.templateform-screen.tsx.templatelist-screen.tsx.templatemodal-sheet.tsx.templatenative-tabs-layout.tsx.templatesettings-screen.tsx.templatereferences/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}— 目标路径,会写入头部注释
使用方法
- 选择适合屏幕类型的模板。
- 为模板占位符选择值(参见上表和各模板中的头部注释)。
- 替换占位符并写入路由路径,例如
app/(trails)/index.tsx、app/(trails)/[trailId].tsx。 - 实现导入的配套项(
use{Entity}List、create{Entity}等)——脚手架负责视图,数据层由你负责。 - 阅读 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