现在的位置: 首页 > 综合 > 正文

纪念一个曾经的软件产品(一)——背景及项目过程大致回顾

2012年07月06日 ⁄ 综合 ⁄ 共 3543字 ⁄ 字号 评论关闭
文章目录

一、背景

2010年5月,我通过一位熟人介绍,了解到有这么一份工作,做“手机操作系统”,当然我知道实际上肯定不是这样,操作系统是软件的核心技术之一,岂是我等凡人能做出来的?不过这听起来是相当有挑战和吸引力的,于是我打算前往了解。也是那个时候开始认识了老吴,打算做的东西其实是手机上的一个应用软件,虽然我从2007年就开始使用Windows Mobile,但真正做上面的程序却是没有过,只写过点Hello World程序,算不上掌握,但凭着我对Windows编程扎实的基础,我相信写写应用应该不是什么难事,并且如果这个项目由我来主导的话,这会很有成就感,再听听老吴所说,感觉应该是那么回事,于是打算开始这份工作。

二、项目过程大致回顾

2.1,需求的来源

老吴是这个项目的发起者和推动者,他是一名资深手机玩家,他拥有手机无数部,那些年推出的手机,没有哪部是他不了解的,也正因为这样,他十分看好手机软件的前景(当时“移动互联网”还没那么火热)。

项目的“灵感”来源我认为有两方面,一是“无限今日”,另一是“HTC Sense”(又叫“马尼拉”),“无限今日”是Windows Mobile平台下的一套桌面软件,最大的卖点是能非常自由地给你定制出非常个性化的桌面(定制工作有些复杂,需要花些时间去学习如何使用),试想想你的手机拿到别人面前看起来是这样的与众不同,那可有多cool;而HTC Sense则是HTC给自己的Windows Mobile的手机提供的一个桌面插件,具有相当花哨的界面,这就是所谓的“差异化”吧,试想想,同样是Windows Mobile手机,一个有这么花哨的界面,另一个什么都没有,你会选谁?

下面是一些截图,有些截图来自于互联网,如有侵权,请联系本人,我将在第一时间删除。

无限今日

Htc sense

大家从截图上看,Windows Mobile其实也可以很精彩,不管从功能上还是从界面上看,都不会比iPhone差多少,但为什么会一下子就没落了呢?这里面原因很多的,我之后会提到。

所以,我前期主要研究的目标就是如何实现一个类似HTC Sense这样的界面。

今天回顾起这个项目,也许谁都会有这么一个问题:为什么不直接开发Android,而是开发Windows Mobile?要知道,2010年是Android迅猛崛起的一年,而Windows Mobile则迅猛没落。关于这个,老吴后来也承认自己当初策略的错误,在这个事情上拖延了太多的时间,并且对新的机会把握不足。

2.2,人员搭配

手机软件是由我来写,老吴相当于是产品经理,主要的需求是从他那里来的,另外有一名美工和一名网站开发,总共四个人。大约一年后有另外3个人加入到网站开发这边来,后面陆续离开,所以最“鼎盛”的时候,从事这个项目的相关的人员达到了7人,但直接做手机软件开发的始终只有我一个人。其他人对我的直接工作上的帮助很有限。

2.3,前期技术积累

项目的开展并不怎么顺利,因为缺乏相关的支持,我花了好长一段时间去熟悉环境以及做相关的基础技术研究,还有一点很关键的就是:需求并不是那么的明确,由于种种原因,中间还做了许多调整,这个后面我会一一提到。

2.3.1 贴图及贴图效率

围绕着我的最大的问题就是:一、如何贴图;二、贴图的效率。要实现花哨的界面,不可能依靠简单的线条和文本,必须有贴图,从美工那里拿到图,然后用程序贴到窗口上去,但这仅仅完成了一小部分,还有更大的问题,就是贴图效率,为什么效率重要?因为要实现流畅的滑动效果,就必须要快,起码达到每秒30帧的贴图速度,否则用户会觉得不爽,又叫“用户体验差”。

2.3.2 深度定制

无限今日是可深度定制的,而我的程序如何做到?这是困扰我的另一大难题,我研究了无限今日的做法,它是利用了自定义的脚本来实现定制的,感觉对我的实现而言太难,并且它的设计也并不怎么好,我还想起了用于定制《魔兽世界》UI的lua语言,但花了些时间去研究后,就发现引入的难度也很高,要掌握太不容易。最后没办法就先暂时不考虑这个事情。

2.3.3 网络通信

现在的Android和iOS程序要访问网络根本不是什么问题,但Windows Mobile却真的是个问题,它有一套晦涩难懂的叫“连接管理器”的规则,并且不是每个手机都很好地遵循这套规则,导致网络访问有时候成功有时候失败,而且完全吃不准,(后面会具体提到为什么会这样)所幸的是我们一开始只有一个天气更新需要使用网络。

