-
プログラム
-
.NET MAUIが不人気な原因なんなの?
- コメントを投稿する
-
ライブラリがなさすぎてMAUIで作るよりiOSとAndroidを別々に2個開発した方が早い
-
PCとタブレットとスマホを一本のコードで書くとか無理に決まってるだろ
-
AdMobのライブラリすらない
-
カメラ撮影もできないからテキストとボタンを表示するくらいしかできない
-
よくこのレベルで公開したなという感じ
-
iOSアプリ開発にはMac必須なのにVisual Studio for Mac廃止なのが致命傷だった
-
vscodeの拡張機能はゴミすぎだし
-
>>3
あとこれ -
AndroidとiOSのふたつですら最小公倍数でできないことだらけなのに
そこにMacCatalystとWindowsを混ぜるとか企画したやつ頭キチガイすぎ -
Xamarinの出始めの頃の
基本的にiPhoneとAndroidで別々にアプリを作るが
OSに依存しないビジネスロジック部分だけ共通ライブラリ化する
というのが一番理にかなっていた -
Xamarin.formsの時点で道を間違えていたんだよ
-
vscodeのc#拡張が産業廃棄物級のゴミなのが大きい
-
XAMLがクソ
-
そもそもモバイル含めて全部Webアプリで良いしね
-
複数のプラットフォームに対応して出来ないことだらけとかAdobe Flashが通った道じゃん。
-
Silverlightでも経験しているのに何で同じ過ちを繰り返したのか。
-
ジョブズも死ぬ直前にそんなこと言ってたな
iPhone OSの新機能をアプリ開発に利用できるかどうか、いつ利用できるかがサードパーティーによって決定されてしまうと同氏は主張している。
特にクロスプラットフォームツールでは各種プラットフォームの「最小公分母」の機能しか提供されず、「開発者がAppleの最新技術を利用できない状況は受け入れられない」という。
https://www.itmedia....1004/30/news029.html -
そもそもクロスプラットフォームが愚かな考え
-
片方で使えない機能があると両方で使えないことになる
-
>>17
寧ろ後継はPowerAppsやん -
ぶっちゃけこの分野はFlutterで良いんだよね
プラットフォーム固有の処理はRustやGoで書いて呼べば良いし
唯一の難点というか嫌いなのはDart
ここだけせめてJSとかTSにしてくれりゃいいのに -
react native はまだ有るのかな
-
c#だもん
-
Androidのユーザーは金払いが悪いから、そもそもiOS向けのアプリだけ出しておけば十分だったんだよ
-
>>27
swift登場以降はそうでもないぞ -
SwiftUIのシンプルさと雲泥の差なのが敗因だろ
ReactiveCommandなんかを使ってもグチャグチャになるし -
ぶっちゃけ教科書どおりにObservableなんか使って書いたらメンテナンス性は最悪すぎてやばいだろ
-
失敗作の糞なのに頑なにプッシュして生産性落とそうとしてくるのが時間のムダ過ぎる
-
そもそもTeamsのアプリとかだってReactで刷新したわけじゃん
まず自分達の製品で使ってみろって言いたい -
正直、iOSとAndroid別々に似たようなアプリを作った方が早い
-
あとXAMLは百歩譲ってもMVVMはゴミクソウンコだろ
-
>>28
引数のラベルの仕様が全く違うので論外だよ -
>>36
SwiftとC#なんてテキスト置換で相互変換できるだろ。
Xamarin.Macで古いCarbon叩く場合はIntPtrだらけになるけどiOSとCocoaだとそんなことないし。
むしろヤバイのJavaだよ。
AndroidのJavaはイベント処理に匿名クラス使いまくりだからC#に変換するのがクソ面倒。 -
>>37
触ったことないんだろうけどUIKitというかObj-Cは関数のシグネイチャが
aFunc:arg1:arg2と言うような形なの
つまり関数名と引数のラベルが統一的に扱われる
これはC#でまともに書けないので
ただの引数にしてメソッドの名前をシンプルに変えてる
例:UIKitのメソッドシグネイチャ
tableView:didSelectRowAtIndexPath:
Xamarinのメソッドシグネイチャ
void RowSelected (UIKit.UITableView tableView, Foundation.NSIndexPath indexPath)
トホホ
名前がラベルじゃなくなってる上に個別のただの引数になっておる
これを見た時おれはxamarinというかC#を捨てた -
>>38
c#もラベルあるじゃん。
RowSelected (tableView:tableView, indexPath:indexPath)
みたいに書けばいいだけでは?
swiftで言えば全部の引数に_付いてる程度のもんだろ。
その程度の違いは一握りのキチガイしか気にしないだろ -
みなみにswiftではこの辺が少し変わっていて
aFunc(label1 arg1:Type, label2 arg2:Type)となっている
呼び出す時は
aFunc(label1: "foo", label2:"bar")
ラベルがめんどくえって時は_をラベルの前につける
aFunc(_ label1 arg1:Type, _ label2 arg2:Type)
こうするとaFunc("foo","bar")で呼び出せる
ちなみにswiftも昔はObj-Cに寄せて
第一引数のラベルは無視されて生指定して
第二引数以降はラベルをつけるみたいな仕様だったが改善された -
これは単にxamarinのせいではなくただのC#の言語仕様の限界
pythonやrubyのように位置引数とキーワード引数がわけられる言語なら容易に対応できたのに -
メソッド名が素直に一対一対応しないフレームワークなど使うか?
これが答えだ
いちいちこの対応関係を調べていかなきゃならん
こんなことやってられか?
いまならChatGPTがあるから多少マシではあるがこんなヤク狩りしたくねーのよ -
xamarinがなぜこんな仕様にしたのかは謎ではある
Javaに寄せるためにこうしたのか
キーワード引数は昔からあった気がするが仕様的に対応できないようなものがあったのか -
>>44
当たり前だがswiftは上に書いたようにSDKと同じように書ける
両方上手く書けるようにしてるんだよ
というか書けないとおかしいのだが
ランタイムはObj-Cのものを使ってるのだから
xamarinのせいなのかmonoのせいなのかは知らんがswiftと同じようにすることはできたはずなのに -
このようにxamarinはゴミという評価をして捨てていった
俺も一度はチャレンジしたのだよ
その結果がこれ
ちゃんとメソッドの仕様を合わせられていれば事情は変わっていたかもしれない -
ちなswiftでのSDKのメソッドシグネイチャは第一引数のラベルにのみ_がついている
こうすることで完全な一対一対応かつ普通の言語のラベル付きメソッド呼び出しも位置引数呼び出しもできるようになっている
素晴らしい👍 -
C#でキーワード引数と位置引数の混合ができなかったのか
今もできないのかは知らないが少なくとも当時のmonoの環境では無理だったということなのか?
C#は詳しくないのでよくわからないが -
この引数の仕様は間違いなくswiftが1番美しい
全言語の中で最強だろう -
>>46
Objective-cなんて誰もがクソだと感じていたけど
iOSアプリ開発ではそれしか使えなかったから
みんな仕方なく使ってただけだろ
SwiftやXamarinが登場してObjective-cが激減したのが答えだよ
テキストひとつ連結にするのに馬鹿みたいに長いメソッドなんて誰も使いたくない
あんな黒歴史のような過去にしがみつくのは愚かの極み -
Objective-Cとは、
C言語のメモリ安全性と、
Smalltalkの高速性を合わせたプログラミング言語である。 -
>>50
Rustの出来損ないがSwiftだぞ -
objc,swift,c#を並べて比較したとき、c#を選ぶ理由はガベージコレクションが唯一リファレンスカウント方式ではないという点だよ。
カメラでの動画撮影などの高負荷かつ長時間使うアプリだと安定性に雲泥の差が出る。 -
話がだいぶそれたがMAUIが流行ってないのは「xamarinで嫌気がさした人たちが戻ってこないから」です
-
言い忘れた
AndroidはJavaだからSDKがほぼ一対一対応するからと書いたがAndroid SDKの仕様的に匿名のインナークラスをすげー使うのよ
これをC#でやるのがすげー泥臭くてその部分もクソだった
つまり結局そのまま移植するということが実質不可能であり
こんなことなら別々に書いた方がマシとなった -
まとめるとxamarinがクソ過ぎたせいで
どうせMAUIもクソだろうと思った人たちが相当数いて
MSの技術に不信感を持っているので使わない
現にMAUIのMacはgithubみてもほぼ開発は停止してる -
実際俺は仕事でiOSとAndroidのネイティブ開発をやってて
両対応面倒だからxamarin使えないかと本気で移行を考えていたし実際移植作業を開始していた
だからこれくらい詳細に語れる
MAUIを流行らせたい場合はまずは失った信頼を取り戻すことをしないと無理だろう
あとSwiftUIやFlutterが出てきている昨今
今更XAMLとかも時代遅れなのはいうまでもない -
>>58
Blazorでやれば良いだけじゃ? -
>MSの技術に不信感を持っている
8のタイル以降これ
8に関わった奴の罪は重い -
>>56
Xamarin.Androidは↓みたいなJavaのIListener系をActionに変換するクラスを必要に応じて深く考えずに脳死で作りまくれば捗るぞ。
class FuckListener : Java.Lang.Object, IFuckListener {
public Action<object>? OnFuckAction;
public void OnFuck(object you) {
OnFuckAction?.Invoke(me);
}
} -
>>60
ぶっちゃけ思うんだけどセキュリティとかそういうのだけ更新してくれてたらWindows95で良いんだよね -
>>2
Flutterとかでもそういうところあるよね -
そんな当たり前だろ
-
XAMLが嫌?
そんなあなたにMAUI Blazorをどうぞ -
C#だもん
-
OSのセキュリティだけ更新して製品の安全性を保てるとか思ってるやつ
プログラミングやってないんやろな、とは思う -
>>75
95は32ビットフラットメモリモデルのプログラムがかけたんだぞ
3.1のセグメントモデルを知っていれば神としか言いようがない
3.1のファイル操作はDOSを使うからガックガクだったが95のプリエンプティブなマルチタスクは神
NTは確かにすでにあったけど起動するだけで眠くなるアプリ無いし -
>>78
Mac不要なのを知らんのか? -
MAUIはmacOSはもうずっとCatalystでお茶を濁すつもりなの?前に触った時Windowサイズすら変えられないと知って絶望した
C#はもう観念して、せめてデスクトップに集中してほしいんだが -
>>79
Windows3.1は1990年代の前半だから40代の元パソコン少年とかなら触ったことあると思うぞ
自分は45歳のオッサンだが高校に上がって少し経つ頃にはPCはWindows3.1一色になってた -
XAMLやめない限りはやることはないよ
-
今思えばWindowsは国民機を潰すのが目的の1つにあったろう
技術立国日本の零落の始まりだ
日本が誇れる企業はトヨタしかなくなった
AI自動運転とかで同じことが車で起きたら終わりだ -
XAMLを削除して新しいモダンな描画システムを作るべきだよ
FlutterとかSwiftUIみたいに書けるやり方でさ -
SwiftUIはよかった
まだ作りかけって感じは否めないけど(テーブルが10列までしか作れないとか) -
最近のフレームワークは最初からUI書くために設計されてるからなー
ツリー構造をいかに手数少なく -
その辺のフレームワークの設計はMSの専売特許だったはずなのだけどね
どこでおかしくなったのか -
>>90
ビルドもMac不要だぞ -
シミュレータなしだと都度実機へ転送でつらないか
いまはリモートシミュレータがクラウド化されてる? -
UIKit使ってないならビルドは可能
-
UIKit使わないと無理だろw
-
ipaに署名できない
つまりリリースビルドができない -
現状ではUIKitやらAVFoundationやらSensorKitやらを叩いてゴリゴリと自前でライブラリを作らないと使い物にならない。
そのライブラリの実装テストの試行錯誤はMac実機とiPhone実機の2つがないとまったく捗らない。 -
ゲームなら別にMacはリリースする時までいらない
-
まあ、実際使い物にならないから流行ってないんだけどね
廃止予定のVisual Studio for MacをVisual Studio Codeがまともになるまで延命するでもしないとMAUIまるごと完全消滅しそうではある
↑今すぐ読める無料コミック大量配信中!↑