Files
my/app.md
2025-12-20 11:17:14 +08:00

85 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)
- 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+ 环境编译通过。