结合过去几年移动开发的经历,列举了16个导致用户体验的问题,希望大家看过后能吸取经验教训;
完美的产品只存在于虚化中,但这不影响我们追求完美;那些问题也许并不都是开发人员造成,但这不影响我们一起来思考做出极致产品。
(1)注册时,有时很难收到验证码;导致一批用户堵在了注册阶段。
a) 原因:短信通道不稳定;很多短信需要先通过第三方渠道公司审核,而后才能发出去。
b) 解决方案:
这个问题无法彻底解决,只能缓解。
一,这是个普遍存在的问题,任何平台都会遇到,原因是垃圾短信太多,导致监督部门会经常核查;除非跳过第三方渠道,直接对接运营商。
二,由于是个普遍存在的问题,所以产品中不能把短信当做一个可靠,及时的信息通道。
三,缓解方案:可以同时对接两家第三方平台,交替使用;
四,缓解方案:短信的到达是不能保证顺序。这会导致如果用户第一次获取验证码长时间没收到,他会再次获取验证码。过了会儿他收到短信验证码,但是不能保证这个短信是针对第一次的,还是第二次的。所以短时间间隔的生成验证码保证是一样。
(2)注册时在填写资料阶段,用户流失率很高;
a) 原因:填写信息太多;有的信息很敏感,用户不愿填写,如真实姓名,身法证号,银行卡号。
b) 解决方案:使用过程中,到必要时,引导客户逐步补全信息;在和用户建立信任关系后,才要求其填写敏感信息。
(3)刷新信息流,加载速度特别慢;
a) 原因:信息流中图片太大;
b) 解决方案:a,使用缩略图;b,图片懒加载;c,图片的缓存。
(4)一些问题在3G网络中暴露出来:
a) 原因:测试阶段只在内网中测试,而内网网络情况一定优于3G网络。
b) 解决方案:在外网搭建预发布环境;或直接将测试环境搭建在外网中。
(5)Android端特别耗电:
a) 原因:由于一些服务没有及时关闭,同时测试也漏过了该项测试。
b) 解决方案:测试需要关注性能测试,耗电测试作为其中的一项性能指标。
(6)使用中有些按钮需要多按一次才有效果:
a) 原因:按钮触控区域太小;
b) 解决方案:测试和开发人员不能轻易漏过交互上不顺畅的地方,发现后尽快改进;此外,此类问题需要设计师制定一套交互规范。
(7)长时间使用APP会导致闪退;
a) 原因:典型的内存耗尽的问题。
b) 解决方案:开发人员在最后需要做好内存检测工作;测试人员针对测试过程中的闪退问题要予以重视,不能因为不能重现而轻易放弃;开发人员提供异常日志记录功能,不能因为测试不能重现问题而轻易放弃。
(8)页面切换时感觉太慢;
a) 原因:在上个页面先从服务器获取数据,然后再跳转到下个页面。
b) 解决方案:先跳转到下个页面,渲染部分内容,同时获取全量数据;待获取所有数据后,再把剩余内容加载出来。
(9)上传头像太慢
a) 原因:没有对图片进行缩放,裁剪,和压缩。
b) 解决方案:产品和设计对图片的展示做个估算,定义好图片的最大尺寸,以及图片的质量。大多数时候并不需要质量太高的图片,上传大图片既浪费用户流量,也占用服务器带宽和服务器存储空间。
(10) 注册时,对于某些手机号码号段不支持;
a) 原因:新号段的手机号码不断出现,而客户端对手机号码检验没考虑到。
b) 解决方案:客户端做比较松的检验,更严格的检验交由服务器端进行。
(11) 表情符号导致某些输入导致服务端异常或客户端闪退;
a) 原因:数据库只支持3byte的utf-8;而表情符是4bytes。
b) 解决方案:考虑android和iphone对表情符号的解释不同,建议不容许上传表情符号。这个需要大家研究一下!
(12) 文字显示越位,覆盖到了其他区域;
a) 原因:文字内容比想象的要长。
b) 解决方案:产品和设计要对字符串的字数和长度进行交流,考虑极限情况下的布局。实际上,产品要对所有的输入内容规定长度和规则。
(13) GPS定位不准,定位时间太长;
a) 原因:GPS定位精度在10米左右,且在有遮罩的下(阴天有云,车内,室内)定位非常困难,而且慢。
b) 解决方案:测试人员在接近用户使用环境的场景下进行外场测试。
(14) 应用经常闪退;
a) 原因:大多是开发的问题;比方访问无效地址,数组越界,没有变量初始化就开始使用。
b) 解决方案:
一,这类问题主要靠程序员自身习惯和素质,加强代码规范。
二,在时间充足的情况下,做好代码走查的工作。
三,在上线后遇到此类问题会更加棘手,所有对于闪退类问题要在应用里做好日志记录,以及自动发送日志的功能。
(15) 用户一直按“登录”,但就是登录不了。
a) 原因:当时是由于服务器端异常,无法处理导致。且客户端没有错误提示,导致用户非常困惑。
b) 解决方案:任何出错情况下,(预料到达,预料不到的)都有给用户一个提示。
(16) 在上线后,设计和产品说某些地方的交互不是和设计的有出入。
a) 原因:上线前,设计和产品并没认真使用APP的全部功能。
b) 解决方案:开发完成后,设计和产品首先要对产品进行全面试用,并签字画押,而后交由测试。
最后,在团队里我要求在产品上线前,务必核对以下要点:
1. APP中是否装备了必备功能:统计,日志收集及发送,版本检测以及自动更新,用户反馈;
2. 确保产品经理和设计师体验过了APP,签字画押。确保APP体现了产品和设计的构想,没有理解上的差错。
3. 检查测试用客户端上是否有系统奔溃的异常记录。对频繁发生的异常,必须予以重视。
4. 去掉所有的调试代码。(注释为 //debug 的代码块)
5. 清除所有代码中warning;
6. 确定连接的是正式服务器。
7. 将日志等级改为,只记录严重问题。
8. 做一遍内存监测,特别关注列表页面和图片处理显示页面。操作多次,看看是否内存会收回还是在不断增长。
9. 估测一下应用的耗电量。