zoukankan      html  css  js  c++  java
  • EverBox开发笔记1

    我负责存储部分,要先思考两个存储问题:数据本地存储方案,和数据云端存储方案。

    由于这是个UGC App,内容需要在本地存储以提供流畅的操作体验,还要同步到云端以保证数据不丢失,还要能在用户的多个设备之间同步。

    1,云端存储方案。

    因为是EverNote的铁杆用户,所以计划保存到EverNote,今天突然想为什么不试试iCloud呢?

    从苹果开发者网站下载两个介绍iCloud编程的视频,对它有了大概了解:

    • 1,主要解决多个设备之间同步数据的问题,而不是为解决数据永久性存储问题(当然也支持永久性存储)。
    • 2,从iOS5.1开始支持。
    • 3,每个用户有免费的5G空间。
    • 4,支持Key/Value和文件方式的存储,对于文件方式的存储,当文件发生改变时,仅同步传输改变的部分,这点很像rsync
    • 5,可以跟App无缝集成,以消息方式通知App数据是否需要有改变,以及哪些数据改变了。

    这么多优点,把EverNote甩出两条街,做iOS开发的人,如果不用iCloud做云存储,那就太暴殄天物了,原因如下:

    • 1,无需额外注册,使用AppleID即可辨识用户,用iOS设备的人,基本都有AppleID,除非越狱用户,但我的App不是给他们设计的。
    • 2,跟iOS系统集成的好,以消息通知方式处理数据同步,开发更简单。
    • 3,5G的免费空间,对于小数据量App来说足够了。
    • 4,如果用户需要更大的空间,付费买空间即可,这也是Apple愿意看到的结果。所以使用iCloud能达到用户、开发者、Apple三方共赢。

    2,本地存储方案。

    之前做的几个App都使用本地文件的方式存储数据,因为:

    • 1,数据量小,基本都是配置类型数据。
    • 2,要存储的数据都是NSArray、NSDictionary、NSData一类的对象,可以通过writeToFile和initWithContentsOfFile跟文件打交道。
    • 3,App启动时所有数据就会加载到内存。
    • 4,不需要同步到云端。

    正在做的App恰好这几点都不具备:数据量日积月累下可能会达到数千条,还有大量小文件需要同步到云端,需要做本地数据搜索。

    同事之前推荐过SQLite,于是找了个例程看了看,决定使用SQLite,原因如下:

    • 1,接口简单,使用门槛低。
    • 2,数据库采用本地文件方式存储,可以不加修改的同步到iCloud。
    • 3,SQL搜索方便,不需要学习额外的知识,可以快速开发出产品原型。

    明天开始放端午节小长假,今晚看捷克VS葡萄牙的欧洲杯1/4决赛,看完再睡一觉就到十点了,接下来再学习下iCloud API(文档+视频),把用法搞清楚。

  • 相关阅读:
    黑马程序员JAVA基础Java 集合之Collections 工具类
    黑马程序员JAVA基础Java 集合之Set 接口
    黑马程序员JAVA基础Java 集合之List 集合
    通过回车来完成数据的提交
    BizTalk中多个子记录映射解决办法
    框架的展开与关闭
    一个有用的触发器
    SQL 中分隔字符串的获取
    未保存离开页面要给出提示
    常用的一些javascript小技巧 很实用
  • 原文地址:https://www.cnblogs.com/tara/p/2558027.html
Copyright © 2011-2022 走看看