网友作品 #000245 · 提交于 2026/10/10
MYN任务管理系统:手机电脑双端云端同步





1 / 5
作品简介
MYN 任务管理系统把《掌控你的工作!》中的 MYN(Master Your Now)时间管理方法论完整落成软件,由三部分组成:Android 手机 APP(Kotlin + Jetpack Compose)、Windows/macOS/Linux 桌面应用(Python + NiceGUI)以及腾讯云 CloudBase 云函数 + NoSQL 后端。
手机端与桌面端共享同一个云端数据库,任务数据实时互通;两端都直连自己部署的 CloudBase 环境,换手机、多设备只要填同一份接口地址和令牌即可,任务数据不经过任何第三方服务,完全自持。
核心亮点
- 方法论即软件:所有任务进一个列表,靠四大分区驱动轻重缓急——目前紧急/目前机会/推迟回顾/视线外,分区规则两端同一套纯函数并带完整单元测试
- FRESH 排序:「目前机会」分区中最新创建的任务排最前,最紧急的事往往就是刚记录的那件事
- 战略性推迟:暂时做不了的任务推迟到下周一/两周/三周/四周后,移出视线减少心理负担,到期自动回归「推迟回顾」,周一统一处理
- 双维度评估:需时三档(30/90/90+ 分钟)+ 内在重要性 II(0~3),区分“工作紧急”与“人生重要”,工作量统计一眼看清未来一周是否超载
- AI 结构化录入:口述一段话,云端大模型拆解成标题、优先级、需时、日期齐全的任务,自动复用你已有的项目与标签习惯,一段话含多件事自动拆成多条候选
- 乐观更新:完成/新建/修改/推迟立即本地生效、无需等待云端往返,云端失败自动回滚;手机端 Room 离线缓存,桌面端每 5 分钟自动同步
- 提醒体系:手机端任务写入 Android 系统日历(APP 被杀也能提醒)+ 闹钟级循环响铃、支持贪睡;桌面端到点提示音 + 置顶对话框
- 番茄钟与子任务:25/40/60 分钟专注计时落账进报表;子任务链顺序锁逐个推进,全部完成父任务自动完结;重复任务(每天/每周/每月)完成时云端原子生成下一次
技术与工具
- 手机端:Kotlin 2.0 + Jetpack Compose + Room,网络层用原生 HttpURLConnection 零第三方依赖,54 个单元/界面测试
- 桌面端:Python 3.12 + NiceGUI Native,core 纯业务层不依赖任何 UI 框架可独立测试,pytest + ruff + mypy,PyInstaller 一键三平台打包
- 云端:腾讯云 CloudBase 云函数(Node.js 18)+ NoSQL,令牌鉴权,AI 解析走 CloudBase 托管模型(DeepSeek 等)免外部 Key
- 协议:两端对称实现同一套 POST 单端点 JSON 协议,编解码独立可测
- 开发方式:程序员水平,借助 AI 编程类工具与国内低价 Flash 模型完成
适用场景
- 想实践 MYN 时间管理方法论的人:开箱即用的完整实现,手机 + 电脑双端联动
- 想要数据自持的人:任务数据存在自己的 CloudBase 环境里,不经过任何第三方
- 想学习相关技术的人:涵盖 Kotlin + Compose 现代安卓开发、Python + NiceGUI 桌面开发、CloudBase Serverless 后端、多端共享协议与离线优先架构等实践样本
原始提交内容(点开查看,可复制全文去问 AI)
MYN 任务管理系统
一套把 MYN(Master Your Now)时间管理方法论完整落地的跨平台任务管理系统: Android 手机端 + 桌面端共享同一个云端数据库,任务数据实时互通,数据完全自持。
项目简介
本项目是迈克尔·林恩伯格(Michael Linenberger)《掌控你的工作!》中 MYN 任务管理法的软件实现,由三部分组成:
| 组成 | 位置 | 形态 | 技术栈 |
|---|---|---|---|
| 手机端 | myn-app/ |
Android APP | Kotlin + Jetpack Compose + Room |
| 桌面端 | myn-desktop/ |
Windows / macOS / Linux 桌面应用 | Python 3.12 + NiceGUI Native |
| 云端 | myn-app/cloudbase-functions/ |
腾讯云 CloudBase 云函数 + NoSQL | Node.js 18 + @cloudbase/node-sdk |
两个客户端都直连你自己部署的 CloudBase 环境:换手机、多设备只要填同一份接口地址和令牌即可,任务数据不经过任何第三方服务,完全自持。
MYN 方法论在本项目中的落地
如果你不了解 MYN,这一节就是入门导读;如果你了解 MYN,可以对照看软件如何还原方法论。
1. 单一扁平任务列表 + 分区(不做项目/清单层级)
MYN 的核心主张:所有任务进一个列表,靠「分区」驱动轻重缓急,而不是靠清单归类。新建任务时零选择、直接输主题,降低记录摩擦。
| 分区 | 判定规则(优先级驱动) | 含义 |
|---|---|---|
| 目前紧急 | 高优先级 且 开始日期已到 | 今天必须完成 |
| 目前机会 | 中优先级(或未设置) 且 已到 | 7 天内计划做 |
| 推迟回顾 | 低优先级 且 已到 | 周一统一处理 |
| 视线外 | 未到期,或低优先级未排期 | 战略性推迟的任务 |
2. FRESH 排序
「目前机会」分区中,最新创建的任务排最前(Fresh = 新鲜优先)。这是 MYN 与其他 GTD 类工具最大的差异之一——最紧急的事往往是刚记录的那件事。
3. 战略性推迟(Strategic Defer)
把暂时做不了的任务推迟到下周一 / 两周 / 三周 / 四周后,移出当前视线,减少心理负担;到期自动回归「推迟回顾」,周一处理四选一:纳入 / 再推迟 / 立即执行 / 删除。
4. 需时与内在重要性(II)双维度评估
- 需时(工作量):三档必选——低 30 分钟 · 中 90 分钟 · 高 >90 分钟
- 内在重要性 II:0 一般 ~ 3 很重要,区分「工作紧急」与「人生重要」(MYN 的核心洞察:二者不是一回事)
「所有任务」视图汇总:本周任务数、今后 7 天任务数、按需时三档合计的预计工作量——一眼看清未来一周是否超载。
5. 纪律提醒
紧急 5 条 / 机会 20 条的分区纪律超限时,界面给出提醒,防止分区退化成「什么都在紧急里」。
核心功能
两端共有
- 分区视图:目前紧急 / 目前机会 / 推迟回顾 / 视线外,两端规则完全一致(同一套纯函数规则,分别有完整单元测试)
- 所有任务 / 周回顾:全量清单 + 工作量评估统计卡;本周完成任务清单与投入统计
- 任务操作:完成 / 战略性推迟(下周一、两周/三周/四周后)/ 优先级与开始日期解耦设置 / 改开始与截止日期 / 需时与重要性 / 备注 / 项目与标签 / 重复规则(每天·每周·每月,完成时云端原子生成下一次) / 恢复待办
- 子任务链:详情内拆解子任务(完成 / 当前 / 序号等待),顺序锁逐个推进,全部完成后父任务自动完结;卡片显示「子任务 done/total」进度
- AI 结构化录入:口述一段话(或截图),云端大模型拆解成任务(标题 / 优先级 / 需时 / 重要性 / 开始日期 / 详细信息 / 自动复用你的项目与标签习惯),回填表单核对后保存;一段话含多件事自动拆成多条候选勾选创建
- 逐一处理模式:分区任务全屏逐个处理,完成后自动进入下一项,重要性与需时内联单选(选中即存)
- 到点提醒:定时任务开始前 5 分钟 / 全天任务当天 8:55 响铃提醒,支持贪睡(5~60 分钟多档)
- 番茄钟专注:从任务启动 25/40/60 分钟专注,暂停/继续秒表式控制;专注记录落账进报表(今日/本周/累计、近 7 天柱状图、可跳回原任务)
- 报表:任务概况卡(进行中/已完成/视线外,含优先级/重要性/需时分布)+ 专注统计
- 搜索:标题与备注即时匹配
- 乐观更新:所有任务操作(完成 / 新建 / 修改 / 推迟 / 删除)立即生效于本地、无需等待云端往返——手机端先写 Room 缓存(界面经 Flow 即时刷新,新建用临时 id,云端返回真 id 后替换),桌面端直接改内存状态;云端推送失败自动回滚还原并提示
- 浅色 / 深色主题
手机端独有
- 系统日历提醒:任务可写入 Android 系统日历(独立本地日历「MYN 任务」),由系统触发提醒——APP 被杀、后台被清理都不影响;任务修改/完成/删除时日历事件自动同步
- 闹钟级应用内提醒:AlarmManager 精确闹钟 + FLAG_INSISTENT 循环响铃,重启/升级后自动重排
- 系统分享接收:在任意 App 选中文字「分享」即可快速建任务
- 语音口述识别(配合输入法语音 AI 识别按钮)
桌面端独有
- 列表悬停快捷操作:优先级圆钮快切(高红/中蓝/低灰)、设为今天、推迟到下周一、完成、详情、删除
- 硬截止徽章:有截止日期的任务标题旁常驻红旗「Due」
- 每 5 分钟自动同步:推送期间自动避让,避免与乐观更新互相干扰
技术架构
总体架构
手机端 myn-app 桌面端 myn-desktop
Kotlin + Compose Python + NiceGUI
Room 仅离线缓存 JSON 本机缓存
HTTPS POST(同一协议)
CloudBase 云函数 myn-api(Node.js 18)
事件函数 + HTTP 访问服务网关(集成响应)
令牌鉴权(token in body)
CRUD / 全量同步 / 重复任务原子生成
AI 结构化解析(文本 + 视觉双通道)
CloudBase NoSQL 集合 myn_tasks
(唯一事实来源,字段全部结构化存储)
通信协议(两端一致)
POST 单端点 JSON 协议,自定编解码、两端对称实现、协议层单独测试:
请求:{token, action:"sync" | "createTask" | "updateTask" | "completeTask" | "deleteTask" | "aiParse" | "aiParseImage", ...}
响应:{code:0, data:{...}} 失败统一 {code:非0, message}(401=令牌无效)
手机端技术栈(myn-app)
| 项 | 选型 | 说明 |
|---|---|---|
| 语言/UI | Kotlin 2.0 + Jetpack Compose(BOM 2024.06)+ Material3 | 单 Activity 声明式 UI |
| 网络层 | HttpURLConnection 零第三方依赖 | 不引 OkHttp/Retrofit,可审计、包体小 |
| 本地存储 | Room 2.6.1(KSP) | 仅做离线缓存,CloudBase 是唯一事实来源 |
| 提醒 | AlarmManager + USE_EXACT_ALARM | 精确闹钟,BootReceiver 开机重排 |
| 分层 | myn/ 纯域逻辑 · data/ 数据层 · ui/ 界面层 |
规则全部纯函数,20 个单元测试守护 |
| 测试 | JUnit4 + Robolectric + Compose UI Test | 54 个单元/界面测试全绿 |
| 构建 | AGP 8.5 / Gradle Version Catalog / build.py 一键打包 |
版本号集中单一来源管理 |
桌面端技术栈(myn-desktop)
| 项 | 选型 | 说明 |
|---|---|---|
| 语言 | Python 3.12(uv 管理锁定依赖) | uv sync --locked 一键还原环境 |
| UI | NiceGUI 3.16 Native(Quasar 组件) | 同一份代码可跑桌面窗口/浏览器双模式 |
| 业务分层 | core/ 纯业务层(不 import NiceGUI)+ ui/ 界面层 |
core 可独立测试 |
| 网络 | httpx + asyncio.to_thread |
回调统一 try/except + 日志 + 通知,绝不静默失败 |
| 持久化 | 本机 JSON(设置 + 任务缓存 + 番茄钟状态) | 进程重启可恢复,令牌不进代码/仓库/打包产物 |
| 打包 | PyInstaller(scripts/build.py 零参数三平台打包) |
Windows 双击 exe 即用 |
| 质量 | pytest + ruff + mypy | 规则/协议/仓库/设置/番茄钟/提醒全覆盖 |
云端(CloudBase 云函数 myn-api)
- 形态:Node.js 18 事件函数 + HTTP 访问服务网关路由(集成响应),凭证自动注入
- AI 双通道:
aiParse(口述文本) CloudBase 托管模型(DeepSeek 等,免外部 Key,计费走 Token 资源点)aiParseImage(截图) 支持直连 DeepSeek(自备 Key,存云函数环境变量)- 提示词注入北京日期 + 用户项目/标签使用频次上下文,AI 优先复用你已有的分类习惯,不自创项目名
- 安全:访问令牌 / AI Key 只存云函数环境变量,函数不回显任何 event/env 内容
- 部署:
cloudbase-functions/内含cloudbaserc.example.json模板与部署说明,首次 sync 自动建集合
快速体验
第 0 步:部署云端(一次性)
按 myn-app/cloudbase-functions/部署说明.md(原资料链接未迁移) 操作:
- 注册腾讯云 CloudBase,创建环境(有免费额度,个人使用成本极低)
- 用
cloudbaserc.example.json复制出你的cloudbaserc.json,填入环境 ID 与访问令牌 - 部署云函数并配置 HTTP 访问路径,记下接口地址
想先跑起来再研究?也可以直接在云函数控制台粘贴
functions/myn-api/index.js创建函数。
第 1 步:手机端
cd myn-app
python build.py # 一键构建 APK(本地有 JDK17 + Android SDK 即可)
安装 APK 后首次启动进入「连接你的 MYN 云端」:填接口地址 + 访问令牌 测试连接 保存,即自动同步全部任务。配置持久化在设备上,重装保留。
第 2 步:桌面端
方式一(直接用打包产物):双击 myn_desktop.exe(Windows),填与手机端相同的接口地址和令牌即可。
方式二(源码运行,需先装 uv):
cd myn-desktop
uv sync --locked
uv run myn # 桌面窗口模式
$env:APP_NATIVE="0"; uv run myn # 浏览器模式调试
第 3 步:开始使用
- 新建任务:直接输入主题,或用口令
【任务 高 30 2】撰写周报(优先级/需时/II 自动识别),或点「AI 识别」口述一段话 - 今天必须做的设为「目前紧急」;7 天内的设「目前机会」;暂时不做的「战略性推迟」
- 每天看「目前紧急」,每周一看「推迟回顾」处理积压,每周五过一遍「周回顾」
两端功能对照
| 功能 | 手机端 | 桌面端 |
|---|---|---|
| 四大分区视图 + FRESH 排序 | ||
| 所有任务 / 工作量评估 / 周回顾 | ||
| 战略性推迟 / 重复规则 / 子任务链 | ||
| AI 结构化录入(文本) | 语音口述 | 键入口述 |
| AI 截图识别(协议已实现) | — | 协议就绪,入口待接 |
| 系统日历提醒 | — | |
| 应用内到点提醒 + 贪睡 | 闹钟级循环响铃 | 提示音 + 置顶对话框 |
| 番茄钟 + 专注报表 | ||
| 逐一处理模式 | ||
| 列表悬停快捷操作 / Due 徽章 | 滑动操作 | 悬停操作 |
| 乐观更新 / 自动同步 | 每 5 分钟 | |
| 浅色/深色主题 |
工程亮点(给想学习源码的你)
- 方法论即代码:MYN 分区/FRESH/推迟规则全部是纯函数(MynRules.kt(附件请在多维表格原记录中获取) / rules.py(附件请在多维表格原记录中获取)),两端各带完整单元测试——改规则不会悄悄坏
- 零第三方网络依赖的 Android 端:网络层用原生 HttpURLConnection + 自定 REST 协议(CloudBaseProtocol.kt(附件请在多维表格原记录中获取)),协议编解码独立可测
- 严格分层的桌面端:
core/不依赖任何 UI 框架,业务逻辑可独立 pytest;界面层约定(可点击区域用ui.button、后台通知走统一入口等)沉淀在 myn-desktop/README.md(原资料链接未迁移) - 乐观更新与离线优先:两端任务操作均本地立即生效、云端失败自动回滚(手机端 MynRepository.kt(附件请在多维表格原记录中获取) 的
optimistic骨架 / 桌面端 repository 同款机制);手机端 Room 缓存 + 断网横幅,桌面端本机 JSON 缓存 - 测试文化:手机端 54 个单元/界面测试(Robolectric 起 JVM 真界面);桌面端 pytest + ruff + mypy 三件套;云函数 11 项真实联调用例
- 密钥治理:令牌/AI Key 全部走环境变量与本机存储,不进代码、不进仓库、不进打包产物
- 一键工具链:手机端
build.py一键出 APK;桌面端scripts/build.py零参数三平台打包
目录速览
MYN任务查看/
myn-app/ # Android 手机端
app/src/main/java/com/myn/taskview/
myn/ # MYN 域逻辑(纯 Kotlin):分区/FRESH/推迟/口令解析
data/ # 协议/云客户端/Room 缓存/提醒/番茄钟/日历同步
ui 相关 # AppRoot / 五视图 / 处理模式 / 报表 / 设置
cloudbase-functions/ # 云函数 myn-api 源码 + 部署说明
build.py # 一键构建脚本
myn-desktop/ # 桌面端
src/myn_desktop/
core/ # 纯业务层(模型/规则/协议/API/仓库/番茄钟/提醒)
ui/ # NiceGUI 界面层(主装配/任务卡/详情抽屉/处理模式)
scripts/build.py # 零参数三平台打包
tests/ # pytest 单元测试
适合谁
- 想实践 MYN 方法论的人:这是一个开箱即用的完整实现,手机 + 电脑双端联动
- 想要数据自持的人:任务数据存在自己的 CloudBase 环境里,不经过任何第三方
- 想学习这些技术的人:
- Kotlin + Compose 的现代化 Android 开发(含 Room、AlarmManager、Robolectric 测试)
- Python + NiceGUI 的快速桌面应用开发(含 PyInstaller 三平台打包)
- 腾讯云 CloudBase 云函数 + NoSQL 的 Serverless 后端(含 AI 大模型集成)
- 多端共享协议设计、离线优先架构、纯函数业务规则与测试实践
已知边界
- 云函数 sync 为分页拉全(100 条/页),适合个人使用量级;对外分发建议绑定自定义域名
- 手机端系统日历事件本体存于各设备本机(跨设备仅同步标志)
- 桌面端 NiceGUI 锁定 3.16.x(3.17 存在动态元素事件监听回归)
许可
学习交流用途。图标来自 Tabler Icons 风格图标库(桌面端 THIRD_PARTY_NOTICES.txt 含第三方声明)。