Learn Flutter Clean Architecture & TDD - Full Course (Flutter Tutorial)

preview_player
Показать описание
📗 Learn from written tutorials for individual parts 👇👇

📧 Get Flutter news 📰 and resources:

🎯 The biggest Flutter conference in Europe:

👨‍💻 Do you write good code? Find out now!

Keeping your code clean and tested are the two most important development practices. In Flutter, this is even more true than with other frameworks. On one hand, it's nice to hack a quick app together, on the other hand, larger projects start falling apart when you mix the business logic everywhere. Even state management patterns like BLoC are not sufficient in themselves to allow for easily extendable codebase.

This is where we can employ clean architecture and test driven development. As proposed by our friendly Uncle Bob, we should all strive to separate code into independent layers and depend on abstractions instead of concrete implementations.

***

In the first part, you will have learned the core concepts of clean architecture as it pertains to Flutter and also created a bunch of empty folders for the presentation, domain and data layers inside the Number Trivia App we're building. In the second part, it's time to start filling those empty folders with code, using TDD, of course.

Whenever you are building an app with a UI, you should design the UI and UX first. I've done this homework for you and you can see the Flutter app showcased on video.

The actual coding process will happen from the inner, most stable layers of the architecture outwards. This means we'll first implement the domain layer starting with the Entity.

***

Go to my website for more information, code examples, and articles:

Follow me on social media:
Рекомендации по теме
Комментарии
Автор

Timestamps:
0:01:41 [01] Explanation & Project Structure
0:25:14 [02] Entities & Use Cases
1:03:45 [03] Domain Layer Refactoring
1:26:41 [04] Data Layer Overview & Models
1:56:17 [05] Contracts of Data Sources
2:22:32 [06] Repository Implementation
3:03:38 [07] Network Info
3:23:15 [08] Local Data Source
3:53:15 [09] Remote Data Source
4:24:46 [10] Bloc Scaffolding & Input Conversion
4:50:57 [11] Bloc Implementation 1/2 (and Basics of Test Driven Development)
5:26:47 [12] Bloc Implementation 2/2
5:59:15 [13] Dependency Injection
6:29:22 [14] User Interface

tannermeade
Автор


@override
List<Object> get props => [text, number]; Just something I noticed while following the tutorial

reyPiti
Автор

This is absolutely the best Flutter content is this whole

solomonaryeetey
Автор

Seriously man, you're my preferred content creator about flutter. I love your way to explain things. It's always clear and without any glitch disturbing the learning curve !
Keep up the good work dude !

DaBelgianSeeD
Автор

I would have paid good money for this course. Just finished the video version, now I am going to go through the written version a few times. This guy is SOLID AF! :)

rossthemusicandguitarteacher
Автор

Before watching this tutorial, I thought that I was not a professional flutter programmer, after watching it I realized that my thoughts were correct. Thanks to the author, I learned a lot of things

nabijonazamov
Автор

Great tutorial, I used flutter bloc 5.0.0 and followed your tutorial anyone facing problem passing test at this 5:30:00
For Initial state use
test('initial state should be empty', () async {
final initialState = await bloc.first;
expect(initialState, equals(Empty()));
});

test('should emit [Error] when the input is invalid', () async {
//arrange


//assert later
final expected = [
Empty(),
Error(message: INVALID_INPUT_FAILURE_MESSAGE),
];
expectLater(bloc.asBroadcastStream(), emitsInOrder(expected));
//act

});

amitforever
Автор

For the bloc -> use add instead of dispatch if you are following along with current package versions. Also, in the current version of bloc, the bloc.state will return the current state and not the stream. So just use bloc, and the test will pass just fine. :) At about 5:19:00

rossthemusicandguitarteacher
Автор

So precious knowledge, flawlessly delivered without any charges. Amazing! Hats off to you! Watched this video twice to get the grip :)

M.BilalAhmad
Автор

I salute your patience for being with us for such a elastic elaboration

ankitlakum
Автор

On a very serious note, flutter and everything aside. Your mic and sound quality is amazing👌🏿👌🏿. There are many good courses out there one can't complete because of headache caused by the poor sound quality. Thank you!

FonkamL
Автор

Just had this video recommended to me by YouTube and I had to check out your channel because of your awesome thumbnails.

Seriously, love the way your feed looks. Good thumbnails tell me the creator took time on the video. I’ll be following :)

DennisIvy
Автор

Best series on flutter in one video, for what more you could ask 😂🔥👊🏻 thanks a lot.

ShadowInfest
Автор

_Clean Architecture_ says it all! And for my mindset, simply can't be stressed enough. Thank you.

funrc
Автор

Thank you so much man, this course was so interesting and especially with the modifications to perform with all the new versions of the differents packages forces us to trully understand what's going on. Can"t thank you enough for the knowledge i got through out this course 👏👏

Akleo
Автор

Are 10 dislikers kinda struggling React Native users? :D
Gosh, this is gold, as always.

kaunk
Автор

Wow, just wow! You should be a flutter GDE!

lone.wof
Автор

Thank you for the excellent tutorial! It's even better than most of the paid stuff on udemy... Really good work!

elliotalderson
Автор

Done!!! This has beem one of the most important Tutorials for me!! i am going to start the next FB & DDD Tutorial. Thanks Reso!!!

pedrodelacruz
Автор

This is some next level tutorial. Thanks to you, I finally managed to understand many concepts I had a hard time wrapping my head around. Thank you so much!

matthieuregnauld
visit shbcf.ru