マイクロソフト社の開発者向けカンファレンス「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