WatchKit 應用程式架構
WatchKit 應用程式是一個運行在 Apple Watch 中的可執行檔。它包括 storyboard 和渲染螢幕時所需的資源檔。
WatchKit 擴充則是運行在 iPhone 上的可執行檔。包括管理應用程式介面的邏輯代碼,以及處理使用者的互動操作。
為了程式介面的正常使用,這兩部分需要一起運行。使用者與應用程式互動的典型步驟如下:
使用者與 WatchKit 應用程式互動。
WatchKit 應用程式分析互動情況,並選擇將被管理的 storyboard。
WatchKit 與 iPhone 通訊,以運行 WatchKit 擴充。
WatchKit 擴充初始化並建立需要提供給 WatchKit 應用程式 storyboard 使用的對象。
Storyboard 根據 WatchKit 擴充建立的對象,產生 scene,並將其顯示到 Apple Watch 中。
WatchKit 應用程式和 WatchKit 將會共用一些資訊,直到使用者停止使用 WatchKit 應用程式。此時,iOS 將使 WatchKit 擴充休眠,直到有新的使用者互動。
下面的這個圖示範了這個流程:
上圖中有個重要的概念就是 storyboard 響應使用者的操作並配置需要顯示的螢幕內容的方法。這歸功於 interface controller對象 (WKInterfaceController的執行個體),相當於 iOS 中的 view controller。
與 view controller 不同的是 interface controller 不管理螢幕中實際的 view,WatchKit 以透明的方式對 view 進行處理。一般,一個 WatchKit 應用程式會有多個 interface controller,用來顯示不同的資料類型,只不過同時只顯示一個罷了。
WatchKit 應用程式的生命週期
一個 WatchKit 應用程式的啟動方式有 3 種:
使用者點擊 Apple Watch 主畫面上的表徵圖。
使用者與應用程式的 glance 互動。
使用者與通知互動。
上面的每種方式都將初始化 WatchKit 應用程式和 WatchKit 擴充。根據上面不同的啟動方式,WatchKit 會利用相應的 storyboard 載入 scene,並請求 WatchKit 擴充初始化相應的 interface controller。
下面的圖示範了相關過程:
如圖所示,在使用者介面中,interface controller 對象管理著相關互動。當使用者與 Apple Watch 上的應用程式互動時,WatchKit 擴充會運行。一旦使用者停止互動或者從程式中退出,iOS 將關閉當前的 interface controller,並休眠擴充。在使用者和 Apple Watch 之間,這樣的互動方式非常簡潔,interface controller 應該是輕量級的,並且快速的執行任務。
下面的圖示範了相關過程: