发布时间:2026/6/9 12:48:31
基于 Harmony 6.0 应用的跑步配速教练应用首页实现
基于 Harmony 6.0 应用的跑步配速教练应用首页实现前言跑步是最简单也最难的运动——简单是因为穿上鞋就能跑难是因为配速、心率、步频都需要科学控制。一款好的跑步配速教练应用要把今天的训练 / 实时配速 / 目标心率 / 完赛预测四件事在一屏内全部铺到。Harmony 6.0 时代跑步类应用迎来了几个独特的能力红利——LocationKit 提供米级 GPS、SensorKit 提供加速度和心率、HealthKit 让数据进入系统级档案、AudioKit 提供配速语音播报、超级终端让手表显示实时数据、AI 助手能力提供训练建议。本文用 Flutter 在 Harmony 6.0 上实现一个跑步教练首页。背景跑步类应用的视觉关键词是动感、激励、专业——蓝青色 #06B6D4 配橙色 #F97316 是这类应用的合适主色。本项目首页 5 个模块渐变 Header今日目标 大开始按钮、本周配速趋势、推荐训练计划、最近跑步记录、好友 PK 排行。Flutter × Harmony 6.0 跨端开发介绍Harmony 6.0 在跑步类应用上的能力栈完整——LocationKit 提供 GPS 轨迹、SensorKit 提供步频心率、HealthKit 提供数据归集、AudioKit 提供配速播报、AI 助手提供训练建议、超级终端让手表协同。开发核心代码代码一今日目标 HeaderWidget_header(){returnContainer(padding:constEdgeInsets.all(20),decoration:BoxDecoration(gradient:constLinearGradient(colors:[_primary,Color(0xFF155E75)],begin:Alignment.topLeft,end:Alignment.bottomRight),borderRadius:BorderRadius.circular(24),),child:Column(children:[constRow(children:[Icon(Icons.directions_run,color:Colors.white,size:22),SizedBox(width:8),Text(跑步教练,style:TextStyle(color:Colors.white,fontSize:18,fontWeight:FontWeight.w800)),Spacer(),Container(padding:EdgeInsets.symmetric(horizontal:8,vertical:3),decoration:BoxDecoration(color:_accent,borderRadius:BorderRadius.all(Radius.circular(6))),child:Text(训练 Day 18,style:TextStyle(color:Colors.white,fontSize:11,fontWeight:FontWeight.w800)),),]),constSizedBox(height:16),constText(今日训练,style:TextStyle(color:Colors.white70,fontSize:13)),constSizedBox(height:4),constText(5 km 间歇跑,style:TextStyle(color:Colors.white,fontSize:28,fontWeight:FontWeight.w900)),constSizedBox(height:8),constRow(mainAxisAlignment:MainAxisAlignment.center,children:[_MiniChip(label:配速,value:530\),SizedBox(width:10),_MiniChip(label:心率,value:150 bpm),SizedBox(width:10),_MiniChip(label:步频,value:180),]),constSizedBox(height:16),Container(width:double.infinity,height:50,decoration:BoxDecoration(color:_accent,borderRadius:BorderRadius.circular(25)),child:constCenter(child:Row(mainAxisSize:MainAxisSize.min,children:[Icon(Icons.play_arrow,color:Colors.white,size:24),SizedBox(width:6),Text(开始跑步,style:TextStyle(color:Colors.white,fontSize:16,fontWeight:FontWeight.w800)),],)),),]),);}class_MiniChipextendsStatelessWidget{finalStringlabel,value;const_MiniChip({requiredthis.label,requiredthis.value});overrideWidgetbuild(BuildContextcontext){returnContainer(padding:constEdgeInsets.symmetric(horizontal:10,vertical:6),decoration:BoxDecoration(color:Colors.white.withValues(alpha:0.18),borderRadius:BorderRadius.circular(10)),child:Column(children:[Text(label,style:constTextStyle(color:Colors.white70,fontSize:10)),constSizedBox(height:2),Text(value,style:constTextStyle(color:Colors.white,fontSize:12,fontWeight:FontWeight.w800)),]),);}}跑步过程中 AudioKit 实时语音播报配速——“配速 5 分 32 秒比目标快 2 秒”让用户无需看屏幕就能调整。从「今日目标 Header」的运动激励与目标可视化设计角度再补一段。跑步配速类应用的 Header 必须传递「我的目标 现在就出发」的双重激励。这段 Header 用主蓝色到深蓝的渐变背景配合「今日目标 5km / 配速 5’30」 「开始跑步」大按钮的双段式排版让用户感受到「目标明确、立即行动」的推力。「开始跑步」按钮做成纯白色实心 主色文字的胶囊形态是整页最显眼的视觉锚点。如果未来要扩展支持「按时段切换目标」早跑短距离热身、晚跑长距离训练可以在 Header 顶部加 chip 切换栏骨架不变。代码二本周配速趋势Widget_paceChart(){finalpacesconst[340,332,328,335,325,322,330];finalmaxValpaces.reduce((a,b)ab?a:b);returnContainer(padding:constEdgeInsets.all(16),decoration:BoxDecoration(color:_card,borderRadius:BorderRadius.circular(16)),child:Column(crossAxisAlignment:CrossAxisAlignment.start,children:[constRow(children:[Text(本周平均配速,style:TextStyle(color:_ink,fontSize:14,fontWeight:FontWeight.w700)),Spacer(),Text(5\30 / km · ↓6,style:TextStyle(color:_accent,fontSize:12,fontWeight:FontWeight.w800)),]),constSizedBox(height:14),SizedBox(height:100,child:Row(crossAxisAlignment:CrossAxisAlignment.end,mainAxisAlignment:MainAxisAlignment.spaceBetween,children:List.generate(7,(i){finalh(1-paces[i]/maxVal0.4)*80;finalmins(paces[i]/60).floor();finalsecspaces[i]%60;finaldays[一,二,三,四,五,六,日];returnColumn(children:[Text($mins${secs.toString().padLeft(2,0)}\,style:constTextStyle(color:_primary,fontSize:10,fontWeight:FontWeight.w700)),constSizedBox(height:4),Container(width:14,height:h,decoration:BoxDecoration(color:_primary,borderRadius:BorderRadius.circular(4))),constSizedBox(height:6),Text(days[i],style:constTextStyle(color:_sub,fontSize:11)),]);})),),]),);}本周配速趋势用 7 根渐变柱子展示一周配速变化柱子的高度由配速反映——配速越快柱子越高。橙色柱子配深色背景是跑步类应用的标准趋势图。从「本周配速趋势」的训练数据可视化与个人最佳追踪设计角度再补一段。跑步类应用的核心是「让用户看到自己越来越快」。这段趋势图把用户的本周配速与上周对比如果某天配速创个人最佳那根柱子用金色高亮 「PB!」chip 标注给用户强烈的成就反馈。如果某天配速明显下滑柱子用浅色显示而非红色——避免过度警示让用户产生挫败感。如果未来要扩展支持「按距离类型筛选」5km、10km、半马、全马可以在卡片顶部加 chip 切换栏。鸿蒙 6.0 端 Skia 对柱状图渲染极高效每秒重绘也不会卡顿。代码三推荐训练计划Widget_planItem(MapString,dynamicp){returnContainer(margin:constEdgeInsets.only(bottom:10),padding:constEdgeInsets.all(14),decoration:BoxDecoration(color:_card,borderRadius:BorderRadius.circular(14)),child:Row(children:[Container(width:50,height:50,decoration:BoxDecoration(color:(p[color]asColor).withValues(alpha:0.16),borderRadius:BorderRadius.circular(14)),child:Icon(p[icon]asIconData,color:p[color]asColor,size:26),),constSizedBox(width:12),Expanded(child:Column(crossAxisAlignment:CrossAxisAlignment.start,children:[Text(p[name]asString,style:constTextStyle(color:_ink,fontSize:14,fontWeight:FontWeight.w700)),constSizedBox(height:4),Text(p[desc]asString,style:constTextStyle(color:_sub,fontSize:12)),],)),Container(padding:constEdgeInsets.symmetric(horizontal:10,vertical:5),decoration:BoxDecoration(color:_primary.withValues(alpha:0.14),borderRadius:BorderRadius.circular(20)),child:constText(开始,style:TextStyle(color:_primary,fontSize:11,fontWeight:FontWeight.w800)),),]),);}AI 助手能力会根据用户的最大心率、过往配速等数据自动生成个性化训练计划——比起全民同款训练表更科学。从「推荐训练计划」的 AI 个性化与计划执行设计角度再补一段。跑步类应用的「训练计划」是从「业余跑步」到「专业训练」的关键升级。这段卡片用「计划名 周期 难度 chip 预计配速 加入计划按钮」五段信息塞在每张卡片里。每个计划用对应难度色识别入门绿、进阶蓝、高阶紫、专业红让用户一眼识别适合自己的难度。如果未来要扩展支持「跟随专业教练计划」接入彭于晏、孙杨、苏炳添等明星跑者的训练表可以在卡片上加教练头像和签名骨架完全不动。鸿蒙 6.0 的 NeuralNetworkRuntime 让端侧 AI 推理生成个性化计划成为可能整个流程不到 200ms。心得跑步教练类 App 的视觉灵魂是动感 激励——蓝青色给清晨晨跑感配速 chip 给即时反馈。开发时最容易犯的错是把数据呈现得过于专业让普通跑者看不懂。我的策略是用大字号目标 小 chip 关键指标的组合。从能力扩展角度跑步教练最值得在鸿蒙端打造的是LocationKit SensorKit AudioKit 配速播报 超级终端手表 AI 训练计划五件套。总结本篇实现了 Harmony 6.0 端的跑步配速教练首页5 个模块、纯 UI、零依赖、约 320 行代码。从扩展角度建议生产业务里把 GPS 接入 LocationKit把传感器接入 SensorKit把语音播报接入 AudioKit把训练数据接入 HealthKit把今日训练做成 FormExtensionAbility 桌面卡片。下一篇是第十三组的最后一块——老人跌倒检测应用。

