
今回は「クロスプラットフォーム.NET MAUIと仕組み」について解説します。
クロスプラットフォームとは、異なるプラットフォーム(OS、ミドルウェア、ライブラリ、ランタイム)上で、同じものを動かすことができるプログラムのことを言います。(=マルチプラットフォームともいいます。)
.NET MAUIとは
一言でいうと、.NET MAUIは、C# とXAMLを使用して、1つのコードベースからAndroid、iOS、macOS、Windowsで実行できるアプリの構築を可能としたオープンソースです。
.NET MAUIは誰向け?
.NET MAUIは、次の目的を持つ開発者向けです。
- 1度の開発でAndroid、iOS、macOS、Windowsで実行できるすべてのアプリを開発したい方
- iOSとAndroidどっちがいいのか悩んでいる方
- C#エンジニアとして活躍している方やこれからC#を勉強しようとしている方
- Visual Studioの1つの共有コードベースから、XAMLとC#でクロスプラットフォームアプリを作成したい方
- クロスプラットフォーム間のUIのレイアウトと設計、コード、テスト、およびビジネスロジックを共有して使いたい方
.NET MAUIを使う主な目的
.NET MAUIを使う主な目的の1つは、アプリロジックとUIレイアウトを単一のコードで実装できるようにすることです。
.NET MAUIのしくみ
.NET MAUIは、Android、iOS、macOS、Windowsの各APIを1つのAPIに統合することで、「1度書けばどこでも動く」という開発者の悩みを解決すると同時に、それぞれのプラットフォームのカスタマイズも可能にしたものです。
これだけで動く
.NET MAUIでは、主に.NET MAUI APIと対話するコードを記述します。
すると、.NET MAUIはネイティブプラットフォームAPIを直接使用します。さらに、必要に応じて、アプリコードでプラットフォームAPIを直接実行します。

さらに詳しく
・BCLを使用すると、さまざまなプラットフォームで実行されているアプリが共通のビジネスロジックを共有できるようになります。
・.NET for Android、.NET for iOS、.NET for macOS、Windows UI 3(WinUI3)これらのライブラリはすべて、同じ.NET基本クラスライブラリ(BCL)にアクセスできます。
・BCLは、コードの実行環境を提供するために.NETランタイムに依存します。
・Android、iOS、macOSの場合、環境は.NETランタイムの実装であるMonoによって実装されます。
・Windowsでは、.NET CoreCLRによって実行されます。
iOSおよびmacOS用のアプリをビルドするには、Macが必要です。
まとめ
- .NET MAUIを使えば、デスクトップとモバイル向けのクロスプラットフォームネイティブアプリケーションの構築ができます。
- 初めての方でも、C#さえ習得すればいろいろなアプリケーションを開発ができるようになります。
- クロスプラットフォーム間のUIのレイアウトと設計、コード、テスト、およびビジネスロジックを共有できる。
ネイティブアプリとは、Google storeやApple storeからアプリをダウンロードしインストールして使用するもの。
ダウンロード不要でWebブラウザ上で動くアプリは「Webアプリ」と呼びます。