文档管理app端需求实现方案关键点记录

简介: 实现的需求包括:文档列表、下载列表(包含删除功能)、文档详情、预览和搜索,若无法在app内打开则需要提供在其他app打开的能力。简单来说,文档下载和管理的实现在技术上没有多大难度,但这里的方案实现了以下几点:1.

实现的需求包括:文档列表、下载列表(包含删除功能)、文档详情、预览和搜索,若无法在app内打开则需要提供在其他app打开的能力。


简单来说,文档下载和管理的实现在技术上没有多大难度,但这里的方案实现了以下几点:

1. 基于nsurlsession的后台下载,并在任务被系统中断后的恢复(比如app被手动kill, 这种情况下本方案采取的策略是自动恢复下载)

2. 在其他app中打开,通过UIDocumentInteractionController实现相应的功能;并且由于该类没有提供一个直接判断的方法(必须要尝试打开时才可以得到是否能够打开),这里的trick是通过QLPreviewController的canPreviewItem方法,需要构造一个对象。 这两个里面的url参数必须要通过fileURLWithPath创建,和我们通常的做法不同;若使用urlwithString会导致crash.

3. 合理的分层结构(这很重要,我们就可以替换不同层次的实现,比如替换持久化方案,替换model层的具体实现等),选择恰当的持久化方案,并将其和内存存储相结合,以实现一个比较好的体验(这里不太好展开说,跟需求相关性较大)。

4.基于时间戳的接口刷新机制;这里的文档树通过单个接口一次性返回,因此我们通过时间戳的机制来优化拉数据的体验。

5. 其他的一些异常处理,比如之前下载的文件在文档树中被删除后本地的展示;缓存清空后的体验;恢复下载的进度等。

6. 作为一个下载相关的应用,还需要保证你所下载的文件和其中间文件都是可清理的,并且在磁盘空间不足时需要做相应的保护处理以及UI提醒等。


总的来说,若要实现一个较好的体验,还是有很多细节需要关注;代码层次结构和持久化方案上也有很多值得推敲的地方。

目录
相关文章
|
30天前
|
存储 安全 开发工具
APP安全加固怎么做?加固技术、加固方法、加固方案
APP安全加固怎么做?加固技术、加固方法、加固方案
18 3
|
3月前
|
存储 移动开发 安全
如何实现APP安全加固?加固技术、方法和方案
如何实现APP安全加固?加固技术、方法和方案
428 0
|
3月前
|
存储 安全 开发工具
APP安全加固怎么做?加固技术、加固方法、加固方案
APP安全加固怎么做?加固技术、加固方法、加固方案
52 0
|
9月前
|
UED
游戏直播APP开发,源码方案适合哪些公司
游戏直播APP开发正随着直播互联网的迅猛发展而成为受众广泛的热门平台。然而,一些企业面临着技术实力、资源和资金等方面的限制,因此自主开发游戏直播APP可能变得困难。
|
5月前
|
存储 安全 开发工具
APP安全加固怎么做?加固技术、加固方法、加固方案
前面的文章中我们为大家介绍了移动应用安全检测的测试依据、测试方法、和测试内容,本文我们着重分享App安全加固的相关内容。
|
6月前
|
算法 安全 区块链
区块哈希游戏开发逻辑(上链合约)哈希竞猜游戏开发方案(app/DAPP)
区块哈希游戏开发逻辑(上链合约)哈希竞猜游戏开发方案(app/DAPP)
|
6月前
|
Dart 前端开发 JavaScript
掌握这个关键技术,让你的APP开发事半功倍!——Flutter与其他方案的区别
掌握这个关键技术,让你的APP开发事半功倍!——Flutter与其他方案的区别
49 0
|
7月前
|
存储 前端开发 测试技术
同城交友开发稳定版丨同城交友app系统开发详细程序/案例设计/方案逻辑/规则详情/源码设计
需求分析:明确系统的功能、特点和目标受众,并根据市场需求进行需求调研,从中提取核心功能和关键需求。
|
10月前
|
存储 安全 小程序
东郊到家预约APP及小程序系统开发(方案及逻辑)/功能设计/项目逻辑/开发案例/成熟技术/源码程序
 区块链技术还有一个很重要的优势就是可追溯性和不可篡改性。在区块链上进行的每一笔交易都会被记录在区块链上,并且这些交易记录都是透明的,任何人都可以查看
|
10月前
|
新零售 人工智能 大数据
旅游系统开发(APP开发案例)/功能介绍/案例分析/项目方案/源码平台
新零售是指个人、企业以互联网为依托,通过运用大数据、人工智能等先进技术手段并运用心理学知识,A new retail model that upgrades and transforms the production,circulation,and sales processes of goods,reshapes the business structure and ecosystem,and deeply integrates online services,offline experiences,and modern logistics