10:50 - 11:15 (JST)
Rust が好き で、自社ではサービスのバックエンドに採用して実運用しています。
Rust はエコシステムが充実しており、信頼性や速度も高性能であるため、そこに非常に助けられています。環境構築が容易であること、強力な型システムや borrow checker による信頼性、C 言語並の速度が魅力だと感じています。
フロントエンド開発でも Rust の恩恵を受けたい!
今の顧客向けフロントエンドでは TypeScript を使っていて、開発は早いが悩みもあります。(any で型安全性が下がったり、環境構築が大変だったりなど)
Rust のフロントエンド (GUI) crate も色々出てきてるし試してみたい!
運用ツールに取り入れて使ってみました。バックオフィス向け GUI アプリです。 Web 向けフロントエンドである seed-rs を使ったアプリと、デスクトップ GUI crate の iced を使ったアプリの 2 つを作りました。 運用パラメータを変更するためのツールや、テストでの API 呼び出しや設定変更で社内で活用しています。
双方とも The Elm Architecture ベースで、自身は Elm と Rust 経験者なのでとっつきやすさはありました。一般的な SPA として使っています。
今回の発表は作ったものの紹介ですが、Rust のフロントエンドというと egui や dioxus など様々な crate があります。 まだ使用していない GUI crate について、いくつか紹介・比較してみたいと思います。 (e.g. egui, Dioxus, Tauri, Bevy)
今回 Rust で GUI を作成して、やはりデータ型定義まわりがやりやすかったのが印象的でした。(serde を使えるのが良い。) また、enum と match でコンポーネントを振り分けたりなど Rust 特有の良さもあると感じました。 しかし、総じて crate で独自コンポーネントの作成が難しく、主にスタイル (UI の見た目) の調整が大変でした。 キレイでスタイルの調整がやりやすい crate が現れれば、あるいは iced 向けのコンポーネントセットなどが現れれば、業務で Rust GUI を作るのもやりやすくなっていくと思われます。
名和雅実
Fairy Devices Inc., Product Development Team, Engineer
Copyright © Rust.Tokyo 2022 all rights reserved.