# MookNote 极简风格的观影 · 阅读 · 笔记 记录应用,基于 Flutter 开发。 ## 应用预览 | 影视列表 | 书籍列表 | 笔记界面 | |:---:|:---:|:---:| | | | | 更多预览图片请到应用预览2里面查看 ## 功能特性 ### 影视管理 - 影视增删改查,支持海报、导演、演员、类型等信息录入 - 影评撰写与管理,支持星级评分 - 影视海报墙浏览(瀑布流布局) - 影视分享(生成海报名场面风格分享卡片) - 豆瓣链接爬取,自动填充影视信息 - 影视状态筛选(想看 / 在看 / 已看) ### 书籍管理 - 书籍增删改查,支持封面、作者、出版社等信息 - 书评撰写与管理 - 书摘 / 摘录记录 - 书籍分享卡片 - 书籍状态筛选 ### 笔记管理 - 笔记增删改查,支持 Markdown 编辑与实时渲染 - 笔记分享卡片 - Markdown 阅读器支持暗色模式与字体大小调节 ### 通用功能 - 全局搜索(影视 / 书籍 / 笔记) - 标签管理与分类 - 数据统计与可视化图表(月度趋势 / 类型分布) - 回收站(软删除,可恢复) - 服务器同步与 WebDAV 云同步 - 自动备份 - 暗色 / 亮色主题切换 - 自定义应用图标 - 更新日志查看 - 用户使用统计(可选) ## 技术栈 | 类别 | 技术 | |------|------| | 框架 | Flutter 3.5+ | | 语言 | Dart | | 状态管理 | Provider | | 本地数据库 | SQLite(sqflite) | ## 项目结构 ``` lib/ ├── main.dart # 应用入口,初始化与后台任务 ├── models/ │ └── data_models.dart # 数据模型(Movie, Book, Note 等) ├── providers/ │ └── app_provider.dart # 全局状态管理(Provider) ├── pages/ │ ├── movies/ # 影视相关页面 │ ├── book/ # 书籍相关页面 │ ├── note/ # 笔记相关页面 │ ├── markdown_reader/ # Markdown 阅读器 │ ├── sync/ # 同步与备份页面 │ ├── home_page.dart # 首页 │ ├── search_page.dart # 搜索页 │ ├── statistics_page.dart # 数据统计页 │ ├── profile_page.dart # 个人中心 │ └── recycle_bin_page.dart # 回收站 ├── utils/ │ ├── database_helper.dart # SQLite 数据库管理 │ ├── movie/ # 影视 DAO │ ├── book/ # 书籍 DAO │ ├── note/ # 笔记 DAO │ ├── tag/ # 标签 DAO │ ├── sync/ # 同步服务(Server / WebDAV / 备份) │ ├── theme/ # 主题配置 │ └── user_prefs.dart # 用户偏好设置 └── widgets/ # 通用组件 ``` ## 数据存储 - **数据存储位置**:`/mooknote/mooknote.db` - **图片存储位置**:`/mooknote/images/<类别>/<条目ID>/<文件名>` - 类别:`movie` / `book` / `note` ## 环境要求 - Flutter SDK 3.5+ - Dart SDK 3.5+ - Android SDK(API 21+) ## 快速开始 ```bash # 克隆项目 git clone https://github.com/dellevin/mooknote.git cd mooknote # 安装依赖 flutter pub get # 运行 flutter run ``` 如果 `pub get` 失败,可尝试设置临时变量的国内镜像: ```bash $env:PUB_HOSTED_URL="https://pub.flutter-io.cn" $env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn" flutter pub get ``` 或者使用代理方式: ```bash # 如果失败可以先添加代理再进行get,ip和端口号自行更改 $env:HTTP_PROXY="http://127.0.0.1:10808" $env:HTTPS_PROXY="http://127.0.0.1:10808" flutter pub get ``` ## 构建 ```bash # 构建 Release APK flutter build apk --release # 构建 App Bundle(Google Play) flutter build appbundle --release ``` ## 应用预览2 | 数据统计 | 侧边栏 | 我的界面 | |:---:|:---:|:---:| | | | | | 详情界面1 | 详情界面2 | 编辑笔记 | |:---:|:---:|:---:| | | | | | 分享界面1 | 分享界面2 | 预览笔记 | |:---:|:---:|:---:| | | | | ## 开源协议 本项目采用 [AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.html) 开源协议。