1
nashaofu 2023-12-13 12:30:14 +08:00 via Android
关键词 crdt.最近也在了解这一块,yjs 这个库在网页端有实现 crdt
|
2
Maboroshii 2023-12-13 12:32:27 +08:00 via Android
看一下 obsidian 的那个 webdav 同步插件吧,里面有介绍他们的同步算法。
|
3
horizon 2023-12-13 21:35:46 +08:00
如果只有一个端,你这种是可行的。直接覆盖式更新。
如果有多个端,就需要协同算法 OT 或者 CRDT 了 |
4
kuanat 2023-12-13 23:30:15 +08:00
先需要弄清楚几个概念:
- jetpack compose 重点是 ui 和本地数据状态的同步 - 安卓 app 的同步指的是多客户端以及服务器之间数据副本的同步 - 断网可用这个特性一般用 local first 来描述 你的问题是 local first 实现方式,和用不用 jetpack compose 与是不是安卓没有关系。 这个问题的答案和业务逻辑强相关,没有普适的模式。楼上提到的 OT/CRDT 适合于多人同时编辑文档的场景,并不适合 local first 意义上的同步。 另外你举例的 app 可能在多端同步实现上没有想象中那么好。 |
5
janus77 2023-12-14 10:05:23 +08:00
你说的基本就是客户端做的事
客户端所谓的同步,只负责把数据上传到云端,至于多端的情况下云端怎么合并,更新哪部分舍弃哪部分,那是云端自己用算法做,然后客户端只负责获取合并后的结果就可以。你如果是做客户端开发,是不需要关心这部分的 |