App Store 下载链接

0x10. 起因

一直就觉得,在手机上登录教务处的网站,查课表,查成绩什么的太不方便了。我的 Safari 固然能记录账户和密码,但是这种登录教务处查东西的姿势不够优雅。

暑假刚好闲着没事儿,刚好学习 iOS 也有一段时间了,那我为什么不写一个 App 来实现这些简单的功能呢?这既能测验一下自己的 iOS 编程能力,又能为大家提供便利,为什么不去做呢?

好吧,说干就干。在 7/22/15,4:47 PM(我创建 Xcode 项目的时间),「理工助手」就这样开始了。

0x11. 动手

说实话,这款 App 的难点就在于数据的获取。由于教务处并没有提供官方的 API,所以我只能通过手机来模仿浏览器的行为,从而获取特定页面的 HTML 信息,然后给解析出来,展示到用户界面中去。

其实写一个 App 真的挺简单的:获取数据 - 展示 - 用户操作 - 再获取。基本就是这么一直循环下去。

1.0 的版本我只给用户提供了四个功能:「教务新闻」,「查课表」,「查成绩」,「查考试时间」。估计这些也是大部分登陆教务处网站做的事情了。

有了需求,该写代码了。

我本以为数据的获取会是难点,因为会涉及登陆啊,验证码啊,cookie 验证什么的。但是那些真的是轻松搞定的。我真的没有想到,难点在于 HTML 的解析。原本以为可以用一套开源的框架完成,可是没想到我怎么用都有问题,我也不想在这上面花费太久,于是就采用最「笨」,也是最浪费时间的办法:用正则表达式一点一点从 HTML 中提取内容然后转成 Model。在这个地方我写了非常糟糕而且极难维护的代码,这就好像我跟教务处的人员有了约定,“嘿,哥们,你们的前端页面千万别升级啊。”,因为一旦发生了变化,我的这套代码都得推翻重写 TAT。

有了数据,有了 Model,该展示了吧?

1.0 遵循的原则就是一切从简,所以 UI 都是我一个人包办的。从 App 的图标到应用内部的配色以及 icon 都是我一个人制作以及挑选的。这种又当爹又当妈的感觉其实挺好的,因为你可以自豪地说,这个 App 是我一个人做的。不过说实话,界面不算好看,但也绝对算不上丑。主界面四个大图标,这个也实在是无奈之举(因为功能就这么少 - -#)。仁者见仁智者见智吧。

0x12. 上架

在 7/30/15 下午,我向 App Store 提交了我人生中的第一个应用。说实话,其实注册 Apple 的 Developer Program 是今年大概五月份事情,我记得当时为了办它申请了一张 Visa 的信用卡(没想到还成功了,天助我也)。当时想得挺简单,花了 ¥688 以后,自己学习的劲头应该更足一些吧。可是事实总是令人悲伤,其实在放假前的一个月左右,自己根本没有写什么代码,事实上,我也不知道自己都做些什么。抱着考试复习的幌子在玩?也许吧!结果也蛮感人的,期末直接挂了两科。

好像扯了半天都跟上架没啥关系啊。忽然想起,我为什么要上架呢?

其实在提交完应用以后,我很清楚,软件现在还有好几个已知的 BUG。可我真的是懒得改了…这一周写代码写得脑袋痛,想休息一周,刚好 App 的审核也需要好久,我想就不要把这段时间给浪费掉了,先上架看看同学们的反应吧(能不能成功审核在现在看来还是一个问题)。如果大家对这个软件看法不错,我会更加用心地做好它的。

0x13. 初衷 & 希望

其实写这个 App 最开始就是希望方便自己顺便方便大家(没错,这就是我的真实想法)。iOS 是一个优雅的系统,希望大家在上面完成什么动作的过程都是优雅的。

最后希望我的 App 能审核通过吧。