使用Titanium或Rhodes重写本机iOS应用程序

时间:2012-09-18 08:03:06

标签: ios titanium rhodes

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

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

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

2 个答案:

答案 0 :(得分:2)

  

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

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

  

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

这里你应该考虑的是新应用程序与旧应用程序的差异程度。如果您的客户群存在令人失望的风险,也许您可​​以选择单独的版本。很明显,这样做会打扰一些为旧版本付费的用户。在我知道的至少一个案例中应用的一个方案是在初始阶段免费提供应用程序。但这是否合理取决于您的应用程序的前景。

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

答案 1 :(得分:1)

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

在我看来,在将用户用于使用Objective-C编写的完全原生应用程序之后,通过使用跨平台框架重写应用程序,您将损害用户的利益。抛弃代码,你会伤害自己。无论现在多么难看,都可以修复错误的代码。

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

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