Files
kitchen/CHANGELOG.md
2026-04-11 02:02:23 +08:00

11 KiB
Raw Blame History

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() 抛出异常
  • 🐛 菜品详情页营养成分全0显示异常检测recipe_detail_page.dart

    • 添加营养成分全为0的异常检测
    • 当热量/蛋白质/脂肪/碳水全部为0时显示"数据可能有误"标签
    • 使用橙色标签提示用户数据可能存在问题

[0.60.0] - 2026-04-10

Fixed — 布局与性能问题

  • 🐛 工具中心布局溢出tools_center_page.dart
    • 移除 GridView 卡片内的 Spacer() 组件
    • 使用 mainAxisExtent: 140 替代 childAspectRatio
    • 缩小图标尺寸,优化卡片布局

[0.59.0] - 2026-04-10

Added — 工具中心功能

  • 🛠️ 工具数据模型tool_item_model.dart

    • ToolItem: 工具项数据结构ID/名称/图标/分类/路由/联网状态)
    • ToolCategory: 工具分类枚举(烹饪/健康/规划/查询/其他)
    • ToolRegistry: 工具注册表,定义所有可用工具
  • 🛠️ 工具控制器tools_controller.dart

    • 工具列表管理与加载
    • 使用频率统计SharedPreferences 持久化)
    • 搜索与分类过滤
    • 常用工具推荐(按使用频率排序)
  • 🛠️ 工具中心页面tools_center_page.dart

    • 搜索栏支持模糊搜索
    • 分类标签筛选(全部/烹饪/健康/规划/查询)
    • 工具网格布局(一行两个,大图标)
    • 联网状态指示器(绿点=联网/红点=离线)
  • 🛠️ 收藏页工具入口Barfavorites_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 防止内容撑开
    • 文本添加 maxLinesoverflow 防止长文本溢出
    • 标签数量限制为 3 个,防止 Wrap 溢出

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
  • 搜索功能重写 — 直接调用APIiOS 26风格UI优先级4
  • 今天吃什么动态筛选 — 分类/标签/过敏原三重筛选优先级4
  • 热门排行HotItem模型 — 支持period/sortBy切换优先级3
  • 首页横向滑动卡片 — PageView+ListView双模式优先级3
  • 营养中心偏好修复 — 用户初始化+分类/标签加载优先级3
  • 实用工具入口 — 烹饪计时/用量换算/BMI/份量缩放优先级2
  • 页面拦截修复 — 路由守卫+PageRegistry注册优先级2
  • 布局溢出修复 — 标签栏横向滑动+工具区横向滚动优先级2

待开发功能(详见 UNFINISHED_FEATURES.md 阶段九~十三)

阶段九:架构修复+核心BugP0/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

贡献指南

  1. 遵循 iOS 风格设计规范
  2. 使用主题服务统一管理颜色和字体
  3. 使用动画服务统一管理动画效果
  4. 新增功能需更新 CHANGELOG.md
  5. 代码提交前运行 flutter analyze 确保无错误
  6. 新建页面必须支持 GetX 状态管理