开发iPhone应用有多难?

21
我想知道在iPhone平台上开发有多难。 所谓的“难度”,指的是:
  1. 程序员与软件复杂性之间的努力。 明确地说:开发中等大小的iPhone应用程序需要多少程序员?
  2. SDK学习曲线。
  3. 硬件和其他与编程无关的事情影响开发
  4. 销售iPhone软件有多容易。 具体而言:在itunes上销售应用程序容易吗? 需要花费什么费用? 我对如何在iTunes商店上销售这些应用程序感到困惑...
  5. 任何人都有广告支持的应用程序经验吗? 请告诉我...那是怎样的体验?
谢谢

1
  1. 开发者许可证售价为99美元。您可以在没有许可证的情况下进行开发,但无法将其安装到iPhone上。一旦您拥有应用程序和许可证,就可以提交审核。 审核需要2周时间。如果您很幸运,他们会批准它。然后您需要等待第一笔支票。(一个月过去了,我的商店仍在等待)
- Elizabeth Buckwalter
这个问题的答案会因人而异,因为不是每个人都有相同的编程背景。此外,如何销售您的应用程序将取决于它是什么,这是超出本网站范围的主题。 - Brad Larson
据我所知,您需要一台安装了Leopard或Snow Leopard的MAC电脑,不确定版本,但您可以随时更新。 如果您正在寻找一个坚实的iPhone应用程序开发入门指南,我强烈推荐Dave Mark和Jeff LaMarche的书《Beginning iPhone 3 Development》。 - Maurice
@Maurice:你需要一台Intel Mac电脑(我妻子的iMac运行Leopard,但由于它是PPC架构,理论上至少无法运行iPhone开发工具包)。 - David Thornley
8个回答

49
  1. 一个全能的程序员可以轻松地做到这一点。一旦你完成了第一个应用程序,你会惊讶地发现有些应用程序销售得很好,而实际编程量很少。你必须是一个全才,因为成功的应用程序需要拥有一切-设计、灵感和执行。如果你的品味与流行趋势不符,考虑请设计师参与进来。不要指望使用标准UIButtons发布任何东西,在商店里它会像传说中的那样脱颖而出。正常的做法是必不可少的,例如版本控制、问题跟踪以及所有好的东西。似乎在你工作的API的层次越高,它的重要性就越大。

  2. SDK的学习曲线并不那么陡峭。起初,你会为什么NSArray不能接受另一个值而苦恼,但在1-2个月内,你将在各个地方创建子类。然而,请看下面的内容,不要尝试做太多定制的东西......

  3. 你需要一台Intel Mac电脑,至少需要一部iPod touch才能提交应用程序。如果在实际硬件上测试之前尝试提交,你会错过一些东西,并且会被拒绝。你不必使用最新的Mac OS或Xcode才能开始,但可能需要用于商店提交。如果配置,请选择更多的内存而不是更快的处理器速度。固态硬盘是必要的。大屏幕(或多个屏幕)就像任何编码任务一样,是一个巨大的优势。新的27英寸iMac将成为一个很好的开发机器。当前的Mac电脑很难出错,我用过11英寸的Air和迷你版,它们在开发方面与Mac Pro几乎没有太大的区别,只要你有一个大型显示器连接。

  4. 销售并不难。只要你的应用程序不是完全垃圾并且不会立即获得10个1星评价,纯粹的数量就能让你获得一些销售额。要想做大是很难的,你需要调查市场营销、审查网站、Twitter、YouTube,事实上,你可以把市场总监的职责添加到你的全能程序员技能中。商店上的噪音(应用程序的纯数量)意味着在没有任何其他努力的情况下,只有真正杰出的应用程序(即由苹果推荐)才会脱颖而出。商店里可能有很多应用程序,在2008年就可以让它们的开发者变得富裕,但现在他们很幸运能卖出1000份。加入的费用是99美元,之后你会获得销售收入的70%,而苹果则保留30%。

另外...

考虑到我是一名C/C++程序员,主要编程嵌入式设备和手机,几乎没有C#/STL/Java经验...

