うどん戦争

体は麺で出来ている。血潮は出汁で、心は醤油。

Avalonia ってどうなの

Avalonia とは

Avalonia (アバロニア) は、WPFに似たマルチプラットフォームGUIフレームワークエストニアの AvaloniaUI 社が開発している。
ライバルは Microsoft が開発している Uno Platform (ウノ・プラットフォーム)。

特徴

リンク

Uno Platformとの比較

Avalonia 0.9 Uno Platform 3.0
開発元 AvaloniaUI Microsoft
開発環境 Visua Studio 2019 Visua Studio 2019
メイン言語 C# C#
UI記述言語 XAML XAML
.NETバージョン .NET Core 3.1 .NET Core 2.2

各種ビルドターゲットへの対応は下記の通り。

Avalonia 0.9 Uno Platform 3.0
Windowsデスクトップアプリ (Windows 7~) ❌(※1)
Windowsストアアプリ (UWP)
MacOSX
Linux ❌(※2)
iOS ❌(※3)
Android ❌(※3)
ウェブブラウザ (WebAssembly)

(※1) 将来的に、Microsoftが開発中の WinUI 3 がリリースされれば対応予定。2021年後半か?
(※2) Uno Platform 3.1 で対応するみたい?
(※3) 将来的に対応するつもりみたい

Avalonia 雑感

ダメ

  • マニュアルが全部英語
  • TextBoxのテキスト入力が、IMEインライン入力に対応していない
    • IMEが画面端に出てくるので、日本語や中国語が入力しにくい
    • TextBoxに適切なフォントを設定しておかないと日本語が文字化けする
    • ロードマップを見た感じ、IME周りは 1.0 で実装していくつもりみたい?

良い

  • WPFに触ったことがあれば、XAMLの書き方はなんとなく分かりそう
    • でもコントロールの具体的な仕様は違うので、マニュアルは読まないとダメ
  • .NET Core 3 のパブリッシュ機能が使えてすごく便利
    • 自己完結(ランタイム不要)の単一実行ファイルが簡単に作れる
      • GUIツールの配布時に「起動の仕方が分かりません」とか言われない
      • ただし初回起動はちょっと遅くなる
    • Windows 10 v1909 と MacOS 10.15.6 では普通に動いた
      • Ubuntu 20.04 ではうまく動かなかった
    • MacOS ではターミナル上で動くプログラムになる
      • .app パッケージへのバンドルがしたければ自分でやる必要がある

結論

Windowsデスクトップアプリだけを作りたいなら WPF の方が良い。将来性なら Uno Platform の方が良さそう。
Avalonia は今その隙間を埋めてくれるGUIフレームワークだけど、バージョン1.0に達していないのもあり、本格的に使ってみるにはまだ早い感じがした。もうちょっと様子見したい。