docs: 更新总待完成清单 — iOS P2 动效/无障碍完成,COS 接入完成

- I12 动效补充 
- I13 无障碍基础适配 
- B16/B17/B19 COS 对象存储接入 
- 移除 iOS CI/CD 项(Apple 项目本地编译发布)
- 更新执行顺序建议

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
WangDL 2026-05-17 22:31:38 +08:00
parent fe608da385
commit b55e497161
2 changed files with 73 additions and 55 deletions

View File

@ -6,44 +6,61 @@
--- ---
## 一、后端 API 对接(当前最优先 ## 一、后端 API 对接(✅ 已完成 2026-05-17
Auth 已对接。以下页面仍使用静态 Mock 数据,待接后端: 所有页面已对接后端 API包括知识库列表/详情、学习会话、主动回忆、AI 分析、复习计划、学习活跃统计。全局下拉刷新 + 上拉加载更多已接入Toast 通知系统已就位。
| 页面 | 需对接的 API |
|------|-------------|
| LibraryHomeView | GET /api/knowledge-bases |
| LibraryDetailPage | GET /api/knowledge-bases/:id/items |
| StudyHomeView | GET /api/learning-sessions |
| DailyThinkingPage | POST /api/active-recall/answers |
| AIFeedbackPage | GET /api/ai-analysis/:id |
| ReviewPlanView | GET /api/reviews/due |
| AnalysisHomeView | GET /api/learning-activity/summary |
--- ---
## 二、架构层待推进 ## 二、架构层(✅ 已完成 2026-05-17
### ViewModel 迁移(部分完成) ### ViewModel 迁移(已完成)
ReviewPlanViewModel、AIChatViewModel、StudyHomeViewModel 已完成。其余页面仍为 View 内聚状态,待逐步迁移。 所有页面的 ViewModel 已就位:
- `AIChatViewModel` — AI 对话消息管理
- `StudyHomeViewModel` — 学习主页任务/进度计算
- `ReviewPlanViewModel` — 复习计划分组管理
- `ProfileViewModel` — 用户资料/偏好
- `LibraryViewModel` / `LibraryDetailViewModel` — 知识库/知识点分页
- `ActivityViewModel` — 分析统计
- `StudyViewModel` / `ReviewViewModel` — 学习会话/复习
### Repository 层 ### 本地缓存层(已完成)
当需要本地缓存 + 网络切换时再建,当前阶段不紧急。 - `FileCache` — JSON 文件缓存(泛型 save/load/remove/clear
- `LocalCache` — 高层缓存服务(缓存优先 + TTL 过期 + 后台刷新)
### 本地化(已完成)
`zh-Hans.lproj/Localizable.strings` 含 180+ key覆盖所有页面文案。添加新语言只需创建对应 `.lproj` 翻译文件。
--- ---
## 三、动效 ## 三、动效(✅ 已完成 2026-05-17
计划要求P0页面过渡、按钮反馈、加载状态、AI 分析中状态、学习完成反馈。当前仅有基础 SwiftUI 隐式动画。 计划要求P0页面过渡、按钮反馈、加载状态、AI 分析中状态、学习完成反馈。
已完成内容:
- `ZXAnimations.swift` — 6 个动效组件:`ZXButtonStyle`(按钮缩放+触觉反馈)、`ZXPressModifier`/`.zxPressable()`(任意视图按压效果)、`ZXPageTransition`(页面滑入+淡入淡出)、`ZXThinkingOverlay`AI 分析全屏叠加层+脑图标光环动画)、`ZXCelebrationView`(五彩纸屑粒子系统+成就卡片)、`ZXAIAnalysisProgress`(分步分析进度条+旋转加载器)
- 所有关键按钮已接入 `.zxPressable()`:提交回答、暂停/继续学习、结束学习、发送消息、任务行、复习评分按钮
- AI 分析流程已接入 `ZXThinkingOverlay` + `ZXAIAnalysisProgress`
- 学习/复习完成已接入 `ZXCelebrationView`
- 页面切换已接入 Tab 过渡动画
--- ---
## 四、无障碍 ## 四、无障碍(✅ 已完成 2026-05-17
关键按钮添加 `.accessibilityLabel`,确保 Dynamic Type 下布局不破碎,重点页面 VoiceOver 测试。 关键按钮添加 `.accessibilityLabel`,确保 Dynamic Type 下布局不破碎,重点页面 VoiceOver 测试。
已完成内容:
- Tab 栏 5 个标签页均添加 `.accessibilityLabel`
- 所有关键按钮添加无障碍标签:提交回答、发送消息、暂停/继续/结束学习、复习评分(完全不会/有点难/基本会/很简单)、导航按钮(搜索、通知、设置、创建知识库)、快捷操作、个人资料编辑
- 问答卡片添加 `.accessibilityElement(children: .combine)` + `.accessibilityLabel` + `.accessibilityHint`
- 复习卡片翻转状态通过 `.accessibilityLabel` 区分问题/答案模式,添加 `.accessibilityAddTraits(.isButton)`
- 输入框添加 `.accessibilityLabel`搜索知识库、AI 学习问题输入框)
- 任务行添加完成状态提示
--- ---
## 五、测试 ## 五、测试
@ -54,11 +71,9 @@ ReviewPlanViewModel、AIChatViewModel、StudyHomeViewModel 已完成。其余页
--- ---
## 六、CI/CD ## 六、崩溃监控
- GitHub Actions / Xcode Cloud 自动构建 - Firebase Crashlytics 或 Sentry
- TestFlight 自动分发
- 崩溃监控Firebase Crashlytics 或类似)
--- ---
@ -80,8 +95,12 @@ ReviewPlanViewModel、AIChatViewModel、StudyHomeViewModel 已完成。其余页
## 当前最应该推进 ## 当前最应该推进
```text ```text
1. 后端 API 对接(知识库列表 → 学习会话 → 复习 → 学习活跃) 1. ✅ 后端 API 对接(已完成)
2. ViewModel 层逐步迁移(不阻塞功能) 2. ✅ ViewModel 层迁移(已完成)
3. 动效补充(页面过渡 + AI 分析中状态) 3. ✅ 动效补充(页面过渡 + AI 分析中状态)— 已完成
4. 无障碍基础适配 4. ✅ 无障碍基础适配 — 已完成
5. ✅ 本地缓存接入 ViewModel — 已完成
6. 数据埋点 — P3
7. 崩溃监控 — P3
8. 测试 — P3
``` ```

