一、主要功能
笔记的主要功能分为三个部分:
- 管理
- 目录——多层目录结构
- 标签——单层结构
- 收藏
- 最近——最近使用的笔记
- 废纸篓——笔记回收站
- 外部文件
- 摘抄
- 预览
- 纯文本
- 代码
- 安装包APK
- 字体
- 网页
- 电子书——ePub、纯文本
- 图片
- 音频
- 视频
- 编辑
- 文本——纯文本、富文本
- 图片
- 音频
- 视频
二、开发过程
- 从预览功能入手开发
预览是相对独立,并且无需保存太多用户数据的功能,并且编辑过程,编辑完成后都需要预览。预览依序从纯文本文件、富文本文件、图片、音频、视频、特定的二进制格式文件进行开发。同时,并不意味着要开发完所有的预览功能,再开始开发管理与编辑功能。关键在于设计预览功能的框架结构,从2~3中类型文件入手,设计预览的整体框架,之后的预览功能便是横向扩展更多的格式支持,纵向为每一种格式增强功能。
关键:预览2~3种文件,设计预览整体框架,横向扩展格式,纵向增加功能。
- 开始管理笔记及文件
完成了部分的预览功能后,阅读的内容越来越多,管理功能开始变得迫切。我们便需要加入管理的功能。对于预览,我们只需要一个外部文件功能,记录最近预览的文件。之后,准备进入正题——创建笔记。只是创建笔记,我们并不准备开始编辑笔记。创建笔记的同时,我们需要考虑如何管理笔记。这个过程中,我们很容易创建1000+条笔记,并且以后为这1000+条笔记编辑内容。如何管理数量庞大的笔记?我们引入文件夹的概念。如何使用PC或者MAC系统,最经常使用的文件系统一样。我们给笔记创建文件夹以进行分类,并且文件夹中可以创建文件夹,从而实现多层的目录管理。完成目录管理之后,我们再进一步考虑标签、最近项目、废纸篓、……等功能。后续的功能可以理解为笔记创建了一个特殊的目录。
关键:多层的目录管理,以及特殊的目录(如标签、最近项目、废纸篓、……)
- 编辑笔记
编辑功能是笔记的核心所在,需要更多的构思与设计,还有参考既有的编辑期APP,所以我们安排到最后来开发。编辑有2种实现方式,原生和网页2种方式。网页编辑器的好处在于丰富性和可移植行。你可以在GitHub上找到很多网页版本的编辑器,只需要用WebView进行加载即可实现编辑。并且很容易移植到PC和服务器上,保证各个平台编辑体验的一致性。另外一种方式是原生方式,在安卓平台上可以通过EditText来实现编辑,或者自定义控件进行编辑。2种方式各有优劣,需要根据具体的应用场景来选择。
纯文本格式——EditText足够使用;
包含图片的富文本格式——EditText足够使用;
复杂的富文本格式——网页编辑器可以考虑;
……
关键:根据具体场景选择合适的编辑器
三、优质的笔记应用
- 备忘录(iOS)
最好用的笔记应用。主力的笔记工具。
- WPS便签(Android)
最卓越的笔记编辑器。虽然是便签,但功能非常丰富,完全可以胜任笔记的工作。
编辑器:自定义的编辑控件,大厂风范。
下载地址:https://www.coolapk.com/apk/cn.wps.note
- 纯纯写作(Android)
纯文本及Markdown格式,独立开发者作品,简洁而不简单。
编辑器:EditText
下载地址: https://www.coolapk.com/apk/com.drakeet.purewriter
- Zine(Android)
强悍的富文本编辑功能。
编辑器:网页
下载地址:https://www.coolapk.com/apk/com.auramarker.zine
- 墨者写作
专注于小说创作,有很多辅助小说创作的功能。
编辑器:EditText
下载地址:https://www.coolapk.com/apk/com.mozhe.mzcz
- 石墨文档
优雅并且强大。
编辑器:网页
下载地址:https://www.coolapk.com/apk/chuxin.shimo.shimowendang
四、附录
- 如何判断编辑器是哪种实现方式?
- 根据自动换行,行末的光标位置
- 最后一个字符:WEB方式
- 最有第二个字符:原生方式,可能EditText或者自定义控件
- 根据长按的弹出菜单
- 与常见的编辑弹出菜单(如短信)一致:EditText
- 不一致:自定义的控件
- 如何关注开发进度?
神马笔记WhatsNote为开源项目,你可以在我的GitHub上下载安装包及完整的源代码,了解开发进度,反馈遇到的问题,需求技术支持,……