【转】几款移动跨平台App开发框架比较
原文地址: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发布,需要将证书上传至服务器
使用案例:
我爱我家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
- 学习成本高
【转】几款移动跨平台App开发框架比较的更多相关文章
- 几款移动跨平台App开发框架比较
整理目前流行的跨平台WebApp开发技术的特点,仅供参考. 每个框架几乎都包含以下特性: 使用 HTML5 + CSS + JavaScript 开发 跨平台重用代码 丰富的UI库 提供访问设备原生A ...
- 十款APP开发框架
对于大部分Web开发人员,HTML.CSS和 Java是他们最熟练的开发技能.然而,开发一个原生的移动App,对他们来说却是完全陌生的领域.因为开发Android,iOS 或 Windows Phon ...
- Sublime插件库新成员基于APICloud快速开发跨平台App
互联网时代强调用户体验,那什么是HTML5跨平台App开发者的编程体验?“不剥夺.不替换开发者喜欢的开发工具,就是人性化的用户体验”,APICloud给出了这样的答案! 重磅发布“多开发工具支持策略” ...
- Reapp - 下一代的 Hybrid App 开发框架
Reapp 与 React Native 有着惊人的相似之处,二者都使用 React 来创建应用程序用户界面的框架.然而,在底层机制上这两个框架之间却具有明显的哲学差异.React Native 将 ...
- 用于HTML5移动开发的10大移动APP开发框架【转】
今天给大家介绍10款有关HTML5移动开发APP开发框架,这几款框架都是比较优秀的移动 Web 开发框架,能够帮助开发者更加高效的开发移动Web应用.. 十款移动APP开发框架: 1.jquery m ...
- 基于Html5的移动端APP开发框架
快速增长的APP应用软件市场,以及智能手机的普及,手机应用:Native(原生)APP快速占领了APP市场,成为了APP开发的主流,但其平台的不通用性,开发成本高,多版本开发等问题,一直困扰着专业AP ...
- 混合APP开发框架资料汇总
Ionic(ionicframework)一款接近原生的Html5移动App开发框架 会html css js就可以开发app,Ionic基于angualrjs框架是一个专注于开发移动wap以及app ...
- 几个移动web app开发框架
几个移动web app开发框架 一.总结 1.有amaze ui,有app.js(登录注册界面用到的) 二.几个移动web app开发框架 jQuery Mobile jQuery Mobile框架 ...
- 去它的h5,我还是用js写原生跨平台app吧
智能手机功能越来越强大,已经在逐渐替代电脑的作用.百度.腾讯.阿里的移动端日活数也在逐步的赶上甚至超越电脑端用户.叫喊着“mobile first”的公司越来越多,App开发者应运而生,且队伍日趋庞大 ...
随机推荐
- 神经病院Objective-C Runtime入院第一天——isa和Class
前言 我第一次开始重视Objective-C Runtime是从2014年11月1日,@唐巧老师在微博上发的一条微博开始. 这是sunnyxx在线下的一次分享会.会上还给了4道题目. 这4道题 ...
- 【剑指offer】数组中的逆序对。C++实现
原创文章,转载请注明出处! 博客文章索引地址 博客文章中代码的github地址 # 题目 # 思路 基于归并排序的思想统计逆序对:先把数组分割成子数组,再子数组合并的过程中统计逆序对的数目.统计逆序对 ...
- linux 文件上传&软件安装(rpm)
文件的上传与下载(linux -linux ) 实例1:从远处复制文件到本地目录命令:scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /o ...
- cocos2d-x 3.17 jsb android运行报错
编译成功,运行失败,提示如下: 2018-11-15 19:09:56.343 2820-2852/net.jd85.test D/cocos2d-x debug info: cocos2d: ful ...
- 流形-Manifold
流形,也就是 Manifold .不知道你有没有为我在本文开头放上的那个地球的图片感到困惑?这是因为球面是一个很典型的流形的例子,而地球就是一个很典型的“球面”啦(姑且当作球面好啦). 有时候经常会在 ...
- ExpressCache
ExpressCache 非联想.等品牌电脑使用的ExpressCache(带破解文件). (原始安装文件+patch+说明).注意,执行eccmd命令时,需要管理员权限.否则报错. http://a ...
- 进阶的Redis之数据持久化RDB与AOF
大家都知道,Redis之所以性能好,读写快,是因为Redis是一个内存数据库,它的操作都几乎基于内存.但是内存型数据库有一个很大的弊端,就是当数据库进程崩溃或系统重启的时候,如果内存数据不保存的话,里 ...
- js 时间date格式化
js中没有类似java中的DateFormat类来处理日期格式化,可以自己写一个: var newDate=new Date(); var year=newDate.getFullYear(); va ...
- [Luogu4715]「英语」Z 语言
luogu description 你有一个长度为\(n\)的串\(A\)和一个长度为\(m\)的串\(B\),字符集大小\(2^{31}\),且同一个串中没有相同的元素. 定义\(B\)串与\(A_ ...
- 【Netty】netty学习之nio了解
[一]五种IO模型: (1)阻塞IO(2)非阻塞IO(任务提交,工作线程处理,委托线程等待工作线程处理结果的同时,也可以做其他的事情)(3)IO复用模型.(委托线程接收多个任务,将任务提交给工作线程. ...