.NET 9 向けの .NET MAUI の新機能

.NET 9 の .NET Multi-Platform App UI (.NET MAUI) の焦点は、製品品質を向上させることです。 これには、テスト カバレッジの拡大、エンド ツー エンド シナリオ テスト、バグ修正が含まれます。 .NET MAUI 9 Preview の製品品質の向上の詳細については、次のリリース ノートを参照してください。

重要

Xcode や Android SDK Tools などの外部依存関係に対応するために、.NET MAUI のサポート ポリシーは .NET および .NET Core のサポート ポリシーとは異なっています。 詳細については、「.NET MAUI のサポート ポリシー」をご覧ください。

.NET 9 では、.NET MAUI は .NET ワークロードおよび複数の NuGet パッケージとして出荷されます。 このアプローチの利点は、プロジェクトを特定のバージョンに簡単にピン留めできる一方で、リリースされていないビルドや試験的なビルドを簡単にプレビューできるようにすることです。 新しい .NET MAUI プロジェクトを作成すると、必要な NuGet パッケージがプロジェクトに自動的に追加されます。

.NET 9 の新機能については、「.NET 9 の新機能」を参照してください。

Android

API 34 と JDK 17 を使用する .NET Android 9 Preview には、ビルド時間を短縮し、アプリのトリミング性を向上させてサイズを小さくしパフォーマンスを向上させるための作業が含まれています。 .NET Android 9 Preview の詳細については、次のリリース ノートを参照してください。

アセット パック

.NET Android 9 Preview 3 には、アセット パックと呼ばれる別のパッケージにアセットを配置する機能が導入されています。 これにより、通常は Google Play で許可されている基本的なパッケージ サイズを超えるゲームやアプリをアップロードできます。 これらの資産を別のパッケージに配置することで、200Mb の基本パッケージ サイズではなく、最大 2Gb のパッケージをアップロードできます。

重要

アセット パックにはアセットのみを含めることができます。 .NET Android の場合、これは AndroidAsset ビルド アクションを持つ項目を意味します。

.NET MAUI アプリでは、MauiAsset ビルド アクションを使用してアセットを定義します。 アセット パックは、AssetPack 属性を使用して指定できます:

<MauiAsset
    Include="Resources\Raw\**"
    LogicalName="%(RecursiveDir)%(Filename)%(Extension)"
    AssetPack="myassetpack" />

Note

追加のメタデータは、他のプラットフォームでは無視されます。

アセット パックに配置する特定の項目がある場合は、Update 属性を使用して AssetPack メタデータを定義できます:

<MauiAsset Update="Resources\Raw\MyLargeAsset.txt" AssetPack="myassetpack" />

アセット パックには、デバイスにアセットをインストールするタイミングを制御する、さまざまな配信オプションを使用できます:

  • インストール タイム パックは、アプリと同時にインストールされます。 このパックの種類は、最大 1Gb のサイズにすることができますが、1 つだけを持つことができます。 この配信の種類は、InstallTime メタデータで指定されます。
  • 高速フォロー パックは、アプリのインストールが完了した直後にインストールされます。 この種類のパックのインストール中にアプリを起動できるため、アセットを使用する前にインストールが完了したことを確認する必要があります。 この種類のアセット パックのサイズは最大 512Mb です。 この配信の種類は、FastFollow メタデータで指定されます。
  • オンデマンド パックは、アプリが明示的に要求しない限り、デバイスにダウンロードされることはありません。 すべてのアセット パックの合計サイズは 2Gb を超えることはできません。また、最大 50 個の個別のアセット パックを使用できます。 この配信の種類は、OnDemand メタデータで指定されます。

.NET MAUI アプリでは、配信の種類を MauiAssetDeliveryType 属性で指定できます:

<MauiAsset Update="Resources\Raw\myvideo.mp4" AssetPack="myassetpack" DeliveryType="FastFollow" />

Android アセット パックの詳細については、「Android アセット パック」を参照してください。

iOS

iOS、tvOS、Mac Catalyst、および macOS の .NET 9 Preview は、以下のプラットフォーム バージョンの Xcode 15.2 を使用します。

  • iOS:17.2
  • tvOS:17.2
  • Mac Catalyst:17.2
  • macOS: 14.2

iOS、tvOS、Mac Catalyst、および macOS の .NET 9 Preview の詳細については、次のリリース ノートを参照してください。

バインド

.NET iOS 9 Preview 3 では、iOS バインド用に .NET のバージョンをマルチターゲットする機能が導入されています。 たとえば、ライブラリ プロジェクトは、2 つの異なる iOS バージョン用にビルドする必要がある場合があります:

<TargetFrameworks>net9.0-ios17.0;net9.0-ios17.2</TargetFrameworks>

これにより、2 つのライブラリが生成されます。1 つは iOS 17.0 バインドを使用し、もう 1 つは iOS 17.2 バインドを使用します。

重要

アプリ プロジェクトは常に最新の iOS SDK をターゲットにする必要があります。

関連項目