将iPad支持添加到iPhone项目:通用应用程序还是两个独立的应用程序?

22

我有一个现有的iPhone应用程序,最近似乎有很大一部分用户正在iPad上运行它(因为我从用户那里收到的很多电子邮件都带有“来自我的iPad”的签名)。

我现在正在实现iPad版本,并且正在使用相同的代码库进行操作,这样做非常方便。但是完成后,我想知道是否应该实际上将其发布为通用应用程序。我可以将其作为单独的全新的仅限iPad的应用程序上传。

如果我使其成为通用应用程序:

  • ✓ 当现有的iPad用户更新并突然看到iPad支持时,他们会感到高兴。
  • ✓ 我受益于应用程序的现有排名/流量,无需从头开始构建。
  • ✗ 我的iPhone用户将毫无所获地看到更新。
  • ✗ 用户评级可能会变得混乱,因为两个版本非常不同

如果我将它们制作为两个单独的应用程序:

  • ✓ 我可以为iPhone和iPad设置不同的定价
  • ✗ 我的iPhone应用程序的现有用户,如果在iPad上,则不会知道有新版本可供他们使用。而且如果他们发现了它,需要迁移他们的数据会让他们感到恼火。再次购买也是如此。

我是否错过了任何其他权衡,可以帮助决定采取哪种路径?有人从采取任一路线中获得经验分享吗?


19
开发者提出了非常明确且重要的问题,这让人们感到遗憾的是版主关闭了这个问题。我理解这个问题不仅仅涉及代码 - 但是在Stack Overflow上,很多开发者提出的问题也不仅仅与代码有关。而这个问题恰好是我正在寻找答案的问题,而且用词比我想象的更好。 - Rhubarb
感谢您的道德支持!我得到了有用的答案(带有事实、参考和特定的专业知识,引用下面的框),这肯定对我有所帮助。但我能理解需要进行适度管理。 - Clafou
2个回答

11

别无他法,你应该进行通用化。

唯一反对通用应用的理由可能是不同的定价(我认为这可能会让客户非常生气,尤其是那些已经在他们的 iPad 上使用该应用程序的现有客户)。

我可以举出很多理由:

  • 客户会看到支持通用性的应用程序更新提示。如果创建一个单独的 iPad 应用程序,则必须手动联系 iPad 客户以通知他们

  • 代码更易于管理。如果您正在创建一个数据处理类来为表/视图提供信息,为什么要在两个不同的项目中拥有相同代码的两个副本?将来如果修复了一个 bug 并且必须在不同的项目中做相同的修复,为什么要做两次呢?

  • 作为开发人员,拥有通用应用程序使您看起来更专业

  • 随着您的项目不断增长,拥有两个不同的应用程序将成为开发噩梦,因为需要进行更改、运行更新等等。

  • 某些第三方库需要某种形式的应用程序 ID 才能运行。还有其他库需要您按应用实现付费。当您可以在单个通用应用程序中完成时,为什么要为不同的应用程序支付两次费用呢?

  • 客户体验-拥有 iPhone 和 iPad 的用户将希望通过 iCloud 等方式在其 iPhone 和 iPad 之间同步应用程序。我认为用户会不太高兴地发现他们的数据未在设备之间同步。

  • 针对一个设备的应用内购买必须再次购买另一个设备(这在客户中不会受到欢迎)。

... 我可以继续讲一整天。总之,除非你有非常好的理由使用单独的应用程序(我坦率地想不出任何理由),否则请使用通用应用程序。通用应用程序看起来干净、建立良好和专业制作。他们给客户留下了很好的印象,并且对于开发人员来说非常容易管理。

为 iPhone 和 iPad 制作两个单独的应用程序就像将网站拆分为具有自己的独立域名的不同独立版本一样... 没有意义 :)


2
回答得很好,但我不会忽略“单独定价”的优势论点。似乎用户愿意为iPad的体验额外付费。我没有经验,但我注意到像InstaPaper这样的流行应用程序成功地做到了这一点。如果单独定价策略奏效,并显著增加了底线,那么这就超过了所有其他缺点,不是吗? - Rhubarb
2
没错,但是随着新的iOS5变化(尤其是iCloud同步),用户会期望应用程序之间有某种协同作用。此外,在设备同步期间备份应用程序时,我认为拥有相同应用程序的两个单独备份可能会变得笨拙。无论如何,我并不是说分开定价就应该被诅咒:),但由此产生的缺点列表也会很多(我现在可以想到一个 - 在iPhone上进行的应用内购买需要再次购买iPad实现)。 - Sid
无论如何,你确实提出了一个观点;但我要说的是,虽然这种情况确实会发生,但大多数应用程序都是通用的。 - Sid
2
作为一款相当成功的应用程序的开发者,分割定价方式运作良好,即使需要重新购买应用内功能也会让人感到烦恼,但他们仍然会支付。我们重复使用了很多iPhone屏幕,但在一天结束时,iPad上有更多的屏幕空间,我们花费更多的精力增加了该屏幕的价值。他们为这额外的开发成本付费。代码库是共享的,因此所有核心部分都会得到更新,然后iPhone和iPad有适当的子类,所有细节都会得到调整。话虽如此,我来到这篇文章是因为我们正在考虑一种通用模型。 :) - Josh Peak
7
你不需要有分离的代码来管理两个不同的应用程序,你只需要另一个目标。 - Rafael Sanches

7

非常有说服力的见解!谢谢! - Clafou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接