.NET MAUI

提供: MonoBook
ナビゲーションに移動 検索に移動

.NET MAUI(語源:Multi-Platform App UI)とは、Xamarin.Formsの後継品であり、ベースとなるランタイムMonoから.NET 6以降に差し替えられたものである。

概要

iOSとAndroidのクラスプラットフォームだけでも最小公分母で出来ないことだらけなのに、そこにMac CatalystとWindowsとTizenを加えるという暴挙です。タップ操作とマウス操作を混ぜるな危険。そんなものがまともに使えるわけねえだろ。

移植

Visual Studioのプロジェクトファイルの書式が大幅に変わっただけであり、XAMLの書式などはほとんど変わっていない。このため大部分はMAUIプロジェクトを新規作成してXamarin.Formsプロジェクトからファイルコピペするだけで移植できる。

画面デザイン

Visual Studioでデバッグ実行している最中にXAMLやソースコードを編集すると、iPhoneやAndroidなどの実機の画面がリアルタイムで反映されるという謎技術が搭載された。XAMLのプレビュー画面がiPhoneやAndroidなどの実機に表示される感じである。

これに伴いマウスでポチポチするGUIの画面デザイナーが廃止された。すべてテキストエディタXAMLをガシガシと書かねばならず微妙に使いにくい。

ライブラリ

とりあえずMAUIはNuGetがない。ライブラリがない。 Xamarin.Formsと互換性がないせいでカオスと化している。

AdMobのライブラリもない。広告で開発費を回収するタイプの無料アプリでも使いにくい。 FirebaseなどのmBaaSのライブラリもない。全部自前で実装しろってか。 Bluetoothもカメラも標準では制御できない。 とくにスマホアプリでカメラ制御できないとか致命傷だろ。

総評

テキストとボタンだけの最小限のアプリであれば別ですが、ある程度の規模のアプリでは.NET for iOS(旧:Xamarin.iOS)と.NET for Android(旧:Xamarin.Android)のプロジェクトを別々に開発し、OSに依存しないビジネスロジックを共有ライブラリとする方式の方が間違いなく開発スピードは早いです。

なお、Visual Studio Codeでは.NET for iOSと.NET for Androidの開発はサポートされる気配すらありません。 とくに.NET for iOSは廃止が決まっているVisual Studio for Macを使うしか現実的な選択肢はありません。

そもそも論としてクロスプラットフォーム開発が現実的ではないという点を置いておいて、どうしてもクロスプラットフォーム開発したいというならFlutterReact Nativeを使ったほうが良いと思います。