基于Markdown的个人记录软件系统开发
摘要
为了解决目前市面上写作笔记和规划的功能割裂,且支持动态Markdown语法渲染的文本编辑软件系统缺乏的问题,我们开发了基于Markdown的个人记录软件系统。该系统采用Electron和Flutter跨端技术,适配了移动端和PC端操作系统。两大端均实现了基于富文本渲染技术的Markdown语法渲染及其衍生的写作笔记管理等配套功能。此外,我们还使用了异步和同步保存传输技术,并提供加密、以及多种备份方式,让用户数据和隐私更大可能地保护好。最后,我们将成品软件发布至各大应用商城。通过不断打磨更新和版本迭代以满足用户需求,该软件最终在应用市场获得了广泛的用户并收获了良好的评价,给人们提供了更多的软件选择。
项目背景和需求分析:
为提高文本处理的工作效率、促进文艺作品的创意灵感的收集、同时辅助以个人目标的实现,我们就依托现有软件开发技术能力,帮助人们实现对于日常便签、文本、日程安排等的快速记录。除此之外,我们还需要实现在不同的设备上保持数据的一致性,并提供相应的云存储能力,满足人们对文本数据的存储需求(不丢失),以提高效率,体现出便捷性。
同时基于相关市场调查研究,目前市面上的写作笔记和规划功能严重割裂,而运用规划+记录相结合将能够弥补目前市面上的现有应用软件的缺陷。除了Word、WPS等大量级软件具有较好的多端同步功能以外,其余产品的多端支持性较差,我们希望该项目能很好的支持PC和移动端的互通。此外,支持Markdown语法的文本编辑写作软件暂无实时渲染技术,而我们希望用户编写时能够做到所见即所得,具有更多个性化样式设置,有很强的用户体验。
综上,我们旨在开发一款基于Markdown的个人记录规划实现的系统,把规划、打卡、写作管理以及Markdown格式动态渲染写作有机组合,让用户一个应用即可解决生活中的记录和备忘,以及目标规划的问题。
该系统已上架至各大端应用商店(安卓端、IOS端、Windows端,Mac端),于各大商店检索“喵滴”即可下载体验。
项目总体设计
各大平台模块设计
移动端设计
华为linux系统下载移动端分为安卓和IOS端,安卓端使用原生安卓SDK实现,iOS端使用Flutter框架开发。
1. 安卓SDK是一种免费的专门的安卓端开发工具,由谷歌为其安卓平台开发,以方便程序员开发安卓应用。
2. Flutter 是一个由 Google 开发的开源框架,用于构建高性能的跨平台移动应用、Web 应用和桌面应用。其使用 Dart 语言开发,它不仅具有面向对象的特性,还具有很多函数式编程的特性,能够更好地支持响应式编程。
PC端设计
PC端使用Electron框架开发。
1. Electron 是由 GitHub 开发的一个开源框架,它允许使用 Web 技术(如 HTML、CSS 和 JavaScript)构建跨平台桌面应用程序。
数据库关系模式设计
依据需求分析,我们进行了数据库关系模式的设计。包含了规划打卡、用户、书本、章节和
文章实体和他们之间的关系(图1)。
图1 数据库关系模式
服务器设计
本项目服务端使用Java SpringBoot技术栈,ORM框架为MyBatisPlus。为了提升服务器性能,我们使用Nginx作为网关服务器,用于同时处理在Tomcat上运行的Springboot项目和相
关的图床上的静态资源请求,如图2所示。数据库使用Mysql 5.6。服务器硬件平台为华为云。在SpringBoot程序中,我们基于分层的架构,设计了DAO层、Service层和Controller层以保证应用的松耦合。其中,DAO层用于数据库ORM框架交互,将数据库查询好的数据返回给Service层,Service层使用DAO返回的数据运行相关业务逻辑,将处理好的数据对象返回给Controller层,最后Controller层通过http响应体将数据发送给前端。
图2 服务器架构
关键技术
1.异步保存传输技术:
1)判断文本差异性
根据此,在iOS与安卓中计划编写动态文本变化,每当文本有变化,立即对原来的文本进行对比,进行差异分析,同时把差异化的数据即文本保存进数据库中。
2)差异化数据传输问题
市场上大部分的应用是把自己的数据库压缩一份,发送到服务器进行备份。这种方法很简单,却无法进行多设备编辑。我们计划利用数据库进行了差异化数据分析,对单篇采用「修改即同步」的方法,才顺利解决问题。
1.动态渲染技术:
富文本编辑器一直是前端领域的高难度部分,为此,我们在各个平台都有不同的解决方案:
1)PC客户端:
参考codemirror的设计思路:主要依赖于浏览器原生的编辑能力,用户内容的输入是浏览器直接处理,加粗、斜体、回车等这类的处理则是捕获浏览器的事件来覆盖浏览器默认行为来
实现,再辅以一些DOM的嵌套规则(dtd)和复杂数据输入(如粘贴)的过滤规则来约束数据的正确性。
2)安卓:
计划使用安卓的EditView进行正则表达式匹配,并采用段落动态切
割进行局部渲染,在达到所见即所得的功能外,性能也并没有比原生差太多。
3)iOS:
计划采用Zefyr动态富文本库为基础,进行进一步的封装与修改特性,同时采用安卓的段落分行方法,基于此完成了动态渲染的所见即所得功能。
1.同步保存技术:
计划在iOS与安卓中设置动态文本变化,每当文本有变化,立即对原来的文本进行对比,进行差异分析,同时把差异化的数据即文本保存进数据库中。
1.数据加密技术:
计划引入AES加密方法,用户可自行选择是否加密后再存储在本地。
1.数据保护技术:
1)提供可靠的云服务功能和提供WebDAV配置这两种方法用于用户的网络保护。
2)支持用户对数据进行本地数据库/文件系统备份,用户通过即使备份和转移即可避免本地的数据丢失
3)稳定版发布前在团队内部进行黑盒测试,而后邀请内测的广大用户使用。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论