2022年11月6日日曜日

.NET MAUI(.NET Multi-Platform App UI) について調べてみた

 

どうも。ひっくです。

当社がリリースしているモバイルアプリはフレームワークに「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点が挙げられるのではと思います。

 

  1. UIコントロールアーキテクチャの変更

    「Xamarin.Forms」では「レンダラーアーキテクチャ」を採用していましたが、「ハンドラーアーキテクチャ」に変更となりました。

    「レンダラーアーキテクチャ」では、ネイティブコントロールのUIをカスタマイズする場合、

    カスタムレンダラーを作成しなければならず、以下の点でデメリットがありました。

    • パフォーマンスが遅くアプリサイズが大きくなりがち
    • 開発面においてもカスタマイズするために定型的な多くのコードを記載する必要があり、手間がかかる

    画像は「Entry のカスタマイズ 」より

     

    「ハンドラーアーキテクチャ」になることで、コントロール固有のインターフェイスを介してアクセスされるだけとなり

    上記のようなデメリットは解消されることなります。

    画像は「マッパーを使用してコントロールをカスタマイズする 」より

     

  2. プロジェクト構成の変更

    「Xamarin.Forms」では単一の共有プロジェクトと複数のプラットフォーム固有プロジェクトで

    構成されていました。

     

    .NET MAUIでは単一のプロジェクトで複数のプラットフォームを対象とできるよう変更されています。

    リソースも「Xamarin.Forms」では各プラットフォーム毎のイメージ要件を満たすため、

    異なる解像度で各イメージを複数バージョン作成する必要がありましたが、単一のリソース(SVG)を基に

    ビルド時にプラットフォームごとの必要なイメージが生成されるようになりました。

 

まとめ


Xamarin.Formsで使い勝手の悪かった部分が改良されたフレームワークが「.NET MAUI」であると言えるかと思います。

これからモバイルアプリを作成する場合は、Xamarin.Formsより.NET MAUIを選択する方が良いでしょう。

既存のアプリの移行についてはサポート終了までまだ余裕があるので、タイミングを見て決めることになりそうですね。

 

今回はこのへんで。ではまた!

0 件のコメント:

コメントを投稿