人升三周年

时光荏苒,距离首次发布《人升》并在 V2EX 宣传已经过去了 3 年。

未曾想过当时在学校创建的小项目,能达到现在的小小高度。


想着,三周年做一些简单的回顾和展望。

匆忙编写,未作充分的准备,可能叙述的也比较水~


三周年之际,《人升》在各个市场的下载总和也大概超过了100W下载量(含有大量更新水分)。

今年7月份,也有幸自荐登上了Google Play英美各区首页的「近期更新」模块。

后续明年年初也跟 Google 可能会有另一个小合作(


也从最初的默默无闻,到陆陆续续从一些自媒体或者用户宣传中,看到《人升》的影子。

很是欣慰。



开发历程

1. 总时间线

这是《人升》较大的功能模块迭代时间线。

其中还持续穿插着诸多的功能小特性、优化、问题修复,代码重构和 UI 优化等工作。

感兴趣的同学也可以查看我们详细的更新日志


接下来想按时间顺序讲下《人升》开发阶段的相关时间节点事件。


2. 梦始

缘由

于我个人而言,一直想要一款比较简洁、支持离线使用的游戏化To-do应用,不需要繁琐的游戏化配置、小游戏。

因为我当时主用的ToDo应用是《微软ToDo》,所以可能更恰当的一句话需求就是:微软ToDo+属性等级。


恰逢一场校内的易班应用开发比赛(只要是支持易班登录的即可),拉上了一位后端同学开始了开发。

这就是支持易班登录的原因~


在开发《人升》之前,其实也只有一个书单列表的小demo的开发经验。

开发当时,也有一个比较重要的决策:

在完全不会的场景下,就逼着自己使用 Kotlin 进行开发(也是后端同学的建议)。


最初的需求思维导图


因为只有一两个月的开发时间,当时版本很粗糙。

但也初备了「待办事项」、「属性」、「团队」等功能。

「技能」和「成就」应该是鸽了。

因为技能的定义冲突问题,一直搁置到近期,才以属性自定义的形式进行呈现。


起名

当时想着应用的理念为「人生升级」之类的词汇,

就取了「人生」的谐音「人升」。英文名则是对应的「LifeUp」。


开发

你永远想不到开发会先开发什么功能.jpg

  1. 先用 Inkscape 设计了应用图标
  2. 然后开发了引导页
  3. 多语言(部分英文化)
  4. 首页框架
  5. 登录页面


避免影响

游戏化部分,我们尽量避免着受已有应用的影响。

想靠着自己的见解开发一款与众不同的游戏化应用。

其中初始属性的定义,也参考了不少游戏的设置(比如Fallout系列的SPECIAL系统)。


结果

由于不擅拉票,易班这次比赛还次于某个无法正常使用的失物招领应用。

简单略过描述。


3. 初次发布

上架酷安

易班比赛结束不久后,校内又举办了一场由PeroPero Games(就是那个开发了Muse Dash的工作室,蹭个热度)赞助的游戏和应用开发比赛。

我们就计划着完善《人升》,再次参加比赛。

为了让应用的表现更有说服力,我们将应用发布到了酷安,也方便评委/观众进行下载。


就是下面这个惨淡的数据:


这时的应用版本,为了实现更多的趣味功能,也增加了一个非常简陋的成就系统(与现在版本的成就完全没资格比对),以及“臭名昭著”的计步奖励力量经验值。


比赛答辩

吸取了一些上次比赛答辩的经验教训,这次将答辩展示的关注点聚焦在了应用本身的趣味性(而非技术实现上)。

有个有趣的小插曲,当时的评委其实是分为游戏组和应用组的。但由于《人升》是游戏化应用,我们也很神奇地被PeroPero Games创始人之一的师兄提问。


我们也将应用在 V2EX 发了帖子进行简单的宣传,当时来了一波 V2 老哥在酷安留言,也算是我们的种子用户了。

但其实在答辩的时候,总的下载数应该寥寥于100左右。(现在终于可以乘个万了)。

这次,也终于拿下了第一。


4. 酷安头条

赛后一段时间内,我们也在纠结如何处置这款应用。

如果没有用户的话,更新也就缺失了动力。


当时就是打算发布个摸鱼公告(短期内时间不够维护,长期会做这些功能)的心态,在酷安发布了一份简单的后续开发计划。

这份开发计划如今看来是十分不靠谱的,比如聚焦在阅读记录统计等功能上。


完全想不到的是,这份公告居然被酷安小编推到了首页头条(万恶之源)。

《人升》的评论区也在一天内被一两百条评论淹没,即便当时的应用基础功能都不够完备、游戏化元素更是严重缺失。


然后,我们也是从那时候发现,当时的版本居然不兼容安卓9。

在安卓9上,应用无法联网。

因为当时的设备是安卓8,无法复现问题。

排查了好一段时间,才发现是安卓9默认禁止了http访问…

现在看来是大乌龙了(


也是因为涌入的用户和鼓励,我们持续着完善着应用的基础功能。

当时主要的游戏化体现仍然仅仅有「属性」,但这已经足以实现一部分激励作用了。


5. 更高一步的游戏化

19年4月份,我们将应用完整英文化后,发布到了 Google Play。

在当今看来,这无疑是最正确的重要决策之一。


因为Google Play上,不允许免费应用转为付费。

我们将《人升》设置为了买断制付费应用,19年4月份上架后,也陆陆续续有零星的海外用户使用。


其中,上图中的评论,为我们指明了开发方向。

当时,我虽然知道有类似的奖励机制的应用,但未曾试用。

也凭借着自己的理解,在8月份的版本中发布了「商店-仓库-金币」功能。


该功能无疑是当今人升中最为重要的功能之一。

但商店的理念与属性其实并不一致,但又不矛盾。

属性其实讲究的是开箱即用,用户完全不需要任何设置即可体验经验值增长和升级。

而商品则是对应自我奖励,需要个性化配置。

但在人升中,它们同属于激励机制,而且有着诸多的联动机制。


直至19年末,人升已经有了初具雏形的属性和金币体系了,还有个系统成就模块。


6. 篡改

当时,《人升》是开源的,我们希望能够由开源社区进行代码贡献和维护(如Habitca的客户端一样)。

但没想到,换来的只有一些篡改版本。

后续只能将其闭源,并且争取登录各个应用市场。


7. 实验功能(20年)

20年(中旬准备毕设摸了一阵子),我们则是推出了一系列实验功能和功能完善:

  • 简洁模式
  • 感想
  • 自定义成就和解锁条件支持
  • 番茄钟
  • 商品使用效果
  • 开箱
  • 世界橱窗

也终于灭绝了商品无用论


也是在20年中下旬,我们“被逼着”上线了会员系统。

此前,人升一直是完全免费+自愿捐赠。

用爱发电不可长取,营收也可以带来持续的动力。


8. 标准化和基础建设(21年)

今年,我们也持续维护着各个功能模块:

  • 开箱功能完善(连开、固定)
  • 合成系统
  • 属性自定义
  • 正计时



除应用功能外,也搭建了:

  • 新官网
  • 文档网站
  • 新宣传视频
  • 服务器升级和迁移
  • 自动化打包
  • 静态代码扫描
  • YouTrack需求和问题管理
  • 新宣传图

感想

随便提一些个人感想和碎碎念,时间有限未作充分思考。


1. 接受称赞、反思吐槽、忽略噪声

称赞就不用多说了~

从吐槽中,我们也能发掘一些需求和优化点,比如是否是指引不到位、交互不合理等等。


关于噪声,可以理解为毫无意义的批评。

“噪声”的说法也是来自某篇独立开发相关的译文。

印象最深刻的是,有一位会员,三番两次通过多种渠道付款后,在同一天内找个奇怪的理由退款(比如“清单”不支持连续创建)。

后来退款时发现该用户行为不正常,可能涉及诈骗等,后续就直接不发送兑换码而是退款了。


与此类似的,也有某市场评论区

应用内以前有个很好玩的小游戏,后面被砍了

我都不知道我开发了小游戏.jpg


甚至于经常会有经验主义者,

「这种机制火不起来、这种收费模式不会有用户的、要做押金制」等等。

学会忽略即可~

市场是公平的,交给市场做评判。


2. 关注中短期规划

因为《人升》这款应用的特殊性,中短期灵活的规划可能更适合它。

随便举两个简单的例子:

  1. 当初开发番茄钟的时候,直到功能开发完了一大半。才灵光一闪,加上了番茄食用的设定。

  2. 开发商品使用效果的时候,也是直到最终阶段,才想到了合成机制这个比较有趣的玩法。

    后续更是将合成做成了独立的系统。


3. 看重可维护性

一款需要长期更新维护的应用,可维护性是至关重要的。

我们在开发《人升》的过程中,也一直在推陈出新,调研新的技术框架,一步步从MVC -> MVP -> MVVM。

一些老且需要增添功能的页面,我们也抽空进行了重构(统计、新建任务、任务列表页面、状态页面等等)。


这些时间的投入,也是为了减少未来的债务。

不要偿还过去,不要透支未来。


4. 想法与表达之前注定存在失真

如同我们最初的思维导图也未能完成实现一样。

其实我们更早期的构想,也存在着人物系统。

一款产品的构思和最终实现,终究会存在不少的失真。

原因可能有平台限制、时间限制、技术水平限制等等。


想法并不值钱。

对表达失真的取舍,可能才是价值点所在。



表现

1. 国际化

虽然当前人升海外的用户总量不多,但用户还是遍及各个国家地区。

多语言方面,我们初始维护着简繁体中文和英文。

其余语言由用户参与贡献和润色,也有着不俗的翻译进度。

2. 海外市场营收

随着7月份上了一波英美区首页,海外市场表现很惊人。

之后的几个月也是平稳了下来。

我们也相信这一次的高度,更不会是顶峰,只是个山腰或者山脚~

3. 市场排名


在限定「效率」类的「热门付费」(这里的付费指的是付费应用,其实属于蓝海了)的条件下,

《人升》能在美区以及其他84个国家或地区保持着排名前5的水准。


展望

1. 标准化

回顾前一段时间,其实《人升》的功能迭代导致的问题一直都很多。

也有一些比较严重的:

  • 低版本手机启动崩溃
  • 服务端慢查询导致年初经常宕机
  • 商品排序导致商品被复制
  • 谷歌新账户登录不了

曾经有一些系列版本中的小版本号迭代到了16。


因为这些问题,曾经尝试了一些手段(会员alpha测试、发包周期调整、自测用例),但因为人力问题,还是不能很好地解决。

今年下旬,成功邀请了一位非常非常优秀的测试同学加入了团队。

协助测试和搭建了很多相关的东西(自动化打包、静态代码分析等等),使得近期的一些版本发布周期很稳定。

虽然拉长了初期版本的发布周期,但是算上原先的修复发布而言,总周期无疑是缩短了的。

甚至参与了一些功能的开发。

作为一款有多达 2400 次代码提交的离线化工具类应用,稳定性是至关重要的。

后续也会在注重稳定性的前提下进行功能迭代开发。


2. 跨平台

iOS 版本是个巨大的痛点。

困于技术水平、时间和增量同步难以解决的情况,一直很难尝试进行 iOS 版本的开发。

虽然今年建了 Flutter 版本仓库,但仍没时间学习和进行开发。

后续计划是在 Flutter 上进行一些革新功能的实现和 UI 的重新设计(人升2.0?)


3. 开放

除了普通的功能迭代外,

我们会尝试在后续版本中开放一些客户端接口(比如新建任务、增减金币、增删商品)。

以便用户也能够在外部扩展实现一些功能。


4. 做时间的朋友

《人升》尚且仍有大量需要改进和维护的点,我们会做时间的朋友,持续维护和更新。

定个小目标,明年《人升》排名前5的数量保持不变或增长的前提下,能减少一个限定条件(在85个国家或地区的热门付费类的所有应用排名前5)。


《人升》仍是由三名开发人员在业余时间进行维护。

这里的开发也是泛义,目前开发人员都是身兼数职的(所以英文版里的关于页面,将developers改为了designers)。

实际上一款产品的诞生,需要产品、设计、交互、客户端开发、后端开发、测试、运维、市场发布、运营等诸多职位的参与。

看起来满当当的半个月,我们的实际可开发时长可能不足4天。

但可以肯定的一点是,我们会坚持下去(因为还有很多活没干完~)。


结语

比较遗憾的是三周年没有做充分的准备,今年公众号也断更了一年。

应用内有比较多的设计理念、一些细节改动都没机会在本文涉及。

后续有机会可能会以独立文章的形式发布更多内容,感谢关注~


感谢用户们的长期理解和支持!

希望人升能随着优秀的用户们一起升级成长~

也欢迎参与人升的共建。

作者

AyagiKei

发布于

2021-11-22

更新于

2022-02-05

许可协议

评论