2016-07-25 37 views
0

我正在編寫iPhone和手錶應用程序。我打算支持將多個手錶配對到手機的功能。保持核心數據與多個手錶同步

iPhone和Watch應用程序將讀取和寫入Core Data數據存儲,我將使用WatchConnectivity使它們保持同步(使用transferUserInfo:)。用戶會在一臺設備上寫入/指定某些內容,並且會顯示在另一臺設備上。

我正在努力弄清楚如何支持多個手錶。考慮以下情形:

  • 用戶使用手機/沃徹
    • 在一天的過程中,用戶增加了10個項目
    • 一天
  • 結束,他們改用WatchB

WatchB如何與電話/ WatchA同步?

  • WKSession會自動重播當WatchA配對時發出的transferUserInfo調用嗎?
  • 我需要以某種方式跟蹤WatchB需要的一切,並自己重放所有內容嗎?
  • 我只是發送整個sqlite數據庫使用transferFile API(這似乎有點多)?
+0

我不知道人擁有多個手錶... –

回答

2

WKSession會自動重放WatchA配對時發出的transferUserInfo調用嗎?

不,它不會。數據只被傳送到配對的手錶。

當您切換回其他手錶時,您必須特別安排更新其商店。

我需要以某種方式跟蹤WatchB需要的一切,並自己重放所有內容嗎?

總之,是的,如果這是你採取的方法。

如果用戶用新的/替換手錶取代舊的/破損的手錶,但沒有取消舊配對,則會出現一種邊緣情況。你不會想要跟蹤一個不會再次配對的手錶的變化。

您還必須處理用戶升級手機並將現有手錶與新手機配對的情況。您的設備跟蹤和同步應該可以繼續在不同設備對之間運行。

我只是使用fileTransfer API發送整個sqlite數據庫(這似乎有點多)?

這實際上取決於數據庫的大小,而不是三個或更多商店之間的日記和同步數據的複雜性。

哪些新功能可以幫助我使手錶保持最新狀態?

如果必須維護多個店,你一定要利用後臺刷新任務功能的watchOS 3要讓你的表(ES)的用戶啓動應用程序前跟上時代的,所以用戶不需要等待任何事物的同步。

This answer might be helpful,即使您沒有使用併發症。

我的其他選擇是什麼?

Apple建議您圍繞與設備交互的不同方式設計一切。用戶可能只是想看看手錶幾秒鐘來查看一些項目,但依靠手機進行更復雜的任務。

在這種情況下,您可以在iPhone上維護一個商店,並從iPhone上傳輸所需的任何數據以顯示在手錶上。如果有任何更改,請將更新的數據推回到手機。

「Handoff」方法效果最佳,手機和手錶知道最近的項目是什麼,用戶可以在白天切換手機和手錶。

當然,這取決於手錶是否必須在手機超出範圍時獨立運行。

+0

非常詳細的答案,謝謝。我認爲我需要重新思考我的手錶策略,因爲看起來,我的需要,構建出可以在x個配對設備之間可靠同步的系統的麻煩方式。 – djibouti33

+0

如果您願意將數據對象存儲在雲中,CloudKit旨在處理設備之間的同步。我不會鼓勵任何人嘗試推出自己的系統。這非常複雜,你最終會面臨很多技術債務。讓蘋果或其他人處理這些錯綜複雜的事! :) – 2016-07-25 22:37:31

+0

這真是一個很好的觀點,還有一個我沒有考慮過。我實際上正在計劃爲我的v2雲計算套件集成(希望將重點放在發佈v1作爲我的主要優先事項),所以這可能是將原生雲套件支持(並因此同步)提供給手機和觀看的好時機。同時,根據您的回答,我減少了手錶應用程序的複雜性和功能,這將使我能夠更快地走出門外。在這一點上,多個手錶無論如何都是一個邊緣情況,所以我會討厭那樣阻止我。 – djibouti33