如果你的团队刚刚组建或者框架知识了解不深入,那么开发移动端,使用单一的库就行了。
比如:jQuery mobile或Zepto。
使用jQuery mobile可以省略很多UI设计或者说重构的一些工作,在公司团队中,如果没有这方面的成员时,可以使用此库。但是此库性能不好,兼容性一般,UI限制大,请慎重使用。
使用Zepto开发,性能上最好的,而兼容性比较好,跟jQuery有同样的API,只是需要自己设计UI,以及重构。touch功能上有一定的兼容性问题。推荐使用此库,这样你可以任意发挥你的想法。
如果你的团队具有一定的框架基础,像模块化开发的代表requirejs和seajs,那么,完全可以把这个项目进行模块化开发,把这两个库的任意一个加入到项目中,将对你项目的协同开发,以后的代码维护都将有很好的贡献。这两个库的学习成本不大,很容易上手。
如果你的团队,个个都是高手了,那么就可以进行mvc模式的开发了。在你的项目中,加入backbone+underscore,这是目前为止,最简单的mvc模式的开发组合。但是大家都知道,使用backbone,你就必须按照backbone的模式来进行项目的开发,具有一定的限制。也就是说,开发和维护,都需要了解backbone这个框架。
如果你的团队,个个是大牛的话,那么就可以使用angularjs或react了。这种模式的开发,现阶段是前端开发的最新研究成果了。此种框架,学习成本大,但是代表着公司的实力和创新。
当然,除了以上这些基础库和基础框架,我们可能还需要添加一些第三方库,比如iscroll,此库兼容性好,唯一缺点就是在低端设备上,会卡,所以项目不能全局使用iscroll实现滚动效果。我们需要添加原生的scroll来实现项目中的滚动效果,如果使用原生scroll不能实现的,那么才使用iscroll来实现。
比如:faskClick,它解决点击事件延迟的bug,当然zepto的touch模块也可以解决。
比如:模板引擎,像underscore,handlerbars等。
比如:HTML5的application cache本地缓存机制。
移动开发总结:
(1)jQuery mobile或者Zepto+自己设计UI
(2)seajs或requirejs+Zepto
(3)seajs或requirejs+Zepto+Backbone+underscore
(4)angularjs或react
我个人希望能够使用第三种,然后项目成熟了,再使用第四种。毕竟新技术的实践,还是很有想象空间的。
当然,如果对技术不需要深入,只要实现功能,那么使用第二种我觉得还是不错的。 至于第一种,我个人觉得模块化开发还是非常必要的,之前在公司里面看之前的前端负责人开发的一套系统,代码写的太混乱了,简直看不得,维护起来非常不方便,所以模块化开发,我个人觉得,必须使用。
关于移动端的UI组件,我推荐腾讯的frontUI。百度的gmu很久没更新了,也没人维护了,而且耦合性比frontUI大,不推荐。
关于移动端的调试工具,我暂时只用过weinre。由于公司网络不行,我使用的是低版本的weinre,只支持safari调试,而且反应比较慢。但是,还是能够解决问题的,只是效率不高。网上有很多教程,百度一下就知道怎么用了。