拜苹果所赐,现在不论什么产品都要讲产品体验,一个手机应用的产品体验好不好是怎样评估的。每个人对应用的看法都不一样,在我看来,评价一个产品体验好不好,首先要知道用户对这个产品的心理预期是什么,产品的表现和用户的预期相比才能判断产品的好坏。
例如用户对使用网页的心理预期与对使用移动应用的心理预期就有很大差别,用户不会预期一个网站能够随时,快速且正确的响应他的操作,网站打不开就按刷新,图片加载不出来就按刷新,点击没反应就按刷新,刷新不出来还是按刷新,这是每个用户都会做的事。对于移动应用来说用户的心理预期就高的多,他们不会认为这是一个需要刷新的东西,本能的认为应用所需要的所有资源都在本地(我已经下载好了啊),所以页面打不开是bug,图片加载不出来是bug,点击没反应是bug,报了bug没人理也是bug。
我们分析一下这种心理预期的差别是怎么造成的。web时代的网速很慢,网站大部分都很差,而且托搜索引擎的福,用户的流量比较分散,有很大的几率访问到质量差的网站,用户已经习惯网站的这种表现了。移动时代网速改善了很多,虽然质量差的应用也很多,但是用户在应用上的流量非常集中,一个用户在手机上的大部分时间都集中在几个顶级应用上。这些顶级应用的质量非常高,所以用户在拿到一个新app后会以在顶级应用上建立的心理预期来评判产品体验。
好了以上都是废话,现在的结论是用户对手机应用的要求很高,我们怎么做出顶级的产品体验,我从应用的缓存方面思考了一下。
上面提到过,用户下载过一个软件之后本能中会认为所需要的所有资源都在本地了,而且顶级应用优秀的体验也助长了用户的这种看法,在他们的应用中大部分场景都感觉的不到网络的存在,
这背后必然是大量的机制来平衡用户的感觉和数据的正确性。这其中缓存是必不可少的,数据缓存有很多好处,例如:
1.提高加载速度
一个常见的场景是进入一个页面后转菊花等待完成加载,网络差时甚至加载失败。这种情形现在越来越不被用户接受,用户希望进入页面立刻能看到内容。
2.解决数据的一致性问题
例如,用户在文章的详情页点了赞,回到列表页发现点赞状态没有变化,用户会想我刚才没点上吗?
3.提高应用的响应速度
如果没有用户操作缓存,那么必须要等到网络请求返回才能给出响应结果。例如发朋友圈这个操作,我们的应用点击发送之后在转菊花等待发完,微信点击发送立刻就转场到列表了。这其实是微信先给了用户操作响应,然后再后台默默的发送请求。
所以应用中的缓存能够极大的提高用户体验,在我们的产品中对这部分还不够重视,上面提到的第1,2两条已经初步实现,一些历史遗留问题也会逐个解决,在第三点上现在做的还很少,不成体系。我们需要开发一些通用的框架来分类处理各种用户操作缓存。
目前的产品设计中很少提及对缓存表现的要求,对于开发来说缓存就成了可做可不做的选项,那么大家对于特性的开发时间评估就会相差很大。希望在未来的产品设计中能够包含对于缓存的明确要求,以及对于数据一致性的要求。