Flutter TDD & Clean Architecture - Learn By A Project | Full Course for Beginners [Tutorial]

  Рет қаралды 26,015

Flutter Guys

Flutter Guys

Күн бұрын

📄 Architecture is very important in developing an application. Architecture can be likened to a floor plan that describes how the flow in an application project. The main purpose of implementing the architecture is the separation of concern (SoC). So, it will be easier if we can work by focusing on one thing at a time.
In the context of Flutter, clean architecture will help us to separate code for business logic with code related to platforms such as UI, state management, and external data sources. In addition, the code that we write can be easier to test (testable) independently.
In addition to implementing the clean architecture, to optimize the development process in terms of producing minimal bugs and reducing repetitive debugging and fixing processes, we must undergo a testing process.
Test-Driven Development is an application development process where testing is the main character that drives the development. Testing code scenarios will be written first before creating a feature in the application.
🌐Reference :
🔗 betterprogramming.pub/flutter...
📁Source Code
🔗 github.com/mahdinazmi/Flutter...
🌐 Telegram Community
🔗 t.me/flutterguysgp
⚡ SUBSCRIBE HERE⚡
🔗 cutt.ly/2XkZz0X
🌐 Social Media
🔗 Linkedin: / mahdinazmi
🔗 GitHub: github.com/mahdinazmi
🔗 Twitter: / flutterguysdev
⏳ TIMESTAMPS :
00:00 Intro
00:54 Join The Community
01:11 Add Packages & Create Folders Structure
02:37 Use Case Testing
17:24 Model Testing
25:37 API Calling Testing
33:09 Repository Implementation Testing
40:08 Bloc Testing
48:27 Widget Testing
1:03:49 IMPORTANT
#flutter #fluttertutorial #fluttercourse

