richarjiang
971aebd560
feat(workout): 新增锻炼结束监听和个性化通知功能
...
实现了iOS HealthKit锻炼数据实时监听,当用户完成锻炼时自动发送个性化鼓励通知。包括锻炼类型筛选、时间范围控制、用户偏好设置等完整功能,并提供了测试工具和详细文档。
2025-10-13 10:05:02 +08:00
ed3a178aa0
feat(workout): 优化心率图表性能并移除每日总结通知功能
...
- 重构心率数据采样算法,采用智能采样保留峰值、谷值和变化率大的点
- 减少心率图表最大数据点数和查询限制,提升渲染性能
- 移除图表背景线样式,简化视觉呈现
- 完全移除每日总结通知功能相关代码和调用
2025-10-11 21:53:18 +08:00
richarjiang
d43d8c692f
feat(workout): 重构锻炼模块并新增详细数据展示
...
- 移除旧的锻炼会话页面和布局文件
- 新增锻炼详情模态框组件,支持心率区间、运动强度等详细数据展示
- 优化锻炼历史页面,增加月度统计卡片和交互式详情查看
- 新增锻炼详情服务,提供心率分析、METs计算等功能
- 更新应用版本至1.0.17并调整iOS后台任务配置
- 添加项目规则文档,明确React Native开发规范
2025-10-11 17:20:51 +08:00
79ddd41a49
feat(workout): 新增锻炼历史记录功能与健康数据集成
...
- 新增锻炼历史页面,展示最近一个月的锻炼记录详情
- 添加锻炼汇总卡片组件,在统计页面显示当日锻炼数据
- 集成HealthKit锻炼数据获取,支持多种运动类型和详细信息
- 完善锻炼数据处理工具,包含统计分析和格式化功能
- 优化后台任务,随机选择挑战发送鼓励通知
- 版本升级至1.0.16
2025-10-02 22:13:59 +08:00
richarjiang
8f847465ef
feat(challenges): 新增挑战鼓励提醒后台任务与通知支持
...
- 在 backgroundTaskManager 中增加 executeChallengeReminderTask,每日检查已加入且未打卡的挑战并发送鼓励通知
- 扩展 ChallengeNotificationHelpers 提供 sendEncouragementNotification 方法
- 新增 NotificationTypes.CHALLENGE_ENCOURAGEMENT 及对应点击跳转处理
- challengesApi 补充 checkedInToday 字段用于判断今日是否已打卡
- 临时注释掉挑战列表与详情页头部的礼物/分享按钮,避免干扰主流程
2025-09-29 17:24:07 +08:00
richarjiang
a014998848
feat(water): 重构饮水模块并新增自定义提醒设置功能
...
- 新增饮水详情页面 `/water/detail` 展示每日饮水记录与统计
- 新增饮水设置页面 `/water/settings` 支持目标与快速添加配置
- 新增喝水提醒设置页面 `/water/reminder-settings` 支持自定义时间段与间隔
- 重构 `useWaterData` Hook,支持按日期查询与实时刷新
- 新增 `WaterNotificationHelpers.scheduleCustomWaterReminders` 实现个性化提醒
- 优化心情编辑页键盘体验,新增 `KeyboardAvoidingView` 与滚动逻辑
- 升级版本号至 1.0.14 并补充路由常量
- 补充用户偏好存储字段 `waterReminderEnabled/startTime/endTime/interval`
- 废弃后台定时任务中的旧版喝水提醒逻辑,改为用户手动管理
2025-09-26 11:02:17 +08:00
richarjiang
79ab354f31
feat: 新增基础代谢详情页面并优化HRV数据获取逻辑
...
- 新增基础代谢详情页面,包含图表展示、数据缓存和防抖机制
- 优化HRV数据获取逻辑,支持实时、近期和历史数据的智能获取
- 移除WaterIntakeCard和WaterSettings中的登录验证逻辑
- 更新饮水数据管理hook,直接使用HealthKit数据
- 添加饮水目标存储和获取功能
- 更新依赖包版本
2025-09-25 14:15:42 +08:00
richarjiang
83e534c4a7
feat(health): 优化HRV数据质量分析与获取逻辑
...
- 新增HRV质量评分算法,综合评估数值有效性、数据源可靠性与元数据完整性
- 实现最佳质量HRV值自动选取,优先手动测量并过滤异常值
- 扩展TS类型定义,支持完整HRV数据结构及质量分析接口
- 移除StressMeter中未使用的时间格式化函数与注释代码
- 默认采样数提升至50条,增强质量分析准确性
2025-09-24 18:29:58 +08:00
richarjiang
e6dfd4d59a
feat(health): 重构营养卡片数据获取逻辑,支持基础代谢与运动消耗分离
...
- 新增 fetchCompleteNutritionCardData 异步 action,统一拉取营养、健康与基础代谢数据
- NutritionRadarCard 改用 Redux 数据源,移除 props 透传,自动根据日期刷新
- BasalMetabolismCard 新增详情弹窗,展示 BMR 计算公式、正常区间及提升策略
- StepsCard 与 StepsCardOptimized 引入 InteractionManager 与动画懒加载,减少 UI 阻塞
- HealthKitManager 新增饮水读写接口,支持将饮水记录同步至 HealthKit
- 移除 statistics 页面冗余 mock 与 nutrition/health 重复请求,缓存时间统一为 5 分钟
2025-09-23 10:01:50 +08:00
richarjiang
dbe460a084
refactor(health): remove HRV field and improve notification types
...
- Remove heart rate variability (hrv) field from health data interfaces and implementations
- Update default member name to Chinese localization
- Replace type assertions with proper enum types in notification schedulers
2025-09-22 09:02:42 +08:00
richarjiang
fb85a5f30c
refactor(health): remove basalEnergyBurned from global state and move to local component
...
Remove basalEnergyBurned from global health data structure and refactor BasalMetabolismCard to fetch its own data locally. This decouples the component from global state and improves data locality.
- Remove basalEnergyBurned from HealthData interface and health utilities
- Update BasalMetabolismCard to use selectedDate prop and fetch data locally
- Simplify statistics screen by removing unused basalMetabolism variable
- Update nutrition radar card to use activeCalories only for burned calories calculation
2025-09-19 17:01:45 +08:00
richarjiang
9bcea25a2f
feat(auth): 为未登录用户添加登录引导界面
...
为目标页面、营养记录、食物添加等功能添加登录状态检查和引导界面,确保用户在未登录状态下能够获得清晰的登录提示和指引。
- 在目标页面添加精美的未登录引导界面,包含渐变背景和登录按钮
- 为食物记录相关组件添加登录状态检查,未登录时自动跳转登录页面
- 重构血氧饱和度卡片为独立数据获取,移除对外部数据依赖
- 移除个人页面的实验性SwiftUI组件,统一使用原生TouchableOpacity
- 清理统计页面和营养记录页面的冗余代码和未使用变量
2025-09-19 15:52:24 +08:00
richarjiang
ccfccca7bc
feat(health): 完善HealthKit权限管理和数据获取系统
...
- 重构权限管理,新增SimpleEventEmitter实现状态监听
- 实现完整的健身圆环数据获取(活动热量、锻炼时间、站立小时)
- 优化组件状态管理,支持实时数据刷新和权限状态响应
- 新增useHealthPermissions Hook,简化权限状态管理
- 完善iOS原生代码,支持按小时统计健身数据
- 优化应用启动时权限初始化流程,避免启动弹窗
BREAKING CHANGE: FitnessRingsCard组件API变更,移除手动传参改为自动获取数据
2025-09-19 14:16:11 +08:00
184fb672b7
perf: 完善接口
2025-09-18 22:40:05 +08:00
richarjiang
2c382ab8de
feat: 支持新接口
2025-09-18 16:27:11 +08:00
richarjiang
6f0c872223
feat: 支持原生模块健康数据
2025-09-18 09:51:37 +08:00
richarjiang
6b7776e51d
feat: 支持 healthkit
2025-09-17 18:05:11 +08:00
richarjiang
2357596665
refactor(storage): 迁移 AsyncStorage 至 expo-sqlite/kv-store
...
- 统一替换所有 @react-native-async-storage/async-storage 导入为自定义 kvStore
- 新增 kvStore.ts 封装 expo-sqlite/kv-store,保持与 AsyncStorage 完全兼容
- 新增同步读写方法,提升性能
- 引入 expo-sqlite 依赖并更新 lock 文件
BREAKING CHANGE: 移除 @react-native-async-storage/async-storage 依赖,需重新安装依赖并清理旧数据
2025-09-15 12:51:18 +08:00
richarjiang
91df01bd79
feat(auth): 预加载用户数据并优化登录状态同步
...
- 在启动屏预加载用户 token 与资料,避免首页白屏
- 新增 rehydrateUserSync 同步注入 Redux,减少异步等待
- 登录页兼容 ERR_REQUEST_CANCELED 取消场景
- 各页面统一依赖 isLoggedIn 判断,移除冗余控制台日志
- 步数卡片与详情页改为实时拉取健康数据,不再缓存至 Redux
- 后台任务注册移至顶层,防止重复定义
- 体重记录、HeaderBar 等 UI 细节样式微调
2025-09-15 09:56:42 +08:00
55d133c470
feat: 更新 UI 样式以及消息通知
2025-09-14 21:41:33 +08:00
ab87bddd51
fix: 修复压力数据
2025-09-12 22:51:14 +08:00
richarjiang
edac180dd6
feat(health): 统一使用共享的HealthKit权限初始化方法并简化配置
...
将sleepHealthKit模块中的HealthKit权限初始化逻辑替换为使用health工具中的通用ensureHealthPermissions方法,移除重复的权限配置代码。同时更新后台任务标识符以保持一致性。
2025-09-12 15:54:33 +08:00
richarjiang
3a4a55b78e
feat: 新增语音记录饮食功能与开发者调试模块
...
- 集成 @react-native-voice/voice 实现中文语音识别,支持“一句话记录”餐食
- 新增语音录制页面,含波形动画、音量反馈与识别结果确认
- FloatingFoodOverlay 新增语音入口,打通拍照/库/语音三种记录方式
- 添加麦克风与语音识别权限描述(iOS Info.plist 与 Android manifest)
- 实现开发者模式:连续三次点击用户名激活,含日志查看、导出与清除
- 新增 logger 工具类,统一日志存储(AsyncStorage)与按级别输出
- 重构 BackgroundTaskManager 为单例并支持 Promise 初始化,避免重复注册
- 移除 sleep-detail 多余渐变背景,改用 ThemedView 统一主题
- 新增通用 haptic 反馈函数,支持多种震动类型(iOS only)
- 升级 expo-background-task、expo-notifications、expo-task-manager 至兼容版本
2025-09-11 19:11:09 +08:00
richarjiang
35d6b74451
feat(widget): 增强Widget数据同步机制并优化UI设计
...
- 在useWaterData中统一处理数据变更后的Widget同步逻辑
- 新增数组类型数据存取方法支持更复杂数据结构
- 重构Widget UI为圆形进度条设计,提升视觉体验
- 修复数据同步时可能存在的竞态条件问题
- 优化错误处理,确保Widget同步失败不影响主功能
2025-09-11 10:38:54 +08:00
richarjiang
62690ee3fc
refactor(sleep): 重构睡眠数据获取逻辑,移除冗余代码并优化组件结构
...
- 从 healthSlice 和 health.ts 中移除 sleepDuration 字段及相关获取逻辑
- 将 SleepCard 改为按需异步获取睡眠数据,支持传入指定日期
- 睡眠详情页改为通过路由参数接收日期,支持查看历史记录
- 移除 statistics 页面对 sleepDuration 的直接依赖,统一由 SleepCard 管理
- 删除未使用的 SleepStageChart 组件,简化页面结构
2025-09-11 09:08:51 +08:00
richarjiang
6fbdbafa3e
feat: 添加睡眠阶段时间轴组件,优化睡眠数据可视化
2025-09-10 19:03:34 +08:00
98176ee988
Refactor iOS dependencies and update HealthKit integration
...
- Removed NitroModules and ReactNativeHealthkit from Podfile.lock and package files.
- Updated Info.plist to increment app version from 2 to 3.
- Refactored background task manager to define background tasks within the class.
- Added new utility file for sleep data management, including fetching sleep samples, calculating sleep statistics, and generating sleep quality scores.
2025-09-09 23:16:54 +08:00
richarjiang
a7f5379d5a
feat: Update Podfile.lock to include NitroModules and ReactNativeHealthkit dependencies
...
fix: Adjust objectVersion in project.pbxproj and improve WaterWidget folder exception handling
refactor: Remove sleepService.ts as part of code cleanup
chore: Comment out HealthKit initialization in health.ts and clean up fetchSleepDuration function
2025-09-09 19:27:19 +08:00
richarjiang
e56ebe3636
feat: 完善饮水 widget
2025-09-09 14:26:16 +08:00
richarjiang
bf3304eb06
feat: 优化提醒注册逻辑,确保用户姓名存在时注册午餐、晚餐和心情提醒;更新睡眠详情页面,添加清醒时间段的判断和模拟数据展示;调整样式以提升用户体验
2025-09-08 17:45:30 +08:00
richarjiang
e91283fe4e
feat: 添加睡眠详情页面,集成睡眠数据获取功能,优化健康数据权限管理,更新相关组件以支持睡眠统计和展示
2025-09-08 09:54:33 +08:00
2e7daae519
feat: 更新健康数据权限描述,添加HRV数据获取测试功能,优化后台任务配置,调整压力计显示单位
2025-09-06 16:34:56 +08:00
c37c3a16b1
feat: 优化统计和步数详情页面,添加活动等级计算和展示,更新压力计组件以支持HRV值直接显示
2025-09-05 22:28:04 +08:00
3c416545db
feat: 添加最大心率功能,更新用户资料编辑页面以显示最大心率数据,优化相关组件和服务
2025-09-05 21:58:46 +08:00
richarjiang
83805a4b07
feat: Refactor MoodCalendarScreen to use dayjs for date handling and improve calendar data generation
...
feat: Update FitnessRingsCard to navigate to fitness rings detail page on press
feat: Modify NutritionRadarCard to enhance UI and add haptic feedback on actions
feat: Add FITNESS_RINGS_DETAIL route for navigation
fix: Adjust minimum fetch interval in BackgroundTaskManager for background tasks
feat: Implement haptic feedback utility functions for better user experience
feat: Extend health permissions to include Apple Exercise Time and Apple Stand Time
feat: Add functions to fetch hourly activity, exercise, and stand data for improved health tracking
feat: Enhance user preferences to manage fitness exercise minutes and active hours info dismissal
2025-09-05 15:32:34 +08:00
richarjiang
460a7e4289
feat: 添加后台任务管理器,支持喝水和站立提醒功能
2025-09-05 10:29:02 +08:00
richarjiang
8b6ef378d0
feat: 添加用户推送通知偏好设置功能,支持开启/关闭推送通知
2025-09-03 10:58:45 +08:00
richarjiang
e33a690a36
feat: 支持将饮水记录同步到 HealthKit,新增相关功能和权限设置
2025-09-03 08:42:48 +08:00
richarjiang
70e3152158
feat: 新增喝水提醒功能,支持定期提醒和目标检查
2025-09-02 18:56:40 +08:00
richarjiang
ac748dc339
feat: 新增饮水记录功能,支持快速添加饮水量和用户偏好设置
2025-09-02 17:12:38 +08:00
richarjiang
85a3c742df
feat: 支持饮水记录卡片
2025-09-02 15:50:35 +08:00
richarjiang
a34ca556e8
feat(notifications): 新增晚餐和心情提醒功能,支持HRV压力检测和后台处理
...
- 新增晚餐提醒(18:00)和心情提醒(21:00)的定时通知
- 实现基于HRV数据的压力检测和智能鼓励通知
- 添加后台任务处理支持,修改iOS后台模式为processing
- 优化营养记录页面使用Redux状态管理,支持实时数据更新
- 重构卡路里计算公式,移除目标卡路里概念,改为基代+运动-饮食
- 新增营养目标动态计算功能,基于用户身体数据智能推荐
- 完善通知点击跳转逻辑,支持多种提醒类型的路由处理
2025-09-01 10:29:13 +08:00
6bdfda9fd3
feat: 更新统计标签和标题,优化健康数据卡片样式,调整步数和健康相关组件的样式
2025-08-30 22:37:27 +08:00
richarjiang
741688065d
feat: 支持步数卡片; 优化数据分析各类卡片样式
2025-08-30 17:07:04 +08:00
richarjiang
533b40a12d
feat: 更新 CoachScreen 和欢迎消息生成逻辑
...
- 在 CoachScreen 中优化欢迎消息的生成,整合用户配置文件数据,支持选择选项和表情
- 更新欢迎消息生成函数,返回包含内容、选择和交互类型的结构
- 在多个组件中调整样式,提升用户体验和界面一致性
- 在 Statistics 组件中添加记录更新时间,确保数据展示的准确性
- 在 FitnessRingsCard 中修正卡路里和运动时间的显示,确保数值四舍五入
2025-08-27 08:15:42 +08:00
richarjiang
3f89023447
feat: 更新 CLAUDE.md 文件及多个组件以优化用户体验和功能
...
- 更新 CLAUDE.md 文件,重构架构部分,增加认证和数据层的描述
- 在 GoalsScreen 中新增目标模板选择功能,支持用户选择和创建目标
- 在 CreateGoalModal 中添加初始数据支持,优化目标创建体验
- 新增 GoalTemplateModal 组件,提供目标模板选择界面
- 更新 NotificationHelpers,支持构建深度链接以便于导航
- 在 CoachScreen 中处理路由参数,增强用户交互体验
- 更新多个组件的样式和逻辑,提升整体用户体验
- 删除不再使用的中文回复规则文档
2025-08-26 15:04:04 +08:00
richarjiang
7f2afdf671
feat: 增强通知功能及用户体验
...
- 在 Bootstrapper 组件中新增通知服务初始化逻辑,注册每日午餐提醒
- 在 CoachScreen 中优化欢迎消息生成逻辑,整合用户配置文件数据
- 更新 GoalsScreen 组件,优化目标创建时的通知设置逻辑
- 在 NotificationTest 组件中添加调试通知状态功能,提升开发便利性
- 新增 NutritionNotificationHelpers 中的午餐提醒功能,支持每日提醒设置
- 更新相关文档,详细描述新功能和使用方法
2025-08-26 09:56:23 +08:00
richarjiang
be0a8e7393
feat: 优化健康数据相关组件及功能
...
- 在 CoachScreen 中调整键盘高度计算,移除不必要的 insets.bottom
- 更新 Statistics 组件,移除未使用的健康数据相关函数,简化代码
- 修改多个统计卡片,移除不必要的图标属性,提升组件简洁性
- 优化 HealthDataCard 和其他统计卡片的样式,提升视觉一致性
- 更新健康数据获取逻辑,确保数据处理更为准确
- 移除 MoodCard 中的多余元素,简化心情记录展示
- 调整 StressMeter 和其他组件的样式,提升用户体验
2025-08-25 12:44:40 +08:00
4f2bd76b8f
feat: 实现目标列表左滑删除功能及相关组件
...
- 在目标列表中添加左滑删除功能,用户可通过左滑手势显示删除按钮并确认删除目标
- 修改 GoalCard 组件,使用 Swipeable 组件包装卡片内容,支持删除操作
- 更新目标列表页面,集成删除目标的逻辑,确保与 Redux 状态管理一致
- 添加开发模式下的模拟数据,方便测试删除功能
- 更新相关文档,详细描述左滑删除功能的实现和使用方法
2025-08-23 17:58:39 +08:00
20a244e375
feat: 实现目标通知功能及相关组件
...
- 新增目标通知功能,支持根据用户创建目标时选择的频率和开始时间自动创建本地定时推送通知
- 实现每日、每周和每月的重复类型,用户可自定义选择提醒时间和重复规则
- 集成目标通知测试组件,方便开发者测试不同类型的通知
- 更新相关文档,详细描述目标通知功能的实现和使用方法
- 优化目标页面,确保用户体验和界面一致性
2025-08-23 17:13:04 +08:00