我想做个程序员:一位编程小白的App开发故事

Ben Philabaum是雷克萨斯负责数字项目的一名员工,尽管每天都和开发者一起工作,但却是一个实实在在的编程小白,不会任何编程语言,甚至在开发自己的App之前,连Xcode是什么都不知道。然而,他在不到3周的时间里,却成功地开发出了自己的第一款App——Photo Date。除了编程,从idea、设计到成功上架App Store的一切工作都是Ben一人独立完成。低成本、高效率,一款简单却又非常实用的查看照片拍摄日期的应用就这样诞生了。下面就让我们一起听Ben讲述自己的开发历程吧。

图:Ben Philabaum

9年前,对于大多数人而言,手机还是个奢侈品,当时我第一次购买手机,它笨拙得像个砖块,运行着Windows Mobile系统,还有一个手写笔。让我印象最为深刻的是,将它装在裤子上的口袋里时,会鼓起很大一块,当时感觉很帅也很霸气。

一直以来,我都有一个愿望,那就是开发出一款属于自己的App,但遗憾的是这个愿望从未实现,甚至我连想都不敢想。直到上个月,当我在不到3周的时间里,从想法到应用成功上架App Store,这个梦想终于成为了现实。

第一步:敢想敢做

做一个真正属于自己的App?这个App是什么?实现什么样的功能?针对什么样的人群?在过去,这些问题我从来都没有想过,也不知道从何想起。做应用开始的第一步就是思考做个什么样的应用,完美的?史诗级的?当我终于想到我要做什么时,却发现已有人捷足先登。因此我就必须另辟蹊径,不求独一无二,只求能让人觉得耳目一新。

图:Photo Date

但即使想法再天花乱坠,不能实现又有何用?因此当许多人跟我讲他们那些超级复杂、让人闻之一振的idea时,我只能非常无奈地微笑并点点头。而这也正是为什么我会决定做一个非常简单的App的原因。

我的工作是在雷克萨斯做数字项目,其中有一个是做iPad应用的,也正因为此,我对App还是有一定的了解的,尽管我不知道任何iOS编程语言,甚至在开始我的iPhone App项目之前,我都不知道Xcode是什么。

简单,简单!

在开始App开发之前,我必须要确定idea。不复杂,或许也不让人兴奋,但却非常本质。我冥思苦想,却一直没有好的想法,直到有一天,当我在我的iPhone上滚动浏览相片时,突然灵光一现。“当拍摄这些照片时,我看不到它的日期!”既然都能看到拍摄的地理位置,为什么看不到时间呢?

于是,我在谷歌上输入“how to see iPhone photo date”(如何查看iPhone照片日期),在搜索结果的第一页,我看到大概有5个人在寻找该问题解决方法的论坛帖子。这就表明不止我一人有这样的疑问,其他人同样也有。那么如果我做这样一个App,那一定会有用户群。

由此可见,如果想保证App在发布之后能有一定的市场,明晰用户需求是非常重要的一点。尽管对于我的第一款App,我并没有太多的要求,只是想着以通过App Store审查为目标,尽可能地低成本、高效率。

其实说到底,要想让应用成为现实,想法是什么无关紧要,只是不要心比天高,命却比纸薄。总想着将应用做得多么完美,甚至可以完全颠覆Instagram,这自然是不可能的事情。作为App开发新手,需要做的就是两个字儿——简单!

如何创建一个开发者理解的实体模型?

有两种方法:

 

  • 免费的选择——Skitch

 

下载Skitch,通过其矩形、直线、文本等工具创建一个实体模型,下图是我画的一个例子,说实话,感觉相当蹩脚。

 

  • 20美元的选择(可能免费)——Keynote + Keynotopia

 

如果此前你已经有了Keynote,那么这个选择就是免费的。唉,可惜我没有,因此我不得不花上20美元进行购买,当然,你也可以直接下载使用免费的iPhone模型模板

在Keynote窗口中创建App,在另一个窗口中打开模板。然后选择需要的物件,复制并粘贴。每一格就是App的一个界面,通过复制粘贴,就能让你的App设计非常完美,且毫无后顾之忧。

如果你的应用界面上包含具有描述功能的注释,那将会是非常有帮助的。比如说,如上图所示,在屏幕界面上,用户可以通过他们的摄像机扭转向下滚动,在下方自动显示照片拍摄日期。

 

  • 超级免费的选择——画在纸上。

 

