インストール
前提条件
CrystalとShardsが必要です。UIngはCrystalの最新版で継続的にテストされています。
アプリケーションのshard.ymlにUIngを追加します。
dependencies:
uing:
github: kojix2/uing
依存関係をインストールします。
shards install
インストール後のスクリプトが、現在のプラットフォームに対応するlibui-ngライブラリを
kojix2/libui-ngのリリースから
ダウンロードします。UIngは対応プラットフォーム向けに保守されたパッチ適用版を使用します。
パッチの詳細はlibui-ngの
devブランチで確認できます。
プラットフォームごとの注意事項
Linux
アプリケーションをビルドする前にGTK 3の開発パッケージをインストールしてください。
パッケージ名はディストリビューションによって異なります。DebianとUbuntuでは
libgtk-3-devです。
sudo apt install libgtk-3-dev
配布先にもGTK 3のランタイムが必要です。
macOS
ネイティブGUIの依存関係には、システムのAppKitフレームワークを使用します。 Intel MacとApple Siliconの両方に対応しています。
Windows
UIngはMSVC、MinGW64、UCRT64に対応しています。Crystalと同じツールチェーンを使います。 MSVCではDeveloper PowerShellなどの開発者シェル、MinGW64とUCRT64では対応するMSYS2 シェルから実行してください。
インストール後のスクリプトは、MSVC用の/MD版と/MT版を両方ダウンロードします。
通常のCrystalビルドでは/MD、--staticを指定したビルドでは/MTが使われます。
コンソールウィンドウを表示しない
WindowsでビルドしたGUI実行ファイルは、コンソールウィンドウを開く場合があります。 配布用の実行ファイルではWindows GUIサブシステムを指定します。
MinGW64またはUCRT64:
crystal build app.cr --link-flags "-mwindows"
MSVC:
crystal build app.cr --link-flags=/SUBSYSTEM:WINDOWS
インストールを確認する
hello.crを作成します。
require "uing"
UIng.init
window = UIng::Window.new("Hello World", 300, 200)
window.on_closing do
UIng.quit
true
end
window.child = UIng::Label.new("Hello from UIng")
window.show
UIng.main
UIng.uninit
次のコマンドで実行します。
crystal run hello.cr
「Hello World」というタイトルのネイティブウィンドウが開けば成功です。 最初のアプリケーションへ進み、ボタンとイベントを扱ってみましょう。