11 KiB
Changelog
All notable changes to this project will be documented in this file.
[0.62.1] - 2026-04-10
Fixed — Linter 警告清理
- 🧹 代码规范警告修复
glass_animations.dart- null 检查语法修复nutrition_center_page.dart- 字符串插值优化favorites_page.dart- separatorBuilder 参数规范化tools_center_page.dart- separatorBuilder 参数规范化ingredient_detail_page.dart- separatorBuilder 参数规范化skeleton_loader.dart- separatorBuilder 参数规范化meal_time_recommend_page.dart- separatorBuilder + 字符串插值修复meal_planner_page.dart- separatorBuilder 参数规范化allergen_checker_page.dart- separatorBuilder 参数规范化
Added — 代码分析与风险评估
- 📋 CODE_ANALYSIS.md 文档新增
- 闪退卡死风险点分析(高/中/低风险分级)
- 性能优化机会清单
- 新功能建议与优先级
[0.62.0] - 2026-04-10
Fixed — 营养中心崩溃修复
-
🐛 营养中心报告按钮卡死闪退 —
nutrition_center_page.dart/nutrition_report_page.dart- 添加 MealRecordController 初始化错误处理
- 添加 null 检查,避免空指针异常
- 导航时添加 try-catch 错误捕获
- 显示友好的错误提示页面
-
🐛 热门排行数据显示"暂无数据" —
hot_repository.dart- 添加详细调试日志,方便排查问题
- 优化数据结构兼容性处理
- 修复 period 参数传递错误
- 添加错误提示和降级处理
Optimized — 性能优化
-
⚡ 今天吃什么动态筛选优化 —
what_to_eat_controller.dart/what_to_eat_page.dart- 添加筛选条件调试日志
- 优化空结果提示(显示已选筛选条件数量)
- 改进错误信息显示
-
⚡ 启动加载优化 —
home_page.dart- 添加骨架屏组件(SkeletonLoader)
- 实现 12 秒超时保护
- 添加缓存优先策略
Added — 测试工具
-
🧪 接口验证脚本 —
scripts/verify_nutrition_api.dart- 验证 API 接口连通性
- 测试热门排行数据
- 性能基准测试(5 次迭代)
- 彩色输出和详细统计
-
📊 性能优化报告 —
scripts/NUTRITION_PERFORMANCE.md- 接口验证结果汇总
- API 接口文档摘要
- 实际性能测试结果
- 优化建议和验收标准
-
📚 脚本工具说明 —
scripts/README.md- 使用方法指南
- 故障排查手册
- 测试结果记录
Test Results — 测试结果
- ✅ 接口连通性: 100% 成功率
- 🟡 平均响应时间: 1393ms(一般)
- ✅ 稳定性: 波动 < 100ms
- 📈 优化空间: 目标 < 500ms
[0.61.0] - 2026-04-10
Fixed — 崩溃与数据问题
-
🐛 收藏页面点击更多工具卡死闪退 —
favorites_page.dart/feature_binding.dart- 修复 GetX
Obx使用不当导致的崩溃 - 在 FavoritesBinding 中注册 ToolsController
- 添加 Controller 存在性检查,避免
Get.find()抛出异常
- 修复 GetX
-
🐛 菜品详情页营养成分全0显示异常检测 —
recipe_detail_page.dart- 添加营养成分全为0的异常检测
- 当热量/蛋白质/脂肪/碳水全部为0时,显示"数据可能有误"标签
- 使用橙色标签提示用户数据可能存在问题
[0.60.0] - 2026-04-10
Fixed — 布局与性能问题
- 🐛 工具中心布局溢出 —
tools_center_page.dart- 移除 GridView 卡片内的
Spacer()组件 - 使用
mainAxisExtent: 140替代childAspectRatio - 缩小图标尺寸,优化卡片布局
- 移除 GridView 卡片内的
[0.59.0] - 2026-04-10
Added — 工具中心功能
-
🛠️ 工具数据模型 —
tool_item_model.dart- ToolItem: 工具项数据结构(ID/名称/图标/分类/路由/联网状态)
- ToolCategory: 工具分类枚举(烹饪/健康/规划/查询/其他)
- ToolRegistry: 工具注册表,定义所有可用工具
-
🛠️ 工具控制器 —
tools_controller.dart- 工具列表管理与加载
- 使用频率统计(SharedPreferences 持久化)
- 搜索与分类过滤
- 常用工具推荐(按使用频率排序)
-
🛠️ 工具中心页面 —
tools_center_page.dart- 搜索栏支持模糊搜索
- 分类标签筛选(全部/烹饪/健康/规划/查询)
- 工具网格布局(一行两个,大图标)
- 联网状态指示器(绿点=联网/红点=离线)
-
🛠️ 收藏页工具入口Bar —
favorites_page.dart- 显示常用工具快捷入口(最多5个)
- 更多工具入口按钮
- 按使用频率排序显示
-
🥜 过敏原检查工具 —
allergen_checker_page.dart- 从 API 加载过敏原数据
- 搜索食材过敏原信息
- 分类浏览(肉类/蔬菜/水产/水果/调料/其他)
- 显示过敏原等级和注意事项
-
🍽️ 用餐时段推荐 —
meal_time_recommend_page.dart- 从 API 加载用餐时段数据
- 根据当前时间自动推荐用餐类型
- 按时段搜索推荐菜谱
- 支持早中晚餐/夜宵/下午茶分类
-
📅 每周菜单规划 —
meal_planner_page.dart- 一周七天日期选择器
- 早中晚三餐规划卡片
- 支持搜索菜谱/从收藏选择/自定义输入
- 今日规划进度统计
-
🥕 食材详情查询 —
ingredient_detail_page.dart- 从 API 加载食材标签数据
- 搜索食材营养信息
- 显示食材分类和关联菜谱数量
- 营养价值与选购技巧展示
Changed — 路由配置更新
- 🛠️ 新增工具路由 —
app_routes.dart/tools/allergen→ 过敏原检查/tools/meal-time→ 用餐时段推荐/tools/planner→ 每周菜单规划/tools/ingredient→ 食材详情查询/tools/nutrition→ 营养中心/tools/stats→ 热门统计
Docs — 开发清单更新
- 📝 UNFINISHED_FEATURES.md 更新
- 新增"十一+:工具中心"阶段,5项任务全部完成
- 软件特性功能汇总新增5项工具功能
- 总体进度 71% → 73%
[0.58.0] - 2026-04-10
Fixed — 搜索列表和今天吃什么页面问题
-
🐛 搜索列表点击详情卡死 —
search_page.dart- 添加 recipeId 空值检查,防止无效 ID 导致页面跳转失败
- 添加 title 默认值,防止空标题显示异常
-
🐛 今天吃什么随机选择后布局溢出 —
what_to_eat_page.dart- Column 添加
mainAxisSize: MainAxisSize.min防止内容撑开 - 文本添加
maxLines和overflow防止长文本溢出 - 标签数量限制为 3 个,防止 Wrap 溢出
- Column 添加
Added — 阶段十一开发
-
📊 营养追踪仪表盘卡片 —
nutrition_dashboard_card.dart- 首页展示今日营养摄入环形图
- 显示热量/蛋白质/脂肪/碳水四项指标
- 点击"详情"跳转营养页面
- 完成阶段十一任务 11.2
-
📝 首页集成营养仪表盘 —
home_page.dart- 在"今日推荐"上方添加营养追踪卡片
- 使用 SliverToBoxAdapter 嵌入
Docs — 开发清单更新
- 📝 UNFINISHED_FEATURES.md 更新
- 阶段十一 11.2 营养追踪仪表盘 → ✅ 已完成
- 阶段十一 11.3 食材加入购物清单 → ✅ 已存在
[0.37.0] - 2026-04-09 — 已归档
主要包含:通知功能移除、路由参数修复、UI组件修复、依赖修复
[0.34.0] - 2026-04-09 — 已归档
主要包含:Bug修复阶段六、菜谱详情页、收藏功能增强
开发进度
已完成功能
- ✅ 主题服务(ThemeService)+ 动态主题色 + 卡片滑动方向设置
- ✅ 动画服务(AnimationService)
- ✅ 国际化支持(en, zh, zh_Hant)
- ✅ 权限管理服务
- ✅ 自适应布局系统
- ✅ GetX 全局状态管理
- ✅ 标准组件库
- ✅ 路由守卫系统
- ✅ 繁体中文语言切换 + 弹窗/Toast 样式配置
- ✅ 核心错误修复(DeviceType/类型提升/空值检查等)
- ✅ API 基础设施(baseUrl + 模型 + Repository)— 阶段一
- ✅ 核心数据接入(首页真实数据)— 阶段二
- ✅ 信息流 + 推荐系统 — 阶段三
- ✅ 互动功能:点赞/推荐/浏览 — 阶段四
- ✅ 用户偏好系统 — 阶段五
- ✅ "今天吃什么"功能 — 阶段六
- ✅ 热门排行 + 在线统计 — 阶段七
- ✅ 缓存优化 + 离线支持 — 阶段八
- ✅ API v2.0.0 迁移 — 13个接口文件精简到9个,端点整合(优先级5)
- ✅ 8个严重Bug修复 — 主页/搜索/收藏/口味偏好/热门排行/详情页(优先级5)
- ✅ 搜索功能重写 — 直接调用API,iOS 26风格UI(优先级4)
- ✅ 今天吃什么动态筛选 — 分类/标签/过敏原三重筛选(优先级4)
- ✅ 热门排行HotItem模型 — 支持period/sortBy切换(优先级3)
- ✅ 首页横向滑动卡片 — PageView+ListView双模式(优先级3)
- ✅ 营养中心偏好修复 — 用户初始化+分类/标签加载(优先级3)
- ✅ 实用工具入口 — 烹饪计时/用量换算/BMI/份量缩放(优先级2)
- ✅ 页面拦截修复 — 路由守卫+PageRegistry注册(优先级2)
- ✅ 布局溢出修复 — 标签栏横向滑动+工具区横向滚动(优先级2)
待开发功能(详见 UNFINISHED_FEATURES.md 阶段九~十三)
阶段九:架构修复+核心Bug(P0/P1)
- 🔴 热门排行点击跳转详情(优先级5)
- 🔴 首页改用 Repository 层(优先级5)
- 🟡 合并收藏功能去重(优先级4)
- 🟡 合并搜索控制器去重(优先级4)
- 🟡 多语言词条扩充(优先级4)
- 🟢 聊天页面功能化或移除(优先级3)
阶段十:代码质量提升(P1/P2)
- 🟡 统一 Controller Binding 注册(优先级4)
- 🟡 HiveService 数据迁移机制(优先级3)
- 🟡 统一错误处理 AppException(优先级4)
- 🟡 离线缓存策略(优先级4)
- 🟢 DesignTokens 与 ThemeService 解耦(优先级3)
阶段十一:烹饪模式+营养仪表盘(P1)
- 🟢 🍳 烹饪模式(步骤引导+计时器+语音播报)(优先级5)
- 🟢 📊 营养追踪仪表盘(首页环形图)(优先级5)
- 🟢 🛒 菜谱食材一键加入购物清单(优先级4)
- 🟢 📖 菜谱步骤图文模式(优先级4)
阶段十二:社交+通知增强(P2)
- 🔵 📱 分享菜谱(优先级4)
- 🔵 🔔 烹饪提醒通知(优先级3)
- 🔵 🔍 搜索建议/热词(优先级3)
- 🔵 📸 拍照记录(优先级3)
阶段十三:AI+规划高级功能(P3)
- 🔵 🤖 AI 菜谱推荐(优先级2)
- 🔵 📅 每周菜单规划(优先级3)
- 🔵 🧮 食材用量换算增强(优先级2)
- 🔵 🌙 就寝提醒(优先级1)
技术栈
- 框架: Flutter
- 状态管理: GetX
- 响应式布局: flutter_adaptive_scaffold
- 动画系统: animations
- 国际化: flutter_localizations + intl
- 权限管理: permission_handler
贡献指南
- 遵循 iOS 风格设计规范
- 使用主题服务统一管理颜色和字体
- 使用动画服务统一管理动画效果
- 新增功能需更新 CHANGELOG.md
- 代码提交前运行
flutter analyze确保无错误 - 新建页面必须支持 GetX 状态管理