Just a Computer Graphics Studio & My Life

[iOS] Watch App Architecture

在瞭解Watch App目標架構後,我們想進一步瞭解:

  • Apple Watch與iPhone溝通
  • Watch App的運行流程
  • ViewController的生命週期

Apple Watch與iPhone溝通

Watch iPhone commucation

包含兩部分:Watch appWatchKit 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)。

Watch launch

ViewController的生命週期

Watch view life cycle

我實際寫過一次Watch App並且送審,已更明白Watch App Architecture,只是iPhone和Watch要彼此溝通,實作上還真是不直覺,卻是它最耐人尋味且可以發揮的特色!

參考:Apple Watch开发初探WatchKit編程指南:概覽–Watch應用的體系結構WatchKit編程指南-Watch應用的體系結構WatchKit Programming Guide – Watch App Architecture、Zonble – WatchKitApple Watch 開發詳解

廣告

Comments on: "[iOS] Watch App Architecture" (5)

  1. […] Watch OS 1架構可以參考我先前寫的Watch App Architecture。 […]

    喜歡

  2. Reblogged this on Chauyan Learning Page and commented:

    It’s time to apple watch!

    喜歡

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: