Apple Watch学習ノート

1537 ワード

手を上げてApple Watchを見るたびに、私が最初に狙ったのは電気量だと気づきました!時間じゃない!!
Apple Watchは性能が少し悪く、アプリの起動速度が少し遅く、使用体験があまり理想的ではありません.Apple Watchのパフォーマンスの最適化について、以下の心得を共有します.
1、通信量を減らす&変化するコンテンツだけを更新する.WatchKit拡張アプリケーション開発が直面している大きなトラブルは、UIコンポーネントの状態が書き込み可能で読み取り不能であることであり、インタフェースのコンテンツをリフレッシュするたびに変動したデータが何なのか判断しにくく、画面上のすべてのコンテンツを更新せざるを得ないことです.ビューモデルのストレージを使用すると、通信量を削減し、変化するオブジェクトのみを更新するデータを実現できます.元のコンテンツが新しいコンテンツと一致するかどうかを判断します.たとえば、ラベルコントロールWKInterfaceLabelでは、ラベルテキストが変化した場合にのみラベルコンテンツを更新するコードを使用します.
protocol Updatable {
    typealias T
    func updateFrom(oldValue : T?, to newValue : T?)
}
extension WKInterfaceLabel : Updatable {

//WKInterfaceLabel  

    func updateFrom(oldValue:String?, to newValue:String?){
        if newValue != oldValue {
            self.setText(newValue)
        }
    }
}

2、遅延ロード.Watch Appの起動速度と応答能力を最適化するために、我々のプログラム設計では、初期化時に本画面に表示されたコンテンツのみをロードし、スクロール表示の追加コンテンツの遅延ロードを考慮する必要があります.dispatch_を使用async非同期方式では、時間がかかるインタフェース画像要素のロードなどのタスクを処理することで、ビューコントローラをより早く表示することができます.大まかなコード構造は以下の通りです.
  • override func willActivate() {
          super.willActivate()
          dispatch_async(dispatch_get_main_queue(), {
              // 
          })
    }

  • 3、ページングコントローラを初期化する.複数ページビューモードを使用する場合は、各ページのコントローラのinitとawakeWithContextが最初のページのコントローラのwillActivateよりも早く実行されるので、各ページのデータロードなどの長時間タスクはwillActivate関数で実行する必要があります.
    4、その他の補充.一部のシーンでは、コントローラに非表示のラベルを置くなど、ヒント機能を使用します.しかし、このラベルの数が多すぎると、ビューのロード速度にも深刻な影響を及ぼします.
    文章の中でどうしてもいくつか不足な点があって、批判の指摘を歓迎して、私は批判の中で絶えず成長して、ありがとうございます!