网站首页 > 开源技术 正文
引言
最近几年混合开发越来越火,从PhoneGap到Cordova到Ionic,再到ReactNative,到Flutter。同时在搜索引擎中诸如
Ionic VS ReactNative
RN和Weex+Vue哪个好
该学RN还是学Flutter
这样的问题也越来越多,那到底这些混合开发技术真正的差异是什么?今天我们从他们是怎么个混合法(技术原理)来说说。
一、混合开发流派
H5加壳派: 以Ionic和Uni-App为代表,基于WebView(Android下是WebView,iOS下是WKWebView)控件加载H5页面,同时通过框架预先实现的一些能力,实现对设备摄像头、文件系统等设备能力的调用。
JS Run原生派:以RN和Weex为代表,使用JS进行编写,在运行时映射成原生控件运行。
自成一派:以Flutter为代表,这货直接自己弄了个引擎和运行时,自带体系(UI组件和渲染器),除了设备能力外UI方面全权Handle。
二、H5加壳
这类混合开发是最早出现的,早在2011年7月PhoneGap就发布了1.0版本,初步实现了一套代码两个平台的目的。
这类App实际上就是H5加了个壳,典型的代表有Ionic和Uni-app开发者通过使用Angular或者Vue等Web前端方式编写后运行在WebView中,由于WebView的许多限制,当这类App需要使用原生能力时就需要通过JsBridge来进行桥接,这个JsBridge就是框架提供的API和插件。
其运行机制简单示意图如下:
Web App运行机制示意
这类App通常性能较差,通常用于那些UI和业务都相对简单,并且对性能没有特别要求的App。虽然它性能较差但是确实快,只要你会前端你就能开发,所以在很多外包公司都有其一席之地,尤其是在2012年-2016年。
需要吐槽的是Ionic,升级是好事,咱能把版本兼容好好做做不?
三、JS Run原生派
这个流派以React Native和Weex为代表,RN是开山祖师。这类App在现在的手机上能应对觉大多数的业务和UI需求,性能也够,称得上是很不错的方案。
这类App使用JS编写代码,在编译和运行时候会直接把对应的UI映射成原生UI,所以最终运行在设备上的还是原生的页面。这要求程序员对对应平台的原生开发有一定基础,尤其是需要自己写自定义控件的时候。
其整个机制较为复杂,不展开讲。
四、自成一派
Flutter自成一派,实现了一个自绘引擎,使用Flutter自己的布局和绘制系统。Flutter在框架设计上借鉴了非常多的RN的思想。某种程度上可以理解为RN的升级版。
Flutter目前已经发布了正式版,且版本更新很快,但是目前github上的Issues还是非常感人
Flutter架构图如下:
最后:其实可以看出,随着时间的推移混合开发的方案越来越多,同时性能也越来越好,这本就是这个行业的趋势。也是你薪水上升的依据。
猜你喜欢
- 2024-10-07 国外最火的9款手机软件开发工具(国外最火的9款手机软件开发工具下载)
- 2024-10-07 兰州:app快速开发工具有哪些?开发应用程序时应注意什么
- 2024-10-07 程序员之间的鄙视链,笑死我了(程序员中的鄙视链)
- 2024-10-07 APP开发20个主流技术?(主流的app开发技术)
- 2024-06-28 ionic 平台
- 2024-06-28 干货|6招学会调用NFC的各个功能
- 2024-06-28 8款用于移动应用开发的测试工具 都试试吧
- 2024-06-28 jquery mobile + 百度地图 + phonegap 写的一个"校园助手"的app
- 2024-06-28 MyEclipse移动开发教程:迁移HTML5移动项目到PhoneGap(二)
- 2024-06-28 维基百科推出iOS原生应用,可实现应用内编辑
你 发表评论:
欢迎- 最近发表
-
- 后端服务太慢?试试这 7 招(后端 服务端 区别)
- 做一个适合二次开发的低代码平台,把程序员从curd中解脱出来-1
- Caffeine缓存 最快缓存 内存缓存(caffeine缓存使用)
- Java性能优化的10大策略(java性能调优从哪几个方面入手)
- New Balance M576PGT 全新配色设计
- x-cmd pkg | qrencode - 二维码生成工具
- 平和精英抽奖概率是多少 平和精英抽奖物品一览
- x-cmd pkg | tmux - 开源终端多路复用器(terminal multiplexer)
- 漫威官方App中文版上线:全站漫画限时免费
- macOS Monterey 12.7.4 (21H1123) 正式版发布,ISO、IPSW、PKG 下载
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)