.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#の役割分担
  • プラットフォーム固有処理を入れる場所(必要になったタイミング)
Next Post Previous Post