小V健身:基于 HarmonyOS 的健身管理应用项目

一个简单的自用健身项目

分支2Tags0
文件最后提交记录最后更新时间
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前
10 个月前

小V健身 - HarmonyOS 健身管理应用

项目简介

小V健身是一款基于HarmonyOS开发的健身管理应用,旨在帮助用户记录日常运动数据、设定健身目标、追踪成就,提供完整的健身管理体验。应用支持任务创建、进度跟踪、成就系统等核心功能。

技术栈

  • 开发平台: HarmonyOS 6.0.0 (API 20)
  • 开发语言: ArkTS (TypeScript扩展)
  • UI框架: ArkUI
  • 构建工具: Hvigor
  • 开发工具: DevEco Studio
  • 数据存储: HarmonyOS 关系数据库 (@ohos.data.relationalStore)

项目结构

health/
├── AppScope/                    # 应用级配置
│   ├── app.json5               # 应用基础配置
│   └── resources/              # 应用级资源
├── entry/                       # 主模块
│   ├── src/main/               # 主要源码
│   │   ├── ets/                # ArkTS源码
│   │   │   ├── pages/          # 页面文件
│   │   │   │   ├── Index.ets           # 启动页(隐私政策)
│   │   │   │   ├── MainIndexPage.ets   # 主页面(Tab导航)
│   │   │   │   └── AddTaskPage.ets     # 添加任务页
│   │   │   ├── component/       # 自定义组件
│   │   │   │   └── PersonalItem.ets    # 个人中心条目组件
│   │   │   ├── dialog/          # 弹窗组件
│   │   │   │   ├── DateDialog.ets       # 日期选择弹窗
│   │   │   │   ├── TaskAddDialog.ets    # 任务添加弹窗
│   │   │   │   └── UserPrivacyDialog.ets # 用户隐私弹窗
│   │   │   ├── view/            # 视图组件
│   │   │   │   ├── achieve/      # 成就页面
│   │   │   │   │   ├── AchievementContent.ets  # 成就内容
│   │   │   │   │   └── AchievementTop.ets       # 成就顶部
│   │   │   │   ├── home/         # 首页
│   │   │   │   │   ├── HomeContent.ets          # 首页内容
│   │   │   │   │   └── Addbtn.ets              # 添加按钮
│   │   │   │   ├── main/         # 主页内容
│   │   │   │   │   └── MainContent.ets         # 主内容(空)
│   │   │   │   └── person/       # 个人中心
│   │   │   │       └── PersonContent.ets       # 个人中心内容
│   │   │   ├── model/           # 数据模型
│   │   │   │   ├── RecordItemModel.ets         # 记录项模型
│   │   │   │   └── RecordModel.ets             # 记录数据模型
│   │   │   ├── service/         # 业务服务
│   │   │   │   └── KeepService.ets             # 健身服务
│   │   │   ├── viewmodel/       # 视图模型
│   │   │   │   ├── AchievementInfo.ets         # 成就信息
│   │   │   │   ├── AchievementMapInfo.ets      # 成就映射信息
│   │   │   │   ├── ColumnInfo.ets              # 列信息
│   │   │   │   ├── KeepInfo.ets                # 健身信息
│   │   │   │   ├── RecordItem.ets              # 记录项
│   │   │   │   └── RecordVO.ets                # 记录视图对象
│   │   │   ├── commond/         # 公共类
│   │   │   │   └── tables/                     # 数据表定义
│   │   │   │       └── RecordPO.ets            # 记录持久化对象
│   │   │   ├── util/            # 工具类
│   │   │   │   ├── DateUtil.ets                # 日期工具类
│   │   │   │   ├── DBUtil.ets                  # 数据库工具类
│   │   │   │   ├── Logger.ets                  # 日志工具类
│   │   │   │   └── PreferencesUtil.ets         # 首选项工具类
│   │   │   ├── entryability/    # 应用入口
│   │   │   │   └── EntryAbility.ets            # 应用入口能力
│   │   │   └── entrybackupability/ # 备份能力
│   │   │       └── EntryBackupAbility.ets      # 备份能力
│   │   └── resources/           # 资源文件
│   │       ├── base/            # 基础资源
│   │       │   ├── element/     # 元素资源
│   │       │   │   ├── color.json
│   │       │   │   ├── float.json
│   │       │   │   └── string.json
│   │       │   └── media/        # 媒体资源(图标、图片)
│   │       └── dark/            # 暗色主题资源
│   ├── oh-package.json5         # 模块依赖配置
│   └── build-profile.json5      # 构建配置
├── oh-package.json5             # 项目依赖配置
├── build-profile.json5          # 项目构建配置
├── hvigorfile.ts                # 构建脚本
├── code-linter.json5            # 代码检查配置
├── local.properties             # 本地配置
└── .gitignore                   # Git忽略文件

