ขนาดวิดีโอ: 1280 X 720853 X 480640 X 360
แสดงแผงควบคุมโปรแกรมเล่น
เล่นอัตโนมัติ
เล่นใหม่
フォルダ構成について悩んでいたところ、この動画にたどり着きました。大変参考になりました!ありがとうございます!
依存関係とか知ってて知らないみたいな状態だったので非常に助かりました。どのTH-camrも再生数にこだわり過ぎて、初心者用の動画ばかりで退屈してたけど、こういうTH-camrが出てきて嬉しい!!
いつもありがとうございますm(_ _)mある程度成長したら勉強しなくなる人もけっこういるので本当に需要あるか不安でした。見てくれる方がいて良かったです!
これほどまでの優良動画が、なぜもっと認知されていないんだ!!
ほんとにこのチャンネルめちゃくちゃわかりやすくて助かっております!
期待せずに見たら結構有用だったこれタイトルを違うものにしてたらもっと伸びるんじゃないか
フォルダ構成が知りたかっただけなのに、オニオンアーキテクチャが分かりやすく知れてしまいました。書籍や記事を何時間読むよりか理解が簡単でした。
いつもわかり易い動画をありがとうございます!こちらを参考にしつつAIを多用しながらオニオンアーキテクチャを見ようみまねでやってみたのですが完全に迷い込んでしましました....featureとuasecaseの違いがわからなかったりで....もし可能であればもっと深掘りしたどうかを見たいです!可能であればレビューもお願いしたい....
@syogakutsuda9700確かにどちらも日本語で「機能」として説明されるので難しいですよね。基本的にfeatureのほうが細かいです。判断に迷ったら「広告でアピールできるかどうか」で考えてみてください。ショッピングアプリだとして、・このアプリは、合計金額を計算できます!↑正直こんなのユーザーからしてみればどうでも良い事です。なのでこれはfeature(F)。逆に、・このアプリは、好きな洋服を買うことができます!↑これは十分アピールになりますね。なのでこれはusecase(U)。Uの途中では、いろんなFが使われます。商品をDBから取得(F)して、表示(F)して、並び替え(F)て、カートに入れ(F)て...つまりUは勝手に決めてOKです。ユーザーがやって欲しい操作の流れを1つ決めて、それをUとします。例えば商品並び替え機能が便利だから強調したいな〜ってときは並び替え機能をFではなくUとして扱っても良いです。U&F両方として扱っても良いです。「この並び替え機能Uの中では、並び替え機能Fを1つしか使っていません。」こういう設計もありです。さらに詳しく聞きたい場合はXで質問待ってま〜す👌
@@rbdog ご返信ありがとうございます!ユーザーが使う機能なのか、内部で使う機能なのか、なんかしっくりきた気がします!ありがとうございます!少しだけDMさせていただきます!
アーキテクチャを調べる為に色々見てましたが、ここまで具体的で分かりやすい解説は無かったです!分かりやすく伝える技術がずば抜けてますね、、!
嬉しいです、頑張っていきます!
お疲れ様です!!明日野郎ではなく頑張ったんですね!!🤩以前質問させていただいた内容でしかもめちゃんこ知りたかったことが知れてとても満足😍今までなんのルールも持たずに作っていたのでこれからはこの動画をベースにコーディングしてみます!ほんとにありがたやぁ~🙏✨
しかし今回の癖の強いしゃべり方…とっても好き😍(笑)頑張って俺って言ってる感じがなんともゆるくて👍
いつもありがとうございますm(_ _)m普段男気ないやつがキャラ作りしてもすぐバレることが分かりました🤣またどこかで登場したときはよろしくお願いしますw
まっじ勉強になりました。ありがとうございます。うちはよくある何となく駆動設計なので、プロジェクト内に周知してみたいと思います。
何となく駆動設計面白いですね笑コメントありがとうございました!
サンプルソースの中を詳しく見たのですが、なかなか複雑に見えました。特にlist.dartの初期メモの取得、メモ一覧の取得部分について、詳しく解説してほしいです。
もしかしてHookWidgetの使い方かな??了解しましたー!
ref.read(initAppProvider);usecase.execute();この1つの機能を実装するのにusecasesやdiやconfigなど色々なコードを経由していると思うのですが、このアーキテクチャーの部分を解説して欲しいです。なんとなく真似をして理解しましたが、人に説明できるほどには理解できなかったので。
いつもためになる動画ありがとうございます。ただいま、新規プロジェクトのアーキテクチャについて検討中でして、こちらの動画を参考にさせていただいております!1点質問なのですが、applicationディレクトリにnotifierを置いておられますが、presentationに置くケースもよくあると思います。applicationにおいた方が良かった理由などありましたら教えていただきたく思いました!
この動画で言うところの「依存の矢印」関係を壊さないようにコードを書ければどちらでも正解です👍たぶんpresenに書くと難易度がグッと上がるので、管理やレビューで保証できればpresenでも良いですね✨なぜ2通り有るかといえば状態(データ)の種類によります。例えば、アニメーション中のWidgetの位置とか、色が変化するWidgetのColorとかを状態で管理しているときなど, import flutterが必要なものはpresenフォルダに入れるべきです結論基本的にはpresenに置くのはやめておいた方が良い(依存関係が崩れる、もしくはコード難易度が上がる)またNotifierをどこにおくか、というよりは状態のデータ型がFlutter専用なのか、それともただのデータなのかで分けて、両方のフォルダに書いても良いって感じで!
@@rbdog 丁寧に回答ありがとうございます!確かに、ディレクトリ構成というより依存関係を意識するべきですね。> Notifierをどこにおくか、というよりは状態のデータ型がFlutter専用なのか、それともただのデータなのかで分けて、両方のフォルダに書いても良い過去に参考にしたリポジトリを中身をもう一度確認してみます!ありがとうございます😊
importはよくないね。新しい言語ではdependにしよう。
分かりやすくて、気に入りました。オニオン、良さそうに感じました。初学者に近いので、具体例を見ないと、どう切り分けたらいいのか、分からないので、githubのサンプルをクローンして、とりあえずサンプルを動かしてから、ファイル構成を見ていこうと考えました。pub getして、サンプルを動かそうとすると、'package:flutter/src/widgets/framework.dart': Failed assertion: line 4692 pos 14: 'owner!._debugCurrentBuildTarget == this': is not true.とのエラーが出ました。環境がまずいのでしょうか?
分かりました!動かすときにオプション情報が足りておらず、flavorを指定されていないと思います。おそらくmain関数の上のRunボタンまたはコマンドで動かそうとされているかと思いますが、それは想定外の動かし方なのでエラーでわざと止まるようにしています。今回はただお試しをされたいとの事でしたので、とりあえずコミットを1つ追加してその動かし方でも大丈夫なように許可しておきました!詳しくは私のFlutter講座#21で解説しているので、よかったらそちらをご覧くださいませ🙇
@@rbdog 動きましたー! ありがとうございます。可愛い絵柄のアプリですね! よし、オニオンで行きます! 21も見てみます!
フォルダ構成について悩んでいたところ、この動画にたどり着きました。
大変参考になりました!ありがとうございます!
依存関係とか知ってて知らないみたいな状態だったので非常に助かりました。
どのTH-camrも再生数にこだわり過ぎて、初心者用の動画ばかりで退屈してたけど、こういうTH-camrが出てきて嬉しい!!
いつもありがとうございますm(_ _)m
ある程度成長したら勉強しなくなる人もけっこういるので本当に需要あるか不安でした。見てくれる方がいて良かったです!
これほどまでの優良動画が、なぜもっと認知されていないんだ!!
ほんとにこのチャンネルめちゃくちゃわかりやすくて助かっております!
期待せずに見たら結構有用だった
これタイトルを違うものにしてたらもっと伸びるんじゃないか
フォルダ構成が知りたかっただけなのに、オニオンアーキテクチャが分かりやすく知れてしまいました。
書籍や記事を何時間読むよりか理解が簡単でした。
いつもわかり易い動画をありがとうございます!
こちらを参考にしつつAIを多用しながらオニオンアーキテクチャを見ようみまねでやってみたのですが完全に迷い込んでしましました....
featureとuasecaseの違いがわからなかったりで....
もし可能であればもっと深掘りしたどうかを見たいです!
可能であればレビューもお願いしたい....
@syogakutsuda9700
確かにどちらも日本語で「機能」として説明されるので難しいですよね。
基本的にfeatureのほうが細かいです。判断に迷ったら「広告でアピールできるかどうか」で考えてみてください。
ショッピングアプリだとして、
・このアプリは、合計金額を計算できます!
↑正直こんなのユーザーからしてみればどうでも良い事です。なのでこれはfeature(F)。
逆に、
・このアプリは、好きな洋服を買うことができます!
↑これは十分アピールになりますね。なのでこれはusecase(U)。
Uの途中では、いろんなFが使われます。
商品をDBから取得(F)して、表示(F)して、並び替え(F)て、カートに入れ(F)て...
つまりUは勝手に決めてOKです。ユーザーがやって欲しい操作の流れを1つ決めて、それをUとします。
例えば商品並び替え機能が便利だから強調したいな〜ってときは並び替え機能をFではなくUとして扱っても良いです。U&F両方として扱っても良いです。
「この並び替え機能Uの中では、並び替え機能Fを1つしか使っていません。」こういう設計もありです。
さらに詳しく聞きたい場合はXで質問待ってま〜す👌
@@rbdog
ご返信ありがとうございます!
ユーザーが使う機能なのか、内部で使う機能なのか、なんかしっくりきた気がします!
ありがとうございます!
少しだけDMさせていただきます!
アーキテクチャを調べる為に色々見てましたが、ここまで具体的で分かりやすい解説は無かったです!
分かりやすく伝える技術がずば抜けてますね、、!
嬉しいです、頑張っていきます!
お疲れ様です!!
明日野郎ではなく頑張ったんですね!!🤩
以前質問させていただいた内容でしかもめちゃんこ知りたかったことが知れてとても満足😍
今までなんのルールも持たずに作っていたのでこれからはこの動画をベースにコーディングしてみます!
ほんとにありがたやぁ~🙏✨
しかし今回の癖の強いしゃべり方…とっても好き😍(笑)
頑張って俺って言ってる感じがなんともゆるくて👍
いつもありがとうございますm(_ _)m
普段男気ないやつがキャラ作りしてもすぐバレることが分かりました🤣
またどこかで登場したときはよろしくお願いしますw
まっじ勉強になりました。ありがとうございます。
うちはよくある何となく駆動設計なので、プロジェクト内に周知してみたいと思います。
何となく駆動設計面白いですね笑
コメントありがとうございました!
サンプルソースの中を詳しく見たのですが、なかなか複雑に見えました。
特にlist.dartの初期メモの取得、メモ一覧の取得部分について、詳しく解説してほしいです。
もしかしてHookWidgetの使い方かな??
了解しましたー!
ref.read(initAppProvider);
usecase.execute();
この1つの機能を実装するのにusecasesやdiやconfigなど色々なコードを経由していると思うのですが、
このアーキテクチャーの部分を解説して欲しいです。
なんとなく真似をして理解しましたが、人に説明できるほどには理解できなかったので。
いつもためになる動画ありがとうございます。
ただいま、新規プロジェクトのアーキテクチャについて検討中でして、こちらの動画を参考にさせていただいております!
1点質問なのですが、applicationディレクトリにnotifierを置いておられますが、presentationに置くケースもよくあると思います。
applicationにおいた方が良かった理由などありましたら教えていただきたく思いました!
この動画で言うところの「依存の矢印」関係を壊さないようにコードを書ければどちらでも正解です👍
たぶんpresenに書くと難易度がグッと上がるので、管理やレビューで保証できればpresenでも良いですね✨
なぜ2通り有るかといえば状態(データ)の種類によります。
例えば、アニメーション中のWidgetの位置とか、色が変化するWidgetのColorとかを状態で管理しているときなど, import flutterが必要なものはpresenフォルダに入れるべきです
結論
基本的にはpresenに置くのはやめておいた方が良い(依存関係が崩れる、もしくはコード難易度が上がる)
また
Notifierをどこにおくか、というよりは状態のデータ型がFlutter専用なのか、それともただのデータなのかで分けて、両方のフォルダに書いても良い
って感じで!
@@rbdog 丁寧に回答ありがとうございます!
確かに、ディレクトリ構成というより依存関係を意識するべきですね。
> Notifierをどこにおくか、というよりは状態のデータ型がFlutter専用なのか、それともただのデータなのかで分けて、両方のフォルダに書いても良い
過去に参考にしたリポジトリを中身をもう一度確認してみます!
ありがとうございます😊
importはよくないね。新しい言語ではdependにしよう。
分かりやすくて、気に入りました。
オニオン、良さそうに感じました。
初学者に近いので、具体例を見ないと、どう切り分けたらいいのか、分からないので、githubのサンプルをクローンして、とりあえずサンプルを動かしてから、ファイル構成を見ていこうと考えました。
pub getして、サンプルを動かそうとすると、
'package:flutter/src/widgets/framework.dart': Failed assertion: line 4692 pos 14: 'owner!._debugCurrentBuildTarget == this': is not true.
とのエラーが出ました。
環境がまずいのでしょうか?
分かりました!動かすときにオプション情報が足りておらず、flavorを指定されていないと思います。おそらくmain関数の上のRunボタンまたはコマンドで動かそうとされているかと思いますが、それは想定外の動かし方なのでエラーでわざと止まるようにしています。今回はただお試しをされたいとの事でしたので、とりあえずコミットを1つ追加してその動かし方でも大丈夫なように許可しておきました!
詳しくは私のFlutter講座#21で解説しているので、よかったらそちらをご覧くださいませ🙇
@@rbdog 動きましたー! ありがとうございます。可愛い絵柄のアプリですね! よし、オニオンで行きます! 21も見てみます!