打造自己的“手机购物百宝箱”
“商场试穿,网上购买”现在真是一种实惠的时尚,东西中意又可以有特价,本人的女朋友也是乐此不疲,昨天晚上她跑来跟我说了这么个需求:她们公司有40多位女士,买衣服都是商场试穿,但是回家才能上网查询,错过了很多好东西,于是设想:能不能自己开发一个手机购物百宝箱,大家都可以安装在手机上,逛街的时候看中哪个就查哪个,光淘宝不行,易趣、拍拍、有啊都要。
很有创意的一个想法,互联网产业需要的就是将良好的需求转为切实可用的应用,我们就围绕这个话题,来进行一下尝试,看看怎么样来开发出这个“手机购物百宝箱”。
一、需求分析:
我们先来做项目分析,由于手机购物百宝箱不是仅仅给一个用户使用的,手机开发的特点在于,有不同的用户,就要需要考虑到各自所使用的手机品牌、系统、型号可能互不相同,人越多,越复杂,所以产生了下列需求:
PartA: 我们需要做一个客户端。
需求1:如下手机和操作系统
| 操作系统 | 描述与典型终端 | 开发语言 |
| Windows Mobile | QVGA/VGA等屏幕大小、带键盘的、不带键盘的、SmartPhone系列 | C++/C# |
| Symbian S602 | Nokia S602版本的终端 | Symbian C++ |
| Symbian S603 | Nokia/三星/LG等Symbian S603版本的终端 | Symbian C++ |
| BREW版本 | 中国电信天翼博路的终端,三星的、LG的、宇龙酷派的CDMA终端 | C |
| WinCE版本 | 宇龙酷派的WinCE CDMA终端 | C++ |
| J2ME版本 | Nokia S40终端、Motorola P2K终端(V8等)、索尼爱立信终端(K800c)、部分MTK终端 | Java |
| BlackBerry黑莓版本 | BlackBerry终端 | Java |
| iPhone 版本 | iPhone终端 | Objective C |
需求2:由于手机型号众多,所以必须保证所有的机型功能一致
需求3:如需修改功能可以进行单点更变,一处更变所有终端均进行更变,要方便
需求4:不能让用户学习Object C/C/C++/C#/Java 这么多语言才能完成这个工作
需求5:用户不可能有那么多手机,要做到在一款终端上开发过后,其他终端无需额外工作

PartB:我们需要一个与第三方应用服务器对接的方案
需求1:对于提供API的系统,我们可以方便的调用API
需求2:对于没有API的系统但愿意改造的,我们应该提供改造方案
需求3:对于没有API但也不愿意改造的,我们可以通过WebParser或直接接入数据库的方式访问到应用数据,再转化到手机上
二、开发应用:
完成了项目分析,就可以进入我们的开发应用环节,我们通过这样的思路来尝试将应用实现。
(一)、客户端的开发
首先我们考虑要制作客户端,客户端界面就两个,查询商品,显示查询结果,我们的需求就是象下图所示:

我们可以用写HTML类似来写这个界面

然后我们设计,提交服务器后,应该得到一个类似这样的搜索结果:

这个界面复杂一些,但是熟悉HTML的朋友们应该不难

到此为止,我们的客户端软件已经全部做出来了。那么下面怎么与服务器交互呢?
(二)、服务器端的开发
首先,确认我们的需求,手机购物百宝箱需要整合目前的各个购物站点,我们需要去搜索淘宝、有啊、拍拍和eBay,那么我们先要将这几个网站的搜索地址和参数找出来
以淘宝为例

接下来,搜索结果怎么处理呢?最简单的方法就是通过XSLT进行格式化


界面上半部的统计是怎么算出来的呢?一方面的页面上有这样的信息,另外一方面是现在 C2C网站都支持按照价格排序,这样最低价可以从第一个物品的价格上取到

到此为止,所我们的需求,要求搜索各大C2C网站,给出统计、最低价,列出一些物品供参考的要求,已经全部实现。没有写一行代码,均通过XML适配来完成,当然了,如果愿意也可以写一些代码,让它的功能更强大一些。

