移动应用框架技术探析
2013-04-29张居彦
张居彦
摘 要 该文针对目前比较流行的HTML5移动应用框架进行了阐述,分别介绍了PhoneGap、Sencha Touch、jQuery Mobile、Titanium Mobile等四种常用的框架特点及运用。
关键词 HTML5 移动应用框架 PhoneGap 跨平台
中图分类号:TP311 文献标识码:A
目前,随着Google的Android手机和苹果的iphone手机的逐渐普及,越来越多开发者加入到移动应用开发的大军当中。其中,Android应用是基于Java语言基础上进行开发的,而苹果公司的iphone则是基于C语言开发的。它们几乎无法融合,就算是都采用 Java 接口的 Android 和 BlackBerry,它们的 API 接口也不一样,如果想开发一套原生的应用,必须在每个平台调用各自的原生 API。
为了解决上述问题,跨平台的移动应用开发技术逐渐地引起了开发者的关注。随着人们对跨平台应用开发研究的不断深入,当前市场上已出现了若干致力于跨平台开发的产品级框架。为了更好地了解当前的跨平台开发框架技术,本文介绍当下发展较为成熟的四款开发框架:
1 PhoneGap
PhoneGap是一款开源的手机应用开发平台,它仅仅只用HTML和JavaScript语言就可以制作出能在多个移动设备上运行的应用。PhoneGap将移动设备本身提供的复杂的API进行了抽象和简化,提供了一系列丰富的API供开发者调用,只要你会HTML和Javascript或者Java语言,就可以利用PhoneGap提供的API去调用各种功能,PhoneGap就能让你可以制作出在各种手机平台上运行的应用,这对移动应用开发者来说无疑是个福音。目前,PhoneGap已实现对iPhone/ipad、Android、Symbian、Palm、黑莓各版本绝大部分功能的支持。
PhoneGap可以将基于标准 HTML、CSS和Javascript 打造的页面视图封装为本地客户端应用,目前支持多种移动平台。在数据资源传输方面,可以采用普通 WebApp 所使用的 Ajax等方式。PhoneGap 在页面视图与本地应用之间提供了一个桥梁,允许开发者通过 JavaScript 访问并使用移动设备的硬件功能,比如摄像头、联系人信息、麦克风等;这是单纯依靠移动浏览器运行的 WebApp 类应用所无法实现的。
2 Titanium
Appcelerator公司的Titanium Mobile可以让您使用Javascript API来编写app。不过Titanium把你的代码编译成Native的iPhone或Android app,这意味着它并不是一个真正的Web框架,而是一个兼容层或者编译器。
Titanium允许web开发人员使用JavaScript和一点点XML之类的其他相关技术,可以实现高性能、更换皮肤很方便的Native App,而不需要额外去学习Objective C或者Cocoa Touch等技术了。
Titanium Mobile 可以直接将 JavaScript 编译为ios 或 Android 平台的本地应用代码。开发者们经常将它与 PhoneGap 做比较,其实它们的机制是截然不同的。在 Titanium 中,开发者需要按照它规定的语法书写应用代码,而无法使用原生 Javascript。对于资深Javascript 开发者来说,这种方式不会带来很大困难,而新手则需要学习和适应。由于没有标准的 Javascript 支持,造成开发基于 Titanium Mobile 的移动应用,需要额外的学习新的脚本。
3 Sencha Touch
Sencha,翻译意为“煎茶”,是指一种在日本很流行的绿茶品种,在Java开发的传统中,它代表了软件开发的一个新的水平阶段。目前Sencha Touch已经成为构建移动HTML5应用的领先框架。Sencha Touch是一个基于HTML5的移动应用开发框架,其前身是Ext。使用Sencha Touch,开发者可以构建在iPhone、Android和BlackBerry touch等设备上运行的移动web应用,其效果看起来如同本地应用。Sencha Touch是专门为移动设备开发应用的Javascript框架,全面兼容Android和Apple ios。用户界面组件及数据管理全部基于HTML5和CSS3,通过Sencha Touch你可以创建非常像native app的web app。Sencha是目前为止所发现的最强大的应用于移动平台的框架。它将自己定位为框架不是类库,也充分说明了这一点。随着它的出现,移动平台的移动应用用户体验设计会得到提升,对HTML5、CSS3在移动平台上的运用及推广也起到一定的作用,甚至是推进作用。HTML5技术虽然还在发展与完善当中,但未来的移动平台的应用,将会将其纳入其中,Native App会慢慢淡出人们的视线,甚至是终结。该框架最大的特色就像它的名字一样,增强了对手持移动设备触控操作的强力支持,除了支持浏览器标准的触摸事件,还额外添加了如tap, double tap, swipe, tap-hold, pinch 和rotate 等富有吸引力的操作事件,使用户体验到与原生程序一样的效果。
4 jQuery Mobile
jQuery一直以来都是为桌面浏览器设计的,是非常流行的富客户端及Web应用程序开发中使用的JavaScript类库,没有特别为移动应用程序设计。jQuery Mobile是一个新的项目用来填补在移动设备应用上的缺憾。它在jQuery框架的基础上,提供了一定范围的用户接口和特性,开发人员可以在移动应用上使用。使用该框架可以节省大量的js代码开发时间。
jQuery Mobile 是jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且拥有完整统一的jQuery移动UI框架。支持全球主流的移动平台。JQuery mobile构建于JQuery以及JQuery UI类库之上,为前端开发人员提供了一个兼容所有主流移动设备平台的统一UI接口系统。拥有出色伸缩性,轻量化以及渐进增强特性与可访问性。JQuery mobile针对的是所有的触摸屏幕设备与平板电脑。它为移动Web网站的构建提供了一系列布局工具,如工具栏、导航,及UI组件,如列表和标签组件等,内置了6套不同样式的CSS主题框架,可以组合应用于移动web。
jQuery Mobile可以轻松地帮助我们实现非常好看的,可跨设备的Web应用程序,jQuery Mobile开发的Web应用像Native App,其中包含了Web应用中的各种常用部件,如对话框、表单、列表、按钮、工具条等,jQuery Mobile使用Ajax加载页面,实现炫丽的页面切换效果
5 总结
跨平台的移动应用开发框架均着眼于解决不同平台之间应用开发的兼容性问题,因而讨论某一框架的优劣,不应拿诸如使用该框架 是否能开发出 3D 游戏这样的标准来对其进行考量。通过上文的比较,笔者认为开源框架 PhoneGap 的优势更为均衡,具有更好的发展前景。
参考文献
[1] phonegap.http://www.phonegap.cn,2011.
[2] Peter Lubbers(李杰). HTML5 高级程序设计.北京:人民邮电出版社,2010,5-15.
[3] GiulioBai.JQuery Mobile First Look.UK:Packt Publishing,2011,9-16.
[4] Jon Reid.JqueryMobile.USA:O'Reilly Media,2011,9-22.