tags: 開(kāi)發(fā)隨筆
從開(kāi)始開(kāi)發(fā) MarkNote 的時(shí)候我就想給這款應(yīng)用加上云同步的機(jī)制。后來(lái)mac版的MarkNotes也上架了,同步機(jī)制顯得更重要了。
然而,我卻一直沒(méi)有動(dòng)手。主要的挑戰(zhàn)是文檔同步需要考慮的因素太多。理想的文檔同步不應(yīng)該只是單向的備份方式,它應(yīng)該以一種對(duì)用戶透明的方式來(lái)實(shí)現(xiàn)多設(shè)備之間的信息共享和版本管理。
前段時(shí)間隨著 MarkNote和 MarkNotes的其他功能基本完善,使得我有時(shí)間來(lái)思考這個(gè)問(wèn)題,同時(shí)參考了很多資料。
首先整理一下我的需求:
- 首先用戶信息的安全是最重要的;所依賴(lài)的服務(wù)應(yīng)該足夠安全;
- 最好是Serverless的,我沒(méi)有錢(qián)和精力去維護(hù)自己的服務(wù)器;
- 應(yīng)該是基于文件的同步;
- 實(shí)現(xiàn)多設(shè)備的文件同步。我希望用戶可以共享iOS上的MarkNote和mac上MarkNotes資料可以共享;
- 同步的方式應(yīng)該盡量的簡(jiǎn)單,最好不需要用戶去處理版本沖突之類(lèi)的問(wèn)題;
- 服務(wù)不要給一般的用戶帶來(lái)額外的費(fèi)用;
- 服務(wù)最好國(guó)內(nèi)和國(guó)際用戶都可以使用,目前來(lái)看我的兩個(gè)應(yīng)用最主要的用戶來(lái)自中國(guó)和美國(guó),需要讓他們都可以訪問(wèn);
通過(guò)整理需求,基本上可選的方式也就不多了:
- 國(guó)內(nèi)的一些服務(wù)要么覺(jué)得不夠安全或者穩(wěn)定性有待考證;
- 大牌的文件共享服務(wù)dropbox或者box雖然不錯(cuò),但是國(guó)內(nèi)訪問(wèn)是個(gè)問(wèn)題;
- Parse.com雖然看起來(lái)不錯(cuò),可惜在我想用它的時(shí)候,它已經(jīng)掛了;
- Google的firebase看起來(lái)很帥,不錯(cuò)貌似是數(shù)據(jù)庫(kù)方式的,而我的需求還是文檔同步,有點(diǎn)別扭;
這么看下來(lái),只有iCloud了。