代码之家  ›  专栏  ›  技术社区  ›  Paul Alexander

支持传统iPhone用户

  •  8
  • Paul Alexander  · 技术社区  · 15 年前

    既然iPhone SDK 4.0可以下载,iOS 4.0很快就可以供消费者使用,那么开始使用4.0操作系统中的新功能是否有意义?

    我主要关心的是,使用4.0功能要求最终用户也将其手机/iPod更新为4.0。虽然这个过程非常简单,但是否合理地期望大多数用户进行更新?应用程序本身并不需要在新的操作系统中引入任何东西,但是一些传统的动画技术现在“不鼓励”使用它们的基于块的对应技术。这对我来说很好,我更喜欢使用块方法,但我担心这对最终用户来说是个麻烦。

    那么这方面的一般经验是什么呢?你是选择最新最棒的版本还是选择最新的版本?

    P.S.这是假设 转基因 当操作系统可用时,在最终用户上安装操作系统,而不是测试版。

    8 回复  |  直到 9 年前
        1
  •  22
  •   Community CDub    8 年前

    这要看情况而定。您至少有3个选项,最佳方式取决于应用程序的要求:

    1. 你的应用程序没有 要求 任何iOS 4.0 API -您应该使用basesdk 4.0构建,但是将目标部署设置为您必须拥有的最低版本(即:3.0)。
      优势: (1)您的应用程序运行在至少具有该目标部署版本的任何设备上,(2)它将支持iOS 4.0设备上的快速应用程序切换。 缺点: 在目标部署版本之后,不能使用来自的任何API。

    2. 使用4.0 API,您的应用程序会更好,但如果没有它们,它仍然可以使用。 -如果您可以有条件地使用4.0 API,可以在iOS 4.0之前的设备上提供简化的功能,也可以在4.0之前的设备上使用不同的API时提供类似的功能,那么您可以使用basesdk 4.0进行构建,将目标部署设置为必须具有的最低版本(即:3.0),并有条件地使用iOS 4.0 API CALLS。 优势: 您可以在至少具有最低iOS版本的所有设备上运行。 缺点: 所有这些条件调用都会变得复杂。

    3. 你的应用程序 要求 一些iOS 4.0 API用于运行 -你别无选择。使用basesdk 4.0构建,设置目标部署4.0并使用这些4.0 API。
      优势: 代码更简单,iOS版本没有条件 缺点: 你的应用还不能在ipad上运行(2010年秋季他们会得到4.0),你的应用永远不能在3g之前的iphone上运行(他们不会得到4.0),而且一些iOS 4.0功能在iPhone3g上也不能运行。

    在所有情况下,您的基本SDK都将是4.0,您的目标部署将是 要求 如果你需要一个更新的API,你可以有条件地使用它,如果设备有它的话。

    通过使用basesdk 4.0进行编译,即使不使用任何4.0功能,也可以在4.0设备上快速切换应用程序。所有应用程序都至少应该这样做,即使它们的目标是iOS 2.0。如果您不需要4.0功能,请不要使用它们,您可以针对更广泛的较旧设备和尚未升级的设备。

    这个 recent answer on SO 总结了如何为basesdk和目标部署执行此设置,以及如何有条件地使用API以针对多个固件版本。

        2
  •  4
  •   progrmr    15 年前

    这个 推荐 配置是将基本SDK设置为最高(即4.0),将部署目标设置为适当的版本(取决于应用程序中使用的框架功能)。

    当然,该应用程序可以随时检查操作系统版本,并跳过对不受支持框架的调用。这是构建iPad和iPhone通用应用程序的常用技术。

        3
  •  1
  •   jer    15 年前

    我个人通常会将一个主要版本作为目标(即目标3.1而不是4.0),这通常会让我看到一个窗口:“你去年更新过你的手机吗?”但是,根据您的应用程序,您可能能够使用多任务或其他仅在4.0中的功能。那么,这就是你认为你的用户会马上想要什么的问题。如果你认为他们可以稍等一点,看看进展如何;如果你发现很多用户都在快速转向4.0,那么就推出你的更改。

        4
  •  1
  •   5ound    15 年前

    在我看来,如果你能等几个月让人们过渡到4.0版本,那就稍等一下,否则就继续使用4.0版本的功能。

    根据我过去几年的统计,2.0->3.0升级花费了一年多的时间,但主要是iPod touch用户,因为苹果公司为此收取了10美元。

    我希望4.0的采用率会快得多,但请记住,第一代iPhone/iPod不会升级到4.0。

        5
  •  1
  •   Tom Andersen    15 年前

    我发现,查看安装了旧操作系统和新操作系统的iPhone/Mac等设备的数量并不能很好地了解用户的消费习惯。

    在应用商店花钱的人更有可能更新操作系统软件。

    如果你的应用程序有任何程度的复杂性,它将需要一些时间来发货,你将有一个非常小的窗口,iPad仍在运行3.x。

    为多个操作系统级别开发是一件痛苦的事情。除了需要在ipad/iphone/ipod上运行你的应用程序外,现在你还需要在两个操作系统上运行它。错过了检查一个只调用4.0很少执行的代码的地方,会导致崩溃。

    为了代码库的长期稳定性,只在新的应用程序上构建4.0也是很好的。简单更好。

        6
  •  1
  •   Nuoji    15 年前

    我认为大多数用户会升级是安全的,因为这是从3.0免费升级。 很明显,苹果热衷于让用户使用4.0,这就是为什么它是免费的。

    和正常更新一样,iTunes会唠叨升级,如果需要重新安装,手机通常会重定向到最新版本。

    当你在销售一个应用程序时,你可以相当自信地看到你的买家可以上网,并且至少偶尔会将他们的手机停靠起来,并获得免费的更新请求。以前更新过手机的人很可能同样升级到iOS4。

    目前,正如我所看到的,留在3.x上的主要动机是为了iPad的兼容性。

    你还应该考虑在未来6个月内你的销售情况。不使用最新功能的成本是多少?你能通过4.0减少开发时间或增加尖端功能吗?竞争对手的应用程序能否利用4.0功能获得优势?将其作为4.0-only广告可能会对应用程序的感知产生积极影响。

    那里 一定比例的人将无法运行您的应用程序,因为您使用4.0。诀窍是弄清楚销售中的损失是否大于或小于你留下的收益。

    您期望的买家越多,让他们运行您的应用程序就越有价值。此外,购买者是否可能是拥有计算机专业知识的人?如果是这样,他们可能更不可能留在3.x上。

    另外,请记住,iPhone3G之前的手机不支持iOS4。

    再加一个:

    苹果已经开始从AppStore中排除2.0应用程序,请参见 https://developer.apple.com/iphone/checklist/

        7
  •  0
  •   Ole Begemann    15 年前

    是的,在我看来,利用OS4.0中的新特性是完全有意义的。安装了4.0的用户对不支持应用程序快速切换(以及iPhone4的高分辨率显示)的应用程序几乎没有容忍度。

    我主要关心的是,使用4.0功能要求最终用户也将其手机/iPod更新为4.0。

    那不是真的。支持新功能不需要您放弃对旧操作系统版本的支持。只需将基本SDK设置为4.0,将部署目标设置为3.x,并确保在不检查是否存在4.0特定方法的情况下,代码不会调用这些方法。( respondsToSelector: )

        8
  •  0
  •   JosephH    14 年前

    Progmr已经给出了一个很好的答案;值得补充的一点是一些硬数据:

    http://www.appleinsider.com/articles/10/07/22/chitika_ios_4_already_powering_50_of_iphone_traffic.html

    也就是说,50%的iPhone用户(从2010年7月开始安装和使用带有广告的应用程序)仍在运行4.0之前的版本。