首页 > 其他分享 >今天来聊聊Hybird app技术

今天来聊聊Hybird app技术

时间:2024-03-12 16:34:37浏览次数:33  
标签:原生 Hybird app 程序 应用程序 开发 跨端 聊聊 Flutter

最近听到身边的朋友经常聊到鸿蒙,也聊到开发周期紧、任务重,应对纯血鸿蒙2024年Q4的正式商用,不知道该如何开发更合适。   于是有感而发,在这里说一下个人现在比较看好的混合应用(hybird app)开发技术。  

什么是混合应用开发?

混合应用(通常指的是App开发)是一种结合了Web应用程序和原生应用程序的应用程序。它使用Web技术(例如HTML、CSS和JavaScript,或者说用最近比较火的小程序技术)来开发应用程序的UI界面和业务逻辑,并使用原生应用程序的API来访问设备的功能。 混合App开发通常使用以下两种模式:
  • WebView模式:在这种模式下,混合应用程序使用WebView控件来加载Web页面。Web页面包含应用程序的UI界面和业务逻辑。WebView控件可以访问设备的某些功能,例如摄像头和地理位置。
  • 混合模式:顾名思义,就是使用WebView控件来加载Web页面,也使用原生代码来实现部分功能。原生代码可以访问设备的所有功能。
这种开发方式的优势还是挺明显的,例如开发成本低(write once, run everywhere)、开发效率高(开发周期短、易于学习)等。最“燃”的就是用户体验同样好,因为混合应用程序可以利用原生应用程序的UI元素和功能,因此可以为用户提供良好的用户体验。   相比于一些性能方面不如原生技术,个人认为,大部分的业务应用更多需要考虑开发周期的问题,交互和性能的需求其实没有那么的高。  

Hybird App开发关键在于跨端研发

换个方向思考,大部分应用使用的是跨端框架来开发,所以Hybird开发的关键还是选合适的跨端开发框架。   国内常用的,分App跨端及桌面跨端。App跨端常用的是:Flutter,VUE,React Native,FinClip等;桌面跨端包括:Electron、FinClip、Flutter等。 这里挑上述两类都有的跨端框架介绍下。  

FinClip

FinClip是凡泰极客研发的一套小程序容器技术,也可以说是小程序沙箱 Runtime/Engine,提供 Runtime 基于浏览器内核,采用动态语言(JS)和声明式 View 构建(XML),兼容互联网主流小程序技术,可采用 Vue、react 基础上的 DSL 框架。   与Electron、Flutter、Tauri等跨端平台不同的是,FinClip严格意义上讲是一项容器技术。与跨端平台不仅不冲突,还可以完美融合。移动端跨平台开发框架中,不管是通过Flutter、Taro、 kbone等开发出来的小程序均可在FinClip当中运行。   这种小程序容器技术,将视图层与逻辑层分离也带来了许多好处: 1、方便多个小程序页面之间的数据共享和交互。在小程序的生命周期中具有相同的上下文可以为具备原生应用程序开发背景的开发人员提供熟悉的编码体验; 2、Service 和 View 的分离和并行实现可以防止 JS 执行影响或减慢页面渲染,这有助于提高渲染性能; 3、因为 JS 在 Service 层执行,所以 JS 里面操作的 DOM 将不会对 View 层产生影响,所以小程序不能操作 DOM 结构的,这也使得小程序的性能比传统的 H5 更好。   之所以在平台桌面应用开发框架中介绍,就是除了FinClip移动端跨端开发的能力,它还支持在手机以外,如Windows、Mac、Linux、统信、麒麟等平台下运行小程序,这意味着,移动端、PC 端、IOT等智能终端都能运行小程序了。同时,它还提供一个完善的后台管理系统,统一管理小程序的上架和下架、监测小程序的使用详情,换句话说,借助该工具,可以借助微信小程序生态的成熟度,快速引入业务生态来壮大、丰富自己的业务场景,实现技术和业务双降本增效。  

Flutter

Flutter是一个由Google开发的跨平台应用开发框架,最初只用于移动端为Android、iOS开发应用。2022年5月,Google 在 Google I/O 2022 发布了 Flutter 3.0版本,宣布对 Windows、macOS、Linux 桌面操作系统提供支持。   Flutter Desktop 是使用 Dart 编写界面逻辑的,Dart语言容易学习和上手、开发成本低。此外,Flutter的组件比较丰富,并且支持 Win 10 操作系统(之前的操作系统就不太支持了)。但因为桌面端才刚刚发布稳定版支持,生态和稳定性都有待考量,还有API 也是比较少的,需要开发人员自己来写。   除了上述两类框架之外,市面上还有其他主流跨端框架,如:React Native,Xamarin,Weex等。这些跨端框架都有一些通用的优势所在:
  • 跨平台开发,可以同时构建iOS和Android应用程序。
  • 使用JavaScript和React开发,具有较低的学习曲线。
  • 具有原生性能,并且可以通过原生代码进行优化。
  • 活跃的开发者社区和大量的第三方库和工具支持。
