Apple Watch 簡介:iOS 開發者的功能介紹
已發表: 2022-03-11去年 6 月在 WWDC 上宣布並於最近發布的 Apple Watch SDK 引起了很多人的擔憂。
這只是第一輪,功能有限。 Apple Watch v2 將緊隨其後,但不會那麼快——因此有遠見的 iOS 開發者應該準備好等待幾個月。
開發者之間的感受是極其多樣化的。 許多 iOS 開發人員對 Apple Watch SDK 及其功能施加的許多限制感到失望。 另一方面,我們中的許多人都很興奮,而其他人則離中立立場不遠。 但是,畢竟,每個人顯然都很高興有一個新玩具可以玩。
引人注目的一件事是 Apple Watch 用戶的稱呼方式。 他們不是用戶或移動用戶,也不是觀看用戶或(有一點獨創性的)觀看者。 他們只是佩戴者。 一個聽起來有點奇怪的術語,因為如果用戶使用,暗示他在交互,佩戴者會穿,這聽起來像是一種被動用法。 當然,Apple Watch 遠非被動設備。 它將手錶的傳統功能與現代技術支持的更高級選項相結合,尤其是與 iPhone 結合使用時。 就在不久前,手機開始變得不僅僅是手機——歷史正在重演。
然而,最終佩戴者的名字似乎是一個明智的選擇。 至少在編寫用戶故事時,我不必完整地指定“作為Apple watch 用戶,我想……”,我可以將其縮短為“作為佩戴者,我想要……”——減少歧義。
設備和用戶界面
省略所有與開發不嚴格相關的 Apple Watch 功能,設計師和開發人員必須處理的最重要問題是尺寸 - 實際上有 2 種不同的 Apple Watch 型號:
- 38 毫米屏幕,分辨率為 272x340 像素
- 42 毫米屏幕,分辨率為 312x390 像素
在這兩種情況下都有視網膜顯示。
不用說,iOS 開發人員需要確保應用程序在兩個版本上看起來都不錯。
Apple Watch 連接
Apple Watch 通過藍牙 4.0 與配套 iPhone 通信,並且還支持 NFC。 顯然,它沒有 WiFi 連接。 雖然它可以通過 iPhone 綁定並同時使用 WiFi 和蜂窩數據連接。 但在新聞信息中,Apple 明確表示它還具有 Wi-Fi 802.11b/g。
用戶交互
用戶交互(或佩戴者交互,如果願意)可以以 4 種不同的方式發生:
- 簡單的觸摸:點擊按鈕是一個典型的例子
- 強制觸摸:通過在點擊並按住屏幕時施加更大的力來激活。 類似於在 PC 上單擊鼠標右鍵,它將顯示一個上下文菜單(最多包含 4 個項目)
- 手勢:垂直滑動以滾動,水平滑動以在頁面之間導航,左邊緣滑動以向後導航
- 數字表冠:用於微調滾動的硬件輸入
用戶交互存在一些限制,尤其是手勢:
- 它們是預先確定的,因此不支持自定義手勢
- 不支持多點觸控,因此無需捏合縮放或類似手勢需要一根以上的手指
這是 Apple WatchKit 指南中的上下文菜單示例。
用戶界面
說到 Apple Watch UI,屏幕尺寸的減小、設計選擇以及在許多情況下是底層硬件的自然結果都會帶來一些限制。 我們預計其中一些將在 SDK 的未來版本中變得更好,儘管無法預測或預測實際會發生什麼變化。
第一個限制是關於如何實現用戶界面:僅通過情節提要。
蘋果手錶導航
WatchKit 提供了兩種相互排斥的方式在 Apple Watch 應用的視圖之間導航:
- 一種分層導航模型,類似於 iOS 中使用的模型,在導航期間視圖堆疊
- 基於平面頁面的模型,用戶可以通過左右滑動在頁面之間導航
不幸的是,在同一個應用程序中組合這兩種導航模型是不可能的。 必須在整個應用程序中選擇和使用其中之一。
但是,任何界面控制器都可以呈現模態界面控制器,它可以是單個界面控制器,也可以是多個界面控制器,使用頁面導航模型排列。
用戶界面元素
有 11 個不同的界面組件:
- 按鈕
- 滑塊
- 圖片
- 標籤
- 分隔器
- 滑塊
- 轉變
- 桌子
- date:自動顯示當前日期或時間
- timer:顯示倒計時,自動更新
- 組:一個或多個子組件的容器
- 地圖:顯示非交互式地圖,可選擇最多 5 個註釋
佈局
組組件可用於在垂直或水平佈局中組合 Apple Watch UI 元素。 元素將根據其大小自動佈局。 考慮到組可以嵌套,此處提供了一定程度的靈活性。
不幸的是,自動佈局不可用。 但是,考慮到用戶界面與 iOS 對應的用戶界面相比要簡單得多,這可能不會造成太大損失。
對於列表,表格組件使用單列模型創建和管理內容,就像UITableView一樣。 但是,它沒有使用委託模式——通過先指定行數,然後在 for 循環中初始化每一行的內容,直接將數據源提供給表。 積極的一面是,仍然可以使用自定義表格行(即 iOS 行話中的單元格)
一目了然
Glances 是只讀的、單頁的和不可滾動的視圖,用於顯示及時和相關的應用程序特定數據的快照。 不允許用戶交互,除了點擊事件。 點擊一瞥將簡單地啟動應用程序,可選擇提供上下文以讓應用程序顯示特定的界面控制器。
例如,Apple Watch 天氣應用程序可以使用 Glance 顯示當前溫度、位置等。通過點擊它,應用程序打開,顯示更多詳細信息。
這是來自官方 Apple WatchKit 指南的示例 Glance。
Apple Watch 通知
有 2 種通知類型: short look和long look 。

