我正在更新我的一个应用程序,但我遇到了一个困境:
在我想添加 iOS 4 独特功能的地方,我别无选择,只能仅针对支持的设备实现它们 - 这里没有困境。
困境是当我有两种方法可以达到相同的效果时,一种是“旧方式”,另一种是“新方式”。
一个很好的例子是使用动画块,我可以使用以下语法:
[UIView animateWithDuration:2 animations:^{
self.segmentedControl.alpha=0;
}];
仅 iOS 4.0 支持。或者使用旧的方式,包括4在内的所有版本都支持。(还有很多其他类似的例子。)
你做什么?为什么?
这些块确实很棒,但是如果我想支持以前的版本,我将不得不编写更多代码?在这种情况下我可以通过使用它们获得什么收益?
一般来说,规则是支持最低版本的操作系统,该操作系统提供的功能使您能够交付所需的产品。在 iPhone OS 3.0 发布大约一个月后,我让所有应用程序都需要使用 iPhone OS 3.0,因为我需要支持自定义复制和粘贴,以及应用程序内的电子邮件。对于我的一个应用程序的免费版本,我想尝试 iAds,所以我只制作了 4.0。
新操作系统提供的内部代码改进的可能性在制定规则方面有点棘手。正如 Joe 指出的那样,您花费在与旧的做事方式作斗争的时间(可以通过迁移到新的操作系统版本来节省)是您没有修复错误或添加下一个伟大的新功能的时间。在某些时候,一种新的做事方式(例如块和 GCD)的优雅性太引人注目,不容忽视,即使它可能不会直接向您的应用程序添加任何新功能。
在 Mac 上,许多开发人员保持对当前版本操作系统以及 Apple 发布的上一个版本(目前为 Snow Leopard 和 Leopard)的支持。只有当新的操作系统出现时,他们才会放弃对之前落后版本的支持。其他人,例如威尔·希普利(Wil Shipley),主张立即完全使用新操作系统并忽略旧版本。这里的论点是,那些不愿为苹果新操作系统版本付费或不及时更新系统的人购买第三方应用程序的可能性要小得多。
我在 iOS 上也看到过这个。例如,我在 3.0 发布前后(当时 iPod touch 用户仍然需要为其操作系统更新付费)针对不同版本进行了广告测试。虽然我的应用程序的免费版本的下载量在 2.x 与 3.x 用户之间相对一致,但几乎没有 2.x 用户为该应用程序付费,而 3.x 用户则付费。
我的付费用户中没有人抱怨过早升级到 3.0(不过,他们确实对新功能赞不绝口),只有两个人抱怨我的免费版本只升级到 4.0,相比之下,有 56,000 人毫无问题地升级了。虽然我会给一些过渡期的时间,但我相信在新的操作系统版本发布后不久就会迁移到它们。现在,我正在将我的所有内容制作为 4.0 版本,以便我可以实现代码库的现代化。
最后,使用新操作系统版本获得的最后一个好处是,您对苹果公司更具吸引力,苹果公司总是希望在新设备和操作系统版本中使用新功能来推广应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)