1.1 认识Cordova
Cordova的全称是Apache Cordova,是一款开放源代码的移动开发框架,原名PhoneGap。
1.1.1 Cordova的发展
Cordova起源于PhoneGap,那先看看PhoneGap的发展。
2008年8月,世界上第一段PhoneGap代码诞生了,出现的原因是一名iOS程序员无法忍耐Object-C生硬而又陌生的语法。而这名程序员又恰恰注意到了Web脚本伟大的前景,他发现Object-C显然不如简单的HTML+JavaScript容易理解,而相对于熟练的Object-C程序员,显然熟练的前端开发者更容易找到也更容易培训。于是他就认识到世界上需要这样一种中间件,让Web开发者所熟悉的HTML、CSS、JavaScript技术能够简单地部署在移动设备上,并且能够同iPhone实现简单的功能交互(比如摄像头和重力感应)。
于是伟大的PhoneGap就诞生了,图1-1为PhoneGap的Logo。也许Object-C实在是太遭人厌恶了吧,PhoneGap一经发布,就已经在iOS开发者中间流行起来,获得了许多奖项。PhoneGap并没有停止前进的脚步,而是将目标瞄准了Android,并发布了可以支持Android平台的框架。这使得PhoneGap对移动开发人员来说变得越来越重要。
图1-1 PhoneGap的Logo
2011年,Adobe正式宣布收购PhoneGap,并命名为Apache Callback。Callback 1.4版后,更名为Apache Cordova。Cordova横跨Android、iOS、BlackBerry、WebOS、Windows Phone等主流平台,是目前较强大的一次部署全平台通用的移动开发框架。图1-2生动地描述了Cordova的跨平台特性。
图1-2 Cordova的跨平台特性
Apache Cordova的官方网站是http://cordova.apache.org/,如图1-3所示。可以在这里下载软件或查看文档。如果英文不好的读者,也可以访问中文主页http://www.cordova.org.cn/。
图1-3 Cordova官网
1.1.2 Cordova的特色
在Cordova中文主页上,有几行文字概括了Cordova的几大特色,如图1-4所示。
图1-4 Cordova的特色
下面笔者将分条解析它们的精髓。
1.概述
Cordova是一款让开发者用普通Web技术编写出能轻松调用API接口和进入应用商店的HTML 5应用开发平台,是一个支持全平台的开源移动框架。Cordova开发成本低,据估算,其成本顶多为原生APP的1/5。
2.兼容性
Cordova完全做到了Write Once, Run Everywhere,也就是开发者常说的“一次部署,多平台运行”。Cordova支持常见主流平台的开源移动框架。
Cordova目前已经可以支持iOS、Android、BlackBerry、Windows Phone以及Web OS这些主流操作系统。
3.标准化和HTML 5+JavaScript
笔者认为这两点如果合在一起会更加贴切,因为标准化中提出的采用W3C标准其实就是指采用了标准HTML 5进行开发。Cordova使用将这两点分开来进行强调是出于以下两点目的:
(1)严格来说,W3C标准是一系列标准的集合,包括但不限于HTML 5、CSS 3和JavaScript。除了这些之外,W3C标准还包括了一套完整的结构、表现、行为以及命名形式等。将这两点区分开来体现出了Cordova开发团队的严谨。
(2)从另一个角度来看,也可能是Cordova开发团队利用了W3C标准与HTML标准界限模糊的“漏洞”,来多次强调同一个问题以制造噱头,图1-5为HTML 5所涵盖的范围。
图1-5 HTML 5所涵盖的范围
从图中不难看出,HTML 5标准在广义上也完全可以与W3C标准处于同一等级上,它也包含了一整套结构、表现、行为以及命名形式的规定。
4.大众化移动互联网开发平台
目前许多网站在对Cordova进行介绍时,总会将主要注意力放在上面提到的三点上,而往往忽略了这最后一点,但是笔者认为这一条才是Cordova最为精髓的核心价值。因为很多开发者难以忍受一遍一遍地调试才选择了Cordova,因此特别看重Cordova开发应用时所带来的高效和便捷。
据笔者估计,在实际操作时甚至不需要20%的开发周期就可以完成所预期的目标,维护成本可能要略大一些,但是也不会超过20%。笔者经常可以看到身边的一些做营销的朋友,利用Cordova在很短的时间内就会开发出一些极其简单的轻应用,然后上传到第三方平台来获取网店的收益,如果使用原生SDK无疑会让人疲于奔命。
注意
由于使用HTML 5只适合开发一些轻量级的应用,如新闻浏览、视频播放或一些棋牌类的小游戏,所以如果有人想要开发一款像“极品飞车”这样的大作,使用Cordova倒也不是不可以,毕竟WebGL让这一切已经成为理论上的可能,但是他们可能会因为开发成本过高或学习成本过高而被放弃。
虽然Cordova开发的便捷性是有局限的,因为它毕竟是一款“轻量级架构”的快速手机开发平台,但是只要它真实有效地提高了开发者的开发效率,那么它就是好样的。
1.1.3 Cordova的优势
在电影《功夫》中“火云邪神”曾经说过一句话,“天下武功唯快不破”。事实上,不但练武如此,做技术同样如此,尤其是对于许多个人开发者来说,开发应用无非就是为了赚取更多的广告流量或是网店的销售量。对于目前激烈的行业竞争,没有更好的点子恐怕很难在许多同类型的应用中脱颖而出。
既然质量上没有优势,就只能在数量上做一些文章。试想如果别人上传一个APP时,有人能够上传100个APP,这无疑就占据了压倒性的优势,可是这也需要有别人100倍的开发效率。花大价钱雇人来开发明显不够划算,那就只有想办法提高自己的效率了。
Cordova显然很适合这种需求,它能够让开发者在极短的时间内开发出功能齐全的应用,另外还有它跨平台的特性,无疑又一次提高了效率,因此可以说,Cordova简直就是为个人开发者而生。
提示
Cordova同样非常适合于团队去操作,只不过优势没那么明显而已,但是仍然值得一试。