@springxiao
2015-07-04T16:58:48.000000Z
字数 1808
阅读 4938
AppleWatch
WatchOS2.0
Watch OS 2.0时代
北京时间2015年6月9日,WWDC在美国旧金山召开,Apple发布了第二代苹果婊(洋名AppleWatch)操作系统,以下简称watch os2.0。
这版本最大变化或许就是你能够在watch构建原生app。不像之前的版本,watch app只能存放一些资源与界面文件,主要业务逻辑需要在iPhone上执行代码。在watch os2.0上能够通过apple开放的框架api在watch自身驻留与运行。这样带来的好处就是你的app能启动的更快,运行的更流畅,而不需要每一次操作都通过watch和iPhone的蓝牙模块往返传递数据(蓝牙的带宽是硬伤)。从产品的维度来看,这的确是一次优良的改进,但从程序猿的角度,意味着需要消化的东西变得更多了。
Watch OS1.0到2.0
watch os2.0app中包含的两个相符隔离的bundle共同协作向用户展示app内容, watch app自身包含UI呈现相关的storyboards和 resource 文件, watchKit extension中则存放业务逻辑代码和更新UI的resources。
以上仅仅是架构上的变化, 但watch app 和watchKit extension 两者在watch os的分工保持一致。watch os1.0中在watchKit extension编写的业务代码迁移到watch os2.0上基本上也是可以正常跑起来的,但这时得从watch os2.0 app的整个架构的角度去思考,这样做是不是合理,而不要一味的去搬代码(始终要记住watch 2.0是一个独立的操作系统,和iPhone没半毛钱关系)。在 extension中实现的代码,必须是基于watchOS SDK,而不是ios SDK,如果apple开放的watch os2.0 api不能满足业务开发的需要,这时有个变通的方法:先在iPhone上通过调用ios sdk 拿到数据,然后再通过WatchConnectivity frameworks传递到watch上。
Watch OS1.0转向2.0
如果决定将watch 1.0 app迁移到2.0上,必须得评估这两者完全不同的系统架构对1.0版本app架构设计带来的影响。以下问题需要慎重考虑:
是否要支持早期的Apple
Watch版本?如果要支持初代WatchKit和WatchOS2,那么我们需要有不同的target并编译产生不同的可执行文件。这是因为watch
os1.0与watch os2.0是两个完全不同的系统架构,共享代码远比分开编译target的代价大的多。
Watch OS2.0中的frameworks
目前apple针对extensions开放的系统库如下:
其中红框中的frameworks是watch SDK特有的库,其他的frameworks在ios SDK 都可以找到。相信apple后面将开放更多的api,给予开发者更多的权限,丰富watch app类型。
Watch OS2.0中的Networking
watch os2.0支持的网络技术包括:
WatchKit extensions可使用 NSURLSession
object对象直接连接网络。watchSDK中NSURLSession类开放的属性和函数功能和ios
SDKNSURLSession类无异,包括上传和下载文件的能力。
Watch Connectivity framework支持watch app和ios app之间的双向通信。
2007年,如果你错过了第一代iPhone的开发,八年后,不要再错过Apple Watch这块新平台了。
版权申明:我已将本文在微信公众平台的发表权「独家代理」给 iOS 开发(iOSDevTips)微信公共帐号。
扫码关注「iOS 开发」: