GoGaucho是一款为UCSB设计的校园工具app,以方便学生为宗旨,提供了近7日食堂菜单、食堂实时监控、课表、交互校园地图的功能。自2017年6月8日上架至今安装量超过6k。目前每月活跃用户稳定在2k左右,服务着这所大学8%的学生。
我翻了翻Github上的commit记录,最早的一条在Fall 2016,也就是我的大一第一学期。那时候的我刚来到这个陌生的校园,不认识多少胖友,整天图书馆、教室、宿舍、食堂,四点一线。
我接触CS的原因很简单,因为我觉得iOS很酷,因为我也想做出酷炫的东西让大家用。但…从哪开始呢?干脆先立个项,有什么有趣的想法就往里面写咯。于是就有了GoGaucho。
它并不是一个有很高技术难度的项目。如果你有一些CS基础,你可以反手轻松把这些基础功能写出来。
但它的特别之处在于,它是我的试验田——不属于其他任何人,是我独自拥有的一种精神寄托。有一部分研究性质,有一部分实验性质。它的存在,让我专注思考和动手,激发了我精益求精的态度。我从用户的角度思考,找到最友好的解决方案,甚至改进每个图标的位置和大小。这种工匠精神,沉浸在自己的小世界闭门造车带来的成就感是做别的事难以获得的。
迭代是个有趣的过程
它意味着这个产品开发并不是一口气到达终点的,而是不断尝试和保持更新。同时对我来说,这也是一个带我点技能树的过程。拿课表这个功能作栗子,它经历过大大小小的改动。
其实写这个功能的初衷并不是看课表,而是为了把周围好友的日程叠在同一屏幕显示,从而知道什么时候大家有时间一起粗去玩或者约饭。但让大家一个个输入日程又不现实,只能用登录来获取课表的方式实现。但学校没有API,有一个学长做过获取课表的功能又不愿意告诉我是怎么实现的。我就去学了下抓包,在手机上模拟浏览器访问GOLD来获取课表数据,并把它保存到本地数据库里,以周视图的形式展现在app里。
学长给我的Tips:
女留ID男自强。
周视图的实现,让分享课表成为了可能。我尝试过AirDrop,但为了以后兼容安卓所以放弃了(当时没想到拥有安卓端会是一年后才会实现的事2333)后来换成了大家喜闻乐见的二维码,把课表信息压缩后存进码里,要分享的时候让对方扫一扫即可。为了酷炫我还引入了SiriKit,只要向手机大声喊出“显示二维码!”,就可以把课表分享出去。
大连港内,人们的声音此起彼伏:
“我的课程码!”
“Siri,快显示我的二维码”
“二维码”...
Siri:“二一码?”️
但这样也有缺点就是分享出去的信息无法保证是最新的,而且人多的时候真的麻烦(当我兴奋地给基友们安利了这个功能后,四五个人凑在一起要互相扫二十多次O(n^2)的场面真的把我震gan撼ga到了)再后来干脆就直接砍掉了这个功能...
独木不成林,一个人的力量是有限的
大一立项,我找过n多感兴趣的人想分担一部分开发任务,但最后真正写出来东西的就只有Seaky。同时,我还请Leo大兄弟画了新的Logo。
再后来大二,元气、饼干、乐乐、姚远、和其他几个我拉进来的小伙伴,他们在这个上面砸了很多时间,但这个过程也提供了很多学习的机会,他们也的确在其中学到了很多。就比如姚远学长也凭借这个项目掌握了安卓开发,收了一大波intern。做完安卓,没有基础的他甚至直接跳到了iOS开始看码,我带他pair programming几次后他也开始自己贡献代码了(花5分钟掌握了这个平台)
现在我把这片试验田公开出来
我们想改变靠我们自己用爱发电的局面。虽然组织一个团队是极难的,但我们会积极尝试。我们已经在准备社团申请所需材料,在秋季学期上线。欢迎更多CS major和热爱产品设计的人来一起实现新的主意和想法,同时为UCSB学生提供便利。
这个项目目前有5个公开分组(Android, iOS, Google Assistant, Backend, Product Management),各干各的活,保持项目内所有人源码可见,想写什么写什么,但全靠兴趣来贡献代码。不过我要吹一波我们即将推行的开发方式——“按功能承包制”。初步设想是一个人带一个想法,从头到尾来把这个feature实现。可以邀请团队内其他人合作,当然你也可以去其他人带的idea那边帮忙。
举个栗子,剧透一个正在开发的食堂评分的功能。这个功能由Petry牵头,他负责设计从后端到前端的所有流程。为了完成这个设计,他需要构想用户使用场景、设计算法、写服务端代码、设计前端UI、和其他开发者沟通协调等等。他甚至和机器学习课的教授交流,讨论用ML实现这个功能的可能性。也正因为这种新的开发模式,才为体验到这种全套的产品开发过程提供了可能。现在这个功能的开发进展顺利,我们拭目以待它在暑假回来秋季学期的表现。
我们希望,通过这种方式,我们能真正把试验田的理念发扬光大。如果你对一个新功能或某个技能点非常感兴趣,那么很棒,我们有平台和用户、有足量的数据和经验老道的帮手,那就在这里让你的想法变成可以真正被大家使用的功能吧!
为了庆生
在今天推送的更新里,GoGaucho将支持Widget和watchApp。也算是把两年前立项时挖的课表坑填了...
这两个extension会成为最便捷的查看课表的方式,你甚至不用解锁屏幕,在锁屏界面右划即可调出今天的课程安排。更有趣的是,watch端实现了表盘插件和时间旅行,抬起手腕它就会提示你接下来的上课地点。
不仅如此,我们还赋予了它一个崭新的logo。扁平圆角化的斯托克塔,以学校代表色蓝金配色。以此寄希让GoGaucho在新的一年里,更上一层楼。
在即将到来的2018-2019学年,开发最实用的功能仍是To-do的首位。这个暑假,我们会尽力实现实时公交,停车场引导,教学楼详情,全局搜索,食堂评分,美观的校园页,整合天哥的北美微信群。同时,我们会继续与“老东家”UCSB CSA联手,协助组织活动来帮助大一新生更快了解和适应校园环境,翻开奇妙的大学生活的第一页。
最后,炒鸡感谢大家!
这个项目走到现在离不开这些机智可爱的参与者们,他们分别是:
步春子, 陈名, 高润宇, 桂欣玥, 何旭, 何钰琳, 胡腾月, 胡熠玮, 黄雨欣, 蒋浩然, 蒋书鹤, 荆浩明, 李雪欣, 李元奇, 梁宸赫, 林子焱, 刘恒宇, 刘瑜, 吕依菡, 吕奕杉, 骆海天, 邵明硕, 孙烨文, 万嘉俊, 王堃, 姚远, 叶嘉熙, 叶思雨, 叶童, 张竞, 张麦琪, 张茹欣, 张拓, 张玺元, 周晓, 周雨波, 周元晨, Alex Liu, Chandler Forrest, Jake Bliss, Jake Guida, UCSB CSA
多谢大家的付出(鞠躬以及,一周年快乐
领取专属 10元无门槛券
私享最新 技术干货