2021-03-21

[Rust] iced

Rusticed
 シンプルさと型安全性にフォーカスしたクロスプラットフォームのGUIライブラリ。

・特徴:全てRustで実装 Windows/macOS/Linux/wasmでWeb環境にもビルド可能 Vulkan/Metal/DirectX11,12など描画システムをサポート
・Cargo.toml:features = ["async-std"] # async-std用のExecutorを使えるようにする
・軽快に動作し非同期処理への対応も行われ、注目度は非常に高い(CE2020-09)

【構成】
State:アプリケーション内の状態を管理
Message:イベントが発生すると送信される
Viewロジック:Stateに基づいて表示内容を決定
Updateロジック:受け取ったMessageに従ってStateの内容を更新
非同期処理
| Command:単発的な処理を非同期で実行 結果やイベントをMessageで送信
| Subscription:常に非同期処理を動作させ、定期的に結果やイベントをMessageで送信
| ヴィジェット:Button Checkbox Image ProgressBar Radio Slider Space Svg Text TextInput Canvas
| レイアウト調整用:Column Container PaneGrid Row Scrollable