WatchKit開發小竅門

n7w77 9年前發布 | 20K 次閱讀 WatchKit 移動開發

原文  http://www.cocoachina.com/ios/20150319/11368.html

WatchKit開發小竅門

本文由CocoaChina譯者xiaoying翻譯自蘋果開發者中心,原文: WatchKit Development Tips

使用這些小竅門和最佳實踐來優化你的WatchKit應用。

通用指導

使用圖片序列來創建動畫

Apple Watch中的動畫是通過系統循環播放序列化命名的圖片資源來實現的。另外,你可以通過定義重復次數來讓一些圖片在特定持續時間內動畫,或者通過把持續時間設置為負數來逆向顯示動畫序列。

在Apple Watch上存儲圖片序列

當動畫啟動時,動畫序列應該存儲在Apple Watch上。事先在WatchKit應用中存儲這些圖片序列,或者通過WKInterfaceDevice在圖片緩存中添加一個可以做動畫的 UIImage對象來創建并且存儲這些圖片序列以備使用。想要減少加載時間,可在保證傳遞視覺效果的同時,盡可能使用最少的圖片。

使用Settings Bundle

像在iOS上的應用一樣,給提供用戶一個Settings Bundle,讓用戶可以通過它來控制你的WatchKit應用。Settings Bundle將會顯示在iPhone上的Apple Watch應用中。

直接啟用聽寫功能

如果你通過使用文本輸入控制器來啟用聽寫功能,可直接讓用戶使用聽寫功能口述生成文本信息,無需展示沒有任何建議的中介頁面。

狀態恢復

在界面controller的didDeactivate:方法中保存你的應用的狀態信息和用戶界面。然后在root controller的willActivate:方法中恢復你的應用和用戶界面。

性能

最小化通信

一個性能良好的WatchKit應用,要盡可能減少Apple Watch和iPhone之間的通信。

只更新變化的信息

你的WatchKit擴展應該只更新改變了的值,而不是重新加載控制器上的所有屬性。這在操作表格行的時候尤其重要。這時應該只更新或者移除改變的行,而不是重新加載整個table。

懶加載內容

為了優化WatchKit應用的啟動時間,并使你的應用程序感覺上響應更積極,請在展示控制器之后再去加載不可見區域的內容。通過在 WKInterfaceController 的willActivate:方法中調用dispatch_async,你可以在顯示控制器之后再去設置特定的內容。

快速初始化頁碼控制器

為了減少頁碼控制器的加載時間,可在首次調用每個頁面的控制器的willActivate:方法之前完成大部分的設置工作。當頁碼控制器被創建 時,每個頁面的init: 和 awakeWithContext: 方法都會在第一個頁面調用willActivate:方法之前被調用。系統會等待所有頁面的init: 和 awakeWithContext:方法中的加載工作完成之后,再去顯示第一個頁面。

簡化控制器的場景

為了顯著減少加載時間,請盡可能地減少頁面場景中的隱藏項目。例如,如果一個控制器場景中有5個不同版本的控制器的布局,這將導致所有的對象在展示控制器之前被創建。

減少使用表格行從而減少加載時間

確保在初始化顯示時,創建最佳數量的行,而在willActivate:方法完成之后再去加載其他行。所有表格行都會在顯示控制器之前被創建,所以定義越多的行,顯示控制器所花的時間就越長。

和iPhone通信

iPhone端應用應該做大部分的工作

如果你的Apple Watch應用需要執行長時間運行在后臺的任務,比如網絡調用,你應該讓iPhone端的應用來做這個工作,使用 WKInterfaceController中的 openParentApplication:reply:方法在后臺喚醒iPhone端應用,然后返回WatchKit擴展所需的數據。處理 WatchKit請求的UIApplicationDelegate方法必須馬上返回。如果需要異步調用,例如執行網絡任務,使用后臺任務來確保你的應用 不會在發送反饋之前崩潰。

使用App Groups共享數據

使用App Groups 和 NSUserDefaults在iOS應用和WatchKit擴展之間共享少量數據非常容易。對于其他資源,比如Core Data,可使用共享容器來簡化它們之間的數據訪問,并且保持最新的數據。

使用Handoff

Handoff允許用戶簡單地在Apple Watch和iPhone應用之間切換任務。WKInterfaceController中的Handoff API可被用在Glance和自定義通知界面中,從而在iPhone應用和Apple Watch 應用之間建立深度連接。使用這個API來打包界面當前任務相關的信息,并且傳送給應用程序的主界面控制器,以便在啟動時展示一個不同的界面。相關閱 讀:Learn more about Handoff

使用框架,共享代碼

創建一個可在iOS應用和WatchKit擴展之間共享代碼的框架。框架可以保持代碼的可訪問性、消除冗余、并確保同時修復工程中多個代碼實例。

更多開發資源

更多關于如何使用WatchKit框架編寫應用程序的內容,請參看: Apple Watch Programming Guide

</div> </div>

 本文由用戶 n7w77 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!