LaunchOS v2(重构版)终于发布了!
这次最核心的变化,是我们放弃了 SwiftUI,转而用更传统、也更底层的 AppKit 重写了一遍。看了眼 v2 仓库第一次 commit 的日期,居然已经过去三个月了。
重构过程其实非常痛苦。很多在 SwiftUI 里只需要简短几行代码就能实现的效果,用 AppKit 来写却需要十几行甚至更多代码,很多原本在 SwiftUI 中直接就能使用的能力,还需要自己重新封装。
但换来的,是更自由的底层控制,针对我们的场景优化后,更低的内存占用、更好的性能表现、更流畅的动画和更贴近原生 Launchpad 的操作体验。
SwiftUI 的巨大优势,在于它更高层级的抽象。开发者不需要掌握太多底层细节,就能更高效地做出横跨 iOS、iPadOS 和 macOS 的产品。但对于 Launchpad 这种单平台、强依赖交互细节和动画体验的产品来说,这层抽象经常也会变成限制:每次添加一个新功能,都要花费更多的时间在性能优化上,压榨每一丝可以优化的空间,开发 1 小时,优化一整天。
更难受的是,对于 Launchpad 这种「体验型」而不是「功能型」产品,AI Coding 在这个过程里能帮上的忙其实也有限。拖拽手感、跟手速率、动画曲线,这些东西只能靠人肉反复体验之后才能发现问题;而性能上的优化点,也经常依赖人工分析和判断,AI 很难直接给出超出你认知边界的问题的答案。
重构越久,人越焦虑,一边享受着打磨细节带来的快感,一边焦虑时间窗口... 原本计划快速投入 2 个月的副项目,最后却占用了我们 2 人组将近半年的主力时间。
但现在回头看,似乎又都值得。LaunchOS 依旧保持着领先水平,也依旧是用户眼里最好的 Launchpad 恢复方案。只是我没想到,在这么窄的小赛道里,也还是迎来了同行的「致敬」。不爽归不爽,但很多事情也都是不可避免的商业竞争手段。对苹果官方来说,我们的产品可能也是一种反骨😂。念头通达,稳住道心,才能走得更远💪。
显示更多