从零开发一款笔记APP——神马笔记WhatsNote

版权声明:个人原创,欢迎转载。 https://blog.csdn.net/chuyangchangxi/article/details/83444902

从零开发一款笔记APP——神马笔记WhatsNote

一、主要功能

笔记的主要功能分为三个部分:

  • 管理
    • 目录——多层目录结构
    • 标签——单层结构
    • 收藏
    • 最近——最近使用的笔记
    • 废纸篓——笔记回收站
    • 外部文件
    • 摘抄
  • 预览
    • 纯文本
    • 代码
    • 安装包APK
    • 字体
    • 网页
    • 电子书——ePub、纯文本
    • 图片
    • 音频
    • 视频
  • 编辑
    • 文本——纯文本、富文本
    • 图片
    • 音频
    • 视频

二、开发过程

  1. 从预览功能入手开发

预览是相对独立,并且无需保存太多用户数据的功能,并且编辑过程,编辑完成后都需要预览。预览依序从纯文本文件、富文本文件、图片、音频、视频、特定的二进制格式文件进行开发。同时,并不意味着要开发完所有的预览功能,再开始开发管理与编辑功能。关键在于设计预览功能的框架结构,从2~3中类型文件入手,设计预览的整体框架,之后的预览功能便是横向扩展更多的格式支持,纵向为每一种格式增强功能。

关键:预览2~3种文件,设计预览整体框架,横向扩展格式,纵向增加功能。

  1. 开始管理笔记及文件

完成了部分的预览功能后,阅读的内容越来越多,管理功能开始变得迫切。我们便需要加入管理的功能。对于预览,我们只需要一个外部文件功能,记录最近预览的文件。之后,准备进入正题——创建笔记。只是创建笔记,我们并不准备开始编辑笔记。创建笔记的同时,我们需要考虑如何管理笔记。这个过程中,我们很容易创建1000+条笔记,并且以后为这1000+条笔记编辑内容。如何管理数量庞大的笔记?我们引入文件夹的概念。如何使用PC或者MAC系统,最经常使用的文件系统一样。我们给笔记创建文件夹以进行分类,并且文件夹中可以创建文件夹,从而实现多层的目录管理。完成目录管理之后,我们再进一步考虑标签、最近项目、废纸篓、……等功能。后续的功能可以理解为笔记创建了一个特殊的目录。

关键:多层的目录管理,以及特殊的目录(如标签、最近项目、废纸篓、……)

  1. 编辑笔记

编辑功能是笔记的核心所在,需要更多的构思与设计,还有参考既有的编辑期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

四、附录

  • 如何判断编辑器是哪种实现方式?
  1. 根据自动换行,行末的光标位置
    1. 最后一个字符:WEB方式
    2. 最有第二个字符:原生方式,可能EditText或者自定义控件
  2. 根据长按的弹出菜单
    1. 与常见的编辑弹出菜单(如短信)一致:EditText
    2. 不一致:自定义的控件
  • 如何关注开发进度?

神马笔记WhatsNote为开源项目,你可以在我的GitHub上下载安装包及完整的源代码,了解开发进度,反馈遇到的问题,需求技术支持,……

GitHub地址:https://github.com/jicanghai37927/WhatsAndroid

猜你喜欢

转载自blog.csdn.net/chuyangchangxi/article/details/83444902