# 健身 App 首页 - 产品需求文档（PRD）

## 1. 产品概述

### 1.1 产品定位
健身 App 首页是一款面向健身爱好者的移动端应用首页，旨在为用户提供直观的运动数据展示、目标管理和课程推荐功能。通过现代化的暗黑主题设计和流畅的交互体验，激励用户坚持运动，养成健康生活习惯。

### 1.2 目标用户
- **主要用户**：18-45 岁的健身爱好者
- **使用场景**：日常健身打卡、查看运动数据、选择训练课程
- **用户特征**：
  - 关注个人健康和体型管理
  - 习惯使用移动设备记录运动数据
  - 喜欢视觉化的数据呈现方式
  - 需要专业的训练指导

### 1.3 产品目标
- 提升用户运动积极性，增加日活跃度
- 通过数据可视化帮助用户了解运动进展
- 推荐个性化课程，提高课程转化率
- 打造沉浸式的运动体验，增强用户粘性

## 2. 业务需求

### 2.1 核心功能

#### 功能 1：运动数据统计
**需求描述**：
用户打开首页后，能够一目了然地看到今日的运动数据统计，包括卡路里消耗、运动时长和连续运动天数。

**业务价值**：
- 让用户快速了解今日运动成果
- 通过连续天数激励用户保持运动习惯
- 数据可视化增强用户成就感

**功能要求**：
- 显示三个核心指标：卡路里消耗（kcal）、运动分钟数、连续运动天数
- 每个指标使用独立卡片展示，配有图标
- 数据实时更新，反映最新运动状态

#### 功能 2：每日目标管理
**需求描述**：
用户可以设定每日卡路里消耗目标，并通过环形进度条直观地查看目标完成进度。

**业务价值**：
- 帮助用户设定明确的运动目标
- 通过可视化进度激励用户完成目标
- 提供快速启动训练的入口

**功能要求**：
- 显示环形进度条，展示目标完成百分比
- 显示已完成和总目标的具体数值（如：328/500 kcal）
- 提供"开始训练"按钮，快速启动训练流程
- 支持自定义每日目标值

#### 功能 3：课程推荐
**需求描述**：
根据用户的运动偏好和历史数据，推荐适合的训练课程，用户可以浏览并选择感兴趣的课程。

**业务价值**：
- 提高课程曝光率和转化率
- 帮助用户发现适合的训练内容
- 增加用户在 App 内的停留时间

**功能要求**：
- 横向滚动展示课程列表，节省垂直空间
- 每个课程卡片显示：封面图、课程标题、时长、难度等级、分类标签
- 支持点击课程卡片查看详情
- 课程列表支持动态加载

#### 功能 4：底部导航
**需求描述**：
提供固定在底部的导航栏，用户可以快速切换到不同的功能模块。

**业务价值**：
- 提供清晰的信息架构
- 降低用户操作成本
- 符合移动端应用的交互习惯

**功能要求**：
- 固定在页面底部，始终可见
- 包含 4 个导航项：首页、计划、统计、我的
- 当前选中的导航项高亮显示
- 点击导航项切换到对应页面

### 2.2 用户场景

#### 场景 1：晨间查看运动数据
**角色**：健身爱好者小李
**场景**：
1. 早上起床后，小李打开健身 App
2. 首页显示昨日运动数据：消耗 450 kcal，运动 60 分钟，连续 5 天
3. 小李看到连续天数，感到很有成就感
4. 查看今日目标进度为 0%，决定开始今天的训练

**预期结果**：
- 用户能够快速了解运动进展
- 连续天数激励用户保持运动习惯

#### 场景 2：选择训练课程
**角色**：健身新手小王
**场景**：
1. 小王想要开始训练，但不知道做什么
2. 在首页看到"为你推荐"课程列表
3. 横向滑动浏览不同课程：HIIT 燃脂、腹肌训练、拉伸放松
4. 看到"HIIT 高强度燃脂"课程，时长 20 分钟，难度 K3
5. 点击课程卡片，进入课程详情页

**预期结果**：
- 用户能够轻松发现适合的课程
- 课程信息清晰，帮助用户做出选择

#### 场景 3：完成每日目标
**角色**：上班族小张
**场景**：
1. 下班后，小张打开 App 查看今日进度
2. 看到环形进度条显示 85%（425/500 kcal）
3. 距离目标还差 75 kcal
4. 点击"开始训练"按钮，选择一个 10 分钟的快速训练
5. 完成训练后，进度条更新为 100%

**预期结果**：
- 用户能够清晰了解距离目标的差距
- 快速启动训练，完成每日目标

### 2.3 业务规则

#### 规则 1：数据统计规则
- 卡路里消耗：累计当日所有训练的卡路里消耗
- 运动时长：累计当日所有训练的有效运动时间
- 连续天数：从最近一次运动日开始，连续运动的天数（中断则重置为 0）

#### 规则 2：目标进度计算
- 进度百分比 = (已完成卡路里 / 目标卡路里) × 100%
- 进度超过 100% 时，显示为 100%
- 目标值可由用户自定义，默认为 500 kcal

#### 规则 3：课程推荐规则
- 根据用户历史训练数据推荐相似课程
- 优先推荐用户未完成的课程
- 课程列表至少展示 3 个课程
- 课程按推荐优先级排序

