watchOSApple WatchSwiftUIUI设计地图

六年打磨 watchOS 地图:Pedometer++ 的设计之旅

David Smith··原文链接
收录于 2026/5/15 18:11:09

六年打磨 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++ 想要的功能水平:

  1. 深色模式限制:MapKit on watchOS 总是显示深色模式,虽然通常是好的默认设置,但关闭了可访问性和用户选择的可能性。
  2. 动画和叠加限制:MapKit 在动画和叠加方面仍然有限制。
  3. 地形细节不足:MapKit 的地形等高线和步道标记覆盖范围正在改善,但仍有太多地方 MapKit 基本上是空白的,而应该有更丰富的细节。

结论

六年的设计之旅,Pedometer++ 的 watchOS 地图功能终于达到了作者满意的状态。这代表了大量的努力和学习的积累,最终给出了一个在平台上感觉原生但又新颖独特的设计。

对于开发者来说,这是一个关于坚持和迭代的案例——有时候,最好的设计需要多年的尝试、失败和重新开始。正如作者所说:"能够用我非常自豪的设计来结束这六年的旅程,感觉真的很好。"