Files
kitchen/CHANGELOG.md
Developer 87cb8999ee Remove notification service and update project
- Remove flutter_local_notifications dependency from pubspec.yaml
- Delete notification_service.dart file
- Remove notification service references from app_service.dart and app_binding.dart
- Clean up related code and dependencies
2026-04-08 10:51:43 +08:00

9.2 KiB
Raw Blame History

Changelog

All notable changes to this project will be documented in this file.

[0.15.0] - 2026-04-08

Added

  • 🏗️ 全局 Binding 系统 - 解决 Controller 重复与生命周期问题

    • 新增 AppBinding 统一管理全局 Service 与 Controller 依赖
    • 使用 Get.lazyPut + fenix: true 确保单例与自动重建
    • main.dart 中通过 initialBinding 接入
  • 🚫 强制页面规范校验中间件 - 不合规页面直接拦截

    • 新增 PageStandardsMiddleware 在路由进入前校验 PageRegistry
    • 未注册页面或校验失败自动跳转至违规页
    • 新增 StandardsViolationPage 展示拦截原因与失败项
  • 📦 统一异常模型 - 网络层结构化错误

    • 新增 ApiExceptionApiExceptionType 枚举
    • ApiService 所有方法统一抛出 ApiException
    • 支持超时/无网络/错误响应/取消/未知等类型
  • 📏 ScreenUtilConfig 真正初始化 - 响应式适配生效

    • 实现 ensureScreenSizeAndInit() 根据屏幕尺寸动态调整设计稿
    • 自动分档:手机(375×812)/平板(768×1024)/桌面(1440×1024)
    • PageStandardsscaled 系列方法已生效
  • 🧾 修复定时通知 - scheduleNotification 真正延迟

    • 修改 NotificationService.scheduleNotification() 使用 zonedSchedule
    • 支持按 delay 参数延迟触发,不再立即显示
  • 🧾 规范 ProductModel - 字段语义化

    • 增加 idemoji 字段,imageUrl 改为可选
    • 提供工厂方法 ProductModel.mock 用于测试数据
    • 购物车改用 product.id 而非 name 去重

Changed

  • 🔧 统一页面注册权威来源

    • 移除 AppPages 重复定义,仅保留 AppRoutes.registerAllPages()
    • 所有页面注册与 requiredStandards 统一在 AppRoutes 管理
    • 路由中间件与页面注册表保持一致
  • 🔧 页面改用 Get.find() 替代 Get.put()

    • HomePageCartPageProfilePage 不再重复创建 Controller
    • 依赖由 AppBinding 统一注入,全局状态一致
  • 🔧 路由校验体系正式接入

    • main.dartinitialBindingroutingCallback 已生效
    • Debug 模式下自动拦截不合规页面

[0.14.0] - 2026-04-08

Fixed

  • 🔧 fluttertoast 类型提升错误修复 - 修复编译错误
    • 修复 packages/fluttertoast/lib/fluttertoast.dart:279 中的类型提升错误
    • 将公共属性 context 赋值给局部变量 ctx,解决 Dart 3.2 以下版本的类型提升限制
    • 修复 packages/fluttertoast/lib/fluttertoast.dart:182-195 中相同的问题
    • 项目现在可以成功编译

Technical

  • 解决公共字段无法类型提升的问题,使用局部变量作为变通方案
  • 构建成功,生成 app-debug.apk

[0.13.0] - 2026-04-08

Fixed

  • 🔧 核心错误修复 - 修复多个严重的代码错误
    • 修复 page_standards.dartDeviceType.desktop 缺失问题,添加 desktop 到枚举
    • 修复 SystemChrome.setSystemUiOverlayStyle 方法名拼写错误
    • 移除未使用的 toast_service.dart 导入
    • 修复 profile_controller.dart 中使用 await 在非 Future 类型上的问题
    • 修复 common_utils.dart 中未使用的 timer 变量和 BuildContext 异步使用问题
    • 修复 adaptive_page_interface.dart 中未使用的 primary 变量
    • 修复 standard_dialog.dart 中死代码问题(多余的 ?? 操作符)
    • 移除不必要的 ! 强制解包操作符

Technical

  • 代码质量提升,所有严重错误已修复,项目可正常编译运行
  • 保持 CHANGELOG.md 只保留最近 5 个版本号的规范

[0.12.0] - 2026-04-08

Fixed

  • 🔧 繁体中文语言切换修复 - 修复繁体中文选择无效问题

    • 更新 l10n.yaml 添加 zh_Hant 支持
    • 修复 app_localizations.dart_AppLocalizationsDelegate.isSupported() 方法,支持 zh_Hant 脚本
    • 修复 ThemeService.setLocale() 方法,正确处理 zh_Hant locale
    • 验证繁体中文翻译文件 app_zh_Hant.arb 正确加载
  • 🔧 弹窗和 Toast 样式配置验证 - 确认样式配置正常工作

    • 验证 DialogStyleToastStyleType 枚举正确定义
    • 确认 ThemeService 中的样式配置持久化正常
    • 确认 ToastServiceStandardDialog 正确响应样式变化
  • 🔧 fluttertoast 空值检查修复 - 修复 fluttertoast.dart 中的空值异常

    • packages/fluttertoast/lib/fluttertoast.dart:277-284 添加 try-catch 保护
    • 添加 context 空值检查,避免 Null check operator used on a null value 异常

