Golang語言的跨平臺UI工具包fyne使用詳解
前言
Fyne 是 fyne-io 組織在 Github 上開源的 Go 語言 UI 工具包 ,目前版本為 v2.3.5,2.3版是Fyne API的最新版本,它添加了一個精致的主題設(shè)計(jì)以及云存儲,同時改進(jìn)了國際語言和許多語言的文本處理較小的功能添加。我們現(xiàn)在正致力于下一個代號為Dalwhinnie。
Fyne是由Golang開發(fā)的跨平臺應(yīng)用,除了對Windows、Mac、Linux這三大PC平臺提供了支持,還支持樹莓派、移動APP的打包發(fā)布,可以說在跨平臺方面做到了極致。另外Fyne項(xiàng)目沒有復(fù)雜目錄結(jié)構(gòu),使用一個獨(dú)立的go文件就能啟動一個簡單的應(yīng)用。
安裝
Fyne 使用 Go 語言開發(fā),需要 Go 1.14 或以上,使用 go get 安裝:
go get fyne.io/fyne/v2
在導(dǎo)入新模塊后,請?jiān)诘谝淮尉幾g代碼之前運(yùn)行以下命令。避免在編寫使用模塊的代碼之前運(yùn)行它,以防止意外刪除依賴項(xiàng):
go mod tidy
Demo
Fyne的設(shè)計(jì)非常易于使用。請遵循了上述條件步驟安裝,現(xiàn)在需要打開IDE或者文本編輯器,然后打開一個新文件,既可以編寫您的第一個應(yīng)用程序了。如下:
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
a := app.New()
w := a.NewWindow("Hello")
hello := widget.NewLabel("Hello Fyne!")
w.SetContent(container.NewVBox(
hello,
widget.NewButton("Hi!", func() {
hello.SetText("Welcome :)")
}),
))
w.ShowAndRun()
}代碼十分簡潔明了。首先,通過 app.New() 創(chuàng)建一個應(yīng)用實(shí)例,并新建一個標(biāo)題為 Hello 的窗口。然后,使用 widget.NewLabel 來創(chuàng)建一個便簽,并在窗口設(shè)置 垂直方向排列的vbox 布局,首先放置標(biāo)簽,然后再放置一個新建的按鈕。按鈕注冊了一個點(diǎn)擊事件的回調(diào)函數(shù),在點(diǎn)擊按鈕時會把標(biāo)簽的文本更改為 Welcome。最后,運(yùn)行并顯示窗口。
直接運(yùn)行代碼
go run main.go
就會出現(xiàn)一個新的窗口,并顯示帶有一個標(biāo)簽和一個按鈕的界面:

移動端方案
打包
想要在移動設(shè)備上運(yùn)行,必須對應(yīng)用程序進(jìn)行打包。為此,我們可以使用fyne實(shí)用程序“package”子命令,添加適當(dāng)?shù)膮?shù),參考的基本命令如下。打包后,您可以使用平臺開發(fā)工具或fyne“install”子命令進(jìn)行安裝。
fyne package -os android -appID my.domain.appname fyne install -os android
構(gòu)建的Android應(yīng)用程序可以在真實(shí)設(shè)備或Android模擬器中運(yùn)行。iOS的構(gòu)建略有不同。如果"-os"參數(shù)是"ios",則它僅針對真正的ios設(shè)備構(gòu)建。將“-os”指定為“iosimulator”允許應(yīng)用程序在iOS模擬器中運(yùn)行。
fyne package -os ios -appID my.domain.appname fyne package -os iossimulator -appID my.domain.appname
發(fā)布
使用fyne release命令,可以打包應(yīng)用程序進(jìn)行發(fā)布到應(yīng)用商店和市場。確保安裝了標(biāo)準(zhǔn)生成工具并遵循了平臺文檔設(shè)置帳戶和簽名。然后可以執(zhí)行如下當(dāng)-os為ios參數(shù)允許從macOS計(jì)算機(jī)構(gòu)建iOS應(yīng)用程序。
$ fyne release -os ios -certificate "Apple Distribution" -profile "My App Distribution" -appID "com.example.myapp"
上述命令將創(chuàng)建一個“.ipa”文件,然后可以將該文件上載到iOS應(yīng)用商店。
總結(jié)
Fyne 作為一個 UI 工具包,依靠 Go 語言的優(yōu)秀性能,尤其是 goroutine 協(xié)程的異步特性,實(shí)現(xiàn)了高性能、易開發(fā)的圖形界面應(yīng)用。Fyne 的使用和設(shè)計(jì)十分現(xiàn)代化,通過簡單的命令行就能實(shí)現(xiàn)跨平臺的開發(fā)和構(gòu)建,安裝方便,平臺兼容性好。
Fyne 并未基于現(xiàn)有的 UI 庫進(jìn)行開發(fā),而是直接使用不同平臺的圖形驅(qū)動實(shí)現(xiàn),完成了對跨平臺 UI 的抽象,底層代碼值得研究。
以上就是Golang語言的跨平臺UI工具包fyne使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Go跨平臺UI工具包fyne的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Go語言通過chan進(jìn)行數(shù)據(jù)傳遞的方法詳解
這篇文章主要為大家詳細(xì)介紹了Go語言如何通過chan進(jìn)行數(shù)據(jù)傳遞的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-06-06
Go語言結(jié)構(gòu)體Go range的學(xué)習(xí)教程
這篇文章主要為大家介紹了Go語言結(jié)構(gòu)體Go range的學(xué)習(xí)教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07