相关新闻

Arduino用GD5800传感器串口驱动库,含示例代码与一键安装支持
2026/6/6 22:56:47

Arduino用GD5800传感器串口驱动库,含示例代码与一键安装支持

本文还有配套的精品资源,点击获取 简介:这个Arduino库专为GD5800气体传感器设计,通过标准串口(UART)实现稳定通信,开箱即用。包含核心头文件GD5800_Serial.h和实现文件GD5800_Serial.cpp,封装…

阅读更多
ai辅助开发:如何用快马平台的kimi模型迭代出理想中的跳转页面样式
2026/6/6 21:56:47

ai辅助开发:如何用快马平台的kimi模型迭代出理想中的跳转页面样式

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 作为ai辅助开发工具,请根据以下描述生成并迭代一个html跳转页面源码:首先,生成一个具有科技感蓝黑渐变背景的跳转页面,中心是一个发…

阅读更多
2026.06.06 6666666
2026/6/6 21:56:47

2026.06.06 6666666

import java.time.DayOfWeek; import java.time.LocalDate; import java.util.ArrayList; import java.util.List;/*** 趣味数学 2026.06.06* * * author ZengWenFeng* date 2026.06.06* mobile 13805029595* email 117791303QQ.com*/ public class DateFind20260606_3 {publ…

阅读更多
COM3D2.MaidFiddler:5分钟掌握实时女仆编辑器完整指南
2026/6/9 11:56:59

COM3D2.MaidFiddler:5分钟掌握实时女仆编辑器完整指南

COM3D2.MaidFiddler:5分钟掌握实时女仆编辑器完整指南 【免费下载链接】COM3D2.MaidFiddler Maid Fiddler for COM3D2 -- a real-time value editor for COM3D2 项目地址: https://gitcode.com/gh_mirrors/co/COM3D2.MaidFiddler 你是否曾经在玩《COM3D2》时…

阅读更多
告别混乱投影!用ArcGIS Pro为你的经纬度坐标点快速匹配正确的地理坐标系
2026/6/9 11:56:59

告别混乱投影!用ArcGIS Pro为你的经纬度坐标点快速匹配正确的地理坐标系

告别混乱投影!用ArcGIS Pro为经纬度坐标点精准匹配地理坐标系当你在深夜盯着屏幕上偏移了500米的采样点位置,或是发现青藏高原的监测站被错误定位在印度洋时,就会理解坐标系选择绝非简单的下拉菜单操作。我曾亲眼见证某环保机构因坐标系误用导…

阅读更多
Bilibili-Old:3分钟找回经典B站界面,告别新版不适感
2026/6/9 11:56:59

Bilibili-Old:3分钟找回经典B站界面,告别新版不适感

Bilibili-Old:3分钟找回经典B站界面,告别新版不适感 【免费下载链接】Bilibili-Old 恢复旧版Bilibili页面,为了那些念旧的人。 项目地址: https://gitcode.com/gh_mirrors/bi/Bilibili-Old 你是否曾经打开B站时感到一丝陌生&#xff1…

阅读更多
网盘下载速度慢?这个开源工具帮你一键获取高速直链下载地址![特殊字符]
2026/6/9 11:56:59

网盘下载速度慢?这个开源工具帮你一键获取高速直链下载地址![特殊字符]

网盘下载速度慢?这个开源工具帮你一键获取高速直链下载地址!🚀 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / …

阅读更多
如何用AI征服2048游戏:终极智能算法指南
2026/6/9 11:56:58

如何用AI征服2048游戏:终极智能算法指南

如何用AI征服2048游戏:终极智能算法指南 【免费下载链接】2048-ai AI for the 2048 game 项目地址: https://gitcode.com/gh_mirrors/20/2048-ai 你是否曾经在2048游戏中感到困惑?面对不断出现的数字方块,不知道下一步该往哪个方向滑动…

阅读更多
OpenHarmony RK3568开发板救砖实录:从MaskRom模式恢复到完整测试套执行
2026/6/9 10:56:58

OpenHarmony RK3568开发板救砖实录:从MaskRom模式恢复到完整测试套执行

OpenHarmony RK3568开发板救砖实战:从MaskRom模式到系统完整性验证那块躺在工作台上的RK3568开发板已经沉默了三小时——屏幕漆黑,串口无响应,甚至连电源指示灯都拒绝闪烁。前一天它还流畅运行着最新编译的OpenHarmony 3.2系统,此…

阅读更多
JPEXS Free Flash Decompiler完整指南:免费SWF逆向工程实用教程
2026/6/9 9:44:07

JPEXS Free Flash Decompiler完整指南:免费SWF逆向工程实用教程

JPEXS Free Flash Decompiler完整指南:免费SWF逆向工程实用教程 【免费下载链接】jpexs-decompiler JPEXS Free Flash Decompiler 项目地址: https://gitcode.com/gh_mirrors/jp/jpexs-decompiler 你是否曾经遇到过需要修改一个Flash文件,却发现源…

阅读更多
抖音无水印视频下载器:终极技术实现与部署指南
2026/6/9 9:42:10

抖音无水印视频下载器:终极技术实现与部署指南

抖音无水印视频下载器:终极技术实现与部署指南 【免费下载链接】douyin_downloader 抖音短视频无水印下载 win编译版本下载:https://www.lanzous.com/i9za5od 项目地址: https://gitcode.com/gh_mirrors/dou/douyin_downloader 想要获取纯净的抖音…

阅读更多
工业级数据血缘分析:基于 Python 构建大规模图数据库关系拓扑与数据沿袭(Data Lineage)追踪算法
2026/6/9 6:47:48

工业级数据血缘分析:基于 Python 构建大规模图数据库关系拓扑与数据沿袭(Data Lineage)追踪算法

工业级数据血缘分析:基于 Python 构建大规模图数据库关系拓扑与数据沿袭(Data Lineage)追踪算法在企业级数据中台、大型分布式数据仓库(如 Hive、MaxCompute、ClickHouse)及数据治理体系的建设演进中,数据血…

阅读更多
pot-desktop跨平台翻译工具架构深度解析与实战指南
2026/6/9 0:56:57

pot-desktop跨平台翻译工具架构深度解析与实战指南

pot-desktop跨平台翻译工具架构深度解析与实战指南 【免费下载链接】pot-desktop 🌈一个跨平台的划词翻译和OCR软件 | A cross-platform software for text translation and recognize. 项目地址: https://gitcode.com/pot-app/pot-desktop pot-desktop作为一…

阅读更多
Doxygen注释标记的隐藏技巧:除了@brief和@param,这些冷门但好用的标记让你的文档更出彩
2026/6/9 0:56:57

Doxygen注释标记的隐藏技巧:除了@brief和@param,这些冷门但好用的标记让你的文档更出彩

Doxygen注释标记的隐藏技巧:除了brief和param,这些冷门但好用的标记让你的文档更出彩在软件开发的世界里,代码注释文档就像是一座桥梁,连接着代码实现者与使用者。对于已经熟悉Doxygen基础标记的开发者来说,如何让这座…

阅读更多
别再手动复制了!Vivado 2021.1 加密IP核的完整TCL脚本与秘钥文件配置指南
2026/6/9 0:56:57

别再手动复制了!Vivado 2021.1 加密IP核的完整TCL脚本与秘钥文件配置指南

Vivado 2021.1自动化加密IP核:TCL脚本工程化实践指南在FPGA开发中,IP核的保护一直是工程师面临的重要课题。随着项目复杂度的提升,手动逐个加密文件不仅效率低下,还容易引入人为错误。本文将带您深入探索如何通过TCL脚本实现Vivad…

阅读更多
GIT修改用户名
2026/6/8 18:27:18

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/8 18:27:24

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/9 9:39:35

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多