跨平台应用开发框架是开发人员可以使用一套相同的代码,一次性地编码便可在多个端侧平台上运行(如:小程序、浏览器、iOS、Andriod、MacOS、Linux、麒麟、UOS.....)。它最大的作用是极大降低了开发人员的开发周期,进而实现快速交付。
跨平台应用程序开发框架的好处:一套代码适用多个设备、多个平台、多个应用商店中发布、快速成型、快速开发、无缝产品维护。
现在整理一下目前流行的跨平台移动App开发技术的特点,并将几个不同的开发平台框架进行比较说明,仅供大家参考。
每个开发框架几乎都包含以下特性:
使用 HTML5 + CSS + JavaScript 开发
跨平台重用代码
丰富的UI库
提供访问设备原生API的 JavaScript API 包装器
解决原生开发中机型适配的难题
提供打包、部署的工具或服务
都需要学习自身封装的 JavaScript API
我们作为开发者筛选框架的要求:
性能:运行速度快
UI:提供接近原生的UI体验
插件多,文档丰富,开发效率高,容易扩展和维护
满足业务需求
Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter的快速开发,富有表现力的精美UI和类似本机的性能吸引了一大群使用者。使用Flutter的一些典型公司包括:Google,eBay,宝马等。他们选择Flutter的主要原因:
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 和 PhoneGap 的区别?
PhoneGap 是 Apache Cordova 的一个分发版,就像 Ubuntu 是基于 Linux 的一个发行版,其代码库也基于 Cordova,只是 PhoneGap 关联了 Adobe 的一些额外的商业工具或服务,例如 PhoneGap Build 和 Adobe Shadow,来帮助开发者简化开发。
此外,两者提供的CLI工具、项目结构有差异,如:Cordova 把 config.html 放在项目目录下,而 PhoneGap 把它放在www 目录下。
优点
开源免费,社区生态成熟,插件丰富
支持离线场景应用
开发工具选择空间大
缺点
只提供基础访问设备的接口,需要自己搭配其他UI框架和JavaScript框架来搭配
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
基于业内领先的 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产出的并不是“网页应用”, 或者说“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 Mobile,简称YM)为移动应用开发提供了专业的低代码开发模式,采用自主研发的跨端引擎技术,前端使用H5和JavaScript作为开发语言,统一端API标准,通过模块化组装,一次开发实现跨平台IOS、Android、H5和小程序的移动应用开发,同时支持从开发、调试、发布、管理到运营的全生命周期管理。
YonBuilder移动开发平台将前端的跨平台技术和后端数据模型采用松耦合的方式连接,可集成企业级后端业务API,一套代码同时生成iOS、Android、小程序等多端应用,并具备高性能原生体验,并通过强扩展能力输出成熟的行业解决方案,以平台化、标准化的产品形态满足企业级商业应用的复杂需求。
优点
原生开发,无需编程
多种功能插件,随机配置
自助上架,原生插件任选
网站在线封装app,极速生成手机app
可视化界面在线配置
智能化引擎打包
完美适配HTML5
AVM跨端框架 一次编码开发多端应用
使用AVM,一个技术栈搞定APP、小程序、H5多端开发!
提供全翻译式原生渲染引擎、1000+功能模块&20000+API调用。
Deep Engine 3.0 跨平台APP引擎,只需Html5技术,一次开发即可生成Android&iOS两个平台的原生应用。