第8回では、2024年3月末のDioxus 0.5リリースに合わせて、機能変更のポイントをWebプラットフォームに絞って紹介し、第7回で作成したアプリをバージョン0.5対応となるように修正します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載のサンプルコードをGitHubで公開しています。こちらからダウンロードしてみてください。
第7回の執筆後に、Dioxusはバージョン0.5がリリースされました(第7回のサンプルは、1つ前のバージョン0.4に準拠しています)。バージョン0.5はわずかに0.1の違いですが、バージョン0.4とかなりの部分で互換性がなく、基本的には細かく修正しないとアプリをビルド、実行できません。
そこで今回は、サンプルの機能拡張に先立ち、バージョン0.5における変更点のポイントをWebプラットフォーム関連に絞って紹介した後、第7回のサンプルをバージョン0.5に対応させます。
バージョン0.5における多くの機能変更は、コンポーネントのコードをよりシンプルにするとともに、既存の問題を解決するためのものとなっています。公式ブログに記載された主な変更ポイントを以下に列挙します。
ここからは、具体的なアップデート内容を解説していきます。
0.4ではロガーdioxus_loggerのベースはlogクレートでしたが、0.5でtracingクレートに変更されました。tracingクレートは、構造化されたイベントベースの診断情報を収集するためのフレームワークで、特に並列実行環境で有効です。logクレートのまま使い続けると、実行時にエラーとなります。リスト1は、Infoレベルのログ出力を有効にする初期化コードの例です。
use log::info; dioxus_logger::init(log::LevelFilter::Info).expect("failed to init logger"); ↓ use tracing::Level; dioxus_logger::init(Level::INFO).expect("failed to init logger");
後述するdx newコマンドでのアプリ生成では、このロガーを使用するようにクレートの依存関係や初期化コードがあらかじめ用意されます。
Copyright © ITmedia, Inc. All Rights Reserved.