zoukankan      html  css  js  c++  java
  • 前端移动库方案知识整理

    问题整理

    • web app or Hrbird app

      • 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 Mobile VS zepto VS Sencha Touch jQuery Mobile 强大之处就在于其UI, 这一部分恰恰不是我们所需要的, 性能也不算好. Sencha Touch 只支持webkit, 所以适用性不强 用户群不多, 第三方支持太少, 对于不熟悉 ExtJs 的人来说有一定的学习成本, 遇到紧急bug不好修改底层. zepto 纯JS代码比jQuery小很多, 兼容JQ语法, 主要针对手机端, 基本可以从jQuery平滑过度.

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

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

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

    调试工具 : AngularJS Batarang chrome 插件。

    相关资料

    最佳实践

    angular-ui

    phonegap vs appcan

    appcan

    http://zouyesheng.com/angular.html

    think in AngularJs 改变思维习惯

  • 相关阅读:
    Oracle数据库配置
    匹配汉字与全角半角括号
    Linux任务调度crontab时间规则介绍
    配置文件方面的总结
    openlayers 4快速渲染管网模型数据
    openlayers 各种图层,持续更新
    简单的js定时器
    mysql client does not support authentication
    java 记录
    创建maven工程
  • 原文地址:https://www.cnblogs.com/ms_config/p/3429612.html
Copyright © 2011-2022 走看看