受益于开源技术的发展 , 以及响应快速开发的实际业务需求 , 跨平台开发不仅限于移动端跨平台 , 桌面端虽然在市场应用方面场景不像移动端那么丰富 , 但也有市场的需求 。
相对于个人开发者而言 , 跨平台框架的使用 , 主要为了满足以下三个主要能力:
- 生产力提升:框架能够帮助开发者实现快速开发 , 这是降本增效的根本 。如果不能实现「快速」 , 那也就比自己从零开始写代码快不了太多了 。
- 框架打包后的体积轻量:开发者大部分是普通用户 , 不会安装基础环境(不会运维 , 不会运维 , 不会运维) 。
- 跨平台:许多开发者日常开发还是以mac做为主力开发机 , 所以强烈需要跨平台(跨移动平台 , 跨移动及桌面平台) 。
文章插图
Electron相信这个框架大家都不陌生 。
首先 , Electron 本身是基于 Node.js 的 , 这样就可以利用 Node.js 的现成资源 。
其次 , Electron 是跨平台的 , 换句话说 , 它可以同时开发 Web 应用和桌面应用 , 一些常规的资源 , 如:UI , 代码(JS)等资源都可以共享 , 为开发者大大减少了工作量 , 甚至企业也无需重复投入人力来开发系统 。
再有 , Electron 不仅支持 Web API , 完成与 Web 应用相同的工作 , 还允许调用很多操作系统底层 API 来与硬件设备交互 , 甚至可以用 C++、Go 来编写本地模块 , 这样一来就可以完成很多 Web 应用无法做到的事情 。
小结:使用语言html , js , css等 , 功能强大 , 界面绚丽 , 跨平台 , 开发成本低 , 可以说是集优点于一身 。除了 , 性能不敢恭维~~
【跨平台桌面应用开发的5大主流框架盘点】
文章插图
Electron
wxPythonwxPython和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:跨平台
- 性能高(optimized):Rust的性能和C/C++的性能不相上下 , 由于Rust的「所有权」机制 , Rust不需要GC , 同时也能避免如C/C++之类需要手动管理内存的语言忘记释放内存导致的内存泄露的问题;
- 安全性强(secure):Rust设计了一个所有权系统 , 其中所有值都有一个唯一的所有者 , 并且值的作用域与所有者的作用域相同 。值可以通过不可变引用(&T)、可变引用(&mut T)或者通过值本身(T)传递 。任何时候 , 一个变量都可以有多个不可变引用或一个可变引用 , 这实际上是一个显式的读写锁 。Rust编译器在编译时强制执行这些规则 , 并检查所有引用是否有效 。能够有效避免C/C++等语言中的悬垂指针等问题;
- FFI编译友好(multiplatform):FFI是可以用一种编程语言写的程序能调用另一种编程语言写的代码的机制 , 使用Rust可以方便地提供接口给其他语言调用;
推荐阅读
- 这两个强大的开源C#反编译逆向工具,探索C#桌面应用的秘密
- 华为手机怎么删除桌面备忘录小工具
- 电脑注销是什么意思(电脑注销后桌面东西怎么恢复)
- 什么手机桌面好用(找手机壁纸用什么软件好)
- 桌面快捷方式不见了文件夹不见了 桌面快捷方式不见了
- 保护视力的电脑桌面壁纸 保护视力的电脑桌面
- 桌面图标有阴影怎么去掉影怎么去掉 桌面图标有阴影
- win10如何显示桌面 如何显示桌面
- 电脑为什么卡(为什么电脑桌面很卡)
- 怎么在电脑桌面上添加文字提醒 电脑提醒软件