自从去年9月份第一个版本发布以来,Apple Watch以其优良的工艺设计和创新的产品体验,不仅在广大果粉中赢得赞誉,也引起了用户的广泛关注。据TalkingData的Apple Watch用户洞察报告,在上市短短10天,就监测到国内有超过2.5万的Apple Watch活跃。虽然用户大都是在一线城市的高富帅或白富美,但是其用户热度超越预期。可以预见的是,随着Apple Watch功能的逐步完善,用户体验会日益改善,业界对Apple Watch的支持将持续增强——这很可能是下一个爆发点。
TalkingData于6月中旬升级了移动App统计分析平台,在国内率先推出对Apple Watch的统计分析功能,让Apple Watch应用开发者提供了很大的助力。但是毕竟Apple Watch是一个相对比较新的平台,大家还需要一段时间学习和适应。所以TalkingData前端工程师根据自己的研究,整理出一些内容分享出来,希望能够对广大开发者有所帮助。
对于Apple Watch开发者,有两个基本概念需要理解:
1. Watch App,运行在Apple Watch上,只包含与UI相关的storyboards和资源文件。
2. WatchKit Extension,运行在iPhone或Apple Watch(WatchOS 2)上,包含应用的管理和响应用户交互的代码。
官方结构图如下(包含WatchOS 2):
Watch App只能随iOSApp一起发布,应用安装后会同步至配对的Watch上,用户可以在“我的手表”中设置是否同步Watch应用。同时,第三方Watch App必须依赖于iPhone5以上的设备运行。
鉴于Apple Watch第一版的诸多问题,苹果很快在6月初的苹果全球开发者大会(WWDC 2015)上发布了新版的WatchOS2,提出诸多改进,甚至迫于Android Wear的压力支持开发者创建Watch的原生应用。在这之前,Watch应用的代码只能在iPhone上执行,然后把结果传到Watch UI上显示。
但是,我们在WatchOS2直接运行代码是有限制的,只能访问一些普通的框架,包括:
ClockKit
Contacts
Core Data
Core Foundation
Core Graphics
Core Location
Core Motion
EventKit
Foundation
HealthKit
HomeKit
ImageIO
MapKit
Mobile Core Services
PassKit
Security
System Configuration
Watch Connectivity (iOS app 和Watch app 双向交互)
WatchKit
更多WatchOS内容,请参考watchOS for Developers。
有一些功能是不支持的,比如蓝牙(CoreBluetooth)。蓝牙功能的缺失会让Watch的使用场景损失很大,因为手表吸引人的一个功能就是通过表上的蓝牙来控制其他智能设备。在这上面,我们只能期待WatchOS3了。
另外还有一个比较郁闷的是:因为两个WatchOS的版本之间架构差别比较大,所以如果想通过共享代码的方式让一个App同时兼容两个平台非常不容易,要花很多时间。连苹果自己也红着脸承认,如果你想同时支持两个平台,还不如做两个独立的App来的简单。——在Watch的兼容性上,苹果这个头开的并不好。
这里重点介绍一下Watch的界面交互部分,分别是App主界面、Glance界面和Notification自定义界面。
App主界面包含完整的用户界面,用户通过点击应用Icon启动应用,查看处理数据。
Glance界面是只读的,不能包含可交互的控件,点击界面后跳转到应用主界面。此界面只有一屏,所以要显示重要、及时的信息。
Glance对于WatchApp并不是必须的,并且最多只能有一个。
界面分为上下两个区域,上区有12种样式可选,下区有24种样式可选。在Group中可以添加无交互的控件,但尽量不要使用地图和表格控件。
Notification界面可以自定义本地或远程通知的显示样式,可添加一些图片、文字等内容。
Notification界面分为Short-Look和Long-Look两种,而Long-Look又分为Static和Dynamic两种。
Short-Look
当用户第一次看通知的时候,系统将会显示这个Short-Look 界面。Short-Look 界面只有一屏,不可滚动、不可交互,UI由系统提供不能改变。Short-Look和iOS通知的条幅一样都是系统控制的,应用中无法得到通知显示等事件。
本地通知或远程通知的Title不为空显示为下图:
为空则显示为下图:
Long-Look
Long-Look 界面是一个可滚动的界面,它显示了通知的全部内容,以及所有的关联按钮。一个Watch App可以创建多个Long-Look,每个Long-Look的Category需要设置为不同的名字,通知到达后会根据category属性来显示相应的Long-Look界面。
Long-Look又分为Static 和 Dynamic两种样式:
如果Long-Look有Dynamic则通常情况下会显示Dynamic,除非Dynamic不可用或你明确告知系统显示Static。Dynamic需要绑定WKUserNotificationInterfaceController的子类,如未绑定则该Dynamic永远不会被显示。
Short-Look切换Long-Look的设置
在iPhone的“Apple Watch-我的手表-通知”中的“隐藏通知内容”设置项:
在Short-Look界面锁屏30秒内点亮屏幕依然是Short-Look界面,否则界面消失,可在“通知列表”中找到该通知,该状态由系统控制,开发者无法参与。
通知列表
点击通知会显示Long-Look界面,但只能显示Static界面不能再显示Dynamic界面。
更多内容,请关注我的知乎专栏:【峰言峰语】