请教:像起点 / 番茄小说这类 App 的阅读器一般是怎么实现的?

查看 26|回复 1
作者:yoooxin   
大家好,最近在做一个阅读类产品(目前关注 epub 格式),在研究阅读器实现方案时有些疑惑,想请教下有经验的朋友。
目前我能想到的几种可能方案:
[ol]

  • WebView + 深度定制
  • 比如基于类似 foliate.js / epub.js 这种排版引擎
  • 自己接管分页、段落拆分、行高、字体、主题、进度等
  • 优点是跨端快,缺点是需要大量 Hack WebView 行为

  • 原生实现排版
  • iOS 用 CoreText / TextKit
  • Android 用 StaticLayout / 自绘
  • 完全自己控制分页、缓存、手势、动画
  • 工程量巨大,但体验最好?

  • 混合方案
  • 数据层按“句 / 段”切好
  • 原生做分页与交互
  • 但排版规则可能还是参考 Web 的模型?

    [/ol]
    我比较困惑的是:
  • 番茄小说 / 起点读书 这种体量和体验都很成熟的阅读器
    👉 更可能是完全原生自研,还是基于 WebView 深度魔改?
  • 现在主流商业阅读 App 是否还在使用 Web 技术栈?
  • 如果是原生实现,一般是 “按页缓存” 还是 “按段落流式计算”

    目前我自己倾向于认为:

    早期可能 WebView ,成熟后大概率是原生排版引擎

    但没有实锤证据。
    如果有做过阅读器、电子书、小说 App 的朋友,或者踩过相关坑,欢迎分享一下你们的实践经验 🙏
    也很欢迎推荐一些值得研究的开源项目或技术方向。
    感谢!
  • chengYT   
    看看开源代码?
    readest: https://github.com/readest/readest
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部