2

私はiPhoneとWatchアプリを書いています。複数の時計を電話にペアリングする機能をサポートする予定です。

iPhone と Watch のアプリは Core Data データストアの読み取りと書き込みの両方を行います。WatchConnectivityこれらを同期するために使用します ( を使用transferUserInfo:)。ユーザーが一方のデバイスで何かを書いたり口述したりすると、もう一方のデバイスに表示されます。

複数の時計をサポートする方法を理解するのに苦労しています。次のシナリオを考えます。

  • ユーザーは Phone/WatchA を使用しています
    • 1 日の間に、ユーザーは 10 個のアイテムを追加します
  • 一日の終わりに、彼らは WatchB に切り替えます

WatchB はどのようにして Phone/WatchA と同期しますか?

  • transferUserInfoWKSession は、WatchA がペアリングされたときに行われた呼び出しを自動的に再生しますか?
  • どうにかして WatchB が必要とするすべてを追跡し、自分ですべてを再生する必要がありますか?
  • APIを使用して sqlite データベース全体を送信するだけtransferFileですか?
4

1 に答える 1

5

WKSession は、WatchA がペアリングされたときに行われた transferUserInfo 呼び出しを自動的に再生しますか?

いいえ、そうではありません。データはペアリングされた時計にのみ転送されます。

別の時計に戻すときは、そのストアを更新するように特別に手配する必要があります。

どうにかして WatchB が必要とするすべてを追跡し、自分ですべてを再生する必要がありますか?

要するに、はい、それがあなたのアプローチであれば。

エッジ ケースの 1 つは、ユーザーが古い/壊れた時計を新しい/交換用の時計に交換したものの、古い時計のペアリングを解除していない場合です。二度とペアリングされない時計の変更数が増えていることを追跡したくないでしょう。

また、ユーザーが自分の電話をアップグレードし、既存の時計を新しい電話とペアリングする場合にも対処する必要があります。デバイスの追跡と同期は、別のデバイス ペアでも引き続き機能するはずです。

fileTransfer API を使用して sqlite データベース全体を送信するだけですか?

これは、データベースのサイズと、3 つ以上のストア間でのデータのジャーナリングと同期の複雑さに大きく依存します。

時計を最新の状態に保つのに役立つ新機能は何ですか?

複数のストアを維持する必要がある場合は、watchOS 3 のバックグラウンド リフレッシュ タスク機能を利用して、ユーザーがアプリを起動する前にウォッチを最新の状態に保つ必要があります。同期するもの。

この回答は、合併症を使用していない場合でも役立つ場合があります。

他のオプションは何ですか?

Apple は、デバイスと対話するさまざまな方法を中心にすべてを設計することをお勧めします。ユーザーは、いくつかのアイテムを確認するために時計を数秒間ちらっと見たいだけかもしれませんが、より複雑なタスクについては電話に依存しています。

その場合、iPhone で 1 つのストアを維持し、必要なデータを iPhone から転送してウォッチに表示することができます。何か変更があった場合は、更新されたデータを電話機にプッシュして戻します。

電話と時計が最新のアイテムが何であったかを認識し、ユーザーが日中に電話と時計を切り替えることができる「ハンドオフ」アプローチが最適です。

もちろん、これは、電話の範囲外で時計が独立して動作する必要があるかどうかに左右されます.

于 2016-07-25T17:24:25.920 に答える