Tomelet

设计笔记

折痕如何成了书脊

每台折叠屏手机中间都有一道线。对大多数应用来说,这是需要绕开的麻烦。对一本书来说,这却再自然不过:书一直都有这么一道线。下面讲讲 Tomelet 的阅读器如何学会把折痕当作书脊,以及背后的设计原则。

免费,无需账号。对页阅读属于免费阅读器。

问题所在:被硬拉宽的手机页面

打开一台折叠屏手机,按手机形状设计的应用只是变宽了。一行长得没法读,文字跨过折痕,按钮也可能落在折痕上。合上手机,屏幕被整个重建,离你原来的位置差出一页甚至一章。

Apple 随 iPhone Duo 发布了设计指南;Android 也有自己的折叠屏指南。两者的共识多于分歧,Tomelet 用同一个阅读器同时遵循两者,无论是在 iPhone Duo 上还是在 Galaxy Z Fold 上。塑造它的,是五条原则。

1. 折痕是保留区域

Apple 把折痕称为保留区域:应用应当留空的一块屏幕。Android 会准确告诉应用折痕在哪里,Tomelet 就把两页之间的中缝放在那里,并让点按区域、按钮和选择手柄都远离它。一笔跨过折痕的笔迹会在两页之间拆开,让每一页保留属于自己的墨迹。

在 iPhone Duo 上,编写 Tomelet 所用的工具包 Flutter 目前还不会把折痕的位置传给应用(flutter/flutter#192515),因此 Tomelet 把中缝放在屏幕正中。

这就是从折痕到书脊的那一步。纸质书的中缝里同样什么也不印。那是两页相接的地方。

一部小说的两张对页,左页上一个短语以黄色高亮;两页的正文都在中缝之前停住。
两页,一道中缝:正文在中间之前停住,高亮仍停在它的文字上。

2. 折叠不是离开

Apple 要求设备展开和合上时体验保持连续。Samsung 要求应用保留滚动位置和正在输入的文字。Tomelet 把一次折叠当作屏幕尺寸的变化,绝不当作一次页面跳转。

页码经不起这种变化:外屏以不同的尺寸显示单页,所以每折叠一次,书的总页数都不一样。Tomelet 改为用正文中的位置记住你读到哪里:左页上的第一个字符。它重新排版整本书,打开包含那个字符的那一页,在新画面准备好之前,上一帧画面一直留在屏幕上。高亮、笔记和墨迹都锚定在文字上,所以会随文字一起移动。

不会重新打开,也不会出现广告:折叠永远不会把你带出这本书。

3. 看尺寸,不看旋转

iPhone Duo 的内屏会忽略应用的旋转锁定,Android 17 在大屏幕上也是如此。所以手机朝哪个方向拿,不能决定版式。Tomelet 看的是页面有多少空间:每一页都还能舒适阅读时显示两页,不能时显示一页。同一条规则也适用于平板、横握的手机和桌面窗口。

页面的配对来自印刷书,而不是照片轮播。第一页单独成页,然后是 2–3、4–5,因此出版社设计的跨页总能完整地落在一起。阿拉伯文、希伯来文和竖排日文书从右边开始,向左翻页。声明了屏幕方向的固定版式书,会显示一行可以关闭的提示;阅读器绝不会替你旋转手机。

4. 姿态改变的是布局安排,而不是书

Apple 的指南说,铰链角度是“用于交互和效果……而非用于布局”。Tomelet 同意这一点,所以没有任何页面效果会跟着铰链变化。在 Android 上,姿态改变的是书周围的布局安排。

在报告自己处于半开状态的 Android 折叠屏手机上,像书一样拿着时,折痕两侧各有一页,控件位于外侧边缘。把 Android 折叠屏手机半开着放在桌上,页面就移到上半屏,控件移到下半屏:页面滑块、目录、笔记、外观。这正是 Flex Mode 的理念,在 Android 上直接内置于阅读器中。

在 iPhone Duo 上,Tomelet 在任何角度都保持摊开书本的版式,只待 Flutter 把铰链状态传给应用的那一天。

5. 键盘

键盘弹出时折叠手机,你正在输入的搜索框或笔记,仍会保留其中的文字、焦点和光标。

共享屏幕

与另一个应用并排时——无论是 iPhone Duo 上的 Split View,还是 Android 上的分屏——Tomelet 都只显示一页,不去猜测折痕的位置,并把控件留在外侧边缘。

页边的一支笔

Apple 将为 iPhone Duo 的两块屏幕带来 Apple Pencil(USB-C),Tomelet 的笔工具已经准备好迎接它:在 EPUB 和 PDF 的页边书写,一笔高亮一行,用 Pencil 书写的同时,手指照样翻页、平移和缩放。墨迹锚定在正文上,所以当折叠让页面重新排版时,页边笔记仍留在它所在段落的旁边。跨过折痕画下的一笔,会在两页之间拆开。

我们没有做的

随铰链角度变化的页面效果

你调整握姿时,页面不该跟着晃动。

在 iPhone 上开第二个 Tomelet 窗口

一个能与其他应用好好共享屏幕的窗口,就够了。

为什么是书脊

书是世上最古老的折叠屏。书脊是它弯折的地方,是什么也不印的地方,也是两页约好相会的地方。把折痕当作书脊,并不是给工程硬套上的一个比喻,而是通往一款阅读器的最短路径:让它的表现,和一本书本来的样子一模一样。