.NET MAUI:概要
この記事は、.NET MAUIの公式ドキュメントを、筆者の理解で短く整理した備忘録。
誤認識やミスリード、誤植の可能性あり。正確さが必要な箇所は一次情報(公式)を参照。
公式ドキュメント: https://learn.microsoft.com/ja-jp/dotnet/maui/what-is-maui?view=net-maui-8.0#how-net-maui-works
.NET MAUIの概要
.NET MAUIは、Android / iOS / macOS / Windows 向けアプリ開発のフレームワーク。使用言語は C# と XAML。
「共通コード中心で複数プラットフォーム対応」のための仕組み。各プラットフォーム固有のAPI差分を、可能な範囲で共通APIとして扱う方向性。
.NET MAUIには、プラットフォーム別の実装(ターゲット)が用意されている。
- .NET for Android
- .NET for iOS
- .NET for Mac Catalyst(macOS向け)
- Windows UI 3(WinUI 3)
※公式では「など」の表現。ここでは代表例のみ列挙。
メインコードから各ターゲットへの関係について、公式の要点。
各ターゲットは共通のBCL(.NET基本クラスライブラリ)にアクセス可能。
Android / iOS / Mac Catalyst は Mono 上で動作、Windows は CoreCLR 上で動作。
整理(自分用)。
- Mono Runtime:Android / iOS / Mac Catalyst
- .NET CoreCLR:Windows
ドキュメントと図から読み取れる範囲の理解。
- 自作コード(C#/XAML)をMAUI経由で各プラットフォーム向けにビルド
- 共通基盤(BCL)を踏みつつ、実行時は各OS側のランタイム上で動作
デバイス別のコンパイルの流れ
- Android:C# → IL(中間言語)→(主に)JIT → ネイティブ
- Windows:WinUI 3 を使用 → Windowsデスクトップ向けアプリ(.NET上で動作)
- iOS:C# →(基本)AOT → ネイティブ(ARM)
- macOS:UIKitベース(iOS系)→ Mac Catalyst → macOS上で動作(AppKit/プラットフォームAPIで拡張)
※クロスプラットフォーム開発でも、iOS / Mac Catalyst(macOS)向けビルドはMac必須。
.NET MAUIでの開発でできること
- データ表示(例:テキスト、画像)
- アクション(例:ボタン押下で処理)
- 状態表示(例:プログレスバー)
- コレクション表示(例:スクロール可能リスト)
- データ選択(例:チェックボックス)
- ページデザイン(レイアウト)
- ナビゲーション(メニュー、タブ)
- データとUIの接続(表示更新の考え方)
- UIカスタマイズ(見た目、挙動)
- デバイス機能の利用(例:カメラ、位置情報)
- グラフィック描画(図、チャート)
- 複数プラットフォーム対応(Android/iOSなど)
- ホットリロード(変更反映の高速化:対応は環境・機能依存)
デバイス機能用のクロスプラットフォーム API
.NET MAUIには、端末機能を扱うための共通APIも用意。
- 各種センサー(加速度計、コンパス、ジャイロなど)
- ネットワーク接続状態の監視(変更検知)
- デバイス情報の取得
- コピー&ペースト
- 端末内ファイルの選択
- 安全な保存(機密データ系)
- テキスト読み上げ(TTS)
- ブラウザー起動(URLを開く)
まとめ(自分用)
- MAUI:C# / XAML で複数プラットフォーム対応を狙う枠組み
- 共通基盤(BCL)+ 各OSのランタイム上で動作(Mono / CoreCLR)
- iOS / macOS(Mac Catalyst)向けビルドはMac必須
次に確認すること
- プロジェクト構成(どこに何を書くか)
- XAMLとC#の役割分担
- プラットフォーム固有処理を入れる場所(必要になったタイミング)