在瞭解Watch App目標架構後,我們想進一步瞭解:
- Apple Watch與iPhone溝通
- Watch App的運行流程
- ViewController的生命週期
Apple Watch與iPhone溝通
包含兩部分:Watch app和WatchKit extension。Watch app在Watch上運行,只包含Storyboard和Resource;WatchKit extension在iPhone上運行,與對應的iPhone App在一起。當使用者點擊Watch App後,與Watch配對的iPhone會啟動WatchKit extension,然後與Watch建立連接,於是兩者可以溝通(如獲取資料等)。
以設計模式角度來看,Watch這邊可以當作是View,只是用來顯示介面與資料,而iPhone則可當作是Controller,負責所有邏輯運算。這種設計可以節省Watch的電量,經過iPhone快速運算將資料傳給Watch。目前Watch的電量僅能使用一天,也就是每天睡覺前都要記得充電,多麼想讓Apple Watch像小米手環那樣,電量可以撐至少一個月,就是因為有高解析度的螢幕,才會如此耗電啦~
Watch App的運行流程
在ViewController中,initWithContext方法裡面去請求iPhone獲取資料;willActivate代表界面已經出現,必須要顯示了,在這裡可以做一些視圖顯示後的初始邏輯(類比iOS viewDidAppear)。
ViewController的生命週期
我實際寫過一次Watch App並且送審,已更明白Watch App Architecture,只是iPhone和Watch要彼此溝通,實作上還真是不直覺,卻是它最耐人尋味且可以發揮的特色!
參考:Apple Watch开发初探、WatchKit編程指南:概覽–Watch應用的體系結構、WatchKit編程指南-Watch應用的體系結構、WatchKit Programming Guide – Watch App Architecture、Zonble – WatchKit、Apple Watch 開發詳解。



Comments on: "[iOS] Watch App Architecture" (5)
[…] Watch OS 1架構可以參考我先前寫的Watch App Architecture。 […]
讚讚
Reblogged this on Chauyan Learning Page and commented:
It’s time to apple watch!
讚讚
現在Watch OS 2.0登場囉~ 😀
而且架構也變了呢!Watch可以獨立運行App,不用依賴Phone。
讚Liked by 1 person
最近正好在研究watch os 獨立運作app 的自由度大增
讚Liked by 1 person
真的,可以更靈活運用它! 😀
讚讚