与iOS应用程序共享应用程序时watchOS应用程序的独立操作

时间:2016-04-19 15:00:40

标签: ios core-data watch-os-2 watchconnectivity

我的iOS应用程序使用CoreData作为其数据存储,我添加了一个watchOS应用程序。目前iOS和watchOS应用程序之间的工作流程如下:

  1. watchOS app公开了一个菜单,表示iOS应用程序中可用的功能子集
  2. 选择其中一个选项会向iOS应用程序发送一条消息,告知其选择了哪个选项
  3. iOS应用程序通过将该特定功能的手表所需的任何数据打包成字典并将其发送回回复处理程序中的手表来进行响应
  4. watchOS应用程序为用户提供了一个界面,允许他们更改数据中的值
  5. 每次更改都会向iOS应用程序发送一条消息,该应用程序使用新值
  6. 更新核心数据存储

    这项工作正常但很明显要求在整个应用程序使用手机时将手机连接到手表才能正常工作。我想知道下列模型是否可行:

    1. 如上所述
    2. 如上所述
    3. 如上所述 3A。手表在本地存储数据
    4. 如上所述
    5. 每次更改都会更新观看应用的本地数据副本
    6. 用户稍后可以将数据重新检入iOS应用程序,然后将其合并到核心数据数据库中
    7. 我可以保证冲突不会成为问题,因为用户永远无法修改已经在手机上创建的数据(这不是应用程序要求能够这样做的)。

      所以我的问题是,后一种情况是否允许watchOS应用程序独立于iOS应用程序运行,但传输数据除外,这是我目前处理此方式的首选方法吗?

1 个答案:

答案 0 :(得分:0)

您的手表应用程序依赖于手机更简单。它独立于手机操作更复杂。只有你可以 回答是否增加支持真正独立性的复杂性是值得的,因为你是必须实现,支持和维护所需的任何其他代码的人。

更改是否会使手表应用独立?

不,他们不会让手表应用程序独立运行,因为手表仍然必须在步骤2和3中从手机请求/接收数据。

为了使手表应用程序在远离手机时完全独立,它必须查询手机根据需要更新的数据的本地副本,而不是要求手机发送手表需要的任何远程数据。

更改是否更可取?

不是这样。您建议的推迟更新手机的更改(即使它仍然可以访问)可能需要许多与本地存储数据相关的不必要的代码,并在将来将更新合并回手机。

此外,虽然您承诺目前没有合并冲突需要处理,但无法保证您将来对您的应用进行的任何修订都不会引发冲突发生的可能性。

如果您选择建立两个持久性商店,则会使您的应用程序不那么脆弱,无法实施合并策略现在,以避免在未来发生冲突时您的更新完全无法保存。< / p>

真正的问题......

是否可以自由地远离电话(数小时)操作,向用户显示陈旧(或可能误导)的数据?

除非您还提供显示电话刷新数据的时间的指示,否则用户可能会认为显示的信息是最新且准确的,即使它可能是几个小时。

这会在面向用户的UI中或在幕后处理陈旧数据时增加手表应用程序的复杂性。

为了您的考虑,Apple Watch的Weather应用程序在无法从手机获取当前天气数据时根本不显示任何数据(因为用户想知道当前温度和机会沉淀)。