云笔记类应用完整实现方案-客户端部分

814 阅读2分钟

背景介绍

出于对技术的热忱,一直再研究笔记类和清单类应用,希望可以打造一个类似的应用.笔记类应用和其他应用有一个很大的不同,数据会涉及到多端同步(一般app每次直接从服务器获取数据,不在本地保存数据). 当某个设备上,数据发生变更后,就需要同步到服务器.当服务器上有数据变更后,其他设备就应该在合适的时机把数据同步下来. 这种机制适用于一大类应用,而不止局限于笔记app,如网盘app也类似,只是具体同步的数据结构存在差异. 在研究实现方案的过程中,帮助最大是印象笔记开放同步方案Leanote开发实现源码.

整体方案简述

每个用户上记录一个userMaxUsn;每条用户数据都有一个usn,每次数据变更,就把用户上的userMaxUsn加1,然后将此值作为该条数据的usn.客户端通过usn比较,判断本地和服务器的数据,到底哪个新,如果服务器新,就下载更新.

客户端实现方案详述

  1. 同步时机
  • 启动app进行一次同步
  • 每次变更本地笔记,进行一次同步
  • 每次刷新,进行一次同步
  1. 同步流程详图
  2. 主要技术点
  • Coroutines
  • ViewModel
  • LiveData
  • Retrofit
  • Paging
  • Room

源代码

gitee.com/hspbc/cloud…

附录

  1. 印象笔记开放同步方案
  2. Leanote开发实现源码

关于我

厦门大学计算机专业|华为八年高级工程师
十年软件开发经验,5年编程培训教学经验
目前从事编程教学,软件开发指导,软件类毕业设计指导。
所有编程资料及开源项目见juejin.cn/post/700279…