not this much, he is just building frontend, supabase is a backend as a service , so technically he is just doing frontend , and flutter by itself is not enough for mobile development, you need experience in native frameworks like compose and swift ui, don't overrate him
Rivaan you have a gift for teaching! I rarely hang in this long on a course like this but I'm 4 hours in and still going! The concept of the domain and the data layer sharing a repository through abstract class interfaces finally clicked for me when watching this. Many thanks!
Hello Rivaan, thank you very much. Yeaah, I've completed 7 hours. It took me a few days to go through the whole video. Thank you for the simple explanation of this complex concept
Hey Rivaan, I just wanted to drop in and say a massive thank you for your amazing Flutter and BLoC tutorial. It was incredibly well-structured and insightful, making the learning process so much smoother and enjoyable. Your dedication to sharing knowledge is truly appreciated! Also, I have a small request. Could you consider creating a tutorial on building a food delivery app using Google Maps with live ride-sharing features in Flutter and BLoC? I believe it would be a fantastic addition to your tutorials, and many of us are eager to learn how to integrate these advanced functionalities. Thanks again for your great work! 🎉
7:04:58. Finally done! I hope to add some awesome features to this app in the future. Of course, I will do this at another time, and when I do, I will share my repo here for everyone. thanks Rivaan. ❤✅
Rivaan, you are the only person who could make me understand this. I tried many videos before. None made sense to me. I am so grateful to you. Can't thank you enough.
Even though it's a bit challenging for me to get my head around this, after your such an amazing explanation, I should just practice it more to get a knack of it! but, man, you're truly done a great job in explaining every bit soo clearly! thank you soo much for this amazing tutorial bro! For real! Thanks a bunch! 💗😊
@@RivaanRanawat Thank you very much. Understood everything. Is there any possibility of a video on Optimisation and Performance like the dos and don'ts. It would be a great help.
I know that most dart developers will use the "imp" as a keyword for the implementation, but coming from a C# background, I prefer using the "I" for the interface and the normal name for the implementation. I found it very helpful while following along with this course. So, the IAuthRemoteDataSources will be for the interface and the AuthRemoteDataSource will be for the implementation, as an example
Excellent Rivaan I have just completed you bloc tutorial and you have so good in your explanation that I can't even describe the best part of your explanation is that you explain even basic things of dart ThankYOu so much for these tutorials
I am an hour into the project and I cannot appreciate how well you have explained all the little things in the UI. Hoping the entire project goes like this!
Thank you so much for the guidance! I was able to understand the use of Clean Architecture in Flutter and all the related packages. You made an amazing tutorial! Keep it up! 💪🧠🧑💻
That's fantastic! Rivaan bhai's video on Clean Architecture seems to be really insightful and practical. It's great and I'm not just watching video but also actively practicing by creating Flutter projects. It's through hands-on experience like this that you can truly understand and apply concepts to write production-level code. Keep up the good work!
I'm a react developer having 1 year of experience and now I'm shifting towards the flutter and to keep my React journey consistent i need someone with whom i can keep building projects to keep me updated. I would like to collaborate if anyone interested
36:20 Preferably you'll want the entire page to be scrollable because the devices that your app will be used on won't have the same dimensions has the one you are using in development. Bigger screen sizes would be okay but smaller ones will result in an overflow err but if it's scrollable then the user has the job 👍🏾
Selute to your hard work in love tutorial please keep making the content on flutter and we will also love to see a course in jetpack compose ❤ keep it up
Thank you for the wonderful tutorial bro it is so helpful for me and my team, thanks again i have not finished the tutorial but it will be good so thank you in advance
Oh maybe. In auth_remote_data_sources.dart we add ".copyWith" to the line "return UserModel.fromJson(response.user!.toJson());" But do we change anything on that line?
So, would it be two lines of code changing? return UserModel.fromJson(response.user!.toJson()).copyWith(); return UserModel.fromJson(response.user!.toJson()).copyWith(); Like this?
Hi Great tutorial !! I noticed a small issue at 4:45 line 21 and 24 policy should be changed to create policy "Users can insert their own profile." on blogs for insert with check ((select auth.uid()) = poster_id); create policy "Users can update own blogs." on blogs for update using ((select auth.uid()) = poster_id);
Rivaan this is excellent work my friend. Any chance for the next tutorial we can get a desktop and mobile app? would be interesting to see how you do the split in the code between the two with your clean code approach.
I have implemented that Chip with (Filter Chip) at 4h :26 min .. In my version, I got rid of any stateful behaviour, No need mapping + gesture detector as well. It is built in notifier and in future, I can do HookWidget on this page. (No need set state call as well) .
I have a doubt, Rivaan! How should I implement the logout? I mean, what should be the flow? Should I call logout from the blog screen? And since logout is ideally related to authentication, I cannot use the authentication repository here due to the 'S' in SOLID principles. Additionally, I cannot create a global use case, as high-level modules cannot depend on low-level authentication modules. What should be the flow?
Rivaan, with all due respect to `fpdart` package, why would you use it since Dart has Records? My example of an API method... Future getMyResponse() Then in the code, if it returns properly, I return an instance of MyResponse and I return null for the `error`. If it returns an error, I return null for the response and some error. Does this make sense? It's pretty clean and we utilize new Dart feature without using additional packages.
Hey Rivaan thank you giving us this great tutorial. In past couple of weeks I learned dart and flutter from your 20 hour video. In this video I 'm facing a problem when I try to upload a blog this app in my virtual app gets hang and I have to restart the app and blog dosen't go back to the supabase
Tks alot, this is actually a really good tutorial and help write actually clean code. However, in the process of using it I feel like it take too much time for just one query. So I think you can make a tutorial on a simplified version of this clean architecture.
thats the neat part about clean architecture. in enterprise level apps you need to maintain a lot of code and clean architecture does that for you. dont worry it has a steep learning curve but it is worth it
Thank you very much for the course. There is one thing I'm struggling with and I was hoping you could help me, if your don't mine. When using a feature first approach, what happens when you have a single local SQL database for all your app? I understand that the creation of the database itself probably has to go to the core or shared folder. But what happens if you have 2 features and one of them has a model that has a relationship with a model of the other feature? I'm talking about foreign keys, of course. Can one feature be used inside another feature? Or is it better to move all the models to the core or shared folder alongside the database creation?
bruh, I have been using an invalid email for the last 3 hours, coming from a Firebase background, I thought it would work, but only when I printed an error in the bloc, did the issue become apparent. pro tip: put a print statement in the bloc so if something goes wrong you can tell by looking at the console. I do not know why there were no exceptions thrown as I had been following along with writing the code i know that we have implemented lots of try-catch blocks everywhere but none seem to work will keep you updated if I find the answer
@@pranay96 Yeah, but I used my everyday email, and still not a single user shows up. I admit I'm all new to Flutter, but as you said, I checked at least 3-4 times the code and everything's ok...
@@createdbysmcap Don't worry, I'm having the same issue. I've tried sending messages to the console when AuthSignUp is called inside the auth_bloc.dart file and nothing. But I can get a console log when I press the sign up button. I've been at this, like you, for 3-5 go arounds in that section of the video and I think I have everything right, and can't seem to figure it out.
Hi. If I have to implement a monthly or yearly subscription model for my mobile application. Then is it mandatory to use In-App-Purchases ? I mean we cannot use an external payment gateway. How Netflix is redirecting users to its website to avoid 30% fees. Please talk about this.
Thank you very much for making such videos I added a in blog feature to this app to fetch the current user blogs in a separate screen the issue I face is it overrides the the data of each other when I dispatch the user blogs event it hides the data of the blog screen and vise versa
at 5:41:53 can't we just do a null check in fromJson method, i think that's better than writing the copyWith method inside the remote call, and thanks for the amazing tutorial.
How are you not a multi-millionaire when you're capable of building these apps front to back? Great work. Thank you so much.
Plot-twist- he is..
not this much, he is just building frontend, supabase is a backend as a service , so technically he is just doing frontend , and flutter by itself is not enough for mobile development, you need experience in native frameworks like compose and swift ui, don't overrate him
Rivaan you have a gift for teaching! I rarely hang in this long on a course like this but I'm 4 hours in and still going!
The concept of the domain and the data layer sharing a repository through abstract class interfaces finally clicked for me when watching this. Many thanks!
I made it through the whole thing! Time to build!
Congrats how long did it take generally
I'm just about to start@@jeromestsauver
I was annoyed that you weren't posting any new videos, but now that you have, I'm glad.
Your explanation is really simple and understandable. One of the best training videos I've ever watched. Greetings from Turkey.
Thanks so much, glad it helped!
Hello Rivaan, thank you very much.
Yeaah, I've completed 7 hours. It took me a few days to go through the whole video. Thank you for the simple explanation of this complex concept
Hey Rivaan a big update from my side. Received an offer for flutter developer. I've learnt a lot from your videos. Thanks man.
Big Congratulations Adnan🎉🎉
Thank you very much Rivaan for sharing this master tutorial on using flutter bloc, and also explaining the clean architecture.
Hey Rivaan, I just wanted to drop in and say a massive thank you for your amazing Flutter and BLoC tutorial. It was incredibly well-structured and insightful, making the learning process so much smoother and enjoyable. Your dedication to sharing knowledge is truly appreciated!
Also, I have a small request. Could you consider creating a tutorial on building a food delivery app using Google Maps with live ride-sharing features in Flutter and BLoC? I believe it would be a fantastic addition to your tutorials, and many of us are eager to learn how to integrate these advanced functionalities. Thanks again for your great work! 🎉
I do have plans for building a food delivery app but I'm not sure if it's going to be with Bloc. Considering Riverpod (with code gen) for it
@RivaanRanawat thank you for your reply. It's great to know that.
Looking forward to that Sir 🙌
I know, only Rivaan can make me understand things like these. ♥
Thanks Adnan, let me know if you're able to understand!
7:04:58. Finally done! I hope to add some awesome features to this app in the future. Of course, I will do this at another time, and when I do, I will share my repo here for everyone.
thanks Rivaan. ❤✅
i like your explanation, detail oriented and not boring anymore. thank you for providing this quality free tutorial
Glad you liked it!
Can't believe this is free. Even a paid course wouldn’t be this good
Rivaan, you are the only person who could make me understand this. I tried many videos before. None made sense to me. I am so grateful to you. Can't thank you enough.
The type of tutorial i have been looking for about clean architecture in Flutter. Thank you.
Even though it's a bit challenging for me to get my head around this, after your such an amazing explanation, I should just practice it more to get a knack of it! but, man, you're truly done a great job in explaining every bit soo clearly! thank you soo much for this amazing tutorial bro! For real! Thanks a bunch! 💗😊
An excellent tutorial for clean architecture for flutter I have ever found in youtube ❤❤❤. Now completed it.
Man you really are amazing I was waiting for this video but I haven't watched it yet😅😅😅
I know your flutter tutorials are all awesome.
Thanks! Let me know how it goes ;)
man I had been looking for a good Clean Architecture video for 3 days now and see what I got now. Man you have posted it at a great time.
Same with me!
also same with me
Lemme know if you guys were able to understand the content!
@@RivaanRanawat Thank you very much. Understood everything. Is there any possibility of a video on Optimisation and Performance like the dos and don'ts. It would be a great help.
You are doing so much for the Flutter community brother, Thank you dil se ❤️
Thank you Kartik!
I know that most dart developers will use the "imp" as a keyword for the implementation, but coming from a C# background, I prefer using the "I" for the interface and the normal name for the implementation. I found it very helpful while following along with this course. So, the IAuthRemoteDataSources will be for the interface and the AuthRemoteDataSource will be for the implementation, as an example
Excellent Rivaan I have just completed you bloc tutorial and you have so good in your explanation that I can't even describe the best part of your explanation is that you explain even basic things of dart ThankYOu so much for these tutorials
I am an hour into the project and I cannot appreciate how well you have explained all the little things in the UI. Hoping the entire project goes like this!
how does it went do learn anything
Great tutorial! I love tutorials that go straight to code and code quickly! Thanks.
Thank you!!
Thank you very much for this content. I've learned a lot of good things. Hugs from Brazil
非常感谢 Rivaan 分享这个关于使用 flutter bloc 的教程,并解释了干净的架构。
Thank you so much for the guidance! I was able to understand the use of Clean Architecture in Flutter and all the related packages. You made an amazing tutorial! Keep it up! 💪🧠🧑💻
Love to see you Rivaan... Love From Bangaldesh.
Thank you very much Rivaan. So much learned in only 7 hours.
That's fantastic! Rivaan bhai's video on Clean Architecture seems to be really insightful and practical. It's great and I'm not just watching video but also actively practicing by creating Flutter projects. It's through hands-on experience like this that you can truly understand and apply concepts to write production-level code. Keep up the good work!
Amazing content Riwaan!❤ Your teaching style and your voice is really unique!!
Only that can motivate you to watch until the end Rivaan's Tutorial 😄
Thank you so much guys!
I'm a react developer having 1 year of experience and now I'm shifting towards the flutter and to keep my React journey consistent i need someone with whom i can keep building projects to keep me updated. I would like to collaborate if anyone interested
Just start watching your video and you earn a new subscriber ❤
This has so much great content, thank you so much!!!
I Genuinely Appreciate this video!
Thank you very much
Thanks for your constant support!
36:20 Preferably you'll want the entire page to be scrollable because the devices that your app will be used on won't have the same dimensions has the one you are using in development. Bigger screen sizes would be okay but smaller ones will result in an overflow err but if it's scrollable then the user has the job 👍🏾
Thank you so much Rivaan brother ❤❤
Thanks for your constant support Nikhil!
After a long time. Finally a flutter video, thank you brother.
The previous video was a flutter vid too!
I learned a lot, thank you. It was great.
most awaited!!!!
Thanks a lot Rivaan!
Selute to your hard work in love tutorial please keep making the content on flutter and we will also love to see a course in jetpack compose ❤ keep it up
Would love to explore Flutter and beyond
I am always eagerly waiting for your videos. Keep sharing your knowledge with us !!
Thanks Rahul!
U just got a new subscriber, but i need to learn basic flutter first. see you next week!!
Eagerly waiting for this type of video...
Thank you so much for this content.
My pleasure!
Rivaan is back with his new master piece 😇
Thanks Fahad!
Thank you for the wonderful tutorial bro it is so helpful for me and my team, thanks again
i have not finished the tutorial but it will be good so thank you in advance
Awesome! thanks for taking time to share this knowledge.
My pleasure!
clear explanations 🫡 from newbie
Thank you, glad it's understandable!
How much patience do you have bro? wow you have explained it so clear and so many times through out the course hats off amazed
Thanks you very much Sir Rivaaan, You are a Great Teacher.
Thanks again Kevin!
I love your video. Please keep it up
Bro Dropped This Banger and Vanished
I really appretiate your efforts.
Keep it up.
3:46:50 can you please be more specific with what this means? To what files do we add the copyWith function to? user_login.dart and user_sign_up.dart?
Oh maybe. In
auth_remote_data_sources.dart
we add ".copyWith" to the line
"return UserModel.fromJson(response.user!.toJson());"
But do we change anything on that line?
So, would it be two lines of code changing?
return UserModel.fromJson(response.user!.toJson()).copyWith();
return UserModel.fromJson(response.user!.toJson()).copyWith();
Like this?
Can't thank you enough. I am very grateful to you and I wish I could pay back the favour
video is very informative & clarity.
expecting more videos with clean arch in flutter
Thanks! Why more vids with clean arch?
@@RivaanRanawat clean arch vids
on triggering api calls using dio/http. setting up login signup auth tokens etc using bloc with clean arch
God sent you for flutter developers. ♥♥♥♥♥♥♥♥♥♥♥♥♥♥
Hi
Great tutorial !!
I noticed a small issue at 4:45
line 21 and 24 policy should be changed to
create policy "Users can insert their own profile." on blogs
for insert with check ((select auth.uid()) = poster_id);
create policy "Users can update own blogs." on blogs
for update using ((select auth.uid()) = poster_id);
1:9:00God of flutter sir salute hai aap ko ❤
Thanks man even before starting this I course I know It will be awesome ❤❤
Thank you!!
Rivaan this is excellent work my friend. Any chance for the next tutorial we can get a desktop and mobile app? would be interesting to see how you do the split in the code between the two with your clean code approach.
just what i needed, thanks
I have implemented that Chip with (Filter Chip) at 4h :26 min .. In my version, I got rid of any stateful behaviour, No need mapping + gesture detector as well. It is built in notifier and in future, I can do HookWidget on this page. (No need set state call as well) .
Thank You Rivaan❤
i am faccing the " email rate limit error " any solution please help
bro is flutter god. in the community,
Thanks a lot ! Amazing work 👏👏
Thanks Suleyman!
Great video. Loved it.
Thank you!
I have a doubt, Rivaan! How should I implement the logout? I mean, what should be the flow? Should I call logout from the blog screen? And since logout is ideally related to authentication, I cannot use the authentication repository here due to the 'S' in SOLID principles. Additionally, I cannot create a global use case, as high-level modules cannot depend on low-level authentication modules. What should be the flow?
Stop overthinking SOLID principles! signoutUseCase can be called from cubit/bloc and signout is fine in the authentication repository
Good job! Thank you very much!
Nice tutorial, I learn a lot from that
Finshed the vedio really good xDDDDDD
thanks god for sending Rivaan
Rivaan, with all due respect to `fpdart` package, why would you use it since Dart has Records?
My example of an API method...
Future getMyResponse()
Then in the code, if it returns properly, I return an instance of MyResponse and I return null for the `error`.
If it returns an error, I return null for the response and some error.
Does this make sense?
It's pretty clean and we utilize new Dart feature without using additional packages.
Great job ! 👍
thank you!
Hey Rivaan thank you giving us this great tutorial. In past couple of weeks I learned dart and flutter from your 20 hour video. In this video I 'm facing a problem when I try to upload a blog this app in my virtual app gets hang and I have to restart the app and blog dosen't go back to the supabase
Much Needed 😊
Let me know how it goes!
Thank you very much bro ❤️
Hi! Add more to this content which discusses bloc for other applications such as multi-account applications with bloc as state management
so signOut logic is using AuthBloc or Cubit?
That hive still feels annoying and quite hard to understand, and thank you rivan for this super video this is much helpful.
Tks alot, this is actually a really good tutorial and help write actually clean code. However, in the process of using it I feel like it take too much time for just one query. So I think you can make a tutorial on a simplified version of this clean architecture.
thats the neat part about clean architecture. in enterprise level apps you need to maintain a lot of code and clean architecture does that for you. dont worry it has a steep learning curve but it is worth it
At 6:36:00 why are we using UserModel instead of User entity?
I have a doubt how you will check if user is authenticated or not for thate before u have to check if there internet connection or not 2:50
Thank you very much for the course.
There is one thing I'm struggling with and I was hoping you could help me, if your don't mine.
When using a feature first approach, what happens when you have a single local SQL database for all your app?
I understand that the creation of the database itself probably has to go to the core or shared folder.
But what happens if you have 2 features and one of them has a model that has a relationship with a model of the other feature? I'm talking about foreign keys, of course.
Can one feature be used inside another feature?
Or is it better to move all the models to the core or shared folder alongside the database creation?
Thankssss Rivaannnnnnnn🎉❤️❤️
Most welcome!
awesome content! New suscriber here!
Thank you, hope you find enough value from the channel!
This is awesome.
2:04:00, the user does not show up. no errors are thrown. checked the code base almost 3 times and can not seem to find any issues. helpppppppp
bruh, I have been using an invalid email for the last 3 hours, coming from a Firebase background, I thought it would work, but only when I printed an error in the bloc, did the issue become apparent.
pro tip: put a print statement in the bloc so if something goes wrong you can tell by looking at the console. I do not know why there were no exceptions thrown as I had been following along with writing the code i know that we have implemented lots of try-catch blocks everywhere but none seem to work will keep you updated if I find the answer
@@pranay96 Yeah, but I used my everyday email, and still not a single user shows up. I admit I'm all new to Flutter, but as you said, I checked at least 3-4 times the code and everything's ok...
@@createdbysmcap Don't worry, I'm having the same issue. I've tried sending messages to the console when AuthSignUp is called inside the auth_bloc.dart file and nothing. But I can get a console log when I press the sign up button. I've been at this, like you, for 3-5 go arounds in that section of the video and I think I have everything right, and can't seem to figure it out.
thanks sir😍, it was very helpful video
Glad it helped!
Wow!! Cool! ❤
Hi. If I have to implement a monthly or yearly subscription model for my mobile application. Then is it mandatory to use In-App-Purchases ? I mean we cannot use an external payment gateway. How Netflix is redirecting users to its website to avoid 30% fees. Please talk about this.
Hii you are the best keep doing project it will helpful to more people and i am requesting you to make a video on animation app
Thank you, glad to learn the foundation of clean architecture from you. Will you work on the full stack Flutter - Social Post Scheduler project?
actually good video
Thank you very much for making such videos I added a in blog feature to this app to fetch the current user blogs in a separate screen the issue I face is it overrides the the data of each other when I dispatch the user blogs event it hides the data of the blog screen and vise versa
Thanks you very much (from congo)!!!
Thanks you so much for this video
sir bloc s related video upload kre apke samjhany ka tarika acha hai
at 5:41:53 can't we just do a null check in fromJson method, i think that's better than writing the copyWith method inside the remote call,
and thanks for the amazing tutorial.