267 lines
11 KiB
Markdown
267 lines
11 KiB
Markdown
# 📚 闲言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/AppLua(65 文件 ~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 | ✅ 已归档 |
|