Flutterやろうよ!!! 3at TECH
Flutterやろうよ!!! 3 - 暇つぶし2ch824:デフォルトの名無しさん
22/02/21 22:03:07.47 Vk6i+0P/0.net
Flutter初心者(というかアプリ開発初心者)でお聞きしたいのですが、
デバイス上に結構な枚数の画像を格納しておいて、一覧表示とかしたいのですが、
ファイルの格納方式をどうしようか考えてます。
普通にローカルに画像ファイルとして保存するか、ローカルDB(Isar)にUint8List に変換したものを格納するかなのですが、
どっちのが画像読み出して表示するときのパフォーマンスいいとかありますかね?
ざっくりした質問ですみません
そんなもん場合によるよ!ってならそれでいいんですが、
そんなの決まってるじゃんとかだった教えてもらいたく、、
全然開発とか初心者でよくわからないので。。。

825:デフォルトの名無しさん
22/02/21 22:17:36.15 PguJ60WA0.net
迷ってるってことはIsarの機能は必要ないってことでしょ?
実績が乏しいDBMSなんか避けた方がよくない?

826:デフォルトの名無しさん
22/02/21 22:22:47.93 Vk6i+0P/0.net
あ、Isarはどっちにしても使ってるんです

827:デフォルトの名無しさん
22/02/21 22:24:36.13 Vk6i+0P/0.net
というかこれが実績少ないとかよく知らずに使っていて、、、
本当はHiveがメジャーっぽいので使ってたのですが、クエリが使えなかったので
仕方なく後継っぽいIsarに乗り換えてました
迷ってるのは、ファイル操作的にはIsarに突っ込んじゃったほうがデータ操作とか楽そうだなと思いつつ
なんかUint8ListからImageに変換するのっておそそうだなとか思いつつと言う感じで、、

828:デフォルトの名無しさん
22/02/21 22:38:40.14 zCFtBfuW0.net
サムネイルみたいな小さな画像ならDBに突っ込んじゃうけど
大きな画像なら後は書き込みの頻度はどうなってるか

829:デフォルトの名無しさん
22/02/21 22:40:53.56 zCFtBfuW0.net
つか、ファイルに保存しようがUint8ListからImageに変換してるからそこの部分は同じだと思う

830:デフォルトの名無しさん
22/02/21 23:10:41.07 Vk6i+0P/0.net
回答ありがとうございます

831:デフォルトの名無しさん
22/02/21 23:12:49.33 Vk6i+0P/0.net
ファイルに保存してもUint8Listにしてるんですね
恥ずかしながら知りませんでした。。。
ファイルサイズ的にはスマホで一覧表示するのでサムネイルサイズにすると思ってて、
圧縮もするので(どこまで圧縮するのか悩みものですが。。)DBに突っ込んじゃおうかなと思ってます
助かりました
ありがとうございました

832:デフォルトの名無しさん
22/02/21 23:30:52.


833:07 ID:zCFtBfuW0.net



834:デフォルトの名無しさん
22/02/21 23:36:52.52 zCFtBfuW0.net
URLリンク(api.flutter.dev)
これが画像なまわりのコアの部分
で、入力としてImmutableBufferを与えないといけない
で、ImmutableBufferを作るにはUint8Listが必要
つまり、ファイルから読む場合でもいったん全部メモリに読み込んでUint8Listにしなきゃいけない

835:デフォルトの名無しさん
22/02/22 00:12:45.52 dl3R26vi0.net
ありがとうございます!
Dartで実装されていると遅いんですかね?知りませんでした
ImageDescriptorだといろいろ画像操作ができるんですかね?
今画像はFilepickerから取得してて、そのときに適当にピクセル数とimageQuality?調節してサイズを絞ってました
けど、これだと元ファイルのサイズによって動的に圧縮率とか変えられないので、
これだと元ファイルがかなり大きかったりすると十分に圧縮できなくてイマイチだなあと思ってるんですよね
ファイルアップロードはそんなに多くないのと、基本はローカルからFirebaseに上げるので、
ネットワークの速度のほうがネックなので、速度的にはあんまり気にしてないんですけどね

836:デフォルトの名無しさん
22/02/22 03:17:19.43 LWa6d2vN0.net
上から目線を隠しきれてない中途半端な丁寧語だなあ

837:デフォルトの名無しさん
22/02/22 09:25:59.07 S6CMrLfa0.net
テストを書く場合ってなんのパッケージを使うのが定番ですか?

838:デフォルトの名無しさん
22/02/22 12:40:36.56 ysWljmej0.net
Ruby on Rails の画像変換は、ImageMagick か、軽量のlibvips を使う

839:デフォルトの名無しさん
22/02/22 12:43:19.83 ysWljmej0.net
日本語サイトが欲しいって、
Chrome の翻訳ボタンを押せば、ページを丸ごと翻訳できるけど

840:デフォルトの名無しさん
22/02/22 13:40:16.32 HJRcJ9EY0.net
>これだと元ファイルのサイズによって動的に圧縮率とか変えられないので、
サイズを取得して確認して決めれば?

841:デフォルトの名無しさん
22/02/22 18:33:27.42 dl3R26vi0.net
>810
サイズに応じて変えるのだったら、たしかにある程度は調整できそうですね
ちょっとやってみます
ありがとうございます

842:デフォルトの名無しさん
22/02/22 22:31:50.17 QGpL9cIn0.net
storyboardとかいうこの世の地獄を煮詰めてひり出したウンコオブザウンコのワームホールに飲まれて死んだ者なのですが
Flutterすれば救済されますか?

843:デフォルトの名無しさん
22/02/22 22:32:24.64 QGpL9cIn0.net
storyboardとかいうこの世全ての悪を煮詰めてひり出したウンコオブザ雲粉のワームホールに飲まれて死んだ者なのですが
Flutterすれば救済されますか?

844:デフォルトの名無しさん
22/02/23 00:03:38.97 eLYKTtgv0.net
何言ってるのかわからない

845:デフォルトの名無しさん
22/02/23 00:29:12.66 gqN7AxCy0.net
dartで書かれてるから遅いというのは嘘で、結構早いよ
Cに比べると遅くなる可能性があるけどね

846:デフォルトの名無しさん
22/02/23 06:29:28.51 9LI1qdtQ0.net
いつgcしてんだ?ってぐらいに速い。体感ではAndroidのJavaより速い。さすがにNativeなSwiftよりは遅いかもしれないがそれでも十分に速い。

847:デフォルトの名無しさん
22/02/23 13:17:20.25 aUmyOIMG0.net
>>814
storyboard控えめに言って基地害すぎませんか?
激重xcodeのGUIでチマチマチマチマチマチマチマチマチマチマ弄った挙げ句クラッシュ
吐き出されるコードはもはやバイナリでdiff管理する意味も無い
危うくjobsを地獄にまで追いかけにいくところでしたよ

