随着智能可穿戴设备的普及,越来越多的用户开始尝试进行「量化自我」,记录和自己相关的数据。睡眠监测作为「量化自我」中的一个热门类别,吸引了许多开发者的目光。

在众多睡眠监测应用中,AutoSleep 因其全自动的记录方式,详细的数据分析,得到了许多用户的好评。借着推出 4.0 版本的契机,我们采访了 AutoSleep 的开发者 David Walsh,请他跟大家聊一聊 AutoSleep 的开发故事,以及作为一名独立开发者的心路历程。

David Walsh

π:你怎么想到要开发 AutoSleep 这样一款应用?

随着越来越多使用 Fitbit、Jawbone、微软以及其他手环的用户将他们的目光转向 Apple Watch,许多 HeartWatch 的用户希望我开发一款自动睡眠监测应用。人们在使用市面上已有的睡眠监测应用时往往会忘记开始和结束记录睡眠,我希望能够改变这一点。我从 2016 年 9 月份开始开发这款应用,并花了很多精力去开发和完善它。在开发的过程中我有幸遇到了一些非常棒的测试用户,他们中的许多人都是睡眠监测应用的重度用户,并且会对比各个应用记录的数据。他们帮助 AutoSleep 得以真正适应不同人群和场景的需求。

π:在 AutoSleep 推出之前,市面上已经有像 Sleep Cycle,Pillow 和 Sleep++ 等睡眠监测应用,AutoSleep 和它们相比有什么不同之处?

最重要的区别是:使用 AutoSleep 时,你除了睡觉之外不需要做任何事。所有其他的应用都要求用户至少要进行一种手动操作。我希望开发一个能够完全自动记录睡眠的应用,你甚至不需要在 Apple Watch 上打开它。

在最新的 AutoSleep 4 中,还加入了新的 Sleep Rings。能够让你方便地查看自己的睡眠情况。它类似 Apple 健身记录里的圆环,只不过里面不是你的运动数据,而是你的睡眠数据。

π:为什么 AutoSleep 能够在不打开应用的情况下记录和分析睡眠质量?

Apple Watch 会将所有传感器收集的数据通过 HealthKit 传输到 iPhone 上的健康应用里。虽然可能需要一个比较复杂的过程,但是你可以通过合适的算法来从中分析睡眠数据。

π:在最初的版本中,AutoSleep 没有 Watch 版,但现在却推出了,这背后的原因是什么?

即使是现在,你也完全可以在不安装 Watch 应用的情况下使用 AutoSleep。在应用上架后,我收到了一些希望我开发 Watch 应用的用户请求。这些用户希望能在 Apple Watch 上查看一些基本的睡眠记录信息。

另外,一些用户喜欢记录他们入睡所用的时间,但又习惯将 iPhone 睡前放在其他房间里,自动记录无法满足这样的需求。所以,和通知中心的小部件一样,在 Watch 应用里也加入了「熄灯」这个功能,让你可以记下开始睡觉的时间,用检测到的入睡时间减去开始睡觉的时间,就可以知道入睡所用的时间了。

Watch 版也同时加入了一个简单的计时器来记录「熄灯」后的时长,这也满足了一部分用户的需求。我个人并不经常使用「关灯」这个功能,因为我躺下后总是很快就睡着了。😴

π:你怎么看待利用数据分析睡眠这件事?你觉得这些数据有价值吗?除了记录之外,你觉得人们应该如何利用这些数据?

首先,你要了解记录睡眠背后需要的技术,以及它的优势和缺点。它的优点是能够较好地记录你在睡眠中身体的移动,并且能较为准确地记录你的心率。

但是,不管商家如何宣传,在不检测大脑活动的前提下,你都无法准确地监测像 快速眼动期 这样的睡眠阶段。不过,你收集的数据并不是没有价值的。它可以帮助你了解自己睡眠时间的变化,并利用它了解自己的生活习惯。通过查看你的平均心率,并对比你夜间和白天的心率变化情况,你能够对你的睡眠情况更加了解。基于新陈代谢活动和心率来检测睡眠质量,会让你了解自己生活方式的改变将如何影响你的睡眠。

睡眠质量是影响人体健康的最重要因素之一。许多人缺乏足够的睡眠,但他们却并不知情。和他们自己身体的「电量」相比,他们可能更关心自己 iPhone 的电量。睡眠质量和你的精神状态、身体健康以及生产力息息相关。在科技的帮助下,我们能够更容易地检测睡眠,这对人们很有意义。

π:和之前版本相比,AutoSleep 4 在设计上有了很大的改进。你是怎么考虑这件事的?你使用了什么特别的设计工具或者方法吗?

对我来说,AutoSleep 更像是一个「技术驱动」而非「设计驱动」的项目。在我开始开发它的时候,我并不确定它真的可行。所以我采用了一种方便进行逻辑和数据测试的所谓的「设计」。我当时并不确定它真的可以做成一款产品。第一版 AutoSleep 的用户交互看起来非常原始,并且有点复杂。但是它能很好地帮助我看到来自 Apple Watch 传感器的数据。大部份应用设置和选项界面都比较粗糙。对于一些有技术基础的人来说,这个界面设计很高效,但对一些人来说会觉得有点复杂。此外,我没有花很多时间在美化界面上,我首先考虑的是应用功能的准确性。

在开发新版本时,随着我看到越来越多的用户开始喜欢并使用 AutoSleep,我决定要把界面做得漂亮一点,让数据展示地更直接,设置变得更简单。我收到了许多用户的反馈,里面提到了一些他们关于界面设计的建议,和之前版本存在的一些问题。我参考了这些建议,对界面进行了重新设计。 

我没有使用任何的图形设计工具,我更习惯用写代码的方式,因为图形设计工具不能带来那种动态的感觉。为了避免被别人找麻烦,我不喜欢使用第三方的库,插件或者别人的代码,所有的编程工作都由我自己来完成。对我来说,设计和编程是完全不同的两件事,所以我很难同时兼顾它们。在 AutoSleep 4 的开发中,设计占据了更重要的地位,我使用了类似夜空的配色方案,并在标题和选项上使用了月光色,在圆盘上加上了模糊效果。

另外,我还把显示设置和数据的部分换成了让用户能一目了然的方式。这些设计的改动是为了让你在查看主界面时就能清楚地看到你的睡眠情况,不仅有睡眠时间,还有睡眠质量和心率。

重新设计的主界面,左为 AutoSleep 3.0,右为 4.0

为了更好地展示信息,我重新设计了睡眠质量页面。在页面的最上方添加了一些简单的数据展示和趋势图,然后向下滑动才能看到详细的数据。所有的这一切都是为了一个目的——快,你只需要点击一次就能看到所有重要的信息。

重新设计的睡眠质量页面

π:你经常为你的应用更新 TestFlight 版本,你觉得这对开发有帮助吗?

对于像 Autosleep 这样的睡眠监测应用来说,它的用户之间的差异性是非常大的。他们有着不同的心率,新陈代谢以及睡眠习惯。所以你需要许多测试用户。

另外,不论任何类型的应用,如果你是独自一人开发的话,好的测试用户会给你带来一种团队协作的感觉,这对开发是很有帮助的。他们提供的反馈往往很有帮助,它能够激励你继续开发,并通过实际的用户体验来验证你的想法,这些事只有通过用户测试才能做到。

π:你平时如何管理你的任务?

我的任务管理工具非常简单,我在 iPhone 和 iPad 上都使用 Clear。它是一个简洁灵活的 To-do 应用,功能也非常基础。我用它来记录所有的想法,并将它们整理到不同列表中。如果需要记录更复杂的信息,我会使用 Apple 的备忘录,它可以很方便地在我各个设备之间进行同步。

π:作为一个独立开发者,你有什么想对我们的开发者读者说的吗?

我最早接触移动应用开发是在 NCR Pen Tablet 上,当时是 1993 年。在 2012 年之前,我所做的一切开发工作都和企业相关。2007 年到 2010 年间我在一家美国开发 企业资源计划系统 的公司担任 Global Product Director,负责移动解决方案。那几年里,我居无定所,飞奔于世界各地。这对我的家庭生活无疑是一场灾难,我知道这不是我想要的生活。尽管成为一名独立开发者意味着更长的工作时间,并且可能没有固定的假期,但我却乐在其中。对我而言,不必迁就其他人的日程,并且能够做你真正想做的事,这种轻松的感觉真是太好了。

不过,要想当好一名独立开发者,你可能需要脸皮厚一点。你的用户可能很挑剔,甚至有时会很无礼。你不得不尽力去理解他们。

另外,回复邮件也很重要。我会在收到邮件的 24 小时之内回信,这意味着我每天都要花 2-3 个小时去回复邮件。但这在应用的开发阶段非常重要,因为它能让你直接了解到用户喜欢什么,不喜欢什么,想要什么功能,产品对他们的生活产生了什么影响,他们在使用产品的过程中遇到了什么麻烦,以及在他们的 iPhone 和 Apple Watch 上发现了哪些 bug。

最后,作为一个健康类应用的开发者,一个独有的优势就是能够看到一些来自用户的感谢信。当你了解到自己开发的应用挽救了他人的生命的时候,这感觉太美妙了。


一个应用的成功,除了需要开发者的努力,想要让来自不同国家和地区的用户使用,本地化的工作也非常重要。AutoSleep 的中文本地化是由一名志愿翻译负责的,他的名字叫 石云洋。我们也采访了他,让他谈谈自己为 AutoSleep 做汉化背后的那些事儿。

π:这是你第一次做软件汉化吗?为什么有这种想法?你是如何联系上开发者的?

算是第一次吧。有这种想法因为我自己也是 iOS 开发者,知道 iOS 做本地化其实只需要分离出 String table 就好,所以才想到去联系开发者希望能够协助翻译。

机会就是直接给作者发邮件啦,一般来说作者都会愿意的,因为本地化对于独立开发者的应用能起到很好的推广作用,而且就中国而言,即使软件很好用,很多人看到没有中文就不愿意去购买使用了。

π:和开发者交流的感受如何?有什么有趣的或者印象深刻的事?

交流上还是很顺畅的,有时候可能需要借助 Google,比如他有次提到 Time Saving,之前没有接触过,我去查了才知道。

有趣的事情是 3.0 的时候我给他换了 Tabbar 的图标,原来的质量和当日图标实在是不够美观,我给他发了我找的图标,他立马就采纳了,邮件里说很喜欢我这个,哈哈。

π:使用的汉化工具是什么?交流工具是什么?怎么跟进任务进度?

汉化工具嘛也就是文本编辑器了,我用的是 Sublime Text 辅以 Git 做版本控制,这样可以清楚看到每次做的更改。交流工具则是 Twitter 的私信辅以邮件。

因为毕竟是义务的,有翻译需要的时候也没有规定截止时间,一般我是在 1-2 天完成,少量文本可能当时看到就思考一下直接发给他了。

π:有什么翻译相关的经验可以分享吗?如果一个新人也想做汉化,你有什么建议吗?

真正开始做翻译以后,才明白想把翻译做好了,其实看的不是英文水平而是中文水平,信达雅什么的先不说,做完第一版的时候,因为一直连续翻译,有些拗口的语句自己都觉得很正常了,所以给他人看看自己做的还是很有必要的。感谢后来 Hum 提的建议,才得以在 3.0 的时候让大家用上还算不错的中文化 AutoSleep。

我自己的翻译步骤大致如下:

  1. 先大致过一遍需要翻译的文本,找出出现频率次数多的几个单词,优先确立它们的中文翻译;

  2. 按照使用流程逐步翻译文本,这样便于后期审查;

  3. 整体翻译完成后通读并尝试调整语序提高辨识度;

  4. 等开发者应用到 App 中给他人使用后交流翻译内容。


关于「幕后」

我们每天会接触大量的软件、硬件,但是多数时间下,都只是以固有的「使用者」视觉去体验和评判,快节奏的模式让我们没时间体会太多背后的理念。「幕后」栏目 因此而生,我们会不定期邀请一些开发者,讲述他们创造产品背后的故事。

👉 阅读更多「幕后」故事 >