原文地址:https://www.cnblogs.com/songxingzheng/p/6482697.html

整理目前流行的跨平台WebApp开发技术的特点,仅供参考。

每个框架几乎都包含以下特性:

  • 使用 HTML5 + CSS + JavaScript 开发
  • 跨平台重用代码
  • 丰富的UI库
  • 提供访问设备原生API的 JavaScript API 包装器
  • 解决原生开发中机型适配的难题
  • 提供打包、部署的工具或服务
  • 都需要学习自身封装的 JavaScript API

筛选框架的要求:

  • 性能:运行速度快
  • UI:提供接近原生的UI体验
  • 插件多,文档丰富,开发效率高,容易扩展和维护
  • 满足业务需求

Cordova

Cordova 和 PhoneGap 的区别?
PhoneGap 是 Apache Cordova 的一个分发版,就像 Ubuntu 是 基于 Linux 的一个发行版,其代码库也基于 Cordova,只是 PhoneGap 关联了 Adobe 的一些额外的商业工具或服务,例如 PhoneGap Build 和 Adobe Shadow,来帮助开发者简化开发。
此外,两者提供的CLI工具、项目结构有差异,如:
Cordova 把 config.html 放在项目目录下,而 PhoneGap 把它放在www 目录下。

优点

  • 开源免费,社区生态成熟,插件丰富
  • 支持离线场景应用
  • 开发工具选择空间大

缺点:

  • 只提供基础访问设备的接口,需要自己搭配其他UI框架和JavaScript框架来搭配

UI框架

  • Framework7
  • MSUI | Github
  • Famous
    为任意屏幕创建流畅、复杂的UI。
    免费和开源的JavaScript渲染引擎。着名引擎的独特之处在于其JavaScript渲染引擎和3D物理引擎。
    官网 | Github | Hello World
    使用 Famo.us 创建高性能移动 UI

参考资料

Cordova中文文档
创建第一个App(英文)
利用 Cordova+Famous 创建高性能跨平台APP
使用 Cordova 和 Vue.js 创建移动应用

Ionic

官网地址:http://www.ionic.wang/ (有案例)
Ionic = Cordova + AngularJS + 一套样式库。

技术要求

  • HTML + CSS + AngularJS

优点

  • 基于 Cordova
  • 漂亮的界面,追求性能,专注原生,免费开源
  • Angular JS MVVM 开发理念,数据双向绑定
  • 继承自 Cordova,可以使用 Cordova 的插件

缺点

  • Angular JS 学习路线陡峭
  • Ionic 框架相比于原生的 Cordova 有所差异,Cordova 某些官方插件可能不适用于Ionic

AppCan

通过AppCan IDE集成开发系统、云端打包器等,快速开发出Android、iOS、WP平台上的移动应用。

有两种方式创建项目:IDE 和云端,并且IDE可以同步到云端。
免费用户有100M空间、50个应用的限制。

优点

  • 提供一体化解决方案,方便环境搭建、开发、调试、发布
  • 框架自带UI包,包含常用控件样式
  • 框架对UI、动画渲染进行过优化,反应速度快
  • 支持本地打包、云端打包
  • 基于密钥的代码加密

缺点

  • 不开源,无法修改、优化底层代码
  • 分大众版和企业版,大众版免费,但功能有缺失,详细见附录
  • 暂不支持自行开发控件/,无法调取android原生功能
  • 框架自带功能过多,导致应用安装包偏大。
  • 文档偏少
  • 部分系统无法使用IDE进行调试
  • 只能在服务器端发布,无法在本地发布
  • IOS发布,需要将证书上传至服务器

参考:
Phonegap VS AppCan

使用案例
我爱我家App 等

附录
企业版和大众版主要有以下几点区别:

  • 开发环境:
    企业版走独立的开发环境与打包环境,企业版配备macmini打包服务器,可以实现本地环境下创建项目,调试,打包;
    大众版不管是创建项目还是打包都需要依托于官方的服务器,需要在联网的情况下进行,打包需要将源码上传到官方服务器进行打包;
  • 版本控制:企业版独立控制引擎插件的版本;
    大众版官方统一维护,官方换哪个版本开发者就需要使用哪个版本,没有选择;
  • 协同开发:企业版可通过macmini后台分配开发者或者应用管理员帐号,可实现协同开发。
    大众版不能满足协同开发
  • 企业版有推送API接口
    大众版没有
  • 售后服务:企业版有独立的售后团队
    大众版的入口是论坛

Dcloud

特点:
云编译必须联网获取AppId

优点:

  • 国内厂商,中文文档
  • 对HTML5的性能、工具、能力都做了深入扩展,提供 IDE 、云服务等帮助节省时间
  • MUI 更贴近国内App使用习惯,提供模块的详细例子,如登录,个人中心

缺点:

  • 部分操作需要具备原生开发经验,如离线打包App
  • 新产品仍然有bug,还需改进

学习路线:

APICloud

优点:

  • 不懂原生开发,不懂后台语言就可完成APP

缺点:

  • 更新速度快,版本不够稳定
  • 面向不懂App开发人群,不适合程序员和科技公司,过度依赖会降低技术水平
  • 涉嫌抄袭DCloud大量代码

React Native

能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。
仅需学习一次,编写任何平台。(Learn once, write anywhere)

