# 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 / 网站 / 邮箱 / 其它,提供默认图标选择。 - 详细备注 (Notes): 多行文本。 - 图标选择: 提供 40 个预设扁平化图标。 #### 2. 银行卡包 (Bank Cards) **界面要求:** 顶部 Segmented Control:全部 / 银行卡 / 信用卡。 **列表页:** **3D 仿真卡片视图**,显示银行名称、卡号末四位、CVV、持卡人。 **字段细节:** - 银行名称、卡号、开户人姓名、有效日期、开户行(支持导航)、CVV、支付密码、提款密码:必须 **加密存储** (Encrypted)。 - 卡面颜色: 提供 5 种渐变色方案。 #### 3. 媒体库 (Media Vault) **界面要求:** Segmented Control:全部 / 照片 / 视频。 **功能:** - 调用 PhotosPicker 导入系统相册内容。 - 导入后询问是否删除系统原图。 - 支持导出回系统相册。 *技术提示:大文件请存储在 App 的 Document Directory,数据库只存文件路径。* ### 4. 备忘录 (memo) **功能:** - 存储多行文本 - 支持代码高亮和md格式 - 支持导入本地相关格式文档 - 支持导出到本地 #### 4. 安全与设置 (Settings) - 6位主密码设置 (Master Password)。 - 生物识别 (FaceID) 开关。 - 数据导入导出 (JSON)。 - 主题切换。 ## 二、 交互与安全 - 密码强度低于 60 分显示红色警告。 - 复制敏感信息时触发触感反馈 (Haptic Feedback)。 - 支持全局搜索。 """ # 🛠 Technical Architecture (技术架构) 1. **Data Models (SwiftData)**: - 创建 `/Models/AccountItem.swift`: 包含上述账号字段。 - 创建 `/Models/BankCard.swift`: 包含银行卡字段,敏感字段应设为 String,但在 ViewModel 层进行加密处理。 - 创建 `/Models/MediaItem.swift`: 存储 `filePath` (String) 和 `type` (Enum)。不要直接把图片 Data 存入数据库。 2. **Security Service (Crypto & Auth)**: - 创建 `/Services/SecurityService.swift`: - 使用 `LocalAuthentication` 处理 FaceID。 - 使用 `CryptoKit` 提供 `encrypt(string:)` 和 `decrypt(data:)` 方法,用于处理密码和CVV字段。 3. **UI Implementation (SwiftUI)**: - **Tab架构**: 使用 `TabView` 分为:账号、银行卡、私密媒体、备忘录、设置。 - **3D Card**: 在 `BankCardView` 中使用 `Rotation3DEffect` 实现翻转或透视效果。 - **Forms**: 使用原生 `Form` 和 `Section` 构建录入页。 # 🚀 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 请先分析需求,和我交互1个问题后听我指令,然后**直接写入/生成**上述所有文件。请确保代码可以直接在 Xcode 16+ 环境编译通过。