Apple Watch的架構html
WatchKit帶給個人驚訝之一是它的架構。目前Watch App的運行是由兩部分相互結合進行工做的:ios
· 你的Apple Watch主要包含用戶界面元素文件(Storyboard文件和靜態的圖片文件)和處理用戶的輸入行爲。並不會真正在Apple Watch中運行代碼。換句話說,Apple Watch僅是一個「視圖」容器。架構
· 你的iPhone包含全部的邏輯代碼用於響應用戶在Apple Watch上產生的諸如應用啓動、點擊按鈕、滑動滑桿等行爲。換言之,iPhone包含了控制器和模型。app
有趣的是Apple Watch和iPhone的這種交互是在幕後自動完成的。你要作的工做只是在Storyboard中設置好UI的Outlet,而後其餘的事都由WatchKit SDK在幕後經過藍牙技術自動進行交互。即便iPhone和Apple Watch是兩個獨立的設備,你也只須要關注你本地的代碼以及Outlet的鏈接狀況,這真是一件很酷的事情。ide
WatchKit佈局工具
一個令我驚訝的是Watch App的UI佈局方式,咱們不能再用AutoLayout進行佈局了。取而代之的是一種新的佈局方式Group,你須要將界面元素好比按鈕、Label添加到Group中,而後Group會自動爲你添加的界面元素在其內部進行佈局。佈局
你能夠將一個Group嵌入到另外一個Group中,用於實現較爲複雜一點的界面佈局,並在Group中還能夠設置背景色、邊距、圓角半徑等屬性。動畫
Glances和Notificationsui
Watch App中最酷的功能我以爲就是Glances和Notifications了。我我的認爲,Apple Watch的應用中最有用的功能之一就是能讓用戶很方便的(好比一擡手)就能看到本身感興趣的事物的提醒通知,好比有人在Twitter中說起到了你或者比特幣如今的價位等等。設計
Glances和Notifications能爲你帶來什麼呢?
· Glances能讓你在應用中快速預覽信息,有點像iOS8中的Today Extension。
· Notifications能讓你在Apple Watch中接收到各種通知。Apple Watch中的通知分爲兩種級別。第一種是提示,只顯示應用圖標和簡單的文本信息。當你擡起手腕或者點擊屏幕時就會進入到第二種級別,你就能夠看到該通知更多詳細的信息,甚至有交互按鈕。
在Glance和Notification這兩種情形下,你均可以點擊屏幕進入到對應的Watch App中,而且使用Handoff。你甚至能夠將特定的View Controller做爲Glance或Notification的內容發送給用戶。
我預期在將來幾個月咱們會在Glance和Notification上面投入較大的時間。
動畫
Apple Watch中不支持動畫,這多少讓人以爲有點奇怪。若是你但願某個UI元素具備動畫效果,你必需要生成一堆圖片,這些圖片的內容是連續動畫每一幀的內容,而後循環顯示這些圖片,感受又回到了GIF動畫時代。因此在Apple Watch中不支持iOS中UIView或CALayer這種動畫,只支持幀動畫。
舉個例子,大家能夠看看Apple的Lister example示例,你會發現Apple經過360張圖片來實現一個畫圓的動畫效果。
這顯然是一個災難性的工做量,不過若是須要,也能夠藉助某些工具去生成一個動畫須要的全部圖片。不過,由於Apple Watch的容量頗有限,因此你要謹慎加入幀動畫,由於須要大量圖片佔用內存,除非有畫龍點睛的動畫,不然仍是儘可能少使用動畫。
設計資源
若是你是一名設計者(或者對設計有濃厚的興趣愛好),一下兩點建議對你有很好的幫助:
1.放下你手中全部的事情,閱讀Apple提供的針對Apple Watch的Human Interface Guidelines (HIG)。裏面有很是不錯的指導和參考能幫助你理解Apple Watch UI設計中你有疑惑的地方,由於設計Apple Watch App是一個全新的世界。
2.你必定要下載Apple Watch Design Resources。這裏有大量關於設計Apple Watch App的PSD素材,好比UI控制模型、顏色、元素間距的指導、筆畫粗細的指導等等,有不少有用的東西,給我留下了很是深入的印象,這裏強烈推薦。