前端移动库方案知识整理

问题整理

  • web app or Hrbird apphtml

    • web app 能够直接在手机浏览器访问,完成整个流程,涉及的技术有响应式设计和渐性加强, 以angularjs为表明。
    • Hrbird app 须要借助中间件,例如 phonegap 或者 appcan 完成打包,生成apk程序。
  • phonegap vs appcan前端

Phonegap
优势
  • 支持大部分系统:Android,IOS ,Symbian, Windows Phone, Palm WebOS,
  • Bada , Symbian
  • 开源,能够进行框架底层优化
  • 框架提供自定义控件,能够调用android原生功能
  • 第三方插件丰富
  • 安装包体积偏小
  • 文档丰富
  • 可在本地调试、发布
  • 支持本地打包、云端打包
缺点
  • 不一样平台须要搭建不一样开发环境
  • 框架没有UI,须要使用第三方UI插件
  • 框架仅提供基本API,扩展功能须要使用第三方插件
  • 框架不支持自动加密,须要手动对HTML加密
  • 框架未对UI进行优化,应用加载及UI相应时较慢
  • 因为第三方开发人员水平不一样,插件质量良莠不齐
AppCan
优势
  • 支持四大主流系统:Android,IOS,Symbian,Windows Phone
  • 提供一体化解决方案,方便环境搭建、开发、调试、发布
  • 框架自带UI包,包含经常使用控件样式
  • 框架API丰富
  • 支持本地打包、云端打包
  • 基于密钥的代码加密
  • 技术支持相应及时
  • 框架对UI、动画渲染进行过优化,反应速度快
缺点
  • 不开源,没法修改、优化底层代码
  • 暂不支持自行开发控件/,没法调取android原生功能
  • 框架自带功能过多,致使应用安装包偏大。
  • 文档偏少
  • 部分系统没法使用IDE进行调试
  • 只能在服务器端发布,没法在本地发布
  • IOS发布,须要将证书上传至服务器
Angularjs 优势:
  • 双向数据绑定
  • 模板
  • MVC
  • 依赖注入
  • 指令
  • 更方便测试
Angular的缺点其实很少.
  • angular 入门很容易 但深刻后概念不少, 学习中较难理解.
  • 文档例子很是少, 官方的文档基本只写了api, 一个例子都没有, 不少时候具体怎么用都是google来的, 或直接问misko,angular的做者.
  • 对IE6/7 兼容不算特别好, 就是能够用jQuery本身手写代码解决一些.
  • 指令的应用的最佳实践教程少, angular其实很灵活, 若是不看一些做者的使用原则,很容易写出 四不像的代码, 例如js中仍是像jQuery的思想有不少dom操做.
  • DI 依赖注入 若是代码压缩须要显示声明.

前端考虑方案

  • appcan 只做为打包工具,咱们不须要使用他的UI。
  • 使用angularjs,业界公认的最好的移动 web app 框架。
  • bootstarp - 响应式设计

关于选择: angular.js VS backbone, 我把整理的一些信息share出来: emberjs, angular, knockout 都算比backbone新出现的MVVM, backbone算MVC. 找到的比较Angular的一些文章: http://955.cc/m2qr 比較Backbone.js, Angular.js, Ember.js, Knockout.js 心得 http://955.cc/mGjX 如今就开始使用AngularJS的三个重要缘由 有人说, 用angularjs代替backbone代码减小一半, 也看到一些作手机web的由backbone转到了angularjs. github上面angular的fork目前也已经超过了backbone, 因此大概能够估计angularjs应该会比backbone更优秀.jquery

关于选择: jQuery Mobile VS zepto VS Sencha Touch jQuery Mobile 强大之处就在于其UI, 这一部分偏偏不是咱们所须要的, 性能也不算好. Sencha Touch 只支持webkit, 因此适用性不强 用户群很少, 第三方支持太少, 对于不熟悉 ExtJs 的人来讲有必定的学习成本, 遇到紧急bug很差修改底层. zepto 纯JS代码比jQuery小不少, 兼容JQ语法, 主要针对手机端, 基本能够从jQuery平滑过分.android

关于选择: seajs VS requirejs seajs的文档很模糊, 每次升级变更蛮大, 不向下兼容, 用户群体不够多, 须要server是nginx, 打包须要他们本身的一套工具并且文档很混乱. requirejs 用户群体/成功案例比较多, 听说有重复引用的问题. 相对在正式环境, requirejs应该是更佳的选择.nginx

dot.js 和 iScroll.js 就不须要和同类对比了, dot.js是目前最快的模板引擎, 其余公司出品的好比twitter的hogan或者百度/淘宝等等出品的, 按性能都没有超越DOT. iScroll.js 专门处理手机端的滚动, 应该没有相似的能够替代的了.git

综上, 听说angularjs能够完成绝大部分之前jquery完成的工做, 而也有本身的模版引擎语法. 因此, 使用angularjs后, zepto.js和dot.js这两个可能也能够省掉. 使用angularjs后, 是否须要requirejs也有待讨论. angularjs资料: http://angularjs.cn/A003 angular 对开发人员要求很高,它能够写出漂亮的难以置信代码 让码农又更多时间思考。代码的结构,程序的逻辑,页面的展现,而不是作苦力。angularjs

调试工具 : AngularJS Batarang chrome 插件。github

相关资料

最佳实践web

angular-uichrome

phonegap vs appcan

appcan

http://zouyesheng.com/angular.html

think in AngularJs 改变思惟习惯

相关文章
相关标签/搜索