Пікірлер: 49
@minseokjeong1881
@minseokjeong1881 10 ай бұрын
How concrete example of the build test environment :D. I'm very happy to get priceless information with free. All I can do is just hit the like button and set the alarm :D. THANK YOU FROM BOTTOM OF MY HEARTS ❤
@dev-qq2vy
@dev-qq2vy 7 ай бұрын
Greatest video about clean architect and TDD I ever seen. Thanks.
@weaponx3373
@weaponx3373 2 ай бұрын
thanks for the video!! after watching clean codding video and lil bit of practice , leaning testing was easy. thanks again.
@nurmtv2983
@nurmtv2983 10 ай бұрын
I'm happy you exist!) Your speech, explanations are perfect!!! Keep going, we are waiting for your next videos!❤❤❤
@pavelzapletal7942
@pavelzapletal7942 10 ай бұрын
Great video, really useful to see a proper file structure.
@BOSSandCHOCO
@BOSSandCHOCO 4 ай бұрын
Best tdd video ever, thank you so much!
@prodev7961
@prodev7961 10 ай бұрын
Very well explained ! Good job
@nabinshrestha2821
@nabinshrestha2821 3 ай бұрын
Love to see the testing environment for the flutter app.. Great work
@salahcheihbi
@salahcheihbi 10 ай бұрын
Good job 👍🏻 We need an explanation for solid principles
@pravinprince3221
@pravinprince3221 9 ай бұрын
Thank you so much for the wonderful video sir , it is very helpful for me and my team
@muhammadaminibrohimov6290
@muhammadaminibrohimov6290 10 ай бұрын
Nice bro keep going don’t stop
@JayeshLathiya77
@JayeshLathiya77 10 ай бұрын
Thank you for this great tutorial
@oleksandrkostu4ok
@oleksandrkostu4ok 10 ай бұрын
Great job thank you so much)
@b_b.podcast
@b_b.podcast 2 ай бұрын
Awesome content thanks
@mohamedkabha1761
@mohamedkabha1761 Ай бұрын
Great tutorial especially the TDD section, keep going.
@flutterguys
@flutterguys Ай бұрын
More to come!
@amirtorabi6302
@amirtorabi6302 10 ай бұрын
Thanks for share❤❤❤
@khantwin04
@khantwin04 9 ай бұрын
Love it!🤟💯
@kingisback4005
@kingisback4005 10 ай бұрын
I have an doubt,all api call in current feature come in remote data source implementation,or we need to create separate file under data source in data layer?
@bc9585
@bc9585 5 ай бұрын
Awesome content thanks for your contribution to community 🥳❤️
@flutterguys
@flutterguys 5 ай бұрын
You are so welcome
@arunchapagai1139
@arunchapagai1139 6 ай бұрын
Why test is failing when implementing await keyword in the act phase in the ServerException?
@thetraveller3840
@thetraveller3840 8 ай бұрын
Hello, if I use RiverPod, what changes in the architecture?
@ror123456789ify
@ror123456789ify 3 ай бұрын
Tutorial is great. However I think you should use abstract version of repositories, datasources etc in tests as member types instead of implementations or mocks.
@s.mohanasundharam3950
@s.mohanasundharam3950 6 ай бұрын
wonderful video i loved if very much this is very straight forward and provide direct what i want to learn. i watched some of your video about bloc. but this is very....... wonderful. testing also so great but i need some video about testing. i feel complex for testing because i am new for it i don't know but every explanation great. please add some real world scenario or real word working process with explanation. at last i wanna say thank you ...... ❤‍🔥❤‍🔥
@flutterguys
@flutterguys 5 ай бұрын
❤️✌️
@redjohn4626
@redjohn4626 8 ай бұрын
awrsome
@gggg-no6rm
@gggg-no6rm 9 ай бұрын
The helper mock file not readable
@aungzawphyo2758
@aungzawphyo2758 21 күн бұрын
Hello Sir, I am beginner. I am practicing it with a project. In login part, I put token storing code using shared preferences in bloc. And then bloc test is not working correctly because of token storing asyn code. So, how should I do, Sir? Please give ma advice.
@oaiwjebdlla
@oaiwjebdlla Ай бұрын
Hi, is Dartz a substitute for DataState from the previous video on CA? Thanks
@flutterguys
@flutterguys Ай бұрын
Yes
@user-bv6vs2hj4j
@user-bv6vs2hj4j 10 ай бұрын
Please make a integration testing in flutter with login and register
@justanaveragebalkan
@justanaveragebalkan 4 ай бұрын
I really don't get when people do this, the project structure is solid, and to my surprise it actually follows the clean architecture design however, it's nonsense at the same time. The idea with going for something like Clean Architecture is to have reusable code, that can be shared between multiple solutions the whole paradigm with inward dependencies is that nothing should depend on an upper layer and each layer should be able to function independently, Having all the layers in a single solution breaks that rule and makes everything in the architecture completely invalidated, for example if i have two apps that do the same thing for example TV app, and a Mobile app, with your abstraction of the CA i will have to go ahead and duplicate my entire codebase. Having the Infrastructure, Domain, Application and i usually add myself to flutter (Components, Shared) to handle dependency injections as there is little to no reason why not to abstract these as separate packages that can be connected either as sub-modules or regular packages to the main solution. This allows for a fluent and easy implementation of the architecture allowing for 90% of the code to be shared across both the mobile and TV application for example. Honestly, i give you props for trying to make an educational video on the matter, but sometimes we must be careful when showing stuff that are hard to understand because a lot of people will take the content of this video literally without even considering why and where we implement architectures, most likely will start doing it all over the place and then they end up with overly complicated calculator and a question of "Why they reject me at every company that i get an interview at".
@flutterguys
@flutterguys 4 ай бұрын
Honestly, I really appreciated your comment. One thing is to produce content, which we try to do in a qualitative way, however, not everything can be shared in the same content and I admit that the concept also goes beyond the creation of files. One of the main reasons why we have also been doing live sessions with other colleagues recently, it is also a place to share and go into a lot more detail. Thank you and feel free to join us on telegram. We will be happy to see you share your experience, especially with TV.
@ganeshprasadrao5596
@ganeshprasadrao5596 10 ай бұрын
please tell me this, is that your original voice or ai generated ?
@standa-yt
@standa-yt 10 ай бұрын
Must be AI no way human sounds like that. The content is good anyway and the voice is just little bit annoying
@khushalrao148
@khushalrao148 7 ай бұрын
At 33:05 remove the await on line 62
@arunchapagai1139
@arunchapagai1139 6 ай бұрын
why we are removing await keyword? If removed, it only get instance of Future which is not actually a exception.
@khushalrao148
@khushalrao148 7 ай бұрын
At 58:13 use the whenListen provided by bloc_test whenListen( mockWetherBloc, Stream.fromIterable( [ WetherEmpty(), WetherLoading(), ], ), initialState: WetherEmpty(), );
@arunchapagai1139
@arunchapagai1139 6 ай бұрын
also for loading i encountered exception. can you help?
@flutterdelux
@flutterdelux 10 ай бұрын
hello sir, i get exception when running last test widget. description: error: should show widget contain weather data when state is weather loaded ══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════ The following assertion was thrown running a test: A Timer is still pending even after the widget tree was disposed. 'package:flutter_test/src/binding.dart': Failed assertion: line 1498 pos 12: '!timersPending' ... could you help me, what should i do or where my mistake? i have check code that same in the video. thank you
@flutterdelux
@flutterdelux 10 ай бұрын
then I tried to clone your project on github. when I run the test, it show the same error as my project
@amoka_s
@amoka_s 10 ай бұрын
Found solution. Try to add after pumpWidget following line: await widgetTester.pumpAndSettle(const Duration(milliseconds: 500)); So it will be like this: await widgetTester.pumpWidget(_makeTestableWidget(const WeatherPage())); await widgetTester.pumpAndSettle(const Duration(milliseconds: 500));
@flutterdelux
@flutterdelux 10 ай бұрын
@@amoka_s thank you, i also find this solution at stackoverflow. but it's also work without param (use default duration). await widgetTester.pumpAndSettle();
@ror123456789ify
@ror123456789ify 3 ай бұрын
it started to work when I changed mockito to mocktail as a when() method provider
@kiwikemist
@kiwikemist 5 ай бұрын
AI voice? Instantly put me off. Do better.
1 or 2?🐄
00:12
Kan Andrey
Рет қаралды 58 МЛН
路飞被小孩吓到了#海贼王#路飞
00:41
路飞与唐舞桐
Рет қаралды 72 МЛН
Who has won ?? 😀 #shortvideo #lizzyisaeva
00:24
Lizzy Isaeva
Рет қаралды 63 МЛН
КАК ДУМАЕТЕ КТО ВЫЙГРАЕТ😂
00:29
МЯТНАЯ ФАНТА
Рет қаралды 6 МЛН
Flutter Clean Architecture Visual Explanation
6:15
Flutter Mapp
Рет қаралды 26 М.
Flutter Basics by a REAL Project
25:42
Flutter Guys
Рет қаралды 422 М.
Test-Driven Development // Fun TDD Introduction with JavaScript
12:55
Flutter Unit Testing Tutorial For Beginners - Practical Guide
1:06:54
Rivaan Ranawat
Рет қаралды 31 М.
Most overpowered way to build mobile apps?
8:33
Beyond Fireship
Рет қаралды 739 М.
Clean Architecture in Flutter - All You Need to Know!
3:57
Flutter Guys
Рет қаралды 34 М.
Learn .NET MAUI - Full Course for Beginners | Build cross-platform apps in C#
4:08:53
35 Flutter Tips That Will Change Your Life
10:53
Flutter Mapp
Рет қаралды 296 М.
Klavye İle Trafik Işığını Yönetmek #shorts
0:18
Osman Kabadayı
Рет қаралды 4,2 МЛН
Battery  low 🔋 🪫
0:10
dednahype
Рет қаралды 7 МЛН
Я УКРАЛ ТЕЛЕФОН В МИЛАНЕ
9:18
Игорь Линк
Рет қаралды 119 М.
Samsung Galaxy Unpacked July 2024: Official Replay
1:8:53
Samsung
Рет қаралды 23 МЛН