Apple Watch開發初探
今天蘋果發布了iOS8.2 SDK Beta版和Xcode6.2 Beta版,其中最大的亮點就是就是WatchKit,雖然Apple Watch還未發布,但是開發者已經可以用Xcode6.2開發Watch App了。本文基于蘋果的開發文檔,簡單介紹一下相關的開發概念。
目前蘋果對第三方Watch App的定位
根據蘋果文檔的描述,第三方的Watch App依賴于與之對應的iPhone/iPad App,它更像是iPhone App的一個子集,為iPhone App提供增強功能比如通知,提醒,信息顯示。Watch App只負責前端展示,所有的業務邏輯,都由iPhone App完成,它只是與iPhone App通訊來獲取相關顯示數據。這樣看來App Watch是不是應該說媽媽再也不用擔心我的內存和電池,因為代碼全跑在iPhone上,可是你讓沒有iPhone的人情何以堪。
用戶和Watch App的交互幾種基本方式
1、Watch App
用戶點擊App直接進入主界面,Watch的導航類型有Hierarchical和Page-based兩種,開發者只能選取其一。 Hierarchical即層級導航的模式,例如下面的Todo list,用戶點擊摘要文字了,跳轉頁面看到更多信息;Page-based和Weather App類似,用戶左右滑動來切換頁面。
2、Glances
Glances就是一個視圖界面,只不過這個界面只讀,不能和用戶交互,用作信息展示,展示的內容為對應的iPhone App中即時,最重要的信息,比如出行應用中航班晚點信息,計步應用中的步行步數,速度,能量消耗。
3、Watch通知
開發者可以對通知欄進行自定義,比如在郵件Watch App的通知欄上加上 “標記已讀/星標” 的按鈕。
Watch App 架構
1、Watch App和iPhone App的基于WatchKit的通信
App for Watch包含兩部分:Watch app 和 Watach Kit extention。 Watch app運行在Watch上,只包含Storyboard和資源文件;WatchKit extension運行在iPhone上,和對應的iPhone App在一起 。用戶點擊Watch App后,與Watch匹配的iPhone會啟動WatchKit extension,然后和Watch建立連接,然后兩者可以產生通信(如獲取數據等)。
2、Watch App的運行流程
在ViewController initWithContext方法里面去請求iPhone獲取數據;willActivate代表界面已經出現了,必須要顯示了,在這里可以做一些視圖顯示后的初始邏輯(類比iOS viewDidAppear)。
3、ViewController的生命周期
iPhone/iPad App加入對Watch App的支持
1、配置Xcode工程
Xcode6.2 File->New->Target: 選擇Watch App,然后選擇是否創建Glance或者通知
在Targets中會發現多出了WatchKit Extension和Watch App;運行通過,接下來大家自己摸索了。
2、App Target結構
一些細節
Watch作為一款新的蘋果設備,所運行App的無論是設計還是編碼都應該盡量考慮到它的獨特性。
比如說蘋果將Watch上的系統字體改變成了”San Francisco”來提高小屏幕上的文字辨識度。同時蘋果建議開發者不要在Watch app中請求位置權限,那樣授權Tips彈在你的iPhone上,而你正使用的是Watch;不要在請求后臺任務,因為目前Watch app并沒有后臺模式;不要在Watch App里運行繁重的任務......
來自:http://nilsun.github.io/apple-watch/