「.NET MAUI」の版間の差分
Administrator (トーク | 投稿記録) |
Administrator (トーク | 投稿記録) (→ライブラリ) |
||
(同じ利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
'''.NET MAUI'''(語源:Multi-Platform App UI)とは、[[Xamarin.Forms]]の後継品であり、ベースとなる[[ランタイム]]が[[Mono]]から[[.NET 6]]以降に差し替えられたものである。 | '''.NET MAUI'''(語源:Multi-Platform App UI)とは、[[Xamarin.Forms]]の後継品であり、ベースとなる[[ランタイム]]が[[Mono]]から[[.NET 6]]以降に差し替えられたものである。 | ||
+ | |||
+ | == 概要 == | ||
+ | iOSとAndroidのクラスプラットフォームだけでも最小公分母で出来ないことだらけなのに、そこにMac CatalystとWindowsとTizenを加えるという暴挙です。タップ操作とマウス操作を混ぜるな危険。そんなものがまともに使えるわけねえだろ。 | ||
== 移植 == | == 移植 == | ||
8行目: | 11行目: | ||
これに伴い[[マウス]]でポチポチする[[GUI]]の画面デザイナーが廃止された。すべて[[テキストエディタ]]で[[XAML]]をガシガシと書かねばならず微妙に使いにくい。 | これに伴い[[マウス]]でポチポチする[[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]]を使ったほうが良いと思います。 | ||
[[カテゴリ: MAUI]] | [[カテゴリ: MAUI]] |
2024年4月3日 (水) 02:52時点における最新版
.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を使ったほうが良いと思います。