SuperAPI AI 工具集

swiftui-specialist

编程与开发

查看项目

更新于 10-15 15:32

技能介绍

用途

swiftui-specialist 用于在编写、审查或编辑 SwiftUI 代码时,提供最佳实践和地道写法的参考指导。其内容由 Apple 撰写并发布,被视为该领域最新且最正确的知识,并在技能中声明其优先级高于模型此前可能存在的相关训练内容。

主要能力

该技能以一组参考文档的形式组织知识,按主题包括:

  • 结构(references/structure.md):用于构建包含多个区块(如头部/列表/底部、内容加计数器等)的视图或审查视图层级时。涵盖何时将区块拆分为独立的 View 结构体、何时使用计算属性、初始化开销,以及单一子视图的 Group 反模式。
  • 数据流(references/dataflow.md):用于编写或审查如何正确向视图传递和存储数据,涉及 @State、@Binding 或为视图提供数据的模型对象(优先使用 @Observable 而非 ObservableObject)。涵盖将值类型输入收窄到视图实际读取的字段、@Observable 模型上的 @MainActor 与 Equatable 要求、逐属性观察追踪及其粒度陷阱、向行视图传递集合元素、隔离 .onChange 副作用,以及 KeyPath 与闭包绑定的选择。
  • 环境(references/environment.md):用于代码读写 @Environment、EnvironmentKey、EnvironmentValues 或 FocusedValue 时。涵盖闭包与高频更新带来的性能陷阱。
  • 修饰符(references/modifiers.md):用于编写或审查视图修饰符的使用,尤其是条件修饰符。
  • 本地化(references/localization.md):用于编写或审查面向用户的文本,如 Text、Button、Label、导航/工具栏标题、弹窗,或设计携带可本地化字符串的类型时。涵盖 SwiftUI 视图中 LocalizedStringKey 的自动本地化、非视图类型上 LocalizedStringResource 与 String 的取舍、Swift 包与框架的 bundle: #bundle、日期/数字/货币/列表的格式样式、RTL 场景下用 .leading/.trailing 取代 .left/.right、运行时大小写变换,以及插值字符串的译者注释。
  • 动画(references/animations.md):用于创建自定义 Animatable 类型时。
  • ForEach(references/foreach.md):用于编写或审查 ForEach,或任何行为类似的数据驱动初始化器(List、Table、OutlineGroup)。涵盖元素身份标识要求(状态保持、动画、性能)、围绕索引、临时 id、内容派生 id 的常见反模式,以及行视图结构(一元与多元)如何影响 List 性能。
  • 软废弃(references/soft-deprecation.md):用于生成、审查、重构或清理 SwiftUI 代码时,涵盖软废弃 API 的识别与迁移时机。
  • 软废弃 API 列表(references/soft-deprecated-apis.md):所有软废弃 SwiftUI API 及其替代项的可检索列表,在需要确认某个 API 是否已被软废弃时查阅。

使用方式

在编写、审查或编辑 SwiftUI 代码时,依据上述对应主题的参考文档进行比对与改进。

当被要求就大型代码库提供性能或最佳实践的一般性指导时,该技能要求先扫描项目,识别出不同的较小代码区域,逐一向用户建议可评估的重点范围,并在适用时提供多个选项。如果用户希望审查整个代码库,则应使用 TODO 列表将工作拆分为多个部分来推进。

适用场景

适用于 SwiftUI 代码的编写、代码审查、重构与清理,以及视图结构设计、数据流与状态管理、环境值使用、修饰符、本地化、自定义动画类型、ForEach 与数据驱动列表等具体主题的指导。

限制

该介绍为技能自述内容,其中未提供关于收费、价格、平台支持范围或具体效果的事实,故这些信息暂未提供。