我是一个疯狂的软粉,也是微软产品十几年的老用户,2012年毕业参加工作之后接触到了许多微软的前沿技术,对微软产品更加爱不释手。在用Windows Phone以前,我用的是一款中端的Android手机,Android系统虽然软件丰富多样,但它非常耗电,系统也经常卡得受不了,还中过两次毒,于是忍无可忍之下我换了一部诺基亚720,终于凑齐了微软的三个代表:Surface,Office和Windows Phone。

其实我的主要工作是开发ASP.NET网站,自己的博客也是一路走来从WebForm 2.0维护到现在的MVC 5.1,然而相比ASP.NET开发,WP让我感觉更贴近普通用户。开发免费、无广告、注重界面和交互的WP应用成为了我的副业。

先前我并没有做过真正意义上的客户端软件,对WP开发充满新鲜感。由于之前的工作中有少许Silverlight和WPF的经验,所以今年年初我看着Channel9上的教程(传送门)开始自学WP开发,并尝试着发布了第一款应用得到亲友好评后,开发的热情就根本停不下来了。

我的第一款应用叫做《上海影城排片查询》(传送门),这款应用不久之前也上了微疯客的推荐榜。

 

想到这么一款应用是因为上海影城官方并没有提供手机版App,每次要查排片表都必须打开官网去找。官网首页是Flash的,所以并不是每种设备都能顺利打开的。如果你出门在需要随时随地查排片信息,用手机看官网几乎是不可能的任务。因此我设计这么一款应用,一是可以非常方便的查找信息,二是充分利用手机App的优势,可以直接与日历、短信、电话等Api交互,提升用户体验。

图:早期开发阶段

之前在开发Silverlight和WPF时候我经常使用MVVM模式,在Windows Phone里也可以用MVVM。而这款App所用的是我的微软好友自己开发的MVVM-Sidekick框架,可谓试一次大胆且成功的尝试。

Visual Studio 2013给我的体验也非常棒,优化过的xaml设计器能直观的显示design time data而无需运行程序。因为有很多时候我的开发工作并不是在自己家里的电脑上完成的,而是在Windows Azure的VM上搞的开发环境,在Hyper-V里是没办法运行WP模拟器的。有了Visual Studio,我再也不用担心UI设计了!

应用发布一段时间后,收集了一些用户反馈,并不断完善发布了3次更新。其中一个十分有意思的更新和微软的云计算平台Windows Azure有关。

由于客户端直接访问官网解析HTML即耗流量又不稳定(官网一旦改版我的应用就废了),所以应用的第二版我采用了Windows Azure部署后台服务,把WP客户端与官网原始数据隔离开来,于是客户端不再依赖于HTML解析组件,也不用担心官网改版导致应用失效了。一旦官网改版我只要更新Windows Azure服务而无需更新客户端,高枕无忧。同时,我也获得了另一个方便之处:通过Azure来统计我的客户端使用情况。虽然对于这么一个简单的应用来说这些数据没有特别的价值,但不难想象Windows Azure对于商业应用的价值。未来是大数据的时代,值钱的就是这些统计!

值得一提的是,除了Windows Azure以外,我的个人项目也都使用微软的VS Online(以前叫做TFS Service)做代码和开发周期管理,能够很好的追踪用户需求和反馈意见。

在应用界面的设计上,我虽然是个程序员,不是专业设计师,但我非常热衷于UI和交互设计。我十分欣赏Windows Phone的Metro风格。其实早在Windows Phone和Windows 8以前,我就在微软的productivity future vision系列短片中见到了Metro的理念。Metro简洁而不简陋,所体现的现代感和科技感在UI设计中给了我很多启发。Windows Phone很多设计原则和之前做ASP.NET网站时候所用的网页设计原则都可以互相通用。比如对齐、重复、对比等设计技巧。我也在我的应用中体现了这些设计。我始终认为,Windows Phone上良好的设计应该让用户感到你的应用更加“native”,好像是系统的一部分,所以风格要和系统一致,给用户连贯的体验。

最近发布的另一款注入心血的应用是《上海轨道交通》,应用很简单,但数据的录入工作耗费了我两周时间。从UI草图到最终成品大约用了3周。

在发布这款应用以前,同类应用要不是数据太老就是界面太丑,他们的评论里也常常有用户抱怨更新速度慢。所以我花了点时间设计这款应用,采用2014年上海轨道交通的最新数据,并依然保持界面清爽、免费、无广告的原则。

对于用户的评论,我也细心聆听。不久前就有用户发现了卫生间信息显示不全的bug,我立即进行了修复并发布了更新。我相信敏捷、积极的态度会让用户更喜欢我的软件。

不少朋友建议我做收费版的App,我目前并不乐意。开发者们都知道,不管是开发免费应用还是收费应用,都需要付年费,所以我保持免费无广告的原则肯定必然是做亏本应用。但为了让更多的人喜欢上WP,为了拯救人类于安卓和苹果的水深火热之中,为了人类明天的希望,牺牲个人的一点点小钱又何足挂齿呢?

Live to code,最大的快乐其实在于分享。我边学边做WP应用,并把自己的经验写在博客上让其他小伙伴参考。我的所有WP项目也给好基友们小范围内开源了。

最后谈谈对于Windows及WP平台的期待。大家不难发现,不论是Windows 8还是Windows Phone的应用商店都有大量的应用创意非常不错,可惜UI却惨不忍睹。网上也常有评论说Windows平台虽然应用数量增长快,但高质量的不多。其实重点在于UI设计。作者们想做到Metro的简洁却很容易做成简陋,感觉有点力不从心。虽然微软的网站上有许多Metro设计的Guideline,但中文资源相对缺乏并且翻译质量不高。对于普通用户来说,他们更注重的通常是UI和交互设计,高端的功能并不是大部分人都会去用的。但个人开发者并不都懂设计,所以很期待WP SDK能够加入更多由专业设计师设计的UI模板供不懂设计的开发者使用。

最近最让我期待的是即将到来的Windows Phone 8.1,从目前的消息来看,该有的基本都有了,更加坚定了我对微软的信仰。虽然现在很多软件都只提供苹果和安卓版,似乎故意和WP过不去。但是我相信有了我们,有了Live to code的精神,我们会重夺Windows的辉煌时代。

微软是人类的希望,不管网上的言论怎样诋毁微软,我和我的小伙伴们都不会动摇自己的信念。作为开发者的我感到非常幸运,能够成为推动人类文明发展的一份子。不管未来结果怎样,至少在Windows Phone被流言蜚语的那些年我和其他开发者们没有袖手旁观!至少我们努力过!我相信好果实总是留给那些坚持到最后的人!真正的软粉不是只说不做的,我很高兴能与大家一起为这个平台出一份力!