六年打磨 watchOS 地图:Pedometer++ 的设计之旅
六年打磨 watchOS 地图:Pedometer++ 的设计之旅
作者: David Smith | 发布时间: 2026-05-13
核心要点
- 六年持续迭代:从 watchOS 6 到 watchOS 26,Pedometer++ 的地图功能经历了六次重大设计迭代。
- 自定义渲染引擎:由于原生 MapKit 限制太多,作者完全自主开发了基于 SwiftUI 的地图渲染引擎。
- Liquid Glass 适配:watchOS 26 的 Liquid Glass 设计语言促使重新设计地图风格,与设计师 Rafa Conde 合作找到最终方案。
- 荒野探险者的需求:作为热爱野外探险的开发者,作者深刻理解手腕上地图的实际使用场景。
详细内容
起源:为什么要做 watchOS 地图?
作者 David Smith 热爱野外探险,他认为安全探索不迷路的最重要习惯是定期查看位置。而最好的方式就是在手腕上有一张地图。
自从 Apple Watch 发布以来,他就一直希望在手腕上有一张好用的地图。但直到 watchOS 6 带来 SwiftUI,"真正的"应用才成为可能。早期屏幕小、处理器慢,无法达到理想效果。
技术演进历程
第一代:服务器渲染(watchOS 6)
最早的尝试是完全在服务器端生成地图,每次刷新都需要将锻炼数据往返发送。这验证了想法,但永远不实用——无法离线工作,延迟高。
第二代:自定义 SwiftUI 引擎(2021年)
为了实现目标,作者开始在更低级别工作,构建完全基于 SwiftUI 的原生地图渲染引擎。这是唯一选择,因为 watchOS 只支持 SwiftUI,而且 widgets 也只支持 SwiftUI。
2021年,这个引擎达到了可以在 watchOS 上可靠且高性能渲染地图的状态。它可以渲染任何基于瓦片的地图,并在上面叠加位置信息。
设计迭代:无数次尝试
接下来的挑战是如何最好地向用户展示数据。watchOS 应用设计是一个有趣但令人沮丧的挑战——屏幕很小,必须单手操作。
作者希望用户能够阅读地图并用它导航,同时还能访问其他锻炼相关信息。这开始了长达数年的设计尝试,其中大多数"老实说都挺糟糕的"。
模态界面方案
最终采用"模态"方法,用户可以通过左上角的按钮在地图屏幕和指标屏幕之间切换。这个界面提供了一个用户可以自由平移/缩放地图的上下文,以及另一个使用标准 watchOS 分页界面的指标和控制上下文。
但这个设计始终让作者感到不满意——像是一个不好的妥协。
Liquid Glass 时代的重塑
watchOS 26 与 Liquid Glass
在作者仍在为设计困境挣扎时,Apple 宣布了 watchOS 26 和 Liquid Glass。Liquid Glass 的核心设计之一是叠加堆叠元素,另一个是与特定颜色类型最匹配的色彩。
作者之前使用 Thunderforest Outdoors 作为底图,但发现它不适合 Liquid Glass。于是...他委托制作了一张自定义地图!
与制图师 Andy Allan 合作
与出色的制图师 Andy Allan 合作,他们创建了一个全新的底图,在 Liquid Glass 下看起来非常棒:
- 视觉上简化地图
- 增加元素对比度
- 让地图元素更饱和,防止在玻璃下变得模糊
深夜模式
这项工作带来了另一个机会:终于有了深夜模式的地图瓦片。虽然在 iOS 上有帮助,但在 watchOS 上真正闪耀。他们致力于打造在手臂长度处极易阅读的地图。
与 Rafa Conde 的设计合作
为了跳出设计困境,作者请来了出色的设计师 Rafa Conde。很快,合作就有了回报。当他们提出这个设计时,作者知道这就是答案:
指标叠加在地图的左上角,地图是垂直堆叠的顶层页面。这种设计通过要求先点击地图进入"浏览模式"来处理交互性。
最终设计亮点
经过数百英里的实地测试,作者确认这是正确的方法。最终的 design:
- 清晰易读
- 实用
- 美观
这个设计既符合平台原生风格,又新颖独特。
为什么不用 MapKit?
虽然作者的工作早于 MapKit 登陆 watchOS,但值得解释为什么他决定做所有这些定制工作来避免使用它:
根本原因是 MapKit 适合基本用途,但无法提供 Pedometer++ 想要的功能水平:
- 深色模式限制:MapKit on watchOS 总是显示深色模式,虽然通常是好的默认设置,但关闭了可访问性和用户选择的可能性。
- 动画和叠加限制:MapKit 在动画和叠加方面仍然有限制。
- 地形细节不足:MapKit 的地形等高线和步道标记覆盖范围正在改善,但仍有太多地方 MapKit 基本上是空白的,而应该有更丰富的细节。
结论
六年的设计之旅,Pedometer++ 的 watchOS 地图功能终于达到了作者满意的状态。这代表了大量的努力和学习的积累,最终给出了一个在平台上感觉原生但又新颖独特的设计。
对于开发者来说,这是一个关于坚持和迭代的案例——有时候,最好的设计需要多年的尝试、失败和重新开始。正如作者所说:"能够用我非常自豪的设计来结束这六年的旅程,感觉真的很好。"