Apple Watch: WatchKit 應用程式要點
##WatchKit 應用程式架構##
上一篇文章簡單介紹了 WatchKit,在開發 Apple Watch 應用程式時由兩部分構成:WatchKit 應用程式和 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 應該是輕量級的,並且快速的執行任務。
下面的圖演示了相關過程: