用途:该技能面向 iOS 26+ 与 Swift 6.3,整理现代 SwiftUI 的架构与编码模式,帮助开发者构建视图、管理状态并组织应用结构。导航与布局等细节由同系列独立技能负责,本技能聚焦架构、状态所有权、组合、环境与异步加载。
主要能力:
- 架构:默认采用 Model-View(MV)模式,视图作为轻量状态表达,业务逻辑由模型与服务承担;不为已有代码引入多余视图模型。通过 @State、@Environment、@Query、.task、.onChange 编排,拆分大视图为子视图,测试模型与服务。
- 状态管理:给出 @Observable 所有权规则:@State 拥有对象或值,let 只读观察,@Bindable 提供双向绑定,@Environment(Type.self) 访问共享对象;@Observable 视图模型类需标注 @MainActor。相比 ObservableObject 具有细粒度追踪优势。
- 视图组合:提取子视图、使用计算视图属性、@ViewBuilder 函数与自定义 ViewModifier;保持稳定视图树,避免顶层条件切换;文件超约 300 行时用扩展与 MARK 注释拆分。
- 环境:自定义 EnvironmentKey/EnvironmentValues,以及 dismiss、colorScheme、dynamicTypeSize、horizontalSizeClass、openURL、modelContext 等内置值。
- 异步加载:使用 .task 自动取消,.task(id:) 在依赖变化时重跑;避免 onAppear 中手动 Task 造成的泄漏。
- 其他:iOS 26+ 新 API(如滚动边缘效果、背景扩展效果、@Animatable、TextEditor 接受 AttributedString)、性能准则(Lazy 容器、稳定 ID、避免 body 内计算)、HIG 对齐、iOS 18+ 写作工具行为控制与常见错误、审查清单。
使用方式:作为技能资料在编写或审查 SwiftUI 代码时参考,按架构、状态、组合、环境、异步加载等章节对照采用;示例命令与代码保持原样。
适用场景:iOS 26+ 应用开发、SwiftUI 视图设计、状态管理与架构审查;向后兼容至 iOS 17(除特别标注)。
限制:导航模式见 swiftui-navigation,布局与组件见 swiftui-layout-components;资料未提供安装方式、收费与价格信息。