美文网首页iOS开发
移动端跨平台框架对比

移动端跨平台框架对比

作者: 白板时钟 | 来源:发表于2020-06-27 23:23 被阅读0次

要了解移动端跨平台框架,我们还是先要问下,什么是跨平台。

最常见的定义是:跨平台就是开发就是一套代码写完以后可以多端发布运行到各个平台,比如:iOS、安卓、web。

而wiki上,是这么定义的。

In computing, cross-platform software (also multi-platform software or platform-independent software) is computer software that is implemented on multiple computing platforms.

按照跨平台实现的方式可以分为两类:

  • 一类是需要为每一个平台进行单独的构建或者编译
  • 另一类,是可以直接在多个平台运行

移动端跨平台框架

对于移动端,常见跨平台框架如下表所示。其中React Native就是需要对IOS和Andriod平台分别编译。


近年移动端跨平台框架热度分布,如图所示。图片引用自Cross-platform mobile framworks used by developers worldwide 2019 and 2020

常见移动端跨平台框架对比

发现React native,Flutter, Cordova较为流行。我们也这三个框架进行对比。

对比维度 Apache Cordova Ract Native Flutter
背后支持 apple facebook google
开发语言 使用标准的html语言开发(HTML5, JavaScript and CSS3.),运行在特定平台的native wrappers上。 采用JS语言开发,基于React Dart语言开发,Flutter runs in the Dart virtual machine, which features a just-in-time (JIT) execution engine.
支持平台 (依赖web view component的多平台支持)

mobile – Android, iOS, Windows Phone;

desktop – OS X, and Electron (which can be run on Windows, Linux, and OS X).

但也导致跨平台或者跨设备的issue,需要特殊处理
Android and iOS iOS and Android, web (beta), and desktop (technical preview)
学习门槛 low entry threshold

(仅需要html,css,js知识)
基于React,对前端工程师更友好,学习曲线低 “everything is a widget” 的理念与react.js和component-based JS frameworks相似,对于熟悉这类开发工作的程序员有较浅的学习曲线

Dart需要重新学习,但是与typescript类似
UI design 支持UI custom design RN可以利用原生已有的优秀UI

RN控件转换为对应平台原生控件的过程,IOS和Android存在一定的差异
UI在IOS和Android基本一致。支持Material, Cupertino or fully custom design.

但是Material, Cupertino UI的细节调整,较难实现
组件 大多数能够找到,少部分需要原生定制开发 大多数能够找到,customized widgets需要自己实现,可以使用Dart开发或者在原有widgets上开发
performance and responsiveness heavily loaded interfaces can lead to performance bottlenecks 有效率问题,RN的渲染机制是基于前端框架的考虑,复杂的UI渲染是需要依赖多个view叠加 使用高性能渲染引擎来绘 制 widget,有更好的可控性,native-like performance
与原生服务通信方式 在JavaScriptCore(js虚拟机)基础上,封装各平台的应用层接口,定义了 Javascript 和封装后的接口之间的通信协议。以RN的桥接方式和原生服务通信 Flutter在跟系统service通信时,通过 Skia 和各平台的底层图形库对接,同时提供丰富的基于 Skia 的控件,来实现跨平台的开发。
安装包 iOS空项目 3M左右,Android20M左右 iOS空项目 30M左右,Android空项目 7M左右
启动速度 与原生相差无几 较慢
是否支持热更新 支持 不支持
是否支持混编 支持 支持

相关文章

  • 跨平台,混合开发

    参考: 混合开发 框架对比从事编程那些年经历的跨平台开发工具框架演变历史跨平台框架的发展历史移动端跨平台开发框架对比分析

  • 移动端跨平台框架对比

    要了解移动端跨平台框架,我们还是先要问下,什么是跨平台。 最常见的定义是:跨平台就是开发就是一套代码写完以后可以多...

  • 移动端跨平台开发框架对比分析

    前言 现在主流的移动开发平台是Android和iOS,每个平台的开发技术和运行方式都不一样,大家都是针对每个平台开...

  • 移动端开发 对比 跨平台开发框架分析

    移动开发对比跨平台的优缺点分析 :Cordova React Native Flutter 前言 现在主流的移动开...

  • Uber RIBs框架源码分析

    Uber最近开源了他们的移动端框架RIBs,RIBs是一个跨平台框架,支持着很多Uber的移动应用。RIBs这个名...

  • 2019-05-06

    技术工具: 移动端:Flutter 是 Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发...

  • 基于Xamarin.Forms APP框架搭建

      现在的移动端跨平台开发框架五花八门,比如:Ionic、React Native、Cordova......,而...

  • 快速学习RN之环境搭建和跑demo(一)

    RN即React Native 基于React框架针对移动端的跨平台框架,在学习RN前建议最好熟悉下html,cs...

  • Ionic 部署

    Ionic 是一款开源的Html5移动App开发框架,是AngularJs移动端解决方案,Ionic以流行的跨平台...

  • flutter学习一:flutter简介

    1. 简介 flutter是谷歌在2017年推出的移动端跨平台,高性能移动应用框架。其是通过dart语言进行开发。...

网友评论

    本文标题:移动端跨平台框架对比

    本文链接:https://www.haomeiwen.com/subject/fddbfktx.html