- I12 动效补充 ✅ - I13 无障碍基础适配 ✅ - B16/B17/B19 COS 对象存储接入 ✅ - 移除 iOS CI/CD 项(Apple 项目本地编译发布) - 更新执行顺序建议 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
107 lines
4.1 KiB
Markdown
107 lines
4.1 KiB
Markdown
# iOS 缺失项与待补全方向
|
||
|
||
> 仅列出当前未完成的项目。已完成内容见 [`已完成/[已完成]-已实现功能汇总.md`](./已完成/[已完成]-已实现功能汇总.md)
|
||
>
|
||
> 更新时间:2026-05-17
|
||
|
||
---
|
||
|
||
## 一、后端 API 对接(✅ 已完成 2026-05-17)
|
||
|
||
所有页面已对接后端 API,包括知识库列表/详情、学习会话、主动回忆、AI 分析、复习计划、学习活跃统计。全局下拉刷新 + 上拉加载更多已接入,Toast 通知系统已就位。
|
||
|
||
---
|
||
|
||
## 二、架构层(✅ 已完成 2026-05-17)
|
||
|
||
### ViewModel 迁移(已完成)
|
||
|
||
所有页面的 ViewModel 已就位:
|
||
- `AIChatViewModel` — AI 对话消息管理
|
||
- `StudyHomeViewModel` — 学习主页任务/进度计算
|
||
- `ReviewPlanViewModel` — 复习计划分组管理
|
||
- `ProfileViewModel` — 用户资料/偏好
|
||
- `LibraryViewModel` / `LibraryDetailViewModel` — 知识库/知识点分页
|
||
- `ActivityViewModel` — 分析统计
|
||
- `StudyViewModel` / `ReviewViewModel` — 学习会话/复习
|
||
|
||
### 本地缓存层(已完成)
|
||
|
||
- `FileCache` — JSON 文件缓存(泛型 save/load/remove/clear)
|
||
- `LocalCache` — 高层缓存服务(缓存优先 + TTL 过期 + 后台刷新)
|
||
|
||
### 本地化(已完成)
|
||
|
||
`zh-Hans.lproj/Localizable.strings` 含 180+ key,覆盖所有页面文案。添加新语言只需创建对应 `.lproj` 翻译文件。
|
||
|
||
---
|
||
|
||
## 三、动效(✅ 已完成 2026-05-17)
|
||
|
||
计划要求(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 测试。
|
||
|
||
已完成内容:
|
||
- Tab 栏 5 个标签页均添加 `.accessibilityLabel`
|
||
- 所有关键按钮添加无障碍标签:提交回答、发送消息、暂停/继续/结束学习、复习评分(完全不会/有点难/基本会/很简单)、导航按钮(搜索、通知、设置、创建知识库)、快捷操作、个人资料编辑
|
||
- 问答卡片添加 `.accessibilityElement(children: .combine)` + `.accessibilityLabel` + `.accessibilityHint`
|
||
- 复习卡片翻转状态通过 `.accessibilityLabel` 区分问题/答案模式,添加 `.accessibilityAddTraits(.isButton)`
|
||
- 输入框添加 `.accessibilityLabel`(搜索知识库、AI 学习问题输入框)
|
||
- 任务行添加完成状态提示
|
||
|
||
---
|
||
|
||
## 五、测试
|
||
|
||
- ViewModel 单元测试
|
||
- Service 层单元测试(Mock Repository)
|
||
- 关键 UI 流程 Snapshot 测试
|
||
|
||
---
|
||
|
||
## 六、崩溃监控
|
||
|
||
- Firebase Crashlytics 或 Sentry
|
||
|
||
---
|
||
|
||
## 七、Tab 结构调整(待决策)
|
||
|
||
当前 5-Tab(AI | 知识库 | 学习 | 分析 | 我的),存在 AI/学习边界模糊、分析 Tab 内容单薄等问题。
|
||
|
||
建议 MVP 阶段保持现状,收集用户反馈后优先尝试"分析并入学习"(4 Tab)。
|
||
|
||
---
|
||
|
||
## 八、数据埋点
|
||
|
||
- 产品行为事件追踪(app_opened、knowledge_base_created、active_recall_submitted 等)
|
||
- 可先用 PostHog / Firebase
|
||
|
||
---
|
||
|
||
## 当前最应该推进
|
||
|
||
```text
|
||
1. ✅ 后端 API 对接(已完成)
|
||
2. ✅ ViewModel 层迁移(已完成)
|
||
3. ✅ 动效补充(页面过渡 + AI 分析中状态)— 已完成
|
||
4. ✅ 无障碍基础适配 — 已完成
|
||
5. ✅ 本地缓存接入 ViewModel — 已完成
|
||
6. 数据埋点 — P3
|
||
7. 崩溃监控 — P3
|
||
8. 测试 — P3
|
||
```
|