开发部分:毫无压力地寻找开发者

我认为最让人感觉害怕的就是这个部分,作为一个编程小白,我不能说自己亲自动手敲代码,我只能另外雇佣一个开发者,但对于大多数和我有着同样情况的人而言,不知道自己究竟要什么,又害怕雇佣错人,以至于他们必须要多花钱,或者做出的App无法正常使用,亦或者开发者自己需要时间考虑,还有可能一不小心碰到了骗子等等。

图:我是如何雇佣开发者的

我的工作让我每天都要和许多开发者一起工作,但我还在为我的应用能否找到合适的开发者而犯愁,我不可能雇佣我的开发者同事,因为他们的价钱实在太昂贵了。

 

  • 寻找开发者:如何去芜存菁?

 

在freelancer.com上发布了一个以“非常简单的iPhone项目”为题的项目。当公开发布一个项目时,你必须要从开发者角度考虑,如果你看到这个项目,你会思考什么?因此,项目命题必须要恰当,只有这样,开发者才会care。

如果你吹得天花乱坠,比如“革命性的idea”,一看标题,开发者都不知道你讲的是什么。而“拥有明确的指导方针、合理的时间安排的一个非常让人兴奋的项目”,这一定会引起开发者的注意,因为这个标题很明确地表示,做这个App规划设计均已OK,只剩编程工作,并且时间上的要求也比较合理,不会说一天之内必须搞定。我的项目标题为“一个非常简单的iPhone App”,更是吸引人,简单意味着容易,容易也就意味着钱非常好赚,开发者何乐而不为呢。

当然,公开招聘开发者的同时也会产生一个非常常见的问题,那就是,如果你在freelancer、elance或odesk类的网站上发布一个项目,你可能会收到许多开发者投标。我自己收到了23份,但谁有那么多的时间来一一查看呢,如何缩小雇佣范围,去芜存菁?

有一个小技巧,可以让你快速去除80%的开发者投标。因为在不同类型的网站上,许多人会抱着试一试的心态,不断地向每个项目投标。在你发布项目之后的短短三分钟内,你就有可能会收到500字的回复。

因此,我在我的项目中如此描述道:“请在你的投标中写上2+2的答案,让我知道你已经认真地读完了项目内容。”

它好像真的起作用了,在我收到的23份投标中,有许多人并没有做到这一点要求,于是我也就无情地摒弃了他们的投标,尽管看他们的个人资料,有一小部分人的条件还是相当不错的,但即使如此,我还是放弃了他们,因为如果连我的基本要求都不能满足,那在后面的开发工作中,又如何能满足我更加“苛刻”的要求呢。

测试App

在开发者完成App开发编程工作之后,就到了测试阶段,首先,进行准备工作。

在手机上进行测试:

 

  • 前提——将手机的UDID写入应用,才能进行正常测试。
  • 获得一个IPA,是App的压缩文件,在电脑上进入testflightapp.com,注册一个账户并登录,然后上传该IPA。
  • 在手机上登录testflightapp.com,安装测试App,打开App,界面显示一个App构建,下载然后进行测试。

 

图:测试App使用截图

测试方法推荐——发动朋友,一起来测试,不告诉朋友具体的使用方法,让他们自己摸索,这能极大地帮助改善App。比如我有一个朋友尝试着在照片之间猛击左/右,但却没有反应,于是后来我和我的开发者一起将该项功能加入了App。

提交到App Store

在向App Store提交应用之前,要确保自己拥有所有提交上传的应用截图,因为苹果不会在通过应用之后还允许你进行截图修改,只有等到提交新版本时才可以增加新的截图,这是我唯一搞砸了的并且需要时刻谨记的事情。

图:应用截图

点击链接,可查看我向App Store提交应用的详细过程记录。

我的经验教训

 

  • 从你能想到的最简单的idea开始。能否做到让App简单却对人们非常实用,这一点至关重要。
  • 当与一个你不认识的开发者一起工作时,务必要提供非常详细的说明。
  • 通过一些小技巧可以对开发应征人进行筛选。
  • 发动朋友一起来测试你的App最有效。
posted @ 2013-10-10 10:56  暮山海风  阅读(594)  评论(0编辑  收藏  举报