主要功能

1. 隐私政策与用户协议

  • 启动页面: 应用首次启动时显示用户隐私政策
  • 数据存储: 使用@ohos.data.preferences存储用户隐私同意状态
  • 权限管理: 用户可选择同意或拒绝隐私政策

2. 任务管理系统

  • 创建运动任务: 支持添加各种类型的运动任务(跑步、游泳、跳绳等)
  • 任务属性设置: 设置任务名称、目标数量、单位、消耗卡路里等
  • 任务分类管理: 按运动类型进行分类和组织
  • 实时进度跟踪: 点击任务项即可增加完成数量

3. 数据记录与统计

  • 日期切换: 支持查看不同日期的运动数据
  • 进度显示: 显示各项运动的完成进度(已完成/总目标)
  • 卡路里计算: 自动计算任务完成后的卡路里消耗
  • 数据持久化: 使用关系数据库存储所有运动记录

4. 成就系统

  • 成就徽章: 根据运动天数和完成度解锁不同成就
  • 进度追踪: 实时显示成就完成进度
  • 激励机制: 通过成就系统激励用户坚持运动
  • 成就展示: 图形化展示已获得和未获得的成就

5. 个人中心

  • 目标设置: 设置每日运动目标(千卡消耗)
  • 历史记录: 查看历史运动数据和统计信息
  • 关于应用: 应用信息和版本说明
  • 隐私设置: 管理个人隐私相关设置

6. 数据管理

  • 关系数据库: 使用HarmonyOS关系数据库存储运动记录
  • 数据完整性: 确保数据的一致性和完整性
  • 异常处理: 完善的错误处理和日志记录机制

核心组件说明

页面组件

  • Index.ets: 应用启动页,处理隐私政策确认和应用初始化
  • MainIndexPage.ets: 主界面,包含底部Tab导航(首页、成就、个人中心)
  • AddTaskPage.ets: 运动任务添加页面,支持创建新的运动任务

视图组件

  • HomeContent.ets: 首页内容展示,包含运动数据列表和实时更新机制
  • AchievementContent.ets: 成就页面内容,展示用户获得的成就和进度
  • AchievementTop.ets: 成就页面顶部组件,显示卡路里消耗统计
  • PersonContent.ets: 个人中心页面内容
  • MainContent.ets: 主内容组件(预留扩展)

对话框组件

  • DateDialog.ets: 日期选择对话框,支持选择查看历史数据
  • TaskAddDialog.ets: 任务添加对话框,用于创建新任务
  • UserPrivacyDialog.ets: 用户隐私政策对话框

自定义组件

  • PersonalItem.ets: 个人中心条目组件
  • Addbtn.ets: 添加按钮组件

业务服务

  • KeepService.ets: 健身服务类,处理运动记录的增删改查业务逻辑

数据模型

  • RecordModel.ets: 记录数据模型,处理数据库操作
  • RecordItemModel.ets: 记录项模型
  • AchievementInfo.ets: 成就信息数据模型
  • AchievementMapInfo.ets: 成就映射信息模型
  • RecordVO.ets: 记录视图对象,用于UI显示
  • RecordItem.ets: 记录项数据模型
  • KeepInfo.ets: 健身信息统计模型
  • RecordPO.ets: 记录持久化对象,用于数据库存储