短視通知用於提醒佩戴者發生了什麼事,當手腕放下時它會自動消失。 佈局非常簡單,由應用程序圖標、應用程序名稱和通知標題組成。
保持手腕抬起一段時間,或明確點擊短視通知,會將其變為長視通知。 此類通知提供更多詳細信息,並支持通過可自定義按鈕進行用戶交互。 這些按鈕可以向應用程序發送通知。 與短通知不同,用戶必須通過點擊自動顯示在視圖底部的按鈕來明確關閉長通知。
可以在此處找到有關使用 Apple Watch 通知的更多信息。
發展
建築學
下載支持 WatchKit 的 Xcode 版本(目前是 6.2 測試版),並嘗試在不閱讀任何文檔的情況下開始使用 WatchKit 項目,開發人員可能會因為沒有 WatchKit 模板而感到困惑:
沒有獨立的手錶應用程序,手錶應用程序只能作為新目標添加到現有的 iOS 應用程序中。
原因在於架構,以及手錶應用程序與相關 iOS 應用程序交互的方式:
當應用程序在手錶上啟動時,配套的 iOS 擴展程序會自動啟動。 它們協同工作,手錶應用程序向佩戴者顯示內容並響應交互,而 iOS 擴展程序則負責其他所有工作。 實際上,手錶上沒有執行任何應用程序代碼:所有處理都委託給 iOS 擴展。
該模型非常類似於瀏覽器 <-> Web 應用程序模型,其中域邏輯在服務器端執行,客戶端負責向用戶顯示內容並響應用戶操作。
安裝在設備上的 Watch App 由故事板和所有相關的靜態資源組成,打包在一個包中。 此捆綁包是靜態的,這意味著在運行時無法添加或更改任何資源、視圖、圖像等。
這種靜態的客戶端-服務器模型對想要將 Watch 應用程序添加到他們的重複中的 iOS 開發人員施加了一些限制,這可能是一些開發人員沒有做出積極反應的主要原因之一。 另一個流行的評論是關於動畫:它們根本不受支持。 模擬動畫的唯一方法是將單個幀打包到手錶應用程序中,然後通過按順序顯示圖像來模擬動畫。 好消息是,通過按順序命名幀,您可以直接從 Interface Builder 自動化動畫,儘管通過一次調用圖像控制方法的代碼也可以做到這一點。
然而,蘋果已經宣布明年有時會發布一個新版本,支持原生應用程序,目前還沒有進一步的細節。
Apple Watch 框架:快速瀏覽
WatchKit 不使用、繼承或專門化 UIKit。 一個新的框架已經被實施、專門設計和優化,用於手錶、微型顯示屏和有限的硬件。 該框架僅包含 15 個類,其中 12 個是 UI 組件(標籤、按鈕等)。
框架公開的最重要的類是WKInterfaceController ,它是UIViewController的 WatchKit 對應物。 所以在 iOS(和 OSX)中稱為視圖控制器,在 Apple Watch 中是界面控制器。
無需深入挖掘,從 Apple 開發人員的角度來看,對 UIKit 最顯著的改進就是建立了一種在接口控制器之間傳遞數據的模式。 快速瀏覽初始化程序:
Swift init(context: AnyObject?) // context from pushing controller or nil
揭示了可以為接口控制器實例(在所有 API 中稱為context )提供任意對象,從而簡化和標準化從一個接口控制器到另一個接口控制器的數據傳遞。 唯一的缺點是該對像不是泛型類型,而是一個不透明的AnyObject ,它必須在目標接口控制器的初始化程序中向下轉換為預期的類型。 這可能是仍然(並且可能也希望)繼續使用 Objective C 的權衡。
如果與視圖控制器對應物相比,界面控制器生命週期被簡化,僅包含 3 個轉換:
-
init: 當對像被實例化時調用 willActivate: 當內容即將顯示時調用didDeactivate: 當界面剛剛被隱藏時調用
除了向用戶顯示內容外,界面控制器還負責:
- 處理用戶交互
- 管理上下文菜單
- 協調切換活動
- 回复通知
Apple WatchKit 準備好了嗎?
由於存在一些限制,手錶套件可能會顯示為不成熟的產品。 事實上它是。 它不支持原生的手錶應用,更何況目前市場上還沒有手錶設備,所以開發者仍然無法測試他們的應用程序,也無法對應用程序的工作方式有真實的感受和反饋。
好的,有一個模擬器,它實際上不是一個獨立的模擬器,而是作為 iOS 模擬器的外部顯示器訪問(通過 Hardware -> External Displays 菜單)。 但是模擬器永遠不會取代真實的設備——在開發和調試過程中很好,但還不夠。
WatchKit 只是一個預覽版、一個測試版、一個開胃菜,它將隨著每個新版本的發布而發展。 iOS 開發者已經拿到了第一個版本,讓我們來玩一下,讓我們嘗試充分利用它。
