ウィンドウとネイティブサービス
main から native.Run を 1 回呼び出します。起動コールバックがウィンドウを作り、アプリケーションのハンドラーを登録します。
#ウィンドウのライフタイム
native.NewWindow は、独自のコンポーネントを持つウィンドウを作ります。ウィンドウを閉じるとその UI は破棄されます。あとのコールバックでウィンドウハンドルが必要なら、コンポーネントの構築中に native.CurrentWindow() をキャプチャしてください。
Dock アイコンは native.App.OnReopen で扱い、表示中のウィンドウがないときに新しいウィンドウを開きます。
#コマンドとサービス
ダイアログ、クリップボード、シェル、外観、メニュー、通知、その他のプラットフォーム機能には、型付きの native API を使います。結果を返す操作は完了コールバックを使います。ブロックせず、そこでエラーを処理してください。トレイアイコンはトレイアイコンを参照してください。
バックグラウンドの作業では、ui.Async はコンポーネントが破棄されるとキャンセルします。native.Dispatch は結果を UI ゴルーチンへ戻します。シグナルの読み書きはそこでだけ行います。
独立したネイティブパッケージは native.InvokeExtension と native.OpenExtension を使います。拡張の作成を参照してください。
#イベントとファイル監視
native.WatchFiles(paths, changed, ready) は OS の通知を使い、停止関数を返します。コンポーネントが所有するウォッチャーでは、停止関数を ui.OnCleanup に登録します。ポーリングより、ネイティブのイベントまたはウォッチャーを優先してください。
