watchOS 2

##花絮

话说今年我只写了一篇文章,还是年初 1 月份的时候了(Apple Watch: WatchKit 应用程序要点),其实我一直都想写一些文章出来,但是一直没有码字发文,主要是由于我太懒。坑倒是挖了不少,包括 watchOS 2、持续集成等相关的文章(Java Web、iOS 和 Android 方面的)等。可能后面我会先填一些坑。

有些东西放下的时间久了,就会慢慢的忘却,这是多么令人沮丧的事情。

今天就先来谈谈关于 watchOS 2 的一些东西吧。

##watchOS 2

苹果早在 2015 年 6 月 9 日,就向开发者发布了 watchOS 2,目前消费者可以下载使用了,(奇怪的是前几天看官网还是显示 prerelease,不过现在已经是 release 了)。

image

苹果在推出 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 做过开发的人,都应该熟悉如下这张图:

image

如上图所示,在 watchOS 1 上面做开发,Apple Watch 应用程序由两部分构成:Watch App 和 WatchKit 扩展。

  • Watch App 是一个运行在 Apple Watch 中的可执行文件。它包括 storyboard 和渲染屏幕时所需的资源文件。
  • WatchKit 扩展则是运行在 iPhone 上的可执行文件。包括管理应用程序界面的逻辑代码,以及处理用户的交互操作。

    想要了解 watchOS 1 中更详细的内容,可以看我博客上的这篇文章:Apple Watch: WatchKit 应用程序要点)。

    那么,在 watchOS 2 中,WatchKit 的架构发生了比较重大的变化,我们先来看看下面这张图:

    image

从上面的图中,可以很明显地看出,苹果把原来运行在 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。

image

另外,在 watchOS 2 中,有更多的权限可以对硬件资源进行访问,例如麦克风,加速器和表冠等。这也给我们开发人员在开发的时候带来了无限想象,无限可能。

其实 watchOS 2 中带来了许多改进,这里就不进行详细的介绍,大家如果感兴趣的话可以查阅本文最后提供的一些参考资料。

##开发者需要注意的一些事情

image

其实用过 watchOS 2 中的 WatchKit,会发现,对于开发者来说,就 Xcode 的工程结构而言,开发编码上没有太大的变化。苹果虽然对框架做了重大的调整,但是也考虑了开发者的跟进成本,开发者跟 watchOS 1 中的开发基本一样,WatchKit App 中依旧是存放资源和 Storyboard,而 WatchKit Extension 中还是做相关业务逻辑的编码。

所以开发者在跟进 watchOS 上对于框架上来说只需要理解各个模块是运作原理,然后编码还是原来的味道,熟悉的味道。

当然,开发者在进行 watchOS 2 开发或迁移时,还有一些需要注意的地方:

  • 关于迁移到 watchOS 2 上的开发,可以看看苹果官网提供的内容:watchOS 2 Transition Guide 。另外来自 springxiao 的这篇文章(巧哥的微信公众号上面曾经转载过)也提及了一些开发注意事项,值得一读:Watch OS2.0开发概述

http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=208847424&idx=1&sn=fac57c5da8136b07fe9cdf53d1ec9f4c&scene=4#wechat_redirect

##关于译书

在今年夏季有幸与电子工业出版社的编辑合作,翻译了一本关于 Apple Watch 开发的书,书原名为 Learning WatchKit Programming- A Hands-On Guide to Creating Apple Watch Applications,中文名称为《从iOS到Apple Watch:用WatchKit创建新型可穿戴应用》,在京东,当当,亚马逊有售。此书是基于 watchOS 1 编写的,因为是引进的书我没有修改权,内容并未更新至 watchOS 2,大家在购买时自行考虑。不过我个人对于 watchOS 2 还是有一些研究的,如果大家购买之后有什么疑问,可以微博(BeyondVincent)上私信我,我会尽力解答。若实在对书质量不满,支持退货。

image

##一些参考资料

##小结

经过几年的发展,智能机目前的出货率很难复制前几年了,大家也可以看出,各大手机厂家不仅仅是在做手机了,都在抓紧发展自己的生态圈。虽然到处都是风口,但是真正能抓住消费者的产品不是一簇而就的。当下可穿戴设备被无限放大,或许等退潮之后,才知道是谁在裸泳。

以上是我对 watchOS 2 的一些理解,如有不对的地方,欢迎大家拍砖。