以下是我认为容易/不错的:

  • Xcode(尽管我承认从Visual Studio开始有点令人不适应)

  • 简洁性-你可以用几行代码做很多

    WWDC视频会议。虽然不便宜,但可能比你支付的费用更有价值,因为它深入详细地介绍了知识。我曾参加过类似的开发者会议,那只是借口住在一家不错的酒店并进行免税购物,但如果我没有参加WWDC,我会觉得自己处于严重劣势。参加WWDC的最大好处就是你能遇到的人,这和实验室会话是你如果赢得门票抽奖的话所能获得的。如今,所有技术演示都可以通过免费视频获得。

    以下是我发现很难的事情:

    • 在某些情况下知道使用哪种存储类。我的第一个巨大性能问题来自于在具有数十万个对象的NSArray上使用indexForObject。现在很明显,但谁会在第一次遇到时知道呢?

    • 放弃关于用户界面(UI)应该做什么的预设想法。在使用至少20个iPhone应用程序并对通常的操作方式有一些了解之前,不要去布局.xib。否则,不仅可能更难,如果你的想法与人机界面指南相差太远,那么也有可能永远不会被商店接受。

    • Xcode调试消息-一开始它们很晦涩,但当你找到其他人解释它们时,过一段时间后就开始变得有意义了。

    以下是我发现完全令人困惑,并通过试错方法解决的事情:

    • 苹果的设备上配对流程
    • 实际提交至App Store

    到目前为止,我在商店上只有一个小游戏。它不是特别好的游戏,除非你真的喜欢那种东西,只有单词游戏迷才是,但它在1周之内仍然有10个销售量,而且根本没有宣传。我这样做是为了熟悉商店的运作方式,从这个角度来看,它是成功的。学习曲线上,从打开第一个苹果文档到提交游戏,我可能需要六七个星期的全职时间,但今天我只需要大约两天。

    编辑:难以想象这个答案现在已经超过两年了,人们仍然投票支持它。好吧,我没有成为应用商店百万富翁,但许多人已经成为了,即使我们现在看到一些大公司制作出非常精美的应用程序并且拥有很大的预算,这仍然可能发生。秘密武器是什么?热情,它带来了注意细节。如果你喜欢你的应用程序,用户也有很大的机会喜欢它。

    我没有参加2010年的WWDC,但我参加了2011年、2012年和2013年的WWDC。坚持下去吧,独立开发者-你几乎肯定不能靠第一个应用程序过上退休的生活,但是你将在一个不断增长的令人惊叹的平台上工作,背后有一个难以置信的社区。你可以靠自己过得很

    更多修改:我有提到CocoaHeads吗?找到你当地的iOS程序员并了解CocoaHeads。如果没有,考虑开始一个。无论如何,你都会发现机会(例如项目或就业),或者在成功后无法成为一人商店时找到雇用人员。更不用说这些组织的演讲者所代表的有用免费教育了。

    对于从其他语言转换过来的程序员而言,Swift现在可能比Objective C看起来要少一些奇怪。我认为如果你是初学者,选择Swift是正确的选择,苹果显然正在推动它作为未来,自2014年引入以来已经变得更加完善。如果有这个选项,学习Swift可能会让你获得优势——许多开发人员被困在支持现有的Objective C项目中。

    iOS继续增长并成为一个有趣和有趣的平台,我认为它不会放缓。OS X跟上了步伐。我还是非常高兴我在2009年做出了这个选择。快来,市场很好。


2
很棒的回答,+1,可惜我不能多次点赞 ;) - sindre j
我仍然可以点赞,+1 也来自我!很棒的帖子! :) - favo
1
在iTunes University上为斯坦福CS193P iPhone编程课程点赞!他们非常棒! - Thomas

12

我们大约一年前开始开发,目前市场上有两个基于OpenGL的2D游戏。我的经验如下:

  1. 简单的应用程序可以由一个人完成。对于中型的应用程序,您可能只需要一个优秀的程序员进行管理,但通常还需要其他人,例如图形设计师。这高度取决于您的应用程序的性质。
  2. 如果您没有Objective-C和Cocoa的经验,则有些陡峭。具备C语言知识、面向对象编程(OO)以及计算机语言概念的知识会有所帮助。即使如此,你也需要花些时间适应他们的做事方式(这通常是经过深思熟虑的,但与其他人/语言/堆栈经常不同)。
  3. 最大的非编程问题是复杂的供应和审核流程。需要一段时间来适应所有的档案和证书和签名。你会讨厌它,但会习惯的。
  4. 销售应用程序很难。要么你必须是幸运儿之一,进入设备上的精选应用程序,要么你必须是某个大型品牌,或者你的应用程序必须是某个特定受众群体(如地理缓存),否则你将很难赚到足够的利润。销售过程本身相当无痛 - 一年99美元,苹果公司会抽取你收入的三分之一。

5
  1. “中型”指的是什么取决于你想要花费多长时间。总体而言,要制作一个良好的应用程序,你需要一些组合技能:编程技能、美术技能、设计技能和商业知识。然而,大多数人不喜欢做所有这些事情。我猜iPhone上的大多数应用程序只有一个实际的程序员,但你能够看出那些是由一个应该得到其他方面帮助的程序员编写的。

  2. 这要看你已经掌握了什么。对我来说,花了一个月时间才觉得Objective C不再是一门非常奇怪的语言,而我已经使用过很多不同的语言。

  3. 硬件不是问题,除非你没有Mac、iPhone和iPod Touch。对我来说最大的非编程问题是App Store的审核流程;你必须明白,当你认为完成了时,你需要等待几周,并且有可能你认为很棒的想法属于一些永远不会被批准的类别,或者你将不得不更改你的应用程序名称等。

  4. 一旦你支付了99美元,就可以轻松在iTunes上销售应用程序。如果你的目标是让全世界的人下载你的免费应用程序,或者将你的应用程序出售并赚取数十美元,那么App Store非常适合你。如果你希望赚取数百万甚至数千美元,你必须具备一些能力、毅力和运气。


我计划开始开发iPhone应用,因此我很关注努力程度,因为我想要只由我自己制作的应用。我无法招募程序员,因此我的应用程序代码规模必须较小... - JPCF
肯定有可能自己完成所有工作——你只需要清楚地了解自己想要实现什么以及自己的局限性。 - David Maymudes

3
由于这通常是高度主观的,根据我的经验很难回答您的问题。
1)总体而言,与使用其他平台相比,所需的工作量要小得多。熟悉软件工程原理,包括设计模式等的人会发现SDK是围绕我们习惯的所有常见抽象构建的(除了仍然使用C样式过程API的非常小的部分)。
2)对于自己开展该项目的人来说,学习曲线是陡峭的,但对于受到培训的人来说则非常容易。快速的课程式SDK和工具暴露(总计40小时)通常足以使人们变得足够熟练。
3)在我的经验中,没有需要考虑的硬件问题。正如Zoul已经指出的那样,为设备进行配置需要一些时间。提交/审核流程在我看来要容易一些。
4)销售与其他平台一样困难。但是,如果您有一个真正杰出的想法,那么通常会销售许多软件副本。或者,这个想法可能不是那么出色,但是您开发的软件对于针对始终在移动中的人群的某个领域至关重要。只是开发一些没有明确目标的东西是灾难的完美配方。

1

非常主观。一个单人应用程序开发者可以开发中等大小的应用程序。需要多长时间?这取决于开发者有多少空闲时间和对 Obj-C 的经验。

我在不到一天的时间里学会了 SDK 的一些部分。我仍然不知道整个 SDK,因为我没有必要。我怀疑任何一个程序员都不想花时间学习整个 SDK。例如,如果您不使用加速度计做任何事情,为什么要研究它?

你需要卷起袖子自己深入研究,看看需要多长时间。如果您是为您的团队提问,则必须判断他们的专业知识将如何应用。

至于在 iPhone 上销售,有一些容易的方面,例如无需担心包装或销售人员,但您仍然需要投入资金进行营销,否则今天几乎有95,000种应用程序在应用商店中,没人会发现您的应用程序。

如果你问这个问题是因为你一直听说编程是一个容易的“致富计划”,那么我要告诉你,你会感到惊讶的。尽管在某些方面开销减少,启动资金低,但它和任何其他软件企业一样需要付出同样的努力,因为团队成员与工作量的比例保持不变($2.99或$4.99或$9.99应用程序的经济学迫使你拥有更小的团队)。


1
  1. 你对“中等规模的应用程序”有什么定义?它可能只是你自己,也可能包括一个设计师在内的几个人。此外,如果你有更多时间,你需要的人就越少。

  2. 这严重取决于你迄今为止的经验。许多人从.Net和Java开发转过来,并没有觉得太难……你可能需要至少一个月的时间才能熟悉很多概念。

  3. 你需要一台Mac电脑,就这样。任何具有2GB内存的Intel Mac都可以。

  4. 销售非常容易,因为你所要做的就是上传一个二进制文件,然后(等待苹果公司批准)苹果公司将其上架出售。你不需要服务器。你需要支付每年99美元的开发费用。


0

或许可以用一个类比来解释...我想知道建造一座房子有多难。

  1. 就建筑师和房子的复杂度而言。明确一下:建造一座中等大小的房子需要多少人?
  2. 电动工具的学习曲线。
  3. 许可证、计划和其他非建筑方面的事情。
  4. 出售我的房子有多容易?

-1

让我给你一些指导,因为我在JQTouch上工作过。它是一个使用JQuery构建的库,还提供了与多点触控相关的功能。基本上,这是用于UI相关的东西。 请查看JQTOUCH并查看代码示例。业务逻辑可以使用您选择的任何服务器端技术来完成。

总结一下与您相关的问题

  1. 工作量不是很大。对开发人员来说很容易开发。文档较少。
  2. 相当简单
  3. 模拟器可以从Emulators下载
  4. 对此了解不多。

在这种情况下,他们指的是本地应用程序,而不是Web应用程序。 - Brad Larson

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