Nokia 和 Microsoft 终于搞基成功,业内人事普遍都看好两家厂商的 “ 软硬结合 ” 。这一结局直接把 Windows Phone7 这一新兴手机移动操作系统送到与如日中天的 Iphone 与 Android 在同一位置上,变成了三国之势。究竟两家公司的合作是 " No - Win " 还是 "Win - Kia " 这里不做讨论,只能引用我们瓷器国的某些专家常用的语言来说:这两家公司的合作有可能赢、有可能输,具体赢输要看最后的结果才知道 ~~~ 囧 ~~ !当然还有 Symbian 、 Meago 、 Rim 、 WebOS 和三星的 Bada 甚至还有基于 Android 的 Ophone ,但以上这些还未形成气候,暂时不做考虑。
我们所关心的问题是做为一个想转入做移动开发的程序面对这三大操作系统【 Android 、 WP 7 、 IOS 】该如何选择一个平台让自己有所发展?首先我们来对比一下三大平台。
编程语言
Android 应用是用 Java 语言编写的,当然还有 jni 的编程方式,使用 C/ C++ 但主要的还是使用 Java 。许多开发人员通过熟练掌握 Java 语言在企业中获得了职位 ,因此为 Android 平台开发应用很自然地适合这些人。就语言特性而言,有过 C# 等熟悉面对向开发语言的程序员,要学习 Android 开发也是可以的,因为 Android 用的只是 Java 的语言基础最重要还是要看思想。
IOS 应用是用苹果的 Object-C 语言编写的, Object -C 语言是一种包含 Smalltalk 语言元素的非标准 C 语言。有过 C/C++ 开发经验的程序员可以比较好的转向 IOS 开发,但还会在开发过程中遇到一些小障碍。
Windows Phone 7 应用是用微软的 C# 语言编写的,有过 .net 平台开发的程序员想要学习 WP7 开发,相信难度不大。如果你之前是 Silverlight 、 WPF 开发者那恭喜你,你可以很快速的学好 Windows Phone 7 开发。
三大平台都使用的不同的语言编写, Android 之所以选择 Java 语言,无非是看中 Java 编程语言排行首位的优势,想迅速的收获大批开发者,而另外的两个平台却使用自家的编程语言,相信也是无可厚非。这一结果直接导致在三种平台的开发,不能写一套代码就能解决。当然有很多工具可以使它们使用不同语言开发 AP ,比如 Mono 可以让 c# 跨平台, Rhomobile 的 Rhodes 、 Nitobi 的 PhoneGap 、 Appcelerator 的 Titanium 和 Ansca 的 Corona 等。
然后这些仿真器却不是最佳方案,因为运行一个兼容性框架会过度消耗性能在有限的移动处理能力上,这是用户所不能接受的。
封闭系统 VS 开放系统
Android :众多 OEM 厂商都选择了 Android 正是看中了其足够开放,可供定制个性化的系统。并且 Android 有 着不仅是手机操作系统的丰富产品线:智能电视、车载设备、家庭安防、家庭物联、物流设备等。这就给开发者更多选择的机会,就业机会也会大大增加。但由于其 足够开放,导致了手机平台的不统一,规格不一,导致开发者在开发一款应用时所要维护的时间会比另外两个平台花费的时间要多得多。
IOS : 作为苹果的移动操作系统,该平台一直是封闭的,是专门为苹果自己的设备创建的,开发人员有己知的目标设备范围,有明确的功能和局限性范围。而 jobs 也说过,作为 IOS 开发者只需要考虑两个版本的维护。说过产品线性, IOS 有 IPHONE 、 Ipod Touch 、 Ipad 这三个平台可以作开发,其中 Iphone 和 Ipod Touch 是一致的,而 Ipad 屏幕尺寸较大,只需在 Iphone 的基础上调整好应用的尺寸即可,当然屏幕大小导致用户体验不同,对应的 AP 会也不同。
Windows Phone 7 :微软这一系统明显是借鉴了 IOS 的开发模式,也是一封闭系统,他只支持两种屏幕大小,所以要维护自己的 AP 也是比较轻松的。目前该平台只做手机平台而存在,市面上并没有其他各类的产品使用该系统,开发者选择性会小点,但好在与 Nokia 合作市场不用担心 。
学习资源和测试工具
提高开发速度也是开发者选择一个平台衡量的重要标准。
Android 是一个开源的产品,有众多的样本应用和开源应用提供下载,但是没有太多中文文档,还有文档不全也是它的一个缺点,但有众多开源应用这一优势学习 AP 开发并且入门比较容易。 IDE 使用 Eclipse ,集成开发环境有丰富的源代码模型,而且源码处理很好。不过 Google 在处理兼容性方面还需努力,有时候插件会死掉,但这个可以忽略,重启 IDE 即可。
IOS 苹果向许多 IOS 开发人员提供了众多开发信息,包括多媒体式,甚至是有 Iphone 或者 Ipad 的开发者可以使用 IBOOKS 免费下载开发书籍。不过相对于国内来说比较心酸,都是些 E 文的东西,很难啃。 IDE 方面,因为我们没有用过,但网上说 XCODE 非常糟糕,用过的朋友可以说说。
Windows Phone 7 众所周知,微软在笼络开发者有一套手法,首先它的学习资源和文档非常丰富。而且在我们国内文档有分中英文文档,入门基本不是问题。而且有 WebCast 这个视频教育平台, MVP 们通过自己的实践经验己视频的方式传授给大家,胜任 WP7 开发基本没问题。 IDE 方面,这个不用我多说,有 Visual Studio 和 Expression Blend 这两大神器。
展望未来
Android 并众多 OEM 厂商拥抱,特别是国内的山寨文化。未来前景将一片光明。而且它将改变很多目前的电器设备的使方式。用户方面偏中、低,当然高端用户也存在较之 IOS 要小。
IOS 苹果将继续为其添加更多酷炫功能,并且引用到其他设备上。用户方面还是抢占着高端用户。
Windows Phone 7 微软和诺基亚合作,诺基亚强大的硬件设计和优秀的营销能力、微软的软件大牛,使得这一系统有很大的潜力和上升空间。
总结
如果开发者单纯想学习 App 开发,最好的选择还是 IOS ,营利模式比较明朗,但是 “ 须 ” 有 MAC 机才能做开发,而不是必须,但最好是使用 MAC 机开发。对于没有 MAC 机的同学,还有在 I 系列价格居高不下的情况下,建议同学选择 WP7 开发,虽然市场营利模式不明显,但其潜力足够大。而 Android 因为用户习惯了免费,除了广告的收入基本可以说没有其他收入。除非公司想做多平台产品推广,例如某一 IM 软件、某一播放器、某一看书软件、某一微博等。
但是如果开发者想做差异化开发,做出有竞争力的产品。不妨考虑一下 Android ,软硬结合的方式可以构建出差异化的产品,但这条路的学习线路很漫长,必须上下层一起打通,没有个几年工夫很难成气候。
开发者可以想想自己需要什么,想做什么,这三个平台都是很有发展空间的,找到自己合适的最重要。不管什么,移动的时代来临了。希望上述能对你投入移动开发有所帮助。