3.3 数据缓存
为了减少网络请求次数和提高系统响应速度,需要保存反复使用的数据和临时缓存。iOS 常用的数据存储方式有四种:属性列表,对象归档,嵌入式关系数据库 SQLite3 和持久性工具 Core Data。属性列表主要用来保存应用程序的设置和属性。归档的形式保存数据,只能一次性归档保存以及一次性解压,只能针对小量数据,对数据操作比较笨拙,如果想改动数据的某一小部分,需要解压整个数据或者归档整个数据。Core Data 使用相对于 SQLite3 比较复杂。综合分析,使用嵌入式关系数据库 SQLite3 进行数据存储。
SQLite3 在存储和检索数据方面都非常有效,它还能够对数据进行复杂的聚合,获得结果的速度也比较快。数据库用于存储从网络获取的团队、页面、集合以及动态等信息,可以减少重复的网络请求,并支持无网络状态下查看。
使用 SQLite3 之前,需要确认数据库文件是否存在。如果数据库文件不存在,则说明还未创建数据库,需创建数据库;如果存在,则打开数据库,进行相应的操作。访问数据库完成相关操作后,关闭数据库。
图4 团队更新和文档浏览的用户界面
Fig. 4 The user interface of team updated and document browsing
4 应用效果
图5 客户端下载统计图
图 4 中左图为客户端的主界面,显示内容为文档列表,可以根据时间和标题的顺序显示文档列表,下拉屏幕可以刷新列表。上方导航栏中,单击左侧按钮进入文档集合列表,中间显示团队名称,右侧为搜索按钮,点击进入文档搜索功能。底部标签栏控制不同视图的切换,方便用户在不同的功能模块间流畅切换。右图是名为“Cocoa 架构下的 MVC 分析”的文档浏览视图。导航栏左侧为返回主界面按钮,右侧为刷新按钮,点击获取文档最新内容。底部的标签栏展现了客户端提供的用户操作功能,可以对文档进行评论、分享、打星标、复制和删除操作。
在实际测试过程中发现,iPhone 拍照的照片文件不做任何处理时,上传速度非常慢。相机拍得的照片大小一般为 8M 左右,假设使用 Wi-Fi 速度为
Fig. 5 Client download chart
200Kbps,大概需要 40S 时间才能完成上传。这个速度是用户无法忍受的,所以应该对图片进行压缩。将 8M 的照片压缩到 1M 左右,图片的浏览清晰度影响并不大。在使用 2/3G 网络时,图片压缩还可以节约网络流量。
协同文档库 iOS 客户端 2012 年 2 月在苹果应用商店 App Store 上发布,到 2013 年 9 月累计下载量为 733 次。科研在线文档库截至到 2013 年 9 月有 24 887 位注册用户,下载用户占总用户人数的 3%。图 5 为 App Store 上客户端 2013 年 1 7 月下载统计图。同类系统有道云笔记用户超过 500 万,从电脑平台向手机客户端迁移的比例为 7.3%[8]。
53