跨平台桌面应用开发都有哪些主流框架

受益于开源技术的发展 , 以及响应快速开发的实际业务需求 , 跨平台开发不仅限于移动端跨平台 , 桌面端虽然在市场应用方面场景不像移动端那么丰富 , 但也有市场的需求 。
相对于个人开发者而言 , 跨平台框架的使用 , 主要为了满足以下三个主要能力:生产力提升:框架能够帮助开发者实现快速开发 , 这是降本增效的根本 。 如果不能实现「快速」 , 那也就比自己从零开始写代码快不了太多了 。 框架打包后的体积轻量:开发者大部分是普通用户 , 不会安装基础环境(不会运维 , 不会运维 , 不会运维) 。 跨平台:许多开发者日常开发还是以Mac做为主力开发机 , 所以强烈需要跨平台(跨移动平台 , 跨移动及桌面平台) 。
今天 , 我们就在本篇文章中盘点下 , 跨平台桌面应用开发的5大主流框架:Electron、wxPython、FinClip、Tauri、Flutter 。
Electron
相信这个框架大家都不陌生 。
首先 , Electron本身是基于Node.js的 , 这样就可以利用Node.js的现成资源 。
其次 , Electron是跨平台的 , 换句话说 , 它可以同时开发Web应用和桌面应用 , 一些常规的资源 , 如:UI , 代码(JS)等资源都可以共享 , 为开发者大大减少了工作量 , 甚至企业也无需重复投入人力来开发系统 。
再有 , Electron不仅支持WebAPI , 完成与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
“Buildanoptimized,secure,andfrontend-independentapplicationformulti-platformdeployment.”
从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)、可变引用(&mutT)或者通过值本身(T)传递 。 任何时候 , 一个变量都可以有多个不可变引用或一个可变引用 , 这实际上是一个显式的读写锁 。 Rust编译器在编译时强制执行这些规则 , 并检查所有引用是否有效 。 能够有效避免C/C++等语言中的悬垂指针等问题;FFI编译友好(multiplatform):FFI是可以用一种编程语言写的程序能调用另一种编程语言写的代码的机制 , 使用Rust可以方便地提供接口给其他语言调用;