惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 最新话题
A
Arctic Wolf
I
Intezer
V
Vulnerabilities – Threatpost
C
Cisco Blogs
MyScale Blog
MyScale Blog
NISL@THU
NISL@THU
Y
Y Combinator Blog
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
Recorded Future
Recorded Future
云风的 BLOG
云风的 BLOG
S
SegmentFault 最新的问题
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
博客园 - 聂微东
博客园 - 叶小钗
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Recent Announcements
Recent Announcements
C
Cyber Attacks, Cyber Crime and Cyber Security
Latest news
Latest news
Simon Willison's Weblog
Simon Willison's Weblog
P
Palo Alto Networks Blog
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Hacker News
The Hacker News
博客园 - 司徒正美
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 热门话题
罗磊的独立博客
K
Kaspersky official blog
Last Week in AI
Last Week in AI
Know Your Adversary
Know Your Adversary
小众软件
小众软件
Stack Overflow Blog
Stack Overflow Blog
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
Scott Helme
Scott Helme
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
P
Proofpoint News Feed
博客园 - 三生石上(FineUI控件)
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Full Disclosure

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
鸿蒙 1024|我在鸿蒙上重启 GTD 梦想的五个月 - 少数派
2025-10-20 · via 少数派

几年前,我在整理电脑桌面时发现:无论是口头交流后留下的便签、备忘录中的提醒,还是聊天软件与邮件里的待办任务——这些大事小事都零散地藏在电子世界的角落里,不经常整理的话,等需要时往往难以找到。

加上人脑能记住的东西并不多,所以每次切换到别的设备,就意味着换到了下一个场景,一不留神就可能忘记了重要的事情。我当时就在想:「如果有一款真正理解我工作节奏的 GTD 软件,能在手机、平板、电脑间顺畅衔接,还能自动排定优先级,该多好。」

一次算不上成功的尝试

那时,我下定决心利用手边的电脑,打开文档自学开发。起初选择了当时颇为流行的 Swift 语言,并结合 CoreData 与 CloudKit 构建原型。然而,随着实践的深入,我发现即便是编写一个 GTD 软件的 demo,也比想象中要困难得多。

首先是任务结构的复杂性。情境、优先级、开始与截止时间、提醒时点、重复规则、延期与搁置等设定,乃至时区差异——这些因素彼此交织、相互影响,稍有不慎就可能产生冲突,使任务定义变得异常困难,这就让在开发阶段里各种焦头烂额。

其次就是后台限制,在当时只能有前台切换和很短的后台窗口才能允许。所以要真正理解我的工作节奏,就必须依赖本地 AI 助手的支持。可惜当时的本地 AI 助手更多只是噱头,除了最基本的自然语言解析外,无法实现诸如根据优先级自动排序、综合考虑到期与开始时间、预计用时、能量状态、场景(地点或日历窗口)等复杂因素的功能。

最后就是多端的一致性,在还没有 SwiftUI 的年代,想要完整调用不同的平台的风格,就要编写和其他平台完全不一样的代码。在当时我设想的是,在电脑上收集、平板上规划、手机上点击完成的这样的连续互通体验,也就意味着需要同时开发 3 个平台。对于我这样的用生活间隙开发的开发者而言,极大加重了我负担。

最后,在开发热情过去以后,我也放下了自己开发一个 GTD 软件的执念。

进入一个全新的开发世界

在鸿蒙开始宣传「分布式系统架构」和「多端统一开发」的时候我是完全不信的,毕竟谁不知道「一处开发,到处 Debug」这样的说法呢。但还是抱着看看的心态在搜索框里输入了「鸿蒙开发」,哪知道这真的让我打开了新世界的大门。

Stage 模型中的开发语言 ArkTS 是 TypeScript 的超集,也就是说如果有写过 JavaScript 的话,学习 ArkTS 语法就几乎没有别的学习门槛;但多了静态类型检查和并发模型,从而更适合构建高性能、复杂交互的软件。加上它天然支持声明式 UI,配合状态管理系统,能够让开发者以更直观的方式描述界面与逻辑的关系,避免繁琐的命令式更新流程,直接让界面与数据始终保持同步。

