花絮
話說今年我只寫了一篇文章,還是年初 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開發概述 。
關於譯書
在今年夏季有幸與電子工業出版社的編輯合作,翻譯了一本關於 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)上私信我,我會盡力解答。若實在對書質量不滿,支持退貨。
一些參考資料
watchOS 2 Transition Guide : watchOS 2 遷移指南
WatchKit Programming Guide : WatchKit 編程指南
Apple Watch Human Interface Guidelines : Apple Watch 人機交互指南
小結
經過幾年的發展,智能機目前的出貨率很難復制前幾年了,大家也可以看出,各大手機廠家不僅僅是在做手機了,都在抓緊發展自己的生態圈。雖然到處都是風口,但是真正能抓住消費者的產品不是一簇而就的。當下可穿戴設備被無限放大,或許等退潮之後,才知道是誰在裸泳。