DockTouchBar 开发日记

这里不只放产品介绍,而是持续记录这个产品从需求、设计、实现、上架、运营到复盘的过程。每篇文章都会尽量还原真实决策和可复用经验。

产品复盘 DockTouchBar · 01 · 立项:为什么要再做一个 Touch Bar 上的 Dock 现成的 Touch Bar Dock 工具都能用,但都不够稳。DockTouchBar 反过来:只做一件事,把稳定放在第一位。 2026-09-25 架构实现 DockTouchBar · 02 · 可行性验证:私有接口在这台机器上还在不在 让后台 App 常驻 Touch Bar 只能用私有接口。动手写产品之前,先在本机验证它们还在,并且踩到第一个“状态说谎”的坑。 2026-09-25 架构实现 DockTouchBar · 03 · 技术选型:让系统更新后的最坏结果只是“功能不可用” Swift 加 AppKit,私有接口运行时解析,事件驱动刷新。每个选择都回答同一个问题:怎样让最坏的结果不是 App 打不开。 2026-09-25 设计系统 DockTouchBar · 04 · 手势:单击、双击、长按,怎样做到不卡、不误触 单击不等双击,长按用可以反悔的红色进度条。手势看起来简单,边界情况其实最多。 2026-09-25 架构实现 DockTouchBar · 05 · 跨桌面切换:为什么后台 App 切不了桌面 系统只在你亲手点 Dock 时才会切到 App 所在的桌面。后台工具要自己找到那个窗口,把它提到最前面。 2026-09-26 AI 工作流 DockTouchBar · 06 · 踩坑与验证:Touch Bar 是黑的,是 bug 还是熄屏 自己摸不到 Touch Bar,也没法自动点按。一次“黑屏”误判,让我学会先看键鼠空闲时间,再怀疑代码。 2026-09-26 App Store DockTouchBar · 07 · 发布:签名、公证,以及二进制里差点带出去的本机路径 辅助功能权限绑定在签名上,公证要保存凭据,发布前还要检查二进制里有没有带出你的用户名。 2026-09-26 架构实现 DockTouchBar · 08 · 连点为什么会失效:从“等 0.62 秒”到“看结果” 慢点点没问题,来回连点就不起作用。这是一个和动画有关的竞态:先复现,再分层找根因,最后从固定等待改成“看结果”。 2026-09-26 架构实现 DockTouchBar · 09 · 双击隐藏被自己的“纠正”打回:新机制的副作用 发布 1.4 之后,双击隐藏突然不正常了。原因是上一篇加的“盯着结果并纠正”:它把用户主动隐藏当成了异常,又把 App 拉回来。 2026-09-26 架构实现 DockTouchBar · 10 · 屏幕被调到全黑怎么办:一个齿轮做兜底 Dock 占满整条 Touch Bar,亮度条就看不到了;亮度调到 0 就是死循环。最后的方案是最右端一个齿轮,以及一个被否掉的“更聪明”的方案。 2026-09-26 产品复盘 DockTouchBar · 11 · 复盘:简洁、优雅、高效,落到了哪些数字和取舍上 空闲 CPU 0.0%、内存 34 MB,这是量出来的。也记录这个项目的局限、许可证的取舍,以及和 AI 一起做的体会。 2026-09-26