特徴
- WPF(Windows Presentation Foundation)によく似てる
- 体感7割が同じ
- でも似てるだけで互換性はないよ
- WPFを知ってるととっつきやすい(ノウハウが使える)
- UIはOSのものを使わず独自描画
- どこでもだいたい同じ見た目にできる
- 描画エンジンはGoogleのSkiaやDirect2D
- 対応プラットホームが多い
- 対応済: Windows / macOS / Linux / iOS / Android / WASM / Tizen
- 対応予定: visionOS
- 独自描画なので新プラットホームに対応しやすいそうです
- デスクトップアプリが得意
- モバイルもWASMもできるけど
- ノウハウが多いのはデスクトップアプリ
- デフォルトでOSのライト・ダークテーマに対応
- MVVM[1]やMVU[2]で作れます
- 画面はコードベースの他、XAML[3]でも作れます
- C#+XAML+MVVMで作るパターン
- C#+XAML+コードビハインドで作るパターン
- F#+MVUで作るパターン
- C#/F#だけで作るパターン
- 画面はコードベースの他、XAML[3]でも作れます
🤒よくある誤解
❌ WPFをクロスプラットフォーム対応したもの
- WPFをクロスプラットフォーム化する有料サービスの「Avalonia XPF」とは別物
- 「Avalonia "UI"」と「Avalonia "XPF"」は別物なので注意
Avalonia UI | Avalonia XPF | |
---|---|---|
これはなに | UIフレームワーク | サービス |
価格 | 無料 | 有料 |
誰向け | 誰でも | 企業のみ |
- Avalonia UIは基本的には「いちから作る用」
- WPFとは互換性なし
- 特にStyle周りはCSS風で全然違う
-
StatusBar
みたいな使われなくなったコントロールはなし
- WPFからの移植はしやすい
- WPFとは互換性なし
❌ Microsoft製
- 「AvaloniaUI OÜ」というエストニア拠点の会社が作ってます
- 一時期.NET Foundationに所属していましたが離脱しています
[3:1]が必須
❌ 画面の設計はXAML- Avalonia UIの画面はC#やF#などのコードベースでも作れます
- AvaloniaWithoutXAML
- 「Avalonia.Markup.Declarative」「NXUI」「Avalonia.FuncUI (※F#向け)」などの便利ライブラリもあ
- AvaloniaWithoutXAML
- ある程度の規模(中規模~)やWPFのノウハウが使えるようにXAMLも使えるようになってる、という感じです
- MVVMで組む場合はほぼXAMLを使うことになると思います
❌ クロスプラットフォーム処理ライブラリ
- Avalonia UIは「UI」のフレームワークです
- クロスプラットフォーム処理のためのライブラリやフレームワークではありません
- モバイルでバッテリー残量を取得する、みたいな機能のサポートはありません
- MAUIとかの外部ライブラリを使う前提です
-
Model-View-Update ↩︎