我与Anyview不得不说的哪些事儿

2011-01-20 11:28:40来源:mobile20作者:

  Anyview,绝对堪称国内移动开发界的一个传奇。庞大的用户装机量,定位于非智能操作系统,为其赢得了不少的喝彩,而时至今日,它仍是张剑一个人在默默支撑、维护、更新。个人开发者在这个时代是弱势,本文作者即

  Anyview,绝对堪称国内移动开发界的一个传奇。庞大的用户装机量,定位于非智能操作系统,为其赢得了不少的喝彩,而时至今日,它仍是张剑一个人在默默支撑、维护、更新。个人开发者在这个时代是弱势,本文作者即Anyview阅读器的作者张剑,试图通过通俗易懂的语言,平易近人的文风,为大家还原一个个人开发者的传奇故事。

  仔细算来,我做Anyview也有好几年了,在非智能手机平台上,Anyview算是一款大家比较喜欢的阅读软件。

\

  萌生做Anyview的想法

  最早接触手机上的阅读软件是在西门子6688上,jar的电子书,虽然屏幕非常小,并且每次看书需要自己制作,但是,有总比没有强,而且,6688上看书其实并不差。在入手QD后,接触了掌上书院,就非常喜欢在手机上看书了,可以利用非常零散的时间来阅读。等再换E680后,却发现没有掌上书院可以使用,由于E680本身设计上的问题,jar电子书虽然可以使用,但是字体是极其难看,如此优秀的硬件,却无法享受等同的阅读体验,简直是糟糕透了。凭着自己对j2me的一点了解,再利用UCDOS的字库文件,终于可以让E680的在看书时的字体不受系统影响了。早期把这个程序扔到移动天使的论坛上,也让其它无法忍受丑陋字体的人可以不再难受,慢慢有用户使用,不断提出新的意见和想法,终于,让我有了做Anyview的想法。

 

  最开始做Anyview,只是觉得E680上应该有一款称手的看书软件,本身我自己也是一个手机阅读的重度用户,在这种想法下,慢慢将 Anyview做成了E680上最好的阅读软件之一。甚至于后来用户换手机后,也希望能继续使用Anyview,在用户的不断支持与鼓励下,一直将 Anyview做到了今天。另一个原因是,我曾由C语言入门进入了开发领域,却在Windows平台却终始无法转向C++,尝试过数次,都失败了,因此我选择了Java,并且也想通过Anyview来证明Java可以做得和C一样好。下面是我做Anyview的一些心得。

  成为自己软件的用户

  如果需要让用户喜欢你的产品,首先自己得喜欢自己的软件。我是Anyview的用户之一,在07年之前,我每天使用Anyview的时间接近2 小时,在高强度的使用下,不断发现缺点、问题以及可改进的地方,让软件不断完善。在Anyview中,技术门槛并不太高,我花在代码上的时间,远不如我思考的时间多。另一方面,我又是一名开发人员,如果用户不喜欢我的作品,他们可以选择其它软件,而我的选择只能是做得好或者更好。

  在每一款手机上,我都会充分感受其上边的Anyview产品,不单是去看每一个功能有没有,能不能用,而是,这个功能是否好用,是否方便。

  了解各种手机的特性

  由于手机平台的多样性,不同的用户群体需求不一样,一方面通过与用户交流得了解他们的需求和想法,但另一方面,用户有时候无法明确的表达出来,这时候,自己的使用体验显得非常重要。最开始在航海家工作,让我能接触到很多不同型号的手机,基本上每一款手机,我都会尽量深入使用。无论手机多么难用,都强迫自己使用。因为对于普通用户来说,他们很有可能在1、2年内无法更换新的手机。到后来离开航海家,自己也买了十几部手机,直到今天,每周仍然会抽一天时间将其中一款作为主力手机使用。

  与用户充分交流

  一个人所能做的,所能想的,始终有限,因此,需要听取别人的意见。我与用户的交流主要来自于邮件,算下来,我已经回复过用户上万封邮件,回复率接近90%。有些用户非常热心,通常会写几千字,列举1234567条,面对这样的邮件,我从来不敷衍,这样的好处很明显,用户会对有异意的地方再次回复,也会想尽办法提供截图、视频等。

  同时也是通过这种机制,让我从用户中那获得了非常多的用户习惯数据,以及用户对产品、对功能的认知度、理解度。相对于用户来说,我是专业的开发人员。但是,在交流的过程中,我没有试图让用户站在自己的高度看问题,而是需要将自己降低到用户的层次去看问题。一些看起来很可笑的观点,站在用户的角度,就变得很自然。交流的另一个好处就是:由于某些原因,软件不能满足用户,但人能获得用户的尊重。

  裁剪和挖掘用户需求

  用户有非常多的需求,不可能完全满足,这时候,就需要对用户的需求适当的裁剪。需求从用户角度来说,可以分为小众需求或大众需求;从开发人员角度来说,可以分为短期开发需求和长期开发需求。对于短期开发需求,即使是小众需求,只要不会对其它用户产生影响,是可以全力满足。对于需要长期开发的需求来说,只能尽量满足大众需求。

  用户的需求不一定描述准确,需要找到需求背后的东西。比如说,早期的时候,有用户希望能够自己改程序的名字,这样,他就可以装两个Anyview了。经过了解,发现用户是希望白天用一个,晚上用一个,每个配置不同,这种需求的背后,就是需要多种配置来解决。

  Java客户端有一个非常明显的特点,就是机型太多,需要适配。但是对于个人而言,适配是基本不可能的,因此,一方面是通过技术手段保证更多的通用性,另一方面,放弃一些功能,会更有利于软件的稳定性。

  Anyview最多的时候,有多达50多项设置,如此多的设置,虽然有很高的可定制性,但是让用户觉得眼花缭乱无从下手,一方面需要将设置归类,方便查找。另一方面,减少一些设置,并不会让软件的可定制性减少多少。

  主动寻找问题

  用户不会反馈所有的问题,如果用户通过邮件、QQ来反馈问题,这是一件非常值得高兴的事情,但很多用户不会知道软件的网站,不会知道反馈问题的邮件,也不会知道你的其它联系方式,甚至于他们在遇到挫折后,会立刻放弃,寻找其它软件。

  对于这类用户的意见,是非常难以获得的,这时候,需要自己主动寻找。我会经常通过搜索引擎来搜索“Anyview 不好用”“Anyview 怎么用”“Anyview 垃圾”这样的关键字去查找答案,也会去论坛搜索关键字Anyview来寻找用户对Anyview的负面评价,通过这些,可以知道自己有哪些方面需要改进,即使不是自己的错,也可以知道用户会遇到什么样的困难,该如何去引导用户。

  参考其它软件

  每个手机上都有很多受用户欢迎的各类软件,通常我也会去研究和使用这类软件,在使用过程中,一方面可以了解其它软件的优点,另一方面也可以了解该软件受用户喜爱的原因。所谓取长补短是也。

  最后,我的总结,从产品层面来说,一定要把自己放到用户的层面上看问题,而不是希望用户能站在自己的高度去看待问题,去使用软件。另外,用户体验也是可以量化的,比如说完成一个功能,需要几次按键,需要手指移动多少距离,这些都是可以量化的。

  个人开发者在这个时代还是相对弱势的群体,我希望我在Anyview的开发心得能够带给大家更多的分享。

赞助商链接: