どうも。ひっくです。
当社がリリースしているモバイルアプリはフレームワークに「Xamarin.Forms」を使用しているものが多いです。
この「Xamarin.Forms」に関連して、2022/8/9に「Xamarinのサポートは2024/5/1で終了」と
マイクロソフトのオンラインイベント「.NET Conf Focus on MAUI」で発表されました。
今後はXamarin.Formsの後継となる「.NET Multi-Platform App UI(.NET MAUI)」に移行が必要になっていくかと思いますが、
私自身あまり「.NET MAUI」のことを理解できていなかったので、今回は調べた結果をまとめてみました。
.NET MAUIとは
C# と XAML を使用して、モバイル アプリやデスクトップ アプリを作成するためのクロスプラットフォーム フレームワークのこと。
画像は「.NET MAUI とは」より
Xamarin.Forms の後継という位置づけで、1つの共有コードベースからAndroid、iOS、macOS、Windowsで
実行可能なアプリを作成することができます。Xamarin.Formsの後継であるため、機能面でも共通点は多く
Xamarin.Formsを利用してきた人であれば容易に理解できると思われます。
なお、.NETのメジャーバージョンアップと同時にバージョンアップを今後は予定しているそうです。
画像は「.NET Conf Focus on MAUI 」より
開発環境
以下で利用可能となるようです。
インストールしたのに新しいプロジェクトの選択で「.NET MAUI アプリ」が選択に出てこない場合、
バージョンを確認してみてください。
Windows環境: Visual Studio 2022 17.3 以降
macOS環境 : Visual Studio 2022 preview for Mac 17.4 Preview
Xamarin.Formsとの違い
細かい変更点は複数ありますが、大きな違いとして以下の2点が挙げられるのではと思います。
UIコントロールアーキテクチャの変更
「Xamarin.Forms」では「レンダラーアーキテクチャ」を採用していましたが、「ハンドラーアーキテクチャ」に変更となりました。
「レンダラーアーキテクチャ」では、ネイティブコントロールのUIをカスタマイズする場合、
カスタムレンダラーを作成しなければならず、以下の点でデメリットがありました。
- パフォーマンスが遅くアプリサイズが大きくなりがち
- 開発面においてもカスタマイズするために定型的な多くのコードを記載する必要があり、手間がかかる
画像は「Entry のカスタマイズ 」より
「ハンドラーアーキテクチャ」になることで、コントロール固有のインターフェイスを介してアクセスされるだけとなり
上記のようなデメリットは解消されることなります。
画像は「マッパーを使用してコントロールをカスタマイズする 」より
プロジェクト構成の変更
「Xamarin.Forms」では単一の共有プロジェクトと複数のプラットフォーム固有プロジェクトで
構成されていました。
.NET MAUIでは単一のプロジェクトで複数のプラットフォームを対象とできるよう変更されています。
リソースも「Xamarin.Forms」では各プラットフォーム毎のイメージ要件を満たすため、
異なる解像度で各イメージを複数バージョン作成する必要がありましたが、単一のリソース(SVG)を基に
ビルド時にプラットフォームごとの必要なイメージが生成されるようになりました。
まとめ
Xamarin.Formsで使い勝手の悪かった部分が改良されたフレームワークが「.NET MAUI」であると言えるかと思います。
これからモバイルアプリを作成する場合は、Xamarin.Formsより.NET MAUIを選択する方が良いでしょう。
既存のアプリの移行についてはサポート終了までまだ余裕があるので、タイミングを見て決めることになりそうですね。
今回はこのへんで。ではまた!
0 件のコメント:
コメントを投稿