• 跨平台的桌面应用开发,技术框架选择


    跨平台的桌面应用开发,技术框架选择

    个人的需求:

    1. 能够快速开发;毕竟生产力很重要。
    2. 打包后的体积不能太大;用户大部分是普通客户,不会安装基础环境。
    3. 跨平台;日常主要还是用mac做为主力开发机,所以强烈需要跨平台。

    入围技术

    1. flutter
      flutter现在已经能全平台支持了;不仅是android,ios,现在web和桌面应用也都能支持的很好。

    2. electronic
      基于nodejs的,vscode就是采用electronic作为底层实现的,而且用html+css开发,开发效率确实会很快。

    3. wxPython和pyqt
      两者类似,都是用python语言开发。前者是对wxWidgets的封装,后者是对大名鼎鼎的qt的封装。

    4. java的ui实现
      java的ui框架有swing,但是不更新了,还有javaFX和eclipse的swt。

    5. Tauri
      采用rust语言的底层实现,界面开发也可以使用html+css。
      Tauri 是一个框架,用于为所有主要桌面平台构建小巧、快速的二进制文件。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架,以构建他们的用户界面。应用程序的后端是一个基于 Rust 的二进制文件,带有一个前端可以与之交互的 API。

    总结

    最后根据我个人的需求做筛选和最终决定:

    1. flutter 符合
      用flutter开发过一个app,总体开发效率蛮高的,需求1和3都能很好的满足,
      但是helloword的demo最终在我的mac mini m1芯片的电脑打包出来的软件大小45m,稍微偏大了一点。

    2. electronic 不符合
      electronic需求在1和3都能很好的满足,但是hellowrod打包的包大小在202m,太大了,不符合。

    3. wxPython和pyqt 不符合
      虽然没有最终打成可执行的包,但是包大小应该都不大,但是api不是太熟悉,相对html的快速开发,生产力还是欠缺很多,不符合。

    4. java的ui实现 不符合
      工作中一直是java,也断断续续用swing和swt开发过很多小工具,自己用都ok,开发效率也没问题。但是给普通客户用,加上jdk后,大小还是挺大的,不符合。

    5. Tauri符合
      Tauri的原理electronic和类似,两者最大的区别: 一个是采用了rust语言,还有就是用了系统默认的浏览器内核,这样应用体积就不会膨胀。helloword打包后果然只有10m,而且开发还是能用html+css技术,效率非常高。
      用tauri开发了一个笔记浏览软件验证了下,效果蛮好的,符合。

    因为打算开发些小的桌面应用,给普通客户使用,所以最终从flutter和tauri之间选择了tauri,唯一可能就是资料不是太多,但是因为大部分界面开发都是用到了html技术,也没大问题。
    后续就用笔记浏览软件再好好验证下tauri。

  • 相关阅读:
    2022-7 刷题记录
    openharmony容器组件之Panel
    PG系列数据库TPCH测试文档
    从0基础到车载测试工程师,薪资11K,肯拼搏的人,总会有所收获
    Windows cmd 命令
    pybind11使用总结(依赖python3.7版本)
    故障排查:maven下载依赖失败(Transfer failed)
    在Vue中通过ElementUI构建前端页面【登录,注册】,在IEDA构建后端实现前后端分离
    LeetCode_235_二叉搜索树的最近公共祖先
    Docker入门
  • 原文地址:https://blog.csdn.net/yuoveyu/article/details/127786376