布里吉斯

隆重介绍 Alarmedic:你的全新服药助理

一点 behind the scene。

上一篇文章 中,我提到我已经完成两款 app 的开发:一款是 Nintendo Switch 媒体转移工具 Switshot,另一款就是这篇文章里提到的 Alarmedic。今天,我们就来聊聊 Alarmedic,有关于它的诞生、形态和未来功能,等等。

为什么是一款服药助理 App?

Alarmedic 是我在很早之前就很想制作的一款 app:一款用药助手,能够帮助用户管理自己的药品和服药计划。这款 app 的灵感,源于我在两年间的一些观察:

  • 首先,长期服药这件事情就是与习惯做斗争的过程。
  • 我本身也有服药经历,由于药品本身有复杂的医嘱、注意事项和服用时间,很多时候我很难搞清楚究竟什么时候该吃什么药。
  • 家里人也需要服药,他们需要吃什么药?什么时候吃?
  • 我什么时候会将药品吃完?什么时候完成一个疗程?什么时候需要复诊?
  • 家里的常备药,会在什么时候过期?

目前市面上的确有一些服药 app 已经有类似功能,但通常界面并不尽如人意。以及,一些较好的服药提醒 app 集成许多诸如血压等等周边功能,却缺少诸如 Apple Watch 配套 app、桌面小组件和更多可以快速访问药单的方法,或者是以上功能可能会缺少一二。

于是,我打算自己做一个出来。你现在看到的 Alarmedic 就是这样的设想的 初级阶段。在现在的 Alarmedic 里,它可以根据你输入的信息,帮你自动规划服药计划,并在对应时间点提醒你服药;同时,你还可以将药单标记为「已服用」,以此来生成服药历史记录。对了,它还支持 iCloud 备份,在更换手机的时候,你的所有数据都会自动被保留。

Alarmedic 打造的过程

Alarmedic 的底层使用的是 SwiftUI。它的好处是确实地简化我的开发流程,对于我这种对 Vue.js 和 React 比较熟悉的人来说,绝大部分的开发流程与范式几乎都可以平移。这与我以往尝试使用的 Storyboard 有着天壤之别。

即便如此,Swift 毕竟不是 JavaScript,SwiftUI 也不是 Vue.js 和 React,这意味着你需要利用 Swift 生态中的规则来进行编程,而不是 JS。还好的是,在开发 Alarmedic 的时候,我并非对 Swift 一窍不通(Swift 也不是很难学的编程语言);SwiftUI 脚手架生态中目前也有一些非常好用的「轮子」来帮助我快速解决开发问题。就这样边学边做,初版 Alarmedic 花费我大约半个月的时间进行开发。(在之后开发 Switshot 的时候只做了一天不到的时间。)

当然,代价也是有的——作为较新的开发技术,SwiftUI 只能在较新的操作系统运行,甚至一些常见的交互与接口,只有在 iOS 15 或是 macOS Monterey 才能使用,这导致使用 SwiftUI 的程序注定对旧的操作系统兼容性不佳。

总体来说,除了遇到 Xcode Beta 降级、以及 Core Data 和 CloudKit 相关的一些问题之外,开发过程总体而言是轻松加愉快的。你可以看看我的上一篇 关于 SwiftUI 的一些总结文章 来了解更多。

需要特别提出的是有关 Alarmedic 的图标(logo)。这个图标是由 puddding 设计的,是药丸与铃铛的结合,这在我之前的想法中是完全没有过的思路,而且结合得很好。(就是偶尔会幻视成雪糕这一点就有点…… 但图标设计的质量是真的让我很满意。)

![Alarmedic 的图标设计与 branding](https://cdn.astrianzheng.cn/mwebmedia/2021/09/18/Alarmedic app icon design.jpg)

「初级阶段」与「完全体」

前面我提到过,目前的 Alarmedic 还是一个初级阶段。它可以帮助你完成有规律的药品服用计划与提醒,但许多想法中的功能还没有出现,一些服药 app 基础功能也有待添加。

我在给 Alarmedic 内测人员的最后一版 TestFlight 的 release note 里,写明在不远的将来,Alarmedic(大概率)会加入的功能。包括:

  • 支持不足 1 单位的用药用量
  • 支持「间隔日」(每隔几天进行给药)
  • 支持为服药者和药品添加照片
  • 分享药单
  • Apple Watch 版本
  • 桌面小组件
  • 通知扩展
  • 自定义通知声音

其中有很多是内测用户与其他用户的反馈中认为应该有的功能,有些则是我认为 Alarmedic 应该有的功能。这些功能经过最后的评估与最终开发后,会陆续通过 Alarmedic 的第一批更新来逐步加入。

在更远的将来,我希望 Alarmedic 能够成为家庭药品管家。理想的情况下,拥有 Apple Watch 的老人可以通过 Alarmedic 了解子女为其安排好的服药计划,子女也可以通过 iPhone 追踪老人家是否有准时吃药;家庭成员也可以通过 Alarmedic 了解家里药箱里有什么药,什么时候该换;慢性病患者也可以通过 Alarmedic 追踪疗程……

当然,以上这些纯属画饼。目前 Alarmedic 需要做的事情,就是更新功能、继续打磨,至少能够保证不像现在这样「简陋」🤣。

关于 Alarmedic 的付费模式

Alarmedic 采用免费 + 订阅制内购的模式营收,即本体免费下载、完整版(Full Access)收费为每年 20 元。

Alarmedic 的免费版拥有如下限制:

  • 只能建立 1 个人的服药资料
  • 只能创建 3 个服药计划
  • 只能使用系统提供的服药时点,无法修改、新增或删除

在我的设想下,Alarmedic 的免费版应该用于临时使用的场景:我并不需要长期服药,但可能因为一些头疼脑热需要临时服药。这时候,免费版的限额应该足够绝大多数这样的场景使用。

对于长期服药、有小孩或老人的用户来说,无以上限制的完整版是必须的。当然,你可以选择只支付试用期费用或一年的费用来修改数据,过期后继续在 Alarmedic 中使用这些数据(数据会保留)。同时,Alarmedic 的完整版订阅是可家庭共享的,这意味着如果你的家人也使用 iPhone 而且组成家庭组,那么你们只需要订阅一份 Alarmedic 完整版就能共享这个订阅。

为了让大家尝试 Alarmedic 高级版是否适合,我设置了 1 元试用一个月的新用户试用。如果 Alarmedic 对你有所帮助,持续订阅 Alarmedic 完整版可以支持我持续维护 Alarmedic 开发;当然,如果你觉得目前 Alarmedic 并不适合你,你也有随时退订的自由。:-)

还有更多……

关于 Alarmedic 的故事,这只是一个开篇。如果你有任何的意见或是建议,或者单纯想分享你使用 Alarmedic 的故事(会有吗?),欢迎你和我说说:hello(a)astrianzheng.com。

现在尝试 Alarmedic