【go语言】使用wails构建桌面端应用(可跨三端)

文章目录

  • 介绍
    • 开发环境要求
    • 优点
    • 项目结构
    • 样例-markdown编辑器
    • 偶然冲突
    • 与electron比较

介绍

发现一个很不错的开源项目:wails是一个使用现代化web技术(vite+vue3, react等)构建桌面端应用的go语言项目,其兼容性不错, 界面效果和性能与electron差不多。官网:https://wails.io/zh-Hans/docs/gettingstarted/firstproject

开发环境要求

  • go >= 1.18
  • node >= 16

优点

  • 项目结构清晰,ui层和基础功能分离。
  • 和web前端一样的开发体验,带F12console控制台,支持热更新。
  • 体积小,打包exe 10M左右。
  • 支持多端
    • win10、win11 64位 (依靠微软webview2内核)
    • win7 64位 (依靠微软webview2_v109内核, v109内核下载地址)
    • linux 64位(amd64/arm64) (依靠libgtk3 和libwebkit2gtk两个库, deepin 20上测试功能正常)
    • MacOS 10.13+ AMD64
    • MacOS 11.0+ ARM64

项目结构

【go语言】使用wails构建桌面端应用(可跨三端)_第1张图片

样例-markdown编辑器

基于go wails构建的markdown编辑器。
【go语言】使用wails构建桌面端应用(可跨三端)_第2张图片

偶然冲突

如果电脑上装了安全管家之类的(如奇安信), 会被屏蔽webview2内核的dll库,应用无法正常运行,甚至edge浏览器也无法运行。相反,electron打包的应用可以正常运行。
不清楚是不是只是这台电脑的问题。。

与electron比较

  • electron打包产物,会包含完整的chromium内核以及nodejs,其体积会在300M起步(版本chromium 100+ )
  • walis打包的应用, 基础包10M, 所有应用共用一个webview2内核。只需要安装一次依赖就行。
  • 两者都是用js等前端技术搞定桌面跨端应用, UI层逻辑开发差不多。electron提供大量的原生接口以及系统交互接口,文档较多; wails只提供基本的系统交互逻辑(文件选择框,系统通知接口,系统对话框,剪切板访问等), 其余逻辑需要自行用go实现)

你可能感兴趣的:(golang,go,前端,electron,javascript)