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

一开始选择了 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

举报· 928 次点击
登录 注册 站外分享
8 条回复  
daiqc 初学 6 小时前
安卓的下载链接需要会员
Yukisama 楼主 初学 昨天 23:19
@rainrdx 更多格式也在适配支持,没有看到过 KFX 这个格式🥲,需要研究一下怎么做
Yukisama 楼主 初学 昨天 23:11
@FanyFull 在 iOS 上测试,感觉并没有遇到性能问题,因为书籍部分是用系统的 WebView 来渲染的,Flutter 不会影响到性能,安卓上只有在模拟器上测试过,也是没什么问题的。
rainrdx 初学 昨天 21:50
完全是我个人的需求了,亚马逊逐渐转向 KFX 格式,现在也有比较完善的 KFX 转 EPUB 代码了,但是还是没有第三方阅读器直接支持 KFX🥹希望作者有机会考虑
Yukisama 楼主 初学 昨天 21:15
@zoharSoul 仿真翻页目前没有实现,只是做了翻页的平滑过渡,如果要做的话应该只能用 CSS 在 WebView 中实现了
zoharSoul 初学 昨天 20:59
@FanyFull #1 看描述是 Webview 的, webview 是系统原生组件和 flutter 性能关系不大了
zoharSoul 初学 昨天 20:58
webview 的有个问题, 仿真翻页怎么办呢?
FanyFull 小成 昨天 20:20
有想法就开干,你是这个👍 话说,flutter 开安阅读器会有性能的问题吗?比如,翻页时候的刷新率稳吗?
返回顶部