用途:编写、审查或改进 SwiftUI 功能,遵循状态管理、现代 API、Swift 并发、视图组合与性能方面的最佳实践,并支持 iOS 26+ Liquid Glass 样式。
主要能力:提供工作流决策树,分为审查现有代码、改进现有代码、实现新功能三类。审查时检查属性包装器用法、现代 API、视图组合、性能模式、列表稳定标识、Liquid Glass 用法及 iOS 26+ 可用性回退。改进时审计状态管理(新代码优先 @Observable 而非 ObservableObject)、替换废弃 API、抽取复杂视图、重构热路径、确保 ForEach 使用稳定标识,并在使用 UIImage(data:) 时建议图片降采样。实现新功能时先设计数据流,区分自有与注入状态,用 @Observable 管理共享状态,拆分可测试模型,用 #available 为 iOS 26+ 特性提供回退。
核心准则:@State 与 @StateObject 必须为 private;传入值不得声明为 @State 或 @StateObject;@Binding 仅用于子视图修改父状态;@Bindable 用于注入的 @Observable 需要绑定时。现代 API 替换包括 foregroundStyle() 替代 foregroundColor()、clipShape(.rect(cornerRadius:)) 替代 cornerRadius()、Tab API 替代 tabItem()、Button 替代 onTapGesture()、NavigationStack 替代 NavigationView、.sheet(item:) 替代 .sheet(isPresented:)、.scrollIndicators(.hidden) 替代初始化参数、Text 格式化替代 String(format:)、localizedStandardContains() 用于用户输入过滤。性能方面:只传必要值、消除多余依赖、热路径先检查值变化再赋值、大列表用 LazyVStack/LazyHStack、ForEach 用稳定标识、避免行内 AnyView 与行内过滤、避免布局抖动、用 Self._printChanges() 调试意外更新。Liquid Glass 仅在用户明确要求时采用,使用原生 glassEffect、GlassEffectContainer 与玻璃按钮样式,多个玻璃元素包在 GlassEffectContainer 中,.glassEffect() 放在布局与视觉修饰符之后,.interactive() 仅用于可点击/可聚焦元素,用 glassEffectID 配合 @Namespace 实现形变过渡。
使用方式:按决策树选择审查、改进或实现路径,并参考 references 目录下的 state-management.md、view-structure.md、performance-patterns.md、list-patterns.md、layout-best-practices.md、modern-apis.md、sheet-navigation-patterns.md、scroll-patterns.md、text-formatting.md、image-optimization.md、liquid-glass.md 等文档。
适用场景:SwiftUI 代码审查、重构、新功能开发、性能调优与 iOS 26+ 新样式适配。
限制:不强制特定架构(如 MVVM、VIPER),仅鼓励分离业务逻辑以便测试;Liquid Glass 需用户明确要求才采用;具体安装命令与收费信息暂未提供。