Flutterやろうよ!!!

■ このスレッドは過去ログ倉庫に格納されています
2018/06/02(土) 15:07:40.16ID:FmfhRdV+
ようこそFlutter野郎どもよ!!!
軽い開発環境でモバイルアプリ開発ができるなんて最高じゃねえか
AndroidもiOSも両方行ける、まさに漢のためのツールだな

http://www.flutter.io
2020/12/29(火) 23:26:01.28ID:xrSERZg5
>>710
Uno Platformは重いよ。
UWP互換レイヤーをXamarin上に組んでるんだから。
Xamarin.Formsやってみれば?
まあ軽くはないけど。
2020/12/29(火) 23:46:38.79ID:c62SKept
>>712
昔ts2dartってあったけどあれ開発終わったんだっけ
715デフォルトの名無しさん
垢版 |
2020/12/30(水) 01:15:56.85ID:OdjCMRdf
flutterの凄さと言うか他の追従を許さないのは、
描画エンジン
platformView以外、画面全体を自分で描画してるからな
あとdartはかなり洗練されてるぞ
2020/12/30(水) 01:29:24.70ID:QgO/DBI4
dartが洗練されてるとか無いわ
2020/12/30(水) 09:55:56.63ID:+NMvyZBi
>>716
どういうところが洗練されてない?
nullの話と文末のセミコロン以外でなんかある?
2020/12/30(水) 11:28:43.57ID:ZFzFKq2k
>>715
そうそう、ActivityやらViewControllerのライフサイクルの違いをほとんど無視できて、個々のWidgetもかなり高品質なものが揃ってる。
アニメーションも強いし。
719デフォルトの名無しさん
垢版 |
2020/12/30(水) 20:03:28.41ID:rwRP4Bkm
Dartよく知らないけど
Dartが洗練されているならもっと言語として人気でてるはずでは?
Googleが関与してるならなおさら。

Dartは、KotlinのようにAndroidのFirst-class languageにも指定されてないってことは
機能やらなにやらが足りてないってことでしょう
2020/12/30(水) 20:05:30.09ID:tGRoycSH
洗練されてるかどうかで言語を選べる人って趣味の人だけだろ
2020/12/30(水) 20:07:29.68ID:rwRP4Bkm
>>715
前半も意味がわからない。
FlutterがOS標準のGUIを使わずに独自の方法でやってるということは
それだけバージョンアップ時に不具合が起こりやすいってことで短所にもなる。

KotlinのmultiplatformのようにGUIをOS標準に
まかせる方式のほうが問題が起きにくい。
2020/12/30(水) 20:17:14.52ID:ZFzFKq2k
>>721
逆だよ。多少OSの仕様が変わっても低レベルの描画APIはそうそう変わらないし、変わったとしてもフレームワークで吸収できる可能性が高い。
例え話が適切かどうか分からないけど前にiOSで廃止になったUIAlertViewとかも独自描画のFlutterでは影響を受けなかったはず。
2020/12/30(水) 20:37:03.25ID:rwRP4Bkm
>>722
使いやすいAPIを無視して使用しないなら
Flutter側で必要以上に複雑なコードで低レベルAPIを
叩いてるってことだからバグは生まれやすいと思うわ
2020/12/30(水) 21:13:56.69ID:YEmgVsb8
>>721
つreact
2020/12/30(水) 21:29:38.91ID:rwRP4Bkm
>>724
なにがいいたいのか
726デフォルトの名無しさん
垢版 |
2020/12/30(水) 22:12:07.40ID:OdjCMRdf
>>723
発想がズレてるよ。
flutterが全画面描画してるのはゲームと同じ土俵だから低レベルAPIじゃないんだ。
ゲームの土俵でUI/UXを実現してるだけ。
2020/12/30(水) 22:15:27.56ID:rwRP4Bkm
>>726
低レベルAPIといったのは>>722
俺はそれを信用してかいたわけだが。

Flutter内部のコードが複雑になってるのは事実だろ
コードが長くなればバグも生まれやすい
間違ってない
728デフォルトの名無しさん
垢版 |
2020/12/30(水) 22:19:09.06ID:OdjCMRdf
ついでに言わせてもらうと、UICollectionViewとか、一見使いやすいように見えてcellの生成アルゴリズムを知らないとどハマりする。
flutterの場合reusableCellは無いから無限に作ろうとする。しかしscrollControllerで自由自在に生成/廃棄できる。
729デフォルトの名無しさん
垢版 |
2020/12/30(水) 22:20:54.07ID:OdjCMRdf
>>727
間違えている。flutterはエンジンの動作をiOSが保証して成り立っているから。
2020/12/30(水) 22:21:55.75ID:m/y18WaF
オープンソースだから気に食わなければコミットしたらいいですよ
嫌いなら使わなければいいだけ
731デフォルトの名無しさん
垢版 |
2020/12/30(水) 22:25:42.20ID:OdjCMRdf
PlatformViewが使えない時はflutterエンジンが実画面にコピーしてたからなw
それはスピード的にコンニャクwだったなw
2020/12/30(水) 22:33:49.04ID:olxuh5fb
iOSの描画に関してはMetal使ってるから変更にはめちゃくちゃ弱そうだけどな
Appleが仕様握ってるからほぼ完全に変更される可能性もある
2020/12/30(水) 23:48:05.71ID:rwRP4Bkm
>>729
とはまともな会話が成立しそうにないからもういいや。
iOSが保証っていつからiOSが人格持ったのか

iOSがAppleの間違いだったとしてもおかしい。
Appleが動作を保証することもありえない。
2020/12/31(木) 00:54:49.62ID:EFOplEJP
mauiとかOS標準の機能使うなら、大抵は各OSの最大公約数みたいな機能にしぼられるから、アプリがしょぼくなるか、
それを超えてやると「自分のコードが増える」
例えばOS毎にUI分けるはめになる
2020/12/31(木) 01:05:26.16ID:EFOplEJP
例えば、androidでは、メインのスクロールコンテンツにあわせてツールバーが隠れたりするUIがあるが、これを例えば、OSの機能でやるxamarin.formsでは用意されてない?
で、やろうとする「自分のコードが増える」

flutter内部でflutter側のコードは増えるが自分のコードは少なくなる
2020/12/31(木) 01:09:12.25ID:EFOplEJP
もちろん、iOSで他のOSのUIのお作法押し付けるのどうなのとかの問題あるが(flutterはiOSのデザインのコントロールも用意されてるが)
2020/12/31(木) 07:54:02.92ID:Jjnrc764
>>723
描画低レベルAPIってのはskiaのことね。このあたりの仕様や挙動はOSバージョンアップしてもそうそう変わらないので影響を受けにくい。
反対にXamarinとかは各OSのNativeなGUIコンポーネントの上にさらに実行環境を構築してるので比較的影響が出やすい。
例えばNativeボタンデザインが大きく変更されたとするとXamarinは影響あるけどFlutterには影響ない。
2020/12/31(木) 12:40:29.57ID:UmLdRWR0
Flutterで良いと思ったのは
UIの描画を独自でやってる所だが...

これでかなり面倒な
os毎の画面仕様の調整から解放される。
2020/12/31(木) 12:49:26.94ID:Jz4pw6lR
UI描画を独自でやってるのは割と大きいメリットだよね。
とはいえ各プラットフォームのガイドラインを無視するのか、とか、微妙な部分はあるんだけど。

バージョンアップ時に影響を受けることは、逆に少ないよ。
Androidでは、古い機種でも新しいコントロールの見た目で描画されるぐらいだし。
2020/12/31(木) 12:53:13.22ID:OoQLe3T9
reactとflutter比べるとflutterの方がUiに関してOS差分気にしなくていいから楽だしな
flutterのアーキは糞だけど現状flutter使うのがベストという悲しい状況
2020/12/31(木) 13:57:40.51ID:UmLdRWR0
>>739
各プラットフォームのガイドラインを無視する

それが良いんだよ。
742デフォルトの名無しさん
垢版 |
2020/12/31(木) 16:36:35.60ID:PAZjPB6Z
Androidのガイドラインは守ってるだろw
iOSはAndroidにUI/UXは2周回遅れにされてるからもう無理だし
2020/12/31(木) 21:00:53.70ID:EFOplEJP
androidの方がUIをiOSに似せてきてない?
ナビゲーションドローワからボトムナビゲーションへとか
2021/01/01(金) 03:54:37.10ID:hEezWpWG
analysis_options.yamlでcast_nullable_to_non_nullableを指定しても
warning: 'cast_nullable_to_non_nullable' is not a recognized lint rule
って表示されるのはなぜですか?
745デフォルトの名無しさん
垢版 |
2021/01/01(金) 16:24:52.42ID:xBl+DmmI
本来はオリジナルのUIコンポーネントを作るために、
Android/iOSが用意してる方法を使って、
Flutterは独自のUIコンポーネントを作ってるという事?

wikipeによるとDartはTSに敗れた後にFlutter向けに再始動したんだな
2021/01/01(金) 16:32:37.07ID:gmgvRsZJ
Flutterは画面に色々描画できる画面に相当する1枚のCanvasみたいなのがあって、Flutterが自分でボタンならボタンっぽく描画してるってこと。

で、そのCavasみたいのは(skia)のはandroidではopen GLそれともvulkan?、iOSならmetal?みたいのを裏で使ってる
2021/01/01(金) 16:40:28.24ID:gmgvRsZJ
OSは大抵はテキスト入力するコンポーネントやボタンオン/オフするためのコンポーネントなど色々なUIコンポーネントを用意してるが、そのなかに大抵自分で線や矩形などを使って自分で描画できるCanvasみたいなコンポーネント(機能)も用意されてる

FlutterはそのうちのCanvasコンポーネントを使って他のOSが用意してるボタンコンポーネントとか使わずに自前でボタンを描画してるイメージ
2021/01/01(金) 17:39:15.05ID:HB0G225a
>>743
要はスタンプ押すのを用意されたスタンプを使うのか自分で作ったスタンプ押すかの違い。
OSが用意したスタンプ使うとOSの仕様変更でスタンプの見た目変わっちゃって画面に入り切らなくなっちゃうけど、自分の作ったものは変わらず使えるってこと。
ここまで書いてあまり良い例えじゃないと気づいた。
2021/01/01(金) 17:46:12.19ID:HB0G225a
すまんな、アンカミスった。
2021/01/03(日) 13:57:35.22ID:wcnZibre
>>717
まず、_で可視性制御するのどうにかしてほしい
プロパティのprivateなsetterとかどうすりゃ・・
あと、finalフィールドが、initializer listでしか初期化できない・・
コンストラクタ内でfinalフィールド初期化したい
2021/01/03(日) 13:58:39.90ID:37FlK6+Q
dartはオープンソースだけど
それについてコミュニティーで問題定義しましたか?
どのようなアクションをあなたは起こしましたか?
2021/01/03(日) 14:34:23.29ID:wcnZibre
これもよく議論されるだろうが、
後、isolateもあるがシングルスレッド環境もどうなの・・
flutterはデスクトップも対応する予定だが、C言語ほどやるつもりは毛頭ないが、
結構パフォーマンスなどを気にかけだすと途端にウンコになる
なんにせよ、JavaScriptを引きずりすぎて、色々、制約が
2021/01/03(日) 15:20:53.68ID:+36sJQFE
デスクトップアプリ作ったことないけど、そこまで遅くなる印象ないけどね。AOTでもそんなに速くはないなーくらいは思ったけど。
2021/01/03(日) 15:59:19.99ID:iO9f4D6E
スマホアプリ作りたい初級者はフラッター1択なの?
2021/01/03(日) 16:07:12.40ID:wcnZibre
デスクトップだから遅くなるという意味じゃなく、デスクトップアプリだとマウス入力などでもっと生産系の凝った、複雑なアプリ開発とか視野に入ってくるわけで、
そうすると、マルチスレッドとか基本だけど、isolateだとメモリ空間分離されてるからめんどくさいし

もちろん、今のタッチ入力メインのモバイルアプリでも凝った、複雑なアプリ作れるが
2021/01/03(日) 17:53:55.66ID:8AIUs18f
マルチスレッドなGUIフレームワークって世の中にどれだけあるの?
2021/01/03(日) 17:55:15.81ID:VfQTkbQw
すげーー普通
2021/01/03(日) 18:10:19.83ID:HDj66jaS
>>750
privateが_なんて全くなんの問題もない。むしろそれごときに慣れる事ができないなら今後思いやられる。
finalがコンストラクタ〜ってのは分からんでもないけどそれならfinal外せ。
StatefulWidgetのfinal制限ならきっと俺には分からない実装上の都合があるんだろう。
詳しい人の解説を待とう。
2021/01/03(日) 18:11:12.37ID:GldJWR4v
普通か?
UIスレッドが複数のGUIフレームワークってなんだろ。