848:デフォルトの名無しさん
22/02/23 13:37:13.62 jrR/d40v0.net
CPU intensiveな画像のエンコードは通常C+asm,simdで最適化かけるし
数倍は速度違う
適当な事言うやつ多すぎ

849:デフォルトの名無しさん
22/02/23 13:50:19.91 K5zRAlvo0.net
>>809
まだおかしなところが多いので、原文のまま読んだ方が安全だわ

850:デフォルトの名無しさん
22/02/23 14:06:22.63 Py99G/WJF.net
機械翻訳して要旨を掴んで気になるところは原文読むかなあ

851:デフォルトの名無しさん
22/02/23 14:45:35.47 /XYQspsG0.net
>>817
その上さらにviewWillXXXXとViewDidXXXXで面倒見てやらないといけないのでほんまクソ

852:デフォルトの名無しさん
22/02/23 19:51:26.03 n2s77dK+M.net
web版はゴミのような遅さだな
いやゴミだ

853:デフォルトの名無しさん
22/02/23 19:52:09.63 RSUFG8Eu0.net
>>821
ここのデザインはstoryboardで変えられませ~~~んw
swiftコピペ10行くらい書いてくださ~~いwとかな
ほんと何度殺してやろうと思ったかわからん
わかってくれて嬉しいで
FlutterはそういうのがないGoogle神が作りたもうた天国なんですよね?

854:デフォルトの名無しさん
22/02/23 21:58:25.99 RwM0ghnk0.net
>>817
そもそもxibがクソ過ぎるしな
SwiftUIも対応状況微妙だし

855:デフォルトの名無しさん
22/02/23 22:23:16.33 /XYQspsG0.net
>>823
個人差あるだろうけどUIはかなり気に入ってるな、RowとかColumnにWidget並べる時のサイズ周りのConstraintsがめんどくさいけどそれでもstoryboardでScrollViewの制約ポチポチするよりマシに感じる
DartはSwiftと比べるとenum(extensionでカバー可?)、unwrapがこなれない感じはあるがそんくらいかな、Swift使いこなせてるともっと粗が目立つかも

856:デフォルトの名無しさん
22/02/24 07:27:32.71 WPtVerlza.net
storyboardが使いにくいのは否定しないけどここはFlutterスレ

857:デフォルトの名無しさん
22/02/24 12:25:00.05 N8pQJrdo0.net
制約を作り直す作業。

858:デフォルトの名無しさん
22/02/25 07:41:18.52 ECOkID780.net
昨日、コード書いてる最中にいきなりデバッグすら起動しなくなって
VisualStudio2022をアンインストールとかしてたんだけど、
flutterのissueにあったapp.soコピペでなんとか治った
AOTなんたらエラーが出てくる前に、CMakeFileの方のエラーで止まってたんだけど
いろいろ触って原因わからんままです
アプデしたわけでもないのに本当にいきなり突然だったからビビったわ
他の人もなってたりします?

859:デフォルトの名無しさん
22/02/25 11:22:30.85 Wtyk8EOHp.net
go_routerがflutterパッケージになったのか
俺はauto_routeの方が好きなんだけどなー

860:デフォルトの名無しさん
22/02/25 19:11:01.44 ECOkID780.net
治ったと思ったけど治ってなかったわ
ホットリロードもリフレッシュも効かない
結局VisualStudio2022アンインストール VSCodeのCMake拡張機能の設定
Outputをちゃんと見ること
などでいけました
半日以上くらい時間無駄にした

861:デフォルトの名無しさん
22/02/25 20:18:08.85 vAIzFgIj0.net
webの読み込みが重いらしいが、ホントならちとキツいかな…

862:デフォルトの名無しさん
22/02/25 20:58:56.67 ECOkID780.net
flutterでのwebってどのくらいやる気あるんだろうか?
よほど特化したメリットない限り、がっつりと切り替えていくことは無さそうな気がしてる。

863:デフォルトの名無しさん
22/02/25 21:03:04.40 pxO9isLG0.net
初期ロードが遅いけどページの切り替わりは速い
あとjsが最適化されて出力されるのでその演算も速い
でも元々そんなに時間かかるようなものが多くないからメリットはほぼない
ウェブだけに作るより、他の環境向けに作っててウェブへの対応が楽ってくらいじゃないか?

864:デフォルトの名無しさん
22/02/26 04:45:05.11 5dT3j7pp0.net
WindowsのMACアドレス取得したくて、ぐぐってみ�


865:スけど、 flutter_window.cppにMethodChannelを追加してなんたらみたいなのしか出てこない。 cpp分からないからProcess.runでipcofig打つbatを起動して取得するようにした。 どうもやり方が間違ってる気がしてならない。 まずいですか?



866:デフォルトの名無しさん
22/02/26 05:04:17.75 5dT3j7pp0.net
デバッグだといけたけどビルドするといけませんでした
... complete startup script
で止まってる。

867:デフォルトの名無しさん
22/02/26 05:15:29.01 5dT3j7pp0.net
batじゃなくて単純にcmdをProcess.runで動かしたらビルドした状態でも動作しました。
ちょっとデバッグと挙動違う気がしますが。
flutterじゃない部分も勉強しないとな。
こういうのは他人が作ってるライブラリとかをひたすら読んでみるのが勉強になるんですかね。

868:デフォルトの名無しさん
22/02/26 09:39:01.21 2FtVvne10.net
>>836
Win限定で良いならcmd使うのも全然間違いじゃない。
マルチプラットフォームにするならMethodChannel使うべきだけど。
何でも良いので1つ軽いブラグインのMethodChannelの使い方を読んだら理解できると思う。面倒くさいけどそう難しくはない。

869:デフォルトの名無しさん
22/02/26 13:59:34.20 5dT3j7pp0.net
>>837
なるほどありがとう
なんとかプラットフォーム個別の機能も使えるように精進します。

870:デフォルトの名無しさん
22/02/27 22:35:29.46 k18iMrEb0.net
FutureProviderで取得した値を使って、別の非同期処理を呼び出すFutureProviderを作りたいのですが、参考になるサイトやコードなどあったら教えていただけないでしょうか。

871:デフォルトの名無しさん
22/02/28 00:05:21.22 raYF/Sji0.net
そのやり方は汚いね
別に止めないけど

872:デフォルトの名無しさん
22/02/28 08:07:03.71 X5fvN/X80.net
>>840
より良いやり方や考え方などあれば教えていただけないでしょうか

873:デフォルトの名無しさん
22/02/28 16:31:58.35 aSAU0nri0.net
やり方聞かないと出来ないもんを使うな

