高三学生的开发野史:帮我偷懒,逗你开心

摘要

17岁的少年,一只手写着代码,另一只牵着女友,他今年高三,你当时在干嘛?

高三的时候你在干嘛?一头埋在考试卷和书籍的海洋中,抬头望去是一群和你一样的人偶,一只叫做「未来」的手通过高考控制了生活。为何不能像他一样,为了偷懒不记笔记,开发了一款 iOS 应用,通过拍照记录笔记和代办事项。为了让女朋友开心,用代码写出了一个聊天机器人,装在她的 iPod 中。他叫贾泊崴,和你一样,他今年高三。

人大附中的门口,一个穿着标志性红白相间校服裤的少年,出现在了我的视野中,我仔细打量着这位在学校里叫贾泊崴的少年,由于上的是 AP 课程,他还叫 Justin,但活跃在知乎社区里的他自称「贾物体」。

和中国大多数学生一样,带着一副近视镜,青涩的脸庞总是忍不住露出笑容,旁边的女朋友形影不离地牵着他的手。由于没钱买苹果电脑,在一台老三星上装载了 Max OS 系统,手里唯一一台正宗的苹果设备是一台 iPod ,去年九月份,终于更换了 Mac Pro Retina。

Look,帮我偷懒

因为我是学生,所以我注意到很多人都习惯用手机照黑板上的作业,老师讲课的 PPT 或者 Keynote。无论是在中学、大学还是新东方……

虽然同样简洁高效 Clear 已经达到了较高的水平,但无论用多么简单的手势来操作,最后一步总是要弹出键盘输入,这很不优雅,同时也是很多人不愿意使用 Todo 应用的原因。Anydo 补充了语音识别的方式,但是也不完美。于是贾泊崴想,能不能换一种方式呢?就比如,用图片?


Look 就应运而生了,其实 Look 就是一款通过拍照完成的轻量级 Todo List。你只需要通过拍照将代办事项记录下来,再添加一点提醒信息或者备注,就轻松完成了一条记录。并支持通过邮件或微信贡献给好友。Look 是其第一个正式上线 App Store 的作品。

笑个不停的贾物体对于 Look 的设计理念,有着相当理性的分析

  • 符合苹果生态圈,最高标准。没有内购,Launch Image 不是 logo 而是截图,从不弹出「到 App Store 评价一下吧」或者类似的 alert,收费应用,没有广告,使用系统设置……
  • iOS 7 的风格。比如任务列表中图片的模糊,Helvetica Neue Light & Regular 字体的使用,拍照界面左右两个小按钮的镂空透明效果,全屏应用(甚至去掉了 Status bar 和 Navigation Bar,为此做了一些补偿的设计,比如在任务列表中下拉显示 Status Bar),手势操作(甚至去掉了返回键,所以只有边缘右滑返回)……
  • 轻量级的设计。只有 3 个设置选项,它们的目的是调整复杂度和功能之间的关系,而非其它自定义或者使用习惯设置。开启显示备注和按列表排序、关闭自动删除就是 Look 提供的最多功能,但也是最复杂的操作。关闭显示备注和按列表排序、打开自动删除就是最简单的操作。默认是居中:备注是开启的,自动删除和按列表排序是关闭的。

介于贾物体同学一个人包办了设计、作图、写代码,还得上课,程序上还有些不完美的地方,还需大家多多包涵,比如 Logo 图标设计得太诡异。不过几天前已经加入了 Camera Roll 导入图片等小功能。

kirapika,逗你开心

在开发 Look 前,贾物体最为自豪的应用,当属为自己和女朋友开发的聊天机器人 kirapika。和前两年风靡一时的聊天机器人小黄鸡类似,装载了该应用后,只要在对话界面输入任意语言,kirapika 就会根据输入内容做出回应。唯一不同的是,在人物选择上只有贾物体和他的女朋友两个选项。



贾物体将他和女友在 iMessage 中几万条的聊天记录,导入进一个数据库,封装到应用中后,发送到他女朋友的 iPod 中,选择他女友身份登陆,输入一句话,则通过检索数据库中的聊天记录,回应出贾物体的对白。

