3.8 KiB
3.8 KiB
Role Definition
你是一位拥有 10 年经验的 iOS 专家,精通 SwiftUI、SwiftData、CryptoKit 和 LocalAuthentication。 你的任务是基于我提供的《需求文档》,在当前的 Xcode 项目 "TopSafe" 中,从零构建核心功能。
📂 Context: 需求文档 (App Requirements)
"""
构建 iOS 原生应用 "私密管家" (SecretKeeper / TopSafe)
一、 详细页面与录入字段定义
1. 账号保险库 (Account Vault)
界面要求: 顶部有 Segmented Control 切换按钮:全部 / APP / 网站 / 邮箱 / 其它。 列表页: 按字母 A-Z 分组,显示项目名称、用户名/邮箱、所属地区标签。 录入/编辑页字段:
- 账号名称 (Name): 必填。
- 用户名 (Username): 常用账号标识。
- 邮箱地址 (Email): 支持自动填充。
- 手机号 (Phone): 数字键盘。
- 登录密码 (Password): 核心字段,需加密存储。需实时显示强度条(0-100分)。
- 网站地址 (URL): URL 格式校验。
- 所属地区 (Region): 默认为“中国”。
- 所属分类 (Category): App/Web/Email/Other,提供默认图标选择。
- 详细备注 (Notes): 多行文本。
- 图标选择: 提供 40 个预设扁平化图标。
2. 银行卡包 (Bank Cards)
界面要求: 顶部 Segmented Control:全部 / 银行卡 / 信用卡。 列表页: 3D 仿真卡片视图,显示银行名称、卡号末四位、CVV、持卡人。 字段细节:
- 卡号、CVV、支付密码、提款密码:必须 加密存储 (Encrypted)。
- 卡面颜色: 提供 5 种渐变色方案。
3. 媒体库 (Media Vault)
界面要求: Segmented Control:全部 / 照片 / 视频。 功能:
- 调用 PhotosPicker 导入系统相册内容。
- 导入后询问是否删除系统原图。
- 支持导出回系统相册。 技术提示:大文件请存储在 App 的 Document Directory,数据库只存文件路径。
4. 安全与设置 (Settings)
- 主密码设置 (Master Password)。
- 生物识别 (FaceID) 开关。
- 数据导入导出 (JSON)。
- 主题切换。
二、 交互与安全
- 密码强度低于 60 分显示红色警告。
- 复制敏感信息时触发触感反馈 (Haptic Feedback)。 """
🛠 Technical Architecture (技术架构)
-
Data Models (SwiftData):
- 创建
/Models/AccountItem.swift: 包含上述账号字段。 - 创建
/Models/BankCard.swift: 包含银行卡字段,敏感字段应设为 String,但在 ViewModel 层进行加密处理。 - 创建
/Models/MediaItem.swift: 存储filePath(String) 和type(Enum)。不要直接把图片 Data 存入数据库。
- 创建
-
Security Service (Crypto & Auth):
- 创建
/Services/SecurityService.swift:- 使用
LocalAuthentication处理 FaceID。 - 使用
CryptoKit提供encrypt(string:)和decrypt(data:)方法,用于处理密码和CVV字段。
- 使用
- 创建
-
UI Implementation (SwiftUI):
- Tab架构: 使用
TabView分为:账号、银行卡、私密媒体、设置。 - 3D Card: 在
BankCardView中使用Rotation3DEffect实现翻转或透视效果。 - Forms: 使用原生
Form和Section构建录入页。
- Tab架构: 使用
🚀 Execution Workflow (执行步骤)
Phase 1: 数据层建设
- 优先创建 SwiftData 的 Model 类。
- 定义
Category和CardType枚举 (Enum)。
Phase 2: 核心功能与 UI
- 生成
AccountListView和AccountEditView(含密码强度计算逻辑)。 - 生成
BankCardListView(3D卡片 UI) 和录入页。 - 生成
MediaVaultView(集成 PhotosUI)。
Phase 3: 入口重构
- 重写
ContentView,添加 TabView 导航。 - 添加 App 启动时的 FaceID 验证遮罩层 (LockView)。
Action
请先分析需求,然后直接写入/生成上述所有文件。请确保代码可以直接在 Xcode 16+ 环境编译通过。