ReadViewSDK/.planning/REQUIREMENTS.md

3.5 KiB
Raw Blame History

需求ReadViewSDK

定义日期: 2026-05-21
核心价值: 稳定可用的 EPUB/TXT 阅读体验

v1 需求(本次范围)

渲染内核重构Reflowable EPUB

  • REND-01:直接重构当前 .textReflowable 路径,使 reflowable EPUB 不再依赖当前“简单 DTCoreText renderer + pageRanges 切页”模式,而是具备 WXRead 风格的页面级原生排版能力
  • REND-02:在旧引擎基础上引入 WXRead 风格的 CSS 分层策略(default / replace / dark / epub / user),并让样式作用于章节级 HTML → NSAttributedString 转换过程
  • REND-03:在旧引擎基础上引入自定义 DTCoreText 属性体系与页面级 NSAttributedString 元数据,能够承载分页、块元素、图片、页面语义等布局信息
  • REND-04:将当前简单的 CoreText 切页逻辑升级为具备页面语义的复杂分页器,具备与 WRCoreTextLayouter / WRCoreTextLayoutFrame 核心能力等价的分页与页面布局控制能力

兼容性与主流程

  • COMP-01RDURLReaderController / RDEPUBReaderController 作为公开入口继续可用,.epub / .txt 打开主流程不回归
  • COMP-02Fixed Layout EPUB 与交互式 EPUB 继续使用 WKWebView,行为不因本次改造产生回归
  • COMP-03reflowable EPUB 的阅读位置映射、高亮/选区、搜索结果定位、字号/行高/主题切换后的重新分页在新内核下继续可用
  • COMP-04:当前翻页代码(RDReaderView 及现有 page curl / horizontal scroll / vertical scroll 交互逻辑)不做修改,新内核必须适配既有翻页容器

稳定性与验证

  • STAB-01:至少 3 类样本书验证通过:纯文本/小说类、含图片与复杂段落样式的章节、含外链与多个 CSS 文件引用的章节
  • STAB-02:以上样本在新内核下不出现崩溃、白屏、无限加载、严重错页或关键交互链路失效

v2 需求(延期)

后续增强(不进入当前路线图)

  • PERF-01:定义并达成明确性能指标(首屏、翻页耗时、内存峰值)与持续监控方案
  • INTL-01:更完整的国际化排版增强(如更细粒度 RTL / 连字符断字 / 多语种高级回退)

不做(防止范围漂移)

功能 原因
Fixed Layout EPUB 改为原生渲染 本次明确保留 WKWebView 路径以控制风险
交互式 EPUB 改为原生渲染 交互能力JS/音视频/表单/iframe/外链/bridge更适配 WKWebView,本次不改
修改当前翻页代码(RDReaderView / 现有翻页模式与交互逻辑) 本次只重构 reflowable 渲染内核,不把翻页容器一起纳入改造
直接拷贝使用微信读书私有 JS/CSS/私有实现代码 只能参考设计与行为,不直接搬运私有实现
同时保留两套 reflowable 原生引擎 本次要求直接演进旧引擎,不维护双轨

可追溯性(需求 ↔ Phase

需求 Phase 状态
REND-01 Phase 2 Pending
REND-02 Phase 2 Pending
REND-03 Phase 3 Pending
REND-04 Phase 3 Pending
COMP-01 Phase 4 Pending
COMP-02 Phase 1 Pending
COMP-03 Phase 4 Pending
COMP-04 Phase 4 Pending
STAB-01 Phase 5 Pending
STAB-02 Phase 5 Pending

覆盖统计:

  • v1 需求总数10
  • 已映射到 phases10
  • 未映射0 ✓

Requirements defined: 2026-05-21
Last updated: 2026-05-21 after scope update