26 September 2013

今天看到问答网站知乎上有个问题是“一个App是怎样诞生的”,问:“从脑海里的一个想法,到应用商店里一个可供大家下载的APP,是怎么样的过程?能详细说说吗?” 这个问题基本没什么人回答。已有的回答里面字数最多的那个是这么开头的:“很久很久,常常要花上好多好多年的时间。……”

这个回答让我很无语。不过这个问题我倒是很感兴趣。于是我便趁机说说自己发布的一个App(iOS平台)是怎样诞生的。

我刚到北大的时候,工作的一部分就是开发iOS应用。使用北大的校园网需要先登录IP网关。登录网关可以通过访问一个网页实现,但用客户端无疑更方便些。 北大计算中心针对几个常见的操作系统平台都发布了网关登录的客户端,唯独没有iOS上的(后来知道他们其实也正在为iOS开发)。 我自己用iPhone,每次登录网关都去开网页让我感到十分麻烦。于是我就想,为啥不自己写一个呢?

作为程序员有一个优势就是这样:你觉得有什么需求,可以自己写代码实现它。当然前提是能够实现。 我认为登录网关的网页无非是向某个服务器发了个请求,完全可以写程序去发送这个请求。当时本着“浏览器能做我就能做”的原则, 开始去抓取并分析用网页登录网关时浏览器与服务器通信的数据,直至找到关键部分。之后在程序里模拟这个过程,就实现了网关登录。 接下来无非就是写一个简单的界面,点击一个按钮就触发登录过程。于是,我在自己的iPhone上可以方便登录网关了! 我把这个应用程序称为“IPGateway”,也就是IP网关。

至此,我是不是可以说,这个App就诞生了?它确实已经是一个在iOS下运行的App,并实现了它的功能。但由于它还没到“应用商店里一个可供大家下载的APP”, 所以还得有一个进一步完善和发布的过程。

自己能用了之后,我想别人肯定也有这个需求。于是我就考虑把自己开发的网关登录程序发布到App Store供大家方便地下载。俗话说,“家丑不外扬”, 自己用的程序界面可以不好看,但真决定要发布出去时,还是适当美化了一下。此外,还实现了其他控制网关的功能,加了些设置项, 然后弄了个彩蛋,算是像模像样的一个发布版了。

所花的时间前前后后不超过一周。实现自己用的登录功能其实只用了两三天时间。我把发布版提交给了App Store审核。由于他们不在北大校园网内, 无法实际使用我提交的App,就要求我拍一段演示视频给他们看。我照做了,他们也就通过了。

等IPGateway在App Store上线后,我在北大未名BBS上的Apple版面发了条帖子告诉大家,说有一个网关登录的App可以用了。由于是第一个,得到了很好的反响。 后来,官方也发布了iOS版网关登录客户端,甚至更晚的时候还另有一个网关程序发布,但都已经是追随者了。

到现在距离IPGateway第一版上线已经过去一年多了,从下载量和收到的用户反馈来看,我的这个App在北大(它的目标市场)还是蛮流行的。 最近iOS7出来,我也把IPGateway升级到了2.0版,以适应扁平化风格的系统。

总结来看,从我有一个想法,到最终发布这个App,并没有用太长时间。 这也是因为我这个App功能比较简单,复杂的App肯定会需要更多时间和精力。但麻雀虽小五脏俱全,这毕竟是完整的一个过程。 从中我想也可以提取一些经验,供参考:

  1. 发现需求。找到一个未满足的需求很难得,这往往是一个重要的机会。这个需求可能是特定群体的,但只要有目标市场就值得做。
  2. 抓住机会,迅速行动。一旦晚了,很可能已经有别人做出你想做的东西了。
  3. 就App本身来说,完成一件事并完成的很好,就会受到欢迎。

IPGateway之后,我又做了其他的App,将来也可能会做更多的App。我的App信息可参见下面的链接:

http://www.shengbin.me/apps