缺点:

  • 初次学习成本高
  • 必须在不同平台下写两套代码,依赖暴露的接口

总结

经过一番对比,感觉 Cordova 和 DCloud 更适合本次项目。

原因:
Cordova

  • 生态成熟,有更多可搭配工具使用,开源代码可自由定制;
  • 前端框架: famous 或 Framework7

DCloud

  • 国产中的开源,免费,性能不错
  • 提供云服务帮助打包和部署、测试,降低一部分门槛,减少时间;
  • 前端框架:MUI

其他框架不适合的原因
APICloud

  • 生态不好,名声不好,面向群体不适合;

AppCan

  • 闭源,商业化产品,免费版限制太多;

Ionic

  • AngularJS 学习曲线陡峭,需要时间;

React Native

  • 学习成本高

转载于:https://www.cnblogs.com/cheng2015/p/8458021.html

【转】几款移动跨平台App开发框架比较相关推荐

  1. V-Play 跨平台Game、App开发框架

    V-Play是构建于Qt商业版本之上的跨平台开发框架,它将许多实用的第三方库.开源项目和常用功能集成进来,极大的提高了开发者的工作效率. 这是V-Play的标语: 首先,对于V-Play的2D Gam ...

  2. 混合APP开发框架资料汇总

    Ionic(ionicframework)一款接近原生的Html5移动App开发框架 会html css js就可以开发app,Ionic基于angualrjs框架是一个专注于开发移动wap以及app ...

  3. Reapp - 下一代的 Hybrid App 开发框架

    Reapp 与 React Native 有着惊人的相似之处,二者都使用 React 来创建应用程序用户界面的框架.然而,在底层机制上这两个框架之间却具有明显的哲学差异.React Native 将 ...

  4. wex5 转换 html5,WeX5开发工具(html5 app开发框架)V3.9 开源版

    WeX5开发工具(html5 app开发框架)是一套免费开源的wex5应用快速开发框架平台.非常不错的html5开发工具,用来开发安卓.苹果.web.微信服务号等等,采用Apache源码,所有的代码都 ...

  5. 小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)...

    之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书,深受移动开发入门人员的喜爱. 从现在开始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望曾经是小白 ...

  6. 小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载四(场景切换)...

    作为一款真正有使用价值的应用,首先应该至少有两个页面,通过页面的切换来实现更多的交互.比如手机人人网,打开以后先是进入登录页面,登录后会有新鲜事,然后拉开左边的面板,能看到相册.悄悄话.应用之类的其他 ...

  7. 通过Intel XDK编写跨平台app(二)

    通过Intel XDK编写跨平台app(一) 通过Intel XDK编写跨平台app(二) 在这个系列的上一篇文章中,我们大致了解了Interl XDK的概况.在这一部分中,我们会详细地介绍如何通过这 ...

  8. 谷歌开源的跨平台UI开发框架Flutter

    谷歌开源的跨平台UI开发框架Flutter Flutter是Google一个新的用于构建跨平台的手机App的SDK.写一份代码,在Android 和iOS平台上都可以运行.与React Native. ...

  9. LibGDX_1.1: LibGDX 跨平台游戏开发框架简介

    本文链接: http://blog.csdn.net/xietansheng/article/details/50185793 LibGDX 基础教程(总目录) 1. LibGDX简介 LibGDX ...

最新文章

  1. Linux中将pip 源切换至国内镜像~亲测可用
  2. 大剑无锋之Kafka的Patition的作用【面试推荐】
  3. 返回一个循环整数组最大子数组和
  4. JS 中的事件冒泡与捕获
  5. Eclipse中文显示乱码问题
  6. 【实践】多业务建模在美团搜索排序中的实践
  7. Vue遍历对象,数组,v-if、v-if-else、v-else
  8. VBA Mysql 类
  9. 单链表以及双向链表的操作
  10. spring5.0学习笔记4
  11. android内存泄露_Java应用程序中的内存泄漏及内存管理
  12. 2017年IT类公司世界500强企业及其简评
  13. intel服务器无线网卡,英特尔网卡: Intel无线网卡Win7驱动 12.4.1.53版发布
  14. vim:the damn garbled of vim-devicons from nerdtree
  15. 向量与矩阵的简单运算
  16. 如何做一份淹没的水深分布图
  17. fastText训练集对比,分词与句子
  18. 国产浏览器 html5,老外评测国产浏览器 HTML5性能不俗
  19. nginx报错:src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fa
  20. 计算机大数据的前景方向_未来计算机大数据的发展方向

热门文章

  1. MediaMuxer的使用
  2. python 进行一元线性回归并输出相关结果_荐一元线性回归利用最小二乘法求解原理代码及案例...
  3. 2020年最好用的手机是哪一款_2020年换手机不用盲目,目前这4部最值得买,好看好用性价比高...
  4. jQuery 学习-样式篇(二):jQuery 对象与原生 DOM 对象
  5. 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
  6. mysql装完是什么样儿的_Win7系统安装MySQL之后找不到指定文件与服务如何解决?...
  7. NYOJ277 - 车牌号
  8. 路由器Lan、Wan短接问题
  9. 计算机信息学中比较大小的代码,信息学奥赛计算机基础知识.doc
  10. 创新创业名词解释_(完整word版)“大众创业万众创新”相关名词解释总汇