V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Yukisama
V2EX  ›  分享创造

做了一个移动端的 ePub 和 mobi 的阅读器

  •  
  •   Yukisama · 16 小时 35 分钟前 · 660 次点击

    最近一段时间看的电子书比较多,就准备找一个的电子书阅读器,顺便建立一个书库。

    一开始选择了 iOS 自带的图书 App ,好处就是 ePub 样式支持完美,能够显示各种复杂样式,界面简洁还支持云同步,但是却没有类似文件夹之类的分类功能,一个系列的书籍只有在他图书商店买的书籍才会自动分类到一起,自己导入的第三方图书就没办法合并了,如果像有些轻小说数量较多的只能用类似标签的方法分类,但是感觉终究只是替代方法,标签不支持搜索,建立太多标签也会影响原本的分类功能,遂放弃。

    然后是多看阅读,这个之前使用小米设备的时候就了解过,对 ePub 的样式支持也非常好,也能支持云同步,还解决了苹果图书没有文件夹分类的问题,但是却没有标签分类了,文件夹也不支持搜索,查找起来会比较麻烦,外加多看主要功能还是在线书城,还是想要一个简洁的纯粹的阅读器,最后还是放弃了。

    之后也尝试了 App Store 里面各种各样的阅读器,但是大部分最主要的问题就是对 ePub 的样式支持不完善,问题少一点的一般是字体样式丢失,复杂的 css 样式无法显示,问题大一点就是各种排版混乱,图片异常拉伸,脚注的小图标也会识别成一个巨大的图片,导致阅读体验下降。最后都还是选择了放弃。

    之后想到了正好申请的开发者证书还在,就打算自己尝试用 Flutter 写一个本地阅读器,但是无奈技术太菜,前前后后用了一个月的时间才差不多完成,再加上没有 Mac 电脑,调试起来比较麻烦。

    这里吐槽苹果的 Webkit ,很多地方和安卓端表现差异太大了,在模拟器上调试好了放到 iOS 设备上之后总是出现一些奇奇怪怪过的问题,一些 Flutter 的第三方库的表现也有些不同,让原本就缓慢的进度雪上加霜。

    最后还是勉强做了个雏形出来,实现了阅读器的大部分功能 [阅读样式调整、系列分类、标签分类、书籍信息编辑、阅读计时器……] ,在开发过程中也学到了不少东西,后续准备增加 WebDav 实现云同步的功能,不过目前还没想好具体的方案。

    代码写的太烂就不放出来丢脸了,已经上架了 App Store ,欢迎下载体验:

    iOS:App Store 下载链接

    Android:蓝奏云 密码:15532

    交流反馈 QQ 群:979919343

    预览:

    预览图 1 预览图 2 预览图 3

    第 1 条附言  ·  2 小时 48 分钟前

    刚刚发现蓝奏云手机端下载需要收费,于是增加新链接: 下载链接

    20 条回复    2025-01-18 12:21:33 +08:00
    FanyFull
        1
    FanyFull  
       16 小时 27 分钟前
    有想法就开干,你是这个👍 话说,flutter 开安阅读器会有性能的问题吗?比如,翻页时候的刷新率稳吗?
    zoharSoul
        2
    zoharSoul  
       15 小时 49 分钟前
    webview 的有个问题, 仿真翻页怎么办呢?
    zoharSoul
        3
    zoharSoul  
       15 小时 48 分钟前
    @FanyFull #1 看描述是 Webview 的, webview 是系统原生组件和 flutter 性能关系不大了
    Yukisama
        4
    Yukisama  
    OP
       15 小时 32 分钟前
    @zoharSoul 仿真翻页目前没有实现,只是做了翻页的平滑过渡,如果要做的话应该只能用 CSS 在 WebView 中实现了
    rainrdx
        5
    rainrdx  
       14 小时 57 分钟前 via iPhone
    完全是我个人的需求了,亚马逊逐渐转向 KFX 格式,现在也有比较完善的 KFX 转 EPUB 代码了,但是还是没有第三方阅读器直接支持 KFX🥹希望作者有机会考虑
    Yukisama
        6
    Yukisama  
    OP
       13 小时 36 分钟前 via iPhone
    @FanyFull 在 iOS 上测试,感觉并没有遇到性能问题,因为书籍部分是用系统的 WebView 来渲染的,Flutter 不会影响到性能,安卓上只有在模拟器上测试过,也是没什么问题的。
    Yukisama
        7
    Yukisama  
    OP
       13 小时 28 分钟前 via iPhone
    @rainrdx 更多格式也在适配支持,没有看到过 KFX 这个格式🥲,需要研究一下怎么做
    daiqc
        8
    daiqc  
       12 小时 34 分钟前 via Android
    安卓的下载链接需要会员
    rainrdx
        9
    rainrdx  
       11 小时 34 分钟前
    @Yukisama 谢谢你了
    现在完全成形的转换插件是这个
    https://www.mobileread.com/forums/showthread.php?t=291290&highlight=symbol

    但是没有任何阅读器。主要的问题是亚马逊转向 KFX 格式,我只买正版书,拿到的就是 KFX 。我可能是少许买了正版书又不想用亚马逊生态系统看书的哪些用户。。。。。。
    wszbdyyy
        10
    wszbdyyy  
       11 小时 4 分钟前
    支持一下,有想法就干
    ysc3839
        11
    ysc3839  
       10 小时 42 分钟前
    @rainrdx 转换吧。其他很多正版平台下载下来的是加密的 epub ,要用 calibre 配合 NoDRM 等工具解密,也算是要转换了。
    leonme
        12
    leonme  
       4 小时 10 分钟前 via iPhone
    pad 左右排版是强制的呀?
    Yukisama
        13
    Yukisama  
    OP
       2 小时 47 分钟前
    @leonme 是需要那种使用上下滚动来翻页的选项吗?
    Yukisama
        14
    Yukisama  
    OP
       2 小时 45 分钟前
    @daiqc 感谢提醒,没想到手机端下载还需要收费,已经增加了新的链接
    Zys2017
        15
    Zys2017  
       1 小时 58 分钟前 via Android
    能不能支持添加 txt 呀
    leonme
        16
    leonme  
       1 小时 22 分钟前
    @Yukisama #13 对,就是一整行一整行铺满屏幕,上下滑动的哪种效果 我发现苹果的图书在 mac 和 ipad 的横屏下也是这种左右的,且不可调节,不太灵活
    Yukisama
        17
    Yukisama  
    OP
       52 分钟前
    @Zys2017 #15 txt 会支持的,应该很快就会上线
    Yukisama
        18
    Yukisama  
    OP
       50 分钟前
    @leonme #16 因为最开始没有这个需求,所以暂时没有做,之后会添加这个功能,在设置中切换两种模式
    howie110
        19
    howie110  
       43 分钟前
    ios12.4 ,导入的是 epub ,能在书库看到。但点进去开始阅读就一片空白,不能翻页,只显示电量、进度 0.00%、当前时间
    falcon05
        20
    falcon05  
       26 分钟前 via iPhone
    有没有在墨水屏安卓设备上测试过?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2622 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 04:48 · PVG 12:48 · LAX 20:48 · JFK 23:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.