#### 规则 4：导航切换规则
- 当前页面对应的导航项高亮显示
- 点击导航项时，切换到对应页面
- 首页为默认选中的导航项

## 3. 功能优先级

| 优先级 | 功能 | 理由 |
|--------|------|------|
| P0（必须有）| 运动数据统计 | 核心功能，用户最关注的信息 |
| P0（必须有）| 每日目标管理 | 核心功能，激励用户的关键 |
| P0（必须有）| 底部导航 | 基础交互，信息架构的基础 |
| P1（应该有）| 课程推荐 | 重要功能，提高课程转化率 |
| P2（可以有）| 浮动按钮 | 辅助功能，提供快捷操作入口 |

## 4. 非功能需求

### 4.1 性能要求
- 页面首次加载时间 < 2 秒
- 页面切换动画流畅，无卡顿
- 课程列表横向滚动流畅

### 4.2 兼容性要求
- 支持 iOS 12+ 和 Android 8+
- 适配主流移动设备屏幕尺寸（375px - 428px 宽度）
- 支持深色模式

### 4.3 可用性要求
- 界面简洁直观，新用户无需引导即可使用
- 关键操作（如开始训练）触摸区域 ≥ 44×44 pt
- 色彩对比度符合 WCAG AA 标准

### 4.4 可维护性要求
- 主题色可配置，支持品牌定制
- 数据源可替换，支持不同的后端接口
- 组件化设计，便于复用和扩展

## 5. 设计要求

### 5.1 视觉风格
- **主题**：暗黑模式，营造专业运动氛围
- **色彩**：
  - 背景色：深灰黑色（#121212）
  - 强调色：霓虹绿（#a6ff00），可配置
  - 文字色：白色（#ffffff）和灰色（#888888）
- **字体**：系统默认字体，确保跨平台一致性
- **圆角**：统一使用 16px 圆角，营造柔和感

### 5.2 布局规范
- **间距**：统一使用 8px 栅格系统（8、16、24px）
- **卡片**：使用半透明背景和阴影，营造层次感
- **列表**：横向滚动列表隐藏滚动条，提供流畅体验
- **底部导航**：固定在底部，高度 64px（含安全区）

### 5.3 交互规范
- **点击反馈**：所有可点击元素提供视觉反馈（缩放、颜色变化）
- **加载状态**：数据加载时显示骨架屏或加载动画
- **错误提示**：网络错误或数据异常时，显示友好的错误提示
- **动画**：页面切换和状态变化使用流畅的过渡动画

## 6. 数据需求

### 6.1 输入数据
- **用户信息**：用户名、头像 URL
- **运动数据**：今日卡路里消耗、运动时长、连续天数
- **目标数据**：每日目标值、当前完成进度
- **课程数据**：课程列表（ID、标题、时长、难度、分类、封面图）

### 6.2 输出数据
- **事件数据**：用户操作事件（点击课程、开始训练、切换导航）
- **状态数据**：当前选中的导航项、目标完成进度

## 7. 成功指标

### 7.1 用户指标
- 日活跃用户数（DAU）提升 20%
- 用户平均停留时长增加 30%
- 每日目标完成率达到 60%

### 7.2 业务指标
- 课程点击率（CTR）达到 15%
- 课程转化率提升 10%
- 用户连续运动天数平均值达到 7 天

### 7.3 体验指标
- 页面加载时间 < 2 秒
- 用户满意度评分 ≥ 4.5/5
- 崩溃率 < 0.1%

## 8. 风险与限制

### 8.1 技术风险
- 数据同步延迟可能导致进度显示不准确
- 图片加载失败影响课程展示效果
- 不同设备的性能差异影响动画流畅度

### 8.2 业务风险
- 课程推荐算法不准确，影响用户体验
- 目标设定过高或过低，影响用户积极性
- 竞品功能更新快，需要持续迭代

### 8.3 限制条件
- 本版本仅支持移动端，不支持桌面端
- 课程数据依赖后端接口，离线状态下功能受限
- 暂不支持社交功能（如好友排行榜）

## 9. 后续规划

### 9.1 短期规划（1-3 个月）
- 增加运动数据趋势图表
- 支持自定义目标类型（步数、运动时长等）
- 优化课程推荐算法

### 9.2 中期规划（3-6 个月）
- 增加社交功能（好友排行榜、运动打卡分享）
- 支持训练计划管理
- 增加运动提醒和激励机制

### 9.3 长期规划（6-12 个月）
- 接入智能穿戴设备数据
- 提供 AI 私教功能
- 支持多语言和国际化

## 10. 附录

### 10.1 术语表
- **kcal**：千卡，能量单位，用于衡量卡路里消耗
- **HIIT**：高强度间歇训练（High-Intensity Interval Training）
- **K1/K2/K3**：课程难度等级，K1 为入门，K3 为高级
- **DAU**：日活跃用户数（Daily Active Users）
- **CTR**：点击率（Click-Through Rate）

### 10.2 参考资料
- 竞品分析：Keep、Nike Training Club、Fitbit
- 设计参考：Material Design、iOS Human Interface Guidelines
- 用户调研报告：《2024 年健身 App 用户行为研究》


