1. 程式人生 > >Apple Watch: WatchKit 應用程式要點

Apple Watch: WatchKit 應用程式要點

##WatchKit 應用程式架構##

上一篇文章簡單介紹了 WatchKit,在開發 Apple Watch 應用程式時由兩部分構成:WatchKit 應用程式和 WatchKit 擴充套件。

  • WatchKit 應用程式是一個執行在 Apple Watch 中的可執行檔案。它包括 storyboard 和渲染螢幕時所需的資原始檔。
  • WatchKit 擴充套件則是執行在 iPhone 上的可執行檔案。包括管理應用程式介面的邏輯程式碼,以及處理使用者的互動操作。

為了程式介面的正常使用,這兩部分需要一起執行。使用者與應用程式互動的典型步驟如下:

  1. 使用者與 WatchKit 應用程式互動。
  2. WatchKit 應用程式分析互動情況,並選擇將被管理的 storyboard。
  3. WatchKit 與 iPhone 通訊,以執行 WatchKit 擴充套件。
  4. WatchKit 擴充套件初始化並建立需要提供給 WatchKit 應用程式 storyboard 使用的物件。
  5. Storyboard 根據 WatchKit 擴充套件建立的物件,生成 scene,並將其顯示到 Apple Watch 中。
  6. 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 應該是輕量級的,並且快速的執行任務。

下面的圖演示了相關過程: