北漂IT民工 的博客

著名iPhone程序开发者精彩演讲苹果之道

来自Big Nerd Ranch的开发者Aaron Hillegass和Joe Conway在上周末的Voices that Matter iPhone大会上做了一场精彩的演说,从开发者的角度详述了一款iPhone应用的生命周期。他们两位都是著名的开发者指导,还是iPhone软件开发 的顾问。在演讲中,他们解释了iPhone软件如何产生,从开始到完工,其间还向参加会议的开发者提供了他们开发软件的窍门和建议。



首先,Aaron Hillegass和Joe Conway透露了自己不愿合作的客户,以供其他开发者参考。这些客户分别是:Dreamer guy,Ad guy,web guy,enterprise guy,clone guy,future recipient of a C&D guy,desperately seeking cool。原因是,这些客户有些急于求成,却又不提供任何想法;有些想为自己的网站开发软件,却又想拿着软件到App Store赚钱;有些甚至早早要求开发者签订协议,似乎早就知道你开发的软件安全性能不够。


他们提醒开发者在卖力开发软件之前应该先 调查清楚客户的背景与要求。接着,他们进入正题,开始解释iPhone软件开发的过程。


软件能否获得很好的评论,或者是否会被苹果拒 绝,归根到底为一个定义:(向什么样的)对象+区别+解决方案。比如,向学生提供的+设计精美的+电子阅读器;向房主提供的+有趣的+预算追踪器。开发者 可以慢慢思考,要开发的软件是在何时何地使用,列出可行方案清单,然后才思考整个开发过程。


下一步是模型阶段,这一阶段需要设计出软 件的外观和整体感觉。市面上有很多这样的工具,如sketchpads到stencils 到iPad applications。我们的目的不仅是将软件的表面做好,还要将软件的功能进行修正,尽可能地简化,只留下必要的功能。苹果最擅长这方面了,甚至在 硬件方面他们也能做到舍弃,即使他们知道一部分用户想要这些功能,比如他们将软盘驱动从iMac拿走了,把FM收音功能从iPod拿走,把USB接口从 iPad拿走。但这样做的效果则使产品更具目的性,反而更加成功。这一点我们可以从苹果身上学习。


按照Big Nerd Ranch的做法,接下来他们将会把软件从UI模式转为代码模式,在一种类似Omnigraffle的程序制作表格,列出代码中模式、价值和控制器,还标 出软件的数据,比如它将会储存在哪里,以及它的称号。这些信息均在文档中于参与的开发者共享,而且留着还有用处,如果想把软件移植到其他平台上。


此时,Big Nerd Ranch也会为软件做出分析:开发者可以建立一个信息表,随时更新该软件的使用方式,操作方式,以及需要修复的Bug。一些公司甚至还利用专门软件来收 集iPhone用户的建议和想法。假设你是为电影公司制作软件,可以进行调查,让用户选出自己喜欢的电影角色,然后可以用观众选出的最受欢迎角色来作为推 荐电影的人物,放到即将开发的软件中。


Aaron Hillegass和Joe Conway还提到了估算。如果开发者是为客户开发软件,则必须随时向客户更新软件完工时间。这点可要注意了。Hillegass说,你花在估算的时间越 长,你就越擅长估算。但如果你一直都在估算你什么时候能完成开发,你将永远都完成不了。所以,在必要的时候可以将开发时间估算得长一些。BNR的规则是, 加一天,并增加时间的单位。怎么说呢?比如一位开发者说他需要5天才能完成,他们将会添加一天,然后加大时间的单位,即用“周”来表示。这样,他们告诉客 户的完工时间就是“6周”。


编码的过程被称为周期。这时,你需要执行软件的一个功能、加入美术效果、从客户获得反馈、修复一些 Bug,然后才进入下一个功能的开发。Conway指出,在客户和开发者之间还有一个周期,那就是反应,也可等同于金钱。因此,越快从客户获得反馈,开发 进展得越快。


有意思的是,他们透露孩子是他们见过的最好的测试用户。Conway建议,开发者可以向孩子们展示他们的软件,看看孩子 如何操作,如果连孩子都会使用,并且能弄懂你的软件,这说明这款软件很好。


这时,屏幕上出现关于行销的幻灯片。Aaron Hillegass和Joe Conway都承认,他们对软件的行销一无所知。他们只知道需要在App Store提供软件描述和截图,而且还需要一个网站,评测推荐将会为软件的行销提供不少帮助。开发者往往不参与行销,虽然他们知道行销非常重要。“行销是 一个关键。”Hillegass说。


接着,他们大略提了软件的本地化。Hillegass说,如果开发者想让软件支持世界各国语言, 最好延后。因为开发者等待改变软件的语言时间越长,他们实际需要作出的改变越少。一旦准备就绪,开发者即可展开部署。这要根据软件的不同而变化。但如果需 要网页服务,Hillegass和Conway推荐亚马逊和谷歌的服务。需要提醒的是,苹果审核软件的时间一般不可预知,所以开发者都不会清楚具体的发布 日期。


最后,他们谈了App Store拒绝一款软件的几点原因。其中一点是“复制苹果的API(当前的或将来的”。Conway说,开发者的软件常常被苹果没有理由地打回,然后几个 月后会发现苹果实际上将他们软件的功能作为苹果官方的功能发布。飞行模式也是一个被拒绝的普遍原因。一款软件的功能必须能在没有网络的情况下使用。所以一 款软件能不能在飞行模式下打开是软件会否被拒绝的原因。



虽然Aaron Hillegass和Joe Conway的演讲主要是针对开发者,但也给我们圈外人解释了软件开发的流程,最后感谢Aaron Hillegass和Joe Conway的精彩演讲。