IOS-INFO-000:iOS 学习信息采集总设计文档 #108

Open
opened 2026-06-10 21:28:08 +08:00 by wangdl · 0 comments
Owner

目标

输出 iOS 学习信息采集与上传总设计,明确 iOS 在 Rust document runtime、API 学习信息体系、首页继续学习、资料详情页、分析页之间的职责边界。

背景

当前 iOS 侧存在致命问题:

  1. ReadingEventCollector.open/close 被注释,事件链路断裂。
  2. 无本地上传队列。
  3. 首页继续学习硬编码。
  4. 阅读位置恢复仅本地,且 collector.open 被注释后 lastPosition 可能永远为 nil。
  5. 无 ReadingMaterialContext。
  6. 当前只接 V1 document runtime,V2 事件协议尚未接入。

核心原则

  1. Rust document runtime 只接收 materialId。
  2. iOS 负责 ReadingMaterialContext。
  3. iOS 上传时补 readingTargetType、platform、appVersion、timezone。
  4. Rust export 后,iOS 写入本地 ReadingEventUploadQueue 成功后才 ack。
  5. ack 不等 API 上传成功。
  6. ReadingPositionStore 只能作为兜底。
  7. API reading-progress 是主数据源。
  8. 首页 continue 必须替换硬编码。
  9. iOS 不直接判断聚合结果,只负责采集、上传、展示 API 结果。

文档必须覆盖

  • 模块结构
  • ReadingMaterialContext
  • ReadingRuntimeAdapter
  • ReadingRuntimeSessionManager
  • MaterialReaderView 生命周期
  • Heartbeat Timer
  • position 采集
  • Rust export → local queue → ack
  • ReadingEventUploadQueue
  • UploadScheduler
  • API Client
  • reading-progress 查询
  • continue learning 查询
  • 分析页 summary / trend / heatmap 接入
  • 学习历史 records 接入
  • 离线 / 登录状态 / 删除 / 权限错误
  • 调试面板与日志
  • 测试范围

验收标准

  1. 新增 docs/ios-learning-info-architecture.md。
  2. 文档明确 iOS、Rust、API 的职责边界。
  3. 文档明确 iOS 负责 readingTargetType。
  4. 文档明确 export → local queue → ack 顺序。
  5. 文档明确 API reading-progress 优先,本地缓存兜底。
  6. 文档明确首页 continue 替换硬编码。
  7. 文档能指导 IOS-INFO-001~037 实现。
## 目标 输出 iOS 学习信息采集与上传总设计,明确 iOS 在 Rust document runtime、API 学习信息体系、首页继续学习、资料详情页、分析页之间的职责边界。 ## 背景 当前 iOS 侧存在致命问题: 1. ReadingEventCollector.open/close 被注释,事件链路断裂。 2. 无本地上传队列。 3. 首页继续学习硬编码。 4. 阅读位置恢复仅本地,且 collector.open 被注释后 lastPosition 可能永远为 nil。 5. 无 ReadingMaterialContext。 6. 当前只接 V1 document runtime,V2 事件协议尚未接入。 ## 核心原则 1. Rust document runtime 只接收 materialId。 2. iOS 负责 ReadingMaterialContext。 3. iOS 上传时补 readingTargetType、platform、appVersion、timezone。 4. Rust export 后,iOS 写入本地 ReadingEventUploadQueue 成功后才 ack。 5. ack 不等 API 上传成功。 6. ReadingPositionStore 只能作为兜底。 7. API reading-progress 是主数据源。 8. 首页 continue 必须替换硬编码。 9. iOS 不直接判断聚合结果,只负责采集、上传、展示 API 结果。 ## 文档必须覆盖 - 模块结构 - ReadingMaterialContext - ReadingRuntimeAdapter - ReadingRuntimeSessionManager - MaterialReaderView 生命周期 - Heartbeat Timer - position 采集 - Rust export → local queue → ack - ReadingEventUploadQueue - UploadScheduler - API Client - reading-progress 查询 - continue learning 查询 - 分析页 summary / trend / heatmap 接入 - 学习历史 records 接入 - 离线 / 登录状态 / 删除 / 权限错误 - 调试面板与日志 - 测试范围 ## 验收标准 1. 新增 docs/ios-learning-info-architecture.md。 2. 文档明确 iOS、Rust、API 的职责边界。 3. 文档明确 iOS 负责 readingTargetType。 4. 文档明确 export → local queue → ack 顺序。 5. 文档明确 API reading-progress 优先,本地缓存兜底。 6. 文档明确首页 continue 替换硬编码。 7. 文档能指导 IOS-INFO-001~037 实现。
wangdl added this to the M-IOS-INFO:学习信息采集、上传、继续学习与基础分析闭环 milestone 2026-06-10 21:28:08 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/ios-projects#108
No description provided.