.NET MAUI
.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を使うしか現実的な選択肢はありません。
そもそも論としてクロスプラットフォーム開発が現実的ではないという点を置いておいて、どうしてもクロスプラットフォーム開発したいというならFlutterやReact Nativeを使ったほうが良いと思います。