diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md new file mode 100644 index 0000000..b70d4ef --- /dev/null +++ b/.planning/ROADMAP.md @@ -0,0 +1,64 @@ +# 路线图:ReadViewSDK + +## 概述 + +本次路线图以“**在不扩大范围的前提下**,将 reflowable EPUB 渲染路径替换为参考 `Doc/WXRead/` 的微信读书(WXRead)原生渲染方式”为主线。Fixed Layout 与交互式 EPUB 保持 `WKWebView` 路径不变;除渲染替换所必需的最小改动外,其它能力暂不主动调整。每个 Phase 都以“可验证的稳定性”为完成标准。 + +## Phases + +- [ ] **Phase 1:对齐现状与改造边界** - 明确 reflowable/Fixed/交互式 的判定与现有路径,锁定不做范围 +- [ ] **Phase 2:WXRead 渲染管线方案落地(reflowable)** - 依据 `Doc/WXRead/` 设计并落地原生渲染入口与最小可用链路 +- [ ] **Phase 3:集成与稳定性回归** - 集成到现有 reader 入口,确保主流程与常见内容稳定可用 + +## Phase Details + +### Phase 1:对齐现状与改造边界 +**Goal**:明确 reflowable EPUB 当前渲染/分页路径与切换点,制定替换策略与不做边界,确保 `WKWebView` 场景不被误伤。 +**Depends on**:Nothing (first phase) +**Requirements**:REND-02 +**Success Criteria**(必须为 TRUE): + 1. 能明确判定一本 EPUB 属于 reflowable / Fixed Layout / 交互式(以工程实现为准) + 2. 固定版式与交互式 EPUB 仍走 `WKWebView`,并形成清晰的“保持不改”约束 + 3. 输出一份可执行的实现策略:将 reflowable EPUB 切换到 WXRead 风格原生渲染 +**Plans**:2 plans + +Plans: +- [ ] 01-01:阅读 `Doc/WXRead/analysis/*` 与关键 decompiled 符号,提炼“原生渲染”最小管线与可替换点 +- [ ] 01-02:审计现有 `Sources/RDReaderView/EPUBCore` reflowable 渲染/分页路径,确定切入点与迁移策略 + +### Phase 2:WXRead 渲染管线方案落地(reflowable) +**Goal**:在 SDK 内为 reflowable EPUB 引入 WXRead 风格的原生渲染入口,跑通最小可用链路(可在 Demo 中验证)。 +**Depends on**:Phase 1 +**Requirements**:REND-01, REND-03 +**Success Criteria**(必须为 TRUE): + 1. reflowable EPUB 可不依赖现有 `WKWebView` 渲染路径完成排版/分页/展示 + 2. 渲染结果在 Demo 中可稳定展示(最小支持:段落/标题/基础样式/图片) + 3. 切换判定逻辑清晰、可测,且 Fixed/交互式路径未被影响 +**Plans**:3 plans + +Plans: +- [ ] 02-01:定义并实现 reflowable EPUB 的“原生渲染”模块边界(typesetter/layouter/page model 等) +- [ ] 02-02:对接现有解析与资源加载(manifest/spine/资源寻址),保证图片/CSS/字体等基础资源可用 +- [ ] 02-03:在现有 reader 入口处接入新渲染路径(保持对外 API 尽量不变) + +### Phase 3:集成与稳定性回归 +**Goal**:把新 reflowable 渲染路径完整集成到阅读器体验中,保证主流程稳定可用,并建立最小回归保障。 +**Depends on**:Phase 2 +**Requirements**:STAB-01, STAB-02 +**Success Criteria**(必须为 TRUE): + 1. `RDURLReaderController` 打开 `.epub`/`.txt` 的主流程不回归 + 2. reflowable EPUB 在常见内容下不出现崩溃/白屏/卡死等关键稳定性问题 + 3. Demo 可用于复现与回归验证(至少包含 2-3 本典型 reflowable EPUB 用例) +**Plans**:2 plans + +Plans: +- [ ] 03-01:补齐关键回归用例与诊断手段(日志/开关/快速回退策略) +- [ ] 03-02:对 reflowable 渲染在真实内容上的问题做收敛与修复,形成可持续迭代基线 + +## Progress + +| Phase | Plans Complete | Status | Completed | +|---|---:|---|---| +| 1. 对齐现状与改造边界 | 0/2 | Not started | - | +| 2. WXRead 渲染管线方案落地(reflowable) | 0/3 | Not started | - | +| 3. 集成与稳定性回归 | 0/2 | Not started | - |