24/07/01 20:11:46.86 FBKe5StF0.net
> 開発メンバー全員同じ方針で書かせないとならんし
メンバーが同じ方針で開発するのはでも基本でしょ
Resultを使うチーム方針も一部にすぎないよ
レビューで確認事項を増やしたくないなら使い忘れの検知を自動化してもいい
キャッチ漏れのようなミスを防ぐ手段を棄却するかResultで確実にハンドリングするかだよ
どっちがいいか考えるのだ
小さな労力気にするのに、労力避けてミスったときの労力を気にしない人がいるのがこの界隈の変なところ
そもそもResult使うのはそんな労力かからん
AsyncValueも例外の欠点に向き合って編み出された(つかウェブからパクった)手法だけど
Riverpodの癖のある挙動(キャッシュの機構とか)にガチガチに結合してる失敗作なんだよな
使ってるうちに変な動作に悩んで混乱するメンバー出てくるからおススメしない
241:デフォルトの名無しさん
24/07/01 20:43:01.10 AETVjrcC0.net
>>240
例外を投げるもの全部ラップしないといけないっていうのは手間と言えば手間だけど。
逆にそれだけ、投げる例外が多いのならResultで確実にハンドリングできた方が結果的には管理は楽になると思うんだけどね。
自分でResult使ってて、例外の種類が多ければ多いほど、これはResultにして機械的にハンドリングできるようにしないと無理だなって思う今日この頃。
型としてこの処理はこれらの例外が発生しうるっていうのが分かった方が、わざわざ呼び出し先のドキュメント見に行って、この処理はこんな例外が発生しうるのかってのを逐一、確認しなきゃいけない方が、少なくとも自分には不毛な労力に感じる。
242:デフォルトの名無しさん
24/07/01 20:47:10.17 AETVjrcC0.net
最後文章変になったけど、発生しうる例外が型として確認できた方が、わざわざドキュメントで確認しに行くよりはるかに楽ということ。
というか、この点だけでも、Resultを使う価値はあると思う。
逐一ドキュメントにどんな例外が投げられるかを確信しに行くという作業がめちゃくちゃ疲弊する。
243:デフォルトの名無しさん (ワッチョイ a7f0-Hm2H)
24/07/01 22:58:23.83 jlAe7d0I0.net
try/catchは深い階層でも呼び出し元に投げやすいように考えられたもので非同期呼び出しの文脈でResultより使いにくいのはその通りだと思う
244:デフォルトの名無しさん
24/07/02 01:27:21.71 2ioS7b6G0.net
>>239
ありがとう
わかったわ
245:デフォルトの名無しさん
24/07/02 10:05:15.13 mti5vVkU0.net
例えばhttp.getがraiseする可能性のある例外の完全なリストってどこを見ればわかるの?
246:デフォルトの名無しさん
24/07/02 10:12:48.10 TPSjAjm70.net
すべてはソースコードにある
それが Flutter クオリティ
ソースを読めないなら、すべての例外を握りつぶして「エラーです!!!」と表示するといい
247:デフォルトの名無しさん
24/07/02 10:25:13.11 mti5vVkU0.net
ソース読む方法だとラップせずそのままrethrowしてることが多いから
使うすべてのメソッドに対してヌケモレのない例外リストを得ることは現実的には不可能じゃない?
248:デフォルトの名無しさん
24/07/02 15:12:30.03 uzy550Vj0.net
http通信回りはあまり詳しくないが。
完全なリストとなると一応こういうことじゃないか?
URLリンク(developer.mozilla.org)
Flutterの各種widgetのハンドリングをResultでするとかもまあ、Resultでやるのはあんまり現実的ではなさそうな雰囲気を感じる。
widgetの部分は無理でもフレームワークに依存しない内部の処理の部分はもちろん自分たちが管理する部分なのでResultでできるだろうが。
httpに限って言えばステータスコードで返ってくるからそれをResultにするのは簡単そうだが。
外部の仕様やフレームワークのメソッドに対する完全な例外リストを得ることができるかどうかは、外部次第というか。
まあ、RustのようにResultが言語の機能として盛り込まれているわけではないから、妥協しないといけないところはあると思う。
例外をcatchできてるなら、理論的にはそのタイミングでResultに変換できるということではある。
自分たちが管理してるならいざ知らず、外部で管理されてるやつはねえ、まあ、それをResultでラップし直すのは規模によっては大変だと思うよ。
おれは、基本的に個人開発しかしてないんだけど。
例外リストにヌケモレがあるっていうのは、それはバグじゃないか?
249:デフォルトの名無しさん
24/07/02 15:50:34.15 uzy550Vj0.net
DartでResultをするうえで重要な点を言及していなかった。sealed class の機能があるからResultをする意味が上がる。
sealed class Result<V,E>{...}
final class Success<V,E> extends Result<V,E>{...}
final class Failure<V,E> extends Result<V,E>{...}
switch (result) {
Success():...;
Failure():...;
}
seald class の機能を使えばswitchでSuccessの場合とFailureの場合を強制できる。おれ個人は関数的な書き方ではなく文的な書き方を常用している。理由はreturn文をかけるから(早期returnができる)。ついでにexceptionもこのselad classを使う。
/// {@macro HttpRespons401Exception}
/// {@macro HttpRespons402Exception}
/// ...
sealed class HttpResponsException {...}
/// {@template HttpRespons401Exception}Unauthorized...{@endtemplate}
final class HttpRespons401Exception extends HttpResponsException {...}
/// ...
final class HttpRespons402Exception extends HttpResponsException {...}
/// ...
final class HttpRespons403Exception extends HttpResponsException {...} ...
switch (httpResponsException) {
HttpRespons401Exception():...;
HttpRespons402Exception():...;...
}
final Result<String, HttpResponsException> myHttpGetResult = myHttpGet(...);
厳密ではないが、おれはこんな感じで書いてるよというイメージ。DocCommentをつければmousehoverしたときに詳細がわかる。
250:デフォルトの名無しさん
24/07/02 22:11:04.48 hDpC7b/t0.net
>>248
それはDartのhttp.getでは例外扱いではないよ
戻り値に含まれるResponseのstatusCodeを見て分岐させるもの
例外はClientExceptionやSocketExceptionなど
251:デフォルトの名無しさん
24/07/02 22:39:56.42 uzy550Vj0.net
おれはhttp.getを触る処理をやる予定無いから別に間違っても構わないし深入りはしないけど。
http.getのドキュメントからそれらのexceptionが発生しうる旨は書いてなかったな。
実際にはそれらが発生するならドキュメントの不備じゃね?
まあ、おれは深く触る予定無いからいちいち真偽を調べへんけど。
252:デフォルトの名無しさん
24/07/02 22:46:08.54 uzy550Vj0.net
おれ自身の感覚としてはstatusCodeでエラーを表しているものであるなら例外もしくはErrorとしてあつかってもいいと思うけど。
そこらへんの細かいところは実際に管理してる人が責任もってやる領域だと思うので、各々の責任でやってくださいって感じだな。
253:デフォルトの名無しさん
24/07/04 00:10:44.18 xHS4Bjej0.net
中には話が通じる感じの人もいるみたいだが、そろそろ5chを卒業するよ。
いままでありがとう。
254:デフォルトの名無しさん
24/07/04 00:30:02.71 ObbB17hS0.net
みんなプログラミングの話って5ch以外の日本語SNSのどこでしてるの?やっぱ旧Twitter?
255:デフォルトの名無しさん
24/07/04 00:36:10.29 2AnTrFVU0.net
プログラミングの話はだいたいXでしてる
256:デフォルトの名無しさん
24/07/04 00:48:30.85 xHS4Bjej0.net
プログラミングに限ったことではないが、何かを批判すると、すぐに暴れる人が出ててきて誹謗中傷などの攻撃してくる者が多数現れるから。
5chやSNSでは当たり障りの無いことしか言いにくくなってるんじゃないかと感じる。
まったく最高の国だな。
話の内容にもよると思うけど、おれはもう当分はあきらめたよ。
プログラミングで話し相手探すの。
257:デフォルトの名無しさん
24/07/04 01:10:17.23 83BE7Kok0.net
プログラミングにも話題ってものがあるだろう
ここには消耗しきったプログラマしかいないんだよ
258:デフォルトの名無しさん (アウアウエー Sa82-0EqQ)
24/07/04 04:05:30.48 XkigermHa.net
>>256
「ホロン部」を検索
259:デフォルトの名無しさん (ワッチョイ 462f-Z+rA)
24/07/04 05:42:20.81 /vVRuuGc0.net
何か攻撃されたん?
260:デフォルトの名無しさん
24/07/05 10:01:04.25 4P4zlJkr0.net
rustのコアライブラリのdart実装
URLリンク(www.publickey1.jp)
261:デフォルトの名無しさん
24/07/05 10:08:46.79 4P4zlJkr0.net
Resultもあるね
やはりFutureとの組み合わせは辛そう
URLリンク(github.com)
262:デフォルトの名無しさん
24/07/05 12:00:09.21 baiSZfQY0.net
有象無象の中の1パッケージをいちいち取り上げる意図がわからんな
263:デフォルトの名無しさん
24/07/05 14:59:33.91 rHM0rRJ20.net
>>260
Dartを使ったことのある人向けって対象少なすぎて草
264:デフォルトの名無しさん
24/07/06 21:15:32.47 GWlZ8A2C0.net
play ストアでの公開、1度きりだけど今4000円かかるのか…
スマホのアプリ開発断念するわ
今まで通り、adobeのスクリプトとPCのデスクトップアプリ開発でいく
265:デフォルトの名無しさん
24/07/07 06:20:36.58 Hqg9dQks0.net
モバイルアプリなんてゴミ
ウェブサイトで事足りてるもん
266:デフォルトの名無しさん
24/07/07 08:32:09.18 zCtUnCGK0.net
4000円かかるからアプリ断念すると書いてあるように見えるが僕の見間違いだろうか
267:デフォルトの名無しさん (ワンミングク MMa3-YEZq)
24/07/07 10:23:51.36 Oou9C0drM.net
そういってんやないの
268:デフォルトの名無しさん (ワッチョイ 6a4b-T6Ln)
24/07/15 16:41:27.45 mbKzxAeS0.net
ネイティブはネイティブの開発の面白さがあるなあ
ユーザーにとってはWebアプリが一番使い勝手がいいんだろうけどね
Webは進歩が早すぎるし自由すぎる
269:デフォルトの名無しさん (ワッチョイ d5ce-LNny)
24/07/15 18:41:11.74 TxVtJuXG0.net
ネイティブで処理したい箇所にUI要素は無いから
UI(Reactなど)+ネイティブ処理(flutter)で十分だね
270:デフォルトの名無しさん (ワッチョイ 1a01-ll8q)
24/07/15 21:19:22.76 V76oeWCz0.net
DartはいいんだけどFlutterフレームワークが微妙
ReactやComposeのが書きやすい
271:デフォルトの名無しさん (ワッチョイ fa4b-KrCV)
24/07/15 23:58:02.71 LIthpZlz0.net
JavaScriptと同じじゃん
JavaScriptで変数宣言すればいいだけ
楽勝
272:デフォルトの名無しさん (ワッチョイ 1a01-ll8q)
24/07/16 00:43:06.51 sb1YrcTi0.net
>>271
言語仕様はどれもいいんだけどUIフレームワークに書きやすさの違いが出てくる
273:デフォルトの名無しさん (ワッチョイ d581-LNny)
24/07/16 15:26:21.71 2h2sYWR00.net
UIはwebviewにホストしたReactにやってもらう
274:デフォルトの名無しさん (スフッ Sd33-/IuU)
24/07/25 16:23:59.93 ImWbVEPFd.net
flutterが覇権とるのいつなんすか?
もう5年くらい待ってんですけど
275:デフォルトの名無しさん (ワッチョイ 534b-vPBw)
24/07/26 02:03:53.54 6GE2JxvB0.net
SwiftもDartもあまり変わらない気がする…
Swiftにしよう
276:デフォルトの名無しさん (ワッチョイ 81d2-092P)
24/07/26 11:56:04.56 9bmdRuqS0.net
良い選択だと思う
Swift はこれからも生き残るが、Dart はオワコンだからね
277:デフォャ泣gの名無しさb
24/08/10 15:40:03.98 KZxV9Wds0.net
>>269
FlutterはUIフレームワークだからネイティブ処理にFlutterって意味わからんぞ
278:デフォルトの名無しさん
24/08/10 17:57:27.16 OkEQ6ssf0.net
>>277
flutterがプラットフォーム別のネイティブコード書ける環境になるやろ
初心者じゃなかろうしそれくらい解れや
279:デフォルトの名無しさん
24/08/11 11:01:17.91 39bxGcjY0.net
>>278
FlutterではなくDartがプラットフォームごとのネイティブコードを書ける環境になる、な?
280:デフォルトの名無しさん
24/08/11 12:16:26.36 vl1RAAeP0.net
「Flutter 3.24」「Dart 3.5」が公開 ~低レベル描画API「Flutter GPU」を実験導入
281:デフォルトの名無しさん
24/08/11 12:26:48.84 pWYAxXGa0.net
>>279
違う違う!
AndroidならJava,Kotlin、iOSにはObjective-C,Swiftで、windowsならc#で書けるでしょ
でも基本は全部共通でwebviewホストしてreact+Typescriptで書いてんたけどねwww
282:デフォルトの名無しさん
24/08/11 12:52:59.49 39bxGcjY0.net
Android固有のJavaコードやiOS固有のC系コードなどをDartでラップしたものをFlutter+WebViewから呼ぶって言いたいんでしょ?わかってるって
283:デフォルトの名無しさん
24/08/11 16:57:54.70 4yvMU1zF0.net
DartはもともとはJavascriptをラップした言語なんでしょ、この部分でも頑張ってごみタイプスクリプト駆逐してほしいんだけど
284:デフォルトの名無しさん
24/08/11 16:59:49.44 pWYAxXGa0.net
殆どreact+Typescriptだけで済んじゃうけどね
flutterかますのはアプリ化要件と保険の為かな
285:デフォルトの名無しさん
24/08/11 17:53:21.82 39bxGcjY0.net
ガワネイティブアプリの作成手段が
Flutter,KMP,Capacitor,Tauri
と増えてきてありがたい
スレチなんだが知ってる人いたら情報頂きたいんだけどTauriのモバイル対応プラグインってもういくつか出てたりする?特にパーミッション周りのやつ。以前探したけど見当たらん
286:デフォルトの名無しさん
24/08/21 22:04:50.13 UwXntJCY0.net
Webで十分なのにモバイルアプリにこだわるの?
287:デフォルトの名無しさん
24/08/21 22:21:47.35 I1qd4mtR0.net
>>286
モバイルアプリの通知機能を利用者に使わせたいんや
288:デフォルトの名無しさん
24/08/22 00:50:46.15 mmy1OEBC0.net
わいもWebアプリでええやんて思うけど
若者に見せるとアプリないの?て言われるんだよねぇ
289:デフォルトの名無しさん (ワッチョイ 7f01-nKc1)
24/08/22 01:18:10.98 qc0/WWav0.net
プッシュ通知は使わないん?
290:デフォルトの名無しさん
24/08/23 20:24:21.67 PElOoEs10.net
ブラウザでNotifications APIが使える
291:デフォルトの名無しさん
24/08/23 20:54:01.21 t8MQrtpW0.net
>>290
使ったうえで言ってる?
292:デフォルトの名無しさん
24/08/27 19:09:31.48 rXlpHGM80.net
使えると使いものになるは似て非なるものだ
293:デフォルトの名無しさん
24/08/27 22:21:33.49 zcw+AKV20.net
ウザい通知機能のことだな
294:デフォルトの名無しさん
24/09/10 05:13:38.88 yZlCRNMb0.net
生成AIの手を借りて、SwiftUI+Composeそれぞれでスマホアプリを書いているが結果的に正解だったかな。
flutterは流派や派閥があってややこしそう。
295:デフォルトの名無しさん
24/09/10 10:23:18.50 0235B6lF0.net
Swift書けるならこれでいいよ
SwiftUIからComposeへのトランスパイルにも一部対応してる
単一のSwiftコードからiOSアプリとAndroidアプリが作れる「Skip 1.0」正式リリース。SwiftをKotlinへトランスパイル
2024年8月22日
URLリンク(www.publickey1.jp)
296:デフォルトの名無しさん
24/09/10 20:46:42.51 mx6GvuDh0.net
>>295
ゴミが月29ドルワロタw
297:デフォルトの名無しさん
24/09/11 10:23:52.66 u+siRUuw0.net
>>296
でも割とよく出来てるよ
URLリンク(github.com)
298:デフォルトの名無しさん
24/10/12 22:09:20.83 ddxm+/xm0.net
今はriverpodとblocどっちがいいんだ?
299:デフォルトの名無しさん (ワッチョイ fb2f-qv3/)
24/10/16 14:06:11.96 oVgmT5vn0.net
今も昔もbloc(cubit)
riverpodはクソ
freezedみればわかるじゃん
ああいう醜い物しか作り出せない作者だよ
dart_mappableの自然さと比較してみなよ、吐き気がするだろ?
ソニー並みに独特な仕様を押しつけすぎなんだよな
riverpodもごちゃごちゃすぎる独自仕様でfreezedと同じ作者だなって感じ
300:Coplit
24/10/16 21:00:37.30 MbHTOPOy0.net
Firebaseに明細データ登録するアプリ出来てるけど、集計とカレンダー、グラフ周りはReactで作って、WebViewで表示させようと思ってる。
MAUIで作ってるけど、ライブラリが足りないかバグが多くて使えない。
301:デフォルトの名無しさん
24/10/18 20:31:45.42 vKy5WG2W0.net
Bloc触ってみてるけど
RepositoryProviderって使った方がいいのん?
GetItじゃだめぇ?
302:デフォルトの名無しさん
24/10/21 20:29:10.32 frfK4AZZ0.net
海外のブログとかではBlocの実装が多いように見える。
303:デフォルトの名無しさん
24/10/23 10:06:40.66 qm2RPbgB0.net
名前がダサすぎるんよ
「Providerのアナグラムだぞ」で「じゃカッコいいね!」てなると思うか?
ダサいものはダサいんよ
中身も垢抜けない芋みたいやし
それを絶賛して使ってる人も、、、
304:デフォルトの名無しさん
24/10/23 19:01:59.84 yHuvfUGf0.net
次スレからスレタイはriverpodアンチスレにしとけな
305:デフォルトの名無しさん
24/10/24 08:18:26.85 z0FT2VeH0.net
お前らまだFlutter/Dartを触ってんの?CMP/Kotlinやってみろよ
状態管理が快適で飛ぶぞ?
306:デフォルトの名無しさん (ワッチョイ 51e9-/+Hx)
24/10/24 19:46:39.60 KRZdpZpc0.net
快適すぎてお前がここに飛んだわけか
307:デフォルトの名無しさん
24/10/24 20:02:42.79 DJyT9FzO0.net
CMPも触ってみてるよ
kotlin好き
Gradleがとっつきにくい
308:デフォルトの名無しさん
24/10/24 22:38:39.73 z0FT2VeH0.net
>>306
そうともいう🥴
>>307
わかる、Gradle(Groovy or Kotlin Script, kts)は色々と複雑だよね
JetBrainsもGradleの複雑さを懸念してるみたいで、Gradleの置き換えを狙ったAmperっていうKMP特化のビルド用ツールを開発中、シンプルに書けるようになるみたいだけどバージョン1.0.0到達にまだ数年かかりそう
URLリンク(github.com)
URLリンク(blog.jetbrains.com)