Files
xianyan/docs/01_项目总览.md
Developer b6441a8919 api
2026-04-27 23:47:18 +08:00

267 lines
11 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.
# 📚 闲言APP — 项目总览
> 更新: 2026-04-27 | 版本: v0.23.0 | 当前阶段: Phase 1 ✅ 核心完成 + Phase 2/5 ✅ 已归档
---
## 一、项目概述
| 项目 | 说明 |
|------|------|
| 名称 | 闲言WordsLeisure |
| Slogan | 文字阅读更纯粹 |
| 类型 | 句子阅读 + 壁纸制作 APP |
| 原技术栈 | Lua + AndroLua/AppLua 框架65 文件 15000+ 行) |
| 目标技术栈 | Flutter 3.24+ / Dart 3.9+ / Riverpod / Drift / go_router |
| 设计规范 | iOS 26 Liquid Glass |
| 后端 | Supabase迁移自 T1 后端云) |
### 纲领约束
- 暂不开发注册登录功能(优先级最低)
- 暂不开消息通知功能(后续可能使用邮箱实现)
- 所有页面必须使用统一设计系统变量
- 修改布局必须整体重构,禁止只改局部组件
---
## 二、原项目摘要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 2.5+ | 编译时安全 + 依赖注入 |
| 路由 | go_router 14.0+ | 声明式路由 + 深链接 |
| 数据库 | Drift (SQLite) | 类型安全 SQL + 响应式查询 |
| 网络层 | Dio 5.4+ | 拦截器 + 请求取消 |
| UI 风格 | iOS 26 Liquid Glass | Cupertino 优先 + 液态玻璃效果 |
| 底部面板 | StupidSimpleGlassSheet | 弹簧动画 + 拖拽关闭 |
| Hero 动画 | Heroine | 弹簧物理效果替代 Hero |
---
## 四、架构分层
```
lib/
├── main.dart # 入口
├── app/
│ ├── app.dart # MaterialApp.router + GlassTheme + Riverpod
│ └── app_theme.dart # AppThemeExtension + 日夜双主题
├── core/
│ ├── router/ # go_router + ShellRoute
│ ├── layout/ # AppShell + GlassBottomBar
│ ├── theme/ # 6 套设计令牌
│ ├── network/ # Dio + Interceptor + ApiException
│ ├── storage/ # KvStorage + SecureStorage + Database(4表)
│ └── utils/ # 动画/日志/扩展
├── features/
│ ├── home/ # 首页
│ ├── inspiration/ # 灵感/收藏
│ ├── editor/ # 编辑器 (核心模块)
│ ├── profile/ # 个人中心
│ ├── search/ # 搜索
│ ├── source/ # 来源
│ ├── member/ # 会员
│ └── settings/ # 设置/主题
└── shared/
└── widgets/ # GlassContainer/Skeleton/EmptyState/BottomSheet
```
---
## 五、开发阶段总览
| Phase | 内容 | 状态 | 优先级 |
|-------|------|------|--------|
| Phase 0 | 项目基础设施搭建 | ✅ 100% | P0 |
| Phase 1 | 编辑器完善 + 首页句子流 | ✅ 核心完成 | P0 |
| Phase 2 | 内容发现 + 搜索 + 灵感 | 🔲 未开始 | P0 |
| Phase 3 | 壁纸 + 会员 + 通知 | 🔲 未开始 | P1 |
| Phase 4 | 设置 + 小组件 + 辅助功能 | 🔲 未开始 | P1 |
| Phase 5 | 优化 + 测试 + 上线 | 🔲 未开始 | P0 |
> **编辑器子Phase**: 图层管理 ✅ | 3D引擎 ✅核心归档 | 图片处理 ✅核心归档 | 3D修复 ✅ (v0.23.0)
---
## 六、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 + 辅助线) | ✅ v0.16.0 | P1 |
| 1.33 | 取色器 (EyeDropper + 像素读取) | ✅ v0.16.0 | P1 |
| 1.34 | 渐变自定义 (多节点 + 角度编辑器) | ✅ v0.16.0 | P1 |
| 1.35 | 玻璃卡片 WidgetLayer 导出渲染 (RepaintBoundary) | ✅ v0.16.0 | P1 |
| 1.36 | image 库集成 (高级导出处理) | ✅ v0.22.0 | P2 |
| 1.37 | flutter_shaders_ui 集成 (Shader 效果贴纸) | ✅ v0.20.0 | P2 |
| 1.38 | 首页句子卡片流完善 | 🔲 | P0 |
| 1.39 | 收藏/历史 Drift 持久化 | ✅ v0.15.0 | P0 |
| 1.40 | services 目录文件重组 (13 > 8) | ✅ v0.14.3 | 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.23.0 | 04-27 | 3D修复统一flutter_3d_controller + 图层模型统一 + pro_editor_bridge拆分 + 3D模型扩展 |
| v0.22.0 | 04-25 | 图片压缩+大图预览+裁剪编辑器+图片信息+内存优化 |
| v0.21.0 | 04-24 | 3D模型贴纸+3D预览页+平台3D调度 |
| v0.20.0 | 04-24 | 图层管理面板+撤销/重做增强+Shader效果 |
| v0.16.0 | 04-24 | WidgetLayer导出+智能对齐+取色器+渐变编辑+操作历史 |
| v0.15.0 | 04-24 | 首页句子卡片流+收藏/历史持久化 |
| v0.14.1 | 04-24 | 修复编译错误 + Lottie/SVG本地资源下载 + 文档更新 |
| v0.14.0 | 04-23 | ProEditor主编辑器重构 + FrostedGlass主题 + 跨平台适配 |
> 完整变更记录见 [CHANGELOG.md](../CHANGELOG.md)
---
## 十二、归档列表
> 已完成/已归档的Phase和子功能便于交接和追溯
| 归档项 | 版本 | 完成日期 | 核心产出 | 状态 |
|--------|------|---------|---------|------|
| Phase 0 — 基础设施搭建 | v0.1.0 | 2026-04 | 项目结构+设计系统+网络+存储+路由 | ✅ 100% |
| Phase 1 — 编辑器核心+首页 | v0.9~v0.16 | 2026-04 | ProEditor+贴纸系统+导出+句子流+收藏 | ✅ 核心 |
| 编辑器子Phase: 图层管理 | v0.20.0 | 2026-04-24 | LayerPanel+UndoRedo+图层CRUD+快照 | ✅ 92% |
| 编辑器子Phase: 3D引擎 | v0.21.0 | 2026-04-24 | flutter_3d_controller集成+3D贴纸+预览页 | ✅ 核心71% |
| 编辑器子Phase: 图片处理增强 | v0.22.0 | 2026-04-25 | 压缩+预览+裁剪+信息读取+内存优化 | ✅ 95% |
| 编辑器子Phase: 3D修复+架构优化 | v0.23.0 | 2026-04-27 | 统一3D渲染+图层模型统一+bridge拆分+模型扩展 | ✅ 完成 |
| flutter_advanced_canvas_editor 适配 | v0.20.0 | 2026-04-24 | LayerManagerService+LayerSnapshotService | ✅ 已归档 |
| flutter_scene 移除 | v0.23.0 | 2026-04-27 | 移除useScene分支统一flutter_3d_controller | ✅ 已归档 |
| flutter_3d_controller 集成 | v0.21.0 | 2026-04-24 | Model3DPreviewPage+Sticker3DPanel | ✅ 已归档 |
| image_size_getter 集成 | v0.22.0 | 2026-04-25 | ImageInfoService+ImageInfoPanel | ✅ 已归档 |
| extended_image 集成 | v0.22.0 | 2026-04-25 | ImageCropPage+ExtendedResizeImage | ✅ 已归档 |
| photo_view 集成 | v0.22.0 | 2026-04-25 | ImagePreviewPage+ImageGalleryPage | ✅ 已归档 |
| flutter_image_compress 集成 | v0.22.0 | 2026-04-25 | ImageCompressService | ✅ 已归档 |