GoogleGoでmacOS/Cocoaアプリケーションを作成することは可能ですか?
Go-Obj-Cブリッジはありますか?(Obj-CのダイナミズムはGolangのインターフェースに最適だと私には思えます)
少なくとも2つをリンクして、昔ながらのC関数を介して相互に通信させることはできますか?
GoogleGoでmacOS/Cocoaアプリケーションを作成することは可能ですか?
Go-Obj-Cブリッジはありますか?(Obj-CのダイナミズムはGolangのインターフェースに最適だと私には思えます)
少なくとも2つをリンクして、昔ながらのC関数を介して相互に通信させることはできますか?
現在、CocoaをGoにバインドするためのパッケージはないようです。Cocoaは、CのスーパーセットであるObjective-Cで記述されています。Objective-Cメッセージは、コンパイラーによってC関数呼び出しに変換されます(または、少なくとも、最近のコンパイラーについてはよくわかりません)。
objc_msgSend(object, sel_getUid("foo:bar:err:"), var, var2, errVar);
したがって、GoのCocoaを使用することは間違いなく可能です。
GoアプリでCocoaを使用したいという問題が発生した場合、IMHOは一歩下がって、解決しようとしている問題について考えます。Cocoaは名前付きパラメーターを多用し、メソッドは非常に長いシグニチャーを持つことができます。これはObjective-Cでうまく機能しますが、コードがGoで同じように見えるとは思えません。一方、Goは別の一連の問題を解決します。たぶん、Goでライブラリ(アプリケーションロジック)を作成し、Objective-C / CocoaでGUIコードを作成することでうまくいくでしょうか?
TL; DR: Goでモデルを作成し、Objective-CでGUIコードを作成するのはどうですか?
例として私のブログ投稿を見ることができます。作業を続けていなかったのではないかと思いますが、Cocoa / ObjC/Goプロジェクトのセットアップに役立つソースコードを次に示します。
READMEに記載されているように、このようなことができるようになります。
package main
import (
"github.com/alediaferia/gogoa"
)
func main() {
app := gogoa.SharedApplication()
window := gogoa.NewWindow(0, 0, 200, 200)
window.SetTitle("Gogoga!")
window.MakeKeyAndOrderFront()
app.Run()
}