用途
本技能用于任何原生 iOS 应用中的视觉设计决策和以设计为中心的审查。当用户需要符合 HIG 的屏幕结构、当前 Apple 原生视觉默认值,或在一次已验证的构建/安装/启动之后进行“截图到修复”的循环时,优先使用本技能。如果请求实际上是关于全新项目脚手架、CLI 构建循环、scheme 选择或更广泛的 iOS 实现工作流,应转交 software-ios-native,待问题变为视觉结构或设计质量时再回到本技能。
主要能力
- 基础:从当前 Apple 设计系统出发;优先使用系统排版、Dynamic Type 文本样式、语义化颜色、SF Symbols 和标准容器。将 Liquid Glass 视为 iOS 26 上的导航层材质(标准 chrome 如标签栏、工具栏、导航栏、表单、侧边栏已采用)。将屏幕文件中的每个间距、字距、圆角和颜色令牌化,不允许魔法数字。强制 44 × 44 pt 最小点击目标。
- 布局与内容:将数据包含在视觉边界内(网格单元、操作行);团队默认用小型 SF Symbol 图标锚定标签,并用颜色指示器,同时保留非颜色线索。详情优先使用底部表单而非内联展开;有限同类项优先使用网格而非水平轮播;叙事屏幕使用 ScrollView + LazyVStack 配合 .scrollTransition;设置类枢纽使用 List(.insetGrouped)。密集图表、地图和画布不应被弹窗、浮动摘要卡片或底部覆盖层遮挡。
- 交互与反馈:在共享组件层面传播按压反馈;使用触觉反馈表达有意义的选择或确认;集中处理 Reduce Motion,再逐一验证手势驱动和自定义效果。采用 SwiftUI iOS 17+ 的 .scrollTransition、.sensoryFeedback、.symbolEffect、.contentTransition(.numericText)。
- 导航与结构:用分段选择器合并相关屏幕以减少导航深度;表单使用 .presentationDetents;沉浸式可视化屏幕采用全出血模式。iPhone 上 3–5 个同级顶级分区使用 TabView;当应用以 iPad/Mac 优先、需要持久列表-详情关系、有 6+ 顶级目的地或需从 iPhone 紧凑宽度扩展到 iPad/Mac 时,使用 NavigationSplitView。
- 本地化:本技能仅覆盖视觉审查;字符串、复数、目录一致性和翻译流水线由 software-localisation 负责。所有面向用户的字符串都经过 l10n。
- 无障碍:每个屏幕都必须通过 Dynamic Type AX5、Reduce Motion、Reduce Transparency 和 VoiceOver 开启状态的考验。
使用方式
核心工作流:1) 定义屏幕的主要任务和必须首先赢得注意的一到两条内容;2) 选择原生结构(标签视图、导航栈、列表、表单、检查器或分栏视图);3) 先应用系统默认的排版、间距和语义颜色;4) 通过标准控件和材质采用 Liquid Glass,并在两种外观下审查可读性;5) 应用 Runtime Proof Gate,捕获目标状态、检查、修复并对比前后证据;6) 对每个变更表面按风险选择状态,包括填充、加载、空、错误、权限拒绝、离线和破坏性操作状态,并交叉最小配置集(最小/最大宽度、AX Dynamic Type、浅色/深色加 Increase Contrast 或 Reduce Transparency、VoiceOver 焦点顺序)。
Runtime Proof Gate:在已安装包、构建标记和可见屏幕与当前构建绑定之前,不要信任截图。先在不擦除数据的情况下重装;仅在测试陈旧或迁移状态时重置容器。如果屏幕 UI 看起来比源码旧,首先怀疑陈旧安装,转交 runtime-debugging 技能。如果安装或启动失败,停止设计迭代,先修复运行真相。
设计审查循环:先应用 Runtime Proof Gate,再对比前后截图以及 Dynamic Type、外观和设备宽度证据。如果图像无法解释失败,在启动后捕获聚焦的布局、外观或无障碍日志。
适用场景
适用于原生 iOS 应用的视觉设计评审与优化,包括 SwiftUI 布局、排版、Liquid Glass 材质、导航、仪表盘、叙事/引导屏幕、组件模式、动效、工艺手感、专业场景(如 onboarding、付费墙、设置、搜索、照片查看器、媒体播放器、相机、图表、收件箱、App Intents)以及 Widgets、Live Activities、控制中心自定义控件和锁屏表面等一等 iOS 设计表面。
限制
本技能不覆盖 SwiftUI 架构、Observation、并发、发布门禁或一般 iOS 实现策略(转交 software-ios-native);不覆盖陈旧构建、模拟器漂移、安装失败等运行问题(转交 software-ios-runtime-debugging);不覆盖平台选择或跨平台决策(转交 software-mobile);不覆盖非 iOS 特定的通用产品 UX 模式(转交 software-ui-ux-design);不覆盖 iOS 原生视觉设计默认值之外的更广泛无障碍修复(转交 software-accessibility)。本地化的字符串、复数、目录一致性和翻译流水线不属于本技能。Feel Bar 的三次失败债务阈值是团队默认值,不是平台规则;装饰性动效或触觉反馈并非通过所必需。