0

我在 AppStore 中有一个 iOS 应用程序,不久前用 Xcode 构建,但我正在考虑从头开始重写它以消除一些错误的决定,这次使用一些跨平台框架,如Appcelerator TitaniumRhodes来添加 Android 支持还。

我当前的 iOS 用户是否可以无缝升级到新版本,保留他们的用户数据(当然新应用中需要迁移器)。我想我必须在新版本中保留一些应用标识符或其他数据。

或者我应该将它创建为全新的应用程序并让用户迁移他们的数据(可能使用该Open in...方案)。这样做的缺点是当前用户必须重新购买该应用程序,这可能会使其中一些人离开。

4

2 回答 2

2

我当前的 iOS 用户是否可以无缝升级到新版本,保留他们的用户数据(当然新应用中需要迁移器)。我想我必须在新版本中保留一些应用标识符或其他数据。

原则上是可以的。您正在迁移到不同的开发平台这一事实不会影响您访问用户已经存储的数据的能力。最后,这在很大程度上取决于您如何存储该数据:如果它是 through NSUserDefaults,它将非常透明;如果它在 XML/JSON 文件中,您将需要向您的新应用程序添加一些 XML/JSON 解析器(前提是 Appcelerator Titanium 或 Rhodes 尚未提供);如果是通过 sqlite,我知道,例如 Titanium 支持它;如果是通过 Core Data,也许你需要为现有数据编写某种转换器。但是,最终,这绝对是可能的。

或者我应该将它创建为全新的应用程序并让用户迁移他们的数据(可能使用 Open in... 方案)。这样做的缺点是当前用户必须重新购买该应用程序,这可能会使其中一些人离开。

您在这里应该考虑的是新应用程序与旧应用程序的不同之处。如果存在让您的客户群失望的风险,也许您可​​以选择单独的版本。很明显,这样做会打扰一些为旧版本付费的用户。我知道的至少一种情况下已应用的一种方案是在初始阶段免费提供该应用程序。但这是否明智完全取决于您的应用程序的前景。

也许最好的方法是争取一个大幅度改进的新版本,这样失望的客户将是最少的,并保持相同的捆绑包 ID 以实现无缝更新。

于 2012-09-18T08:51:54.227 回答
1

我建议重构您当前的 iOS 代码库,而不是从头开始重写它。当您可以随时重构和清理代码时,从头开始重写几乎总是错误的决定。它总是比您预期的要难,花费的时间比您预期的要长,并且通常最终不会提供您预期的好处。重构更便宜、更快、更安全。

在我看来,在用户习惯于使用 Objective-C 编写的完全原生应用程序之后,使用跨平台框架重写应用程序会对用户造成伤害。丢弃代码会对自己造成伤害。糟糕的代码可以被修复,无论它现在多么丑陋。

我建议使用 Java 编写您的 Android 应用程序,并在 Android 应用程序完成后重构您的 iOS 应用程序。您可以通过这种方式为两个平台提供最佳体验。首先添加 Android 支持的原因是因为您已经在商店中有一个可以运行的 iOS 应用程序,所以您已经有 1/2 的方式存在,而无需触及跨平台框架。编写 Android 应用程序还应该让您充实有关如何重构 iOS 应用程序的想法。

至于升级您当前的用户,您需要保持捆绑 ID 相同,以便用户能够通过应用商店无缝升级。也可以升级他们的数据,但您需要提供有关该数据如何存储在当前应用程序中的更多详细信息。如果可能的话,自动升级比需要用户手动加载其设置的 Open In... 方案更可取。

于 2012-09-18T08:16:12.060 回答