今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
いま読んでいる一膳AvaloniaUI/AvaloniaWPF の精神的後継者として、Windows・macOS・Linux・iOS・Android・WebAssembly をサポートするクロスプラットフォーム .NET UI フレームワークです。信頼度 1.46ほかの一膳rtk-ai/rtkエージェント向けバッシュ出力を最大90%圧縮するRust製CLIプロキシ信頼度 1.57ほかの一膳ScrapeGraphAI/Scrapegraph-ai大規模言語モデルとグラフロジックを使ってWebサイトやローカルドキュメントからデータを抽出するPythonライブラリです。信頼度 1.56
今日の優良食堂 · ギット飯が代わりに導入・分析

AvaloniaUI/Avalonia

WPF の精神的後継者として、Windows・macOS・Linux・iOS・Android・WebAssembly をサポートするクロスプラットフォーム .NET UI フレームワークです。

WPF で書いてきた XAML やデータバインディングをそのまま持ち込んで、同じコードベースから Windows・macOS・Linux 向けにビルドし、実機で挙動を並べて確かめられます。既存の WPF アプリなら Avalonia XPF で移植範囲を絞り込みながら macOS や Linux に広げられ、iOS や Android、WebAssembly までひとつの C# プロジェクトで動かす手応えを今日試せます。VS Code や Visual Studio、Rider でネイティブに開発できるので、環境を変えずにまず1画面組んで動かしてみるのがおすすめです。

01 / 概要
何をするものか一文で言うと
ひとことでWPF の精神的後継者として、Windows・macOS・Linux・iOS・Android・WebAssembly をサポートするクロスプラットフォーム .NET UI フレームワークです。

Avaloniaは、C#とXAMLでデスクトップ・モバイル・組み込み・WebAssembly向けアプリを開発できるクロスプラットフォームUIフレームワークです。対応範囲はWindows・macOS・Linuxなど主要デスクトップOSからモバイルやブラウザまで及び、単一コードベースからUIを描画できます。WPFやXamarin.Formsの後継として位置づけられている、.NET向けUI基盤を目指すプロジェクトです。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

Avalonia.Baseが提供する共通レイヤーの上に、Skiaによる描画エンジンと各OS向けバックエンドを積み重ねる構成です。XAML側はAvalonia.Markup.Xaml.Loaderがコンパイルし、論理ツリーとビジュアルツリーに変換してからSkiaで実際の画面を描きます。Windows向けにはAvalonia.Win32、Linux向けにはAvalonia.X11、macOS向けにはnative/Avalonia.Native配下のObjective-C++コードが、それぞれウィンドウ管理や入力処理を担います。native/Avalonia.Native/src/OSXには、AvnView.mmやWindowImpl.mmなどウィンドウ表示・キー入力・テキスト入力方式を扱う実装が並んでいます。さらに.nuke配下のビルドスクリプトと大量の.ncrunchプロジェクト設定が、パッケージ生成と単体テストを自動化する土台になっています。Avalonia.Headless系のプロジェクトも見られ、画面を出さずにUIロジックを検証する仕組みも用意されています。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    build.shまたはbuild.cmdを実行すると、.NET SDKや各種ワークロードの有無をまず確認される場面に出会います。

  2. STEP 02

    Avalonia.slnxをIDEで開くと、Avalonia.BaseやAvalonia.Controlsなど数十の中核プロジェクトが並ぶ大規模ソリューションだと分かります。

  3. STEP 03

    ControlCatalog系プロジェクトをデスクトップ向けに起動すると、Button・TextBoxなど各種コントロールを一覧できるカタログ画面が立ち上がります。

  4. STEP 04

    Avalonia.Headless.XUnitやNUnit向けテストを走らせると、実画面を表示せずにUIロジックの検証結果だけを確認できます。

  5. STEP 05

    macOS向けにnative/Avalonia.Native配下をビルドしようとすると、XcodeプロジェクトとObjective-C++のビルド環境が必要だと気づきます。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

ソースからビルドすれば、Windows・Linux・macOSなど各OS向けのAvaloniaランタイムと、動作確認用のControlCatalogサンプルが手に入ります。加えて.nukeとncrunch設定群により、単体テストや描画テストを自動で回せる開発基盤も一緒に得られます。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

巨大なモノレポで、デスクトップ・Android・iOS・ブラウザ向けSDKやワークロードを一通り揃えないと全体ビルドが通りにくい構成です。

02

macOS・iOS向けのネイティブ部分はObjective-C++で書かれており、Xcodeでのビルドが別途必要になります。

03

与えられた資料には実行時のスクリーンショットや動作ログが含まれておらず、実際の見た目や性能は書面だけでは判断できません。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

C#とXAMLで複数OS向けUIをひとつのコードベースから作りたい開発者、特にWPFやXamarin出身者に向いた基盤です。Avalonia.Base・各OSバックエンド・Skia描画・XAMLコンパイラという層構造と、.nuke/ncrunchによる自動テスト網が確認できるため、構造面での信頼性は資料だけからでも判断できます。ただし実際の見た目やパフォーマンスは、手元でControlCatalogなどを動かして確かめる必要があります。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する