1. 程式人生 > >WatchKit 框架: 將應用程式從褲兜裡取出來

WatchKit 框架: 將應用程式從褲兜裡取出來

你是否已經厭倦了總是需要將 iPhone 從褲兜裡取出來才能檢視訊息?你希望像 Michael knight 一樣,通過手腕就能與朋友通話嗎?蘋果已經讓其變得可能:全新的 Apple Watch 和非常酷的 WatchKit 框架。

在為 Apple Watch 開發應用程式(也稱為Watch 應用程式)時,開發者需要清晰的知道,目前Watch 應用程式需要一個執行在 iPhone 上的應用程式。因此,需要有兩個可執行檔案:

  • Watch 應用程式將執行在 Apple Watch 中,裡面包括 storyboard,以及在應用程式介面渲染中需要用到的資原始檔。
  • WatchKit 擴充套件
    將執行在 iPhone 中,包括管理應用程式介面的邏輯程式碼,以及處理使用者的互動操作。

當開發一個 Apple Watch 應用程式時,在 storyboard 中的每個 scene 都需要對應的建立一個 WKInterfaceController。這個類有2個重要的方法:initWithContextwillActivate,它們負責獲取需要顯示的資料,以及初始化並配置視覺化模組,例如按鈕或文字標籤。

如果需要建立一個 view 來顯示收到的資訊(例如收到一條 iMessage 通知,邀請你吃午飯,介面中有按鈕需要你來接受或者拒絕邀請。),此時需要例項化一個 WKUserNotificationInterfaceController

,該類繼承自 WKInterfaceController

在上面的 interface control 類中,還有另外一些有意思的方法:

  • presentTextInputControllerWithSuggestions:completion:這個方法的作用是在螢幕中以模態的方式給使用者顯示一個文字輸入介面——通過讓使用者選擇給出的建議文字。
  • updateUserActivity:userInfo:獲得當前應用程式的 activity(例如使用者在螢幕中做了一下 tab 操作),並將其報告給使用者的 iPhone,以進行相關的處理。

在 Watch 應用程式中,有一個重要的概念就是 glances

。其實 glances 就是應用程式中一種特殊的介面,用來向用戶顯示特定的資訊,它的特殊性就在於其無法滾動,並且是隻讀的。這也是為什麼 glance 不能包含 UI 元件的緣故,例如按鈕,文字輸入框或滑塊。

在 WatchKit 中,我們可以發現有 WKInterfaceDevice,該類包含 Apple Watch 中的使用者配置相關資訊。通過該類,我們可以獲取相關資訊,與使用者賬號相關聯,並顯示到程式中。

該類另外一個重要的作用就是在 Apple Watch 上快取圖片,這樣在將來可以使用這些快取圖片,以此避免每次都需要建立這些圖片,進而降低了程式的效能。

該類的一些方法如下:

  • preferredContentSizeCategory:獲取有使用者自定義的字型大小。這個方法對於輔助-驅動的應用程式非常重要。
  • addCachedImage:name:將傳入的圖片新增至裝置的快取中。
  • removeCacheImageWithName:移除之前快取的圖片。

最後,WatchKit 引入了幾個 interface object 進行介面的構建,這是 UIKit 的定製版本。例如 WKInterfaceButton, WKInterfaceDate, WKInterfaceImage, WKInterfaceLabel, WKInterfaceMap, WKInterfaceSlider, 和 WKInterfaceSwitch等。

說句實話,我還沒有戴過 Apple Watch,但可以肯定的是,這將意味著新技術的革命,期待吧!