工具类

  • DBUtil.ets: 数据库工具类,管理关系数据库操作
  • DateUtil.ets: 日期格式化和计算工具类
  • Logger.ets: 日志工具类,统一的日志管理
  • PreferencesUtil.ets: 首选项工具类,管理用户偏好设置

开发规范

文件命名规范

  • 页面文件:使用PascalCase命名,如MainIndexPage.ets
  • 组件文件:使用PascalCase命名,如PersonalItem.ets
  • 工具类:使用PascalCase命名,如DateUtil.ets
  • 资源文件:使用下划线命名,如ic_achieve.svg

代码规范

  • 使用ArkTS语法,遵循TypeScript最佳实践
  • 组件使用@Component装饰器
  • 状态管理使用@State、@Prop、@StorageProp等装饰器
  • 页面跳转使用@kit.ArkUI的router模块

资源管理

  • 图片资源放在resources/base/media/目录
  • 字符串资源使用$r()引用
  • 颜色和尺寸定义在element目录下

构建与运行

环境要求

  • HarmonyOS SDK 6.0.0 (API 20)
  • DevEco Studio 4.0+
  • Node.js 16+

构建命令

# 安装依赖
hvigorw install

# 构建项目
hvigorw assembleHap

# 运行到设备
hvigorw installHap

配置说明

  • 应用包名:com.example.v_health
  • 版本号:1.0.0
  • 支持设备:手机、平板、2合1设备、车载、穿戴、电视

数据存储

应用使用HarmonyOS的以下数据存储方式:

  1. 关系数据库 (@ohos.data.relationalStore): 存储运动记录和任务数据
    • 表名:record
    • 支持增删改查操作
    • 保证数据完整性和一致性
  2. 用户首选项 (@ohos.data.preferences): 存储用户隐私同意状态和偏好设置
  3. 全局状态管理 (@StorageProp/@StorageLink): 管理应用全局状态
    • 日期状态:date
    • 刷新状态:refreshing

数据库设计

  • 记录表 (record): 存储所有运动记录
    • id: 记录ID (主键)
    • keepId: 运动项目ID
    • calorie: 消耗卡路里
    • amount: 目标数量
    • successAmount: 完成数量
    • createTime: 创建时间戳

已实现的技术特性

数据管理

  • ✅ 关系数据库集成: 完整的数据库操作支持
  • ✅ 异步数据操作: 所有数据库操作支持异步处理
  • ✅ 错误处理机制: 完善的异常处理和日志记录
  • ✅ 数据一致性: 确保UI与数据库数据同步

用户界面

  • ✅ 响应式设计: 支持不同屏幕尺寸适配
  • ✅ 实时数据更新: 点击任务后立即更新UI
  • ✅ 下拉刷新: 支持列表数据刷新
  • ✅ 对话框交互: 完善的用户交互体验

业务逻辑

  • ✅ 任务管理: 创建、删除、更新任务功能
  • ✅ 进度跟踪: 实时显示任务完成进度
  • ✅ 成就系统: 基于完成度的成就展示
  • ✅ 数据统计: 卡路里消耗等统计数据

后续规划

  1. 数据备份恢复: 支持数据导出和导入功能
  2. 云同步: 支持云端数据备份和多设备同步
  3. 社交功能: 添加好友系统和运动分享功能
  4. 智能推荐: 基于用户数据的个性化运动推荐
  5. 健康数据集成: 对接系统健康数据API
  6. 图表展示: 添加数据可视化图表功能
  7. 运动模板: 预设常用运动任务模板
  8. 提醒功能: 运动提醒和目标提醒

开发团队

  • 项目负责人:VON
  • 开发语言:ArkTS
  • UI框架:ArkUI
  • 目标平台:HarmonyOS

版本历史

v1.0.0 (当前版本)

  • 实现基础的任务管理功能
  • 完成数据库集成和数据持久化
  • 实现成就系统和统计功能
  • 优化用户界面和交互体验
  • 修复数据更新和同步问题

最后更新:2025-12-17

项目介绍

一个简单的自用健身项目

定制我的领域