难点和解决方法:
了解无线开发的人员可能会很奇怪,这么麻烦的一个应用能够这么简单就完成?
我们重新来看下这个项目的难点部分:手机型号多,终端系统不同,型号也不同,即便只以Windows Mobile手机为例,业界公认开发支持最强的、开发效率最高也是最简单的,它自身就还能细分成QVGA屏幕、VGA屏幕,横版屏、竖版屏,触摸屏,数字键盘、全键盘等多种类型,要完成这样一个手机购物百宝箱,无疑是个不小的难题。
如果要满足这个需求,软件开发者还必须掌握如下众多的开发语言:JAVA开发语言用于索爱/摩托的手机,Symbian开发语言用于诺基亚的手机,C#开发语言用于Windows Mobile的手机,此外,还有iPhone、BREW、Andriod,算算,这需要组件一个多大规模的团队?而且这种全能型的人才在现在的行业中非常稀缺,如何就轻松解决了这么多问题,完成了手机购物百宝箱的开发呢?
这里其实我们在开发过程中,借用了MKey无线中间件这个移动开发工具,它最突出的内容在于,把上面我们自己最难以解决的技术难题,进行了打包处理。MKey包含三部分内容,其中最重要的东西是智能客户端Mobile Smart Client(MSC),采用的是一种介于C/S结构和B/S结构之间的一种网络结构模式,能够屏蔽手机终端的差异性,并具有多终端支持能力和业务的快速更新能力。MSC的最大好处是,通过它来编写的程序,编写一次即可在所有平台的手机上运行,可以轻松完成多手机系统的批量覆盖。MSC是HTML的一个子集,并且按照移动互联网的特性进行了扩展,所以MSC应用程序的开发者,只需了解用户的最终需求、懂得XML如何编写即可。编写这样的应用基本没有什么门槛,它完整的解决了PartA所描述的所有需求。

另外重要一个模块叫做MDP (Multi-Data Platform) 多通道数据平台系统,能够实现数据库层(DB)、中间业务层(WebService)、 表现层(Html)等各种层次、各种方式的数据的整合与交互。它比较重要的两个部分,1是WebParser页面分析与交互,2是DHMI对端接口对接。WebParser顾名思义可以通过网络访问与集成OA/ERP/CRM等各种B/S系统,将其移动化,这样开发工程师可以什么代码也不写完成对接的工作,但功能略微受到对方B/S系统的限制,B/S系统中不支持的功能,肯定是通过适配,适配不出来的。DHMI对接接口就比较宽泛了,你可以用任何语言ASP/PHP/C#/Java/Ruby/Perl/Python….等等来开发,关注的重点是实现业务逻辑。
使用MKey,只需一小段代码的配置,就能完成PC整个导航界面的适配;

整个PC列表、详情界面、公文、表单……,只需几分钟,都能够快速实现;

通过借用MKey这个成熟的移动化开发工具,我们很轻松就绕开了所有头大的技术难题,生成了独具个性特色的手机购物百宝箱。在开发过程中,我们还顺手增加了一个天气预报和一个书籍价格搜索,分别来自新浪和当当书店等,原理和上面创建手机购物百宝箱如出一辙,整个开发过程比较简单、快速。并且,一次开发后的安装包可以在各个不同平台上安装使用。

人员及开发周期:
移动开发应用的人员安排视项目应用的规模和性质不同而有所不同。以手机购物百宝箱的开发为例,由于需求和所涉及的资源都较为简单,只需要1名适配人员和1名UI设计师配合,就能够轻松完成产品的开发。整个DEMO的制作时间仅需2天,并且从项目立项、分析、开发、测试,到最终的落地上线使用,全程周期不会超过2周。
对于大中型的商用项目,由于需求较为复杂,需要协调、沟通的内容较多,牵扯到的细项应用不少,因此,一般会需要四人左右的开发团队,包括项目经理1名,适配人员1名,UI美术人员1名,以及测试人员1名,整个周期大概为:调研分析和沟通研讨,大约在2周时间,后续的开发、测试,到产品上线,大约也是2周时间,总共合计的一个项目周期为1个月左右。
数字天堂MKey开发团队与MKey介绍:
MKey的初始设计目的,是为了帮大家解决一些移动互联网的应用,使大家不用在开发过程中,被手机操作系统、运营商通信通道、编程语言等技术方面的问题所困扰,而可以专注于需求本身的内容和用户体验。
这个想法起始于2005年,之后对其进行了比较长时间的思索,并在公司的各类项目和客户化需求中作了许多有意的尝试,在最终架构成熟后,于2007年组建了40人规模的MKey开发团队,并在当年推出了第一代产品,目前第三代产品也已经完成了开发,将会于随后不久正式推出。
MKey的设想是成为移动应用的通用开发工具,帮助开发者大幅减少开发成本,加快产品上市周期。就目前的对比数据来看,MKey所产生的效用还是十分明显的,它使得开发者可以在2 - 3周内,将一个基于PC的软件或网站实现移动化,并且开发一次,就能自动生成可适用不同手机平台的多个软件安装包。比对自行开发,利用无线中间件的应用开发费用可节省70%以上,并缩短开发周期80% - 95%。由于它简便易用,已经产生了上千家的应用规模,广泛覆盖到OA、ERP、CRM、SP、互联网、电子政务、电子商务等各领域的不同行业。
有兴趣了解MKey相关内容的朋友,可以在微软MSDN网站查看相关讲座内容:
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&EventID=1032412268&CountryCode=US
作者简介:
江树源,数字天堂CTO,无线中间件架构师,参与过上百个大中型移动应用项目的调研分析与开发应用,为国内无线开发领域的资深专家。
