当前位置: 首页 > 科技观察

关于AppleWatch,听听开发了两个月WatchApp的工程师怎么说

时间:2023-03-13 23:44:14 科技观察

有幸在今年1月份受苹果邀请,偷偷参与AppleWatchApp的现场调试。4月,AppleWatch将正式推出。在此之前,它被认为是第一个亲身体验AppleWatch,并开发了WatchApp的应用程序。一些心得分享给对AppleWatch感兴趣的同学。支付宝钱包的同学和我们一起走。微信团队也和我们同时去了。苹果官方不允许第三方开发者团队相互交流,但我们还是找机会一起聊了聊。AppleWatch提供两种尺寸和三种版本,更有个性多样的表带可供选择。看到真机戴上之后,整体感觉就是太小了。38mm和42mm,其实用手指捏一下就可以估计出大小。42mm的版本对于我的体型来说大小差不多,体型稍大的男同胞肯定会觉得比较袖珍。三个版本的区别在于手表和表带的材质。手表本身和软件之间没有区别。测试的时候没看到纯金版,抱歉。腕带完全独立且个性化。估计正式推出后,腕带配件会很受欢迎。运动版的腕带材质感觉很廉价,扣子也没有完全被磁铁吸住。如果你习惯了MagSafe或Smartcover的全磁吸附,你会觉得它比较Low。厚薄的感觉跟尺寸有很大关系。38mm的版本看起来比42mm的版本要厚很多,戴上去也不会觉得很碍事。屏幕分辨率分别为272×340和312×390,尺寸纵横比为4:5,均达到了Retina级别,精细度足够高。设计师只需要@2x.png进行绘图。蓝宝石玻璃表面,陶瓷表背。手势点击、垂直滚动、水平切换。这些手势类似于手机上的手势。为了更好地浏览手表界面,增加了数码表冠和力度触控。DigitalCrown就是滚轮,可以进行滚动、缩放等操作。同时,滚轮中间其实还有一个Home键。单击它返回主页。数码皇冠让手指粗的同学有了希望,让一些浏览操作可以在屏幕外进行。试想一个手指粗的同学,用手指盖住小表盘一定很尴尬吧。ForceTouch就是我们所说的刺拳。戳戳手势将调出菜单页面。通过这种方式,开发人员可以为当前页面添加一些额外的交互选项。DigitalCrown和ForceTouch手势目前没有开放,这意味着手势的效果是固定的,开发者无法获取手势的具体执行信息。WatchKit没有自定义手势。Sensor心率传感器:通过心率检测结合相应的分析可以提供很多健康数据,心率检测也针对不同的运动场景进行区分。对于专注于医疗保健的应用程序,这是主要关注点。加速器:用于检测身体运动和计步,检测运动类型,计算卡路里。如果是这样的话,准确度可能和普通手环相差不大。好在配合手机的GPS和WiFi,可以实现普通手环无法实现的精准测量。TapticEngine:准确来说,这不是传感器,这是苹果用来实现触觉反馈的线性执行器。触觉反馈被称为下一代交互形式,它主要出现在包括Oculus在内的游戏控制器中,为佩戴者提供触觉反馈。AppleWatch通过TapticEngine与佩戴者进行更亲密的互动,甚至可以向好友发送心跳信息。App表现形式WatchKitAppWatchKitApp是整个WatchApp的主体,承载着Glance和Notification。信息可以以比较丰富的样式展示,大部分关于手表的想法和UI交互应该在这里实现。WatchKitApp的交互方式可以想象成一个精简定制化的小屏iOSApp,但是iOSApp的很多UI框架在这里是不能用的。相应地,Apple为WatchApp创建了另一个UI框架。但是切换的成本并不高,一方面是因为目前的WatchUI库还很简单;另一方面,在iOSApp上可以找到很多与UI库的对应关系,例如:WKInterfaceController对应UIViewController,WKInterfaceImage对应UIImageView等。GlanceGlance是一种专门针对手表的信息浏览方式。你应该在这里展示用户会实时关心的你最重要的数据。比如航班应用的当前航班信息,TodoList应用的完成状态信息。Glance的这种交互方式是基于用户可能不想以浏览的方式阅读手表上的信息的考虑。用户习惯举手看一眼,然后放下。因为我一直依靠我的手表来报时,仅此而已。Glance不支持交互,点击只能跳转到WatchKitApp,所以设计时不要考虑加入按钮等元素。只有一个Glance界面,不支持滚动视图,只有一个大致正方形的Group可以自定义。NotificationNotification是在设计WatchApp时需要考虑的一个环节,它不同于移动应用中通知的状态。手表上的通知样式非常多样。虽然格式和手机端一样,但是定位却是完全不同的呈现方式。我们需要丰富现有的通知数据来利用,尤其是iOS8加入了Notification交互之后,通知的交互也逐渐丰富起来。手表上的通知有两种形式:短视和长视。ShortLook提供简单的文本信息;LongLook分为Static和Dynamic。Static的样式由设计决定,而Dynamic提供了根据通知内容自定义UI的能力。通知是到达手表还是手机,由系统决定。我在现场测试时,如果我从后台关闭手机应用程序,然后锁定屏幕,通知将来自手表。Glance和Notification对字体有限制。默认情况下,只能显示系统字体。如果需要自定义,需要渲染成图片显示。iOS上的UI布局纠结到底是用代码还是xib还是StoryBoard来写UI,现在可以彻底告别了。WatchApp开发中的所有UI元素都必须在设计时通过StoryBoard添加,我们不能再在运行时向界面添加或删除元素(可以隐藏)。某些与布局相关的属性,例如行高和行数,无法在运行时更改和设置。基本上在运行时我们只能改变视图的内容,通过隐藏某些视图元素来实现有限的布局变化。WatchKit提供的布局可能性和灵活性相对较小。只能以“行”为基本单位,通过Group在行中进行“列”布局。由于Group是单层平面的填充布局,view无法叠加,给界面设计和交互带来了挑战。目前开放给第三方的动画方式只能是帧动画,类似gif效果,有人为了准确达到360度盘动画效果,用了360的图片。自带的app炫酷的动画效果还不能实现。以上三点需要设计师多加注意。一不留神就开始胡闹了。不要让开发人员难堪。SanFrancisco字体AppleWatch内置了一种新字体“SanFrancisco”,专门用于小屏幕排版和交互。新字体压缩大字体中的复杂字母(例如“g”或“y”)以节省垂直空间;而在小字号的情况下,笔划之间留有更多的空间以确保用户可以清楚地识别它们,并且标点符号的大小会相对较大。当字体大小或文本区域发生变化时,AppleWatch会动态调整字体粗细和字体大小,以确保最佳阅读效果。限制还是很多的。虽然作为第一代的新产品,比iPhone一代刚出来的时候开放了很多,但是苹果还是小心翼翼的把很多权限掌握在手里。目前我们可以看到,AppleWatch上预装的很多应用都非常优雅,功能方面应该会有不少提升。第三方开发者暂时无法访问的一些主要信息包括:传感器信息不提供给第三方应用;动画API尚未发布。在;不允许执行需要权限的任务、后台任务、耗时任务。Apple也在不断地试验应该给Watch什么样的权限和开放能力,包括在Beta版本中频繁的API变更,以及一些权限的开放和撤回。与AndroidWear相比,在软件层面,AppleWatch和AndroidWear有很多相似之处:依赖手机处理;通知的重心增加了;应用程序设计是轻量级的。虽然有很多相似之处,但现阶段的AppleWatch和AndroidWear对App的定位有着根本不同。对于AndroidWear来说,手表上的App等同于手机上的App,甚至手表的计算也依赖于手机。对于AppleWatch,其工程结构是iOSApp的延伸。或许这种差异,会导致两人日后走向完全不同的道路。在苹果live真机中,手机上会有专门的Watch管理应用,可以对手表上的应用和信息进行管理和设置。据说以后这里会有手表应用商店。AppleWatch的定位现在对于智能手表的看法是多种多样的。有些人认为腕带甚至不需要屏幕就可以做事;发现无能为力是令人沮丧的。从目前苹果的战略重点来看:装饰品:手表首先是装饰品,真正用手表看时间的人并不多。Apple意识到了这一点,并引入了各种定制和变体,但还不够好。所以目前有很多产品想从这一点上与AppleWatch竞争。健康管理:结合我们在现场看到的一些应用,最让我感兴趣的是健康追踪功能。从iOS8开始,苹果开放了HealthKit框架,开始搭建健康管理平台。作为一个塞满了这么多传感器的可穿戴设备,手表可以带来很多手机无法提供的健康数据。控制器:手表作为控制器的便携性是天生的优势。HomeKit推出后,可想而知苹果对智能家居的考虑。已经有一些很酷的尝试,比如操作飞利浦的HueLight智能灯泡,甚至控制特斯拉。注:本文作者为手机淘宝开发工程师贾富。傅家和同事去年12月受苹果邀请,2015年1月赴美国,在位于加州硅谷的苹果总部CupertinoAppleCampus进行了为期一周的秘密调试。