View File

@ -54,12 +54,12 @@
### 🟡 P2 — 存储/文件 ### 🟡 P2 — 存储/文件
| # | 事项 | 说明 | 详见 | | # | 事项 | 说明 | 详见 | 状态 |
|---|------|------|------| |---|------|------|------|------|
| B16 | COS 对象存储接入 | 文件上传/下载/签名 URL | [Redis缓存设计](./api-server/Redis缓存设计.md) | | B16 | COS 对象存储接入 | 文件上传/下载/签名 URL | [Redis缓存设计](./api-server/Redis缓存设计.md) | ✅ |
| B17 | 文件上传完整流程 | POST /api/files/upload-url → COS → complete | [后端开发路线图 P5](./api-server/后端开发路线图.md) | | B17 | 文件上传完整流程 | POST /api/files/upload-url → COS → complete | [后端开发路线图 P5](./api-server/后端开发路线图.md) | ✅ |
| B18 | 文档导入真实解析 | 替换 3 层 setTimeout mock | [潜在问题清单 #24](./潜在问题清单.md) | | B18 | 文档导入真实解析 | 替换 3 层 setTimeout mock | [潜在问题清单 #24](./潜在问题清单.md) | |
| B19 | Storage Service 实现 | 当前只有 getUploadPath + healthCheck无真正读写 | [潜在问题清单 #25](./潜在问题清单.md) | | B19 | Storage Service 实现 | 当前只有 getUploadPath + healthCheck无真正读写 | [潜在问题清单 #25](./潜在问题清单.md) | ✅ |
### 🟡 P2 — 基础设施补全 ### 🟡 P2 — 基础设施补全
@ -98,29 +98,28 @@
### 🟠 P1 — 架构补全 ### 🟠 P1 — 架构补全
| # | 事项 | 说明 | 详见 | | # | 事项 | 说明 | 详见 | 状态 |
|---|------|------|------| |---|------|------|------|------|
| I8 | ViewModel 层迁移 | 其余页面从 View 内聚状态迁移到 ViewModel | [缺失项 二](./ios-projects/缺失项与待补全方向.md) | | I8 | ViewModel 层迁移 | 其余页面从 View 内聚状态迁移到 ViewModel | [缺失项 二](./ios-projects/缺失项与待补全方向.md) | ✅ |
| I9 | 本地缓存层 | UserDefaults/SwiftData 缓存学习数据,支持离线浏览 | [潜在问题清单 #18](./潜在问题清单.md) | | I9 | 本地缓存层 | UserDefaults/SwiftData 缓存学习数据,支持离线浏览 | [潜在问题清单 #18](./潜在问题清单.md) | ✅ |
| I10 | 测试修复 | 4 个 Test 文件引用的 ViewModel/FileCache 已创建,验证可编译 | [潜在问题清单 #13](./潜在问题清单.md) | | I10 | 测试修复 | 4 个 Test 文件引用的 ViewModel/FileCache 已创建,验证可编译 | [潜在问题清单 #13](./潜在问题清单.md) | ✅ |
| I11 | LocalizedStringKey 接入 | 180+ key 已写好View 需从硬编码文案切换 | [潜在问题清单 #20](./潜在问题清单.md) | | I11 | LocalizedStringKey 接入 | 180+ key 已写好View 需从硬编码文案切换 | [潜在问题清单 #20](./潜在问题清单.md) | ✅ |
### 🟡 P2 — 体验/动效 ### 🟡 P2 — 体验/动效
| # | 事项 | 说明 | 详见 | | # | 事项 | 说明 | 详见 | 状态 |
|---|------|------|------| |---|------|------|------|------|
| I12 | 动效补充 | 页面过渡、按钮反馈、AI 分析中状态、学习完成反馈 | [缺失项 三](./ios-projects/缺失项与待补全方向.md) | | I12 | 动效补充 | 页面过渡、按钮反馈、AI 分析中状态、学习完成反馈 | [缺失项 三](./ios-projects/缺失项与待补全方向.md) | ✅ |
| I13 | 无障碍基础适配 | accessibilityLabel、Dynamic Type、VoiceOver | [缺失项 四](./ios-projects/缺失项与待补全方向.md) | | I13 | 无障碍基础适配 | accessibilityLabel、Dynamic Type、VoiceOver | [缺失项 四](./ios-projects/缺失项与待补全方向.md) | ✅ |
### 🟢 P3 — TestFlight 前 ### 🟢 P3 — TestFlight 前
| # | 事项 | 说明 | 详见 | | # | 事项 | 说明 | 详见 |
|---|------|------|------| |---|------|------|------|
| I14 | 数据埋点 | 产品行为事件追踪PostHog/Firebase | [缺失项 八](./ios-projects/缺失项与待补全方向.md) | | I14 | 数据埋点 | 产品行为事件追踪PostHog/Firebase | [缺失项 八](./ios-projects/缺失项与待补全方向.md) |
| I15 | CI/CD | GitHub Actions 自动构建 + TestFlight 分发 | [缺失项 六](./ios-projects/缺失项与待补全方向.md) | | I15 | 崩溃监控 | Firebase Crashlytics 或 Sentry | [缺失项 六](./ios-projects/缺失项与待补全方向.md) |
| I16 | 崩溃监控 | Firebase Crashlytics 或 Sentry | [缺失项 六](./ios-projects/缺失项与待补全方向.md) | | I16 | ViewModel/Service 单元测试 | Mock Repository 测试 | [缺失项 五](./ios-projects/缺失项与待补全方向.md) |
| I17 | ViewModel/Service 单元测试 | Mock Repository 测试 | [缺失项 五](./ios-projects/缺失项与待补全方向.md) | | I17 | Tab 结构调整决策 | 保持 5-Tab 或合并为 4-Tab | [缺失项 七](./ios-projects/缺失项与待补全方向.md) |
| I18 | Tab 结构调整决策 | 保持 5-Tab 或合并为 4-Tab | [缺失项 七](./ios-projects/缺失项与待补全方向.md) |
--- ---
@ -185,17 +184,17 @@
B1 → B2 → B3 → B4 → B5 → B6 B1 → B2 → B3 → B4 → B5 → B6
CI/CD脱敏 → BullMQ → AI await修复 → 限流注册 → 拦截器注册 → 分页 CI/CD脱敏 → BullMQ → AI await修复 → 限流注册 → 拦截器注册 → 分页
第 2 批(本月,核心链路 第 2 批(✅ 已完成 2026-05-17
B7-B11 → B12-B15 → I1-I7 ✅ B7-B11 → B12-B15 → I1-I7 ✅ → I8-I11 ✅
AI Workflows → 异步化 → iOS 前后端打通(已打通) AI Workflows → 异步化 → iOS 前后端打通 → iOS 架构补全
第 3 批TestFlight 前): 第 3 批TestFlight 前):
I8-I13 → B16-B22 → S6-S9 → W1-W3 ✅ I12-I13 → ✅ B16/B17/B19 → B18 → B20-B22 → S6-S9 → W1-W3
iOS ViewModel迁移 → 存储补全 → 验证机制 → 官网修复 ✅ iOS 动效/无障碍(已完成) → ✅ COS 接入(已完成) → 文档导入解析 → 基础设施补全 → 验证机制 → 官网修复
第 4 批App Store 前): 第 4 批App Store 前):
I14-I18 → S10-S13 → W4-W7 I14-I17 → S10-S13 → W4-W7
埋点/CI/CD/测试 → 运营准备 → 官网细节 埋点/崩溃监控/测试/Tab决策 → 运营准备 → 官网细节
第 5 批(远期): 第 5 批(远期):
B23-B26 B23-B26