EverBox开发笔记-1
我負(fù)責(zé)存儲(chǔ)部分,要先思考兩個(gè)存儲(chǔ)問題:數(shù)據(jù)本地存儲(chǔ)方案,和數(shù)據(jù)云端存儲(chǔ)方案。
由于這是個(gè)UGC App,內(nèi)容需要在本地存儲(chǔ)以提供流暢的操作體驗(yàn),還要同步到云端以保證數(shù)據(jù)不丟失,還要能在用戶的多個(gè)設(shè)備之間同步。
1,云端存儲(chǔ)方案。
因?yàn)槭荅verNote的鐵桿用戶,所以計(jì)劃保存到EverNote,今天突然想為什么不試試iCloud呢?
從蘋果開發(fā)者網(wǎng)站下載兩個(gè)介紹iCloud編程的視頻,對(duì)它有了大概了解:
- 1,主要解決多個(gè)設(shè)備之間同步數(shù)據(jù)的問題,而不是為解決數(shù)據(jù)永久性存儲(chǔ)問題(當(dāng)然也支持永久性存儲(chǔ))。
- 2,從iOS5.1開始支持。
- 3,每個(gè)用戶有免費(fèi)的5G空間。
- 4,支持Key/Value和文件方式的存儲(chǔ),對(duì)于文件方式的存儲(chǔ),當(dāng)文件發(fā)生改變時(shí),僅同步傳輸改變的部分,這點(diǎn)很像rsync。
- 5,可以跟App無縫集成,以消息方式通知App數(shù)據(jù)是否需要有改變,以及哪些數(shù)據(jù)改變了。
這么多優(yōu)點(diǎn),把EverNote甩出兩條街,做iOS開發(fā)的人,如果不用iCloud做云存儲(chǔ),那就太暴殄天物了,原因如下:
- 1,無需額外注冊(cè),使用AppleID即可辨識(shí)用戶,用iOS設(shè)備的人,基本都有AppleID,除非越獄用戶,但我的App不是給他們?cè)O(shè)計(jì)的。
- 2,跟iOS系統(tǒng)集成的好,以消息通知方式處理數(shù)據(jù)同步,開發(fā)更簡(jiǎn)單。
- 3,5G的免費(fèi)空間,對(duì)于小數(shù)據(jù)量App來說足夠了。
- 4,如果用戶需要更大的空間,付費(fèi)買空間即可,這也是Apple愿意看到的結(jié)果。所以使用iCloud能達(dá)到用戶、開發(fā)者、Apple三方共贏。
2,本地存儲(chǔ)方案。
之前做的幾個(gè)App都使用本地文件的方式存儲(chǔ)數(shù)據(jù),因?yàn)?#xff1a;
- 1,數(shù)據(jù)量小,基本都是配置類型數(shù)據(jù)。
- 2,要存儲(chǔ)的數(shù)據(jù)都是NSArray、NSDictionary、NSData一類的對(duì)象,可以通過writeToFile和initWithContentsOfFile跟文件打交道。
- 3,App啟動(dòng)時(shí)所有數(shù)據(jù)就會(huì)加載到內(nèi)存。
- 4,不需要同步到云端。
正在做的App恰好這幾點(diǎn)都不具備:數(shù)據(jù)量日積月累下可能會(huì)達(dá)到數(shù)千條,還有大量小文件需要同步到云端,需要做本地?cái)?shù)據(jù)搜索。
同事之前推薦過SQLite,于是找了個(gè)例程看了看,決定使用SQLite,原因如下:
- 1,接口簡(jiǎn)單,使用門檻低。
- 2,數(shù)據(jù)庫(kù)采用本地文件方式存儲(chǔ),可以不加修改的同步到iCloud。
- 3,SQL搜索方便,不需要學(xué)習(xí)額外的知識(shí),可以快速開發(fā)出產(chǎn)品原型。
明天開始放端午節(jié)小長(zhǎng)假,今晚看捷克VS葡萄牙的歐洲杯1/4決賽,看完再睡一覺就到十點(diǎn)了,接下來再學(xué)習(xí)下iCloud API(文檔+視頻),把用法搞清楚。
轉(zhuǎn)載于:https://www.cnblogs.com/tara/archive/2012/06/21/2558027.html
總結(jié)
以上是生活随笔為你收集整理的EverBox开发笔记-1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三菱fx2n做从站的modbus通讯_三
- 下一篇: 计算机英语 ribbon,ribbon是