由于这是一个离线版本的「小黄鸡」,iPod 的计算能力有限,还无法做到语义分析,贾物体采取的办法是,将网上看来的「边际距离」算法修改,用到 kirapika 中。即通过对比每句话的相似度并赋予一定的百分比,和数据库中记录进行对比,选取数值最高的话作为回复。被修改过的代码让 kirapika 运行速度加快, iPod 上的延迟大概为1~2 秒,虽然还未达到普通应用的平均响应速度,但其付出的代价是每重新加入一部分聊天记录,电脑得运行一天来处理新的数据库。

这个为她开发的应用前前后后花费了贾物体半年时间,不过由于前段时间去香港考 SAT 耽搁了进度,新版本稍后即将放出。

开发野史

贾物体小学就开始学习 VB 编程,当时找了一些参考书,尝试着编写类似于 QQ 的聊天工具,找到对方 IP 地址后,就能开始聊天,结果还真成了。现在回忆起来,贾物体略有感叹,当时实在是太厉害了。 

之后做了一个音乐练习器LOCUS,可以定义一些键位以及带有数据分析功能,创想归功于老妈 iPad 上一个音乐游戏的启发。



班级里举办颁奖活动,于是贾物体同学写了一个程序,在大屏幕上显示滚动抽奖的效果。

高二上了统计课后,为了方便写作业,贾物体又开始编写代码,稍做改动后帮老师编了一个谣言传播事件的程序,帮助课堂教学。

时间继续,兴趣爱好广泛又爱偷懒的贾物体同学开始研究起了字体的易读性,开发了一个类似于当时 Facebook 原型选女生的应用——Letter Reaction Time,不过此时电脑上闪烁的不是美女而是不同字体,电脑前的同学来辨别词性是动词或名词,并记录反应时间,最后发现在 iPhone 常用的 Helvetica 字体比 iPhone 通讯录中的字体易读性高。

贾物体觉得自己目前不过是个二流的开发者,在其他领域兴趣的花儿朵朵开,从 Photoshop 到 icon 设计,再到 UI 更有偏冷门的字体。

和你不一样

其实主要是小时候,没什么人管我,可以自己玩嘛
 

没有收入压力,贾物体可以拿自己的应用做各种尝试,Look 不能切换摄像头,横屏拍摄照片不能旋转等等。采取付费下载被他称作是「激进的设计」的一部分,贾物体认为内置付费和免费应用过多破坏了 App Store 的平衡,他觉得总得有些独特的应用挺身而出,结果是惨烈的,提供免费下载的一天达到了 5000下载量,而平时却只有个位数。

贾物体的编程的密度和时间有着密切的联系。初中得开始上课了,编程的灵感随着课程增多逐渐下滑,但是到了初三似乎灵感又回归了,为何?处于复习阶段,不用交作业。



高中上了 AP 彻底解放了贾物体的编程灵魂,高一时主要就三门课:数学、物理和经济,寒暑假还没有作业,由于爸妈也不怎么「管」自己,不要被绑架去上辅导班或才艺班,自由活动时间陡增。

由于没人教,开始自学时比较困难,小学学得几乎都忘了,于是直接跳级学习 Object C,在谷歌上中英文档对着看,或者在 stackoverflowgithub 里找答案,多亏了 AP 课程全英文教学,让其阅读英文文档没有太多障碍。 

独立开发虽然颇让人有成就感,不过贾物体还是感到了孤独,即使是苹果,其开发文档上的一些内容也不太清楚,碰到了问题或许得花一天时间思考。周围的同学还得继续在书本的海洋里傲游,即便迎来好奇的目光,也只是浅尝辄止。当我告知被极客公园报道过的一些个人开发者后,贾物体渐渐收起了笑容,听得很认真,我知道他也渴望能和他们交流。除了牵着他左手的女友还需要带着他向前的一个集体。

有了时间贾泊崴就能变成网络上的贾物体,家里宽松的环境也不可缺少,当然他的开发者之路还有很长的距离,我们还需要给他们时间,给他们空间。他们就是少年开发者。


 虽然贾泊崴选了一张帅气的照片,但我还是决定要还原一下真实的他,哈哈

最新文章

极客公园

用极客视角,追踪你不可错过的科技圈.

极客之选

新鲜、有趣的硬件产品,第一时间为你呈现。

张鹏科技商业观察

聊科技,谈商业。