基于移动端GPS和传感器的运动打卡App的设计和实现

2023-05-30 03:12黄涛全丽莉
电脑知识与技术 2023年3期

黄涛 全丽莉

关键词:移动端GPS;运动打卡;App;跨平台开发

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2023)03-0034-03

在全民健身的大环境下,当前越来越多的人开始了健身运动,作为充满活力与热情的年轻大学生们更是如此。其中跑步是各类健身项目中门槛最低,最受欢迎的项目。随着移动互联网的迅猛发展和智能手机的普及,各类辅助跑步的App腾空出世,这让跑者能够借助科技的力量更好地融入跑步运动。与传统体育锻炼方式相比,智能化跑步模式更加趣味性、互动性,改变了体育参与人群的运动方式和运动行为[1]。跑步App安置于智能设备中,通过设备内置的运动传感器、智能芯片和GPS全球定位技术追踪运动路线,运用算法计算步数、卡路里燃燒等数据,并将结果分享于社交平台上[2]。

1 智慧乐跑App 功能及特点

智慧乐跑App是一款基于移动端GPS和传感器的运动打卡App,可用于辅助高校体育课程的实施,为在校大学生制定合理的跑步运动计划和提供丰富的健康运动知识。其主要功能模块包括注册登录(注册&登录)、跑步(跑步打卡&地理围栏&跑步记录)、社区(健康百科&精彩体育)、个人中心(运动记录查看&作业查看&个人资料修改),具体如图1所示。

智慧乐跑App的特点主要有针对性强(辅助高校体育课程的实施)、易于使用(操作界面简洁友好,无任何学习成本)、跨平台(App可发布到多个移动平台,比如Android,IOS,各类小程序)、专业性强(跑步数据精准、健康和体育信息丰富)。

2 智慧乐跑App技术选型及系统架构

目前主流的移动操作系统主要是Android和iOS两大阵营[3]。在设计之初的需求分析时由于确定智慧乐跑App需要具备跨平台的特点,所以在技术选型时必须首要考虑App的跨平台开发,同时为降低开发和维护成本,需要使用一个统一的平台,开发一次、多端运行[4]。因此App的开发技术选用目前主流的uni-app方案。uni-app 是一个使用Vue.js 开发所有前端应用的框架,在项目的整个开发过程中开发者只需要编写一套代码,就可以通过编译时的不同设置将应用发布到目前主流的各类移动平台,比如Android、iOS、各种小程序等。同时通过条件编译可优雅地在一个项目里调用各平台的特色功能[5]。

智慧乐跑系统架构如图2所示。App端使用uniapp开发,支持多个移动平台,服务端使用PHP开发并放在公有云上,数据库使用MySQL数据库。

3 智慧乐跑App 设计

智慧乐跑App的核心模块是跑步模块,下面分别介绍跑步打卡、地理围栏和跑步记录的设计。

3.1 跑步打卡设计

跑步打卡模块主要包含跑步跟踪与拍照打卡两子模块。跑步跟踪子模块需要在跑步过程中连续实时获取移动端GPS数据并同步绘制在地图上,形成实时运动轨迹。拍照打卡子模块在跑步开始5分钟之后进行,会调用移动端的震动传感器和声音传感器提醒学生打卡并自动打开相机让学生拍照并上传服务端。

3.2 地理围栏设计

地理围栏功能可以由教师设置学校里的特定范围让学生完成跑步任务,以此确保学生跑步时的安全。服务端定位到学校位置并在地图上设置跑步范围,App端在学生跑步过程中实时将获取的GPS数据上传服务端并由服务端实时判断学生跑步路线是否越界,如果越界则主动提醒学生,结束本次跑步并上传数据。

3.3 跑步记录设计

App端每次跑步结束后会自动上传本次跑步信息到服务端,后期在App中需要查看学生跑步记录时则向服务端对应功能接口请求数据即可。除了使用列表展示每条跑步记录外,学生还可以详细查看每条跑步记录的具体信息,包括地图上的运动轨迹、距离、配速、时长和消耗卡路里等。

4 智慧乐跑App实现

根据上面跑步打卡、地理围栏和跑步记录的设计,下面分别介绍其实现。

4.1 跑步打卡实现

在uni-app中使用高德地图插件实现跑步过程中连续实时获取移动端GPS数据并同步绘制在地图上的功能。App中用到的GPS数据主要是经纬度坐标。关键代码片段如图3所示。

4.2 地理围栏实现

服务端使用百度地图插件进行地理围栏设置,App端通过uni-app中的高德地图插件获取GPS数据并通过HTTP POST请求向服务端提供的API接口传送位置数据并解析服务端返回的判断结果。如果服务端判断App 端越界,则App端使用uni-app中的showModal方法弹出模态对话框进行提示并完成后续动作。关键代码片段如图4所示。

4.3 跑步记录实现

跑步结束后App 端使用uni-app 中的uploadFile方法上传跑步数据,其中包括打卡照片、学号、用户名、本次跑步时间、配速、里程、路径坐标等信息。使用uni-app中的request方法向服务端提供的API接口发送HTTP POST请求获取跑步记录列表数据或某一条记录的详细数据。关键代码片段如图5所示。

4.4 实现效果展示

跑步模块主要界面效果如图6所示。

5 结束语

智慧乐跑App是使用跨平台解决方案调用移动端GPS和传感器实现运动监测记录的一种尝试,由于文章篇幅有限,只介绍了跑步核心模块的设计与实现。后期将考虑基于移动端丰富的各类传感器,在已有功能的基础上实现更多的运动项目打卡功能,增强App的功能性。