Watch OS開發筆記



開發概要

Watch App的主要目的是展現iOSApp的簡單且重要的信息提示,所以儘量不要讓Watch App 做後臺任務,或者是在前臺運行的任務也不能耗時較長。Watch App的任務儘量保證都在前臺完成。

OS

系統版本: OS1, OS2

對比:

如果決定將Watch 1.0 App遷移到2.0上,必須得評估這兩者完全不同的系統架構對1.0版本App架構設計帶來的影響。

以下問題需要慎重考慮:

App是否嚴重依賴iCloud?

WatchOS2中,WatchKit extension不再被允許直接訪問iCloud。此類功能都必須由配對的iOS應用完成,再傳輸給手錶。

Watch應用是否依賴配對的iOS應用的數據?

手機上創建的數據,必須傳輸到手錶上供手錶應用使用;手錶應用更改後,必須傳回手機,供其備份。縱然AppleWatch有提供傳輸的幫助,這裏也必須更新相關的數據處理代碼已支持數據同步。這裏,可以考慮異步同步數據,手錶和手機都連接到一個共享的服務器,通過服務器來同步數據。

是否要支持早期的Apple Watch版本?

如果要支持初代WatchKit和WatchOS1,那麼我們需要有不同的target並編譯產生不同的可執行文件。這是因爲Watch OS1.0與Watch OS2.0是兩個完全不同的系統架構,共享代碼遠比分開編譯target的代價大的多。

設備

基本要求

1.    Watch App必須要依附於一個iOS的App

2.    一個Watch App由以下部分組成:extension(在iPhone上的Watch應用中看到的部分),Watch App(運行在Watch OS上的),可選部分是:Notification,Glance

 

Extension的作用:管理,響應用戶的操作

App    的作用:資源文件管理,主要是界面搭建,資源文件管理

Notification作用:支持自定義的推送通知的界面

Glance  的作用:Watch App的重要信息的一個快速展示界面,可以快速啓動App

 

架構

開發

1.界面控制器WKInterfaceController

類似iOS中的ViewController,與 view controller 不同的是 interface controller 不管理屏幕中實際的 view,WatchKit 以透明的方式對 view 進行處理。一般,一個 WatchKit 應用程序會有多個 interface controller,用來顯示不同的數據類型

2.App生命週期

 

3.控制器生命週期

4.UI開發部分

4.1 主要界面都要在extension的storyboard文件中預製好

4.2 在運行時不允許,動態創建控制器,通過代碼自定義創建控件,修改控件位置

4.3 在運行時可修改,控件的透明度、show/hide、更新支持修改的控件的屬性

4.4 目前Apple針對extensions開放的系統庫如下:

其中紅框中的frameworksWatchSDK特有的庫,其他的frameworksiOS SDK都可以找到。相信Apple後面將開放更多的api,給予開發者更多的權限,豐富Watch App類型。

WatchKit中類層次結構

WKInerfacePicker

WKInerfaceMoive

WKInerfaceMenu

 

5.界面導航

導航的形式只有兩種:

5.1 page形式

       使用segue相關的轉場

5.2 Hierarchical 形式

       這個必須要基於控件(button,Grpup,Table row)的事件,使用push或者pop方法來實現轉場

 

6 iOS APP與Watch App之間數據共享

方式:藍牙

技術:OS1通過創建App group來實現,OS2 通過Watch connectivity framework實現

區別:OS1可以使用NSFileManager的方法來操作iOS上App的目錄;OS2則只能使用NSUserDefaults只讀到iOS App的偏好設置文件

 

7.Notification

分爲Short-Look和Long-Look兩種形式

1.    Short-Look

如果你的iOS App註冊了通知,當iOS App收到了推送消息後,Watch也會提示推送,推送提示的界面是系統提供的模板樣式,包括(App名字,icon,本地或者是遠程通知的payload)

2.    Long-Look

當你點擊Short-Look推送界面的時候,系統就會切換到Long-Look界面,這個界面分爲靜態和動態兩種,可以在Storyboard中自定義樣式。點擊推送的消息之後,可以在WKUserNotificationInterface子類接收並響應用戶的操作。

 

詳細開發指導請參照Apple官網: AppProgramming Guide for watchOS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章