纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile 、Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery Mobile出自于jQuery家族,Sencha Touch来自于ExtJS。jQuery Mobile 和Sencha Touch都是比较成熟老牌的框架,项目中也有应用。国内也有公司,像BAT巨头也在探索和实现了适合自己的移动web框架。
1、jQuery Mobile适合你吗
差不多二十年来,处理跨浏览器的HTML和CSS不一致问题一直让许多开发人员颇为苦恼。而Ajax的出现更是加剧了这些问题,因为开发人员现在要处理新的问题:无数与JavaScript有关的浏览器不兼容问题和异常现象。后来出现了jQuery:由于可以对基本的JavaScript任务进行强大的抽象处理,jQuery大大减轻了编写复杂的跨浏览器代码方面的压力。难怪jQuery一下子火了起来。
眼下移动应用开发人员面临可能更艰巨的挑战,这不仅是由于要处理各种各样的移动浏览器不兼容问题,还由于需要设计合理布局,以便适合移动设备所固有的各种外观尺寸和有限资源。这时候,jQuery Mobile应运而生,它自诩是“一种针对触摸而优化的Web框架,面向智能手机和平板电脑”,可以充分发挥jQuery和jQuery UI的优势。
jQuery Mobile框架能够帮助你快速开发出支持多种移动设备的Mobile应用用户界面。jQuery Mobile最新版本是1.4.0,默认主题采用扁平化设计风格。jQuery Mobile1.4.0主要侧重于性能和控件方面的改进。除了全新的默认主题和SVG图标,还新增了开关控件、通用过滤器、箭头弹出框、滑动提示框等一系列功能,更是集成了jQuery UI的Tab部件。jQuery Mobile继承了jQuery的优势,并且提供了丰富的适合手机应用的UI组件。jQuery Mobile还有很多的第三方扩展。
虽然jQuery Mobile目前仍是测试版(第二个测试版在去年8月3日宣布发布),但已经支持数量多得惊人的移动平台,包括安卓、黑莓、iOS和Windows Mobile等其他平台。同样出色的是,它还支持众多的窗口组件:由于jQuery Mobile对渐进增强(progressive enhancement)很重视,开发人员可以利用这些窗口组件,轻松创建统一的、跨移动设备的界面。
jQuery Mobile的主要特性
虽然使用jQuery Mobile的理由有多个,但是下面三个理由显得尤为突出:
- jQuery开发人员使用jQuery Mobile时会觉得驾轻就熟,那是由于两者使用共享的代码库。
- 如果目标用户群并不局限于使用某一种设备,关注跨平台兼容性这个优点很理想。
- 社区和企业的广泛参与促使像Dreamweaver CS 5.5这些广受欢迎的开发产品和像非常出色的Photo Swipe这一批值得关注的插件内置了对jQuery Mobile的支持。
2.Sencha Touch适合你吗?
较之与jQuery Mobile和jQTouch,Sencha Touch学起来难度相对比较复杂,不过有弊也有利:虽然比较复杂,但是带来了强大的功能。作为Sencha公司的一款双许可证(商业版和GPL/FLOSS版)产品,Sencha Touch采用了与上述的几种移动开发框架全然不同的方法,原因在于布局和界面窗口组件是使用出色的JavaScript库构建而成的,而该JavaScript库恰好拥有丰富的实用特性,比如离线支持、独特布局和轻松制作主题的功能。
虽然这种方法对相对不熟悉JavaScript的新手来说可能难度很大,不过我还是建议花点时间尝试一下Sencha Touch,因为直观的语法、编写清晰的文档以及众多的配套实例对于你尽快上手会大有帮助。
Sencha Touch的主要特性
虽然使用Sencha Touch的理由有多个,但是下面三个理由显得尤为突出:
- 原生的MVC架构致力于为面向框架的开发人员消除紧张,他们可能在为如何合理地组织和管理JavaScript代码而苦恼。
- Sencha开发人员已付出了很大的努力,在Sencha网站上发布了众多的教程和演示应用程序。
- 对于之前熟悉窗口组件工具包(想一想Swing和GTK+)的开发人员来说,窗口组件的布局和组织方面采用JavaScript驱动的方法自然很熟悉。
此外,阿里前端自己开发的前端框架kissy,百度腾讯都有自己的移动前端开发框架。
结束语
读者最后总是问我应该选择哪一种框架。回答总是一样:这得看情况。毫无疑问,Sencha Touch是这种开发框架当中功能最丰富的,不过有时候学起来比较困难。话虽如此,如果你的目的仅仅是为现有的应用程序提供对用户友好的移动界面,那么jQuery Mobile或jQTouch可能会提供一条阻力最小的道路。如果你给移动应用程序设的目标比较高,那么Sencha Touch极有可能完全值得你为此投入时间。不管你最后选择了什么样的解决方案,我都很想听听你使用后的感受!欢迎留言。