Wails 是一个基于 Go 语言构建的现代化跨平台桌面应用开发框架,允许开发者使用熟悉的前端技术(如 HTML、CSS、JavaScript)创建用户界面,结合 Go 后端的逻辑处理能力。
这使得开发者能快速构建轻量级、高效的桌面应用程序,同时保持代码的简洁和易于维护。
一、Wails 的架构与核心理念
Wails 的设计核心在于轻量、高效和跨平台,它没有引入如 Electron 中的 Chromium 依赖,而是利用系统自带的 WebView 渲染前端界面。
通过将现代前端框架(如 Vue、React、Svelte 等)和 Go 后端逻辑结合,Wails 提供了一种在桌面端快速开发的解决方案。
Wails 的架构特点:
前端部分:可以使用任何现代前端框架(Vue、React、Svelte 等)来构建 UI。
后端部分:使用 Go 处理业务逻辑和与操作系统的交互,提供 API 供前端调用。
系统 WebView:利用操作系统的内置 WebView 组件,无需打包大型的浏览器引擎,应用程序更加轻量。
跨平台支持:支持 Windows、macOS 和 Linux,开发者只需编写一次代码即可在多个平台上运行。
二、Wails 的主要特性
Wails 提供了一系列特性,使其成为构建桌面应用的有力工具:
原生窗口支持:基于系统原生窗口组件,应用更加轻量且性能高。
跨平台兼容性:支持 Windows、macOS、Linux,保持一致的应用行为。
前后端通信:通过 Go 和前端的双向通信机制,前端可以调用 Go 函数,Go 后端可以发送事件和数据给前端。
事件管理:内置事件系统,方便前后端之间的异步通信。
文件系统访问:提供对文件系统的访问权限,允许读取和写入本地文件。
系统 API 支持:支持显示系统对话框、通知以及托盘图标等桌面系统特性。
多窗口支持:允许应用程序创建和管理多个窗口。
高性能:利用 Go 的高性能并发能力,适合处理复杂的业务逻辑。
集成调试工具:开发过程中支持热重载和调试工具,提升开发效率。
支持多种前端框架:与 React、Vue、Svelte 等流行前端框架兼容,开发者可以选择最熟悉的前端技术栈。
三、安装 Wails
1. 安装前提
首先确保系统上安装了 Go,并且 Go 版本至少为 1.19。可以使用以下命令检查 Go 版本:
go version
2. 安装 Wails CLI
通过 Go 工具安装 Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
将 Go 的 bin 目录添加到系统路径中,以确保 wails
命令可以在终端中运行。
3. 初始化 Wails 项目
通过 Wails 提供的 CLI,可以轻松创建新的桌面应用项目。
使用默认的 vanilla JS 模板创建新的 Wails 程序, 您需要运行这个指令:
wails init -n helloworld
这将在当前目录中创建一个名为 helloworld 的新目录。
在此目录中,您将找到许多文件:
build/ - Contains the build files + compiled application
frontend/ - Contains the frontend files
app.go - Contains the application code
main.go - The main program with the application configuration
wails.json - The project configuration file
go.mod - The go module file
go.sum - The go module checksum file
4. 启动与打包应用
运行以下命令启动开发模式,Wails 会启动前端服务器,并实时刷新前端页面:
wails dev
当应用开发完成后,可以使用以下命令将应用程序打包为可执行文件:
wails build
这会生成一个跨平台的可执行文件,包含前端和后端代码。
5. 运行应用
如果我们在 Windows 文件管理器中查看 build/bin 目录,我们应该看到我们的项目二进制文件:helloworld.exe。
我们可以通过简单的双击 helloworld.exe 文件来运行它。
在 Mac 上,Wails 生成一个 helloworld.app 文件,可以通过双击来运行。
在 Linux 上,您可以从 build/bin 目录使用 ./helloword 运行应用程序。
您应该看到应用程序正常工作:
四、最后
Helloword 功能已验证成功,让我们深入探索更多特性吧!
Wails 框架以其高效且轻量级的优势,为开发者提供了一种构建跨平台桌面应用的卓越途径。
它巧妙地融合了前端技术的最新趋势与 Go 语言强大的后端处理能力,让应用开发更加便捷。
最后,谢谢你看到了这里👏 想要第一时间接收到推送,可以点个关注。
可点击下方👇 关注公众号
添加作者微信 👇 获取原创学习资料