-
Dioxus 0.6 リリース
- Dioxusは、Web、デスクトップ、モバイルアプリを単一のコードベースで構築できるRustベースのフレームワーク
- Flutterより優れたフレームワークを目指している
- フルスタックWebサポートと型安全なサーバー/クライアント通信を重視し、高速な性能と開発者体験の向上に焦点を当てている
- 今回の0.6リリースは、Dioxusをより使いやすくし、開発者体験を改善し、バグを修正することに重点を置いている
-
主な機能改善
- モバイルシミュレーター対応: AndroidおよびiOSシミュレーターと実機でアプリを実行できる機能を追加。
- マジックホットリロード: フォーマット済み文字列、属性、ネストされたrsx!{}のホットリロードに対応。
- インタラクティブCLI: 新しいUXでDioxus CLIを書き直し、使いやすさを改善。
- インラインスタックトレース: WASM panicとログをターミナルに直接キャプチャ。
- ネイティブサーバー関数: デスクトップおよびモバイルアプリ向けのインラインサーバーRPCをサポート。
-
開発者体験の改善
- トーストとローディング画面: Webアプリ開発中に新しいトーストとローディング画面を追加。
- 自動補完の改善: RSXの自動補完機能を大幅に改善。
- アセットシステムの安定化: ネイティブアプリに統合されたリンクベースのアセットシステムを安定化。
- ストリーミングHTML: サーバーからクライアントへのSuspenseおよびエラーバウンダリのストリーミングをサポート。
- SSGおよびISG: 静的サイト生成および増分静的再生成をサポート。
- エラー処理: イベントハンドラー、タスク、コンポーネントで
?を使ったエラー処理に対応。
- メタ要素: ドキュメント属性を設定するための新しいHead、Title、Meta、Link要素を追加。
- 同期 prevent_default: すべてのプラットフォームでイベントを同期的に処理。
- onresizeイベントハンドラー: IntersectionObserverなしで要素のサイズを追跡。
- onvisibleイベントハンドラー: IntersectionObserverなしで要素の可視性を追跡。
- WGPU統合: WGPUサーフェスおよび子ウィンドウの上にDioxusをオーバーレイとしてレンダリング。
- dx bundle: Web、iOS、Android向けの完全なdx bundleサポート。
- jsonモード: サードパーティツールおよびCI/CDパイプラインで使えるよう、CLIメッセージをJSONで出力。
- 新しいテンプレート: クロスプラットフォームアプリ向けの3つの新しいスターターテンプレート。
- ナイトリーチュートリアルとガイド: Dioxus 0.6以降向けの新しいチュートリアルとガイド。
- バイナリパッチングのプロトタイプ: 新しい純Rust製ホットリロードエンジンのプロトタイプ。
-
リリース情報
- Dioxus 0.6は、350件以上のプルリクエストがマージされ、数百件のIssueが解決された最大規模のリリース。
- ホットリロード、自動補完、アセットバンドリングの品質を大幅に改善することを目指している。
- Dioxus CLIをより堅牢で使いやすくすることを目指している。
- モバイルツールをdioxus CLIにインライン統合し、ファーストクラスのモバイルサポートを提供することを目指している。
-
インタラクティブなコマンドラインツール
- Dioxus 0.6は完全に刷新されたCLI体験を提供。
- 新しいCLIは、ライブ進捗バー、アニメーション、インタラクティブなフィルターシステム、ログレベルをリアルタイムで変更できる機能などをサポート。
-
AndroidおよびiOS対応
- Dioxus 0.6では、dioxus CLIが
dx serve --platform ios/androidを標準でサポート。
- モバイルプラットフォームに対するファーストクラスサポートを提供し、AndroidおよびiOSシミュレーターターゲットはデスクトップと同等の機能をサポート。
-
ホットリロードエンジン刷新
- Dioxusのホットリロードエンジンに大幅な改善を導入。
- フォーマット済み文字列、ネストされたrsxブロック、コンポーネント属性、および単純なRust式のホットリロードをサポート。
-
自動補完機能刷新
rsx! {}の自動補完機能を大幅に改善。
- Rust-analyzerとの統合を改善し、より良い自動補完体験を提供。
-
インラインWASMスタックトレースとトレーシング統合
- WASMアプリ向けのトレーシング統合を提供し、panicとログをキャプチャしてターミナルに送信。
-
トーストとローディング画面
- Webアプリ開発中にビルド進行状況を示すローディング画面と、ビルド状態を示すトーストを提供。
-
フルスタックデスクトップおよびモバイル
- ネイティブアプリとサーバー関数を統合し、デスクトップおよびモバイルターゲットでサーバー関数が標準で動作するようにした。
-
Manganisアセットシステムの安定化
- 新しいアセットシステムManganisを安定化し、複数のバグと性能問題を解決。
-
SuspenseとHTMLストリーミング
- 非同期UI向けの新しいコアプリミティブであるSuspenseバウンダリを導入。
- Dioxusフルスタックはサーバーから各Suspenseバウンダリをストリーミングし、ページ全体の読み込みを待たずに各チャンクを配信。
-
静的サイト生成とISG
- 静的サイト生成および増分静的生成のサポートにより、SEOを改善し、ユーザーの読み込み時間を短縮。
-
ドキュメント要素: Title {}, Link {}, Stylesheet, Meta {}
- HTMLドキュメントオブジェクトとやり取りできる特別な要素を提供し、追加のJavaScriptなしでドキュメント属性を設定できる。
-
クエスチョンマークによるエラー処理
- ElementがもはやOptionではなくResultになったことで、Rustの一般的なエラー処理をコンポーネント内で利用できる。
-
同期 prevent_default
- すべてのイベント処理を同期的に実行できるよう改善し、
dioxus_prevent_default属性が不要になった。
-
onresizeおよびonvisibleイベントハンドラー
- 要素のサイズと可視性を追跡できる特別なハンドラーを提供し、JavaScriptなしでリッチなインタラクションを実現できる。
-
ハイブリッドWGPUオーバーレイ
- Dioxusデスクトップの「子ウィンドウ」機能により、既存のウィンドウ上にネイティブDioxusアプリをオーバーレイとして統合できる。
-
Web、iOS、Androidバンドル対応
dx bundleにWebおよびモバイル対応を追加し、さまざまなターゲット向けにバンドル可能にした。
-
CI / CLI向けJSON出力
- CLIのJSON出力モードを提供し、ログをJSON形式で受け取れる。
-
新しいスターターテンプレート
- クロスプラットフォームアプリ向けに3つの新しいスターターテンプレートを提供。
-
ナイトリードキュメント、チュートリアル、新しいガイド
- ドキュメントとチュートリアルを大幅に刷新し、基本的な内容を扱い、デプロイに重点を置いている。
-
インプレースバイナリパッチングのプレビュー
- Rustコードのホットリロードを追加するための実験を進めている。
-
小さな変更点
- システムトレイ対応、カスタムイベントループ、dioxus-documentおよびdioxus-historyの分離、eval APIの簡素化など、さまざまな小さな変更を含む。
-
0.5から0.6へのアップグレード
- いくつかのAPI変更はあるが、多くの場合は容易に修正できる。
-
結論
- 今回のリリースは多くの問題を解決し、さまざまな機能を改善することで、Dioxus 0.6を最も完成度の高いリリースにしている。
- 今後は新機能よりも、チュートリアル動画の制作、ドキュメント整備、バグ修正、性能改善、コミュニティとの協業に重点を置く予定。
3件のコメント
最近はtauriを使っていましたが、これも一度試してみたいですね
Dioxus - React に影響を受けた Rust 向けクロスプラットフォーム UI ライブラリ
Dioxus 0.5 - Rust で開発する Web、デスクトップ、モバイルアプリ
Hacker Newsの意見
あるユーザーは新しいリリースを試した経験を共有し、
cargo installを使ってプロジェクトを作成しdx serveを実行したものの、コンパイラエラーが発生したと述べている。標準的な Rust のワークフローを使っていれば、より簡単にデバッグできただろうと考えている。vを押して詳細ログを有効化できるが、追加の明確な情報は提供されなかった。別のユーザーは、半年ごとに Rust GUI フレームワークを試しているが、デモやプレイグラウンドのダウンロード時にエラーが発生すると述べている。長期的な投資判断は慎重にすべきだと考えている。
Dioxus は、JavaScript を最小限に抑えながらクロスプラットフォーム機能を提供できる唯一の Web プラットフォーム技術ツールだと言及されている。WGPU レンダリングスタックの進展を前向きに評価している。
Dioxus にはエコシステムの不足があり、コンポーネントライブラリもないと言及されている。仮想 DOM に対する確信も薄い。競合の Leptos を追跡し、使用しているという。
サーバー側で Dioxus を使用しており、コンポーネントの書き方と開発者体験は非常に良いと評価している。
Lustre を見つけて採用して以来、The Elm Architecture 以外を使うつもりはないと述べている。Rust の Iced を使ってシナリオエディタのプロトタイプを構築中で、System76 が Cosmic の構築に使っているため信頼している。
新しい技術フレームワークの中で最も有望だと評価しており、成功すれば他のすべてのフレームワークを置き換えられるかもしれないと述べている。性能を重視しており、Rust がセキュリティと性能の基盤を提供している。
Dioxus はベンチャーキャピタルを誘致しているため、将来を賭ける前に注意すべきだと述べている。著作権譲渡や CLA が必要かどうか、貢献者のうち何人が給与を受け取っているのかに関する情報が不足している。
投稿タイトルのコントラストは、ページ背景とより調和するよう改善できると提案している。Qt の現在の立ち位置やアクセシビリティ、HiDPI 画面への対応について比較を問いかけている。C++ と Python 以外の言語向け高品質バインディングが不足していると感じており、より良いバインディングとツールがあればもっと人気が出るだろうと述べている。
新しいホットリロード機能は驚くべきものだと評価しており、他の Rust Web フレームワークでは UI の更新を待つことが大きな問題だったと述べている。