iOS開發者不可錯過的watchOS 2 開發技巧
花絮
話說今年我只寫了一篇文章,還是年初 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開發概述 。