利益相关声明:文中产品由厂商提供

很多人睡觉需要绝对的安静,但我恰恰相反。

我一直需要一点声音才能睡着——雨声、海浪、风声,甚至是空调很低的嗡鸣。只要有一层稳定的背景音,大脑就会慢慢放松下来,思绪也不那么活跃。后来我才发现,其实有不少人和我一样。

问题是,我一直找不到一个真正顺手的助眠 App。

有的声音不够自然,像循环很短的音频拼接;有的会在半夜突然停掉;还有的第二天醒来才发现它播了一整夜,耳朵嗡嗡的。

我理想中的状态其实很简单:睡着之前有声音陪着,睡着之后它自己安静地停掉。

但好像很少有人认真做这件事。

于是某个失眠的晚上,我打开 Xcode,写了一个很小的功能——一个简单的「播停」逻辑。没想到后来,它慢慢变成了一个完整的 App。

从一个播停功能开始

最开始我只是想解决一个很具体的问题:声音什么时候停。

如果整晚播放,第二天早上往往会觉得疲惫;但如果设一个固定定时(比如 30 分钟或 60 分钟),有时又会在刚刚入睡的时候突然断掉,反而把人惊醒。

所以我做了一个很简单的逻辑:

播放 → 检测到入睡 → 声音慢慢淡出 → 自动停止

实现上并不算复杂,但细节挺多:

  • 渐弱(fade out):声音不能突然停止,需要在几分钟内缓慢降低音量,让耳朵几乎感知不到变化
  • 后台稳定性:iOS 对后台音频有严格的管理机制,需要正确声明 AVAudioSession 类别,并处理各种中断场景
  • 锁屏兼容:锁屏状态下播放不能中断,还要正确显示 Now Playing 信息
  • 保护机制:万一检测失败,需要有兜底的最大播放时长,避免整夜播放

写完之后我自己用了几天,感觉终于顺手了。至少不会在半夜被声音吵醒,也不会醒来发现手机放了一整夜的雨声。

图1:播放界面截图(入睡模式 + 播放控制面板)

一个小功能慢慢变成一个 App

既然播放系统已经写好了,就顺手加了一些声音。

最开始只有最常见的几种:雨声、海浪、森林、篝火。

后来慢慢发现,助眠声音其实很有讲究。有些声音听起来很好听,但并不适合入睡——高频成分太多,或者节奏有起伏,反而让人更清醒。有些声音听起来很普通,但长时间播放非常稳定,大脑会自然忽略它,慢慢进入放松状态。

我也开始尝试自己制作一些声音。比如给雨声做不同的层次——远处的雷鸣、中景的雨打屋檐、近处的水滴声,叠加在一起形成一个完整的声场。还有深海气泡、虫鸣、溪流这类更小众的场景。

有时候甚至会反复听同一段音频很久,只是为了确认它到底适不适合入睡。

慢慢地,这个小工具越来越像一个完整的应用。我给它起了个名字:睡眠岛

不过说实话,这个 App 的第一用户其实只有一个——我自己。每天晚上我都会打开它。

图2:应用的首页资源视图

 

我其实从来没有写过 Swift

在做这个 App 之前,我从来没有写过 Swift。

我之前写的更多是服务端和一些工具类项目,对 iOS 开发几乎是从零开始。最开始打开 Xcode 的时候,很多东西都不太熟悉——SwiftUI 的声明式语法、AVFoundation 的音频播放接口,甚至连最基本的导航结构都要一边查文档一边试。

后来我开始尝试用大模型辅助写代码。

很多时候我只是用自然语言描述一个需求:

  • 「做一个可以后台播放的音频播放器,锁屏也能用」
  • 「在停止前做一个 3 分钟的音量渐弱效果」
  • 「做一个简单的播放控制界面,支持定时和声音选择」

AI 会给出一个大致的实现框架,然后我再一点一点调整、测试、重写。

这种方式有点像是 边学边做——很多功能并不是先完整设计好的,而是在不断试验中慢慢长出来的。想到一个小点子,就试着把它写出来,自己用几天看看感觉怎么样,不行就推翻重来。

某种程度上,这个 App 也是我学习 iOS 开发的过程记录。

 

第一个评论居然是 1 星

应用上线之后,我其实没有抱太大的期待。这种很小的工具类应用,在 App Store 里很容易被淹没。我只是偶尔打开后台看看有没有下载。

过了几天,终于出现了第一条评论。结果是 1 星

评论内容很简单,大概意思是:没有打呼噜记录功能。

看到的时候我有点哭笑不得——当时这个 App 只是一个纯粹的助眠声音工具,我根本没有考虑过睡眠监测这类功能。

但后来想了想,这个需求其实挺合理的。很多人用助眠声音的时候,本来就很关注自己的睡眠状态:有没有打呼噜?半夜醒了几次?睡眠到底稳不稳定?

于是我突然有了一点动力:要不就为这个用户做一个打呼噜记录功能。

接下来的一段时间,我开始研究另一件事——如何在用户睡觉的时候,用尽量低功耗的方式通过麦克风采样声音,识别出鼾声、梦话等事件,并在第二天早上整理成一份简洁的睡眠报告。

为了省电,我没有用持续录音的方案,而是做了一个基于音量阈值的触发机制:环境安静时几乎不消耗资源,只在检测到声音超过阈值时才短暂录制和分析。这样一晚上下来,电量消耗可以控制在很低的范围内。

某种意义上,这个功能是被一个 1 星评论「逼」出来的。

图3:鼾声记录功能截图
图4:第一个评论是1星

后来出现了一些 5 星评论

有意思的是,在后面的几周里,陆陆续续开始出现一些新的评论。这一次几乎都是 5 星

数量不多,大概十几条。但每一条我都会认真看一遍。

有人说试过很多睡眠软件,觉得这个最顺手。也有人说躺下之后不那么焦虑了,能慢慢睡着了。还有人提了一些很具体的建议,比如希望增加更多声音场景,或者加入有声书、睡前故事之类的内容。

你会突然意识到:这个原本只是给自己用的小工具,已经开始被一些陌生人每天使用了。

那种感觉挺奇妙的。不是成就感,更像是一种连接——你做的这个东西,真的帮到了一些你不认识的人。

图5:这些五星评论给了我莫大评论

做了 App 之后才发现的一件事

做完应用之后,我才意识到一个很现实的问题:没人知道。

于是我开始尝试做一些以前从来没做过的事,比如发内容、做运营。有时是一段雨声的场景视频,有时是一张安静的画面加上文案,偶尔也会记录一些制作助眠声音的小过程。

慢慢发现,很多人其实并不是在找一个 App,而是在找一种感觉——一种晚上躺下之后,可以慢慢安静下来的感觉。

有时候是一段雨声,有时候是一片海浪。这些声音很简单,但在合适的时候出现,就会变得很有意义。

图6:我制作的助眠资源素材

写在最后

做这个 App 的初衷很简单——我只是想睡得更好一点。

后来才慢慢发现,原来有很多人也在找同样的东西。所以这个应用大概还会继续慢慢做下去。不是因为它多大,而是因为——每天晚上,我自己都会用。

如果你也需要一点声音才能入睡,可以试试:

睡眠岛 - App Store

 

10
30