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


















 
 
 






 
 
 
 