为了让自己少熬夜,我从零开始耗时六个月开发一款 App 记录睡眠
Matrix 首页推荐
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
大家好,我是 StaySleep 的作者八层夹心奥利奥。
今年八月份,我在 App Store 上线了我的第一款 app,StaySleep。在发布之初的前三天,它一度登上了 App Store 健康健美分区的 Top 100,那几天我的社交平台也被如潮水一般的反馈、建议给淹没了,而在上周四,我惊喜地发现我的 app 出现在了 App Store 的每周编辑推荐位。趁着八月底暑假的最后几天,我想在少数派和各位朋友聊一聊 StaySleep 与我的故事。
或许是从上大学以后开始,我的入睡时间变得越来越晚,在有了手机这个连接世界的桥梁后,我似乎每时每刻都想着关注当前大家正在议论和关注的事情,哪怕是深夜。在高中那会我还没有那么多电子产品,所以最多的消遣活动就是睡前和室友们唠唠嗑,看看书架上翻过好几遍的鸡汤励志文学,很快也能感到困意然后安然睡去。而现在的晚上,即使我早早的就躺在床上希望自己可以尽快入睡,但翻来覆去以后还是忍不住再拿起手机,刷会短视频、刷会朋友圈,而时间一晃可能就是一个多小时。看着手机始终上时针的数字逐渐增大,我才明白,真的不能再看手机了,这时才恋恋不舍地放下手机,匆匆入梦。
熬夜的危害有很多,熬夜玩手机的危害更甚。手机的灯光会减少体内让我们感觉到困意的褪黑素的生成,手机里每时每刻变化的内容也不断刺激着我们产生更多的多巴胺,让我们更加兴奋。虽然偶尔我也会因为学业或者工作不得不熬夜,但是每次熬完夜第二天起床的感觉,就像是前一天晚上去拯救完宇宙一样疲惫,昏昏沉沉。熬夜后的白天犯困是常态,但是一到晚上我却经常又感觉自己「活」过来了,感觉再熬个几天几夜都不是问题。就这样,我的熬夜生活一直很难改善过来。
虽然我个人感觉熬不熬夜其实对于身体健康可能没有特别大的影响,但熬夜确实有一点影响到了我的生活。每次熬夜以后,第二天如果没有课上的话我通常会睡到十点左右,起床刷个牙洗个脸,一个美好的上午基本就结束了。可能大家对于减少熬夜有各种各样的原因,对于我而言,熬夜很大程度上减少了我上午的清醒时间,也就意味着我可以自由支配的时间更少了。
近两年来,我接触过很多量化自己体验与生活的工具。例如量化喝水数据的 WaterMinder、量化睡眠质量的 AutoSleep、量化屏幕使用时间的 OffScreen,甚至还有量化性生活的 Aphrodite(顺带一提这个 app 居然还能记录不同的伴侣,确实很有意思啊)。这些软件把我的生活质量量化成了一些数字,一些图表。或许我是有大家口中的「效率成瘾综合征」,当我看到这些指标的时候我的内心会有一些富足感,当我看到我的行为改变了那些图表的时候我内心也会很激动:有时我会为了合上 Apple Watch 的健身圆环特意去运动,有时也会为了记账软件的漂亮支出图而刻意减小开支。我知道,我可能是那种可以被软件的数据和可视化图像改变行为习惯的那一类人。
开发 StaySleep 的灵感来源于 21 年底,我偶然在朋友圈里看到别人转发的 「通过填方格的形式记录睡眠」的一篇帖子,内容大意是通过 Excel 这样的统计软件,把自己的睡眠时间填进表格,然后染色不同的区块,最终形成一个可视化的方格图。作为计算机系的一员,我立马就认出了这个方格图不就是经常可以在 GitHub 上看到的贡献图吗?这个帖子的出发点很棒,通过贡献图让大家可以直观的查看自己的熬夜与睡眠情况,但是使用 Excel 手动记录似乎太麻烦了,如果有一个 app 可以通过手机简单的记录与创建贡献图,那不是更好吗?最好这样的 app 还可以和其他睡眠记录软件联动,这样也可以不用担心记录的准确度了。就这样,StaySleep 的雏形出来了。
想出这个软件雏形的时候正接近大二上学期的期末周,为了好好备考,这个项目被我暂时搁置了。等到了寒假,我开始接触区块链,我觉得这个领域也很吸引我,所以我在开发 App 和学习区块链之间又纠结了一会。也就是那一会,我体验了很多非常棒的独立开发 App,包括 Flomo、MoneyThings、Vision 等等,发现原来可以开发 App 是一个这么「酷」的事情,所以最后还是选择了实现我的开发 App「梦想」。
在四个月左右的学习代码过程中,我也头脑风暴出了很多的新点子,比如可以和好友竞赛看谁熬夜次数更少、记录并统计每天的睡眠地点、更多的成就系统等等……这些头脑风暴都记录在了我的小本本里,如果技术允许的话,我也会一个个实现这些似乎可以带来更多幸福感的功能。
今年八月初,StaySleep 迎来了第一个正式的公测版本,在公测之前,我也对 app 进行了半周的测试。等到正式开启公测的那一天,我看着后台的测试名额逐渐变多,心里的开心与焦虑并存。幸运的是,第一次的公测结果还是挺好的,不过虽然没有收到太多的负面评价,但是我看着后台的 400 次启动中有 40 次闪退记录,还是很内疚的。
虽然 StaySleep 在 18 号晚上才正式上架 App Store,但是我从 10 号左右就开始了第一次的准备提交。因为过程实在是太麻烦了,除了程序是自己写的,还要自己设计宣传图产品简介,作为一个理工男实在是花了很久才憋出几张像样的宣传图。然而,Apple 的要求是在是严苛,也怪我没有认真的看规则,宣传图也需要有特定的尺寸。因为宣传图和产品简介这两个艺术与文科的内容,又延迟了两三天的时间。
当我在 18 号晚上收到审核通过的那一刻,或许是太激动了,整晚的内心其实都是很平静的,看着大家终于可以从 App Store 下载到它,并且没有太多的明显的 bug,我真的很开心,因为独立开发一款 App,也是我人生中的一个小梦想,而今天,它终于实现了。我也在一步步完善它的功能,让它用起来更顺手、更便捷。
奇普·希思在其作品《瞬变》中曾提到,人们在没有感受到之前,是不愿意改变的。绝大多数的人们改变自己行为举止的路径并不是「分析-思考-改变」,而是「看见-感觉-改变」。所以,为了开发一款让大家减少熬夜的 App,当务之急就是让大家清楚地「看见」自己正在(或是曾经)经历熬夜,并且熬夜的频率比想象中高很多这件事情。最直观的感受就是视觉,而在视觉中,可以给人留下深刻印象的就是反差度高的图表。正是如此,我们的 App 最主要的功能就是可视化的数据图表,让用户更加清晰的了解自己的熬夜状况。当我们真正看到自己高频的熬夜次数以后,或许内心才会有一些冲击感,促使自己在睡眠这件事情上做出改变。在 App 上线半个月以来,我在用户群里看到了很多分享自己「一片红」的熬夜热力图,很多朋友也坦言,在尝试 StaySleep 之前,即使在使用其他睡眠 App,也从来没有意识到自己熬夜的次数原来这么的频繁。
除了「看见」可以促使人们发生改变之外,在书中奇普·希思还提到了两点可以帮助大家改变行为:「召集同伴」与「设定小胜利」。借助 iOS 的特性,StaySleep 将在未来更新这两种可以帮助大家改变熬夜习惯的方法。
「召集同伴」:我们预计在未来添加对于 Game Center 的支持,帮助大家召集同学与朋友一起,共同制定早睡目标,比拼在一个月内谁的熬夜次数更少,并使用排行榜的形式展现在 App 中。
「设定小胜利」:我们将在最近几个版本更新热力图奖章,当连续四天不熬夜时,热力图上会出现「⭐️」星星标识,而连续十一天以上不熬夜,热力图上会出现金灿灿的「🏆」奖杯标识。而在未来,我们也会推出类似于 Apple 健身一样的奖章,并创建一个奖章墙,用于展示每月的早睡情况,通过奖章的方式激励大家减少熬夜的次数。
专业的事情留给专业的团队做,如果您追求的是更加详细的睡眠分析,可以尝试 AutoSleep 和 Pillow,丰富的数据数据分析与图表可以让大家更为详实地了解自己的睡眠情况。但是,不是所有人都需要如此专业的数据分析,AutoSleep 固然专业,但是我遇到了很多朋友都说它的设计过于复杂,很多数据都看不懂,并且 AutoSleep 的中文机翻也是一个为人诟病的问题。而 StaySleep 的设计初衷之一是设计成一个简单易懂的 App,让不是很懂什么是「血氧饱和度」、「REM 睡眠」的朋友们也可以一眼查看自己的睡眠情况。虽然简单易懂可能意味着在睡眠分析方面做得不尽如人意,但是我可以接受牺牲一些专业性与准确性,而实现让大家都能一眼看懂的界面。
目前的 StaySleep 仅支持两种图表的查看,分别是热力图与环形图,对于一个 App 而言,只有这两种图表可能过于简陋。很抱歉,因为开发的精力有限,目前情况是这样的,但是我将在九月份随着 iOS 16 的更新,让 StaySleep 支持更多的 Apple 原生图表。此外,随着 watchOS 9 的更新,App 也将会在年底前支持读取 Apple Watch 记录的深睡与浅睡数据,让专业性与易用性共存。
在任何 App 的使用中,我们或多或少都会遇到被「套牢」的情况,数据储存在一个 App 中,就意味着我们很难再同时使用其他的 App,并实现数据的互通,这种情况也称为「数据孤岛」。给我感触最深的莫过于记账软件,上大学这两年来,我或许每隔四五个月就会换一个记账 App,为了就是一个新鲜的体验。但是让我头疼的就是在这些 App 转移数据的时候,每一个 App 导出的记账数据或多或少都有一些区别,作为一个计算机专业的学生我是可以用 Excel 或者 Python 批量修改数据格式的,但是对于其他用户而言就不太友好了,一旦使用了某一个记账软件,高昂的导出与导入成本就把大家套牢在一个 App 中了。
虽然在 iOS 中,不同 App 记录的睡眠数据可能依然存在一些「数据孤岛」,例如 AutoSleep 判定的深睡时间在 Pillow 中读取不了。但是得益于 Apple Health,几乎所有睡眠软件都会将自己记录的数据同步到 Apple Health 中,StaySleep 也可以直接从 Apple Health 中读取不同 App 记录的睡眠数据,以减少「数据孤岛」的情况,实现了与其他 App 间的数据联动。理论上,只要其他 App 会把数据同步到健康中,StaySleep 就读取记录的睡眠数据。
借助这一功能,StaySleep 实现了跨品牌联动。它能读取的数据不再局限于 iOS App 或者 Apple Watch,甚至可以读取来自小米、华为手环的睡眠数据。原理其实大同小异,第三方外设的配套 App 会将睡眠数据传输给 Apple Health,然后 StaySleep 再从中读取睡眠数据。虽然并不是通过 StaySleep 直接连接第三方外设,但这种也算是一种曲线救国的方式了,尤其是与一些广告很多的配套的 App 比较后,我们的 App 就感觉似乎更加简洁了。
StaySleep 是一款帮助您减少熬夜的软件,它可以自动读取来自 Apple 健康的睡眠数据,并以可视化的图表展现在 app 或者您的桌面上。核心功能如下:
自动读取来自其他 App 的数据:如果您使用的是 Apple Watch、小米手环、华为手环等其他任何可以记录睡眠的外设,或者手机中有其他任何可以记录睡眠的 App,StaySleep 都可以自动读取它们的数据,完全不用您操作。(目前暂时仅支持自动读取 4 天内的睡眠数据。)
多种颜色组合熬夜热力图:填格子游戏来了!使用睡眠数据来填满方格,越早睡方格的颜色会越清新,越熬夜方格的颜色会越醒目。同时,除了传统的红绿色热力图,我们还准备了蓝橙色热力图,使得界面更清爽的同时也可以让色弱的朋友安心使用!
多种不同小组件:如果您喜欢在桌面上放置小组件,那么可以尝试一下我们自带的多种小组件,包括所有核心图表在内的小组件,帮助您直观且方便的查看睡眠情况。
睡眠环形图:类 Apple 健身的环形图,分为内圈和外圈,用来查看您的熬夜情况和睡眠总时长是否达标,如果完全达标,两个圆环都会渐渐闭合。
一键导入其他 App 的数据:如果您同时在使用其他睡眠软件,那更好了,StaySleep 目前已经支持一键导入任何来自 Apple 健康中的睡眠数据,可以帮您一键填充以往的熬夜热力图!
睡眠计时器:我们平等地对待所有的用户,如果您没有其他任何外设或者 app,StaySleep 也欢迎您使用,您可以通过内置的极简计时器手动计时您的睡眠,或者手动添加您昨晚的睡眠情况。
睡眠提醒:常常自己一不小心就熬夜了?没关系,StaySleep 内置睡眠提醒功能,可以在您即将熬夜的时候给您发送通知,提醒您早睡。顺带一提,通知的语句是随机的喔,可能每天您都能收到不一样的通知。
手动添加与编辑睡眠数据:如果我们的 app 记录了错误数据,或者您的睡眠记录因为某种原因不准确,您可以在 app 中手动调整睡眠和起床时间。
一键导出 App 中所有睡眠数据:我们永远不会成为下一个信息孤岛,您的数据掌控权完全在您手中。目前我们的 app 不需要联网,也不会收集您的任何信息。如果您哪一天不想再用我们的 app,也可以一键导出所有曾经的数据,拿回只属于您的数据。
前两天在少数派评论宣传自己的 App 的时候,有一个朋友的留言给了我很深刻的印象,「只要不是记账软件,都支持」。确实,作为一个有着 App「收集癖」的人,我收藏最多类型的就是记账与 GTD(待办事项)的 App,这两个种类的 App 竞争可谓是相当激烈,我有一些非常喜欢的 App,界面也很精美,但是甚至从来没有上过排行榜或者得到过编辑推荐,原因可能就是这两个品类竞争太过激烈了。
回到我的 App,睡眠品类 App 的数量虽然远远比不上前面两个种类,但是在睡眠 App 在我看来可谓是一超多强。当之无愧的第一名或许是 AutoSleep,第一梯队还有 Pillow、蜗牛睡眠,以及其他厂商的硬件配套 App。走传统的专业路线或许没有办法和这些 App 抗衡,另辟蹊径的办法或许就是做得更简洁、更一目了然。当大部分软件都试图变得越来越专业的时候,或许保持简单易懂是我们最好的道路。
因为我年初学习开发的时候,其实也是在开发 App 和去搞区块链之间做了选择的,所以等到这个 app 功能差不多完善了,bug 差不多修好了,以后的更新频率就会慢下来了,应该会投身到区块链行业,可能是 All in Web 3 了。但在之前,我依然会尽全力把这个 app 的功能完善到最佳,不负大家的支持与喜爱。
如下是在大时间尺度上的后续 Road Map:
睡眠数据和其他任何个人信息数据一样,都是非常隐私的。目前,StaySleep 完全不需要联网权限,可以实现纯本地的数据获取与分析,也没有任何后台上传您的隐私数据。未来如果使用 Game Center 与 iCloud 同步功能,可能会需要联网权限,但我们绝不会出卖大家的数据以获取金钱上的回报。同时,我们也致力于防止成为一个「数据孤岛」,您使用 StaySleep 所记录的数据,会全部储存在 Apple Health 中,如果您哪一天卸载了我们的 App,你的睡眠数据依然会保存在手机中。并且,我们也提供了一键导出功能,可以一键导出所有睡眠数据。
我目前还是一名本科在校学生,我创造这款 App 的目的主要是为了实现开发 App 的梦想。目前的 App 是完全免费的,在第一个版本中我尝试添加了「赞助开发者」的内购,但是因为不太会写内购的代码,所以干脆就把赞助选项直接删除了。等待未来更新重大新功能后,App 可能会转为付费,因为每年 688 元的开发者年费对没有收入的学生而言,还是能抵小半个月生活费的,也是有一点心疼的。此外,来自 App 的一些小收入也可以持续激励我们这样的开发者更新,但是请大家放心,以后付费的价格一定会非常低,因为我自己也经历过花钱买 App 时的犹豫与徘徊。
真的很感谢大家的这么久以来对我的支持,从二月份立项开始学习到八月份终于发出了正式版本,其实有很多时候我也看不到完成这个 app 的希望,但我的朋友们,包括无数未曾相识却又十分熟悉的网友们一直鼓励我继续完成了 StaySleep。在少数派里,我曾经不止一次在每周推荐 App 的文章中评论并推广自己的 StaySleep,编辑也没有把我的评论删除。相反,我在这里获得了很多朋友的支持,也收到了很多很棒的建议。
在我看来,代码的意义有两种,一种是帮助人们探索更多领域的未知,另一种是帮助人们改善他们的生活,或许我认为 StaySleep 是后者。看着 StaySleep 的开发一步步走向正轨,这种感觉就像是我的孩子越来越茁壮成长。虽然它还有很多的缺点,可能也并不能成为大众眼里的明星,但是没有关系,只要他能够帮助到大家,改变自己的熬夜习惯,或者让大家意识到自己正在熬夜,哪怕只影响了一个人,那也达成了我对它的期待。
至此,我始终相信一句话,Code Change The World。
最后,希望您能睡个好觉!
> 暑期征文 数字文具盒 火热征稿中,分享学习方法,拿走现金奖励 🧑🎓
> 实用、好用的 正版软件,少数派为你呈现 🚀
© 本文著作权归作者所有,并授权少数派独家使用,未经少数派许可,不得转载使用。