目前它仅在 Android 上可用,但应该可以相对轻松地移植到其他平台,因为源代码是用 Flutter 编写的。
变更日志
v1.3.0
新增页面和分类背景图片设置
添加了强制同步指示器
修复自动同步不起作用的问题
v1.2.1
添加了与 Google 的同步
修复排序问题
导出时压缩 DB
免费导入和同步功能
免费提供文本格式和注释功能
v1.1.0
添加笔记查看模式
新增列表查看模式
添加排序选项:自定义顺序 | 标题(描述)| 创建日期(描述)| 更新日期(描述)
添加了克隆注释
仅在内容更改时刷新注释更新日期
小修复
特征
用跨平台语言 Flutter 和 Kotlin 编写
已经集成了用于高级升级的应用内购买
对主要应用程序功能使用最佳包,例如用于文本编辑器的 flutter_quill、用于共享的 share_plus 以及用于主机 API 抽象的 Pigeon
使用 SQLite 进行高性能数据查找
自定义数据库迁移系统处理数据库版本控制并允许您轻松添加数据库迁移
惰性笔记列表项呈现高性能列表,处理大量笔记列表没有问题,例如。 即使有数以万计的音符,也只有其中的少数被处理和渲染
该应用程序是使用 Flutter 和 Kotlin 构建的。 我使用 VSCode 作为编辑器,并假设您也会这样做。
局限性
该代码是专门为Android设计的,没有考虑任何其他平台。
入门
获取 google-services.json 并将其放入 android/app 文件夹中。 您可能想阅读将 Firebase 添加到您的 Android 项目 | Android 版 Firebase (google.com)
将 android/key.properties.example 复制到 android/key.properties 并进行相应更新
编辑 rename-app 中的变量部分以反映您的新应用程序和包名称
在项目文件夹中运行:./rename-app
测试构建项目,请参阅下面的部署部分
构建疑难解答
如果构建失败,请尝试这些。
杀死 gradle: pgrep -f gradle
清理缓存:flutter clean
清理 gradle 缓存(在 android/ 中运行):./gradlew clean
或 rm -rf android/.gradle
** 请注意,您应该设置 Play 商店 API 访问权限才能使播放计费正常工作,当您的应用内产品显示在 UpgradeDialog 上时,您可以确认播放计费有效。
部署
没有服务器部署,因此这只是构建要上传到 Google Play 商店的包。
假设您已经安装了 Flutter,则部署很简单,只需在项目文件夹中运行以下脚本即可:
./bump-buildversion
这将增加 pubspec.yaml 中的构建版本(文件中 version: 1.0.0+1 行中 + 号后面的数字)
./build-appbundle
这将简单地运行 flutter build appbundle,它会生成 .aab 文件,您在创建版本时需要将其上传到 Google Play 商店
设计细节
该应用程序由几个屏幕组成,其中有订阅某些状态的小部件。 状态只是一组反应变量和一些用于执行应用程序业务逻辑的方法。 各州可能会使用一些处理读写的存储库
数据到数据库。
逻辑视图
屏幕
该应用程序仅由几个屏幕组成:
主屏幕:这是显示当前所选类别的笔记列表的主屏幕。 用户可以从类别选项卡列表中选择活动类别。 在顶部栏上有一些当前配置为的按钮
显示,它们是:搜索、添加注释、紧凑/完整视图、设置和菜单按钮
设置屏幕:显示用于配置哪些按钮在顶部栏上可见以及主屏幕上的注释项目的选项。 还有一些外观设置仅在应用程序的专业版中可用(用户需要购买付费升级)。
还有导出或导入数据的选项以及管理隐藏笔记密码的选项
ArchiveScreen:显示已存档笔记的列表。 用户可以在此处选择要取消存档或删除的笔记。 删除的笔记将显示在垃圾箱屏幕上
TrashScreen:显示已删除笔记的列表。 在这里用户可以选择选择要恢复/取消删除或永久删除的笔记
NoteScreen:显示注释编辑器。 该编辑器支持富文本编辑和嵌入(仅适用于入门版)。 用户还可以添加显示在文本和图像/视频嵌入顶部的注释/绘图
状态
状态根据其域进行分割,以最大限度地减少小部件更新(只有订阅状态的小部件才会被重建)。 这些州是:
CategoryState:处理类别业务逻辑,包括:添加、删除、修补、重新排序类别
NoteState:处理注释业务逻辑,包括:添加、删除、归档、恢复、重新排序以及获取已归档、删除、隐藏和搜索查询过滤器的当前活动过滤器的注释
DragState:提供注释和类别拖动状态
SettingsState:处理设置业务逻辑
EditState:处理笔记编辑业务逻辑
焦点状态
VendingState:提供当前许可证层状态
存储库
应用程序中很少有存储库来处理向数据库读取和写入数据。 它们根据域进行分组,分别是:
类别存储库
笔记库
设置存储库
自动售货库
数据库
该应用程序使用 SQLite 存储所有数据,包括注释、类别、设置和缓存的购买。
数据库迁移
迁移数据库只需打开 repositories/migrations.dart 文件并将另一个 migrate() 调用添加到 migrateAll 函数中列表的底部即可完成。
** 请注意,发布应用程序后不应重新排序 migrate() 调用以保持正确的版本检查顺序,否则某些迁移将不会执行。 这是使用具有更多样板的 switch/case 结构的权衡
添加迁移时。
应用程序
FunNotes 是一款可定制的笔记应用程序,专注于文本编辑和个性化。 从多种颜色和按钮可见性中进行选择,让您的笔记真正属于您自己。 有了 FunNotes,记笔记从未如此有趣和轻松!
特征
轻松管理笔记:添加、删除、固定、隐藏、编辑、重新排序、移动到其他类别、存档、永久删除、取消存档和取消删除。
创建类别来组织笔记并通过添加、删除、重命名和重新排序选项对其进行自定义。
富文本格式选项:粗体、斜体、字体、颜色、背景颜色等等。 将图像、视频、表情符号插入笔记中
注释和绘图:在笔记中创建它们
以图像形式分享您的笔记
自定义 FunNotes 的可见按钮和外观,包括暗模式、基本主题、默认笔记背景/图钉颜色、每个笔记背景/图钉颜色等选项
轻松搜索笔记并突出显示找到的搜索词
导出并备份您的笔记以确保您的数据始终安全
导入和恢复您的笔记以在设备之间切换或恢复丢失的数据
这些只是使 FunNotes 成为终极笔记工具的众多强大功能中的一小部分。 立即尝试 FunNotes,开始以有趣且个性化的方式记笔记!
** 请注意,提到的某些功能可能是高级功能,需要付费升级。 请参阅下面的升级选项了解更多详细信息。
升级选项
您可以通过应用内购买轻松升级和访问高级功能。
专业版
所有免费功能
定制
我们的路线图中计划开发许多功能。 我们将非常感谢您对该应用程序的支持。 谢谢。