每周TODO——个人向待办管理工具
独立开发三件套 - 记账、日记、TodoList。没能免俗,我也做了个TODO工具😂
why
简单来说,是因为我真的不喜欢记待办(更不不喜欢记账和写日记正经人谁写日记啊)。以前试过用记事本📒、便签📝记录,也试过滴答清单、Worktile等专业工具,但总是用一段时间觉得不爽就没能坚持下去了。
比如:
越用越烦,每次打开前都要做好心理准备……我老婆还要更自律一些
以及
不知道有没有人懂这种心理——有时候不做计划的时候还能偶尔想起来做点自律的事情,但是一旦下定决心做了计划,反而产生了拖延情绪彻底躺平,还不如没做计划之前的表现🤣
但是最近工作内容异常繁杂,临时需求频发,靠记忆属实不太现实。这次我先用了一周的飞书文档,又用了一周的飞书任务管理,果然还是不顺手,最终决定为自己做一个“恰到好处”的Todo工具。
分析一下对我来说的“恰到好处”
需要的
- 因为现在工作一般是以周为单位开展,而且需要写周报,所以我的任务管理工具也应该以周为时间单位
- 喜欢类似Jira面板那样拖拽的方式流转任务状态,拖动的时候总有种莫名的爽感(
爱撕机膜人) - 新一周开始自动同步上周的未完成任务,即使是已完成的任务如果太多了看上去一样会产生压力感,Jira那种手动创建Sprint的操作也觉得不够爽
- 需要支持Markdown语法,码农标配的属于是
- 内容部分也可以在卡片上显示,如果是链接的话可以直接点击打开,不喜欢每次想看一个任务关联的网页还需要点开详情去找
- 任务可以设置优先级,个人偏好“emergency-high-normal-low”四个等级够用了
- 支持标题和全文搜索,这个还是用得到的
- 符合个人的审美,最好是和deepin的风格一致,看着顺眼才能勾起使用的兴趣
不需要的
- 复杂的设置和自定义选项,报表、甘特图等高级功能:我只需要一个面板足矣。
- 云同步、多人协作:这就是方便我自己工作时候用的,下了班还看什么看……协作更是无稽之谈,是嫌管我自己的人还不够多咋地?
- Backlog:这玩意看着就烦……在好几家公司到团队例行过Jira的时候都是先打开Backlog,负责人一脸拧巴地一条条把那些看过无数次的任务瞟过去,然后深沉一下说“嗯~感觉这次也没什么能做的,我们过新增的需求吧”——对于优先级比“low”还低的任务,我宁愿删了它🔪
- 支持贴图、传视频等:その必要はない。
- 支持设置DeadLine:その必要はない。
- 支持提醒通知:その必要はない。
- 支持XXXXXX:その必要はない!!!(
剑戟怒涛警告⚠️)
如上所述,简单画了下设计草稿:
代码实现
出于解决工作困扰的目的而写的小工具,如果花费太多精力属实是本末倒置,于是原计划一个通宵搞定(最终花了一个半通宵的时间
,挑战失败),所以使用了大量之前项目的代码
状态管理使用Riverpod,个人感觉这是目前最符合Flutter思想且开发效率最高的方案了,唯一的缺憾是目前还不支持DevTools的extension:Add a DevTools extension for riverpod
使用window_manager限制APP最小窗口尺寸为1280x800
使用url_launcher用于打开链接
使用flutter_shake_animated实现任务卡片抖动动画
使用scrollable_positioned_list实现转跳至指定任务卡片