一个简单的自用健身项目
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 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的以下数据存储方式:
- 关系数据库 (
@ohos.data.relationalStore): 存储运动记录和任务数据- 表名:
record - 支持增删改查操作
- 保证数据完整性和一致性
- 表名:
- 用户首选项 (
@ohos.data.preferences): 存储用户隐私同意状态和偏好设置 - 全局状态管理 (
@StorageProp/@StorageLink): 管理应用全局状态- 日期状态:
date - 刷新状态:
refreshing
- 日期状态:
数据库设计
- 记录表 (record): 存储所有运动记录
- id: 记录ID (主键)
- keepId: 运动项目ID
- calorie: 消耗卡路里
- amount: 目标数量
- successAmount: 完成数量
- createTime: 创建时间戳
已实现的技术特性
数据管理
- ✅ 关系数据库集成: 完整的数据库操作支持
- ✅ 异步数据操作: 所有数据库操作支持异步处理
- ✅ 错误处理机制: 完善的异常处理和日志记录
- ✅ 数据一致性: 确保UI与数据库数据同步
用户界面
- ✅ 响应式设计: 支持不同屏幕尺寸适配
- ✅ 实时数据更新: 点击任务后立即更新UI
- ✅ 下拉刷新: 支持列表数据刷新
- ✅ 对话框交互: 完善的用户交互体验
业务逻辑
- ✅ 任务管理: 创建、删除、更新任务功能
- ✅ 进度跟踪: 实时显示任务完成进度
- ✅ 成就系统: 基于完成度的成就展示
- ✅ 数据统计: 卡路里消耗等统计数据
后续规划
- 数据备份恢复: 支持数据导出和导入功能
- 云同步: 支持云端数据备份和多设备同步
- 社交功能: 添加好友系统和运动分享功能
- 智能推荐: 基于用户数据的个性化运动推荐
- 健康数据集成: 对接系统健康数据API
- 图表展示: 添加数据可视化图表功能
- 运动模板: 预设常用运动任务模板
- 提醒功能: 运动提醒和目标提醒
开发团队
- 项目负责人:VON
- 开发语言:ArkTS
- UI框架:ArkUI
- 目标平台:HarmonyOS
版本历史
v1.0.0 (当前版本)
- 实现基础的任务管理功能
- 完成数据库集成和数据持久化
- 实现成就系统和统计功能
- 优化用户界面和交互体验
- 修复数据更新和同步问题
最后更新:2025-12-17