几种常用到的 Hybrid App 技术框架
移动操作系统在经历了诸神混战之后,BlackBerry OS、Symbian OS、Windows Phone 等早期的移动操作系统逐渐因失去竞争力而退出。目前,市场上主要只剩下安卓和 iOS 两大阵营,使得 iOS 和安卓工程师成为抢手资源。然而,由于两者系统的差异,开发同一个应用需投入两倍的工作量,不仅增加了人力成本,而且由于不同团队的开发,细节实现和应用一致性也面临问题。
因此,迫切需要一种能够一次开发,可以在两个平台上运行的技术方案。作为一种既能够在原生应用程序环境中运行,也能够在 Web 浏览器中运行的应用程序,Hybrid App 应需而生。今天给大家介绍 5 种主流的 hybrid 款架给大家作为参考。

先简单说说主流的 hybrid app 框架有以下几个:
React Native:由 Facebook 开发,使用 JavaScript 和 React 来构建原生移动应用程序。它允许开发人员使用相同的代码库来开发 iOS 和 Android 应用,同时提供接近原生性能的体验。
Flutter:由 Google 开发,使用 Dart 语言。Flutter 使用自己的渲染引擎,可以创建高性能、美观且具有自然动画的跨平台应用程序。

Ionic:基于 Web 技术(HTML、CSS 和 JavaScript),使用 Angular 框架。Ionic 提供了一组 UI 组件和工具,使开发人员能够构建跨平台移动应用程序。
Xamarin:由 Microsoft 推出,使用 C#语言。Xamarin 允许开发人员使用共享的 C#代码库来开发 iOS 和 Android 应用,并且提供与原生应用相似的性能。
PhoneGap/Cordova:由 Adobe 赞助的 Apache 项目,使用 HTML、CSS 和 JavaScript。PhoneGap 是 Cordova 的商业版本,这两个框架都使用 Web 技术来构建跨平台应用程序,并通过 WebView 将 Web 应用程序封装为原生应用。
FinClip:最后介绍由国内技术团队开发,主要提供小程序容器技术以及配套的小程序应用管理平台,APP 嵌入该组件可获得小程序运行和上架管理能力,也是目前为数不多可以商用的小程序容器,用来实现 Hybrid+小程序的开发方案。
各种框架各有优缺点,适用的方案也是不同的。下面就分别介绍一下 5 种主流的 Hybrid 方案:
原生 + webview 方案
这是最常见的 Hybrid 方案之一。应用的主要框架由原生代码构建,同时在应用的某些部分内嵌入 WebView 组件,用于显示 Web 页面或加载 Web 应用。Web 页面通过 WebView 运行,并可以与原生代码进行通信。这样,开发人员可以使用 Web 技术(如 HTML、CSS、JavaScript)来构建应用的一部分,同时利用原生代码处理应用的核心功能和性能要求。
但 webview 也有其缺点,web 应用的体验无法达到原生应用的体验。但其开发效率高,被很多 app 所使用,做一些非核心业务的页面。
纯 webview 方案
在这种方案中,应用几乎完全由 Web 技术构建,没有太多的原生代码。整个应用基本上是一个嵌入在 WebView 中的 Web 应用。这种方案的优势在于可以使用 Web 技术快速开发跨平台应用,但缺点是可能受限于 WebView 的性能和功能,无法完全发挥原生应用的优势。
常见的框架比如最早的 phonegap,以 web 开发为主,并通过原生插件来提供原生功能,像摄像头、通讯录、地理定位、存储等功能。现在常用的有 ionic 框架,支持 angular、react、vue 框架进行开发。
原生+小程序方案
小程序方案应该是微信最早发布的,并且大规模使用的。这个方案结合了原生应用和小程序(微信小程序、支付宝小程序等)。小程序是一种基于 Web 技术的轻量级应用,可以在特定的平台上运行。在原生应用中,可以嵌入小程序的界面,并通过通信桥接实现原生和小程序之间的交互。这使得开发人员可以充分利用小程序的开发速度和原生应用的功能和性能。
随着微信小程序方案的逐渐成熟,目前国内大厂的 app 也都在应用这个方案:支付宝小程序、百度小程序、头条小程序等等。但目前大厂的小程序容器都是自研的,并没有开放给外部去使用。
web 技术 转换原生组件
在这种方案中,开发人员使用 Web 技术(如 React Native、NativeScript)来构建原生组件,这些组件可以在原生应用中使用。这样,开发人员可以利用熟悉的 Web 技术构建界面和某些功能,然后将其转换为原生组件,以实现更好的性能和体验。
react native 可以和原生应用进行混合开发,也可以只采用 react native 进行开发。现在很多的 app 也都会采用 rn 混合这种方案,只有少量的 webview 页面。
Flutter 自绘引擎
react native 也并不是完美的解决方案,由于其为使用 js 编写 ui 界面,在渲染的时候进行将 js 转换为原生的 ui,所以进行复杂计算面,大数据量,或者动画时,就会产生一定的性能问题,增加应用的耗电量或页面卡顿等问题。
而 flutter 的出现颠覆了这一切,它并没有采用 js 转原生组件的方式,而是使用 google 的 dart 语言和自带的 skia 渲染引擎来开发 ui 界面。这就相当于他开发一个浏览器,并且还规定了开发 ui 组件的语言(dart)和 api,全部都是自己的,所以高性能成为了其最大的优势,完全可以和原生开发体验相差无几。
flutter 最开始时只支持 Android 和 iOS 两个平台,现在不仅增加了 web 平台,桌面端 Windows、macOS 和 Linux 应用程序,还有智能设备、可穿戴设备和车载设备等嵌入式应用。颇有有一统天下的格局,这种产品恐怕也只有 Google 能够做出来。
几种常用到的 Hybrid App 技术框架的更多相关文章
- App技术框架
一.App技术框架的类型 图1 三种App技术框架之间的关系 目前App的技术框架基本分为三种(图1): (1)Native App:互动型,iOS.Android.WP各一套,而且要维护历史版本,要 ...
- 你得知道这3个最基础的APP技术框架
出处:优设网作者:信籽链接:http://www.uisdc.com/3-basic-app-technical-framework 信籽(手淘设计师):不知道大家有没有遇到过这种情景,当你做好一个设 ...
- Hybrid App技术解析 — 原理篇
Hybrid App技术解析 — 原理篇 原文出处: https://segmentfault.com/a/1190000015678155 引言 随着 Web 技术和移动设备的快速发展,Hybr ...
- Hybrid App技术批量制作APP应用与跨平台解决方案
前言 简单的聊一聊我开发了4年之久的Hybrid App(混合模式移动应用)平台开发,目前一直在持续开发与维护,支持无编程快速开发! 其本意也不是要吹捧前端有多么强大,只是用自己的实际项目阐述下对于前 ...
- 【Hybrid App】关于Hybrid App技术解决方案的选择
[引言]近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家都会考虑到的成本,团队成员,技术成熟度,时间,项目需求等一堆的因素.因此,开发App的方案已经变得越来越多 ...
- 【转载】用Ionic开发hybrid APP
使用phonegap开发APP的优劣在此不必细说,快速,简单,跨平台,以及随着iOS,Android本身对webview优化所带来的不错的性能,便是其独有的优势.而且私以为在目前激烈而又变化快速的移动 ...
- hybrid app
hybrid app Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台 ...
- Hybrid App是如何实现网页语言与程序语言的混合?谁占主体?
[编者按]本文作者@徐珂铭,一位看好Html5的移动互联网的从业人士.喜爱玩技术,会点JAVA.HTML及CSS,有自己的想法及姑且能表达想法的文字,因此有了自己的文章. 基于HTML5的Web Ap ...
- Hybrid app本地开发如何调用JSBridge
前天同事问我公司内部的小程序怎么对接的,我回忆了一下,简单记录了一下前端同学需要注意的点. 背后还有小程序架构.网络策略等等.当时恰逢小程序架构调整,(老架构的时候我就发现了有一个问题点可以优化,但是 ...
- Hybrid App开发者一定不要错过的框架和工具
最近开始给网站的移动版本做技术选型,发现了很多好玩的东西,写出来给大家分享下. ionicFramework 我是hybrid app的忠实粉丝和大力倡导者,从 新浪移动云开始就不断的寻找能帮助Web ...
随机推荐
- 2021-05-17:数组中所有数都异或起来的结果,叫做异或和。给定一个数组arr,可以任意切分成若干个不相交的子数组。其中一定存在一种最优方案,使得切出异或和为0的子数组最多。返回这个最多数量。
2021-05-17:数组中所有数都异或起来的结果,叫做异或和.给定一个数组arr,可以任意切分成若干个不相交的子数组.其中一定存在一种最优方案,使得切出异或和为0的子数组最多.返回这个最多数量. 福 ...
- 2021-12-26:给定一个长度为n的数组arr,求有多少个子数组满足 : 子数组两端的值,是这个子数组的最小值和次小值,最小值和次小值谁在最左和最右无所谓。 n<=100000(10^5) n*
2021-12-26:给定一个长度为n的数组arr,求有多少个子数组满足 : 子数组两端的值,是这个子数组的最小值和次小值,最小值和次小值谁在最左和最右无所谓. n<=100000(10^5) ...
- defer有什么用呢
1. 简介 本文将从一个资源回收问题引入,引出defer关键字,并对其进行基本介绍.接着,将详细介绍在资源回收.拦截和处理panic等相关场景下defer的使用. 进一步,介绍defer的执行顺序,以 ...
- 痞子衡嵌入式:MCUBootUtility v5.0发布,初步支持i.MXRT1180
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个大版本(v4.0.0)发布过去4个多月了,期间痞子衡也做过两个小版本更新,但不足以单独介绍.这一次痞子衡为大家带来了全新大版本v5. ...
- 洛谷P3368 【模板】树状数组 2-(区间修改,单点查询)
题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上 x: 求出某一个数的值. 输入格式 第一行包含两个整数 N.M,分别表示该数列数字的个数和操作的总个数. 第二行包含 N ...
- Hive执行计划之一文读懂Hive执行计划
目录 概述 1.hive执行计划的查看 2.学会查看Hive执行计划的基本信息 3.执行计划步骤操作过程 4.explain extended 概述 Hive的执行计划描述了一个hiveSQL语句的具 ...
- delving into deep imbalanced regression翻译
非对照翻译,有所简略.翻译不对,尽情谅解,可留言 作者解释 and paper 笔记 Abstract Real-world data often exhibit imbalanced distr ...
- 文件系统考古2:1984 - BSD Fast Filing System
今天继续与大家分享系列文章<50 years in filesystems>,由 KRISTIAN KÖHNTOPP 撰写. 我们将进入文件系统的第二个十年,即1984年,计算机由微型计算 ...
- ASP.NET Core 6框架揭秘实例演示[37]:重定向的N种实现方式
在HTTP的语义中,重定向一般指的是服务端通过返回一个状态码为3XX的响应促使客户端像另一个地址再次发起请求,本章将此称为"客户端重定向".既然有客户端重定向,自然就有服务端重定向 ...
- 实时光线追踪(3)Ray Casting
目录 硬件光追(Hardware Ray Tracing) 加速结构(Acceleration Structure,AS) AS 策略 Ray Tracing Pipeline Ray Generat ...