概要
- Avalonia 12 と .NET 11 Preview に合わせ、 .NET MAUI向けAvaloniaバックエンドの初プレビュー を発表
- LinuxやWebAssembly など新しいプラットフォームへの展開が可能
- クロスプラットフォームUIの一貫性 と柔軟性を提供
- 既存の.NET MAUIアプリの移植や新規開発で多数の改善を実施
- コントロール互換性や新機能、今後の拡張も視野に入れた進化
Avalonia MAUIバックエンド 初プレビュー発表
- Avalonia 12 および .NET 11 Preview と同時に、.NET MAUI向け Avaloniaバックエンド の初プレビューを公開
- Avalonia を活用し、.NET MAUIアプリを LinuxやWebAssembly など新たなプラットフォームへ展開可能
- 昨秋以降、 .NET MAUIへのAvalonia統合 に大きく前進
- クロスプラットフォームUIの一貫性 を目指し、プラットフォームごとの差異を最小化
- ネイティブUI と 描画UI を選択可能、用途やデザインに応じた柔軟な選択肢を提供
導入手順(4ステップ)
- .NET MAUIアプリ を作成
- Avalonia.Controls.Maui.Desktop NuGet パッケージを追加
- net11.0ターゲットフレームワーク を追加
- MauiBuilder にUseAvaloniaAppを追加
- 以上でセットアップ完了、 net11.0で実行 するだけでアプリ起動
- Avaloniaブートストラッパー不要、独自拡張やソースジェネレータの無効化も可能
- 公式リポジトリに 各種サンプル を用意
Avalonia自体の改善
- このプロジェクトを通じ、 Avalonia自体の機能強化 を実現
- .NET MAUIとAvaloniaのコントロール差 を縮小し、MAUI特有のコントロール実装を回避
- Avalonia 12 で新たな ナビゲーションAPIやコントロール を導入
- .NET MAUIハンドラ はAvaloniaのプリミティブ上に構築、 Avalonia APIで完全カスタマイズ 可能
- 全プラットフォームで一貫した見た目 を維持
テスト方法と移植事例
- 新ライブラリの検証のため、 既存の.NET MAUIアプリの移植 や 新規アプリ開発 を実施
- MauiPlanets や 2048 などの移植で動作検証
- .NET MAUI Control Gallery
- MAUIリポジトリの公式ギャラリーで、 WASMなどでの動作比較 に活用
- AlohaAI
- Jakub Florkowski(.NET MAUIチーム)とGitHub Copilotの共同開発アプリ
- LLMや機械学習の教育用、 テーマ切替・NativeAOT対応・カスタムタブバー などを追加
- 構造はオリジナルをほぼ踏襲、 全MAUIプラットフォームで同様に動作
- MyConference
- .NET MAUI Live StreamでのAI活用デモアプリ
- テーマ・トリミング問題修正、CORSプロキシ追加 でWebAssembly対応
- Avalonia/MAUI Nativeの両方で動作確認
ネイティブUIと描画UIの選択
- ネイティブUI はOSの標準コントロールを利用し、 ホストOSとの統一感 を重視
- Avalonia.Controls.Maui は 全プラットフォームで一貫したUI を実現
- 用途や要件に応じた選択肢 を提供、 柔軟なUI設計 が可能
既存MAUIサンプル・ライブラリとの連携
- WeatherTwentyOne
- .NET 6向けMAUIサンプルアプリ
- FlexLayoutによるサイドバーやグリッド など独自UIをWebViewで移植、 Linux・WASMで良好に動作
- GraphicsView
- .NET MAUIの GraphicsViewやプリミティブコントロール 上で構築されたコントロールも高い互換性
- Jonathan DickやAllan Ritchieの既存ライブラリも ほぼそのまま動作
- Avalonia MAUIへの移行がスムーズ
- SkiaSharp.Views.Maui
- SkiaSharp依存ライブラリも Avalonia MAUIで動作可能
- MapApp はデスクトップ・WASM・MAUI Nativeで同一実装を実現
- Mapsui.Maui もハンドラー経由で 変更なしで利用可能
今後の展望
- Maui.Essentialsの独自実装 を開始、 APIサポート拡張 を計画
- WinUIとの相互運用、Avaloniaコントロールのホストを予定
- コントロールライブラリアーサー向け に、 ネイティブ・描画拡張パターン を策定中
- .NET 11正式リリース に向けさらなる進化
- Avalonia MAUIの利用拡大・新規コントロールやライブラリの移植促進 を期待
Avalonia MAUI は、.NET MAUIユーザーに 新しい展開先とUI設計の自由度 をもたらし、今後も 機能拡張とエコシステムの成長 が見込まれます。