虽然其在某些情况下可能需要依赖原生模块或编写原生代码来处理特定的功能,以及在一些性能敏感的场景中,可能无法达到完全的原生性能等缺陷,但这些都完全不影响大部分混合应用开发的执行和用户体验。

标签:原生,Hybird,app,程序,应用程序,开发,跨端,聊聊,Flutter
From: https://www.cnblogs.com/speedoooo/p/18068623

相关文章

  • 海信安卓电视安装影视APP-新增直播和点播
    灵活掌握本文的相关知识点后可以给任何安卓设备(硬件支持情况下)添加直播和点播功能海信安卓电视安装影视APP-安装方法步骤直播:DIYP影音经典版.apk点播:蜂蜜2.1.6正式版tv电视.apk朗读全文Yourbrowserdoesnotsupporttheaudioelement.#步骤开启安卓......
  • Apple Safari 17.4 - macOS 专属浏览器 (独立安装包下载)
    AppleSafari17.4-macOS专属浏览器(独立安装包下载)适用于macOSVentura和macOSMonterey的Safari浏览器17请访问原文链接:https://sysin.org/blog/apple-safari-17/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org之前Safari浏览器伴随macOS更新一起......
  • 什么是APP封装?APP封装有什么途径?APP封装如何实现?
    APP封装是形成APP成本最低的一种方式。你只需要拥有一个手机端的网址就可以通过一些技术处理封装成一个跨iOS和Android的APP,这个过程往往只需要几分钟。既节省时间又能节省开发的成本资金,所以接下来就介绍一下大家都比较关心的怎么给手机网站封装打包成app问题的解答。跨平台程序......
  • 聊聊CWE 4.14 与 ISA/IEC 62443中,如何保障工业软件的安全性
    本文分享自华为云社区《CWE4.14与ISA/IEC62443》,作者:Uncle_Tom。1.序言随着5G的应用,物联的网发展,越来越多的自动化控制系统、云服务在工业控制系统被广泛使用。为了实现生产自动化,很多企业都引入了由PLC(可编程逻辑控制器)控制的自动化生产设备和相关的自动化生产系统。用......
  • [learn]Set Up SAP Business Application Studio
    SetUpSAPBusinessApplicationStudiohttps://developers.sap.com/tutorials/set-up-bas.html按照教程,申请了https://account.hanatrial.ondemand.com/trial/#/home/trial的试用账号后,无法打开SAPBusinessApplicationStudio,按照上述课程设置SAPBusinessApplicationStud......
  • [Learn]Build a Business Application Using CAP for Node.js
    https://developers.sap.com/mission.cp-starter-extensions-cap.html1、使用VSCode创建服务https://developers.sap.com/tutorials/cp-apm-nodejs-create-service.html 通过使用SAPCloud应用程序编程模型(CAP)并在本地环境中进行开发,使用CoreData&Services(CDS)、N......
  • 找不到包 Microsoft.NETCore.App.Crossgen2.win-x64。源 Microsoft Visual Studio Off
    问题找不到包System.IO.Packaging,源MicrosoftVisualStudioOffilinePackages中不存在具有此ID的包 解决打开工具-Nuget相关可以尝试再命令行里用 nugetrestore但是这种情况应该是没有设置源。在选项里面,新建一个程序包源,填写以下源地址(或者其他nuget源)就能修复。......
  • uniapp封装公共分享方法
    使用mixins封装分享方法创建share.jsimporturlConfigfrom"@/utils/urlConfig";exportconstshareMixins={data(){return{shareData:{title:'',//分享内容的标题path:'',//分享内容跳转......
  • uniapp自定义导航栏
    uniapp项目自定义顶部导航栏1.创建组件完整代码navigation.vue<template><viewclass="navbar-header":style="isfixed?'padding-top'+navHeight+'px':'padding-top:0px'"><viewclass="navbarcustom......
  • 解决uni-app在App端上传图片时路径转Base64的问题
    解决uni-app在App端上传图片时路径转Base64的问题在用uni-app开发项目的时候大家都会遇到这么一个问题,就是上传图片时在App上拿到的是文件路径,然而后端要接收的却是Base64字符串,这就尴尬了,在App端又无法调用WebApi(例如:BlobfileReader等),自己写插件的话又很麻烦,因此我找了很久才......