
“我知道我该做这件事但我的身体像被钉在椅子上一样就是无法启动。”这是我做这个项目以来从用户那里听到最多的一句话。这个项目叫i-have-adhd一开始只是我给自己写的一个工具后来我把它做成了一个完整的产品。它不是那种教你“战胜ADHD”的鸡汤软件而是一套承认一个事实的系统我们的大脑确实和大多数人不太一样所以需要的不是逼自己更努力而是一套更聪明的外部脚手架。如果你也是ADHD亲历者或者你是一个开发者、产品设计师想为这个群体做点东西这篇文章会给你一些来自一线实操的参考。我会把整个项目的背景、设计逻辑、功能拆解、技术选型还有开发过程中踩过的坑全部摊开来讲。尤其希望那些“知道该怎么做但就是做不到”的瞬间能被这篇文章里的某个设计思路接住。1. 从确诊到立项ADHD日常里那些“不是不努力”的时刻1.1 先聊聊执行功能ADHD不是“注意力不好”这么简单很多人对ADHD的第一印象是“上课走神、坐不住的小孩”但这个标签对成年ADHD来说太片面了。我自己和很多确诊的朋友交流后发现最折磨人的不是“注意力不集中”本身而是执行功能障碍——一种知道该做什么、甚至超级想做好但大脑就是无法下达“开始”指令的状态。这里有必要做一点负责任的科普ADHD在医学上的正式称呼是注意缺陷多动障碍它的核心机制和前额叶皮层的多巴胺调节功能有关通常会表现出三种亚型——注意力缺陷主导型、多动冲动主导型和混合型。国内如果怀疑自己有ADHD一定要去正规医院的精神科或者临床心理科做正式评估千万不要在网上对号入座。工具能帮忙但诊断这件事必须交给专业的人。说回执行功能它不像“聪明不聪明”那样单一而是一套组合技能工作记忆记得住当前目标和步骤、抑制控制管得住冲动、认知灵活性换得动思路、任务启动能力说开始就能开始、情绪调节能力挫败时不崩盘。ADHD人群往往不是某一项弱而是好几项同时掉线。这就解释了一个很反直觉的现象为什么有些ADHD在紧急截止日时能超常发挥反而是日常的普通任务怎么都启动不了——因为截止日的压力本身就是一种“外部刺激”能临时拉高多巴胺水平。很多“正常人”完全get不到的瞬间ADHD每天都在经历手机不小心划走了两小时后才想起来自己刚才要查什么任务太庞大一想到就脑仁发麻于是先去刷了整面墙的短视频明明早上计划得好好的一天结束发现关键事情一步没动。这些不是懒不是笨更不是“不够努力”而是用来执行计划的“操作系统”本身降频了。注意如果你或身边的人有类似困扰先别急着给工具装一堆功能可以去看看《分心不是我的错》《在火星上有人类学家》这类书了解体验再决定要不要就医。工具的意义是辅助生活永远替代不了专业医疗。1.2 为什么通用任务管理工具对ADHD人群不够用市面上的效率工具我基本全都试过待办清单、日历、番茄钟、项目管理看板……它们有一个共同的隐含假设用户具备正常的任务启动能力。待办清单只负责“记住”日历只负责“安排”项目管理工具只负责“跟踪”。但ADHD的困境恰恰发生在“记住之后、安排之后”——那个“从椅子上站起来去完成第一步”的瞬间。我以前的日常是这样的手机上装了三个待办应用每个里面都有几十条“待办”看列表只觉得一座大山压过来大脑一片空白然后继续去刷无聊的动态。问题不是我“记不住”而是我“没有能力从长长的列表里选出当前该做的那一件”更没能力“在没有反馈感的情况下持续推进那件事”。凌晨三点的灵感列下了十几个“明天一定做”的事项第二天中午睁开眼光看见长长的列表就想把手机扔墙上。还有一些工具试图通过“惩罚机制”来逼你执行连续打卡、红点提醒、排行榜。这些东西对ADHD短期有效但会很快失效。因为ADHD大脑对“长期后果不敏感”但对“即刻反馈”敏感——如果连续打卡断了三天那种挫败感足以让人彻底放弃整个应用。过重的负反馈机制对ADHD来说不是武器是锈刀。所以当我决定做点什么时最核心的洞察很简单不是帮ADHD“管理时间”而是帮ADHD“在来不及启动前用外力推他一把”。工具的角色不是管理者而是一个宽容的、即时的、理解你大脑运作方式的“生活脚手架”。2. “i-have-adhd”的产品逻辑不靠意志力靠外部脚手架2.1 核心设计原则把执行功能外包出去正式立项后我给自己定了一条铁律所有功能都必须通过一个问题检验——它能降低执行启动成本吗能减少决策负担吗能提供即时反馈吗如果三个答案都是“不能”这个功能不管看起来多酷都不做。这样定下来之后“i-have-adhd”的设计原则就非常清晰了原则一减少决策点。ADHD的苦更多是人被选择卡住。走到七层超市里面就不想买菜。所以应用里几乎所有核心流程都不超过两步打开就是“现在做点什么”只显示一个任务卡片没有侧边栏、没有分类筛选、没有复杂文件夹你唯一需要做的是决定今天的首要事项。原则二任务足够小才能叫任务。我要求用户在输入任务时必须把它拆成一个“动词具体对象”的动作。比如“整理周报”会被系统提示改成“打开文档写下本周三条成果”。这个动作要小到5分钟内能开始、15分钟内能完成一个片段才能从待办清单里“拎出来”而不引发大脑的抗拒。原则三即时反馈要做得特别足。每完成一个子任务都有非常明确的视觉和听觉反馈——不是那种“叮”一声就没了而是一个让人感到舒服的、能激发出轻微成就感的完成动效和记录。进度可视化要具体到“你已经在专注状态里连续坚持了8分钟”而不是空泛的“加油”。原则四允许波动不设计惩罚。应用里没有连续打卡、没有连续天数统计因为我知道ADHD的精力不是一条直线而是一条有波峰波谷的心电图。错过三天不是失败只是我这两天状态不好——重新打开它还是原来的样子数据都在没有任何警示红点。2.2 给真实用户画像这不是给“极客效率控”用的坦白讲“i-have-adhd”只针对一类人确诊ADHD或高度疑似ADHD、并且当前正处于被生活事务压得喘不过气、需要一个“最小可用”工具的人。他们可能是在读的大学生期末论文三周没推进一页那种可能是上班族每天最痛苦的不是工作强度而是明明只需要一个下午就能做完的汇报拖到截止前一天深夜也可能是自由职业者一连几天掉进信息刷流量的黑洞项目进度一拖再拖。这个产品的核心使用场景也被我收得很窄只有三个早上计划用一整天的时间轴把今日3-5个关键事项放进去然后只选一件作为“先做的第一件事”。工作中无法启动或频繁分心打开专注模式设置一个“至少做5分钟”的计时器期间系统会把所有干扰入口收起来。晚上复盘记录今天做了哪些事、能量曲线怎么样、有没有快崩溃的时刻而不是盯着“未完成”自责。这三个场景是真实的不是凭空想出来的。我和几个确诊ADHD的朋友做了最早的日记式调研发现90%的困扰都集中在这三个时间点。产品如果把场景收窄用户一开始就知道“什么时候该打开它”使用门槛自然就降低了。3. 核心功能逐个拆解从任务拆解到时间盲区补偿3.1 任务“先拆后做”把大目标变成“下一步行动”“任务拆解”这个词在效率圈已经被说烂了但真正为ADHD设计的拆解系统有一个特点它要把“什么时候开始”“第一步干什么”这种启动成本直接消解在输入阶段。我们做一个对比。普通待办应用里用户会写下“完成季度报告”。在“i-have-adhd”里当用户输入这类模糊任务时系统会弹出一个轻量的拆解输入框建议他写出“最开始的15分钟里能干完的小动作”。如果用户不知道怎么拆系统给一组模板引导“写季度报告” → 打开电脑创建一个新文档命名为《Q3报告》“给客户回电话” → 翻出客户名片把电话号码微信发给自己“打扫房间” → 把卧室桌面上的杂物收进收纳盒只收拾桌面不干别的注意这些拆解动作不是“临时起意”而是一个被刻意设计过的规则任务必须包含一个非常明确的最小物理动作。为什么要这样因为ADHD大脑对“想象整个流程”的能耗特别敏感一旦启动成本高过“打开手机刷短视频”的成本大脑就背叛你。而当“打开电脑新建文档”这个动作足够小、足够具体时启动它几乎不需要动用什么意志力。另一个特别关键的设计是主任务下面只显示一个“当前下一步”按钮而不是把所有子任务全部列出来。列表越长选择越难。一次只让用户面对一个行动把那个行动做完再翻出下一步。3.2 视觉化时间解决“时间盲区”ADHD患者经常有时间感知障碍学术圈开玩笑叫“时间盲区”对已经过去了多久、接下来还剩多久主观估计非常不稳定。我经常体验到的状态是觉得才刷了一会儿手机抬起头已经过去四个小时觉得5分钟快到了实际上才过了1分半。所以“i-have-adhd”里的计时器完全不是那种“25分钟番茄钟”的固定套路而是一个可自定义、视觉化、可感知流逝感的时间条。时间条横在屏幕上方会像沙漏一样慢慢消耗。这个设计刻意让用户“看得见”时间流逝而不是在后台默默计时。我发现对ADHD来说一个慢慢变短的光条比屏幕角落的数字时钟有威力得多。因为数字需要大脑去处理“11:47意味着中午还没到我还可以再摸一会鱼”而光条直接调动了视觉直觉——还剩一截子很快要没了。默认的专注时长不是25分钟而是5分钟起步。我管它叫“最小启动单元”——用户只要答应自己“做5分钟就行”大脑的抗逆性就会小很多。一旦熬过那5分钟很多人自然就进入了状态系统会适时询问“要不要再来10分钟”而不是强制继续。这种“可中止”的错觉实际上大大提高了坚持率。3.3 干扰管理当大脑总想“换换口味”ADHD一个核心特征是持续注意力和抑制控制能力偏弱但不意味着完全无法专注而是专注开关不稳定——对感兴趣的事情可以超聚焦几小时对无聊的任务却连三分钟都撑不住。所以“随手拿起手机看看有没有新消息”这个动作本质上是大脑在寻求新鲜感刺激来维持唤醒水平。我不能消灭这个需求也不应该去“教育”用户。所以我设计了一个“冲动记录本”当用户正在做正事大脑却突然冒出“好想看下群聊”“好想搜一下那款好物的测评”这种冲动时不需要强忍着只需要轻点一下浮动按钮把那个念头“丢进”记录本然后系统会提示“记下来了你现在可以继续做当前任务那个冲动可以等到专注时段结束后再处理。”这个机制很反直觉但极其有效冲动本身是大脑给的一个“新鲜感提案”你不用拒绝提案只需要把它从“立刻执行”改成“稍后处理”。记录下来的好处是大脑知道“我没忘了它”就不需要反复惦记了。很多用户反馈说光是这个功能一天能把中断率降一半。3.4 情绪与能量追踪了解自己的“电量曲线”ADHD伴随情绪调节困难、挫败耐受度低、易怒易崩几乎是公认的。很多用户一天里面会在某个固定时段突然情绪崩盘——我一般发生在下午三点左右精力跌停头脑发闷干什么都没劲。如果没有数据你只会觉得自己“又失控了”有了数据你才会发现“每天下午三点都会这样那我提前做些安排”。所以我做了一个非常轻的“能量自评”功能不搞一堆复杂的图表。每天三次早上、午后、晚上各弹出一条提醒让用户用一个滑块表示自己此刻“充电量”有多少最后生成一条一周能量曲线再和睡眠、运动、饮食这些标签做相关提示。它可以帮你发现“原来我晚上九点状态反而最好”而不是拼命逼自己早上九点做那种违背“生理节律”的傻事。我自己用下来最大的收益是学会了接纳而不是自责。能量低的时候看时间轴上的“未完成项”深切感受到那不是我“太懒”只是我的“电池电量”真的只剩20%了这时候应该去休息充电而不是责怪自己“为什么不能像正常人一样坚持”。4. 技术选型与落地实现一个轻量但完整的系统4.1 技术栈为什么是PWA React IndexedDB确定要做的时候摆在我面前的有三条路原生iOS应用、跨平台移动框架、Web/PWA。我选了第三条理由完全基于目标用户的真实场景PWA可以把安装门槛归零。对ADHD来说任何“先把App Store打开搜索再点安装等进度条”的流程都是在耗损极其宝贵的行动力。PWA则点开网页链接就能用生成桌面快捷方式也只需要一步——安卓端会自动提示“添加到主屏幕”iOS端Safari里选一下“添加到主屏”即可。这个“再少一步”的体验真的非常关键。技术栈的另一个考虑是离线优先。ADHD用户经常是突然处于一个想干活的“状态窗口期”如果这时候发现“啊没网加载不出来”窗口期瞬间就关闭了。所以核心数据必须全部存在本地浏览器里。我用IndexedDB做本地数据持久化配合Service Worker做资源缓存在网络不稳定时也能秒开秒用。就算用户换设备只要导出一次JSON备份新设备上导入就行完全不需要登录、注册、手机验证码这些烦人的东西。前端用React是因为组件模型非常适合做“单屏单操作”的界面而且生态成熟。我另一个小的替代方案是Vue但在任务卡片拖拽、计时器状态更新这类高频交互上React Hooks的模式让我能快速测试不同交互方案开发效率确实更高。4.2 数据模型设计任务、时间块、能量记录、冲动记录所有核心数据我都围绕四个实体来组织tasks任务、focus_sessions专注时间块、energy_logs能量记录、urge_logs冲动记录。从任务表的设计可以看出这套模型和普通待办的差异字段类型说明idtext主键uuidtitletext任务标题用户更习惯用“动词对象”格式next_actiontext当前下一步行动即最小的一个物理动作project_idtext所属项目可空避免太重statusenumtodo / doing / done / archivedenergy_requiredint这个任务预计需要的“电量”1-5和能量曲线联动created_atdatetime创建时间completed_atdatetime完成时间关于“能量消耗预估值”这个字段是后来用户调研加上去的。很多ADHD用户早晨能量最高下午跌到谷底。如果下午看到一堆“高能量需求”的任务会直接触发逃避。所以界面会显示现在你的电量是40%这个任务预计需要消耗电量3可能不太适合现在做要不要先选一个更轻的这就像给大脑装上了一个“提醒充电”的雷达。专注时间块表 focus_sessions 则记录了每次专注的时长、开始时间、实际完成时长、是否满足“最小启动单元”要求。这些数据写入后会和tasks表做关联生成一个“什么时段启动任务成功率最高”的统计项。冲动记录urge_logs则是直接通过浮动按钮快速写入只需要记录时间点和冲动描述不要求用户做任何反思。4.3 状态管理的取舍放弃全局状态库在这种单屏单任务的产品形态下引入Redux这类全局状态库反而会带来精神负担编写大量的action、reducer对业务代码的抽象要求也更高。而ADHD用户产品一个很重要的要求是“打开就反应不要有任何卡顿”——全局状态如果处理不好组件更新和内存占用反而会影响首屏体验。最终我选了Zustand做了几个小的全局状态片段当前任务、当前专注状态、当前日期其余全部放在组件内部的局部state里。这样做的理由很简单数据异步写入IndexedDB的时机是一次的“保存点”而不是每次刷新都同步。这样即使页面被用户随手关掉当前任务状态依然能从本地恢复不会出现“体验断点”——这对注意力本来就不稳定的用户来说是保命的设定。5. 开发过程中踩过的坑第一版太复杂第二版才学会做减法5.1 第一个版本为什么彻底失败了我必须承认i-have-adhd的v1版本是个灾难。那会儿我觉得要给ADHD用户提供“全生命周期管理”于是做了习惯打卡、日历视图、数据大屏、月报统计、甚至还有社交排行榜。结果邀请12个测试用户试用了两星期只有2个人在第三天之后还打开过应用。有个用户给了一句非常扎心的评价“打开这个App我感觉像走进了一间堆满各种工具的仓库到处都是按钮但我更不知道怎么开工了。”原因其实很明显了我犯了和所有通用效率工具一样的错误——以为功能多有帮助可对ADHD来说每个额外功能都需要额外的决策和行动成本。应用本身就是一座压力山更别提预期中的助益了。这次失败让我痛定思痛砍掉了80%的功能表面上是功能少了但实际上是重新定义了产品角色不是“全能管家”而是一个“只在你需要时伸手的同伴”。5.2 ADHD用户会给产品测试带来哪些独特的启发连续测试了几轮之后我发现ADHD用户的行为模式和非ADHD用户有非常大的差异这直接影响了我产品设计的底层决策。用户会“自动消失”然后再回来而且经常是隔两三周才回来一趟。这不是流失而是他们生活状态的正常波动。所以产品必须自动保存所有状态并且不要出现“最近7天连续打卡”“你的任务重点已过期”这类积压提醒。用户回来以后界面应该和上次离开时保持一致让他直接衔接不用“重新熟悉一遍”。用户会误触而且很容易点错按钮。普通用户误触后会看一眼觉得无所谓ADHD用户误触后的心理冲击会更大觉得“完了完了我把刚写的东西弄丢了”很容易因此整个放弃工具。所以所有删除操作都要先进入“暂存区”暂存区保留7天后才真正清除而且界面上永远有一个“一键还原”的按钮。用户对“清零”有执念。很多ADHD用户对未完成的通知有很强的焦虑感所以产品提供“一键归档所有已完成任务”的按钮。这个按钮在普通待办应用里也常见但在这里它的意义不太一样它不是整理而是“心理卸载”。按下去的一瞬间大脑会感觉“所有事都有结果了”能极大地缓解焦虑。5.3 一个真实案例关掉所有动画之后留存率反而提升了v1版本里为了显得精致我加了很多交互动画按钮缩放、卡片滑动、完成任务的粒子爆炸效果。某次版本更新中我因为系统异常临时关掉了所有动画只保留最简单的透明度切换。本来想着用户又该抱怨“变丑了”了结果那个版本的使用时长和任务完成率居然整体提升了不少。我仔细翻看了用户访谈记录后发现一个最简单粗暴的原因对ADHD来说任何动画都是视觉噪音会抢占注意力。缩放动画会让人不自觉地盯着按钮看卡片滑动会让人手痒想再去切一个任务看。我要做的是让内容定在那里不要搞炫技把注意力还给用户。我现在做动效规范时只用一条原则凡是不承载功能信息的动效一律不做。如果你要做辅助工具这条经验也许能帮你省下很多不该花的力气。6. 一些真实的数据与后续规划6.1 我记录了用户反馈的“黄金开关”哪些功能真正被高频使用迭代到这里我已经跟踪了快一年的使用数据也跟数十个用户深入聊过。在初期筛选产品功能时我留了一个很小的功能叫“只问两次”意思是当你设置了某个重要任务系统在开始后10分钟、25分钟各提醒一次“你现在还在当前任务里吗需要换任务或休息一下吗”如果两次你都点了“还在做”系统就会发一个确认弹窗“你已连续专注25分钟可以休息也能继续。”原本我以为这个功能会是辅助却意外成为留存率最高的功能之一。因为它正中了ADHD人群对“中断取舍”的需求他们不是怕被打断而是怕被自己无意识地打断而不自知。这种温和而确定的“回拉”提示帮助用户把飘走的注意力拽回来而又没有压迫感。6.2 下一步做什么可穿戴数据接入与AI任务拆解目前版本把核心数据全部存本地但后续我会考虑增加一个“可选”的云同步主要是为了用户换设备时不丢数据同步到自定义的WebDAV/网盘即可不强制绑定任何账户体系。另一个我在试验的方向是“基于历史数据的AI提醒”。举个具体的例子这个用户已经连续几天在下午三点进入低能量状态同时界面上的“待办任务”里又有一个高能量消耗任务。这时系统不是冷冰冰地弹出“建议休息”而是更轻巧地说“从你的历史记录看下午3点启动任务的成功率比较低要不要考虑把这件事移到明天上午”AI在这里做的事情不是一个“语音助手”而是一个“模式识别后给建议的人”而且始终用它自己观察到的方法行事而不是硬套世上对所有人都通用的“时间管理法”。6.3 关于开源为什么后面打算把代码放出来做这个项目的过程中我强烈感受到一个渴望很多ADHD用户其实非常渴望技术上的帮助但市面上专门围绕这个群体的产品少得可怜。所以我打算把项目的核心部分开源。这也不是什么宏大的宣言主要原因是个体开发者对需求的理解总是有边界的只有让更多亲历者和开发者一起贡献代码才能让这个工具真正贴近ADHD人群的使用习惯。开源之后我也会继续维护同时接受用户提交的PR。如果你想加入不要求你写多复杂的代码哪怕你只是在自己的使用中发现了某个交互会让大脑卡住也欢迎提交一个issue。结尾这个项目给我最多的不是技术上的回报做i-have-adhd之前我一直觉得“自律”是一种道德品质。做项目这两年我最大的改变是不再用“失败”和“不够好”来责怪自己。产品可以迭代方法可以优化但一个人的神经系统运转方式不该被轻易否定。我不能说一个工具就能“治好”ADHD也坚决反对它替代专业诊断和心理治疗。但如果你和我一样面对那些别人轻轻松松能做到的小事特别无助我希望这个项目至少能传达一种态度你不需要先变得“正常”再开始生活你只需要找到适合自己的方式而方式错了换一种就好。如果你也打算为ADHD群体做点什么或者正在犹豫自己是否需要这类工具我在实际写代码和与用户聊天中得到的一个体会是多观察自己真正崩溃的时刻少研究概念。功能越贴近你真实的困境越能落地。后面陆续开放更多细节时我会继续在文章里同步这套设计思路的实际效果欢迎一起交流。