golang桌面gui库fyne使用

使用

初始项目

fynago mod initgo get fyne.io/fyne/v2go mod tidymain.go

执行以上步骤即可创建一个fyne环境

hello world

代码如下:

package main

import (
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/widget"
)

func main() {
	a := app.New()
	//创建一个窗口
	w := a.NewWindow("hello world")
	//设置窗口内显示内容
	w.SetContent(widget.NewLabel("hello world!"))
	//展示窗口 并运行程序
	w.ShowAndRun()
}

go run main.gogo run .hello worldhello world!

打包

打包桌面程序

参考:https://developer.fyne.io/started/packaging

打包一个图形程序步骤比较复杂,典型的窗口程序包含图标和一些元数据,包括在不同环境下的一些不同表现格式的数据整合。
package.icns.ico.png

打包命令如下:

go install fyne.io/fyne/v2/cmd/fyne@latest
fyne package -os darwin -icon myapp.png

go get
go get fyne.io/fyne/v2/cmd/fyne
fyne package -os darwin -icon myapp.png

打包成windows环境或liunx环境可执行程序命令:

fyne package -os linux -icon myapp.png
fyne package -os windows -icon myapp.png

以上命令将会生成:

myapp.tar.gzmyapp.exe

安装当前系统的桌面app应用:

fyne install -icon myapp.png

打包手机程序

参考:https://developer.fyne.io/started/mobile

Android SDKNDKadbXcode
fyne package -os android -appID com.example.myapp -icon mobileIcon.png
fyne package -os ios -appID com.example.myapp -icon mobileIcon.png

第一次打包可能比较耗时。打包结果:

myapp.apkmyapp.app

安装安卓程序到手机或模拟器命令:

adb install myapp.apk

安装ios app需要打开Xcode>Window>Devices and Simulators,然后将myapp.app拖入app list.

安装到模拟器命令:

xcrun simctl install booted myapp.app

打包配置

Icon.pngFyneApp.toml
Website = "https://example.com"

[Details]
Icon = "Icon.png"
Name = "My App"
ID = "com.example.app"
Version = "1.0.0"
Build = 1

发布

参考:https://developer.fyne.io/started/distribution

打包完的程序可以直接分享或者发布,但是如果想要发布到对应的软件市场,则需要些额外的步骤,根据发布的平台不同,还需要设置一些具体的配置。

fyne release

macOS App Store

前提:

  • Apple mac running macOS and Xcode(Xcode环境)
  • Apple Developer account(苹果开发者账号)
  • Mac App Store application certificate(AppStore证书)
  • Mac App Store installer certificate(AppStore安装证书)
  • Apple Transporter app from App Store(Transporter工具)
bash fyne release -appID com.example.myapp -appVersion 1.0 -appBuild 1 -category games.pkgDeliver

Google Play Store (Android)

前提:

  • Google Play Console 账号
  • 发布的keystore(文档)

步骤:

Play app signing
 fyne release -os android -appID com.example.myapp -appVersion 1.0 -appBuild 1
.apk

iOS App Store

前提:

  • Apple mac running macOS and Xcode(Xcode环境)
  • Apple Developer account(苹果开发者账号)
  • iOS App Store distribution certificate(ios App 发布证书)
  • Apple Transporter app from App Store(Transporter工具)

步骤:

  1. 前往AppStore Connect设置要构建的app版本信息
  2. 打包
 fyne release -os ios -appID com.example.myapp -appVersion 1.0 -appBuild 1
.ipaDeliver

完。