起因:走路这件事,能不能不那么"自律"

每天下班从地铁站走回家,1.2 公里。这段路我走了两年多,配速、卡路里这些数字早就麻木了。某天突然冒出一个想法:如果这 1.2 公里不是"消耗了多少大卡",而是"在 66 号公路上又往前挪了一截",感受会完全不一样吧?

这就是「神游万里」的出发点。一款将日常步行里程映射为全球经典路线进度的慢旅行游戏。打开 App,发现路边刚好经过一个加油站打卡点,解锁了一张复古明信片——这种感觉很难用"运动激励"来概括,它更像是给每一段无聊的移动加了一层叙事。

核心玩法:三个我觉得值得聊的设计

第一个是真实 GPS 里程自动换算。用户选定一条路线后,日常步行距离会自动映射到路线进度上,不需要手动记录,走完一天回来看进度条往前走了多少就行。这里在 HarmonyOS 端我用了系统的持续定位能力来做后台里程累计,配合 ArkUI 的动画组件把进度条做成了带惯性的滚动效果,视觉上会有"路在脚下展开"的感觉。

第二个是 HUD 主题和载具视角系统。App 内置多套主题,从敞篷车到绿皮火车都有,随着里程推进逐步解锁。收集欲很容易被勾起来。在 ArkTS 实现上,载具切换本质上是一套状态驱动的皮肤系统:

@State currentVehicle: VehicleTheme = VehicleTheme.Convertible

build() {
  Column() {
      HUDView({ theme: this.currentVehicle })
            .width('100%')
                  .height(200)
                        .animation({ duration: 400, curve: Curve.EaseInOut })
                            ProgressBar({ value: this.todayProgress, total: this.routeTotal })
                              }
                              }
                              ```
核心就是通过 `@State` 驱动 UI 刷新,切换载具时带一个过渡动画,体验比较丝滑。

第三个是旅行日记体系。节气卡、城市明信片和勋章墙把碎片化的运动数据串成了一本旅行日记,翻看的时候会有"原来我已经走了这么远"的实感。这块用了 ArkUI 的 Grid 和 WaterFlow 组件来排布卡片瀑布流,卡片本身是懒加载的,滑动性能还可以。

## 谁适合用这个 App

如果你每天通勤单程步行十五分钟以上,或者有饭后散步的习惯,但又对跑步类 App 里那些配速、心率、卡路里数字无感,神游万里提供了另一种动力:不卷数据,只看路走到哪了、下一个解锁点还差多少。它把"坚持走路"这件事从自律叙事里拽出来,换成了公路巡航式的期待感。周末多走两站地铁,可能刚好够解锁一张阿尔卑斯山口的风景卡。

## 定价模式

App 本体免费下载,基础路线和主题免费使用。额外路线包和高级载具主题通过内购解锁,单条路线定价 6 元,也有 28 元的年度通行证可以一次拿到全部内容。对于一个长期陪伴型的 App 来说,这个价格我觉得还算克制。

## 写在最后

做这个项目的过程中,HarmonyOS 的持续定位和 ArkUI 声明式布局确实帮我省了不少事,尤其是状态管理这块,比我预期的要顺手。如果你也在做鸿蒙开发,或者对运动类、游戏化产品的实现感兴趣,欢迎交流。
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