随着诺基亚Windows Phone手机的推出,国内开发者对Windows Phone平台开发的关注度又掀起了一股热潮。
在前两周,我们已经陆续发布了两篇针对Windows Phone开发专家的专访文章,其中OpenXlive的马宁老师从大环境上讲了Windows Phone开发的前景以及目前遇到的一些困难,杨亨冉老师介绍了传统Silverlight开发者从网页版开发移植到移动平台的一些注意事项,这次我们请到了Symbio公司的Windows Phone开发专家李靖南老师,为大家谈一谈Windows Phone应用开发中的一些细节。
在今年十月份的微软TechED大会上,李靖南老师曾为大家带来了《开发Windows Phone多媒体应用》和《利用Expression Blend设计不一样的Windows Phone 7应用程序》两门课程,实际上,李靖南老师不仅对微软技术非常熟悉,他本人开发的一款叫做“市民日记”的Windows Phone应用在微软Market Place上已经取得了不俗的排名,并且在发布了简体中文、繁体中文、英文、意大利文、韩语版后,仍在陆续开发新的语言版本。在采访中,李靖南从一个开发者的角度详细描述了Windows Phone应用开发的一些细节优势以及注意点。
Expression Blend拖拖拽拽的可视化组件
谈及Windows Phone开发与iOS、Android等平台开发的不同,李靖南表示,基于Xbox360和PC上的游戏经验,微软XNA比iOS开发游戏要快捷很多,此外,Silverlight采用XAML这一描述性语言,这点与Android非常类似。在开发工具方面Windows Phone也基本都有与iOS、Android一一对应的工具,所以开发者不管是从iOS还是Android上切过来都会相对容易。
李靖南称,微软在API接口方面做了很多优化,提供了一些比较强大的开发工具,很多功能都可以采用“拖拖拽拽”的方式实现。其中Expression blend就是很有效的一个工具。
在TechED的Windows Phone相关课程里,Expression blend课程排名第一,这也从一个侧面说明了这一工具的受欢迎程度。
“2008年开始用Expression blend的时候,我也曾陷入一种迷惑:这个东西到底是给开发者用的还是给设计者用的?现在我觉得它还是多少植入了跟开发相关的知识细节在里面,比如数据绑定,还有开发模板化等,这些概念一个纯粹的设计者理解起来还是有难度的”,李靖南说。所以,他认为Expression blend更适合 “有一些设计感的开发者”和“有一些代码基础的设计师”——李靖南称之为“桥梁工程师”的群体使用。一方面,项目团队可以通过这些“桥梁工程师”进行很好的沟通,并可在项目初始阶段用Expression blend做一些可实现基本交互功能的应用原型演示;另一方面,具备“桥梁工程师”特质的开发者或设计者可以独立用Expression blend开发一些简单的应用,比如对界面美观度要求没那么严格的商务类应用,或者对程序需求要求不那么多的交互类应用。
基于Expression blend这种工具,传统意义上的开发者与设计师的关系得以重新定义:“做网页版开发的时候开发与设计角色分的非常明确,但在移动开发项目中,我们建议开发人员也要向设计渗透一些,设计人员也要多少了解一些开发有关的事情,当一个设计师懂得一个东西工作的原理之后对他来说设计一个东西更有利”。
要善用Windows Phone开发控件
在CodePlex开源平台上,微软为Windows Phone开发平台提供了名为silverlight tookit for windows Phone的开发工具,其中包括很多模块化的控件,这些控件目前有几十种,基本能满足普通的开发需求。李靖南建议开发者在设计应用之前,先把这些控件都下载到手机里一个一个研究一下,了解基本情况,这样不但可以拓宽你开发的思路,同时,也避免你在一些已有的功能开发上花费太多的时间。
在采访中,李靖南重点向51CTO记者介绍了两款控件,分别是Panorama和pivot。这两款都是界面布局控件,其中Panorama是目前最受欢迎的工具,它支持背景前景不同步的滑动,使得应用有一种纵深关系的背景图。“Panorama特别适合做时尚类的、新闻类的界面”,李靖南说。他自己开发的“市民日记”应用就是用的Panorama空间。Pivot比Panorama更简洁些,它不支持纵深关系的背景图,但是整体效率更快,更流畅。
除了微软官方提供的这些控件,一些以前在silverlight开发领域比较强势的公司也都有针对Windows Phone的第三方控件发布,不过这些控件大多是收费的。如果开发者有需求并且有预算的话也不妨考虑用这些空间。
唯一遗憾的,目前并没有一个统一的平台收集所有的控件,这些第三方的控件大都发布在自家的宣传平台上,不过李靖南分享了几个他常去的Windows Phone开发相关网站,供开发者参考:silverlightcream.com是必看级别的,由一个微软的工程师维护,他几乎收集了所有值得推荐的与silverlight有关的技术文章;另外关注微软官方的channel9频道可以获取一些最前沿的技术资讯。国内网站的话,并没有专业级别比较高的,李靖南推荐的是silverlight中国,cnblog,当然,还有51CTO,呵呵。
#p#
设计应用时应该注意的细节问题
Windows Phone手机在硬件上设置了三个常用键,左BACK键、中间HOME键、右SEARCH键。李靖南表示,开发者在设计应用时要多考虑与这些硬件有关的操作细节。
首先,理论上BACK键可以无限制回退,但是用户往往不记得自己上一步操作或者前几步操作进行到哪里了,所以应用设计不要过多的依赖BACK键,比如可以考虑自己设置一些图形化的、美观的指引,提醒用户目前的位置,好让他知道往前或往后可以去到哪里。
其次,最右边的SEARCH键设置的是直接切入Bing搜索界面,这一设置显然有很浓的商业味道在里面,但是用户尤其是国内用户使用Bing搜索的需求其实并不是很大,而这一设置会在一些情况下给用户造成一些困扰。“比如在打游戏的时候,很不小心就碰到了,然后你就会被从游戏界面切出去到Bing,这是很不好的用户体验”,李靖南说,他对Windows Phone的硬件设置持保留意见,但是作为开发者,只能在既有基础上考虑解决方案:“那么我们能做的事情就是,充分的考虑到下面三个按钮我们没有预期的时候按到会发生什么,比如保留状态等等,在这个方面做一些测试”。
至于软件方面的细节,李靖南仍然举了panorama的例子,这个控件功能非常不错,但由于它本身就是图形化界面,当里面内容太多的时候,容易造成卡壳。李靖南建议在panorama开发的应用里采用动态加载的方式,并且切换页面不要超过四页,可提高应用运行速度。目前他的“市民日记”就是采用的这种方式。
此外,应用设计还要注意界面的统一性。比如“市民日记”采用的是亮色背景,而Windows Phone默认的弹出消息对话框背景色取决于手机本身的设置,常常显示为黑色,因此,如果使用默认功能,就会有点不和谐,所以李靖南在“市民日记”里弃用了Windows Phone弹出消息对话框,而采用了自己设计的方案。
另一个需要开发者考虑的问题是,应用的数据如何做持久化,是保留到本地?还是采用云服务?“这是你事先要考虑的问题”,李靖南说。
缺乏原创的杀手级应用
Windows Phone相对封闭开发制度在提高系统安全性和运行速度的同时也给开发者带来了一些困扰。李靖南说“作为开发者而言我或多或少感到了受束缚的感觉”。曾经有一次一个客户拿着安卓手机问李靖南能不能做到类似锁屏界面快捷方式的功能,由于Windows Phone对这一系统功能的调用限制,李靖南只能遗憾的摇摇头。“这就像硬币的两面”,李靖南说,开发者需要在这其中做一些取舍。“跟桌面应用开发最大的不同是,手机资源受限制的,桌面时代是不断的往里加,不断的加一些功能,做的大而全,手机上反而是看有什么不必要的放下去,在有限的界面区里展示更重要的内容”。
那么目前在微软的Market Place上有什么比较有价值的Windows Phone应用呢?谈到这个问题,李靖南表示非常“尴尬”:“这对做Windows Phone开发是不大不小的一个刺激”,李靖南说,他经常拿着自己的Windows Phone手机向亲朋好友“推销”这个产品,“但是我发现我所能推销出来的一个代表性的、在Windows Phone上独有的、首创的应用,目前来说基本上没有”。遥想一两年前,拿着iPhone的人可以很自豪的向你介绍愤怒的小鸟,但在Windows Phone 7上,现在还没有这样级别的应用。
“游戏方面一直是Windows Phone的强势,因为他本身有XNA这样的平台支撑。在这块多多少少有一些突破。Xbox360上一些很有名的游戏简化版本在Windows Phone上都有。这些反而是iOS和Android上没有的,因为他缺少游戏机级别的支撑”,李靖南说“但是游戏之外的,还有很多时尚类,儿童教育类,理财等这方面我希望看到更多Windows Phone7上的亮点”。
最后,李靖南总结道:“我特别想呼吁大家,如果有个好的idea一定要先放到Windows Phone 7上去,这样对两方面都有好处。对开发者个人来说,由于这是崭新的平台,并不像有几十万应用的iPhone平台上竞争那么激烈,Windows Phone 7上你只要做的优秀就能够保证一两个月内就让全世界人都看得到。我认为至少所有.Net的开发人员一定要尝试一下”。
——同样的呼吁我们也在马宁、杨亨冉等Windows Phone专家那里听到过,可以看出这些专家对这一平台的热爱和期盼。在这里,我们51CTO也呼吁那些有志于加入Windows Phone开发大军的开发者们,尽早着手应用开发,因为先行者虽可能行路艰辛,但也会获得先发优势。在12月17日,51CTO将联合包括马宁、杨亨冉、李靖南、王涛在内的Windows Phone专家共同举办Windows Phone沙龙,欢迎广大读者届时莅临亲密接触Windows Phone开发!
【编辑推荐】