首页 > 其他分享 >6种主流的Hybrid 技术框架与方案

6种主流的Hybrid 技术框架与方案

时间:2023-07-31 23:32:43浏览次数:37  
标签:原生 Web 框架 方案 程序 Hybrid 主流 开发 应用

移动操作系统在经历了诸神混战之后,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使用自己的渲染引擎,可以创建高性能、美观且具有自然动画的跨平台应用程序。

FinClip:由国内技术团队开发,主要提供小程序容器技术以及配套的小程序应用管理平台,APP嵌入该组件可获得小程序运行和上架管理能力,也是目前为数不多可以商用的小程序容器,用来实现Hybrid+小程序的开发方案。

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应用程序封装为原生应用。

各种框架各有优缺点,适用的方案也是不同的。下面就分别介绍一下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也都在应用这个方案:支付宝小程序、百度小程序、头条小程序等等。但目前大厂的小程序容器都是自研的,并没有开放给外部去使用,上面说的FinClip 是为数不多可以商用的容器。

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能够做出来。

标签:原生,Web,框架,方案,程序,Hybrid,主流,开发,应用
From: https://blog.51cto.com/u_15735571/6914575

相关文章

  • 组件化、跨平台…未来前端框架将如何演进?
    前端框架在过去几年间取得了显著的进步和演进。前端框架也将继续不断地演化,以满足日益复杂的业务需求和用户体验要求。从全球web发展角度看,框架竞争已经从第一阶段的前端框架之争(比如Vue、React、Angular等),过渡到第二阶段的框架之争(比如Next、Nuxt、Remix、小程序等)。组件化开发的......
  • 1_认识框架
    1_认识框架框架(Framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。框架这个广泛的定义使用的十分流行,尤其在软件概念。框架(Framework)对于java来说,就是一系列为了解决特定问题而定义的一系列接口和实现......
  • 内嵌框架
    练习:邮箱......
  • 框架集合
    框架集合frameset元素可定义一个框架集。它被用来组织多个窗口(框架)。每个框架存有独立的文档。在其最简单的应用中,frameset元素仅仅会规定在框架集中存在多少列或多少行。您必须使用cols或rows属性。里面如果只有一个框架用frame标签如果多个框架用frameset标签用cols......
  • 未来几年,前端框架的竞争格局会发生什么变化?
    过去几年,前端框架领域的竞争是激烈的。各个框架在功能、性能、开发体验、生态系统和社区支持等方面都有不同的优势和特点。开发者和企业需要根据具体项目需求、团队技能和偏好来选择最适合的框架。前端技术一直在快速演进,新的标准、语言和工具不断涌现,这也为竞争增添了新的维度......
  • 主流的权限模型
    主要有两种: ACL模型:访问控制列表RBAC模型:基于角色的访问控制; 1.ACL模型:访问控制列表AccessControlList,ACL是最早也是最基本的访问控制机制。它是一种基于对象的控制模型,在其他模型中也使用了ACL。为了解决一一配置相同权限用户的问题,后来也采用了用户组的方式。原理:每......
  • 未来前端框架将持续推进组件化开发
    未来前端框架的发展将持续聚焦在组件化开发、性能优化和打包体积、跨平台开发、小程序框架的崛起、深度集成TypeScript、用户体验和可访问性、全球化和国际化等方向。通过不断地创新和改进,前端框架将推动Web应用开发的进步,为用户提供更好的使用体验和开发者更高效的开发体验。开......
  • 从0开发属于自己的nestjs框架的mini 版 —— 终极篇
    这篇其实是最简单的,就是将前面所实现的ioc,路由整合在一起就可以了话不多说,直接上代码\src\koa-ioc.ts引入相关库importKoafrom"koa";importkoaRouterfrom"koa-router";import{ContainerModule}from"./ioc-module";import{Type}from"./ioc-core.ts"......
  • 从0开发属于自己的nestjs框架的mini 版 —— koa-decorator路由篇
    这篇主要是实现路由注解,用过nestjs的都知道,其路由都是通过注解来实现的,如有控制器@Controller(),@Get()...等等,nestjs底层框架可选是expres或者是Fastify,在这里我选择koa2。话不多说,直接上代码src/koa-decorator.ts引入相关库import"reflect-metadata";importpathfro......
  • - 通过结合前端页面实现ORM对数据的增删改查 - Django中如何创建表关系 - 一对一
    通过结合前端页面实现ORM对数据的增删改查案例:写一个页面,就是把数据库中的数据以表格的形式展示出来,然后在每一行的后面加两个按钮,分别是修改、删除的按钮1.首先在数据库创建一个表格1.在model.py中创建表格 2.pythonmanage.pymakemigratins迁移记录   3.......