🧬
Dioxus v0.5 でデスクトップアプリを作って学んだこと、妥協したこと
概要
Dioxus でデスクトップアプリを作って学んだこと、妥協したこと、所感を雑にまとめました。
作りたかったデスクトップアプリ
- DICOM ファイルを読み込んで画像を表示・ダウンロードできるデスクトップアプリです。
- サポートする OS は Windows, Mac, Linux です。
- リポジトリは こちら です。
環境
- cargo 1.78.0 (54d8815d0 2024-03-26)
- rustup 1.27.1 (54dd3d00f 2024-04-24)
- dioxus 0.5.4
学んだこと
-
dx serve
で起動したアプリは常にフォアグラウンド表示されて鬱陶しいですが、この動作はdx serve
で起動した場合のみで exe から起動した場合はバックグラウンドに移動できます。 - タイトルの変更は main 関数で設定する必要があります。
https://github.com/st-little/dicom-dripper-for-desktop/blob/v0.1.0/src/main.rs#L49 - CSS を反映させるには App コンポーネントで
style { {include_str!("../assets/bulma.min.css")} }
を追記する必要があります。
https://github.com/st-little/dicom-dripper-for-desktop/blob/v0.1.0/src/main.rs#L58 - exe のファイル名は
Cargo.toml > package.name
ですが、現時点でそれ以外のファイル名をつけることは難しそうです。 - exe を実行してアプリを起動するとターミナルが表示されますが、 main.rs に
#![windows_subsystem = "windows"]
を追記することで非表示にすることができます。
https://github.com/st-little/dicom-dripper-for-desktop/blob/v0.1.0/src/main.rs#L2
妥協したこと
- アイコンが変更できなかったのでデフォルトのアイコンのままリリースしました。(#924)
- Mac で画像がダウンロードできない不具合があるため Windows のみリリースしました。(#4633)
-
dx bundle
で作成したインストーラーmsi
でインストールするとアプリが起動しないためexe
のみリリースしました。(原因不明) - exe のファイル名にバージョンをつけたかったが現時点では無理そうなのでデフォルトのファイル名でリリースしました。
所感
exe のファイルサイズが 8MB と小さいのは素晴らしいですが、 Electron の代替手段にはまだ厳しそう...
Discussion