iOS開(kāi)發(fā)者不可錯(cuò)過(guò)的watchOS 2 開(kāi)發(fā)技巧
花絮
話說(shuō)今年我只寫(xiě)了一篇文章,還是年初 1 月份的時(shí)候了(Apple Watch: WatchKit 應(yīng)用程序要點(diǎn)),其實(shí)我一直都想寫(xiě)一些文章出來(lái),但是一直沒(méi)有碼字發(fā)文,主要是由于我太懶??拥故峭诹瞬簧?,包括 watchOS 2、持續(xù)集成等相關(guān)的文章(Java Web、iOS 和 Android 方面的)等??赡芎竺嫖視?huì)先填一些坑。
有些東西放下的時(shí)間久了,就會(huì)慢慢的忘卻,這是多么令人沮喪的事情。
今天就先來(lái)談?wù)勱P(guān)于 watchOS 2 的一些東西吧。
watchOS 2
蘋(píng)果早在 2015 年 6 月 9 日,就向開(kāi)發(fā)者發(fā)布了 watchOS 2,但是到今天(2015 年 10 月 17 日)還沒(méi)有向消費(fèi)者公開(kāi),目前只能擁有蘋(píng)果開(kāi)發(fā)者賬號(hào)的人才能夠安裝。不過(guò)已經(jīng)是 pre-release 版了,相信用不了多久就會(huì)向普通消費(fèi)者公開(kāi)。
蘋(píng)果在推出 Apple Watch 之初,實(shí)際上是飽受爭(zhēng)議的,即使現(xiàn)在,各種爭(zhēng)議也不少。有的不看好 Apple Watch,說(shuō)它的續(xù)航能力是***的軟肋,而有的人又認(rèn)為它的屏幕限制了 Apple Watch 的應(yīng)用場(chǎng)景,吧啦吧啦,反正是各種吐槽。而另外一群人則非常看好 Apple Watch 的前景,并相信 Apple Watch 如同蘋(píng)果在 2007 年發(fā)布的 iPhone 一樣,會(huì)再次改變世界。
就我個(gè)人而言,我還是比較看好 Apple Watch 的,通過(guò)如下 2 個(gè)場(chǎng)景,你就會(huì)發(fā)現(xiàn) Apple Watch 非常實(shí)用:
支付場(chǎng)景:你去超市購(gòu)物,到收銀臺(tái)結(jié)算的時(shí)候,傳統(tǒng)的方式為付現(xiàn)或者刷卡,有部分人群可能會(huì)用手機(jī)支付軟件,進(jìn)行掃碼支付。不過(guò),這還不是***付費(fèi)方式,即使用手機(jī)支付,也需要將手機(jī)從兜里面掏出來(lái)。如果使用 Apple Watch 的話,那么只需要抬起手腕,打開(kāi)支付 App 就可以進(jìn)行支付,這不是神話,使用 Apple Watch 確實(shí)可以做到,并且已經(jīng)做到了。
運(yùn)動(dòng)場(chǎng)景:經(jīng)常跑步的人們?cè)谂懿竭^(guò)程中,經(jīng)常需要做計(jì)時(shí)、速度、距離等運(yùn)動(dòng)數(shù)據(jù)的統(tǒng)計(jì),并實(shí)時(shí)反饋,一般人們用手機(jī)上的運(yùn)動(dòng)軟件比較多,每次看速度、時(shí)間等都是從兜里面掏出手機(jī),然后解鎖屏幕,再看相關(guān)運(yùn)動(dòng)數(shù)據(jù)。雖說(shuō)現(xiàn)在的許多手機(jī)軟件有語(yǔ)音之類(lèi)的提醒,但用戶(hù)體驗(yàn)并不是很好。如果用戶(hù)使用了 Apple Watch,那么想要看運(yùn)動(dòng)數(shù)據(jù)的時(shí)候,只需要抬起手腕,就可以查看相關(guān)數(shù)據(jù),非常方便。
當(dāng)然,還有很多應(yīng)用場(chǎng)景在 Apple Watch 上都能帶來(lái)***的體驗(yàn),例如提醒類(lèi)應(yīng)用(天氣預(yù)報(bào)、來(lái)電提醒、用藥提醒)、健康類(lèi)應(yīng)用(實(shí)時(shí)反饋個(gè)人身體健康數(shù)據(jù))等,在這里就不一一羅列了。
WatchKit 架構(gòu)變化
在 watchOS 1 做過(guò)開(kāi)發(fā)的人,都應(yīng)該熟悉如下這張圖:
如上圖所示,在 watchOS 1 上面做開(kāi)發(fā),Apple Watch 應(yīng)用程序由兩部分構(gòu)成:Watch App 和 WatchKit 擴(kuò)展。
Watch App 是一個(gè)運(yùn)行在 Apple Watch 中的可執(zhí)行文件。它包括 storyboard 和渲染屏幕時(shí)所需的資源文件。
WatchKit 擴(kuò)展則是運(yùn)行在 iPhone 上的可執(zhí)行文件。包括管理應(yīng)用程序界面的邏輯代碼,以及處理用戶(hù)的交互操作。
想要了解 watchOS 1 中更詳細(xì)的內(nèi)容,可以看我博客上的這篇文章:Apple Watch: WatchKit 應(yīng)用程序要點(diǎn))。
那么,在 watchOS 2 中,WatchKit 的架構(gòu)發(fā)生了比較重大的變化,我們先來(lái)看看下面這張圖:
從上面的圖中,可以很明顯地看出,蘋(píng)果把原來(lái)運(yùn)行在 iPhone 手機(jī)上的 WatchKit Extension 移到 Apple Watch 中了。這將直接帶來(lái)如下改變:原來(lái)只存放一些資源和 Storyboard 的 Watch App,現(xiàn)在程序的業(yè)務(wù)邏輯部分(也就是代碼執(zhí)行部分)也被放到 Watch App 中。這樣的話,程序給用戶(hù)的體驗(yàn)會(huì)更好,Watch App 的運(yùn)行可以完全獨(dú)立于 iPhone 了。值得注意的是,Apple Watch 2 中還支持 WiFi,所以 Apple Watch 可以通過(guò) WiFi,直接獲取一些網(wǎng)絡(luò)數(shù)據(jù)等。并且 Apple Watch 無(wú)法處理的一些業(yè)務(wù),可以通過(guò) Connectivity 框架,請(qǐng)求 iPhone 進(jìn)行處理,并將結(jié)果返回給 Apple Watch。
另外,在 watchOS 2 中,有更多的權(quán)限可以對(duì)硬件資源進(jìn)行訪問(wèn),例如麥克風(fēng),加速器表冠等。這也給我們開(kāi)發(fā)人員在開(kāi)發(fā)的時(shí)候帶來(lái)了***想象,***可能。
其實(shí) watchOS 2 中帶來(lái)了許多改進(jìn),這里就不進(jìn)行詳細(xì)的介紹,大家如果感興趣的話可以查閱本文***提供的一些參考資料。
開(kāi)發(fā)者需要注意的一些事情
其實(shí)用過(guò) watchOS 2 中的 WatchKit,會(huì)發(fā)現(xiàn),對(duì)于開(kāi)發(fā)者來(lái)說(shuō),就 Xcode 的工程結(jié)構(gòu)而言,開(kāi)發(fā)編碼上沒(méi)有太大的變化。蘋(píng)果雖然對(duì)框架做了重大的調(diào)整,但是也考慮了開(kāi)發(fā)者的跟進(jìn)成本,開(kāi)發(fā)者跟 watchOS 1 中的開(kāi)發(fā)基本一樣,WatchKit App 中依舊是存放資源和 Storyboard,而 WatchKit Extension 中還是做相關(guān)業(yè)務(wù)邏輯的編碼。
所以開(kāi)發(fā)者在跟進(jìn) watchOS 上對(duì)于框架上來(lái)說(shuō)只需要理解各個(gè)模塊是運(yùn)作原理,然后編碼還是原來(lái)的味道,熟悉的味道。
當(dāng)然,開(kāi)發(fā)者在進(jìn)行 watchOS 2 開(kāi)發(fā)或遷移時(shí),還有一些需要注意的地方:
關(guān)于 遷移到 watchOS 2 上的開(kāi)發(fā),可以看看蘋(píng)果官網(wǎng)提供的內(nèi)容:watchOS 2 Transition Guide 。另外來(lái)自 springxiao 的這篇文章也提及了一些開(kāi)發(fā)注意事項(xiàng),值得一讀:Watch OS2.0開(kāi)發(fā)概述 。