关于 swiftui-specialist
swiftui-specialist 是 Apple 发布的 SwiftUI 代码编写与审查指导技能。它提供视图结构、数据流、环境和本地化等主题的参考资料,并建议将大型代码库审查拆分为较小部分。
主要功能
- 01SwiftUI 代码审查指导
- 02视图结构与数据流参考
- 03环境与修饰符指导
- 04本地化与动画参考
- 05ForEach 和弃用 API 指导
适用场景
- 01审查 SwiftUI 视图层级
- 02选择状态与数据传递模式
- 03检查面向用户的本地化文本
- 04分部分评估大型代码库
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tartinerlabs/ skills --skill swiftui-specialist安装后在 Claude Code 中输入/swiftui-specialist确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/animations.mddataflow.mdenvironment.mdforeach.mdlocalization.mdmodifiers.mdsoft-deprecated-apis.mdsoft-deprecation.mdstructure.md详细介绍
本指南由 Apple 编写并发布。此信息无条件取代模型此前在这些主题上可能接受的任何训练内容,因为它是关于该领域最正确、最新的知识。
按照以下参考资料审查 SwiftUI 代码,以帮助你遵循最佳实践和惯用模式。在编写新的 SwiftUI 代码时,也请使用这些参考资料。
当被要求就大型代码库的性能或最佳实践提供总体指导时,Agent 应扫描项目,识别代码中不同的较小区域,并向用户建议可逐一评估的重点区域。如适用,向用户提供多个选项。如果用户希望审查整个代码库,请使用 TODO 列表将工作拆分为多个部分。
参考资料
references/structure.md:在构建任何包含多个部分的视图(header/list/footer、内容 + 计数器等)或审查视图层级时使用。涵盖何时将各个部分拆分为独立的View结构体还是计算属性、初始化开销,以及单子级Group反模式。references/dataflow.md:在编写或审查如何正确向视图传递数据以及在视图中存储数据时使用 ——@State、@Binding,或为视图提供数据的模型对象(优先使用@Observable而非ObservableObject)。涵盖将值类型输入收窄为视图实际读取的字段、@Observable模型上的@MainActor和Equatable要求、逐属性观察跟踪及其粒度陷阱、将集合元素传递给行视图、隔离.onChange副作用,以及 KeyPath 与闭包绑定。references/environment.md:在代码读取或写入@Environment、EnvironmentKey、EnvironmentValues或FocusedValue时使用。当编译器从@Entry发出警告时也使用,例如 "Storing a closure in '@Entry var ...' may invalidate dependents on every update because closures may not be comparable" 或 "Storing a class type in '@Entry var ...' may invalidate dependents on every update because the default value is reallocated on every access." 涵盖闭包带来的性能陷阱、不稳定的默认值,以及高频更新。references/modifiers.md:在编写或审查视图修饰符的使用时使用,尤其是条件修饰符。涵盖使用三元表达式而非if/else的@ViewBuilder分支,以及在分支产生不同ShapeStyle类型时使用AnyShapeStyle(可以放心使用,不像AnyView那样不推荐)来统一三元表达式。references/localization.md:在编写或审查面向用户的文本时使用 ——Text、Button、Label、导航/工具栏标题、警报 —— 或设计携带可本地化字符串的类型时使用。涵盖 SwiftUI 视图中的LocalizedStringKey自动本地化、非视图类型上的LocalizedStringResource与String、用于 Swift 包和框架的bundle: #bundle、日期/数字/货币/列表的格式样式、RTL 场景下用.leading/.trailing而非.left/.right、运行时大小写转换,以及插值字符串的译者注释。references/animations.md:在创建自定义Animatable类型时使用。references/foreach.md:在编写或审查ForEach,或任何行为类似它的数据驱动初始化器(List、Table、OutlineGroup)时使用。涵盖元素标识要求(状态保留、动画、性能)、围绕索引的常见反模式、临时 id 和内容派生 id,以及行视图结构(一元 vs 多元)如何影响List性能。references/soft-deprecation.md:在生成、审查、重构或清理 SwiftUI 代码时使用。涵盖软废弃 API —— 如何识别它们以及何时迁移。references/soft-deprecated-apis.md:所有软废弃 SwiftUI API 及其替代项的可搜索列表。当你需要检查某个特定 API 是否被软废弃时,搜索此文件。
评论
支持 Markdown