2026-05-17 19:08:59 +08:00
|
|
|
|
# iOS 缺失项与待补全方向
|
|
|
|
|
|
|
|
|
|
|
|
> 仅列出当前未完成的项目。已完成内容见 [`已完成/[已完成]-已实现功能汇总.md`](./已完成/[已完成]-已实现功能汇总.md)
|
|
|
|
|
|
>
|
|
|
|
|
|
> 更新时间:2026-05-17
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
## 一、后端 API 对接(✅ 已完成 2026-05-17)
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
所有页面已对接后端 API,包括知识库列表/详情、学习会话、主动回忆、AI 分析、复习计划、学习活跃统计。全局下拉刷新 + 上拉加载更多已接入,Toast 通知系统已就位。
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
## 二、架构层(✅ 已完成 2026-05-17)
|
|
|
|
|
|
|
|
|
|
|
|
### ViewModel 迁移(已完成)
|
|
|
|
|
|
|
|
|
|
|
|
所有页面的 ViewModel 已就位:
|
|
|
|
|
|
- `AIChatViewModel` — AI 对话消息管理
|
|
|
|
|
|
- `StudyHomeViewModel` — 学习主页任务/进度计算
|
|
|
|
|
|
- `ReviewPlanViewModel` — 复习计划分组管理
|
|
|
|
|
|
- `ProfileViewModel` — 用户资料/偏好
|
|
|
|
|
|
- `LibraryViewModel` / `LibraryDetailViewModel` — 知识库/知识点分页
|
|
|
|
|
|
- `ActivityViewModel` — 分析统计
|
|
|
|
|
|
- `StudyViewModel` / `ReviewViewModel` — 学习会话/复习
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
### 本地缓存层(已完成)
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
- `FileCache` — JSON 文件缓存(泛型 save/load/remove/clear)
|
|
|
|
|
|
- `LocalCache` — 高层缓存服务(缓存优先 + TTL 过期 + 后台刷新)
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
### 本地化(已完成)
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
`zh-Hans.lproj/Localizable.strings` 含 180+ key,覆盖所有页面文案。添加新语言只需创建对应 `.lproj` 翻译文件。
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
## 三、动效(✅ 已完成 2026-05-17)
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
计划要求(P0):页面过渡、按钮反馈、加载状态、AI 分析中状态、学习完成反馈。
|
|
|
|
|
|
|
|
|
|
|
|
已完成内容:
|
|
|
|
|
|
- `ZXAnimations.swift` — 6 个动效组件:`ZXButtonStyle`(按钮缩放+触觉反馈)、`ZXPressModifier`/`.zxPressable()`(任意视图按压效果)、`ZXPageTransition`(页面滑入+淡入淡出)、`ZXThinkingOverlay`(AI 分析全屏叠加层+脑图标光环动画)、`ZXCelebrationView`(五彩纸屑粒子系统+成就卡片)、`ZXAIAnalysisProgress`(分步分析进度条+旋转加载器)
|
|
|
|
|
|
- 所有关键按钮已接入 `.zxPressable()`:提交回答、暂停/继续学习、结束学习、发送消息、任务行、复习评分按钮
|
|
|
|
|
|
- AI 分析流程已接入 `ZXThinkingOverlay` + `ZXAIAnalysisProgress`
|
|
|
|
|
|
- 学习/复习完成已接入 `ZXCelebrationView`
|
|
|
|
|
|
- 页面切换已接入 Tab 过渡动画
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
## 四、无障碍(✅ 已完成 2026-05-17)
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
|
|
|
|
|
关键按钮添加 `.accessibilityLabel`,确保 Dynamic Type 下布局不破碎,重点页面 VoiceOver 测试。
|
|
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
已完成内容:
|
|
|
|
|
|
- Tab 栏 5 个标签页均添加 `.accessibilityLabel`
|
|
|
|
|
|
- 所有关键按钮添加无障碍标签:提交回答、发送消息、暂停/继续/结束学习、复习评分(完全不会/有点难/基本会/很简单)、导航按钮(搜索、通知、设置、创建知识库)、快捷操作、个人资料编辑
|
|
|
|
|
|
- 问答卡片添加 `.accessibilityElement(children: .combine)` + `.accessibilityLabel` + `.accessibilityHint`
|
|
|
|
|
|
- 复习卡片翻转状态通过 `.accessibilityLabel` 区分问题/答案模式,添加 `.accessibilityAddTraits(.isButton)`
|
|
|
|
|
|
- 输入框添加 `.accessibilityLabel`(搜索知识库、AI 学习问题输入框)
|
|
|
|
|
|
- 任务行添加完成状态提示
|
|
|
|
|
|
|
2026-05-17 19:08:59 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 五、测试
|
|
|
|
|
|
|
|
|
|
|
|
- ViewModel 单元测试
|
|
|
|
|
|
- Service 层单元测试(Mock Repository)
|
|
|
|
|
|
- 关键 UI 流程 Snapshot 测试
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
## 六、崩溃监控
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
2026-05-17 22:31:38 +08:00
|
|
|
|
- Firebase Crashlytics 或 Sentry
|
2026-05-17 19:08:59 +08:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 七、Tab 结构调整(待决策)
|
|
|
|
|
|
|
|
|
|
|
|
当前 5-Tab(AI | 知识库 | 学习 | 分析 | 我的),存在 AI/学习边界模糊、分析 Tab 内容单薄等问题。
|
|
|
|
|
|
|
|
|
|
|
|
建议 MVP 阶段保持现状,收集用户反馈后优先尝试"分析并入学习"(4 Tab)。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 八、数据埋点
|
|
|
|
|
|
|
|
|
|
|
|
- 产品行为事件追踪(app_opened、knowledge_base_created、active_recall_submitted 等)
|
|
|
|
|
|
- 可先用 PostHog / Firebase
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 当前最应该推进
|
|
|
|
|
|
|
|
|
|
|
|
```text
|
2026-05-17 22:31:38 +08:00
|
|
|
|
1. ✅ 后端 API 对接(已完成)
|
|
|
|
|
|
2. ✅ ViewModel 层迁移(已完成)
|
|
|
|
|
|
3. ✅ 动效补充(页面过渡 + AI 分析中状态)— 已完成
|
|
|
|
|
|
4. ✅ 无障碍基础适配 — 已完成
|
|
|
|
|
|
5. ✅ 本地缓存接入 ViewModel — 已完成
|
|
|
|
|
|
6. 数据埋点 — P3
|
|
|
|
|
|
7. 崩溃监控 — P3
|
|
|
|
|
|
8. 测试 — P3
|
2026-05-17 19:08:59 +08:00
|
|
|
|
```
|