874:デフォルトの名無しさん
22/02/28 16:47:48.66 PgTmMGsWd.net
>>842
いや、あなたがより良い/汚くないと考えている方法を聞いてるんでしょ。
それはあなたに聞かないとわかるわけないじゃん笑

875:デフォルトの名無しさん
22/02/28 18:33:53.21 aSAU0nri0.net
840じゃないから知らん

876:デフォルトの名無しさん
22/02/28 19:59:49.84 X5fvN/X80.net
かなり冗長な部分が出てしまいますが、一つのメソッド内で非同期通信2回やるようにします。両方終わってから処理すれば一応動きそうなので。

877:デフォルトの名無しさん
22/02/28 21:47:38.62 phH36JUk0.net
>>845
一方が他方に依存するように書いておけば勝手に更新してくれる
ProviderなのかRiverpodなのかで話が変わるけど

878:デフォルトの名無しさん
22/02/28 23:03:06.60 X5fvN/X80.net
>>846
riverpod使っています。
先に実行されるメソッドの返り値がfutureオブジェクトでも後続処理は先行処理の終了を待ってから自動実行してくれるのでしょうか。

879:デフォルトの名無しさん
22/02/28 23:58:58.70 aSAU0nri0.net
やり方聞かないと出来ないもんを使うな

880:デフォルトの名無しさん
22/03/01 00:03:04.03 ihRVn7e/0.net
変な人がわいたなw

881:デフォルトの名無しさん
22/03/02 02:39:41.84 jJQkGa9v0.net
>>847
情報が少なすぎてなんと回答すれば良いか分からない
よくわからないが、1つ目のメソッドの実行をawaitで待ってから、もう一つのメソッドを実行すればいいんじゃないの?
ただ、独立した関数ぐらいの感覚でProviderを増やすのは、上の人の指摘通り汚いやり方だと思う、、、とだけ忠告しておく
FutureProviderは、riverpodのProviderの中で一番上級者向けの、使いこなすのが難しいクラス
FutureProviderの使用を縛っている職場もあるらしい。自分もめったに使わん

882:デフォルトの名無しさん
22/03/02 02:47:35.26 jJQkGa9v0.net
awaitで対応できないなら、
『非同期処理』と『チェーン』でグ�


883:Oればいいと思う Future.then()でも対応できないなら、Future.wait()で対応すればいい



884:デフォルトの名無しさん
22/03/02 23:34:31.12 tVatGucb0.net
>>851
ありがとうございます。futureの使い方もう一度勉強しなおしてみます。
情報が少なく申し訳ありません。実際にやりたいことは
親widgetがapiで取得した値を2つの子widgetに引き継ぎ、子widgetがそれぞれ引き継いだ値を引数にapiを呼び出して取得した値を表示する。
といったことをやりたいと考えています。

885:デフォルトの名無しさん
22/03/03 02:05:08.47 le9JJBGc0.net
もし誰かわかったら教えてほしいのですが
showModalBottomSheet で表示させたモーダル上のテキストの内容を更新して、
再描写したいのですが、
Riverpodを使っているため、
ベースとなっている画面がStatefulWidgetじゃなくてConsumerWidgetになっていて、setStateが使えません
こういうときってどうすればいいですかね
やりたいことはGoogleカレンダみたいな画面をつくることで、
メインの画面でカレンダを表示させて、
カレンダのどこかをタップしたら、下からモーダルが出てきて、
そこで日付とかイベントのタイトルを編集し、
確定することでDBに書き込みにいくみたいなことをしたいです

886:デフォルトの名無しさん
22/03/03 08:52:54.97 0EeJ5gkZ0.net
>>853
そこで困るならRiverpodを使わずにStatefullWidgetにすりゃいいと思うが
モーダル上のテキストをProvider(多分StateProviderかStateNotifierProvider)をwatchして取得すれば、そのproviderのstateが変わったタイミングでモーダルも更新される

887:デフォルトの名無しさん
22/03/03 10:36:19.25 rznO1b1x0.net
目的がスキル向上ならばriverpodを使い続けてもいいけど、
そうでないなら使用をやめた方がいい

888:デフォルトの名無しさん
22/03/03 12:08:58.88 yVL2Pcoop.net
ConsumerStatefulWidget使えばいいよ

889:デフォルトの名無しさん
22/03/03 12:29:29.10 rznO1b1x0.net
ConsumerStatefulWidgetは使いどころがあんまりない印象
前に設計段階で、カスタムWidgetのようなUI寄りの状態管理をsetStateにまかせて、その他の状態管理をProviderで行う
みたいな使い分けをしようと考えたことがあるけど
実装をはじめてみると、UI寄りの状態管理もProviderでないとうまく書けないところが出てきて、
最初に決めたルールがぼやけてしまった

890:デフォルトの名無しさん
22/03/03 15:13:19.74 91NsRh7Pd.net
>>842
いや、あなたがより良い/汚くないと考えている方法を聞いてるんでしょ。
それはあなたに聞かないとわかるわけないじゃん笑

891:853
22/03/03 18:01:17.33 le9JJBGc0.net
いろいろアドバイスありがとうございます
対応は迷いますね
ただずっとRiverpodを使う前提できてしまったので、ConsumerStatefulWidget使うかなあと思いますが
いろいろ試してみます

892:デフォルトの名無しさん
22/03/03 19:16:48.64 w1mct4hsa.net
パッケージに振り回される底辺さんたち笑

893:デフォルトの名無しさん
22/03/03 20:11:50.99 91NsRh7Pd.net
>>860
と底辺さんが申しております。
パッケージ使わずに何作るの。
使うけど振り回されてはいない、みたいなことか?
どうでもいいよ誰やねん!

894:デフォルトの名無しさん
22/03/03 21:40:46.24 pTVL84hMM.net
流石にその自演は本人以外にはモロバレなので自重した方がいいよ

895:デフォルトの名無しさん
22/03/03 22:12:12.75 mAysBGeYa.net
アウアウとスプとプーイモの自演は香ばしいな

896:デフォルトの名無しさん
22/03/04 01:13:20.97 rNO7rm+h0.net
>>859
ConsumerStatefulWidgetは想定通りに動いてくれないことが多いから触りたくない
まじで振り回される
……とだけ忠告しておく

897:デフォルトの名無しさん
22/03/04 14:15:04.53 /Tm8OqzAM.net
【世界教氏マITL-ヤ】 水俣病、アマルガム、腸の過敏
スレリンク(body板)
URLリンク(o.5ch.net)

898:デフォルトの名無しさん
22/03/07 21:38:05.29 pleu+lQP0.net
dartってC++に近いよな
C#JavaJavascriptなんかより

