花絮
话说今年我只写了一篇文章,还是年初 1 月份的时候了(Apple Watch: WatchKit 应用程序要点),其实我一直都想写一些文章出来,但是一直没有码字发文,主要是由于我太懒。坑倒是挖了不少,包括 watchOS 2、持续集成等相关的文章(Java Web、iOS 和 Android 方面的)等。可能后面我会先填一些坑。
有些东西放下的时间久了,就会慢慢的忘却,这是多么令人沮丧的事情。
今天就先来谈谈关于 watchOS 2 的一些东西吧。
watchOS 2
苹果早在 2015 年 6 月 9 日,就向开发者发布了 watchOS 2,但是到今天(2015 年 10 月 17 日)还没有向消费者公开,目前只能拥有苹果开发者账号的人才能够安装。不过已经是 pre-release 版了,相信用不了多久就会向普通消费者公开。
苹果在推出 Apple Watch 之初,实际上是饱受争议的,即使现在,各种争议也不少。有的不看好 Apple Watch,说它的续航能力是***的软肋,而有的人又认为它的屏幕限制了 Apple Watch 的应用场景,吧啦吧啦,反正是各种吐槽。而另外一群人则非常看好 Apple Watch 的前景,并相信 Apple Watch 如同苹果在 2007 年发布的 iPhone 一样,会再次改变世界。
就我个人而言,我还是比较看好 Apple Watch 的,通过如下 2 个场景,你就会发现 Apple Watch 非常实用:
支付场景:你去超市购物,到收银台结算的时候,传统的方式为付现或者刷卡,有部分人群可能会用手机支付软件,进行扫码支付。不过,这还不是***付费方式,即使用手机支付,也需要将手机从兜里面掏出来。如果使用 Apple Watch 的话,那么只需要抬起手腕,打开支付 App 就可以进行支付,这不是神话,使用 Apple Watch 确实可以做到,并且已经做到了。
运动场景:经常跑步的人们在跑步过程中,经常需要做计时、速度、距离等运动数据的统计,并实时反馈,一般人们用手机上的运动软件比较多,每次看速度、时间等都是从兜里面掏出手机,然后解锁屏幕,再看相关运动数据。虽说现在的许多手机软件有语音之类的提醒,但用户体验并不是很好。如果用户使用了 Apple Watch,那么想要看运动数据的时候,只需要抬起手腕,就可以查看相关数据,非常方便。
当然,还有很多应用场景在 Apple Watch 上都能带来***的体验,例如提醒类应用(天气预报、来电提醒、用药提醒)、健康类应用(实时反馈个人身体健康数据)等,在这里就不一一罗列了。
WatchKit 架构变化
在 watchOS 1 做过开发的人,都应该熟悉如下这张图:
如上图所示,在 watchOS 1 上面做开发,Apple Watch 应用程序由两部分构成:Watch App 和 WatchKit 扩展。
Watch App 是一个运行在 Apple Watch 中的可执行文件。它包括 storyboard 和渲染屏幕时所需的资源文件。
WatchKit 扩展则是运行在 iPhone 上的可执行文件。包括管理应用程序界面的逻辑代码,以及处理用户的交互操作。
想要了解 watchOS 1 中更详细的内容,可以看我博客上的这篇文章:Apple Watch: WatchKit 应用程序要点)。
那么,在 watchOS 2 中,WatchKit 的架构发生了比较重大的变化,我们先来看看下面这张图:
从上面的图中,可以很明显地看出,苹果把原来运行在 iPhone 手机上的 WatchKit Extension 移到 Apple Watch 中了。这将直接带来如下改变:原来只存放一些资源和 Storyboard 的 Watch App,现在程序的业务逻辑部分(也就是代码执行部分)也被放到 Watch App 中。这样的话,程序给用户的体验会更好,Watch App 的运行可以完全独立于 iPhone 了。值得注意的是,Apple Watch 2 中还支持 WiFi,所以 Apple Watch 可以通过 WiFi,直接获取一些网络数据等。并且 Apple Watch 无法处理的一些业务,可以通过 Connectivity 框架,请求 iPhone 进行处理,并将结果返回给 Apple Watch。
另外,在 watchOS 2 中,有更多的权限可以对硬件资源进行访问,例如麦克风,加速器表冠等。这也给我们开发人员在开发的时候带来了***想象,***可能。
其实 watchOS 2 中带来了许多改进,这里就不进行详细的介绍,大家如果感兴趣的话可以查阅本文***提供的一些参考资料。
开发者需要注意的一些事情
其实用过 watchOS 2 中的 WatchKit,会发现,对于开发者来说,就 Xcode 的工程结构而言,开发编码上没有太大的变化。苹果虽然对框架做了重大的调整,但是也考虑了开发者的跟进成本,开发者跟 watchOS 1 中的开发基本一样,WatchKit App 中依旧是存放资源和 Storyboard,而 WatchKit Extension 中还是做相关业务逻辑的编码。
所以开发者在跟进 watchOS 上对于框架上来说只需要理解各个模块是运作原理,然后编码还是原来的味道,熟悉的味道。
当然,开发者在进行 watchOS 2 开发或迁移时,还有一些需要注意的地方:
关于 迁移到 watchOS 2 上的开发,可以看看苹果官网提供的内容:watchOS 2 Transition Guide 。另外来自 springxiao 的这篇文章也提及了一些开发注意事项,值得一读:Watch OS2.0开发概述 。