Share via


.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 MAUI には、コントロールの機能強化も含まれています。

ソフト キーボード入力のサポート

.NET MAUI 9 Preview 4 では、PasswordDateTime 向けの新しいソフト キーボード入力のサポートが追加されました。 これらは Editor および Entry コントロールで有効にできます。

<Entry Keyboard="Date" />

Android

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

アセット パック

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

重要

アセット パックにはアセットのみを含めることができます。 .NET for 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 アセット パック」を参照してください。

Android 15 ベータ 1 対応

.NET for Android Preview 4 .NETバインドは、"Vanilla Ice Cream "というコードネームで呼ばれる Android 15 の最初のベータ版です。 これらの API 用にビルドするには、プロジェクトのターゲット フレームワークを更新してください。

<TargetFramework>net9.0-android35</TargetFramework>

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 for 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 をターゲットにする必要があります。

iOS と Mac 用のネイティブ AOT Catalyst

.NET for iOS 9 Preview 4 では、iOS と Mac Catalyst のネイティブ Ahead of Time (AOT) コンパイルが完全なトリミングの利点を生かし、アプリのパッケージ サイズと起動時のパフォーマンスを削減します。 これは、アプリを出荷する準備ができたときに使用できる公開機能です。

重要

この機能を利用するには、アプリとその依存関係が完全にトリミングできる必要があります。

関連項目