はじめに
本連載では、Windows環境で開発可能なマルチプラットフォームGUI技術を解説します。本稿では、マルチプラットフォームに対応したUIフレームワークである、.NET MAUI(.NET マルチプラットフォームアプリ UI)をとりあげます。デスクトップとモバイル(Android)に対応した、簡単なアプリを作成してフレームワークの使い方を解説します。
対象読者
C#とWebシステムの基礎的な知識がある方を対象とします。C#の基本文法などの解説は割愛します。
.NET MAUI
.NET MAUIは、前回でも少し触れましたが、C#とXAMLを利用して単一のソースコードでネイティブのモバイルアプリとデスクトップアプリが開発できるフレームワークです。
執筆時点では、リリース候補版である.NET MAUI RC1(2022年4月12日リリース)が最新バージョンです。このバージョンは、Visual Studio 2022 Preview version 17.2 Preview 3以降に含まれています。
当初、.NET MAUIは昨年リリースされた「.NET 6」に含まれる予定でした。しかしながら開発には時間が必要だったようで、リリースのスケジュールを延ばしていました。RC1に到達したことで、正式リリースはそれほど遠くはないでしょう。
対応OS
.NET MAUIは、Windowsのデスクトップアプリをはじめ、モバイルのAndroid、iOS、そしてmacOS(Mac Catalyst使用)で動作するアプリに対応しています。Linux対応については、.NET Multi-platform App UI(MAUI)for Linuxなど、開発途上のフォーク版があるようです。
.NET MAUIのUIコンポーネント
.NET MAUIには、数多くのUIコンポーネント(クラス)が含まれています。これらのUIコンポーネントを組み合わせることで、かんたんにアプリのUIを実現できます。
UIコントロール
.NET MAUIは、Xamarin.Formsの後継とも呼べるフレームワークです。Xamarin.Formsに含まれていたUIコントロールすべてを引き継ぎ、さらにBlazorWebViewなど、40以上のレイアウトとUIコントロールが利用可能です。
![主なUIコントロール](http://cz-cdn.shoeisha.jp/static/images/article/15907/15907_001.png)
アニメーション
.NET MAUIでは、UIコントロールの拡張メソッドとしてアニメーション動作を実現するメソッドが実装されています。このメソッドを利用して、UIコントロールを回転、スケーリングすることできます。
スタイル
スタイルとは、UIコントロールの外観(位置、フォントサイズなど)をあらかじめ定義するものです。.NET MAUIでは、XAMLでの定義だけでなく、CSSを使用することもできます。
テーマ
テーマとは、複数のスタイルをグループ化するなど、動的に変更するための仕組みです。最近のOSにはライトモード、ダークモードといった、UIの背景色などを変更する機能があります。.NET MAUIでも異なる背景色のスタイルをテーマとして定義し、動的に変更することで、OSのモード変更に対応することができます。