SuperAPI AI 工具集

swiftui-ui-patterns

前端与建站

查看项目

更新于 10-16 05:57

技能介绍

SwiftUI UI Patterns 是一份面向 SwiftUI 视图与组件构建的最佳实践与示例驱动指南,主要用于创建或重构 SwiftUI 界面、设计标签页架构等场景。

用途 该指南帮助开发者根据目标选择合适的工作路径:针对已有项目,或针对新项目脚手架搭建。它会引导开发者识别功能或界面及其主要交互模型(列表、详情、编辑器、设置、标签页),在仓库中寻找相近示例,并应用本地约定。

主要能力

  1. 快速上手:区分已有项目与新项目脚手架两条路径。已有项目需识别功能/界面与交互模型,使用 rg "TabView(" 等命令查找附近示例并阅读最接近的 SwiftUI 视图,应用本地约定(偏好 SwiftUI 原生状态、尽量保持状态本地化、共享依赖使用环境注入),从 references/components-index.md 选择相关组件参考并遵循其指导,再以小型、专注的子视图和 SwiftUI 原生数据流构建视图。新项目脚手架则从 references/app-scaffolding-wiring.md 开始,接入 TabView + NavigationStack + sheets,基于提供的骨架添加最小化的 AppTab 和 RouterPath,根据所需 UI 选择下一个组件参考,并随着新界面增加扩展路由与 sheet 枚举。
  2. 通用规则:使用现代 SwiftUI 状态(@State、@Binding、@Observable、@Environment),避免不必要的 view model;优先组合,保持视图小而专注;使用 async/await 配合 .task 以及明确的加载/错误状态;仅在编辑遗留文件时维持既有遗留模式;遵循项目的格式化与风格指南。关于 sheet,当状态表示选中的模型时优先使用 .sheet(item:) 而非 .sheet(isPresented:),避免在 sheet body 中使用 if let,sheet 应自行处理动作并在内部调用 dismiss(),而不是转发 onCancel/onConfirm 闭包。
  3. 新 SwiftUI 视图的工作流:定义视图状态及其归属位置;识别通过 @Environment 注入的依赖;勾勒视图层级并将重复部分抽取为子视图;在需要时使用 .task 和明确的状态枚举实现异步加载;当 UI 可交互时添加无障碍标签或标识符;通过构建进行验证并在需要时更新调用点。
  4. 组件参考:以 references/components-index.md 作为入口。每个组件参考应包含意图与最适场景、符合本地约定的最小使用模式、陷阱与性能说明,以及当前仓库中已有示例的路径。

使用方式 资料中给出了具体的 sheet 模式代码示例: item 驱动的 sheet(推荐):

@State private var selectedItem: Item?

.sheet(item: $selectedItem) { item in EditItemSheet(item: item) }

sheet 自行处理动作:

struct EditItemSheet: View { @Environment(.dismiss) private var dismiss @Environment(Store.self) private var store

let item: Item
@State private var isSaving = false

var body: some View {
    VStack {
        Button(isSaving ? "Saving…" : "Save") {
            Task { await save() }
        }
    }
}

private func save() async {
    isSaving = true
    await store.save(item)
    dismiss()
}

}

新增组件参考的步骤:创建 references/<component>.md;保持简短且可操作,链接到当前仓库中的具体文件;在 references/components-index.md 中更新新条目。

适用场景 适用于创建或重构 SwiftUI UI、设计标签页架构,以及已有项目遵循本地约定进行界面开发或新项目脚手架搭建。

限制 资料未提供具体的安装命令、运行环境要求、收费信息或价格。