我们如何让App为iPhone Duo做好准备
打开或合上iPhone Duo时,Smart Dentist、Smart Billing和Smart Coach都会停在您原来的位置。我们改了什么、放弃了什么、学到了什么。
iPhone Duo可以折叠。合上时,您使用窄长的外屏。打开后,您会得到一块宽阔的内屏。无论正在做什么,您都可以中途在两块屏幕之间切换。
过去几周,我们一直在让Smart Dentist、Smart Billing和Smart Coach为它做好准备。下面介绍App里改了什么、我们试过又放弃了什么,以及我们学到了什么。
先做了自己的设计,后来放弃了
我们最初的想法是专门为折叠屏做设计。在Smart Dentist上,我们做了双页布局:一侧是列表,另一侧是详情;左边是筛选,右边是结果;还有双栏网格。我们前后改了六轮。
没有一个站得住。把屏幕分成几块,留下了半空的页面,而且每次打开手机,布局都会跳动。
于是我们回到Apple自己的指南为iPhone Duo做好准备。它没那么令人兴奋,但好得多。用新工具构建,让App像窗口一样调整大小,修好那些假定屏幕尺寸固定的地方,并在每种尺寸下测试。Apple对内屏的目标是:让它感觉像App的iPad布局的“自然延伸”。
每种姿态都是同一个屏幕
这成了我们的主要规则。打开或合上手机时,您会完全停在原来的位置。同一个屏幕,屏幕上的同一个位置,表单里输入了一半的内容也都还在。
听起来理所当然,但我们有一款App就违反了这一点。Smart Billing只要屏幕变宽,就会切换到边栏布局。在iPhone Duo上,这意味着每次折叠都会让App从“Dashboard”(仪表板)重新构建,写了一半的账单就丢了。现在Smart Billing在iPhone Duo上只保留一种布局,您在外屏上开始的账单,就是您在大屏上完成的那张。
不用边栏:标签栏保留
在iPad上,宽屏往往意味着边栏。我们决定在iPhone Duo上不用边栏,所有App都一样。标签栏保留,页面使用全部宽度。
变化的是标签栏的位置。在外屏上,以及横握打开的Duo时,系统会把它移到沿边缘的一条窄侧栏里,挨着摄像头和状态图标。竖握时,它像往常一样位于底部。
按钮与摄像头对齐
状态图标移到侧栏后,外屏顶部就空出来了。我们的仪表板在顶角有几个按钮,比如设置。我们把它们与外屏的摄像头对齐,让它们处在同一条线上,而不是挤在边缘。打开Duo后,它们仍保持这条线,带摄像头的侧栏也不会挡到它们。
这也让我们发现了最常见的bug。Smart Dentist只在屏幕首次出现时测量一次屏幕顶部的空间。在外屏上,这块空间几乎为零。竖着打开后,它要高得多。所以打开手机后,按钮就跑到了状态图标下面。解决办法是每次窗口变化时都重新测量。只读一次的尺寸,屏幕一调整大小就过时了。
名字换行,而不是“…”
外屏很窄,卡片上的长名字会被截断(“Aaron Benn…”)。我们不喜欢把名字藏掉一半,所以在iPhone Duo上,空间不够时,名字和日期现在会换成两行显示。
问题还出现在我们没想到的地方。在Smart Billing里,我们修好列表之后,账单上的项目行仍会截断“Project Manage…”这样的名字。我们的截图检查发现了它们,现在它们也会换行了。
我们只在iPhone Duo上这样做。如果到处都换行,App在小尺寸iPhone上的样子就会改变。
其他设备上什么都不变
这是从第一天起的硬性规则:为iPhone Duo做准备,不能改变我们的App在任何其他iPhone、iPad或Mac上的表现。
所以我们做了检查。我们在运行iOS 27和iOS 18.5的iPhone以及iPad上,拍下改动前后的截图并逐一对比。唯一的差别是时钟之类的系统细节,以及动画之类的动态效果。在Mac上,iPhone Duo的代码根本不会被包含进去。
这项检查物有所值。有一处被Xcode自己的检查标为安全的改动,让Smart Dentist的患者卡片在iPad上移动了16 pt。我们放弃了这处改动。
窄长灵动岛上的实时活动
Smart Dentist的“Clinic Day”(诊所日)和Smart Coach的“Coaching Day”(执教日)实时活动会在灵动岛里显示倒计时。在iPhone Duo上,灵动岛沿侧边竖向排列,所以它的紧凑视图几乎没有宽度。我们的倒计时被截得只剩一位数字:“4…”。
这不只是iPhone Duo的问题。在iOS 27中,任何iPhone横过来时,灵动岛也会保持可见,而且在那里它同样无法变宽。同样的倒计时在那里也被截断了。
Apple在WWDC26的讲座实时活动基础知识中讲到了这一点。当isDynamicIslandLimitedInWidth为true时,App应该显示一个为这块空间设计的简短视图,比如一个符号、一个小仪表或一个固定宽度的数字,而不是硬塞文字。我们就是这么做的:在灵动岛较窄的地方,倒计时现在是一个圆环,随着时段推进逐渐清空。在普通iPhone上竖握时,数字放得下,您仍会看到分钟和秒数,和以前完全一样。
我们在合上和打开的iPhone Duo上、在iOS 27上横屏的iPhone上,以及在iOS 18.5上(那里什么都不变)都做了检查。模拟器本身无法旋转手机,也无法长按灵动岛,所以我们写了一个小型自动化测试来完成这两件事并截图。
新的App Store截图
我们为每款App的App Store页面制作了一套iPhone Duo截图。它们与iPhone截图逐屏对应,覆盖页面使用的每种语言,每张都把同一个屏幕展示两次:一次在横握打开的Duo上,前面再放一台合上的Duo。
我们学到了什么
- 先看Apple的指南,再去发明自己的设计。
- 让用户停在原来的位置。打开手机绝不应该让他们正在做的事从头开始。
- 窗口大小一变,就重新测量。
- 用截图而不是看法,证明其他设备没有变化。
- 模拟器无法展示真实的展开动画。iPhone Duo上市后,我们会在真机上检查。
对于Smart Dentist,我们在Apple的iPhone Duo模拟器里走遍了每一种姿态:合上、平放展开、竖直展开、像书或笔记本电脑一样半开,以及它们之间的切换,并覆盖浅色和深色模式以及阿拉伯语。
支持Duo的版本
Smart Dentist 5.1.1、Smart Billing 5.0.2和Smart Coach 4.0.2是我们支持iPhone Duo的版本。iPhone Duo将于2026年10月23日开售。在其他所有iPhone、iPad和Mac上,这些更新的外观和使用方式都与以前完全一样。