两天四夜上线一个 App

2015/06/14 · 浏览量 5535 · 全部博文

Update (04/27/2016):我争取每两星期(通常是每周)发布一个新版本,不断迭代这个 iOS App。这是 App 的更新日志。本文的截图与实际 App 的长相已经偏离比较远了,请到 App Store 去看最新的 App 版本的长相:)

这是关于湾区日报 iOS App 的故事。

标题党了。解释一下:两天四夜 = 周六、周日两天 + 周六晚、周日晚、周一晚、周二晚,4个晚上。

什么是湾区日报?

如果是新读者,请参考这篇博文:【湾区日报是如何运作的

为什么湾区日报需要做 App?

有几个理由:

为什么只做 iOS 不做 Android?

我是 iPhone 用户。为什么?因为几年前碰巧买了 iPhone。没特别强烈的理由换 Android。在我看来两者差不多。如果一开始我用的是 Android,应该也没强烈理由换 iPhone。

做一个每天自己也会用到的东西是很不错的感觉。所以我就做一个 iPhone 上能用的 App。

以后可能会做 Android app 吧,如果有时间的话。以前我也是 Java 程序员,所以也能写得动 Android 代码的。

这个 iOS App 到底长什么样?

 
 

两个功能我觉得比较有用:

  1. Push Notification,每天推送5条链接。
  2. “易读”功能。我服务器事先把原网页中的文本抽取出来,所以 App 可以只读纯文本,而不用再打开原网页。这还(某种程度)解决了有些网页被墙了的问题。只要湾区日报的服务器不被墙,你就能读原网页的文本,而不用访问原网页。

为什么 App 做得这么烂?

两天四夜,初学 Swift,能力有限,也只能这样了。

或者换一个问题:你该如何才能把这个 App 做得好一点?有几种办法:

  1. 回到过去,告诉几年前的我,千万别读 PhD,一门心思学做 App;找工作的时候,专找做 App 的职位。遵循 10000 小时定律,熟能生巧。然后到了2015年的时候,你就能做出职业水准的 App。
  2. 或者,从今年起,好好在 App 开发方面努力一把。别人12岁开始编程,用功十年,22岁成功。咱今年老大不小了,但也不怕花时间;以XX岁高龄,新手入门,全身心投入 App 事业中。
  3. 维持现状,白天还是做与 App 不相关的工作,晚上回家后如果有空写点 App 的代码、每天进步一点点,慢慢改进。进度会比较慢,相信5年后,在 iOS 14.0 推出的时候,我的 App 应该不那么烂了。
  4. 花钱外包给专业团队 — 此方案已经被家里的领导给否决了。。。

好吧,可能第3条比较适合我的现状。任何东西都是得花时间的。我也很希望一天能有48小时。

这个 App 有哪些有趣的事实?

两天四夜上线 App Store

服务端的 API 部分以前做过类似的,代码重用一下,很快就搭好了。

App 的部分是用 Swift 写的,边学边写。大部分代码是五月底的周末两天窝在家里写完的。周日晚上边看“Game of Thrones”的时候,把 App 分发给10个朋友试用(需要手动添加 UDID,比较费时间)。周一晚上和周二晚上修复了一下bug、做了截图,然后提交 App Store 审核。

插一句,怎么快速用一个压根就没用过的语言写程序?我一般是简单看一下 Style Guide,然后开始写真的代码。。。比如 Swift,我看的是这个 https://github.com/raywenderlich/swift-style-guide 。App 上线后,我才找了一本书,系统地学起来。

用到了哪些技术?

App 的版本号

湾区日报 App 的版本号不用Semantic Versioning,而是用日期。比如湾区日报第一版的 App 的版本号是 2015.06.02,下一个版本是 2015.06.16。目前计划是两周提交一次。用日期做版本号是跟 Wealthfront 的 App 学的。用日期做版本号的好处是?其实我不清楚诶;但至少可以一眼看出这个 App 有多新(或有多旧)。

在 App Store 里审核的过程中,被拒了一次。修复了一番、再提交,中间又耽搁了几天。从提交到真正上线,前后十来天。

听说还有一个 Apple Watch 上的 App?

对,这是两天四夜以外、又额外用了两个晚上做的。目前还在 App Store 里审核。

 

手表上的 App 有用吗?有人会用吗?不知道。只是单纯想试试看写 Apple Watch 上的 App 是什么感受。至少我自己是不会用手表读文章的:(

在Apple Watch上还没发现有什么特别好、特别需要的App。

有什么感想没?

  1. 你能做的事情比你想象的要多得多,特别是在一段很短的时间里。这就是为什么很多Hackerthon上可以看到很不错的作品一样:由于时间限制,就能高度集中精力、高效地开发。
  2. Swift 很好上手、很好用。期待能在服务端写 Swift 脚本。
  3. 你要的不是源代码,而是思路。有了思路后,剩下的东西基本都能靠 Google、Stackoverflow和Github来帮你完成了。当然,我之前也跟几个做 App 的同事打听了应该用什么工具、用什么库的事情,所以中间少走了不少弯路。
  4. 做 App 不容易。顿时对做 App 的工程师、设计师们肃然起敬。太多细节要把握了。很多普通用户想当然的东西,都是要推敲很久才能弄出来的。

最后,欢迎iPhone用户下载试用:App Store


我读过的好书、 用过的好工具推荐: