feat: 新增编辑器功能与优化

1. 添加编辑器3D场景服务接口及实现
2. 实现平台IO工具类与数据库连接
3. 新增SVG图标资源
4. 优化编辑器操作Mixin架构
5. 修复Web端兼容性问题
6. 更新依赖配置与构建脚本
7. 改进主题自适应服务
8. 添加对齐辅助线组件
9. 完善迷你文字编辑栏
10. 优化页面过渡动画
This commit is contained in:
Developer
2026-04-25 09:50:30 +08:00
parent 35202b51e8
commit a5b997aecb
204 changed files with 46378 additions and 7400 deletions

View File

@@ -1,6 +1,6 @@
# 📚 闲言APP — 项目总览
> 更新: 2026-04-20 | 版本: v0.7.0
> 更新: 2026-04-24 | 版本: v0.14.1 | 当前阶段: Phase 1 🔄 进行中 (编辑器核心完成,首页待完善)
---
@@ -16,35 +16,49 @@
| 设计规范 | iOS 26 Liquid Glass |
| 后端 | Supabase迁移自 T1 后端云) |
---
### 纲领约束
## 二、文档目录
| 序号 | 文档 | 说明 |
|------|------|------|
| 01 | 本文档 | 项目总览 + 架构 + 工程量 |
| 02 | [原项目分析](02_原项目分析.md) | Lua 源码分析(文件结构 + soup.lua 深度分析) |
| 03 | [API与数据](03_API与数据.md) | API 接口 + 数据源 + 错误处理 |
| 04 | [架构与设计规范](04_架构与设计规范.md) | 架构决策 + 设计令牌 + iOS 26 页面设计 |
| 05 | [开发计划](05_开发计划.md) | 分阶段开发计划 + 可扩展功能规划 |
| 06 | [编辑器设计](06_编辑器设计.md) | 壁纸编辑器优化 + 卡片样式系统 |
| 07 | [三方库清单](07_三方库清单.md) | 全部三方库选型与版本 |
| DEV | [开发进度](DEV_PROGRESS.md) | 开发进度追踪 + 代码审计报告 |
- 暂不开发注册登录功能(优先级最低)
- 暂不开消息通知功能(后续可能使用邮箱实现)
- 所有页面必须使用统一设计系统变量
- 修改布局必须整体重构,禁止只改局部组件
---
## 三、关键决策记录
## 二、原项目摘要Lua 版)
| 项目 | 内容 |
|------|------|
| 应用名 | 字你太美应用程序 / 闲言APP |
| 技术栈 | Lua + AndroLua/AppLua65 文件 ~15000 行) |
| 核心文件 | soup.lua ≈5500 行(主页面,承载 80% 功能) |
| 后端 | T1 后端云aixinbiji.com |
**关键问题与 Flutter 解决方案**
| 问题 | 方案 |
|------|------|
| soup.lua 单文件 5500 行 | 拆分为独立页面 + Provider |
| 爬虫依赖(搜索/句子源) | 自建 RESTful API |
| 无类型安全 | Dart 强类型 + freezed |
| 本地文件存储 | Drift 数据库 |
| 无状态管理 | Riverpod |
**Lua → Flutter 映射**soup.lua→home+editor页 / str.lua→utils+theme / t1.lua→core/network / favorite.lua→inspiration页
---
## 三、关键决策 (ADR)
| 决策 | 选择 | 理由 |
|------|------|------|
| 状态管理 | Riverpod | 编译时安全 + 依赖注入 |
| 路由 | go_router | 声明式路由 + 深链接 |
| 数据库 | Drift (SQLite) | 类型安全 + 响应式查询 |
| UI 风格 | iOS 26 Liquid Glass | 现代设计 + 液态玻璃效果 |
| 导航结构 | 液态玻璃 3 TabBar | GlassBottomBar 替代 DrawerLayout |
| 底部面板 | StupidSimpleGlassSheet | 弹簧动画 + 拖拽关闭 + 多级吸附 |
| 状态管理 | Riverpod 2.5+ | 编译时安全 + 依赖注入 |
| 路由 | go_router 14.0+ | 声明式路由 + 深链接 |
| 数据库 | Drift (SQLite) | 类型安全 SQL + 响应式查询 |
| 网络层 | Dio 5.4+ | 拦截器 + 请求取消 |
| UI 风格 | iOS 26 Liquid Glass | Cupertino 优先 + 液态玻璃效果 |
| 底部面板 | StupidSimpleGlassSheet | 弹簧动画 + 拖拽关闭 |
| Hero 动画 | Heroine | 弹簧物理效果替代 Hero |
| 会员系统 | T1后端云 → Supabase | 迁移中 |
---
@@ -52,52 +66,33 @@
```
lib/
├── main.dart # 入口: LiquidGlassWidgets.init + ProviderScope
├── main.dart # 入口
├── app/
│ ├── app.dart # MaterialApp.router + GlassTheme + Riverpod
│ └── app_theme.dart # AppThemeExtension + 日夜双主题
├── core/
│ ├── router/ # go_router + ShellRoute + 7 路由
│ ├── router/ # go_router + ShellRoute
│ ├── layout/ # AppShell + GlassBottomBar
│ ├── theme/ # 6 套设计令牌 (颜色/间距/圆角/阴影/字体/Glass)
│ ├── constants/ # AppConstants
│ ├── registry/ # PageRegistry 页面注册表
│ ├── theme/ # 6 套设计令牌
│ ├── network/ # Dio + Interceptor + ApiException
│ ├── storage/ # KvStorage + SecureStorage + AppDatabase(4表)
│ └── utils/ # 转场动画/交互动画/设备检测/日志/扩展
│ ├── storage/ # KvStorage + SecureStorage + Database(4表)
│ └── utils/ # 动画/日志/扩展
├── features/
│ ├── home/ # 首页: 每日推荐 + 句子流 + Hitokoto API
│ ├── inspiration/ # 灵感: 分类标签 + 句子卡片 + 收藏
│ ├── editor/ # 编辑器: 画布 + 文字/背景/效果面板 + 模板
│ ├── profile/ # 个人中心: 收藏/历史 + 主题入口 + 调试
│ ├── search/ # 搜索: 搜索栏 + 热搜词 + 历史 + 结果
│ ├── source/ # 来源: 分类Tab + 来源列表 + 详情弹窗
│ ├── member/ # 会员: GlassSheet + 权益 + 订阅方案
│ └── settings/ # 设置: 主题个性化 (外观/强调色/字体/毛玻璃)
│ ├── home/ # 首页
│ ├── inspiration/ # 灵感/收藏
│ ├── editor/ # 编辑器 (核心模块)
│ ├── profile/ # 个人中心
│ ├── search/ # 搜索
│ ├── source/ # 来源
│ ├── member/ # 会员
│ └── settings/ # 设置/主题
└── shared/
└── widgets/ # GlassContainer/Skeleton/EmptyState/BottomSheet
```
---
## 五、功能模块工程量
| 排名 | 模块 | 页面数 | 文件数 | 复杂度 | 状态 |
|------|------|--------|--------|--------|------|
| 1 | 🎨 卡片/壁纸编辑器 | 6+ | 28-36 | ⭐⭐⭐⭐⭐ | 🔄 Phase 1 |
| 2 | 🫧 液态玻璃 UI 系统 | 1 | 15-18 | ⭐⭐⭐⭐ | ✅ 已完成 |
| 3 | 🏠 首页句子卡片流 | 3 | 12-15 | ⭐⭐⭐ | ✅ 90% |
| 4 | 📡 句子源系统 | 3 | 10-12 | ⭐⭐⭐ | ✅ 90% |
| 5 | 🔐 用户系统 | 4 | 8-10 | ⭐⭐⭐ | 🔲 Phase 2 |
| 6 | 💡 灵感(收藏/语录/历史) | 4 | 8-10 | ⭐⭐ | ✅ 90% |
| 7 | 👤 我的页面 | 3 | 6-8 | ⭐⭐ | ✅ 85% |
| 8 | 🎨 主题系统 | 1 | 4-6 | ⭐⭐⭐ | ✅ 已完成 |
| 9 | 🔍 搜索 | 2 | 4-6 | ⭐⭐ | ✅ 85% |
| 10 | 💰 会员/支付 | 2 | 3-5 | ⭐⭐ | ✅ 85% |
---
## 六、开发阶段总览
## 五、开发阶段总览
| Phase | 内容 | 状态 | 优先级 |
|-------|------|------|--------|
@@ -110,9 +105,135 @@ lib/
---
## 七、纲领约束
## 六、Phase 0 完成情况 ✅
- 暂不开发注册登录功能(优先级最低)
- 暂不开消息通知功能(后续可能使用邮箱实现)
- 所有页面必须使用统一设计系统变量
- 修改布局必须整体重构,禁止只改局部组件
| # | 任务 | 状态 |
|---|------|------|
| 0.1 | 项目目录树 (core/features/shared) | ✅ |
| 0.2 | pubspec.yaml + 版本冲突解决 | ✅ |
| 0.3 | 设计系统令牌 (颜色/间距/圆角/阴影/字体/Glass) | ✅ |
| 0.4 | 主题系统 (AppThemeExtension + 日夜双主题) | ✅ |
| 0.5 | 网络层 (Dio + Interceptor + ApiException) | ✅ |
| 0.6 | 路由配置 (go_router + ShellRoute) | ✅ |
| 0.7 | 本地存储 (KV + SecureStorage + Drift 4表) | ✅ |
| 0.8 | 共享组件 (GlassContainer/Skeleton/EmptyState/BottomSheet) | ✅ |
| 0.9 | 主入口 + App | ✅ |
| 0.10 | 动画库集成 (lottie/confetti/animate_do/custom_refresh) | ✅ |
| 0.11 | Lint 全量修复 | ✅ |
| 0.12 | 三端权限配置 (Android/HarmonyOS/iOS) | ✅ |
---
## 七、Phase 1 进行中 🔄
### 7.1 已完成
| # | 任务 | 状态 |
|---|------|------|
| 1.1 | 编辑器数据模型 (freezed) | ✅ |
| 1.2 | 编辑器 Provider (Riverpod StateNotifier) | ✅ |
| 1.3 | 编辑器主页面 (5Tab工具栏) | ✅ |
| 1.4 | 文字/背景/效果/水印/图层面板 | ✅ |
| 1.5 | 模板选择弹窗 (6个预设) | ✅ |
| 1.6 | 首页句子流 + Hitokoto API | ✅ |
| 1.7 | 灵感/搜索/来源/会员页 | ✅ |
| 1.8 | 液态玻璃全面迁移 | ✅ |
| 1.9 | 导出功能 (保存相册/分享/.xycard) | ✅ |
| 1.10 | 主题个性化设置页 | ✅ |
| 1.11 | 迷你编辑器 (极简6项 + 3种部署模式) | ✅ |
| 1.12 | flex_color_picker 鸿蒙适配 (本地化) | ✅ |
| 1.13 | 全局黄色双下划线修复 (OHOS平台) | ✅ |
| 1.14 | **画布比例切换** (9:16/3:4/1:1/4:3/16:9) | ✅ |
| 1.15 | **网格参考线** (三等分法 + 点阵网格) | ✅ |
| 1.16 | **图层锁定** (locked字段 + 锁定UI + 拖拽拦截) | ✅ |
| 1.17 | **ProEditor重构** (pro_image_editor + FrostedGlass主题) | ✅ |
| 1.18 | **液态玻璃贴纸** (liquid_glass_widgets/easy 4种预设) | ✅ |
| 1.19 | **SVG贴纸** (flutter_svg 8种本地SVG) | ✅ |
| 1.20 | **Lottie动画贴纸** (6种本地动画) | ✅ |
| 1.21 | **Google Fonts** (15种字体 中6+英9) | ✅ |
| 1.22 | **自适应主题色** (adaptive_palette 流体背景) | ✅ |
| 1.23 | **水印系统** (平铺/单点 4种预设) | ✅ |
| 1.24 | **一言API集成** (HitokotoService 12种类型) | ✅ |
| 1.25 | **.xycard导出** (archive压缩/解压) | ✅ |
| 1.26 | **自定义颜色选择器** (XianyanColorPicker + flex_color_picker) | ✅ |
| 1.27 | **网络贴纸** (6类36张 cached_network_image) | ✅ |
| 1.28 | **权限管理** (PermissionService 相机/相册/存储) | ✅ |
| 1.29 | **编辑器动画** (flutter_animate入场 + confetti庆祝) | ✅ |
| 1.30 | **主题切换** (EditorThemeService system/light/dark) | ✅ |
| 1.31 | **数据接收** (EditorDataReceiver) | ✅ |
### 7.2 进行中 / 待完成
| # | 任务 | 状态 | 优先级 |
|---|------|------|--------|
| 1.32 | 智能对齐吸附 (SnapHelper + 辅助线) | 🔲 | P1 |
| 1.33 | 取色器 (EyeDropper + 像素读取) | 🔲 | P1 |
| 1.34 | 渐变自定义 (多节点 + 角度编辑器) | 🔲 | P1 |
| 1.35 | 玻璃卡片 WidgetLayer 导出渲染 (RepaintBoundary) | 🔲 | P1 |
| 1.36 | image 库集成 (高级导出处理) | 🔲 | P2 |
| 1.37 | flutter_shaders_ui 集成 (Shader 效果贴纸) | 🔲 | P2 |
| 1.38 | 首页句子卡片流完善 | 🔲 | P0 |
| 1.39 | 收藏/历史 Drift 持久化 | 🔲 | P0 |
| 1.40 | services 目录文件重组 (13 > 8) | 🔲 | P2 |
---
## 八、Phase 2-5 规划概要
### Phase 2 — 内容发现 + 搜索 + 灵感
- 自建句子 API (Supabase Edge Functions)
- 搜索 API (MeiliSearch)
- 灵感收藏本地持久化
- 多句子源切换 + 离线句库
### Phase 3 — 壁纸 + 会员 + 通知
- 必应壁纸模块
- 会员系统 (Supabase Auth)
- 通知推送 (邮箱方案)
### Phase 4 — 设置 + 小组件 + 辅助
- 设置页完善
- 桌面小组件 (home_widget)
- 数据备份恢复
### Phase 5 — 优化 + 测试 + 上线
- 性能优化 / 全量测试 / 商店上架
---
## 九、可扩展功能
| 优先级 | 功能 | 提及次数 |
|--------|------|---------|
| 5 | 壁纸编辑器增强 | 8次 |
| 5 | 句子浏览/卡片流 | 7次 |
| 4 | 收藏管理 / 搜索 / 主题 / 分享 | 4-5次 |
| 3 | 会员系统 / 小组件 / 通知推送 | 3次 |
| 2 | AI推荐 / 登录注册 | 2次 |
---
## 十、数据库表 (Drift/SQLite)
| 表名 | 用途 | 状态 |
|------|------|------|
| sentences | 句子缓存 | ✅ |
| favorites | 收藏记录 | ✅ |
| reading_history | 阅读历史 | ✅ |
| card_templates | 卡片模板 | ✅ |
| user_quotes | 个人语录 | 🔲 |
| search_history | 搜索历史 | 🔲 |
---
## 十一、版本历史 (CHANGELOG 详细记录)
| 版本 | 日期 | 关键变更 |
|------|------|---------|
| v0.14.1 | 04-24 | 修复编译错误 + Lottie/SVG本地资源下载 + 文档更新 |
| v0.14.0 | 04-23 | ProEditor主编辑器重构 + FrostedGlass主题 + 跨平台适配 |
| v0.13.1 | 04-23 | Windows构建错误修复 (gal C++/WinRT) |
| v0.13.0 | 04-23 | pro_image_editor集成 (本地源码模式) |
| v0.12.0 | 04-23 | 编辑器功能扩展 (液态玻璃/SVG/Lottie/字体/水印/一言) |
> 完整变更记录见 [CHANGELOG.md](../CHANGELOG.md)