899:デフォルトの名無しさん
22/03/07 22:04:42.36 s7EYao7X0.net
色んな言語の要素を取り入れようとしたけど挫折してとりあえずJSのアンチテーゼとして型安全な静的型付けにしたってだけのかなり中途半端な言語ってイメージしかない
C++の上っ面だけをベースに開発してる癖にJavaの冗長性を随所に盛り込んだがコーディングがクソだるい言語仕様
C#をパクるかC#を採用すればいいのにGoogleお得意の模倣したりパクったけど劣化コピーになっちゃったテヘペロって言語
とにかく異常に冗長でわかり辛いキーワードや構文で書き辛く型を強制しただけのガバガバなスコープでNamespaceもないとかDart設計アーキテクトはまったくセンスを感じないしセンスないわ

900:デフォルトの名無しさん
22/03/07 22:17:14.35 gZN/D0NdM.net
私はDartは好きな言語だからFlutterも楽しい

901:デフォルトの名無しさん
22/03/07 22:53:49.95 s7EYao7X0.net
Dart :
import ‘hoge¥b.dart’;
import ‘hoge¥c.dart’;
class A extends B implements C {
@override
bool execute(){
return true;
}

C# :
using B;
using C;
Class A : B, C {
public override bool Execute() => true;
これだけ見ても如何にC#が簡潔かつ読みやすく書きやすいかわかるよな
なぜJavaみたいな冗長な言語仕様に寄せるのかと言えばAndroidがJavaだからという完全なるGoogleの都合だからな

902:デフォルトの名無しさん
22/03/07 23:06:25.16 lkfChReJ0.net
なぜわざわざ新言語を作ったのかねぇ
.NET MAUI がちゃんと実装されてちゃんと動けば、flutterは誰も使わなくなるよ
flutterって、あのGoogleオレオレ言語のやつでしょ?ってなる

903:デフォルトの名無しさん
22/03/07 23:24:14.70 s7EYao7X0.net
まぁみんな考えることは同じなわけでFlutnetというXamarinでFlutter開発ができるものがあるが結局ラッパーだからバージョンアップが遅れるし何より有料だからな

904:デフォルトの名無しさん
22/03/07 23:32:52.74 6G1TI/V/0.net
mauiよりkotlinのcomposeの方が有力じゃね?

905:デフォルトの名無しさん
22/03/07 23:48:45.14 6G1TI/V/0.net
まぁ、現状iOS向けはないし、compose for drsktopだとandroidとシングルソースはまだ無理っぽいがmicrosoftのmauiよりjetbrainsの方がやる気ありそう

906:デフォルトの名無しさん
22/03/08 00:02:33.98 LC5q7Hb30.net
数年以内に多分また新しい言語出してくるだろうな
それがいいものだといいんだが

907:デフォルトの名無しさん
22/03/08 00:14:07.88 yHeTSYqK0.net
GoogleってまだGoとDart(とGAS)しか作ってない?
思ったより少ない

908:デフォルトの名無しさん
22/03/08 00:14:33.10 qJWSdqLUa.net
go もみりゃわかるが、Googleの言語デザインセンスはほんとクソ
何がクソといってそもそも後発で自分が検索を牛耳ってるくせして名前が go ときたもんだバカかアホかと

909:デフォルトの名無しさん
22/03/08 00:27:54.79 OPcZsrk0a.net
アロー関数はDartでもある。
読みやすいて結局ただの慣れ。
それにコード補完あるから全部タイプするわけじゃない。
初学者は冗長な方が読みやすいというのはある。
多分そういうの考えてあえて冗長にしてるような気はする。
知りませんけどね。

910:デフォルトの名無しさん
22/03/08 00:56:14.13 1JIWCLaI0.net
C#やXamarinを主張する奴が定期的に現れるねw

911:デフォルトの名無しさん
22/03/08 01:00:13.78 QLMqwu3o0.net
おじさんかも

912:デフォルトの名無しさん
22/03/08 01:17:55.12 mYyNlLhu0.net
自動実装プロパティもないクソ言語を擁護できるのはJavaおじしかおらんよな

913:デフォルトの名無しさん
22/03/08 01:33:21.01 bIV0aSTJa.net
>>869
C#の方のBとCはInterfaceじゃないの?
悪意を持ってDartだけextends B implements Cで長ったらしく見せようとしてる?

914:デフォルトの名無しさん
22/03/08 07:02:58.13 YIOYthcHM.net
>>881
ググればすぐわかることだけど、Bは継承だよ。インターフェースかもしれんけど
アローを使ってないところはわざとかもしれん

915:デフォルトの名無しさん
22/03/08 08:45:51.98 ZiEZcLn10.net
Javaはクラスの公開したい変数にBeansの名残りでgetterとsetterを作ることになるのが本当にクソ(作らなきゃいいと言えばそうなんだが)
Dartはそこらへん楽でいいね

916:デフォルトの名無しさん
22/03/08 08:57:24.13 T7QnS+Lf0.net
>>883
getterとsetterはlombok使って自動生成だよ
みんな使ってる

917:デフォルトの名無しさん
22/03/08 17:51:00.68 2K4R2sZJ0.net
>>884
おっしゃる通り、業務ではlombok使ってる。
でも言語仕様と昔の慣習がちょっと釈然としないんよね

918:デフォルトの名無しさん
22/03/08 17:56:27.87 WWlpqMIX0.net
変な言語で変な教義にこだわるから変なプリプロセッサがほしくなるんだよ
変な漢ならpublicにすればいい

919:デフォルトの名無しさん
22/03/08 18:20:24.50 mYyNlLhu0.net
>>884
lombok使って自動生成だよ!(キリッ
いやいやクラスの半分以上も埋めてしまう不必要なボイラープレートコード満載の言語仕様がおかしいと議論してるのにわざわざ手間のかかるアノテーションつけてLombok使って自動生成だよは草
Javaを正当化するやつってゴミみたいな言語に慣らされてすぎててバイアスかかりまくりで正常な判断や思考ができないみたいだな

920:デフォルトの名無しさん
22/03/08 19:40:49.45 k5cvp5mJd.net
>>887
あなたの正常認定誰得なん?笑
あなたが気持ち良いの?
そんなのキモすぎるだけやん。

921:デフォルトの名無しさん
22/03/08 19:42:06.91 TtxmVPK9M.net
JavaもDartも過去のしがらみ引きずった鈍臭い言語仕様なんだから仲良くしろよ

922:デフォルトの名無しさん
22/03/08 19:53:16.96 3IiiXdzb0.net
Dartがペストだとは思わんが嫌いじゃないな。
言語拡張を繰り返し開発案件のバージョン制限によりどの情報を参考にして良いのかわけ分からなくなってるC#より良い。
それでもC#は好きなんだけど、Javaは刺賀にもう駄目かな。
Pythonは別物過ぎて比較にならん。

923:デフォルトの名無しさん
22/03/08 21:15:45.47 0lkfcAhj0.net
言語にケチつける人はレベルが低いだけ~

924:デフォルトの名無しさん
22/03/09 09:23:10.19 exkfEX190.net
トランスパイラ作ればいいだけよ

925:デフォルトの名無しさん
22/03/09 10:19:56.77 EL+d1iFjM.net
いくらC#が良くても、Xamarinはコンセプト・アーキテクチャが終わっとる。
React NativeはFlutterに近い考え方と思うけど、Android対応がいまいちなのと、膨大なエコシステムが混沌としててとっつきにくい。

926:デフォルトの名無しさん
22/03/09 11:33:46.27 pTfeQon50.net
マルチアカウントを実装しようとして、
ひとつのアカウントの中で、オブジェクトがシングルトンであることを実現するには
どうすれば良いか悩んでいたけど
riverpodをやめて、ただのproviderを使えば良いだけだった
riverpodを上位互換と言ってたヤツ誰だよ(駄目な悪態)

927:デフォルトの名無しさん
22/03/09 11:38:17.56 pTfeQon50.net
あっ、思ったことできない。上のヤツ、キャンセル

928:デフォルトの名無しさん
22/03/09 12:59:01.73 /NCnVpyk0.net
リバポは上位でも互換でもないですよー
意識高い系(悪い意味の)に好まれてますw

929:デフォルトの名無しさん
22/03/09 13:52:01.26 pTfeQon50.net
調べてみると、やっぱりマルチアカウントの実装はproviderでできそうだわ
>>896
riverpodは状態をグローバル・シングルトンで管理して良い時に使うライブラリだから
どちらかというと技術を必要としない人に好まれるものだと思う
意識高い系の逆じゃないか…

930:デフォルトの名無しさん
22/03/09 14:26:18.10 pTfeQon50.net
あーちくしょー
riverpodで書いたコードをすべてproviderに書き直すのだりぃいいい

931:デフォルトの名無しさん
22/03/09 16:47:14.91 l/ExOFMG0.net
もういいよ! 私、Flutterやめる!

932:デフォルトの名無しさん
22/03/09 19:14:22.52 63IP/FFF0.net
Rustの時代が来るのにDartなんて話にならんのよ

933:デフォルトの名無しさん
22/03/09 20:58:26.36 eVK1cWN30.net
riverpodに限らず大体は使い方次第なきがする
ちゃんと設計してればriverpodも使いやすい

934:デフォルトの名無しさん
22/03/09 21:46:49.18 a6ydt4Lg0.net
>>894
フレームワークとは関係なく普通にfactoryとかfactory methodパターンじゃだめなんか?

935:デフォルトの名無しさん
22/03/09 21:53:39.85 l/SlEhVVa.net
diもnotifierもunion classも同梱されて
futureの世話みたいな開発者に任せればいい機能まであって
その子達を使った設計を考えるから
riverpodでしか使えない設計になりがちじゃない?
全部使わなくていいけどriverpod押しの人は駆使したがるよね
provider風にstatenotifierproviderだけで作りたくてもやっぱりriverpodの設計になっちゃう
refを求めてprovider地獄になっちゃって難しかったよ

936:デフォルトの名無しさん
22/03/09 23:43:02.73 pTfeQon50.net
>>902
Factoryでも実装できるんだけど、懸念点があった
アカウントごとに分けられる処理は全てアカウントごとに分ける必要があったんだけど
モデルとリポジトリをアカウントごとに分けるために、
モデル層のインスタンスをアカウントに対応してひとつずつ用意する必要があった
それは、Factoryクラスにロジックを追加するだけで実装可能だけど、
そういう設計にしたら、今度はインスタンスのライフサイクルの問題が出てくる
バグの修正、安定化……って考えたら、
riverpodで書いたコードをproviderに書き直す方がマシにみえた

937:デフォルトの名無しさん
22/03/10 04:31:21.48 aIOV4LNTH.net
テスト

938:デフォルトの名無しさん
22/03/10 04:34:28.97 210eybw10.net
全てをriver_podからproviderに書き換えて、account_managerを実装中に気がついた
この実装、いけてないわ…
かくなる上は、クラスにメタデータを追加する独自アノテーションを実装しよう
アカウントが切り替わるたびに、インスタンスが切り替わる奴
……絶対きついわ

939:デフォルトの名無しさん
22/03/10 09:21:11.86 Vltzkmgx0.net
今のところpubが質的に貧相すぎてflutterが有利な局面は限られてる感じある

940:デフォルトの名無しさん
22/03/10 20:03:20.92 210eybw10.net
独自アノテーションの自由度が低い
リフレクションも重いし、メンテが大変そう…
Factoryの方がマシか

941:デフォルトの名無しさん
22/03/10 20:13:54.53 210eybw10.net
ああ、ChangeNotifierを継承したInjectorを作って、
Injectorの中で、
アカウントとインスタンスのMAPの保存・更新と、インスタンスの生成
の責務を追わせればいいのか
InjectorはProviderの中で呼び出せばいい……4日も悩んだのに答えはシンプルだった

942:デフォルトの名無しさん
22/03/10 20:37:53.47 gbrVAWEC0.net
責務がめちゃくちゃになってそう
riverpod使ってる人って全体的な設計ってどうしてるの??
MVVM?MVHogehoge?

943:デフォルトの名無しさん
22/03/10 20:39:56.21 gbrVAWEC0.net
しらんが、riverpod使ってる人みんな試行錯誤してて独自のパターンとか生み出してるのかな

944:デフォルトの名無しさん
22/03/10 23:51:36.13 210eybw10.net
riverpod+ChangeNotifierでMVVMに出来�


945:トる



946:デフォルトの名無しさん
22/03/11 00:05:40.08 Z9cwXRQ+0.net
C#とXAMLじゃないのにMVVMとか意味ないぞ
元々XAMLとMVVMがセットで設計されてるフロントエンドフレームワークなんだが

947:デフォルトの名無しさん
22/03/11 01:22:00.53 VNbOsDS+0.net
でも流行らなかった

948:デフォルトの名無しさん
22/03/11 02:42:39.92 25NFXPOa0.net
riverpodを使うとmodel側の状態の更新がviewにすぐ反映されるから
riverpod+ChangeNotifierを使うと、コードを整理するだけで自然とViewModelができる

949:デフォルトの名無しさん
22/03/11 08:27:20.69 AJWG9hcz0.net
状態管理手法に依存した設計なんてしないよ

950:デフォルトの名無しさん
22/03/11 08:38:16.22 EROoOM5/0.net
as void Function()で関数をダウンキャストできるの楽だな
C#だとInterface定義してジェネリックにしないと危険すぎてそんなキャストやろうと思わないけど

951:デフォルトの名無しさん
22/03/11 11:09:53.73 yElIEBgF0.net
>>913
認識のあやまり
mvvmはmvpの一形態あるいは派生でしかない

952:デフォルトの名無しさん
22/03/11 11:25:44.66 V+jzc/aHa.net
>>916
それな!
有名っぽいイヌの人はriverpodでは違う設計になるって言ってたけど
それはよくないんじゃないの~って私は思ったよ
プロバイダーを束ねるみたいなriverpod独自の機能をたくさん使うと
依存した設計になっちゃうね
それに解りにくくなるから好きじゃないなー

953:デフォルトの名無しさん
22/03/11 22:40:56.13 EROoOM5/0.net
>>918
ものすごい思い込みと妄想で断定してるな嘘も100回言えば真実ってか?韓国人かよ
ちゃんとMSのホワイトペーパーかそれに準ずるソース出せるんだよなオオカミ少年?てかさっさとソース出せ

954:デフォルトの名無しさん
22/03/11 22:44:55.07 9y/ArZb90.net
MVVM関していえば君がまちがってると思う
C#とXAMLじゃなくても使えるし

955:デフォルトの名無しさん
22/03/11 22:51:38.49 9y/ArZb90.net
ああ、>>913の人向けね

956:デフォルトの名無しさん
22/03/11 23:09:27.27 ASnEE/3lr.net
>>921
だからソース貼ればお前の勝ちだから早く証拠のソース貼れよ

957:デフォルトの名無しさん
22/03/11 23:26:03.36 C9Q5et170.net
SwiftUIとかも基本的にMVVMだよ

958:デフォルトの名無しさん
22/03/11 23:26:23.09 M1wqcIdpM.net
たとえばこんなのでいいの?
URLリンク(nextpublishing.jp)
fluterじゃないとかAndroid公式じゃないとかただの書籍じゃないかとか難癖つけられるだけな気もするけど

959:デフォルトの名無しさん
22/03/11 23:33:48.32 EROoOM5/0.net
>>925
いやだからお前は
> >>913
> 認識のあやまり
> mvvmはmvpの一形態あるいは派生でしかない
って断言してるんだがMVVMがMVPの一形態(日本語がおかしい)だって断定して>>913を否定してるんだからその証拠のソース示せって言ってんだよ
だから断言できるMSのホワイトペーパーかそれに準ずる証拠をさっさと示せよ
>>925
入門書見せてお前の妄想の証拠になるわけないだろ
さっさと思い込みと妄想とノリ嘘吐いちゃいましたごめんなさいしろや

960:デフォルトの名無しさん
22/03/11 23:48:45.89 M1wqcIdpM.net
>>913
>C#とXAMLじゃないのにMVVMとか意味ないぞ
についての反例を上げたんだがやっぱり難癖つけられただけに終わったか
ていうか俺918じゃないんだけどさあ
罵倒すること自体が目的になってるからこういう口調がデフォルトになってるんだろうねこの人は

961:デフォルトの名無しさん
22/03/11 23:52:11.58 9y/ArZb90.net
うん
そうだと思う
時間の無駄だから相手するのやめた方がいいね
俺らはMVVMは他でも使える派
彼らはMVVMはC#とXAMLでしか意味ない派
でおしまいでいいよ

962:デフォルトの名無しさん
22/03/12 00:02:52.53 1TaAiX3A0.net



963:\ース示せず思い込みと妄想の大嘘確定で敗北して負け犬の遠吠えで逃亡してんの草 脊髄反射でレスしちゃいました勘違いして知ったかしてごめんねテヘペロってさっさとあやまればいいのにほんとアホだわ



964:デフォルトの名無しさん
22/03/12 00:42:58.23 kbu64D030.net
MVVMに挫折して脱落したおじさんなんじゃないかな

965:デフォルトの名無しさん
22/03/12 01:00:47.45 Ko1NPYQO0.net
C#のしつこい主張で老害の気配も感じてたけどホントに老害だったああぁぁああ
「ってか?」って古くて恥ずかしいからやめて~ きゃああ

966:デフォルトの名無しさん
22/03/12 01:07:01.26 1TaAiX3A0.net
理詰めで論破されて悔しくて悔しくて顔真っ赤でIDコロコロ自演とか俺だったら恥ずかしすぎて自殺しちゃうね

967:デフォルトの名無しさん
22/03/12 01:13:13.38 vvvoWF+K0.net
めんどくさい話をしてるな
はっきりしているのは、vi はクソだってことだ

968:デフォルトの名無しさん
22/03/12 06:49:48.09 1D7Mg2zM0.net
MVVMの発祥はMSのWPF辺りだけどC#とXAMLしかMVVMじゃないという根拠が分からん。

969:デフォルトの名無しさん
22/03/12 10:51:28.56 q+cJNNu6a.net
脱落したおじさんなんじゃないかな
と5chで妄想してるおじさんもそう変わらんやろ笑

970:デフォルトの名無しさん
22/03/12 14:30:56.22 q+cJNNu6a.net
古くて恥ずかしい
という意味不明な発想笑

971:デフォルトの名無しさん
22/03/12 14:46:29.53 QWgShYsB0.net
誰かflutterのアップデートごとに内容を記事にまとめて
アフィ広告ふみますからおねがい

972:デフォルトの名無しさん
22/03/12 14:49:45.16 N2ljdUSG0.net
c#のmvvmは
純粋mvvmというより
mvvmをblandで利用する為に拡張しまくった
bland.SDKであると言うのが実態

973:デフォルトの名無しさん
22/03/12 16:14:01.88 Flf+dDbL0.net
FlutterでWindowsデスクトップアプリ作れるみたいだけど、ロジック部分をC#で書けますか?
スレッド管理が超重要だけど、Dart覚えながらスレッド管理し切る自信がないのでロジックだけC#使いたいです。

974:デフォルトの名無しさん
22/03/12 16:45:04.09 1D7Mg2zM0.net
>>939
C#のロジックをDLL化すればいけるんじゃね?
それかflutnetを使うか。

975:デフォルトの名無しさん
22/03/12 17:45:40.27 1TaAiX3A0.net
blandってなんだよblendだよ馬鹿w
元はMSがCreature Housewから買収したExpressionというベクターツールだよボケ
こんな無知で知ったかしてるやつが噛みついてきてんだからレベル低いとかじゃなくて論外なんだよアホ

976:デフォルトの名無しさん
22/03/12 17:56:35.94 9lkR3mf4M.net
たかだかtypoでそこまで叩けるなんて凄いね
他に反論できなかったのかな?

977:デフォルトの名無しさん
22/03/12 20:00:25.36 QWgShYsB0.net
オライリーから本が出るけど和訳はいつでるかな

978:デフォルトの名無しさん
22/03/12 20:08:28.65 Ko1NPYQO0.net
あおり運転する人みたいなガラの悪さだね~
こわーい

979:デフォルトの名無しさん
22/03/12 21:48:49.72 5wLEJm9u0.net
Flutterをオライリーで学ぶ人は結構厳しいものがある

980:デフォルトの名無しさん
22/03/13 08:39:33.93 jxztePK8a.net
>>945
本じゃすぐ古くなるから?

981:デフォルトの名無しさん
22/03/13 12:24:51.65 N1l5KzjE0.net
オライリーは勉強する人のための本じゃなくて
勉強した人のための本やしなぁ

982:デフォルトの名無しさん
22/03/13 17:20:24.36 BML9NIBO0.net
オライリーは固定化された技術を系統だって理解するには良いけど、さすがに1~2年違うとガラリと変わる風景には対応できんだろ。

983:デフォルトの名無しさん
22/03/15 12:53:46.38 e2fowoyJa.net
セックスしたい
恋人作る方法教えて

984:デフォルトの名無しさん
22/03/15 13:07:50.46 ys3JZoKV0.net
>>949
せっけん1こ、釘1


985:本、マッチ100本、えんぴつ450本、 石灰コップ1ぱい、硫黄・マグネシウムつまみずつ、 水1.8リットル を用意してください



986:デフォルトの名無しさん
22/03/15 13:11:59.95 FJWI/71h0.net
地面に石灰で直径31.35センチの円を描き、中に六芒星を描きます

987:デフォルトの名無しさん
22/03/15 23:57:27.12 T2FbsGHT0.net
Flutterは進化が早いから書籍は向いてないかも

988:デフォルトの名無しさん
22/03/16 00:51:40.09 ksetJDfN0.net
進化が早いといえば聞こえがいいけどようするに
基本設計が適当で行き当たりばったりなので
毎回派手に仕様変更され続けてる言語でしょ?
正直、仕事で無ければ触りたくない言語だと思う

989:デフォルトの名無しさん
22/03/16 07:58:40.12 GlBm7zwX0.net
別に仕様変更なんてないし言語でもないがな

990:デフォルトの名無しさん
22/03/16 08:48:28.03 f7CH62EM0.net
フレームワークを言語と間違えちゃうのかわいいねっっ!!!

991:デフォルトの名無しさん
22/03/16 10:07:30.66 P7p17Th+p.net
スマホOSが機能追加繰り返してるんだから
それに合わせて拡張していくのは当然なんだけどな
実際OSアプデの度に新機能追加したFlutterを数日以内にリリースしてるからね
Googleはかなり本気でサポートしてるよ
Xamarinなんて年1回少しだけ機能追加して後はバグ修正しかしてないからね
あの調子じゃすぐ時代遅れになるのに

992:デフォルトの名無しさん
22/03/16 11:23:24.14 F7f1h7IH0.net
そもそもFlutterあんま触ってなさそう

993:デフォルトの名無しさん
22/03/16 11:37:28.18 f7CH62EM0.net
Xamarinの話はNG!
またあの人がきちゃうっ!!!笑

994:デフォルトの名無しさん
22/03/16 11:38:28.87 3FfT6vQB0.net
Xamarinはクソ

995:デフォルトの名無しさん
22/03/16 12:46:52.83 n5Renb6+a.net
ちょまどさんが来ますよ!

996:デフォルトの名無しさん
22/03/16 13:09:47.70 X1c3Uy4i0.net
FlutterはGoogleの中の人が飽きたらなくなるが、
Xamarinはユーザーがいなくなってもなくならない
これがGoogleとMSの違い

997:デフォルトの名無しさん
22/03/16 13:42:40.54 1WalaTG1r.net
昔のDartでさえ無くならなかったのに今のFlutter/Dartが無くなるとは思えない

998:デフォルトの名無しさん
22/03/16 13:46:31.81 SIoec7uI0.net
DirectX.NET
XNA
SilverLight
Windows Mobile
Internet Explorer
なくならないなんてあるの?

999:デフォルトの名無しさん
22/03/16 14:08:15.18 O3OnEw410.net
Dartの使用者が増えないのは個人開発的にかなり美味しい
みんなが参戦するとすぐ赤い海になるわ
Flutter/Dartならば、開発工程を相当飛ばせるから、
少し前なら大作と呼べるようなアプリを、個人でも現実的な期間で作れる
あとFirebaseやFlutterのAPIの応用例に、チーム開発では使えないような魔法が多いから、
個人開発でもチーム開発に対抗する余地がある
また、日本は海外に比べてレベルがかなり劣ってるから、
海外では学生がポートフォリオで作るようなクオリティーのアプリでも勝負できる

1000:デフォルトの名無しさん
22/03/16 14:10:19.11 O3OnEw410.net
今のこの美味しい状況があと何年続くんだろうな…

1001:デフォルトの名無しさん
22/03/16 17:47:43.82 AUMfJKJU0.net
>>958
呼んだ?
URLリンク(iso-labo.com)

1002:デフォルトの名無しさん
22/03/16 17:56:54.28 X1c3Uy4i0.net
>>965
.NET MAUI がリリースされるまでだね
もうすぐ終わりだよ

1003:デフォルトの名無しさん
22/03/16 20:37:04.27 kQvZkE0K


1004:d.net



1005:デフォルトの名無しさん
22/03/16 22:28:42.95 kQvZkE0Kd.net
>>967
は?flutter舐めてる?
まだ始まってもねーから!!!

1006:デフォルトの名無しさん
22/03/18 11:16:52.56 Rp9aIyi6d.net
>>950
人体錬成にしては少ないような?

1007:デフォルトの名無しさん
22/03/18 12:09:22.56 A2Hxu7EOM.net
23世紀の科学力を舐めんなよ

1008:デフォルトの名無しさん
22/03/18 12:19:16.77 tCnnq1ac0.net
男なら誰でも彼女を作れる
必要なのはハサミだけ

1009:デフォルトの名無しさん
22/03/20 06:48:33.10 92Tp7izK0.net
lintを更新したら、riverpodのコードを急に咎められるようになった
これは潰しにきてるなあ。contextを暗黙に保存していたのか

1010:デフォルトの名無しさん
22/03/20 10:47:02.06 jo2gfSqca.net
>>973
riverpodを潰しにきてる?
え?ま?

1011:デフォルトの名無しさん
22/03/20 19:16:36.05 92Tp7izK0.net
ごめん。上のコメントは徹夜で寝ぼけてたんだ
でも『Do not use BuildContexts across async gaps』が出てるようになり
ほんとうに困ったのはマジ
StatefulWidgetを使用しないと上手に対応できない

1012:デフォルトの名無しさん
22/03/21 17:09:32.63 vmIo900ZM.net
これflutterに関係するかなあ
心配だよ
GoogleCloudの従業員100人がクビ 本人たちはメディアの報道で知る [708866696]
スレリンク(poverty板)

1013:デフォルトの名無しさん
22/03/21 17:10:40.48 6DIsZeO90.net
非同期関数の中でNavigatorを呼び出せるラッパークラスを作って対応できたけど
手が遅いから普通に2日もかかってしまった

1014:デフォルトの名無しさん
22/03/21 17:23:31.02 Tp98bl5m0.net
ちょうどストレージも値上げするんだよな
白旗か?

1015:デフォルトの名無しさん
22/03/21 20:12:28.83 6DIsZeO90.net
googleがいまどういう状況なのか気になる

1016:デフォルトの名無しさん
22/03/21 20:25:25.78 6DIsZeO90.net
riverpodを使用するとUI側で非同期関数を使用する率が高そうなんだけど
非同期関数からNavigatorを呼び出すと、
『Do not use BuildContexts across async gaps』が出る問題について
皆はどう対処してる?

1017:デフォルトの名無しさん
22/03/21 23:26:35.37 6pu/rjG90.net
WPFでデスクトップアプリ作ってた頃よりもFlutter使ってる今の方がGUIとロジックの分離を意識できてる気がする

1018:デフォルトの名無しさん
22/03/22 07:14:59.23 qL0EhgHv0.net
>>980
正解の方法かどうか分からんけど、そのエラーはTimer.run()使ってタイミングずらすと回避できるはず。

1019:デフォルトの名無しさん
22/03/22 10:20:59.27 jlubKDvZa.net
>>982
ビルド中にmarkNeedsBuildするなってエラーと勘違いしてない?

1020:デフォルトの名無しさん
22/03/22 12:32:01.13 qL0EhgHv0.net
>>983
ああすまん、それだ。

1021:デフォルトの名無しさん
22/03/22 12:39:39.24 0dITcBto0.net
>>982
Timer.run()で不具合回避すると、不具合が発生しないことに保証が立たないから怖いべ…
スマホアプリなら実機で動作確認できればリリースしていいかもしれないががががが

1022:デフォルトの名無しさん
22/03/22 12:48:15.64 0dITcBto0.net
こんなブログを見つけた
URLリンク(zuma-lab.com)
WidgetsBinding.instance.addPostFrameCallbackを使っておけば大丈夫だと思う

1023:デフォルトの名無しさん
22/03/22 13:28:25.10 Me2E83wOa.net
>>986
それも違うでしょ
BuildContextを非同期に使うとunmountされた後になるかもしれんから危険なんよ
内部の動作を知らずに使ってるの?

1024:デフォルトの名無しさん
22/03/22 13:48:31.36 0dITcBto0.net
>>987
すまん
>>986はmarkNeedsBuildのエラーを解決する方法にtimer.run()を使用するのは不適当だと言いたかった

1025:デフォルトの名無しさん
22/03/22 20:25:21


1026:.61 ID:5/WsGxhDd.net



1027:デフォルトの名無しさん
22/03/22 23:20:49.18 UjWqblhl0.net
新書まだ?

1028:デフォルトの名無しさん
22/03/23 00:45:16.84 PKuC3Xpv0.net
final navigateRequestStateProvider =
ChangeNotifierProvider.autoDispose<NavigateRequestState>((ref) => NavigateRequestState());
class CustomNavigator {
/*
『Do not use BuildContexts across async gaps』を出さないために、
魔法を実行するNavigatorのラッパークラス
Notes:
NavigateRequestState.updateWith()をコールして、ページ遷移のリクエストを登録
NavigateRequestState.updateWith()のnotifyListeners()コール後に、refのWidgetが再buildされる
build後に、CustomNavigator._checkNavigateRequestが実行される
_checkNavigateRequestは、NavigateRequestStateにページ遷移のリクエストがあれば実行する
*/
final Key key;
final BuildContext context;
final WidgetRef ref;
NavigateRequestState? state;
CustomNavigator({required this.key, required this.context, required this.ref}) {
// 魔法
state = ref.watch(navigateRequestStateProvider);
WidgetsBinding.instance.addPostFrameCallback((_) => _checkNavigateRequest());

1029:デフォルトの名無しさん
22/03/23 00:45:57.58 PKuC3Xpv0.net
自分はこんな感じで『Do not use BuildContexts across async gaps』を回避した

1030:デフォルトの名無しさん
22/03/23 11:52:20.73 n9fyk9vz0.net
根本をわかってない感じ

1031:デフォルトの名無しさん
22/03/23 18:18:13.67 PKuC3Xpv0.net
import 'package:flutter/cupertino.dart';
class CustomNavigator {
static final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
static void pop() {
navigatorKey.currentState?.pop();
}
static void pushNamed({required String nextPagePath}) {
navigatorKey.currentState?.pushNamed(nextPagePath);
}
static void pushReplacementNamed({required String nextPagePath}) {
navigatorKey.currentState?.pushReplacementNamed(nextPagePath);
}
static void pushNamedAndRemoveUntil(
{required String nextPagePath, required routePagePath}) {
navigatorKey.currentState?.pushNamedAndRemoveUntil(nextPagePath, ModalRoute.withName(routePagePath));
}
}
160行の力作が20行に縮んだ…

1032:デフォルトの名無しさん
22/03/27 01:25:01.24 PWZbTKss0.net
出た!カプチーノ厨w

1033:デフォルトの名無しさん
22/03/27 07:00:20.57 0+/JwELe0.net
CurrentStateの値が古いままページ遷移しようとしてエラーを出すな
結局、最新のコンテキストで常にページ遷移するように、>>991の書き方をするしかなかった
あるいは、非同期処理の完了を待ってページ遷移させる処理の実装を諦めるか
あるいは、StatefulWidgetで全てのコードを書き直すか

1034:デフォルトの名無しさん
22/03/27 15:41:06.11 VOH9Pz/z0.net
んなことないでしょー
エラーみせて

1035:デフォルトの名無しさん
22/03/28 01:45:06.69 K9Q/GGg50.net
すみません。自己解決しました。コード上にこんな箇所があった…
SchedulerBinding.instance.addPostFrameCallback((_) {
SchedulerBinding.instance.addPostFrameCallback((_) {
CustomNavigator.pushReplacementNamed( '/sign_in');
}
}
ただ、GlobalKey<NavigatorState>を使うとホットパス以外にも
遷移できてしまう仕様が気になってます

1036:デフォルトの名無しさん
22/03/28 07:51:40.41 wpFSl1+b0.net
埋め

1037:デフォルトの名無しさん
22/03/28 07:52:04.42 wpFSl1+b0.net
埋め

1038:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 231日 11時間 33分 52秒

1039:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch