做一个带连续打卡、每日签到和图表的习惯打卡应用
习惯打卡应用的成败取决于一个操作:每天的打卡。如果打卡要点不止一下,人们就会放弃。Anticode 可以构建一个个人习惯打卡应用,所有数据都保存在你自己的浏览器里,还能添加到手机主屏幕,就像它的 Ritualist 模板那样。下面介绍应用里该放什么、漏打卡的日子怎么处理,以及唯一一个真正的取舍。
习惯打卡应用需要的界面
- 今天
- 列出今天要做的每个习惯,配一个大大的点击区域来标记完成。撤销也只需点一下。这是应用打开时的第一个界面。
- 添加或编辑习惯
- 名称、频率(每天、每周固定几天,或每周若干次)、可选目标(如 20 分钟或 8 杯水),以及颜色。
- 历史
- 每个习惯一张日历格子,完成的日子填上颜色。比起任何数字,人们更喜欢看一整年的格子。
- 统计
- 当前连续天数、最长连续天数,以及过去 30 天的完成率,配一张简单的柱状图或折线图。
其他一切都是可选的。提醒、日记、心情评分和徽章都会增加负担;大多数人放弃打卡应用,是因为应用每天要求得太多,而不是太少。
连续打卡,但不带负罪感
连续天数在中断之前一直有激励作用,而漏掉一天就让 60 天归零,正是许多人彻底放弃的时刻。构建之前先定好规则:
- 用每周目标代替每日目标。 “每周跑步三次”不会因为一天休息而中断。
- 跳过日。 计划内的跳过(假期、生病)只暂停连续记录,而不是终止它。
- 宽限期。 允许在今天中午之前把昨天标为完成,照顾那些晚上忘记打卡的人。
- 同时展示长期视角。 “过去 30 天完成了 27 天”在漏掉一天后依然成立,连续天数却不行。
还要定好“今天”是什么意思。凌晨 1 点打卡的人,通常指的是昨天。设置一个可调整的一天起始时间(比如凌晨 4 点),就能悄悄解决这个问题。
从 Ritualist 开始,或从一句话开始
Anticode 的模板库里有 Ritualist,这是由 Anticode 的模型编写的习惯打卡应用。使用它会把整个应用复制到你的项目中,不调用模型,也不占用你的额度;之后你可以用修改请求重塑它:“加上每周目标”“把历史改成一年的格子”“完成的日子用绿色”。
如果想从头构建,就描述习惯、规则和感觉:“给写作者用的每日习惯打卡:写作字数作为数字目标,阅读是/否,早上不碰手机。先显示周视图。每周可以跳过一次而不中断连续记录。沉静、深色、大点击区域。”模型会把打卡应用写成一个在浏览器中运行的应用,图表用代码绘制,打卡界面专为单手操作设计。
你的数据保存在哪里
Anticode 应用运行在无网络的沙箱中,所以在这里构建的习惯打卡应用从不把你的打卡记录发送到任何服务器,包括 Anticode 的。习惯和历史保存在你使用的浏览器里,下次在同一台设备上打开应用时依然在。对于心理治疗练习或少喝酒这类私人习惯,这一点值得在欢迎界面上写明。
每个发布的网站还可以在手机和电脑上安装为应用,拥有自己的图标和离线备用页。安装到手机主屏幕后,打卡应用会像其他应用一样打开,这正是你想要的低门槛打卡。
取舍:不能同步
因为数据不离开设备,所以没有同步。在手机上打了卡,笔记本上什么也看不到。清除浏览器的网站数据或使用无痕窗口,历史记录就会丢失。有两个好习惯:只在一台设备上使用打卡应用,并要求加上导出和导入按钮(一个由你自己保存和加载的文件),这样你可以迁移历史或保留备份。
它做不到的事
- 没有推送提醒。 应用关闭时无法发送通知。用手机自带的提醒或日历来提醒自己。
- 没有监督伙伴。 与朋友或教练分享进度需要共享数据,而沙箱没有这个能力。
- 不读取健康数据。 它无法从手表或健康应用读取步数、睡眠或心率;这类数据都需要手动输入。
- 不是面向大量用户的产品。 如果你想向公众推出带账户和同步功能的习惯应用,Next.js 导出能给开发者一个带数据库和登录功能的起点。
常见问题
这个习惯打卡应用是私密的吗?
你的打卡记录留在你自己设备上的浏览器里。Anticode 只知道已发布的页面被访问过,而且统计时不使用 Cookie。
能和家人共享我的打卡应用吗?
你可以分享链接,每个人都会在自己的设备上得到一个空白的打卡应用。他们的数据和你的数据永远不会混在一起。
能记录数字,而不只是是或否吗?
能。要求加上带数字目标的习惯(分钟、页数、杯数),以及显示数值随时间变化的图表。