前言

最近为了给Amos时间志做一些新功能,看了历年的大量WWDC视频。

2017 WWDC
2017 WWDC

一年一度的苹果WWDC当然不止有我们熟悉的一场产品发布会。接下来还有为期一周的课程,深入介绍苹果软硬件的新特性,以及和全球的开发者进行交流。
这次重看WWDC是为了给Amos时间志重构watchOS端,在这个过程中我突然想到,苹果其实有许多不为人知的努力让我们的产品更加好用。类似Apple手表这件看似常见的苹果产品,从普通用户和开发者的角度出发去看是完全不同的。为何不从开发者的角度出发聊聊,帮助用户了解苹果产品的另一面,从而更好的使用它们。

手腕上的应用

设计苹果手表app
设计苹果手表app

一款优秀的手表端app的标准是什么?

作为一款与手机和电脑都与众不同的贴身电子产品,Apple Watch带来的是一种全新的使用体验。有鉴于此,在这款设备上设计软件的优秀标准与手机或者电脑也不尽相同。然而不论如何,一款优秀的软件必然是结合了设备特性与用户需求的综合品。所以我们首先来看一看这款设备本身。
几年来,苹果和用户都一直在寻找这款设备的定位。从watchOS1.0到watchOS5.0,手表渐渐从一款腕上主打奢侈的时尚单品变成了主打私人健康、运动和信息处理的终端。
虽然款设备的缺点一直非常明显:屏幕狭小、处理速度慢、储存空间小
但它的优点也非常明显:寸步不离、私密性强
渐渐的手表明确了它的三大核心功能:

  1. 运动和健康等个人数据收集
  2. 少量信息的浏览、简单沟通
  3. 简单操作和交互

苹果怎么说

在2016年WWDC上,也就是watchOS2.0推出的那一年,苹果有一期视频专门讲了怎样的软件适合做手表端app,以及在设计上有什么建议。总结起来有三个关键词:

  1. 一眼可知(Glanceable)
  2. 重要信息(Actionable)
  3. 快速响应(Responsive)

基于这个设计准则,苹果甚至不愿意提供一个载入动画,因为它认为假如你的app需要出现载入动画,那一定是设计失败的。虽然我经常在他们自家的app上看到。
话虽如此,苹果自家的app都充分体现了它的设计建议:

null

更进一步理解

由于手表的种种局限,并不是所有软件都适合放到手表端,尤其是需要重度使用、大量交互的。一些信息类的例如新闻、社交;日常使用的软件例如打车、记账、计时;对当前状态改变非常敏感的例如股票、比分、天气等软件是最适合手表端的,也是我们最希望出现的软件类型。
当然随着设备的迭代,适合的软件类型也会越来越多。根据苹果的建议,我认为优秀的手表端app需要做出一定的取舍。将软件中适合在手表上展示或者交互的部分拿出来作为手表端app的全部功能。用最简练的文字和图片,使用最精简的表达方式,实现最重要的交互功能。并且不要让用户等待,非实时的在操作成功或者失败后再次提醒即可。

应用组成部分

与手机端不同,一个完整的手表端app,总共有三个部分组成:

1、可在软件列表显示的主体app

主体app
主体app

2、在表盘显示的小部件

小部件
小部件

3、可交互的定制通知信息样式

定制化通知
定制化通知

除了主体app,其他两样即使没有也可以在手表上顺利运行。只不过使用的体验会大打折扣。因为在不打开主体app的前提下,小部件可以快速获取最新的信息,而交互式通知可以进行简单的操作,例如给司机或者饭店进行评分等。还可以给本地提醒设置不同颜色的特定主题。
刚好Amos时间志作为一款计时软件,与手表的时间属性完美契合。而作为一款用户需要时常了解当前计时状态的app,截止watchOS4.0,已经适配了4款小部件。

发挥Apple Watch的特性

Haptic Feedback
Haptic Feedback

Apple Watch作为一款极精密的设备,有着众多特性。包括内置的各种传感器、可触摸屏幕、Force Touch、Haptic马达、数码表冠等多种部件都可以任由开发者调用去构建手表端的app。
在这次重构的过程中,我根据软件功能需求使用了其中的几样:

Haptic马达

这是一个神奇的东西,从第一代Apple Watch开始就是手表上的标配。甚至可以模拟用户的心跳,然后发给好友。除了功能上的强大,最重要的是Haptic马达与手表的使用场景非常匹配。
在一些私人的场合,许多提醒并不适合用声音进行播放,Haptic马达就可以轻轻的点击两下,来告诉你现在的状态。例如做平板支撑时的倒计时,跑步时的配速和距离等记录,Haptic马达的震动可以用一种非常直观的方式让你不会错过重要信息。
苹果手表一共内置了9种震动方式,分别代表了诸如操作成功、失败、通知等基本信息。官方也强烈建议开发者遵照内置的震动,来表达特定的状态。好让用户在习惯后可以快速分辨当前的状况。

