我应该在我的应用程序中使用iOS 4新功能吗?为什么?

时间:2011-01-08 12:37:50

标签: iphone ios4 objective-c-blocks

我正在更新我的一个应用程序,我陷入两难境地:

在我想添加iOS 4独特功能的地方,我别无选择,只能为支持的设备实现它们 - 这里没有两难选择。

困境在于我有两种方法可以达到同样的效果,一种是“老方式”,另一种是“新方式”。 一个很好的例子是使用块来制作动画,我可以使用这种语法:

[UIView animateWithDuration:2 animations:^{
     self.segmentedControl.alpha=0;
 }];

仅在iOS 4.0中受支持。或者使用包括4在内的所有版本都支持的旧方式。(还有许多其他类似的例子。)

你做什么以及为什么?

这些块真的很棒但如果我想支持以前的版本,我将不得不编写更多代码?在那种情况下我可以从中获得什么?

4 个答案:

答案 0 :(得分:9)

通常,规则是支持最低版本的操作系统,该操作系统提供的功能使您能够交付所需的产品。我推出了大约一个月后我的所有应用程序都需要iPhone OS 3.0,因为我需要支持自定义复制和粘贴,以及应用程序内电子邮件。对于我的一个应用程序的免费版本,我想尝试iAds,所以我只使用了4.0.

新操作系统提供的内部代码改进的可能性对于制定规则来说有点棘手。正如乔指出的那样,你花费时间与旧的做事方式进行斗争的时间,可以通过转移到新的操作系统版本来节省,是时候你不修复错误或添加下一个伟大的新功能。在某些时候,新的做事方式(如块和GCD)的优雅过于引人注目,即使它可能不会直接为您的应用添加任何新功能。

在Mac上,许多开发人员都支持当前版本的操作系统以及之前由Apple发布的版本(Snow Leopard和Leopard,目前)。只有当新的操作系统问世时,他们才会放弃对以前的落后版本的支持。像威尔·希普利(Wil Shipley)这样的其他人则主张立即专注于新操作系统并忽略旧版本。这里的论点是那些不支付Apple新操作系统版本或者不保持系统更新的人购买第三方应用程序的可能性要小得多。

我在iOS上也见过这个。例如,我在3.0版本的推出期间对不同版本的广告进行了测试(当iPod touch用户仍然需要支付他们的操作系统更新费用时)。虽然我的应用程序的免费版本的下载在2.x和3.x用户之间相对一致,但是3.x用户几乎没有2.x用户为该应用程序付费。

没有人在我的付费用户中抱怨早期转向3.0(他们确实很好地谈论了新功能)并且只有两个人抱怨我的免费版本只有4.0版,相比之下没有升级的56,000个一个问题。虽然我会花一点时间来过渡期,但我相信在它们推出后不久就会转向新的操作系统版本。现在,我正在制作4.0版本的所有内容,以便我可以使代码库现代化。

最后,使用新操作系统版本可以获得的最后一个好处是,您对Apple更具吸引力,因为Apple总是希望使用新设备和操作系统版本中的新功能来推广应用程序。

答案 1 :(得分:2)

开发此应用的目标是什么?

如果是收入(或高下载次数的名气),那么请查看额外细分市场的规模和购买力与开发(以及测试和质量保证和支持)成本。

旧设备所有者和旧操作系统用户是(1)少数(检查当前数字的分析,大约10%或更少并且丢弃),以及(2)他们平均购买的应用程序少于人使用最新的设备和操作系统版本。对于非重磅炸弹的应用程序,这个额外的可能下载百分比可能不值得额外的设备测试和支持这些客户所需的QA时间,更不用说开发工作了。

如果您正在为慈善或学习做一个应用程序,那么请继续将您的工作时间捐赠给喜欢旧设备新应用程序的1人(或其他小数字)。如果您想在最新的操作系统版本中使用一些超级新功能,那么这是很好的技能,在大多数用户升级其设备的操作系统以进行匹配前几周。

答案 2 :(得分:1)

如果你试图通过销售软件来赚钱,那么你应该尽可能地支持尽可能多的操作系统版本,最简单的方法就是编写一个可以在所有版本上运行的代码 - 因此,使用旧式的动画块。

答案 3 :(得分:0)

使用新的动画方式,你可以使用一个块来完成,而不是必须创建一个单独的方法,如果你有多个动画需要在完成时做一些事情,它会更清晰。它也更容易阅读,因为它不是那么分散。必然会有一些技术优势,但我不知道这方面的事情。