.NET MAUIは、アプリのパフォーマンス向上とマルチプラットフォームアプリ開発の簡略化を目的とする、Xamarin.Formsの進化版だ。このフレームワークでは、すべての最新オペレーティングシステム(Android、iOS、macOS、Windows)のネイティブAPIにアクセスする組み込みリソースにより、単一コードベースを実現している。ひとつのプロジェクト構造の下に、各プラットフォームで異なるリソースやソースコードファイルを必要に応じて加えることで、マルチプラットフォームアプリケーションを開発することができる。
Microsoftは、.NET MAUIのGAリリースを延期した。.NET MAUIの一般公開は、.NET 6と同じ2021年11月が目標であった。
Microsoftからの最新ニュースによると、今年11月の.NET 6のGAには正式版が完成しない見込みである、ということだ。新たに計画された期日は、2022年第2四半期初めである。
同社プログラムマネジメントディレクタのScott Hunter氏は、次のように報告している。
.NETチームは、コミュニティの協力の下、オープンな形でリリースに向けた開発努力を続けてきましたが、残念ながら11月の.NET 6のGAまでに開発を完了できない見込みです。私たちはリリース時点で最高のエクスペリエンス、パフォーマンス、品質を提供することを望んでいますが、それを実現するために、スケジュールの超過が必要になりました。現在は、2022年第2四半期初めを、.NET MAUI GAの目標としています。
当面については、開発者は.NET MAUIの月次プレビューの受け取りと調査を続けることになる。実用的なモバイルアプリやプロダクトの開発に対しては、引き続きXamarinが推奨プロダクトとされる予定だ。11月に実現予定であった機能はまだリストに残っているが、.NET MAUIの今後の開発は、品質とユーザフィードバックへの対応に重点が置かれたものになる。公式ブログの記事には、.NET Upgrade AssistantがXamarinプロジェクトから.NET MAUIへのアップグレードをサポートする、という情報が掲載されている。
.NETチームは今年、いくつかの重要な.NET MAUIプレビューをリリースした。その最新版であるSeptemberエディションはPreview 8だ。この最新プレビューでは、アプリのスタートアップパターンのアップグレードに加えて、ハンドラの拡張機能、その他さまざまな新しいコントロール機能が提供されている。
今後.NET MAUIは、Visual Studio 2020インストーラのワークロードとして使用することが可能になる。具体的には、Visual Studio 2020 Preview 4のインストール手順の中で、.NETワークロードを使用したMobile Developmentの中で、.NET MAUI(プレビュー)の選択ができるようになる。Visual Studioのアップデートでは、XAML Hot Reloadと.NET Hot Restartも改善されている。
Preview 8では、ASP.NETやBlazorに合わせて、アプリ起動に.NET Hostビルダパターンを採用しているため、既存のアプリケーションは移行作業が必要になる。今後はMauiProgramクラスがMauiAppを生成して返すようになる。各プラットフォームは、対応するMauiProgram.CreateMauiApp
をコールする。公式ブログの記事にその例が紹介されている。
Android 12 (API 31)が.NETアプリケーションのデフォルトになった。AndroidプロジェクトではMaterialTheme
がデフォルトだ。Androidでのランタイムエラーを回避するために、Platforms/Android/MainActivity.cs
が@style/Maui.SplashTheme
を指定するようにしておく必要がある。
さらにPreview 8には、Shell
テーマにさまざまな改善が行われた他、AndroidおよびiOS用のRefreshView
、AbsoluteLayout
、Right-to-Left(RTL) FlowDirection、Button.Icon ImageSource
などが追加されている。
直近および次期リリースに関しては、次のPreviewではさらなるバグ修正、ボーダー、コーナー、シャドウ、Essentials/Forms APIの調整、フォントの改善、イメージをロードするサービスであるimage source、iOSのキャッシング、GIF修正、ハンドラのリファクタリングと残るハンドラ移植のための開発といったものが、重点としてロードマップに記載されている。
プロジェクトの開発の進捗状況や.NET MAUIの次期リリースをフォローするには、GitHub wiki roadmapで公開されている公式ロードマップを参照するとよい。