预置的Haptic马达
预置的Haptic马达

Amos时间志中,由于开始或者结束计时需要与iPhone进行信息交换,根据连接状况会有几率产生一定的延迟。而我在加入了Haptic马达的通知之后,用户就可以在操作后放下手腕,不一会儿就会有代表成功或者失败的震动传来。在进行重复番茄钟的时候更是可以用震动提醒休息,或者项目的结束和开始,帮助我们更好的集中注意力。

Force Touch

顾名思义就是重重的按下去,这个技术可以让开发者在手表的小屏幕上设计多一个维度的操作,让我们设计更合理的UI排布。包括在手机端的3D Touch更是多了两个维度,而且似乎还没有一只安卓手机配备该功能。
Amos时间志为例,在软件首页通过Force Touch会出现番茄钟计时、手动添加时间和刷新主页的三个按钮。而主页还是一个整体的列表,并没有做任何改变。

Deep touch
Deep touch

但由于这个功能没有任何提示,不少用户可能会错过,所以我鼓励大家在不同的App上可以多尝试。说不定就有新的发现。
上图右边的手动添加时间页面中,我使用了数码表冠(Digital Crown)来对要添加的时间进行增减操作。在测试了一段时间后,发现这种计时的方式甚至要比在手机上操作还要便捷和爽快。添加备注的功能利用了手表内置的输入方式,主要是通过语音转文字和手写,不过在手表上写中文还是痛苦了点。

通过利用Apple Watch提供的大量功能,可以看到,仅仅通过少量的操作,手表端的Amos时间志已经可以完成大部分的计时相关功能。

Watch与iPhone的数据传输

自从第一代Apple Watch发布后,手表端app的运行速度一直广受诟病。这固然有硬件的限制,但系统的底层设计也是一大因素。
一款手表端的app,可以分为UI和逻辑处理两个部分,最早时候手表上安装app其实只有一套UI,而逻辑处理的部分都在手机上。从watchOS2.0开始,苹果将两套组建都移到了手表上。但app的打开和运行还是卡,这不只是手表性能的问题,大部分用户等待的时间花在了数据传输上。

null

手表和手机的数据传输设计可以说是手表端app开发的最大挑战。假如一款app设计为在打开软件后再去向手机请求数据,就会造成用户举着手腕干等的情况。甚至假如手机端的主app在后台被杀,数据请求就可能失败。无疑这样的体验是很糟糕的,也会让人主观觉得很卡。
所以更好的处理方式是在后台随时更新数据,让不论什么时候app被打开都处于最新的状态。在表盘上显示的小部件,更是需要单独更新,保持时刻处于和手机同步的状态。然而这种思路虽好却也才解决了一半的问题,因为这类可以在后台运行的都是单方向的数据传输。就像信用卡副卡持有人天天消费,主卡持有人只需要在还款日还钱就行,平时平不需要实时响应。就像在手表上手动添加时间这个操作。
手动添加时间
手动添加时间

但还有一种数据传输的方式要求双向交互。就像未成年人的每笔消费需要监护人的同意,不然购买进程就会卡在半途,无法完成。软件也是一样,特别有些操作需要影响手机端的用户数据,无疑就需要手机的认可,以避免重复操作造成损失。
Amos时间志为例,对用户来讲最方便的操作应该是在手机端或者watch端都可以开始一个计时,然后在两台设备都能够关闭。所以计时的状态需要同步到手机和watch两端。
watch开-手机关
watch开-手机关

为了做到这一点,发送数据的时机与方式非常重要。可以说设计良好的数据传输方案,是一款优秀的带有交互功能的手表端app的基础。当然,纯数据展示类的app会简单一些,因为苹果手表具有连接wifi和蜂窝数据的功能,信息流性质的app可以直接从服务器拉取数据。

结尾

随着新款Apple Watch Series 4的发布,苹果在硬件上又做了一些改进,包括更大的屏幕、新设计的数码表冠和改进版心率检测器。在系统端,新的watchOS 5.0加入了Siri ShortCut,以及持续性的运动健康增强。有理由相信,这款手腕上的终端还会持续进化,在创新力上的体现甚至还超越了新款iPhone。
即使不制作专门的手表端app,利用好iOS可交互的本地提醒或者是Siri捷径等功能,其实照样可以在手表端对应用进行很好的操作。
不过我感觉国内软件的watch端普遍比iPhone差了很多,甚至是一些大厂。有好些从watchOS1.0推出后开始就没有怎么更新过。然而Apple Watch发展到如今已经可以实现许多超出我们想象的功能,说不定有一天,就像iPhone革了iPod的命一样,Apple Watch也会取代iPhone。

文中提到软件:

13
1