Skip to content

urakalee/NExT2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NExT2 - Note Export To...

1、关于 NExT2

logo

NExT2 是运行在 Android 设备上面的一款开源的 Markdown 笔记, 它修改自 MarkNote, 但使用了类似 Day One 的标记处理逻辑, 菜单更简洁. 同时, NExT2 取消了对于 MarkNote 中的多级目录和远程同步功能, 近期将支持使用 Git 同步. 在不远的将来, NExT 还会通过 Flutter 支持 iOS.

2、应用展示图

下面是该应用的一些截图 (PSed)。 你大概可以了解一下该软件的主要功能和开发状态。 在接下来的行文中,我会向你更详细地介绍它使用到的一些技术以及现在开发完成的一些功能和特性。

3、功能和特性

我把该软件当前已经支持的功能列了一个清单:

编号 功能
1 基本的添加、修改、删除操作
2 基本的Markdown语法,外加MathJax等高级特性
3 特色的时间线功能,通过类似于AOP的操作记录用户的操作信息
4 多种形式的媒体数据,包括文件、视频、音频、图片、手写和位置信息
5 多主题,支持夜间主题,并且有多种可选的主题色和强调色
6 多彩的图表用于统计用户的数据信息
7 三种形式的桌面小控件,并且可以为每个笔记添加快捷方式
8 允许你为笔记指定多个多彩的标签
9 使用“树结构”模拟文件夹操作,支持多层文件夹,并可以进行层级的搜索
10 允许将笔记导出为PDF、TXT、MD格式的文本、HTML和图片
11 使用应用独立锁,加强数据安全
12 允许用户备份数据到外部存储空间和OneDrive
13 图片自动压缩,节省本地的数据存储空间

将来希望开发和完善的功能:

编号 功能描述
1 数据同步,本地的文件管理容易导致多平台的不一致,增加同步服务,能够实现多平台操作
2 文件服务器,用于获取图片和文件的链接
3 富文本编辑,即时的编辑预览
4 允许添加闹钟,并且复选框可以编辑
5 添加地图来展示用户的位置信息的变更

你可以从更新日志中获取到软件的更新信息。

4、依赖和用到的一些技术

马克笔记用到了MVVM的设计模式,还用到了DataBinding等一系列技术。下面的表格中列出了用到的具体的依赖和简要的描述。在此,还要感谢这些开源项目的作者:

编号 依赖 描述
1 arch.lifecycle 使用ViewModel+LiveData实现Model和View的解耦
2 Stetho Facebook开源的安卓调试框架
3 Fabric 错误跟踪,用户数据收集
4 RxBinding
5 RxJava
6 RxAndroid
7 OkHttp
8 Retrofit
9 Glide
10 BRVAH 非常好用的Recycler适配器
11 Gson
12 Joda-Time Java时间库
13 Apache IO 文件操作库
14 Material dialogs
15 PhotoView
16 Hello charts
17 FloatingActionButton
18 HoloColorPicker
19 CircleImageView
20 Changeloglib 日志信息
21 PinLockView 锁控件
22 BottomSheet 底部弹出的对话框
23 Luban 图片压缩
24 Flexmark 基于Java的Markdown文本解析
25 PrettyTime 时间格式美化

数据库操作

对于数据库部分,笔者自己设计了一套数据的访问逻辑,这里使用到了模板和单例等设计模式。 它的好处在于,当你想要向程序中添加一个数据库实体的时候,只需要很少的配置即可,可以省去很多的样板代码。 而且,由于该项目的一些特殊需求,比如要记录统计信息等,所以自行设计了一套来访问。 后续会介绍它的一些设计的思路、优势和局限性。

Markdown解析

对于Markdown解析,笔者在这方面寻找了许多资料,个人信息里面的stars就是很好的证明。 你可以使用javascript在webview里面解析,也可以像本项目一样在程序种用java进行解析。 这里使用的是Flexmark在java中解析,它的好处是对于Android开发者,一般而言,对Java语言可能比对Javascript更加熟悉。 比如,该软件中的MathJax的解析就是在Flexmark的基础上进行的拓展。

5、参与项目

正如一开始提及的那样,马克笔记仍然有许多不足,我希望可以有更多的人帮助马克笔记继续完善它的功能。 当然,这并不勉强。如果你希望对该项目贡献代码,你可以fork该项目,并向该项目提交请求。 你可以在waffle.io上面跟踪issue的开发状态。 或者,你发现了该软件中存在的一些问题,你可以在issue中向开发者报告。 如果有其他的需求,可以直接通过邮箱邮件开发者。

About

NExT2: 让Markdown为思考加把劲

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 78.8%
  • Kotlin 19.9%
  • Python 1.3%