从 PRD 文档生成 SwiftUI iOS 应用代码。当 PRD 文档可用且需要转换为可工作的 iOS 应用时使用...
Dev Skill - SwiftUI iOS 开发生成器
功能概述
Dev Skill - SwiftUI iOS 开发生成器是一项面向实际任务的技能,主要用于Overview. 这种技能将产品要求文档( PRD) 转换为完全可以运行的 SwiftUI iOS 应用程序;它分析 PRD 要求。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
开发技能 — SwiftUI iOS 应用生成器
概述
该技能可将产品需求文档(PRD)转化为功能完备的 SwiftUI iOS 应用。它解析 PRD 中的需求,并生成具备完整架构、UI 组件、数据模型及业务逻辑的生产就绪代码。
架构模式
MVVM 架构
所有生成的代码均遵循 Model-View-ViewModel 模式:
Model 层
- 数据模型(遵循 Codable 协议的 struct)
- 数据持久化(Core Data 或 SwiftData)
- 网络层(URLSession 或 Alamofire)
ViewModel 层
- 业务逻辑与状态管理
- 数据转换与校验
- 服务协调
View 层
- 结构清晰、组件化的 SwiftUI 视图
- 导航栈管理
- UI 状态绑定
代码生成流程
1. PRD 分析
- 解析 PRD 文档以提取功能需求
- 抽取页面规格与用户操作流程
- 识别数据模型及其关系
- 确定所需的第三方集成
2. 项目结构生成
创建完整的 Xcode 项目,目录结构如下:
ProjectName/
├── ProjectName.xcodeproj
├── ProjectName/
│ ├── Models/
│ │ ├── DataModel.swift
│ │ └── APIModels.swift
│ ├── ViewModels/
│ │ ├── MainViewModel.swift
│ │ └── [Feature]ViewModel.swift
│ ├── Views/
│ │ ├── ContentView.swift
│ │ ├── [Feature]View.swift
│ │ └── Components/
│ │ ├── ButtonStyles.swift
│ │ └── CustomViews.swift
│ ├── Services/
│ │ ├── APIService.swift
│ │ └── DataService.swift
│ └── Utilities/
│ ├── Extensions.swift
│ └── Constants.swift
└── ProjectNameTests/
└── [Feature]Tests.swift
3. 核心组件生成
3.1 数据模型
struct Task: Identifiable, Codable {
let id: UUID
var title: String
var isCompleted: Bool
var dueDate: Date?
var category: String
var priority: Priority
}
enum Priority: String, Codable, CaseIterable {
case low, medium, high
}
3.2 ViewModel
class TaskViewModel: ObservableObject {
@Published var tasks: [Task] = []
@Published var selectedCategory: String?
private let dataService: DataService
init(dataService: DataService = .shared) {
self.dataService = dataService
loadTasks()
}
func addTask(_ task: Task) { ... }
func deleteTask(_ task: Task) { ... }
func toggleCompletion(_ task: Task) { ... }
}
3.3 SwiftUI 视图
struct TaskListView: View {
@StateObject private var viewModel = TaskViewModel()
@State private var showingAddTask = false
var body: some View {
NavigationView {
List {
ForEach(viewModel.tasks) { task in
TaskRowView(task: task)
}
.onDelete(perform: deleteTask)
}
.navigationTitle("Tasks")
.toolbar {
Button(action: { showingAddTask = true }) {
Image(systemName: "plus")
}
}
.sheet(isPresented: $showingAddTask) {
AddTaskView()
}
}
}
}
4. 功能实现
4.1 导航
- 使用 TabView 实现主导航
- 使用 NavigationStack 实现层级导航
- 使用 sheet 呈现模态视图
4.2 数据持久化
- 对复杂关系使用 Core Data
- 对简单偏好设置使用 @AppStorage
- 对文档存储使用 FileManager
4.3 网络请求
- 采用 Async/Await 编写现代 API 调用
- 使用 Result 类型进行错误处理
- 使用 Codable 进行 JSON 解码
4.4 UI/UX
- 适配所有设备尺寸的自适应布局
- 支持深色模式
- 支持无障碍功能
- 集成触感反馈(Haptic feedback)
示例:基于 PRD 的待办事项应用
PRD 输入:支持分类、提醒和分享功能的待办事项应用
生成代码:
- Models:Task、Category、Reminder
- ViewModels:TaskListViewModel、CategoryViewModel
- Views:TaskListView、CategoryView、AddTaskView、SettingsView
- Services:NotificationService、SharingService
- 功能特性:
- 基于提醒的推送通知
- 系统分享面板(Share Sheet)集成
- 通过 iCloud 同步数据
- 提供 Widget 用于快速访问
自动触发后续步骤
在生成 iOS 项目后,该技能将自动执行以下操作:
- 在
dev-output/目录中创建完整的 Xcode 项目 - 验证代码可在 Xcode 中无错误编译
- 以生成的代码为输入,触发
qa-skill - 提供构建说明及下一步操作指引
集成要求
输入格式
- 来自
prd-skill的 PRD Markdown 文档 - 含优先级标记的结构化需求
- 技术规格与约束条件
输出验证
- 所有代码必须可在 Xcode 15+ 中成功编译
- 遵循 SwiftUI 最佳实践
- 包含完善的错误处理机制
- 支持 iOS 16+ 部署目标
质量标准
- 100% 使用 SwiftUI(仅在绝对必要时才引入 UIKit)
- 职责分离合理清晰
- 提供全面的代码文档
- 遵循 Apple 人机界面指南(Human Interface Guidelines)
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
