プロジェクト構成
Rust プロジェクトでは、アプリケーションコードを Cargo パッケージに置き、開発コマンドは小さな Bun パッケージに置きます。
#生成されるファイル
my-app/
├── resources/
│ └── icon.png
├── src/main.rs
├── Cargo.toml
├── Cargo.lock
├── quickgui.config.ts
├── package.json
└── README.md初回のビルドが成功したら Cargo.lock をコミットします。大きなアプリは通常の Rust モジュールに分割します。
#アプリケーションのエントリ
src/main.rs は Application::new().run(...) で起動し、そのコールバックからウィンドウを開きます。各ウィンドウは View を所有します。設定の entry はクレートのディレクトリです。
fn main() -> Result<(), quickgui::AppError> {
Application::new().run(|cx| {
cx.open_window(WindowOptions::new("My App").size(760.0, 520.0), App);
})
}#設定
import { defineConfig } from "@quickgui/cli";
export default defineConfig({
language: "rust",
name: "My App",
identifier: "com.example.my-app",
entry: ".",
fonts: ["assets/MyFont.ttf"],
});アプリアイコンは resources/icon.png です。追加ファイルは resources に列挙できます。アプリアイコンとバンドルするリソースを参照してください。TOML でも同じキーを使えます。CLI は quickgui.config.ts より先に quickgui.toml を読みます。任意のクレート機能は、アプリ設定の extensions ではなく Cargo.toml で有効にします。
#パッケージ
アプリケーションは quickgui クレートに依存します。@quickgui/cli は開発用の依存関係です。任意の terminal、markdown、editor、updater 機能は Cargo の features です。プロジェクトにあるクレートのバージョンはそのままにして、feature を追加します:
[dependencies]
quickgui = { version = "...", features = ["updater"] }#ローカル開発
quickgui check
quickgui test
quickgui fmt
quickgui dev
quickgui builddev はソースの変更に合わせて再ビルドします。