[0.11.0] - 2026-04-08

Added

  • 📋 页面注册系统集成 - 在 main.dart 中添加页面检测和验证

    • 在应用启动时自动注册所有页面到 PageRegistry
    • 调试模式下显示注册状态和配置信息
    • 使用 routingCallback 监听路由变化
    • 路由切换时自动触发页面规范验证
  • 🎯 AppRoutes 页面注册功能 - 在 app_routes.dart 中集成 PageRegistry

    • 添加 registerAllPages() 静态方法
    • 为每个页面定义 PageInfo 配置
    • 配置每个页面的 requiredStandards 检查项
    • 包含 Home、Theme、Example、Cart、Profile、Main 等页面
  • 🎨 PageStandards 增强 - 添加新增的弹窗和 Toast 样式访问

    • 添加 dialogStyle 访问弹窗样式
    • 添加 toastStyleType 访问 Toast 样式类型
    • 在 PageStandardsMixin 中也添加对应访问方法
    • 更新 PageStandards 导入 page_validator.dart

Changed

  • 🔧 修改 main.dart 集成页面注册和验证系统

    • 导入 PageRegistry 和 AppLogger
    • 在 debug 模式下注册所有页面
    • 在 GetCupertinoApp 中添加 routingCallback
    • 路由变化时自动调用 PageValidator.validate()
  • 🔧 修改 app_routes.dart 集成 PageRegistry

    • 导入 page_validator.dart
    • 添加 registerAllPages() 方法
    • 为所有现有页面注册 PageInfo
    • 配置每个页面的标准检查项
  • 🔧 修改 page_standards.dart 新增样式访问

    • 导入 page_validator.dart
    • 添加 dialogStyle 和 toastStyleType 属性
    • 在 PageStandardsMixin 中同步添加

[0.10.0] - 2026-04-08

Added

  • 💬 弹窗样式选择功能 - 支持 4 种弹窗样式

    • GetX Style使用 Get.dialog 的自定义弹窗样式
    • Native Style原生 CupertinoAlertDialog 样式
    • Toast Style类似 Toast 的彩色背景弹窗样式
    • Hybrid Style混合样式原生弹窗 + 动态主题色
    • 所有样式都支持动态主题色和字体大小
  • 🚀 Toast 样式选择功能 - 支持 3 种 Toast 样式

    • GetX Snackbar使用 Get.snackbar 的样式
    • Native Toast使用 Fluttertoast 的原生样式
    • Custom Style自定义 FToast 样式
    • 所有样式都支持动态主题色和字体大小
  • 🎨 主题设置页面增强 - 在 theme_demo_page.dart 新增样式选择 UI

    • Dialog Style 选择器
    • Toast Style 选择器
    • 实时显示当前选中的样式名称

Changed

  • 🔧 修改 ThemeService 添加弹窗和 Toast 样式配置

    • DialogStyle 枚举定义弹窗样式
    • ToastStyleType 枚举定义 Toast 样式
    • 支持持久化存储用户选择
    • 添加 setDialogStylesetToastStyle 方法
  • 🔧 修改 ToastService 支持多种样式

    • 根据 ThemeService 配置自动选择样式
    • _showGetxToast 实现 GetX Snackbar 样式
    • 所有样式都使用动态主题色和字体大小
  • 🔧 修改 StandardDialog 支持多种样式

    • 根据 ThemeService 配置自动选择样式
    • _showGetxDialog 实现 GetX 自定义弹窗
    • _showToastStyleDialog 实现 Toast 风格弹窗
    • _showHybridDialog 实现混合样式弹窗
    • 弹窗背景使用 GetX 默认,字体色使用动态主题色

[0.9.0] - 2026-04-08

Added

  • 🧪 主题设置页面测试按钮 - 在 theme_demo_page.dart 添加测试组件
    • 4 种 Toast 测试按钮Info、Success、Warning、Error
    • Standard Dialog 测试按钮
    • 所有测试组件响应动态主题变化
    • 初始化 ToastService

Fixed

  • 🔧 修复深色模式切换时字体色和背景色未自动更新问题
  • 🔧 修复 theme_service.dartColorMaterialColor 类型不匹配问题
  • 🔧 修复 adaptive_scaffold.dartadaptive_page_interface.dart 响应式变量访问错误

开发进度

已完成功能

  • 主题服务ThemeService
  • 动画服务AnimationService
  • 国际化支持en, zh, zh_Hant
  • 权限管理服务
  • 自适应布局系统
  • GetX 全局状态管理
  • 标准组件库
  • 路由守卫系统

开发中功能

  • 🔄 产品列表页面
  • 🔄 购物车功能
  • 🔄 用户个人中心

待开发功能

  • 📋 订单管理
  • 📋 支付集成
  • 📋 消息通知

技术栈

  • 框架: Flutter
  • 状态管理: GetX
  • 响应式布局: flutter_adaptive_scaffold
  • 动画系统: animations
  • 国际化: flutter_localizations + intl
  • 权限管理: permission_handler

贡献指南

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