BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース .NETのクロスプラットフォームUIツールキットであるAvaloniaの概観

.NETのクロスプラットフォームUIツールキットであるAvaloniaの概観

原文(投稿日:2018/02/15)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます新機能の詳細をご覧ください。

.NET Coreエコシステムで頻繁に言われている欠点は、真のクロスプラットフォームUIツールキットがないことである。過去にSilverlightXamarin Formsのようなマルチプラットフォームでの試みはあったが、誰もまだ完全なXAMLスタイルのクロスプラットフォームオプションを成しえていない。AvaloniaはWindows(.NET Framework、.NET Core)、Linux(GTK)、MacOS、Android、iOSをサポートする計画で、試みようとしている。

基本的にはインスピレーションはWPFであるが、Avaloniaはそのツールキットを直接移植したものではない。スタイルがどのように動作するかなど、デザインにいくつかの重要な変更が加えられている。Avaloniaでは、スタイルはCSSと同じように動作し、スタイルクラスとセレクタをカスケードさせ、オーバーラップさせることができる。対照的に、WPFではコントロールごとに単一のスタイルしか使えない。つまり、Avaloniaでは同じようなスタイルを複数用意する必要性を減らすことができる。

Avaloniaではホバー効果を出すために、トリガではなく、「:pointerover」のような疑似クラスを使用する。他の疑似クラスとして、ボタン用の:focus、:disabled、:pressedや、チェックボックス用の:checkedがある。

AvaloniaスタイルはStyledPropertyにのみバインドできる。これは、同じ基本パターンを持つWPFのDependencyPropertyに似ている。添付プロパティもサポートされている。(これは、子の配置先を知るために必要となるグリッドのようなレイアウトコントロールと連動する)。

Avaloniaのデータバインディング構文の興味深い機能は、非同期操作のサポートである。他のXAMLベースのUIツールキットにはないが、Avaloniaでは、TaskあるいはIObservable操作の結果にバインドできる。

多くの進歩があったが、3人の開発者だけで、大部分の作業を行っている。そのため、彼らはより大きいオープンソースコミュニティに支援を求めている。Jeremy Koritzinsky氏によれば、支援を最も必要とする分野は次の通りである。

ドキュメンテーション

主に、概念的なドキュメント、チュートリアル、ハウツーガイド。

デモアプリ

AvaloniaでWPFのようなチュートリアルアプリケーションを作成し、違いをハイライトする。

XAMLのエキスパート

条件やアダプティブ・レイアウトのような、より進んだXAML構成について手助けしてほしい(Xamarin.Formsにどのように、ある程度のアダプティブ・レイアウトを持たせるかと同じように)。

我々が対応できていない共通のコントロール

DataGrid: 必要なのは分かっているが、現時点で時間がなくて移植できていないコードがたくさんある(WPFまたはUWPの実装はどれも、現在のAvaloniaのすべてと言ってよいLOCに近づいている)

2D Graphicsのエキスパート

具体的には、DirectX以外のレンダリングサブシステムでのテキストレイアウト/レンダリングを適切に行うための専門家が必要である。WindowsでないプラットフォームとしてSkiaを使えるが、Skiaにはテキストレイアウトエンジンがない。

Visual Studio Extension

拡張機能を新しいデザイナであるXAMLインテリセンスにアップグレードする。

AvaloniaはMITライセンス下で開発されている。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT