忘了介绍一下自己的背景,我是计算机专业的本科,在22年开发StaySleep的时候刚好大二,当时没学过软件工程,没学过人机交互,也没有系统学习过代码规范,那时也没有ChatGPT。完全是凭着一腔热血,硬是写出了StaySleep的全部代码。这些代码,虽然都能跑,但是很不完美,甚至可以说是漏洞百出。但是当时秉持着能跑就行的理念,一直没有对底层的代码做大幅度的修改。
直到今年年初,我想着给StaySleep适配iCloud同步的时候,才发现原来写的代码实在是质量太差了,当时不懂「高聚合低耦合」等这类的代码规范,导致我一个功能的代码足足写了500行,从前想进行优化和修改完全无法下手,这也导致iCloud功能迟迟无法上线。
不过学了两年计算机专业还是有用的,我一狠心把所有的写得差的功能代码都删除了,在人工智能的辅助和我不断地调试修改下,删改了近2000行以前的代码,终于把代码拆分成了干净整洁的模块。在上线以后,软件的闪退率和睡眠数据的读取错误大幅减少,也算是达成了我最初的期待。不过我当时没有重构整个软件的想法,毕竟StaySleep的处境也不差,我还是想留在舒适区里。
我很满意重构后的几个功能模块的代码,相对以前而言,无论是从代码的整洁程度还是功能的稳定性都更胜一筹。而在这之后,我把推倒重写的目光转向了整个项目的界面和剩余的功能代码。但是面对如此庞大的工程量,我最初还是犹豫了。
所以,我的心声是什么?我思考了很久。我的父母都是医生,而我因为高考志愿的原因,阴差阳错地学上了计算机。虽然没法像他们那样救死扶伤,但我的基因里似乎也携刻着他们的精神。我见过StaySleep的用户朋友晒出自己的熬夜热力图,惊呼道自己原来熬夜这么频繁、见过他们因为自己的App而重新设定了早睡早起的目标、也见过他们尝试一步步减少自己的熬夜次数。每当我想到这些,我似乎都能感受到自己的心声:通过现代科技,帮助大家改善生活。
代码,何尝不是一种现代科技。
我最终决定为新版本「立项」。立项最初我已经做好了最坏的打算,就是新版本沉没在市场的众多优秀产品里,但是我已经想开了。即使结果再差,我也希望能在大四的最后一个学期,给这个我负责了两年的项目换上一身新衣,把它当做送给自己的一个毕业礼物,也送给所有支持我的亲人和朋友们。
StaySleep3.0新版本正式立项于2024年2月1日,彼时我在书桌前,我点击了新建文件夹,写下了3.0版本的第一行文字://欢迎界面
新版本的开发很不顺利,为了让图表的功能更加丰富,界面的样式更加多元化,我不得不舍弃几乎所有苹果开发语言自带的组件,转而自己完全重写界面的外观和功能。
当然,在新版本正式面世前的日子里,我也会在社交媒体上更新我的开发进度。看到朋友们的支持与鼓励,我明白不能辜负他们的期待,这些声音也是我持续开发下去的动力。这种感觉有时让我想起了那个夏天,我坐在宿舍里写着StaySleep第一个版本,发布给第一批测试的朋友体验的那个时候。
我平时会在社交媒体上更新开发日志和一些新功能介绍,而新版本发布以后,我也找了很多新的平台和途径自荐了StaySleep。
而后,小红书官方找到了我,给了StaySleep一个机会,添加到正在举办的「健康打卡」活动界面里,这么好的机会我当然答应了下来。虽然没法和「Grow」「StressWatch」这种优秀产品一样,成为活动的合作方,但是能在一个角落看到自己的产品也「间接参与」上了这个活动,心里还是不由得暗自窃喜。
五月三号,我如期打开AppStore瞅了一眼,发现StaySleep登上了AppStore的App页的置顶版块,和我一同在置顶版块的,还有抖音、迅雷、哔哩哔哩、芒果TV。同时,借着这次AppStore推荐的机会,StaySleep又像两年前那样,重回了健康健美榜单的TOP100。
讲了这么多我和StaySleep曾经的故事,忘了介绍这个故事的主人公——3.0新版StaySleep,我究竟是更新了哪些内容,能在半个月内吸引小红书和苹果的驻足。新版本共计更新了30个左右的功能和特性,篇幅有限,这里只能给大家介绍一些主要更新。
虽然我不是专业的UI设计师,所以界面设计谈不上特别美观。但是相比于老版本的界面,StaySleep新版本从大家的反馈来看确实好看了不少。
StaySleep中提供了两种星云的呈现形态,在信息量较大的主界面与分析界面,只显示动态星云的大致轮廓,确保不会卡顿的同时也简化了界面,但是大家依然可以看到它若隐若现的轮廓,那是深邃宇宙中指引方向的一片光芒。而在其他不会经常打开的界面中,则可以看到星云的全貌,以及忽明忽暗、布满屏幕的星星们。
欧米茄星云也象征着生命的起源与循环,宇宙中不断孕育新的生命,也正如我们每天都在经历新的一天。这个背景的名字寓意着StaySleep的中能容纳宇宙,也能容纳大家每一个安眠或是熬夜的夜晚。
其次,正如前文中所述,StaySleep现在有一个完整且循序渐进的初次引导界面了。我在新朋友第一次打开App的时候,添加了更美观与易懂的引导,仅需几个步骤,即可导入历史睡眠数据、设定睡眠目标,将StaySleep定制专属的睡眠与熬夜分析应用。
对于最核心也是最传统的熬夜热力图,新版中做了一些微调,目前已经把年度图表拆分了成了月度图表,然后合并进了目前熬夜热力图中。现在,大家可以在熬夜热力图中自由切换近120天的熬夜情况与当月熬夜情况了。在正式版上线之前,我也曾做过了问卷调研,有70%的朋友更喜欢「每月型热力图」,因为它「更直观、日期显示更具体」。对于那些不熟悉Github热力图的朋友来说,这个功能可以解决在理解热力图含义时所遇到的问题。
在睡眠分析界面,新版本中所有的睡眠阶段和身体指标的图表,现在都可以使用触控的方式查看详细数值了,我还为这些图表添加了触控震动,作为一个喜欢触感的人来说体验超棒。
对于懒人朋友们,不爱经常打开软件查看睡眠情况,我们也在新版本中重构并添加了众多小组件样式,并且贴心地提供了熬夜提醒和睡眠质量通知,简单易懂,一目了然,在最需要的时候提醒大家注意休息。
无论是AppleWatch、iPhone、小米手环(部分)、华为手环(部分),都可以在StaySleep里得到相近的体验。我们适配了部分第三方的数据源,针对不同设备设置了不同的解决方案,并提供了一键设置的选项,也正如我在AppStore简介里写的那样,您只需要负责睡眠,剩下的交给我们。
对于只有iPhone的朋友们,我们也提供了睡眠计时器,虽然现阶段的技术水平做不到手机的睡眠监测,但是也可以实现一键记录和计时器睡眠的功能了。同时,全屏的计时器可以避免大家受到其他界面和功能的干扰,专注于睡眠。
两年前的那篇帖子里,我在结尾部分构思了StaySleep的未来开发路线。在今天重新立下flag之前,我想再来回顾一下,曾经给大家画的那些「大饼」现在实现了多少。
开源App的核心热力图代码至GitHub:在StaySleep第一个版本里,热力图的颜色是在软件启动以后手动传入颜色实现的,所以当时这种解决方法是可以移植成为开源项目的。但是由于这样会存在一个很大的问题——每次睡醒后需要重启App才能刷新熬夜热力图,十分影响体验。权衡以后我更换了一种更巧妙的方法,不过带来的后果就是数据和热力图深度绑定,和其他类型的数据不再通用,所以就搁置了开源的计划。
GameCenter排行和奖章系统:体验过其他软件内置的GameCenter,感觉真正使用这个这个功能的朋友还是很少,接入的话似乎也比较麻烦,综合考虑就没有做。至于大家呼声很高的奖章系统,因为实在找不到设计师,AI画出来的图标又比较丑,所以一直没有上线,我也很想上线这个功能
更多睡眠质量图表、锁屏小组件:借着iOS16的更新,22年十月份StaySleep就上线了这两个功能,在最初的版本里这些可视化的图表都没有触控手势。而在新版本里我们添加了触控手势,还添加了几个额外的图表和桌面小组件,进一步完善了这部分内容。
iCloud同步:因为在最初的时候没有支持iCloud,所以在后续版本适配的时候遇到了很大的问题。我曾经几次试图实现iCloud同步,但是或多或少都有体验上的问题。不过在24年年初的更新里,解决了iCloud的问题,云同步正式上线了。
如下,是后续的RoadMap:
22年虽然不是独立开发的元年,但在StaySleep上线的近两年里,我也算是见证了独立开发的热度越来越高,优秀的产品层出不穷,也有各行各业的朋友转行开始了自己的独立开发之旅。给我印象很深刻的是,当时加入了一个独立开发的交流群,刚进去的时候群里只有不到20个朋友,现如今已经突破了300人。
对于独立开发开发而言,这两年除了同质化越发严重,市场竞争越来越激烈以外,想成为独立开发者这件事的门槛也变高了许多。苹果目前对于开发者需要进行很多的验证步骤,而两年前只需要支付费用就能即刻成为一个开发者。
而软件著作权、备案号也是现在很多独立开发者需要折腾很久搞定的事情。除了这些硬性要求,如何把自己的产品让更多的人看到也是一个难题。毕竟现在功能相近的产品太多了,即使自己的作品有一些过人之处,如何俘获潜在用户的芳心也是着重需要考虑的。
很幸运,StaySleep虽然算不上出彩,但是一直有很多朋友陪伴和支持着我们。虽然有时候很迷茫,但绝大多数情况下StaySleep并没有被我当做是一个工作,因为我很喜欢这些代码给我、给大家带来的快乐和便利。
至于这条路选对了吗?我不知道,这条路不是我人生里唯一正在进行的一条路,人生也不应该被定义只有一条路可以走。但是我很喜欢,也很感恩这条路给我带来的经历与成长。
至今还记得自己在隔离酒店里熬的一次夜,那时我正用远程会议和同学参与数学建模比赛,彼时窗外正在飘雪,而我的平板电脑里播放着一路生花。作为喜欢在晚上独处的人来说,这也是我最难忘的一个熬夜体验之一。
无论大家是否喜欢StaySleep,感谢这一路上的帮助、鼓励和宽容。我相信,也始终相信,只要我的产品能帮助到哪怕一个人,它在我心中也是最有意义的存在。