用友开发者中心

几大主流跨平台移动App开发框架对比

现在整理一下目前流行的跨平台移动App开发技术的特点,并将几个不同的开发平台框架进行比较说明,仅供大家参考。

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

使用 HTML5 + CSS + JavaScript 开发

跨平台重用代码

丰富的UI库

提供访问设备原生API的 JavaScript API 包装器

解决原生开发中机型适配的难题

提供打包、部署的工具或服务

都需要学习自身封装的 JavaScript API

我们作为开发者筛选框架的要求:

性能:运行速度快

UI:提供接近原生的UI体验

插件多,文档丰富,开发效率高,容易扩展和维护

满足业务需求

几个开发框架的比较

PhoneGap

PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台。它使开发者能够在网页中调用IOS,Android,Palm,Symbian,WP7,WP8,Bada和Blackberry等智能手机的核心功能——包括地理定位,加速器,联系人,声音和振动等,此外PhoneGap拥有丰富的插件,可以调用。业界很多主流的移动开发框架均源于PhoneGap。较著名的有Worklight、appMobi、WeX5等;其中WeX5为国内打造,完全Apache开源,在融合Phonegap的基础上,做了深度优化,具备接近Native app的性能,同时开发便捷性也较好。

优点

支持8个移动应用开发平台(Android,iOS,Windows,BlackBerry,Symbian,Bada,WebOS和Tizen)

可以利用传统的web开发技术(如HTML、CSS、 JavaScript )开发用户接口,利用PhoneGap容器把它们部署到不同的应用环境和设备上

此外,它允许您访问本机API,以便APP可以充分利用设备提供的各种功能

完全做到了written once,run everywhere;代码编写完之后,通过phonegap的build工具构建

采用w3c标准,包括但不限于HTML5、CSS3、JavaScript,比如说W3C标准中的命名方式等

不需要手机编程基础,只要会HTML就能做应用,且能通过js调用设备底层硬件(比如加速计、摄像头、罗盘、通讯录、文档、GPS、媒体、网络、通知(警告、声音和振动)、存储、传感器等等)

Cordova

Cordova 和 PhoneGap 的区别?

PhoneGap 是 Apache Cordova 的一个分发版,就像 Ubuntu 是基于 Linux 的一个发行版,其代码库也基于 Cordova,只是 PhoneGap 关联了 Adobe 的一些额外的商业工具或服务,例如 PhoneGap Build 和 Adobe Shadow,来帮助开发者简化开发。

此外,两者提供的CLI工具、项目结构有差异,如:Cordova 把 config.html 放在项目目录下,而 PhoneGap 把它放在www 目录下。

优点

开源免费,社区生态成熟,插件丰富

支持离线场景应用

开发工具选择空间大

缺点

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

Ionic

ionic是一个强大的混合式/hybrid HTML5移动开发框架,特点是使用标准的HTML、CSS和JavaScript,开发跨平台的应用,官网地址:http://www.ionic.wang/ (有详细介绍),对其更为清晰的说明可以表述为:Ionic = Cordova + AngularJS + 一套样式库。

技术要求

HTML + CSS + AngularJS

优点

基于 Cordova

漂亮的界面,追求性能,专注原生,免费开源

Angular JS MVVM 开发理念,数据双向绑定

继承自 Cordova,可以使用 Cordova 的插件

缺点

Angular JS 学习路线陡峭

Ionic 框架相比于原生的 Cordova 有所差异,Cordova 某些官方插件可能不适用于Ionic

AppCan

基于业内领先的 Hybrid App 开发引擎,采用 HTML5 标准作为开发语言,一次开发,多平台适配。 提供团队管理、开发流程管理、配置管理、版本管理、测试管理等功能,有效、有序的控制开发过程,提升开发效率。通过AppCan IDE集成开发系统、云端打包器等,快速开发出Android、iOS、WP平台上的移动应用。

有两种方式创建项目:IDE 和云端,并且IDE可以同步到云端。

免费用户有100M空间、50个应用的限制。

优点

提供一体化解决方案,方便环境搭建、开发、调试、发布

框架自带UI包,包含常用控件样式

框架对UI、动画渲染进行过优化,反应速度快

支持本地打包、云端打包

基于密钥的代码加密

缺点

不开源,无法修改、优化底层代码

分大众版和企业版,大众版免费,但功能有缺失

暂不支持自行开发控件,无法调取android原生功能

框架自带功能过多,导致应用安装包偏大

文档偏少

部分系统无法使用IDE进行调试

只能在服务器端发布,无法在本地发布

IOS发布,需要将证书上传至服务器

Phonegap VS AppCan

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

开发环境:

企业版走独立的开发环境与打包环境,企业版配备macmini打包服务器,可以实现本地环境下创建项目,调试,打包;

大众版不管是创建项目还是打包都需要依托于官方的服务器,需要在联网的情况下进行,打包需要将源码上传到官方服务器进行打包;

版本控制:企业版独立控制引擎插件的版本;

大众版官方统一维护,官方换哪个版本开发者就需要使用哪个版本,没有选择;

协同开发:企业版可通过macmini后台分配开发者或者应用管理员帐号,可实现协同开发。

大众版不能满足协同开发

企业版有推送API接口

大众版没有

售后服务:企业版有独立的售后团队

大众版的入口是论坛

React Native

React Native产出的并不是“网页应用”, 或者说“HTML5应用”,又或者“混合应用”。 最终产品是一个真正的移动应用,从使用感受上和用Objective-C或Java编写的应用相比几乎是无法区分的。 React Native所使用的基础UI组件和原生应用完全一致。 你要做的就是把这些基础组件使用JavaScript和React的方式组合起来。能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。仅需学习一次,编写任何平台。(Learn once, write anywhere)

优点

能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP

仅需学习一次,编写任何平台。(Learn once, write anywhere)

虽然不能做到一次编码到处运行,但是基本上即使是两套代码, 也是相同的jsx语法, 使用js进行开发。用户体验高于html, 开发效率较高

Flexbox布局据说比native的自适应布局更加简单高效

可实现在线更新,允许运行于JavaSriptCore的动态加载代码,更贴近于原生开发

使 App 可以达到每秒 60 帧(足够流畅),并且能有类似原生 App 的外观和手感

如果你只想给现有的原生应用中添加一两个视图或是业务流程,React Native 也同样不在话下

缺点

初次学习成本高

必须在不同平台下写两套代码,依赖暴露的接口

当官方封装的控件、API无法满足需求时就必然需要懂一些native的东西去扩展,扩展性仍然远远不如web,也远远不如直接写Native Code

YonBuilder移动开发平台

YonBuilder移动开发平台将需求分析、产品原型、UI设计、前端开发、后端开发紧密衔接,并基于行业大数据对前置环节进行复用,最终缩减大量重复性工作,有效提升30%-60% IT项目效率。

优点

原生开发,无需编程

多种功能插件,随机配置

自助上架,原生插件任选

网站在线封装app,极速生成手机app

可视化界面在线配置

智能化引擎打包

完美适配HTML5

提供全翻译式原生渲染引擎、1000+功能模块&20000+API调用。

Deep Engine 3.0 跨平台APP引擎,只需Html5技术,一次开发即可生成Android、iOS、小程序、H5等多端应用。

2023-08-14 14:33:26