-- Go

Go ile Masaüstü Uygulama Geliştirme

Merhaba,

Yeni bir programlama dili öğrenirken ilk merak edilebilecek konu, bu teknolojiyle ilgili Framework’ler ve özellikle de “masaüstü uygulama geliştiriliyor mu abi?” sorusu olabilir.

Go programlama dili ‘official’ olarak bir masaüstü uygulama Framework’ü yayınlamadı. Çünkü amacı bu değil… Go’nun amacını sistem ve web server odaklı alt yapı uygulamaları geliştirmektir. Ancak teknolojinin açık kaynak olması ve masaüstü uygulama alanında bir çok kaliteli açık kaynak proje olması imdadımıza yetişiyor ve bu teknolojileri Go ile port eden arkadaşlar sayesinde “evet, Go ile masaüstü uygulama geliştirebiliyoruz” diyebiliyorum.

Peki nasıl?

Bununla ilgili bir çok Framework ve yönteme denk geldim. Kimisi de cross-platform mantığıyla geliştirilmiş. Yani Electron.js gibi HTML-JS ile Go kullanılarak masaüstü uygulama geliştirme olayı… Ancak bildiğimiz farklı Framework’ler ile ‘native’ masaüstü uygulama geliştirmek de mümkün.

Go ile masaüstü uygulama geliştirmek için kullanabileceğiniz yöntem ve Framework’ler;

Benim tercih konusundaki önerim Qt ve QML ile port edilmiş Go kütüphanesini kullanmanız olacaktır. Qt ve QML çok gelişmiş yeteneklere sahip ve yaygın bir teknolojidir. Qt ve QML’yi Microsoft tarafında WPF ve XAML ile karşılaştırabiliriz.

Benim bu makalede örnekleyeceğim ise ‘andlabs/ui’ olacak. Aslında sadece github hesabındaki örneği kopyala-yapıştır-derle-çalıştır yapacağım.

Örneğe başlayalım;

Öncelikle konsolda ilgili ‘andlabs/ui’ kütüphanesini kuralım.

go get github.com/andlabs/ui

Uygulamanın kaynak kodu;

package main

import (
	"github.com/andlabs/ui"
)

func main() {
	err := ui.Main(func() {
		name := ui.NewEntry()
		button := ui.NewButton("Selamla")
		greeting := ui.NewLabel("")
		box := ui.NewVerticalBox()
		box.Append(ui.NewLabel("Ad:"), false)
		box.Append(name, false)
		box.Append(button, false)
		box.Append(greeting, false)
		window := ui.NewWindow("Merhaba", 250, 100, false)
		window.SetChild(box)
		button.OnClicked(func(*ui.Button) {
			greeting.SetText("Merhaba, " + name.Text() + "!")
		})
		window.OnClosing(func(*ui.Window) bool {
			ui.Quit()
			return true
		})
		window.Show()
	})
	if err != nil {
		panic(err)
	}
}

Projeyi çalıştırırsanız doğrudan çalıştırarak uygulama arayüzünü ekranda gösterecektir.

Aynı şekilde ‘go build’ ile projeyi sadece derleyip .exe üretmesini de sağlayabilirsiniz. Ancak bu derlenmiş uygulamayı çalıştırdığınızda uygulamanın arkasında konsol ekranını da açacaktır. Çünkü bu işlemi konsol üzerinden gerçekleştirir.

Bu nedenle bu uygulamayı aşağıdaki yöntemle derlemeniz gerekiyor.

go build -ldflags -H=windowsgui main.go

Uygulamanın ekran görüntüsü aşağıdaki gibi olacaktır.

xxxxxx

Örneğin kaynak koduna aşağıdaki bağlantıdan erişebilirsiniz;

İyi çalışmalar.
Cihan Özhan

Yorumla

Yorum