关于「幕后」
我们每天会接触大量的软件、硬件,但是多数时间下,都只是以固有的「使用者」视觉去体验和评判,快节奏的模式让我们没时间体会太多背后的理念。「幕后」栏目 因此而生,我们会不定期邀请一些制作者,讲述他们在产品开发 / 制作过程中的点滴。
从开始自学编程到现在,韩重赞作为独立开发者的时间还不到一年,不过他已经取得了相当不错的成绩。他开发的四款应用中,恋人清单 曾经登陆过 App Store 首页,LBS 探索游戏 开垦世界 也被多家媒体推荐,不久前还入选了少数派的「2016 年最值得关注的独立应用」。
趁此机会我们采访到了他,和他聊了聊不少人都很关注的问题:如何做到在短时间内学会开发,并且如此高产地做出 4 款 App 的。他也和我们分享了他开发背后的故事,以及自己自学开发的一些经验。
π:介绍一下你自己
大家好,我叫韩重赞,一名独立开发者,做过几款口碑不错的 App。在杭州生活,喜欢上知乎,在知乎写一些关于产品、关于独立开发的文章。
π:在成为独立开发者之前,你的工作是什么?
我大学专业是工业设计,但因为对互联网行业的热爱,大四的实习工作是 UI 设计,毕业之后转为了产品经理一直到辞职为止。
π:是什么原因让你决定辞掉之前的工作,开始学习编程的?
辞掉工作的原因有很多,其实一个原因就是想做自己脑海中的产品。因为在工作的两三年里自己负责过很多产品,也玩了上千款应用,积累了不少好的想法,但一直苦于没有时间和能力动手做。直到前不久正式辞职,自学开发全职做独立开发,自己的几个想法才真正落地。
π:你此前已经做了 0528、恋人清单和开垦世界三款应用,最近又开发了「截屏算命」,能说说你为什么选择这几个题材的应用进行开发吗?
总的来说,我选 App 题材都是以我自己喜欢为前提的。
第一款应用 0528,是款文字冒险类游戏,我做这个的目的其实纯粹因为技术难度看起来最低,先做一款 App 出来练练手并增长自信心。而且自己也喜欢做游戏 App,所以处女作品选择了它。
第二款应用 恋人清单,想法其实要追溯到一年前,看了一部电影叫做《意愿清单》,但是就感叹人生短暂应该及时行乐,所以就和女朋友一起订了 100 件有趣的小事来让生活时刻充满新鲜感。当时还只是记在手机自带的备忘录里,后来觉得这个想法应该分享给大家,就做了恋人清单这款产品。
第三款应用 开垦世界,算是我真正开始做成熟产品的第一步。在我脑海众多点子中我选了一个最新奇最有趣我自己最想做的这个 LBS 种树游戏。一来是市场上我还没见过太多同类的应用,二来就是我自己非常喜欢和现实结合的游戏。
前不久我又开发了个新的 App 叫 截屏算命,重点说说这个吧,说起怎么想到要做这个的,主要是因为之前看到知乎上的几个问题:
就是题主拿了别人的手机截屏想请大家分析分析这个人的性格,知友们的答案挺有意思的,可以移步一看。
我自己也是个喜欢看别人手机桌面的人,比如认识个新朋友,聊到没什么话题的时候可以说不妨看看你的手机都装了什么 App,然后看到一些新鲜的有趣的可以相互推荐相互吐槽。顺便还可以知道对方大概是什么类型的人,对不对自己性格,就知道聊天该聊什么了。
但一直没有什么机会来总结一下这套性格分析法,所以前不久就下定决心做了这个 App。
在开始正式开发前,在网上筛选了几种正规心理学的性格分析法。最后是挑了「霍兰德职业兴趣理论」作为这套算命算法的核心。
霍兰德职业兴趣理论将人格分为常规型、现实型、研究性、艺术型、社会型、企业型六种,每个人的性格会有一定的倾向。相邻人格的性格相近,相对人格的性格相反。
比如你是一个社会型的人话,那你就比较喜欢与人交往、善言谈、愿意教导别人。关心社会问题、渴望发挥自己的社会作用。
依次理论为基础,我把市场上流行的上千个App都设定了每个人格类型的权重值,对部分特别的App进行了额外修饰。在保证大部分人能测出结果的基础上,增加了特别注解。
在产品设计上,我希望尽量减少用户的操作,一切繁琐的输入和选择,如选择测试目的、输入男女等都是不需要的。每个用户只需要截取自己桌面的主屏,然后回到App,轻点开始按钮就可以得到结果了。
App 做出来之后找了几个朋友测试,发现女性用户比男性用户更加认可测试结果,当然感性一点的男性用户也觉得很准确。看来算命这事还真是像星座占卜之类的,更得感性用户的欢心。
π:在应用开发过程中有没有遇到过哪些之前没有预想到的困难?
从最开始到现在,没有预想到的困难实在是太多了。整个过程不像是在爬一座很高的山,而是像在爬一座座连绵不断的小山。你永远不知道后面会有怎样奇奇怪怪的困难发生。
举个例子,在开发开垦世界 Apple Watch 版本时,发现了很多技术上的限制和难题,现有的解决方案和资源都很有限,在本来就已经很局限的产品功能上只能不断地让步。
π:你自学开发四个月就做了三款应用,不少人都很好奇你的学习过程,能不能和大家分享一下你的学习经验?以及你觉得最应该注意的事情是什么?
我先说一下我自己的学习路线吧,我是先在空余时间看《Objective-C 基础教程第 2 版》这本书,差不多看到完全看不懂的地步开始去网上找视频教程。
在极客学院、慕课网上搜索「iOS入门」关键词,然后找比较靠谱的系列课程,从第一节课程开始照着他慢慢摸索 Xcode,慢慢写出计算机、天气预报等入门 Demo。初步熟悉 OC 这门语言和 Xcode 这个工具。然后开始选一个最简单的产品 idea,根据自己的思路慢慢做出成品,遇到不会的就用搜索引擎查相关资料、博文、问答等。
结合我开发第一款 App 的过程,我总结了四点经验:
- 不要选择一个超出能力范围太大的 App 来做,先做一个技术含量最低的产品练练手,有助于增长自信心;
- 一切以用户体验为中心,以目标产品为大方向,一步步从易到难解决问题,各个击破,沉迷于技术研究或设计细节只会误入歧途;
- Demo、设计稿、其他素材的完善准备让你在学习开发的过程中没有后顾之忧,有万事俱备只欠东风之感;
- 一个好的老师是成功的一半,但不要一味的靠别人指点来解决问题,做伸手党只会让你毫无进步。
一些细节的东西在这里就不展开说了,我之前在 我的知乎专栏 里面专门写过一篇《零基础学开发经验分享》,感兴趣的话也可以去看看。
其实在学习的过程中,每个阶段都有每个阶段的困难,比如我做第一个产品是最大的困难就是提交 App 的整个过程,真的费了不少劲;做第二个产品时最大的困难就是开始接触网络数据交互,第三方后台服务。出现了很多奇奇怪怪的 bug;而做开垦世界时,最大的困难就是对整个种树收树过程的优化,合理调用数据,保证数据的完整性。
说到学习中需要注意的事情的话,我觉得最应该注意的是贪心,贪图一下子做一个吊炸天的东西。很可能现实的情况沉重的打击自信心。相反的,从易到难,一步步攻克问题,持续不断的成就感让你可以一直坚持下去。
π:说说你应用开发过程中最开心的时刻。
最开心的当然是自己开发出来的产品得到用户们的喜爱。
在做开垦世界 1.0 的时候一直很期待产品出来时别人的反馈,可能会是觉得无聊,可能会是觉得不会长久的玩,但没想到的是产品出来之后反响很好,感觉很多人和我一样喜欢这类游戏。他们觉得很新鲜很有趣,强烈的占有欲让他们持续的玩这款游戏。
有说想砸了 Android 手机买大苹果的,有说玩了整整一天根本停不下来的,有说想给我做个 Android 版当做毕业设计的。
π:说说你接下来的计划?有没有考虑过和别人一起组队开发应用?
目前计划还是迭代开垦世界,还有很多可以增加的功能和优化的地方。很多人也给我提过不少的建议,开垦世界一定会做到成熟为止。
另外还有个很棒的想法还处于摸索完善阶段,脑洞挺大的一个游戏。如果能一直有条件做独立开发者,这个产品应该会出来。
至于组队的话,暂时还没有考虑过,因为人越多平均效率会降低,分歧也会越大。到时可能就做不了自己喜欢的产品了。但也不无可能遇到志同道合的人能一起合作处更好的产品。
(文末栏目图来自 Business vector designed by Akdesign)