有了这个底以后,我又对开发提起了兴趣,从 Git 仓库里找出了曾经写的代码,准备重新用 ArkTS 开发。当然,安装 DevEco Studio 的过程意外顺利,很轻松地就打开了新世界的开发大门。

从 0 搭起 FlowList 的骨架

为了不重蹈覆辙,我决定从最坚实的地基开始搭建。一个清晰、可扩展的架构,才是软件能不断开发的关键。于是,我将整个应用的核心拆分为三个模块:TaskStore、FocusTimer 和 SyncService。

首先就是 TaskStore,也就是整个软件的数据存储模块。它是整个系统的数据中枢,负责管理和持久化所有任务信息。我采用了关系型数据库方案,通过 SQLite 组件实现本地数据的高效读写。而在多设备之间的同步上,ArkTS 提供的 distributedDataObject 大大简化了开发工作。借助分布式数据对象的自动同步机制,我可以让电脑上新增的任务在手机端即时出现,无需额外编写冲突合并或版本控制逻辑。这样,即便频繁切换设备,任务状态也能始终保持一致。

其次就是一个可靠的计时中心 FocusTimer,为了帮助用户更好地聚焦于任务,我在应用中集成了一个番茄钟系统。通过 BackgroundTaskManager 注册后台计时任务,确保在锁屏状态下计时仍然精准可靠。同时,借助 NotificationExtension,我实现了跨设备的专注提醒——当手机上的计时结束时,电脑端也能同步弹出通知,让专注状态自然地延续到不同设备。

如果说 TaskStore 是「记忆」,那么 SyncService 负责协调多设备之间的数据同步与刷新。除了依赖云端同步,我还利用分布式数据框架(DDF)监听状态变更,以 AppEvents.emit('kvChanged', Date.now()); 事件作为触发点,将任务更新实时广播给其他设备。

在过去,实现这样的多端同步需要我自行搭建服务器、编写网络请求、处理鉴权逻辑。而现在,这些复杂的流程已经被系统级的分布式能力所取代——只需调用 API,就能获得稳定、低延迟的多设备协同体验。

让任务管理变得更主动的「智能化」

在重构过程中,我接触到了 ArkTS 里的 Natural Language Kit。出于好奇,我尝试用它为我的 Demo 增加一个 AI 任务助手。在最初的尝试中,我把这个能力简单地嵌入到任务输入框的后端逻辑中。当用户输入一段自然语言,Natural Language Kit 就会自动完成意图识别与实体抽取。

后续我在翻阅文档的时候还看到了 Intents Kit,这也是最让我惊讶的能力之一。与 Natural Language Kit 不同,InsightIntent 不是简单语义理解工具,而是承担了「系统级联动」的角色——它让应用的智能行为得以延伸至系统层面。我可以向系统共享特定意图数据,并定义相应的开放 API(跳转入口)。系统的意图框架会基于用户的行为模式学习这些数据的规律,并在「合适的时间、合适的场景」中触发推荐。

我目前正尝试在 GTD Demo 中借助这一机制,加强用户体验。这样,用户在 Natural Language Kit 的协助下频繁创建某类任务(例如「每日回顾」或「晨间计划」)时,我可以通过 InsightIntent 向系统共享这些规律性任务的数据。这样,系统可能会在每天早上 8 点左右,在负一屏、控制中心或智慧卡片中主动推荐「开始每日回顾」,用户点击后即可直接进入我的应用里。

更有趣的是,我发现 InsightIntent 并不局限于时间触发。系统还能学习用户的场景行为,比如当识别用户每次靠近公司时都会打开「工作」清单,从而会在在用户抵达该地点时主动推荐相关任务。这种智能化的机制让任务管理迈向更近的一步。

未来,我还计划在本地集成昇思推理框架服务或 Neural Network 运行时服务,通过端侧小模型实现更高层次的智能化任务规划。这一模型将结合用户的健康数据(如睡眠、运动、心率等)与固定日程信息,动态分析「可用精力」与「可用时间」之间的关系,从而为任务分配提供更符合用户当下状态的建议。

例如,在检测到用户睡眠不足或心率偏高的情况下,我们可以自动调整当天的任务优先级,推迟高强度或需要高度集中注意力的任务;而在用户状态良好、时间窗口充裕时,则优先安排需要深度思考的项目。这样一来,也许任务规划将不再只是基于时间管理的机械分配,而是能逐步进化为「以人本身为中心」的感知式计划系统。

一次开发,多端部署

写完了软件基础的逻辑,下面我重要准备开始动手写相关的 UI 部分了。我在项目初期就依然秉持了要支持手机、平板与电脑的远大目标。虽然理论上,鸿蒙可以「一次开发,多端部署」,但我还是做好了心理准备,觉得这无非是将曾经为三个平台写三套代码的痛苦,转化成无数个 if-else 这样的这么。

结果,实际工作量远比预期更小。ArkUI 将分辨率、自适应布局、交互模式、权限机制等设备与平台差异,统一抽象为底层接口,使我无需在业务逻辑中手动编写判断逻辑。借助框架提供的响应式布局、组件属性与能力检测 API,界面能够自动完成适配。于是,我的开发思路从「为电脑写一个界面、再为平板写一个」转变为「设计一个可随空间大小自由伸缩的界面」,这也恰好和目前的网页设计思路对应起来,整个设计流程还是很丝滑的。

我首先利用鸿蒙提供的 BreakpointSystem 定义了几个关键的屏幕宽度断点,比如 sc(小屏,手机)、mc(中屏,平板)、lc(大屏,电脑)。然后,通过一个全局监听的状态变量来获取当前的断点类型:

@StorageLink('currentBreakpoint') currentBreakpoint: string = 'sc';

const breakpointSystem = new BreakpointSystem();
mediaQuery.matchMediaSync(`(width>=${breakpointSystem.getBreakpoint('mc')})`, (matches) => {
  this.currentBreakpoint = matches ? 'mc' : 'sc';
});

有了这个 currentBreakpoint 状态,界面的适配就变得像搭积木一样直观。在主界面的 build 函数中,我不再写死布局,而是根据状态进行动态组合:

这意味着,我的 TaskListComponent(任务列表组件)和 DetailViewComponent(详情视图组件),无需任何修改,就能同时运行在所有平台上。我需要做的,仅仅是:在小屏幕上,只显示列表;在稍大的屏幕上,用一个 Row 容器将它们并排摆放,并按 4:6 的比例分配宽度。

在电脑端,我甚至可以更进一步,用一个三栏布局来呈现:左侧是项目栏,中间是任务列表,右侧是任务细节、笔记区和番茄计时按钮。而实现这一切,也只是在最外层布局加一个相关判断的判断而已。整个多端适配过程,我只花了一周左右的时间。而且大部分精力都花在思考不同设备上最佳的交互模式,而不是在编写冗余的平台特定代码上。当我在笔记本和 MatePad 之间无缝切换 FlowList,看着界面元素如流水般自动重组时,那种感觉真的很奇妙。

当然在适配多端的同时,我也对 UI 简单地打磨了下,比如通过单独调整贝塞尔曲线实现的回弹效果可以让 UI 具有别样的风格。我还计划未来通过 SpringMotion 模拟了真实的物理惯性,让列表的滑动既跟手又富有生命力,打造特殊的视觉风格。

尾声

这五个月的开发旅程,让我真正理解了鸿蒙的独特意义。它不只是一个操作系统,更像是一层「统一生态的底层运行时」。在这个体系里,开发者不必再依赖第三方云服务,也无需为多端同步额外编写逻辑——系统本身就能让不同设备之间自然地共享状态、同步任务、延续体验。

这种「多端即一体」的设计理念,对于 GTD 这类强调连续性与协同的应用而言,几乎是一次范式转变。当我在电脑上规划任务、在平板上展开执行、再到手机上轻轻打卡完成时,我不再觉得自己是在「不同设备上操作同一个应用」,而更像是始终身处于同一条时间流中,只是偶尔切换了观察的视角。

在鸿蒙的分布式架构下,设备间的边界被柔化,应用的生命周期也不再局限于单一终端。它让开发者重新思考——任务管理软件不必只是被动的记录工具,而可以成为贯穿生活各处的智能伙伴。而对我而言,这段经历也让我重新找回了最初写下那句想法的心情:「如果有一款真正理解我工作节奏的 GTD 软件,那该多好。」

最后的最后,我也希望我能有耐心完整打磨完我目前的这个半成品,并希望能早日上架。