来自孩子的诗词需求
最近女儿迷上了《中国诗词大会》,平时自发的开始背古诗了,立即我就给她买了许多相关的实体书。但是给她买的诗词书籍有个问题,就是经常会遇上生僻字,女儿不认识。还有些异体字、多音字。而且这其中的许多并没有注释说明,这就需要翻字典。遇到了吃不准读音的生字,连查字典都不一定能解决问题。一来二去女儿就对读诗的兴趣减弱了大半。
理所当然我就开始寻找某个App来试图解决这些问题。
- 首先是略有耳闻的“某某烛“,确实UI很有质感,但是许多功能和交互因为设计的关系藏的很深,孩子用不明白。此外这软件又大又杂,社区、集市、写作、AI,什么都往里放,纯粹的阅读体验很久没有更新升级了,许多按钮点了之后不知道跳转到哪里。不得已我开始寻找其他的诗词软件。
- 谁知道连下了10几个都没有找到满意的,大部分构架老旧,看得出很多是早古以前用OC或者跨平台框架写的,UI和特性都不够现代。更糟的是恶性bug很多,估计用户少、技术迭代快、更新麻烦,作者也没心思维护了。少数几个看上去还行的,仔细用了才发现其实是Web的封装,必须全程联网不提,也不具备黑暗模式、屏幕尺寸自适应、多设备登录这些原生应用的流畅体验。收藏的诗词常常找不回来。
正好在站内写了关于 SwiftUI 的介绍后,我花了大半年搭建和验证了私有 Swift 组件库。最近也完成了构建,是时候用一个全新的项目来验证其实用性。
于是我就和女儿一起开始盘点需求:
- 离线使用、作品丰富
- 任意查询生词的读音和古文释义
- 每一首诗词都要有高质量的朗诵
- UI清晰简洁,功能不复杂
有了明确的需求,再加上我的一点点工作,于是就诞生了这款原生多设备的诗词应用。经过我们一段时间的测试,已经比较稳定。所以我希望能有更多喜爱诗词和中国古代文学经典的朋友一起体验这款产品,提出宝贵建议。
打磨阅读、收藏、检索
作为一款纯粹的古诗词阅读应用,以下三项是我心目中的核心体验。
- 查找:快速准确的找到作品
- 收藏:随时收藏和快速查看
- 阅读:良好沉浸的阅读体验
查找系统分为“归档”和“搜索”两个部分。归档类似以前的黄页网站,根据作品的某个特点进行归纳,例如同一个主题、同一个作者的作品就会被放到一块。这也是大多数诗词分类的基本操作,主打一个操作简单,分类详细和准确。
搜索更加复杂一些,除了常规的标题、内容、作者、类别、主题的搜索外,我根据《中国诗词大会》的灵感,添加了飞花令和诗词接龙的搜索,还有内置的古汉语词典。其中的诗词接龙,就是根据某个字或者词,查询内容首个字匹配的诗词作品。这算是一些巧思。
收藏的目标就是做一个符合用户直觉的系统。就是在使用软件的时候,用户觉得这里我应该可以收藏,那就应该有一个收藏的按钮。值得一提的是,整个应用对飞花令、关键词的搜索和收藏做了专门的优化,我相信这也是很多诗词爱好者非常喜爱的游戏方式。
阅读是我整个应用最早开始制作验证的模块。假如没有让人满意的阅读体验,也就不会有后面的一切。但想要做到这一点其实是很困难的,良好的阅读体验需要统一内容呈现和作品详情两者的关系。举个例子,有些知名的作品,例如苏轼或者李白的诗词,会有许多的背景、解析、翻译、点评、介绍相关的说明,还有作者本身的介绍和其他作品陈列等。通常的做法是将它们一股脑放在正文下方,但这样子它们在视觉上就抢占了属于作品本身的注意力。
在尝试了多种布局后,我最终选择了悬浮式的列表,这样用户在专注内容时可以关闭该列表,相反则可以将悬浮列表放大,仔细的研读作品解析。然而这样的方式在iPad、Mac等大屏上却又没有必要,屏幕变大后其实页面呈现的逻辑反而可以更加丰富,这样会更符合用户的使用预期。
在收录了四大名著、二十四史、经史子集、古文观止等多篇长文之后,我发现支持 iPad 等大屏设备其实是一种必然。于是我又优化了大屏使用和长文章阅读的体验,顺便加上了底层的文字显示自定义属性,使得字体、大小、边距、行距等都可以根据喜好调节。
不知道为什么,随着年纪增长和阅读量的增加,有时候我和一些朋友就会出现阅读经典的需求。就是想读一些经历过岁月和时间洗礼的文学和思想。但是书籍的版本繁多,有时候不好选择,而且一些公版书的阅读体验也是一言难尽,甚至还会缺少内容。生词的读音和释义和诗词一样,也经常需要查询。所以在应用已有的框架内,我优化了阅读、目录、排列等体验,也花了不少时间校验文字和内容的完整性。
哪里不懂查哪里
既然初衷是给孩子使用,那么在学习的细节上我也花了很多心思。类似当年的学习机广告:“哪里不懂点哪里”,在应用查看作品时,用户也可以选择标题、正文的任意文字,然后通过内置的古文字典查看读音和释义。在我和女儿观看《中国诗词大会》的时候,发现很多选手会因为某个字不知道准确含义或者写法而饮恨赛场。扎实的学习是非常重要的,我希望软件可以帮忙降低做到这一点的门槛。
准确的读音是另一个诗词学习的难点。为此,用户不仅可以将字体换成直接带拼音注释的字体,也可以通过点选查看任意文字的多个发音和释义。而有些作品的文字发音可能随着时间会发生变迁,为此我也接入了在线百科,可以直接上网查询最新的相关信息。
另一个挑战是作品的朗诵,有些诗词应用会内置一些人工录音的朗诵,但覆盖的作品范围很小。相比整个数据库的十几万首诗词根本是杯水车薪。还有些会直接调用系统蹩脚生硬的TTS功能,面对比日常对话更加困难的格律诗词,系统语音经常会断句错误、多音字搞错,且没有任何情感。正好我在做另一款应用的时候发现微软有专门针对诗歌的深度学习神经引擎TTS,刚好可以用在这个项目,经过测试效果也非常不错。
诗词学习的另一个重心是背诵,对此我没有很多经验,自己的诗词储量也仅是半吊子。所以我借鉴之前一款背单词的应用,使用了卡片的形式进行学习和背诵。而学习计划列表和收藏列表是区分开的,毕竟喜爱和想要背诵是两回事。
诗词之外
这并不是一个很复杂的应用,也没有太多不相关的功能。未来的开发计划除了根据测试的反馈进行修改外,还会做一些诗词游戏,例如飞花令或者接龙,可以让用户在闲暇时候通过游玩的方式增强记忆。此外也会尝试更多AI接入的方式,但这取决于我另外关于AI的工作。因为我更想训练一个专门的本地大模型,与用户进行游戏或者是辅助写作之类的工作。毕竟我们的需求第一条就是离线使用。
此外我还花了几天做了一个成图分享的功能,集成了比作品显示更高自由度的配置项。但受限于审美,我无法给大家预置很多精美的模版,大家自由发挥吧。
如何参与公测
对古诗词或者小众App感兴趣的朋友,或者是有孩子要学习诗词,可以下载试用这款应用。
使用任何苹果设备打开链接根据引导下载 TestFlight 即可。对于真诚试用并且愿意提出建议和想法的用户,在测试结束后会根据建议质量赠送终身会员的兑换码。尤其是针对大屏设备例如iPad、Mac端的建议。
下载链接:https://testflight.apple.com/join/XGbyvG2n