2.3.4 UI细节

要求能够像iPhone那样直接用手指划屏,拖动,识别出用户的动作到底是拖动还是选中,拖到尽头了要有回弹功能,回弹要有“弹簧”效果,手指放开了之后要有惯性效果并带减速……对于现在的手机系统来说,这些都是再普遍不过的功能,但如果要你去写这些功能,你考虑如何实现?另外程序如何全屏?如何避免用户按挂机键的时候把程序隐藏掉?如何“锁屏”?如何处理来电的时候不遮挡电话面板?……(太多太多的细节)

其实我遇到的技术上的问题远远不止这些,这里仅仅是粗略地把最主要的几个问题列一下。

解决这些问题问题的最主要的途径就是google和自行尝试。当然,还可以去QQ群里问人,但通常很少会有人理我,一来这些问题都没有什么普遍性,没几个人懂,二来大家都很忙,没空也没义务来回答我的提问。除此之外还可以上csdn这种论坛提问,尽管也很难得到什么答案。我还常到微软官方论坛提问,但由于微软渐渐放弃了对Windows Mobile的支持,我能从中获得的帮助还是太少。

2.4,名称及功能的进一步确定

讲了这么多,我始终没提到的就是这个项目叫什么名字,这是因为:这个名字是做了好长一段时间之后才确定的,用“摸着石头过河”来形容我们这个历程再适合不过,一边做,一边调整我们的目标,大致框架的敲定大约已经是2010年11月这个时候了,距离我加入的时候已有半年。它叫:SoSoPi(中文发音“搜搜皮”)。名字当然是老吴的主意,我起初对这个名字颇感不适,但时间一长就习惯了。

这里先给出一张sosopi的截图,让大家对它有些初步认识。

最早做起来的几个功能是:首页、联系人、快捷方式和锁屏。然后再逐步往其中添加别的功能模块。到此,此项目的目标已基本明确,可以认为是另一种HTC Sense,事实上,它还具备了许多HTC Sense所没有的特性。

而开发的过程并非很顺利,我也在一路上克服了数不清的技术难关,可惜直到最后这个东西还是有很多问题,有些问题根本不在我能控制的范围之内,这个后面说到具体开发的时候会提到。

2.5,各种功能

老吴是个想法很多的人,前面说这么多唯一没提到的就是盈利,因为这个项目到最后也没盈利,所以在此不表。老吴后面陆续添加了很多功能,比如阅读,音乐,邮件和大量的个性化配置功能。比如允许修改首页元素的摆放位置,别小看了这个功能,因为这个功能引来无数喜欢折腾的用户;再比如语言可定制,把语言字符串写入一个资源文件中,允许用户修改,因为这个我们竟然还有了俄罗斯和捷克的用户。

不断地有用户给我们提建议,老吴的思绪和灵感也不断涌现,而我却做得有些力不从心,很大程度上由于各种技术上的原因,积累不足,平台落后,缺乏支持等,所以虽然添加了许多的功能,但距离老吴的要求还是相去甚远。

2.6,皮肤编辑器

我认为这才是这个软件真正吸引人的地方,在此之前,我根本无法明白用户有多么地喜欢折腾他们的手机。

有了皮肤编辑器,用户也就很方便地去自定义他们喜爱的皮肤,其中些用户的美工水平是相当专业的,同样是Photoshop,在我手中也许只是把小刀,可到了他们手中就变成了机关枪,他们对SoSoPi皮肤编辑的理解甚至比我还强,有时候我看到了他们做出来的皮肤,一下子还想不到是如何实现的。

从中也能看得出来,手机对很多人来说不仅仅是个工具,还是个玩具,用户喜欢个性化,如果提供足够的个性化支持给他们,相信他们一定会喜欢的。想当年Nokia提供了这么傻的“换壳”功能而已,就赢得这么多用户的青睐了。

2.7,收尾工作

“你永远不知道,哪次下线,就永远不再上线;你也永远不知道哪次见面,就是最后的见面。”我前阵子突然有这种感慨,对这个项目,我则感慨:“我永远不知道,哪天写下的那行代码就是最后一行代码。”现实和理想之间总是存在着那么大的距离,很多东西由不得自己。

从开始正式动工到最后一个版本发布(2011年11月),算起来正好一年时间,从最后一个版本发布到现在,又过去了将近一年半的时间,光阴飞逝,我想是时候来写篇文章纪念它了。

2.8,回头再看

对于项目成败,也许老吴最有发言权,我想,简单地,可以这么说:行业发展太快,而我们实力太有限,走了太多的弯路,浪费了太多的时间,还选择了不正确的平台,再加上盈利模式难践行,所以就那样了。

(待续...)

抱歉!评论已关闭.