作者:云聪京初瑞子_617 | 2021-08-02 22:56
jQuery Mobile
某种程度上说,
jQuery Mobile就相当于移动应用版本的jQuery UI;它是一个挂件库,用来将语义化的HTML标记语言转化成无论UI样式还是交互行为都更贴近移动设备原生风格的模式。
继承了jQuery的优点,jQuery Mobile对A、B、C三个等级的移动浏览器保持了全面兼容。它推出的时间不长,但目标很明确——为尽量多的移动浏览器打造用户体验最棒的移动应用。虽然略重了些,但jQuery Mobile绝对是打造移动应用的最佳框架之一。
jQTouch
与jQuery Mobile类似,
jQTouch同样是一款将语义化HTML标记转化为移动设备原生风格页面视图的挂件库。这两者之间的区别是,jQTouch是特别为A级WebKit内核的移动浏览器打造的。这意味着jQTouch可以使用WebKit内核浏览器的专有功能渲染页面,相比于JM,所需的代码更少。所以,当我手头项目的目标用户多数为WebKit内核浏览器使用者的时候,我会选择jQTouch进行开发。
很快,jQTouch将支持Zepto,届时,jQuery就不再是打造页面视图本身功能的唯一选项了。这个改变将会有效的减小文件尺寸,降低运算处理时的系统资源开销。
Sencha Touch
Sencha Touch是一个基于ExtJS的全功能挂件库。与jQTouch相同,Sencha Touch也是面向A级WebKit内核的移动浏览器的。基于ST打造的移动应用具有很强的健壮性,在UI方面的自适应性也很出色,例如,在平板电脑中,页面视图会切换至大屏幕规格,包括结构和元素的布局等。
与jQuery Mobile或jQTouch不同的是,Sencha Touch不是基于HTML标记语言的,开发者必须采用客户端MVC风格直接书写JS代码,所以学习曲线略微陡峭。
Sencha Touch比较适合开发那些主要运行在WebKit内核移动浏览器里的中到大型的Web应用。
SproutCore
SproutCore同样是一款开源JS框架,最初的目的是帮助Web开发人员创建运行在桌面浏览器中的Web应用。实际上,它的功能太强大了,以至于苹果公司使用它来构建了最初版本的MobileMe.
不过,源于它桌面应用的初始需求,SproutCore在尺寸方面对于真正的移动化解决方案来说还是略大了些,至少我最后一次用到它的时候是这样的情况。
跨平台的本地应用开发工具
PhoneGap
PhoneGap可以将基于标准HTML、CSS和JS打造的页面视图封装为本地客户端应用,目前支持10种移动平台。在数据资源传输方面,可以采用普通Web App所使用的Ajax等方式。PhoneGap在页面视图与本地应用之间提供了一个桥梁,允许开发者通过JavaScript访问并使用移动设备的硬件功能,比如摄像头、联系人信息、麦克风等;这是单纯依靠移动浏览器运行的Web App类应用所无法实现的。
PhoneGap不属于挂件库,它也不会将HTML编译为原生客户端代码。通过PhoneGap封装的移动应用,只能在运行的过程中即时执行JavaScript,所以它无法像前面介绍的几种JS UI框架那样提供一套完整的移动化UI方案。但是PhoneGap的侧重点很显然是在本地化封装这方面;我开发过的每一个混合型应用都会用到PhoneGap。
Titanium Mobile
Titanium Mobile可以直接将JavaScript编译为iOS或Android平台的本地应用代码。开发者们经常将它与PhoneGap做比较,其实它们的机制是截然不同的。在Titanium中,开发者需要按照它规定的语法书写应用代码,而无法使用原生JS;从这个角度讲,Titanium与前面提到的的Sencha Touch类似。对于资深JS开发者来说,这种方式不会带来很大困难,而新手则需要学习和适应。
Corona
Corona是一款商业SDK,使用Lua构建。开发者可以通过Corona为iOS和Android两大平台开发原生UI效果真实饱满的移动应用。它拥有一个完整的图形和动画库,渲染引擎可以充分利用GPU的功能。这让Corana非常适合移动游戏的开发,不过它在普通移动应用开发方面的表现同样不错。
企业级移动应用开发平台(Mobile Enterprise Application Platforms,MEAPs )
MEAP一种整合性的开发平台,通过一个后台,对跨平台移动应用的开发项目进行全周期的管理;涉及到的细节已经超出本文范围。之所以把这类放进来,是因为其中
RhoMobile曾经被视为PhoneGap的竞争对手,但实际上它们根本不是一回事。典型的MEAPs平台有:
Antenna Softwware
Pyxis Mobile
RhoMobile
Sybase Unwired Platform(SUP)
总结
我个人从不会将Web应用与本地原生应用看作非此即彼的两个独立命题,它们更像是一个范围的两个极值。很多时候,要考虑的不是选择哪种方式的问题,而是要根据需求,评估基于HTML、CSS和JS打造的Web App页面视图部分与原生应用的比例问题。
使用前文提到的一些方法对需求进行评估,确认可以使用混合型应用的模式开发产品项目,接下来,我建议将目标放在对页面视图部分的比例控制上。根据产品的具体需求和设计情况,在保证不会对用户体验等方面起到负面影响的前提下,可以尽量多的使用基于HTML的前端页面视图,以增大跨平台功能的比例。你需要担心的跨平台方面的问题越少,用来打造优秀产品的精力及资源就相对越多。