本文是吃饭博客在2011年初写的老文章,但是文章对移动互联网从以iOS、Android为代表的Native App开发到以Titanium、PhoneGap为代表的Web App开发的进化所作的分析却一点儿也不过时,所以这里拿出来与移动互联网从业者分享。文中特别指出了PhoneGap这样的written once run everywhere的开发框架才是移动互联网的大未来。那么PhoneGap究竟是何方神圣呢?PhoneGap是一个开源的移动开发框架,能基于HTML5 + CSS + JavaScript等标准协议开发跨平台的移动应用,PhoneGap另一个很大的亮点是对智能手机native功能的调用,如摄像头、地理位置、加速度传感器、文件管理、联系人、指南针、推送、存储等。
移动这一块目前是iPhone遥遥领先,程序员是爱买Android,一般老百姓还是偏向iPhone。现在做手机程序的统统是iPhone优先策 略——做一个程序,先写iPhone版,第二才考虑Android。在iPhone的带动下,Mac OS 在美国市场占有率都上升到9%了,相当可怕,有人认为苹果将成为九十年代带的微软。
但我不这么看。我看好Android超过iPhone。从根子上来讲,谷歌是一家广告公司,苹果是一家设计公司,如果只是他们俩在竞争,鹿死谁手还 真不好说;可Android是一个开源程序,开源是IT界的倾销手段,因为它免费的正大光明。真正在背后支持Android的力量,是三星、摩托罗拉这些 被苹果抢了市场分额的手机公司,没有Android,这些手机公司就活不了了(当然,现在又有了WP7……)。此外,因为Android是开源的,它会被 大量应用到其他产品上,就是所谓的物联网。Android以后会成为高端的设备上的嵌入式开发平台,比如汽车App或者其他什么的。应用广就意味着更大的程序员群体,更大的群体意味着技术发展的更快……形成一种良性循环。苹果的系统只能在iPhone上跑,应用面就窄的多。所以我认为苹果不会成为就九十年代的微软,我认为苹果将成为……还是九十年代的苹果。孤芳自赏是没有好下场的。
不过,我觉得这俩平台都不是未来的Windows,Windows是一个不能被重复的传说。你看,就算Android能打赢iOS, 它能垄断市场吗?不能。苹果也不是吃素的,Android和iOS在未来一段时间内应该都是齐头并进,更何况现在又出了Windows Phone,还有黑莓和诺基亚……不能因为过气了你就当人家不存在呀,俗话说瘦死的骆驼比马大不是?也就是说,移动平台注定是百花齐放的局面,不可能出现 当年Windows一统江山的情景。那么,如果没有统一的操作系统,开发程序就是一件麻烦的事情,同一个软件要写好几个版本,这事儿效率太低。当多平台并 存已成定局的时候,群众最需要的就是跨平台的技术。
目前开发移动程序框架选择很多,从Web App,到PhoneGap,Titanium,MonoTouch,再到Native App,总有一款适合你。规律是,兼容性越强的技术,成本越低,性能越差;兼容性越差的技术,成本越高,性能越好。在众多框架里,我最看好 PhoneGap。有以下两个原因:
1.兼容性。完全做到了written once, run everywhere。
2.标准化。PhoneGap用W3C标准,特别标准,Web App直接一字不改就能运行。尤其是和JQ Mobile结合在一起使用,实在是威力无穷啊!
用JavaScript+HTML5。你说这和iOS以及Anroid的代码加XML有区别吗?我看都差不多。
当然目前PhoneGap缺陷还是蛮多的,比如运行速度慢,UI反应延时——这是个致命伤。不过嘛,这种问题是会随着技术的进步而消失的。它的优势 是无以伦比的:开发成本低——我个人估计,至多是Native App的五分之一吧。伟大导师马克思教导我们说,资本有了300%的利润,就敢践踏一切人间法律。跨平台的流行是不可避免的。当然,Native App永远会有一席之地,比如高端游戏。
有的技术虽然高明,如果找不到切入点也流行不起来。就算再有潜力的种子,没有生存的土壤也长不成大树。最典型的例子就是标准Qwerty键盘,再不 好使大家也一直在用。PhoneGap是不会成为空中楼阁的,它现在已经遍地开花了,网上很多招工都指明要PhoneGap做。表面上看来,做 PhoneGap的是温哥华的一家小公司,但是……和Android一样,PhoneGap也是开源项目,这里头猫腻可就多了去啦。现在,IBM给PhoneGap贡献的代码,比PhoneGap母公司还多!为啥大家这么支持PhoneGap呢?我觉得JQ Mobile主页上的一张合作伙伴的图特别说明问题,请看:
这张图片的名字就叫……找找少了谁?咦,怎么没有谷歌呀。谷歌不是一直支持JQuery,最Web Centric吗,怎么不支持JQ Mobile了?是了,谷歌有Android,不需要Web App也可以分到一大块市场,甚至Web App会降低开发门槛,反而会削弱Android的竞争力。利益当前,谷歌把不作恶这事儿也忘了。但是,就像新闻联播里经常说的,人民,只有人民才是这世 界的主人。历史潮流是挡不住的,谁都不行,谷歌也不行。看看上面图片里这些公司,黑莓、诺基亚、Palm……他们都是曾经的强者,现在却是被 Android和iOS边缘化的弱者。如果你想做移动开发,你可能选择Android,也可能选择iOS,但你会选择黑莓吗?诺基亚?——没有应用程序是 操作系统最大的痛啊。因此,他们才是最需要跨平台技术的。每多一个跨平台技术的程序员,就等于多了一个黑莓程序员、诺基亚程序员……跨平台也是符合生产力 发展规律的,是进步的,是革命的,是人民的呼声!弱者单独看起来很弱,团结起来便力量惊人,可以战胜一切,可以推翻霸权,伟大领袖都是这么做的。