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

237 lines
9.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 展示拦截原因与失败项
- 📦 **统一异常模型** - 网络层结构化错误
- 新增 `ApiException``ApiExceptionType` 枚举
- `ApiService` 所有方法统一抛出 `ApiException`
- 支持超时/无网络/错误响应/取消/未知等类型
- 📏 **ScreenUtilConfig 真正初始化** - 响应式适配生效
- 实现 `ensureScreenSizeAndInit()` 根据屏幕尺寸动态调整设计稿
- 自动分档:手机(375×812)/平板(768×1024)/桌面(1440×1024)
- `PageStandards``scaled` 系列方法已生效
- 🧾 **修复定时通知** - scheduleNotification 真正延迟
- 修改 `NotificationService.scheduleNotification()` 使用 `zonedSchedule`
- 支持按 `delay` 参数延迟触发,不再立即显示
- 🧾 **规范 ProductModel** - 字段语义化
- 增加 `id``emoji` 字段,`imageUrl` 改为可选
- 提供工厂方法 `ProductModel.mock` 用于测试数据
- 购物车改用 `product.id` 而非 `name` 去重
### Changed
- 🔧 统一页面注册权威来源
- 移除 `AppPages` 重复定义,仅保留 `AppRoutes.registerAllPages()`
- 所有页面注册与 `requiredStandards` 统一在 `AppRoutes` 管理
- 路由中间件与页面注册表保持一致
- 🔧 页面改用 `Get.find()` 替代 `Get.put()`
- `HomePage``CartPage``ProfilePage` 不再重复创建 Controller
- 依赖由 `AppBinding` 统一注入,全局状态一致
- 🔧 路由校验体系正式接入
- `main.dart``initialBinding``routingCallback` 已生效
- 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.dart``DeviceType.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 样式配置验证** - 确认样式配置正常工作
- 验证 `DialogStyle``ToastStyleType` 枚举正确定义
- 确认 `ThemeService` 中的样式配置持久化正常
- 确认 `ToastService``StandardDialog` 正确响应样式变化
- 🔧 **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 样式
- 支持持久化存储用户选择
- 添加 `setDialogStyle``setToastStyle` 方法
- 🔧 修改 `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.dart``Color``MaterialColor` 类型不匹配问题
- 🔧 修复 `adaptive_scaffold.dart``adaptive_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 状态管理**