WinUI3 で Windows Application を作ろう
XAML戦隊WinUIジャー
XAML、eXtensible Application Markup Language。燃えるハートでクールに生成される無数のコード達。
彼らの任務は、デザインに侵入した宇宙の犯罪者達と戦い、プログラマとデザイナーの分業と安全を守ることである。
君のハートに、ターゲットロック!
WinUI 3 とは
WinUI 3 is the native UI platform component that ships with the Windows App SDK (completely decoupled from Windows SDKs).
ということで、ネイティブUIプラットフォームコンポーネント郡だそうです。
WinUI 3 は現在 GitHub 上で開発されており、まだ安定版ではないようです。
WinUI のテンプレートを Visual Studio に追加することでプロジェクトが作成できます。
WinUI 3 は C# のためのライブラリと C++ のためのライブラリがあるようですが、よほどのことがない限り C# で十分でしょう。C++は地獄なのでやめましょう。
XAML ってなに?
XAML is a declarative markup language. As applied to the .NET programming model, XAML simplifies creating a UI for a .NET app. You can create visible UI elements in the declarative XAML markup, and then separate the UI definition from the run-time logic by using code-behind files that are joined to the markup through partial class definitions. XAML directly represents the instantiation of objects in a specific set of backing types defined in assemblies. This is unlike most other markup languages, which are typically an interpreted language without such a direct tie to a backing type system. XAML enables a workflow where separate parties can work on the UI and the logic of an app, using potentially different tools.
うーん、難しい言葉使わないで。
「表示される UI 要素を宣言型 XAML マークアップで作成し、...、UI 定義をランタイム ロジックから分離させることができます。」だけ分かればまあ十分そう。
XAML がパースされて最終的にコードを生成するわけです。
XAML のパースに成功して、なおかつコード生成にも成功した状態で生成したコードからエラーが出たときにデバッグが困難すぎてガン萎えします。
XAML を書くときは、こまめにビルドしてエラーがないか確かめながらかかないと原因不明のエラーを大量の編集箇所から特定することになります。
使ってみた感想
WinUI 3 を使ってみて感じたことは、リッチなコンポーネントがライブラリにたくさんあるのがありがたいということ。XAMLが読みにくくて最初は辛かったけど、慣れたらそうでもないということ(ただし間違ったXAMLを書いたときに出てくる Unhandled Exception、おまえだけは許さん)。
Webアプリを作るよりは簡単にいい感じのものが出来上がるので、楽しいです。
WinUI 3 tips
WinUI 3 Gallary
WinUI 3 Gallary は Microsoft Sotre から入手できる WinApp です。
WinUI 3 が備えるコンポーネント郡のドキュメントや Examples などがわかりやすくアプリになったものです。
ここからコードをコピペしていじるだけで大体なんとかなります。
(ちなみにタイポの修正で PR を出したことがあります。)
CommunityToolkit
WinUI 3 のコンポーネントだけでは満足できなくなった場合に便利なのが Windows Community Toolkit です。
たくさんのリッチなコンポーネントや拡張などが存在しており、ながめているだけでも楽しいです。
こちらにも Gallary が存在します。
まとめ
WinUI 3 を使えばなんかそれっぽい WinApp が簡単(嘘)に作れます!
みんなも WinUI 3 を使って XAML で消耗しよう!
Discussion