あと、極力、スレッド間でメモリ空間を共有しないのが最近の王道では?
isolateに振ったのは悪くない方法だと思う。
760デフォルトの名無しさん
垢版 |
2021/01/03(日) 18:12:08.79ID:AYuH2JJK
>>744
インデントとか?
761デフォルトの名無しさん
垢版 |
2021/01/03(日) 18:14:51.43ID:AYuH2JJK
>>759
どうせThreadレベルじゃプリエンプトされないから
MainThread.asyncで十分だよ
2021/01/03(日) 18:20:09.59ID:HDj66jaS
>>761
スレッドでも普通にTTSでプリエンプトされると思ってたんだけど最近は違うのかい?
2021/01/03(日) 18:33:08.94ID:ZfI7ecBk
>>754
ろくにプログラミング経験ないなら、
Kotlin + Android Studio
Swift + XCode
の純正で最初にある程度経験積むほうがいい。
最初からクロスプラットフォームの開発は初心者向けじゃない
2021/01/03(日) 18:40:50.09ID:ZfI7ecBk
>>752
なんだDartってマルチスレッド対応してないのかよ
Dartが洗練されてるとかいってた話うそじゃないかよw
時間かかる処理はどうやってるの?

C#使えるUnity, Xamarin, MAUIのが長い目で見るといいんじゃないか?
あとはKotlin Multiplatform

FlutterはUIの部品はいいけど、Dart言語がいまいちってかんじかね
2021/01/03(日) 18:46:38.13ID:wcnZibre
なんか話が途中からずれてるな・・
俺がいったのはあくまでUIスレッドは一つだぞ・・
>>759でUIスレッドが複数になってるけど
>>756もUIスレッドが複数の意味なのかもしれんが・・

>>764
一応、ワーカースレッドのisolateってはあるが、メモリ空間が別なので
データやり取りするのがちょっと難儀がある
2021/01/03(日) 18:49:39.97ID:4/sbt9BN
flutterのUIが豊富ってだけで仕組みは死ぬほど糞だけどな
少し大規模開発になると縦横無尽にblocやらproviderだらけになってレンダリング系の問題とか出てくると手に負えなくなる
2021/01/03(日) 18:50:29.08ID:4/sbt9BN
>>764
そうだよ
dartってゴミクズよ
2021/01/03(日) 19:19:11.19ID:wcnZibre
他にも整数型がintしかない問題
1バイトや2バイトなどしか使わなくても8バイトのint使うと無駄多すぎ
デスクトップアプリでメモリ一杯あるし勝手にキルされないから、どんどんオブジェクトを
ため込んでいくと無駄も結構大きくなる

メモリ絡みで弱参照もないし・・

もちろん、普段はHttpたたいて結果を表示するレベルのモバイルアプリがメインだからこんなことは
全く気にしてないけど

でも、どんどん規模が大きくなるとdartはうまくスケールしない・・と思う
2021/01/03(日) 20:09:38.68ID:HDj66jaS
>>766
まぁいくらproviderが極少化できるとは言ってもそれを最初から設計することは困難なのでとりま全Widgetツリー更新で実装してしまって、リファクタは影響が計り知れないのでそのままにしちゃう。
ステートのライフサイクルとの兼ね合いとかわけわからんくなって誰も触れないコードの出来上がり。
理想と現実は違うよね。
770デフォルトの名無しさん
垢版 |
2021/01/03(日) 20:24:11.69ID:AYuH2JJK
クソSwift+Rxより未来あるけどなwww
771デフォルトの名無しさん
垢版 |
2021/01/03(日) 20:35:56.13ID:AYuH2JJK
>>768
intしかないメリットも大きい。
機器からのbyte列をUint8Listに変換すると無駄に思えるが普通はそこからModelクラスに格納するのでローカル変数でしかない、激速で処理して解放するメリットのほうが大きいw
2021/01/03(日) 20:49:35.48ID:HDj66jaS
>>768
intに関しては今どきbyteだからと言って本当にRAMを8bitしか消費する事はないし、もしあったとしてもとっても無駄が多い。
CPUのアドレスバス幅考えればすぐに分かる事。
2021/01/03(日) 21:04:35.84ID:X5yHTTz4
swiftの方が100倍いい
2021/01/03(日) 21:05:47.37ID:+y0HLvdv
>>765
俺がいったのはって書いてあるけどいつ言ったの?
2021/01/03(日) 21:14:09.29ID:wcnZibre
>>774
君だれ?

>>772
ああ、そうだね。alignmentやpackingを指定できる言語もあるけど、たいていは特定のalignmentに調整されたね
そこは浅はかだった
2021/01/03(日) 21:19:13.11ID:q8fMdEaH
ああ、後出しで訂正したんだね
2021/01/03(日) 22:25:59.82ID:ZfI7ecBk
>>765
なるほど
UIで多少楽できても
Dartのせいでビジネスロジックで苦労するわけか。
マルチスレッドないと微妙だな

やはりゲームまでつくれてC#も使えるUnity最強説
2021/01/03(日) 22:35:07.72ID:ZfI7ecBk
Flutterなどのクロスプラットフォームを使わない場合に
モバイルアプリ開発で、
UI関連コードとビジネスロジックのコードの開発にかかる時間の
割合はどれくらいだろう?
20% + 80%?
30% + 70%?

直観でビジネスロジックで70%超える気がするんだけどそうだとすると
DartがクソなFlutter使うよりも、言語が優秀なC#系やKotlin系の
ツール使うほうが効率いいんじゃないのか?
2021/01/03(日) 22:37:32.35ID:ZfI7ecBk
778 の
言語が優秀なC#系やKotlin系のクロスプラットフォーム対応ツールとは
具体的にUnityとかKotlin Multiplatformとか。
Xamarin, MAUI
2021/01/03(日) 23:10:45.11ID:wcnZibre
つか、しぼらなきゃいけないの?w
まあ、オールラウンダーがあればそれ一つやるに越した事はないが
俺はwin32ネイティブ,WPF,UWPやらandroid java/kotlinで今はflutterだけど、アプリの種類に応じて一番楽なの選ぶだけだし

xamarinはないがmauiは出てきてから評価しないとなんとも言えんし
2021/01/03(日) 23:11:12.55ID:arRzErs6
マルチスレッドだとイイって
思い込んでる低脳かな?

Viewを担当する部位に
マルチスレッドいらんだろ。

Asyncで十分

2021/01/03(日) 23:22:43.49ID:wcnZibre
後、ビジネスロジックってビジネス次第だがhttp叩いて表示するくらいならどの言語でも基本はそこまで苦痛にならん

それよりもUI絡みのコードは、例えば独自ビューを作ったりするとそのUIフレームワークについて詳しく知る必要があるから自分では相当苦痛

だから、基本、言語がいくら糞でもUIフレームワークが充実してる方を選ぶかな。ということで、flutterは品質いいから普通に使うけど
783デフォルトの名無しさん
垢版 |
2021/01/03(日) 23:36:27.40ID:AYuH2JJK
RxとかMVVMとかユーザーメリット皆無だからな。
オナニーしてないでとっととプロトタイプ作れよ by 客
2021/01/03(日) 23:45:07.82ID:arRzErs6
いつまでクラサバやってんのか!
って感じのがマジ多い。

ロジックはサービス側で完結してくれ。


>>783
RxはUI側で有効に使えますよ。
785デフォルトの名無しさん
垢版 |
2021/01/03(日) 23:50:16.03ID:AYuH2JJK
>>784
もうそんな時代じゃないと思うんだよね。
表示系はrebuild、入力系はForms。
streamSubscriptionとかはRxを隠蔽して分かりやすく使う。
786デフォルトの名無しさん
垢版 |
2021/01/03(日) 23:57:22.04ID:AYuH2JJK
ビジネスロジックは要件。
UIは偉い人の好みでさらに偉い人の好み←ここが難題w
2021/01/04(月) 00:02:50.73ID:wxHhyhRl
UIは速攻で作って
技術ものとも使い捨てですよ。

使い捨てできなそうな実装は、
コードも読みづらいし、
View側のコードにロジックがてんこ盛り...
2021/01/04(月) 10:04:58.27ID:1mMfUC2y
>>783
確かにMVVMはViewをわざわざXMLとかの別言語で書く意味がわからん。ある意味強制的な分離にはなるんだろうけどアーキ設計者の自己満足としか思えん。
2021/01/04(月) 10:18:46.78ID:+IKV4HED
>>784
web appsも
web api使ったmobile appsも
client-serverだろう
2021/01/04(月) 10:22:38.76ID:+IKV4HED
>>778
ビジネスロジックの意味誤解されてるけど
UIに関連しないコードはビジネスロジックと思っていい。
日本語の「ビジネス」とは関係ない。
要件とも関係がない>>786
2021/01/04(月) 10:33:16.46ID:+IKV4HED
>>780
SwiftとばしてDartにいったのか。
Swift, Kotlin, C#の純正の開発も
Web APIやらDBのも継続的に学習必要だから、
cross-platformだけで何種類も追いかけてられないわ

アプリの種類に応じて使い分けることなく開発できるツールを
なるべく選びたいだろう
学習はするが楽はしたい。つまり効率
792デフォルトの名無しさん
垢版 |
2021/01/09(土) 20:58:24.77ID:pd7SqrDc
Swiftはうんこ💩だよ
793デフォルトの名無しさん
垢版 |
2021/01/09(土) 21:10:39.50ID:hogOqFTZ
>>792
swiftがdartより劣ることはないだろう。
2021/01/10(日) 00:00:05.06ID:FlG1u3dO
dartは何も決めなさすぎでウンコだろ
もうちょっと標準パッケージを充実させろよ
今は非同期のキャンセル処理を自分で適当なクラス作ってやるか..
kotlinなら一番豊富でJobやらDispatcherやらややこしい
C#だと、CancellationTokenがある
Dartも適当なの用意しとけよ
795デフォルトの名無しさん
垢版 |
2021/01/10(日) 01:03:30.16ID:Wfv87mi+
>>794
subscribe.cancel()じゃあかんの?
796デフォルトの名無しさん
垢版 |
2021/01/10(日) 01:04:40.92ID:Wfv87mi+
SwiftはUIKitから逃れられないから、いつか消えて無くなるだろう。。
2021/01/10(日) 01:27:39.96ID:FlG1u3dO
Stream使ってない部分では使えないよね?
2021/01/10(日) 01:31:06.02ID:FlG1u3dO
後はシングルスレッド環境だからって、ロックが必要ないわけじゃなくて、これも標準で用意してくんし
仕方なく
https://pub.dev/packages/mutex
https://pub.dev/packages/synchronized
とかを使ってるし
2021/01/10(日) 03:08:38.99ID:588Mk2oW
>>796
Foundationさえあれば使えるよ
サーバーサイドswiftも一部マニアは使ってるらしい
流行るかは別
800デフォルトの名無しさん
垢版 |
2021/01/11(月) 01:55:24.60ID:SkfT9fKQ
要らないNull安全くるの?
2021/01/11(月) 03:45:35.90ID:mRwGpmyA
要らないNULL安全は来ない
要るNULL安全が来る
2021/01/11(月) 11:37:56.31ID:Lce3SXFZ
2021/01/11(月) 11:54:51.67ID:MB0taG6M
カウンターアプリをstatenotifier+freezed+riverpodで書かれたサンプルを教えてください
804デフォルトの名無しさん
垢版 |
2021/01/11(月) 23:52:15.49ID:SkfT9fKQ
>>803
ググればでできます
provider+changenotifierで十分です
2021/01/12(火) 01:51:38.56ID:SMykDNbX
でてこねえじゃねえかボケ!!
806デフォルトの名無しさん
垢版 |
2021/01/12(火) 22:04:38.23ID:RLIPUQb6
>>804
プラスInheritedModelを使えるようになればステートマシンから部分更新余裕www
807デフォルトの名無しさん
垢版 |
2021/01/14(木) 08:34:37.85ID:Mu4twV5S
もうNull Safety要らないかな・・
2021/01/14(木) 09:40:16.39ID:4/ExPYx8
null safetyはよこい
どうせ、null safetyがくるから今assert(hoge != null)を書いたり書かなかったり適当にがこの1か月で書いたコードに大量に
はやく、全部assert消したい
まぁもう有効化できるんだろうが..
809デフォルトの名無しさん
垢版 |
2021/01/14(木) 23:35:18.58ID:Mu4twV5S
パッケージ対応してなかったら凹むわ〜
2021/01/15(金) 21:58:47.51ID:R5qZkkZa
前から思ったんだけどさ、collections api使ってると、A is not subtype of Bという
例外が出たりするんだけど
例外の意味は分かるんだけど、何でコンパイル通るのかなという
例えば
List<Hoge> hoge;
hoge = あるコレクション.map();
で、コンパイル通るけど、実行時に例外で
hoge = あるコレクション.map().toList();
にすると例外でない

ようはIterable<E>とList<E>の違いなんだけど、なんでコンパイル通って実行時に例外でるの?
2021/01/15(金) 22:12:55.05ID:5phYPvp0
>>810
それはDartがクソだからでしょ
2021/01/15(金) 22:35:16.76ID:R5qZkkZa
DartPadで実行しても例外でるな
void main() {
 List<String> hoge;
 final hage = [1, 2];
 hoge = hage.map((e) => e.toString());
 print('$hoge');
}
hoge = hage.map((e) => e.toString()).toList();
にすると例外消える
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況