マイクロソフト社の開発者向けカンファレンス「Microsoft Build 2020」で発表された新しいクロスプラットフォームフレームワーク「.NET Multi-platform App UI(.NET MAUI)」について、要点をまとめておきます。
概要
「.NET Multi-platform App UI(.NET MAUI)」は、単一のソースコードで複数のプラットフォームで動作するアプリケーションを開発できるクロスプラットフォームフレームワークです。
Xamarin の後継フレームワークとして位置付けられており、名称は変わりましたが「Xamarin の新バージョン」と捉えても問題ないと思います。
従来の XAML や MVVM に加え、新たに RxUI や MVU(Model-View-Update) がサポートされます。
対応プラットフォームは iOS、Android、Linux、Mac、Tizen、Windows ですが、将来的には Blazor(Web)のサポートも計画されているようです。
ロードマップ
2021 年 11 月 に「.NET 6」と同時に正式リリースされる計画となっています。
| 時期 | リリース |
|---|---|
| 2020 年 後半 | Preview 1 |
| 2021 年 初旬 | Preview 2、Preview 3 |
| 2021 年 中旬 | Preview 4、Preview 5 |
| 2021 年 9 月 | RC |
| 2021 年 11 月 | GA |
Xamarin から移行すべきか
Xamarin は .NET MAUI が正式リリースされてから 1 年後にサポートが終了します。
そのため、開発したアプリケーションを長期的にサポートしたいのであれば、.NET MAUI へ移行する必要があります。
Xamarin プロジェクトから .NET MAUI プロジェクトへの変換ツールと移行ガイドが提供されます。
Xamarin.Forms と .NET MAUI の比較
| Xamarin.Forms | .NET MAUI | |
|---|---|---|
| プラットフォーム | ||
| Android | API 19 以上 | API 21 以上 |
| iOS | 9 〜 14 | 10 以上 |
| Linux | コミュニティ | コミュニティ |
| macOS | コミュニティ | Microsoft |
| Tizen | Samsung | Samsung |
| Windows | UWP Microsoft、WPF コミュニティ | Microsoft |
| 特徴 | ||
| レンダラー | BindableObject に密結合 | 疎結合 |
| アプリケーションモデル | MVVM, RxUI | MVVM, RxUI, MVU, Blazor |
| 単一プロジェクト | × | ○ |
| 複数ターゲット | × | ○ |
| 複数ウィンドウ | × | ○ |
| その他 | ||
| .NET | Xamarin.iOS、Xamarin.Android、Mono、.NET Framework など | .NET 6 以上 |
| 取得方法 | NuGet と Visual Studio Installer | dotnet |
| プロジェクトシステム | Franken-proj | SDK スタイル |
| dotnet CLI | × | ○ |
| ツール | ||
| Visual Studio 2019 | ○ | ○ |
| Visual Studio 2019 for Mac | ○ | ○ |
| Visual Studio Code | × | ○ |
参考
GitHub - dotnet/maui: .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
https://github.com/dotnet/maui
Introducing .NET Multi-platform App UI | .NET Blog
https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/
さいごに
実はマイクロソフト社が関わっているクロスプラットフォームフレームワークは結構たくさんあります。
- Xamarin
- Uno Platform
- MobileBlazorBindings
- React Native for Windows
- .NET Multi-platform App UI(.NET MAUI) ← NEW
これだけたくさんあると、どれを選んでよいのか迷ってしまいそうですね・・・
.NET MAUI はまだ開発中ですので、今後の情報に注目していきたいと思います。
また、主要なクロスプラットフォームフレームワークについては、以下の記事にまとめていますので、こちらを参考にしてください。
クロスプラットフォームフレームワーク比較 2021(Flutter, React Native, Xamarin, Unity) - Qiita
https://qiita.com/nskydiving/items/c13c949cc17c6f980a67