如何选择跨平台桌面应用开发框架
创始人
2024-02-08 10:32:13
0

受益于开源技术的发展,以及响应快速开发的实际业务需求,跨平台开发不仅限于移动端跨平台,桌面端虽然在市场应用方面场景不像移动端那么丰富,但也有市场的需求。

相对于个人开发者而言,跨平台框架的使用,主要为了满足以下三个主要能力:

生产力提升:框架能够帮助开发者实现快速开发,这是降本增效的根本。如果不能实现「快速」,那也就比自己从零开始写代码快不了太多了。

框架打包后的体积轻量:开发者大部分是普通用户,不会安装基础环境(不会运维,不会运维,不会运维)。

跨平台:许多开发者日常开发还是以Mac做为主力开发机,所以强烈需要跨平台(跨移动平台,跨移动及桌面平台)。

今天,我们就在本篇文章中盘点下,跨平台桌面应用开发的5大主流框架:Electron、wxPython、FinClip、Tauri、Flutter。

Electron

相信这个框架大家都不陌生。

首先,Electron 本身是基于 Node.js 的,这样就可以利用 Node.js 的现成资源。

其次,Electron 是跨平台的,换句话说,它可以同时开发 Web 应用和桌面应用,一些常规的资源,如:UI,代码(JS)等资源都可以共享,为开发者大大减少了工作量,甚至企业也无需重复投入人力来开发系统。

再有,Electron 不仅支持 Web API,完成与 Web 应用相同的工作,还允许调用很多操作系统底层 API 来与硬件设备交互,甚至可以用 C++、Go 来编写本地模块,这样一来就可以完成很多 Web 应用无法做到的事情。

小结:使用语言html,js,css等,功能强大,界面绚丽,跨平台,开发成本低,可以说是集优点于一身。除了,性能不敢恭维~~

在这里插入图片描述

wxPython

wxPython和pyqt 两者类似,都是用python语言开发。前者是对wxWidgets的封装,后者是对大名鼎鼎的qt的封装。wxWidgets 是基于操作系统的 API 来做桌面应用的,也就是说,在 Windows 下开发一个桌面应用时,看起来就像是传统的 Windows 桌面软件的风格,在 Mac 下则是 Mac 的风格,而前面三个都有自己的自绘引擎。

也就是说,使用wxWidgets 在三个平台上都是按照三个平台自己的 API 来绘制这个按钮的。wxWidgets 提供了非常多的操作系统的 API,并且可以做到静态链接,但小问题比较多。

Tauri

“Build an optimized, secure, and frontend-independent application for multi-platform deployment.”
从Tauri官网的宣传语可以看出Tauri主打的几个卖点:

optimized:性能高、体积小

secure:安全性强

frontend-independent:前端独立

multiplatform:跨平台

Tauri框架是由Rust语言实现的,同时Tauri应用的后端也是由Rust来编写的。Rust是由Mozilla主导开发的通用、编译型的系统编程语言。Rust语言自身有如下的一些特性:

性能高(optimized):Rust的性能和C/C++的性能不相上下,由于Rust的「所有权」机制,Rust不需要GC,同时也能避免如C/C++之类需要手动管理内存的语言忘记释放内存导致的内存泄露的问题;

安全性强(secure):Rust设计了一个所有权系统,其中所有值都有一个唯一的所有者,并且值的作用域与所有者的作用域相同。值可以通过不可变引用(&T)、可变引用(&mut T)或者通过值本身(T)传递。任何时候,一个变量都可以有多个不可变引用或一个可变引用,这实际上是一个显式的读写锁。Rust编译器在编译时强制执行这些规则,并检查所有引用是否有效。能够有效避免C/C++等语言中的悬垂指针等问题;

FFI编译友好(multiplatform):FFI是可以用一种编程语言写的程序能调用另一种编程语言写的代码的机制,使用Rust可以方便地提供接口给其他语言调用;

Rust语言的一些特性,也增强了Tauri框架的可靠性和框架价值。此外,hello word打包后果然只有10m,而且开发还是能用html+css技术,效率非常高。

在这里插入图片描述

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 也是比较少的,需要开发人员自己来写。

如果大家还有实用的、性价比高的跨平台桌面应用开发框架,欢迎在评论区留言、交流。

相关内容

热门资讯

经典古文名言 经典古文名言大全  名言基本意思是很出名的说法,著名的话,一般指名人说的话。下面和小编一起来看经典古...
培根的至理名言佳句 培根的至理名言佳句  1、暂时解接的人,不能算是冤家。  2、读书使人成为完善的人。  3、天性好比...
教育家名言_教育名言名句   教师个人的范例,对于青年人的心灵,是任何东西都不能代替的最有用的阳光。如下是中国人才网给大家整理...
小学教育格言   小学教育格言  1、教学是发现,是分享,是成长,是兴奋和爱。——钱艳  2、礼貌是最容易做到的事...
小学生格言   小学生格言  1、不怕慢,就怕站。  2、树挪死,人挪活。  3、沉思的生活是美好的生活。  4...
刘基的名言 刘基的名言  1、邦无道,富加贵,耻也!  2、大其心,容天下之物;虚其心,受天下之善;平其心,论天...
蒋晓云的经典名言 蒋晓云的经典名言  我独自发着‘思古之幽情’,实际却好像在一个电影布景里。  虽然学历并没影响她一生...
菜根谭修身名言名句 菜根谭修身名言名句,以下是大学网小编精心整理的相关文章,希望对大家有所帮助!菜根谭修身名言名句欲做精...
读书的名人名言 读书的名人名言(通用190句)  读书之法无他,惟是笃志虚心,反复详玩,为有功耳。下面是小编为你整理...
经典的名人名言180条 经典的名人名言(精选180条)  在平平淡淡的学习、工作、生活中,大家都知道一些经典的名言吧。以下是...
科学家的名言 科学家的名言集锦  名言基本意思是很出名的说法,著名的话,一般指名人说的话。下面和小编一起来看科学家...
屈原名言名句 屈原名言名句  无论在学习、工作或是生活中,大家都接触过很多优秀的名言吧,名言是我国文化悠久,博大精...
德谟克利特名言名句阅读欣赏 德谟克利特名言名句大全阅读欣赏  德谟克利特名言名句大全  1、单单一个有智慧的人的友谊,要比所有愚...
人生哲理格言 人生哲理格言合集50句  人生需要积累,更需要沉淀,要常回头看看,用足够的时间去反思,在品味得失和甘...
热爱工作励志名言名句 热爱工作励志名言名句  在学习、工作或生活中,大家一定都接触过一些使用较为普遍的名言吧,巧用名言有助...
生命的格言 关于生命的格言(精选90句)  无论是在学校还是在社会中,大家都不可避免地会接触并使用名言吧,在议论...
反省的名人名言 关于反省的名人名言  在日常学习、工作和生活中,大家都知道一些经典的名言吧,名言具有概括自然有力,言...
人生格言座右铭短句 人生格言座右铭短句  用心工作,用心生活,用心感悟,人生格言座右铭短句。下面是由应届毕业生小编为大家...
踏实勤奋的名言警句 踏实勤奋的名言警句  不积跬步,无以至千里;不积小流,无以成江海。接下来小编搜集了踏实勤奋的名言警句...
陶行知教育的经典名言 关于陶行知教育的经典名言(精选80句)  陶行知(1891年10月18日-1946年7月25日),安...