generated from dellevin/template
删除无用组件
This commit is contained in:
74
README.md
74
README.md
@@ -1,7 +1,7 @@
|
|||||||
# MookNote - Flutter 观影阅读笔记应用
|
# MookNote - Flutter 观影阅读笔记应用
|
||||||
|
|
||||||
## 项目简介
|
## 项目简介
|
||||||
MookNote 是一款用于记录观影、阅读和笔记的 Android 应用,使用 Flutter 框架开发。
|
MookNote 是一款用于记录观影、阅读和笔记的 Android 软件,基于 Flutter 框架开发。
|
||||||
|
|
||||||
## 功能特性
|
## 功能特性
|
||||||
|
|
||||||
@@ -23,13 +23,11 @@ MookNote 是一款用于记录观影、阅读和笔记的 Android 应用,使
|
|||||||
### 笔记模块
|
### 笔记模块
|
||||||
- 显示所有笔记列表
|
- 显示所有笔记列表
|
||||||
- 支持标签分类
|
- 支持标签分类
|
||||||
- 显示笔记内容和更新时间
|
|
||||||
|
|
||||||
### 侧边菜单
|
### 侧边菜单
|
||||||
- GitHub 风格热力图(年度记录可视化)
|
- 个人记录简要
|
||||||
- 统计功能入口
|
- 回顾影视/书籍
|
||||||
- 回收站入口
|
- 月份风格热力图
|
||||||
- 设置入口
|
|
||||||
|
|
||||||
## 环境要求
|
## 环境要求
|
||||||
|
|
||||||
@@ -109,72 +107,10 @@ flutter run
|
|||||||
- **Flutter**: 跨平台移动应用框架
|
- **Flutter**: 跨平台移动应用框架
|
||||||
- **Dart**: 编程语言
|
- **Dart**: 编程语言
|
||||||
- **Provider**: 状态管理
|
- **Provider**: 状态管理
|
||||||
- **Material Design 3**: UI 设计规范
|
|
||||||
|
|
||||||
## 后续开发计划
|
|
||||||
|
|
||||||
### 数据存储
|
|
||||||
|
|
||||||
- [x] 集成 SQLite 数据库(sqflite 包)
|
**5. 图片文件存储路径:**
|
||||||
- [x] 实现本地数据持久化
|
|
||||||
- [x] 数据备份与恢复
|
|
||||||
|
|
||||||
### 功能增强
|
|
||||||
|
|
||||||
- [x] 添加/编辑表单页面
|
|
||||||
- [x] 详情页完整实现
|
|
||||||
- [x] 搜索功能
|
|
||||||
- [x] 统计图表页面
|
|
||||||
- [x] 回收站功能
|
|
||||||
|
|
||||||
### 高级功能
|
|
||||||
|
|
||||||
- [x] 导出功能(JSON)
|
|
||||||
- [ ] 云同步
|
|
||||||
|
|
||||||
## 双向同步规则
|
|
||||||
|
|
||||||
双向同步的规则如下:
|
|
||||||
|
|
||||||
**1. 数据库文件同步规则:**
|
|
||||||
|
|
||||||
| 情况 | 操作 |
|
|
||||||
| :---------------- | :----------------------- |
|
|
||||||
| 远程数据库不存在 | 上传本地数据库 |
|
|
||||||
| 本地较新(>10秒) | 上传本地数据库 |
|
|
||||||
| 远程较新(>10秒) | 下载远程数据库 |
|
|
||||||
| 时间相近(±10秒) | 不传输数据库,仅同步图片 |
|
|
||||||
|
|
||||||
**2. 图片同步规则:**
|
|
||||||
|
|
||||||
| 情况 | 操作 |
|
|
||||||
| :--------------- | :------------------------------------- |
|
|
||||||
| 本地有,远程没有 | 上传到远程 |
|
|
||||||
| 远程有,本地没有 | 下载到本地 |
|
|
||||||
| 两边都有 | 不处理(暂不支持基于时间戳的图片同步) |
|
|
||||||
|
|
||||||
**3. 同步方向选项:**
|
|
||||||
|
|
||||||
- **双向同步** - 按上述规则自动判断上传/下载
|
|
||||||
- **仅上传** - 只上传本地数据库和所有本地图片
|
|
||||||
- **仅下载** - 只下载远程数据库和所有远程图片
|
|
||||||
|
|
||||||
**4. 时间戳比较:**
|
|
||||||
|
|
||||||
```dart
|
|
||||||
// 10秒误差范围内视为相同
|
|
||||||
if (timeDiff > 10) {
|
|
||||||
// 本地较新,上传
|
|
||||||
} else if (timeDiff < -10)
|
|
||||||
{
|
|
||||||
// 远程较新,下载
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
// 时间相近,仅同步图片
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**5. 文件路径:**
|
|
||||||
|
|
||||||
- 数据库:`/mooknote/mooknote.db`
|
- 数据库:`/mooknote/mooknote.db`
|
||||||
- 图片:`/mooknote/images/图片文件名`
|
- 图片:`/mooknote/images/图片文件名`
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
// This is a basic Flutter widget test.
|
|
||||||
//
|
|
||||||
// To perform an interaction with a widget in your test, use the WidgetTester
|
|
||||||
// utility in the flutter_test package. For example, you can send tap and scroll
|
|
||||||
// gestures. You can also use WidgetTester to find child widgets in the widget
|
|
||||||
// tree, read text, and verify that the values of widget properties are correct.
|
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_test/flutter_test.dart';
|
|
||||||
|
|
||||||
import 'package:mooknote/main.dart';
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
testWidgets('Counter increments smoke test', (WidgetTester tester) async {
|
|
||||||
// Build our app and trigger a frame.
|
|
||||||
await tester.pumpWidget(const MyApp());
|
|
||||||
|
|
||||||
// Verify that our counter starts at 0.
|
|
||||||
expect(find.text('0'), findsOneWidget);
|
|
||||||
expect(find.text('1'), findsNothing);
|
|
||||||
|
|
||||||
// Tap the '+' icon and trigger a frame.
|
|
||||||
await tester.tap(find.byIcon(Icons.add));
|
|
||||||
await tester.pump();
|
|
||||||
|
|
||||||
// Verify that our counter has incremented.
|
|
||||||
expect(find.text('0'), findsNothing);
|
|
||||||
expect(find.text('1'), findsOneWidget);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user