A lot of people asked me if I could also show testing. I thought of doing that here, but the video was already so long. Would you like me to make another clean architecture testing guide where I show you how to write unit, integration, end-to-end and UI tests for this note app?
defenitely would love that.. Please also make videos explaing implementing bottom Dialog Fragments persistant and modal... There is no proper material or guide on how to implement that in a separate Dialog Fragment class
thank you so much lackner, your video's are absolutely worth for any one, I'm a android intern, initially I struggle too much, but your videos are helping me a lot, I'm watching you since last 2 months. thank you so much for all.
Brother i am not GAY but i have to tell you I LOVE YOU 💖💖 seriously i just wanna be like you, your content is on different level, keep teaching us new things
This is just amazing, I've used clean architecture in one of my previous jobs but seeing it used with Compose and Coroutines is a whole new level, thanks for sharing this, I learned a lot from you!
This video is so helpful. Let me give you a little tip. You can set subclasses of sealed class as data class by moving val orderType from constructor to inside of sealed class and making orderType abstract val. In this way, you will have copy and equals functions and more.
Clean Architecture from Clean Man sounds different. I wish you to continue clean series (with Mappers, Use Cases, Data-Domain-Presentation, Package by Feature Architecture etc.). Keep going Philipp, You're AWESOME ! ❤️
I have been looking for a video that explains how to use Room appropriately with Compose while maintaining clean architecture since Compose was publicly available, this is perfect! Thanks so much for all your hard work!
Thank you man. I appreciate this piece that gives people power and confidence in Android development path. I would like to know anything important about Android Development, so please keep sharing things you think it is good to learn. Thanks bro
It would be great to see how to set up the project with modules instead of just packages in a separate video, And to see what is so complicated about it! What you're doing is really cool, keep it up
Thank you Philipp, that helped me a lot! You know when the video is long it really dives deep into some interesting details. Keep up with the good work!
You are making an Awesome content!! But can you please run the application when coding the ui part?? It's easier for us (while coding along) to understand what's going on when we see the application running with the functionality we just coded, instead of writing everything and running only at the end. It would not take much more time to just show it running. Thanks!
First, your work is fantastic, and I am very grateful. I'm still learning, and maybe I shouldn't be here because I didn't know yet many things you used, like room and flow. So, my bad. HOWEVER... because you know so well what you need to do, it seems like you do the work backwards! You create the things you know you will need, but for who is learning, that will only make sense in the end. And even then, I might need to come back and see all again because now I have the info that I need to understand all the code you have written. Don't get me wrong, you are awesome, and again, maybe I should have learned more about flow and room first (not in the run), I just want to say that it could be better. Thanks, Philipp!
Thanks for the feedback :) this video does not have the purpose to teach concepts like flow, coroutines etc. It's an advanced video that teaches clean architecture. If I'd explain every bit of code in all its detail, this video would be 4x as long 😄 for all the single concepts I have Videos explaining them more in depth
@@PhilippLackner You have explained it very well anyway. It's just about the order of things. But you are right, that would still increase the time of the video. Thanks for the answer Philipp!
Very nice video! Congratulations! Congratulations 👏! Question/Feedback: By creating entities that belongs to Room in your Business/Domain layer, aren't you mixing the data layer with the business/domain layer? In this way if the database change then all your use cases also changes.
I'm late to the party :)), I just was watching the video and I wanted to point the exact same thing. you are right. domain should not care about the details like which DB we're using.
Hi Philip, the work and efforts you have done in making the video is amazing. Thanks for this. I have a Question: You create a model " Note " (data class) in the " Domain " Layer and used that in the " Data " layer as well.Is it Ok to do like that? or we can do more decoupling over there as well by doing some other stuff. Like if we get the data from the server in a model class and we need to save particular data to local database so for that another entity data class. Please answer.
Thank you, Philipp! This was an excellent run through for the whole app. I will be supporting you by purchasing the canvas class. Thanks for that as well! One thing that I would also like to see are your Live Templates that you are using? Although I have been using Android Studio for quite sometime, I have only just started defining my own Live Templates. (I have been a long time emacs user and really customized that quite extensively over the years. But with modern Android development, Android Studio is a much better option.) Thanks again, and I am looking forward to watching more videos (winter break should give me time to make it through your current body of work. :-) ).
Thanks for the support! You can find my most used live templates here: gist.github.com/philipplackner/3d3b900d2e9128a37d7d5e6e8fac9e4f#gistcomment-3961404
Thank you so much for these guides. I've stayed in the comfort zone of MVVM for too long and this lesson is being a tremendous help for getting up to speed. I have some questions, writing them as I watch the tutorial: Regarding around 1:05 is there any way to bypass cancelling a job? I'm not very knowledgable on flow, I might be wrong, but it seems like it's against the idea of having the flow in the first place.
I have been using bloc pattern and folder-by-feature structure in flutter and I just love how compose has adapted patterns from flutter. Its just awesome. Watching this video explained use cases which I couldn't understand very well previously. Lots of love for your amazing free content. I can imagine the effort you have put into it. Thanks for such practical content. God Bless You.
Great video thank you, I would like it even more if you could before using concerts like clean architecture or design injection explain the concept with something simple like classes that print messages and then explain the why behind the idea. But the overall awesome video.
Have you tried Android Studio > File > Project Structure > SDK location > Gradle Settings > Add JDK > version 11 (install and apply)? It worked for me. If the intention was to just learn architecture I guess it's good quick workaround. Otherwise, yes, using old version of java does not look like a good idea
Thanks a lot, Sir❤ Could you please make a tutorial of how to make a web admin panel? If someone is using Kotlin and Firebase for their app as you knew already uploading and updating contents of the app from Firebase is not easy for everyone so please make a video tutorial on it.🙏😍❤
i'm having so much fun learning this stuff. just had to say it somewhere lol. sometimes youtube feels clouded with web development and this channel/community makes me feel "at home" with Android development. thank you philipp! might actually land this Android QA engineer position because of you lol.
Excellent stuff. Thanks for the hard work. Great architecture, good explanations, covers a broad range of topics (from db storage, UI design, animation). Very enjoyable.
hey, in Spotify play list in video 13 there are more than 10 person have the same problem in comment of "@Quang Đạt" please if anyone can help tell us if u can't set Like to make philipp see it please..
Hey Philipp ,I've just subbed - very useful content - If I may suggest a very tiny ui improvement - whenever you expand the notes order menu - the menu icon could animate to a cross for example to create even more fluid ui experience :)
hey i seem to have an error and i don''t why this is the error: couldn't make a guess for lr.aym.notesapp.Feature_note.presentaion.add_edit_note.AddEditnoteviewmodel_HiltModules.BindsModule if any one knows how to fix it please help and thank you
A lot of good stuff to learn. Good explanation. Thank you very much! For the next one: I would find it much better, if you would develop the app incrementally. Going through 2 hours of video to be able to run the app for the first time is hard. Also, it is not the way, a beginner would implement apps.
You start with making the domain model, and first thing you do is coupling it with Room - the Data layer library. That's clearly not a good start of Clean Architecture tutorial, despite this video is for beginners
Totally agree on that. Outside of the data_source package there should be no reference to Room. As, in fact, Philipp himself explained it two minutes before adding Room references in the domain layer!
I liked comment about data structures and algorithms. You are absolutely right about this. Knowledge could be useful or useless. For mobile app development data structures and algorithms - useless knowledge. But probably for people who created Jetpack Compose and Android Studio this knowledge is important. But we do not develop Android Studio, we use Android Studio to develop.
Can you share more details, probably some docs as well, as to why in the NoteDao file, getNote function is not a suspend function but all the rest are??
A lot of people asked me if I could also show testing. I thought of doing that here, but the video was already so long.
Would you like me to make another clean architecture testing guide where I show you how to write unit, integration, end-to-end and UI tests for this note app?
Yes please
defenitely would love that.. Please also make videos explaing implementing bottom Dialog Fragments persistant and modal... There is no proper material or guide on how to implement that in a separate Dialog Fragment class
yes please 🙏
Yes please!
Yes defenitely
I'm amazed of the amount of work you put in this single video and how you decided to make it a free video because this is a full course honestly
Hope it helps!
Hi! When new video?))
I watch your videos too 😍😃 you are amazing!
Just finished the video
Best video on clean architecture and jetpack compose ever on internet.
Thank you Philipp ❤
You are changing lives, making them better!
Thank you for this amazing masterpiece when much needed!
We are also changing lifes. After All we are who spend their time for learning and improving
@@twojaStara698 Its hard to find someone with constent videos and updating with time, hard to find a mentor, found one, Philip!
your son hittin puberty
Congratulations Phillip, for sharing so much quality content here on youtube 🇧🇷 🇧🇷 🇧🇷
thank you so much lackner, your video's are absolutely worth for any one, I'm a android intern, initially I struggle too much, but your videos are helping me a lot, I'm watching you since last 2 months. thank you so much for all.
Glad to help!
Brother i am not GAY but i have to tell you I LOVE YOU 💖💖 seriously i just wanna be like you, your content is on different level, keep teaching us new things
This is just amazing, I've used clean architecture in one of my previous jobs but seeing it used with Compose and Coroutines is a whole new level, thanks for sharing this, I learned a lot from you!
This video is so helpful. Let me give you a little tip. You can set subclasses of sealed class as data class by moving val orderType from constructor to inside of sealed class and making orderType abstract val. In this way, you will have copy and equals functions and more.
Clean Architecture from Clean Man sounds different. I wish you to continue clean series (with Mappers, Use Cases, Data-Domain-Presentation, Package by Feature Architecture etc.). Keep going Philipp, You're AWESOME ! ❤️
I have been looking for a video that explains how to use Room appropriately with Compose while maintaining clean architecture since Compose was publicly available, this is perfect! Thanks so much for all your hard work!
I don't know how you are able to make an almost ready production app in an hour. Thank you for the invaluable information though
Thank you man. I appreciate this piece that gives people power and confidence in Android development path. I would like to know anything important about Android Development, so please keep sharing things you think it is good to learn. Thanks bro
This video absolutely rocks.
You're fairly good in your code and overall scope while doing this tutorials.
Thanks bro!
great tutorial great android developer you make it look easy and simple good job man keep going i learned a lot from you
Great!
it's so good that you record all the tutorial in one video.
Awesome! One single video is good enuf to picture any requirements to fit in a big project right away. Kudos! ❤
It would be great to see how to set up the project with modules instead of just packages in a separate video, And to see what is so complicated about it! What you're doing is really cool, keep it up
absolutely nothing complicated
It wasn't easy, but I built my app based on this video.
Great tutorial.
Thank you
Thank you Philipp, that helped me a lot! You know when the video is long it really dives deep into some interesting details. Keep up with the good work!
Thanks for the great work Phillip
Thank you very much, Philipp!
Smooth and consistent narration.
Amazing Philipp, thank you very much for your time and for sharing your knowledge
Thank you so much Philipp for this course! I learnt so much watching your course. You're a fantastic teacher.
Merry Christmas to you!
Thank you! Merry Christmas to you too!
Wonderful approach, great job - thanks for this Phillip it's really helpful.
Man this is just next level stuff for me, learnt a lot from this!
Thank you very much!
You are making an Awesome content!! But can you please run the application when coding the ui part?? It's easier for us (while coding along) to understand what's going on when we see the application running with the functionality we just coded, instead of writing everything and running only at the end. It would not take much more time to just show it running. Thanks!
i agree...or at least create previews for composables (i know this could take too much time unfortunately)
Awesome! The code is so clean and concise
One more Clean Architecture video? Great!
Incredible content! I wish I ever could become at least half as smart as you! Thank you so much for teaching us so many important things! 😍😍😍
My pleasure!
0:22 this pronunciation cracks me up
0:31 "I will do you more if you like it and if it gets more views"" very poor choice of words there.
Good for commercial break although too early for a break at 0:22
Watched till the end. I always do.
I like your videos because of all in one nature.
Great video learned a lot of new things
It's really a complete course 😄, I'm just a beginner but I've learned and understood a lot through this course. Thank you
Your videos are the best! Thanks bro 👊
First, your work is fantastic, and I am very grateful.
I'm still learning, and maybe I shouldn't be here because I didn't know yet many things you used, like room and flow. So, my bad.
HOWEVER... because you know so well what you need to do, it seems like you do the work backwards! You create the things you know you will need, but for who is learning, that will only make sense in the end. And even then, I might need to come back and see all again because now I have the info that I need to understand all the code you have written.
Don't get me wrong, you are awesome, and again, maybe I should have learned more about flow and room first (not in the run), I just want to say that it could be better. Thanks, Philipp!
Thanks for the feedback :) this video does not have the purpose to teach concepts like flow, coroutines etc. It's an advanced video that teaches clean architecture. If I'd explain every bit of code in all its detail, this video would be 4x as long 😄 for all the single concepts I have Videos explaining them more in depth
@@PhilippLackner You have explained it very well anyway. It's just about the order of things.
But you are right, that would still increase the time of the video. Thanks for the answer Philipp!
Great video. Answered a lot of questions.
Really Hard work.
Amazing!
amazing tutorial, as always
This is awesome. Thanks a lot for your wonderful work. You are really great. Many thaaaanks ❤❤❤
great job sir. patiently waiting for the next one...
really helpfulL, thanks alot Phillip
Thank you very much! It was very useful
OMG! Its amazing 🚀🚀
Thanks for this video friend! You are helping a lot!
Your video is really helpful , doing great job
This is amazing video. Thanks for that as well!
Thanks for your efforts man
Very nice video! Congratulations! Congratulations 👏! Question/Feedback: By creating entities that belongs to Room in your Business/Domain layer, aren't you mixing the data layer with the business/domain layer? In this way if the database change then all your use cases also changes.
yeah i was thinking the same thing! something's gotta be wrong with that
I have seen it done elsewhere, and they have a domain model and data model, the one annotated with @Entity was in the data package
I'm late to the party :)), I just was watching the video and I wanted to point the exact same thing. you are right. domain should not care about the details like which DB we're using.
Great Teachings. Learned a lot from this video. Loved it… :)
Please make more content. Would be great learning more from you :)
Thanks for a great tutorial video.
Thanks Philipp!
This series is great Philipp ⚡Can you do one with firestore too ?
Yes, please update this todo app to works with API with Firestore or Backend of Ktor for non less setup than Firstore 🤭
Super thanks! ❤️
You're welcome 😊
Hi Philip, the work and efforts you have done in making the video is amazing. Thanks for this. I have a Question: You create a model " Note " (data class) in the " Domain " Layer and used that in the " Data " layer as well.Is it Ok to do like that? or we can do more decoupling over there as well by doing some other stuff. Like if we get the data from the server in a model class and we need to save particular data to local database so for that another entity data class. Please answer.
It's unreal how much of quality content we get for free right here on this channel. Thanks man. You're awesome.
Agreeee
Great tutorial video, thank you!
Glad it was helpful!
Thank you, Philipp! This was an excellent run through for the whole app. I will be supporting you by purchasing the canvas class. Thanks for that as well!
One thing that I would also like to see are your Live Templates that you are using? Although I have been using Android Studio for quite sometime, I have only just started defining my own Live Templates. (I have been a long time emacs user and really customized that quite extensively over the years. But with modern Android development, Android Studio is a much better option.)
Thanks again, and I am looking forward to watching more videos (winter break should give me time to make it through your current body of work. :-) ).
Thanks for the support! You can find my most used live templates here: gist.github.com/philipplackner/3d3b900d2e9128a37d7d5e6e8fac9e4f#gistcomment-3961404
May the Machine God bless you
Thank you very much for amazing video.
print("Enjoying coding with you. Great job dear.")
😊 thank you
Amazing tutorial, I'm 25 years old and I've never seen that's good tutorial. You're making a good job. Greetings from Poland. Danke schon!
very cool app thank you very much Bro
Great content
Thank you again 😊
How can android understand when you type "vmState" or something like that
Live template he has a videos on those and how to make your own ones
Great video! Thanks for this :)
2 years later but this video is gold for self-learner ! thank you very much for sharing your knowledge in such a good way. Everything is cristal-clear
cant build in my case always errors with compiler
Deine Vids sind klasse c:
Thank you sir for this video
Thank you so much for these guides. I've stayed in the comfort zone of MVVM for too long and this lesson is being a tremendous help for getting up to speed. I have some questions, writing them as I watch the tutorial:
Regarding around 1:05 is there any way to bypass cancelling a job? I'm not very knowledgable on flow, I might be wrong, but it seems like it's against the idea of having the flow in the first place.
Thanks brother 🤟🏻
I have been using bloc pattern and folder-by-feature structure in flutter and I just love how compose has adapted patterns from flutter. Its just awesome. Watching this video explained use cases which I couldn't understand very well previously. Lots of love for your amazing free content. I can imagine the effort you have put into it. Thanks for such practical content. God Bless You.
Great video thank you, I would like it even more if you could before using concerts like clean architecture or design injection explain the concept with something simple like classes that print messages and then explain the why behind the idea. But the overall awesome video.
I have separate Videos about that, otherwise I'll need to explain it from scratch in every single video
well done 👌👌
Can't make your project run, countless errors one after another
Have you tried Android Studio > File > Project Structure > SDK location > Gradle Settings > Add JDK > version 11 (install and apply)? It worked for me. If the intention was to just learn architecture I guess it's good quick workaround. Otherwise, yes, using old version of java does not look like a good idea
Thanks a lot, Sir❤
Could you please make a tutorial of how to make a web admin panel? If someone is using Kotlin and Firebase for their app as you knew already uploading and updating contents of the app from Firebase is not easy for everyone so please make a video tutorial on it.🙏😍❤
i'm having so much fun learning this stuff. just had to say it somewhere lol. sometimes youtube feels clouded with web development and this channel/community makes me feel "at home" with Android development. thank you philipp! might actually land this Android QA engineer position because of you lol.
As a former Android developer I confirm that this is very beautiful code design. Thanks for the video!
why did you leave android?
@@olohialli9289 I got an opportunity on my career path which I did not want to decline :)
BTW Kotlin is still my favorite programming language ;)
It was awesome
Excellent stuff. Thanks for the hard work. Great architecture, good explanations, covers a broad range of topics (from db storage, UI design, animation). Very enjoyable.
hey, in Spotify play list in video 13 there are more than 10 person have the same problem in comment of
"@Quang Đạt"
please if anyone can help
tell us
if u can't set Like to make philipp see it please..
Here!
Hey Philipp ,I've just subbed - very useful content - If I may suggest a very tiny ui improvement - whenever you expand the notes order menu - the menu icon could animate to a cross for example to create even more fluid ui experience :)
I was here first. Clean Architecture it is.
this is the best video I was watch!
Can you record the same video, but with using multumodule architecture?
Nope, this course covers multi-module arch: pl-coding.com/multi-module-course
@@PhilippLackner ok, thank you for your attention
Create a new class, create a new class, create a new class
hey i seem to have an error and i don''t why this is the error:
couldn't make a guess for lr.aym.notesapp.Feature_note.presentaion.add_edit_note.AddEditnoteviewmodel_HiltModules.BindsModule
if any one knows how to fix it please help and thank you
A lot of good stuff to learn. Good explanation. Thank you very much!
For the next one: I would find it much better, if you would develop the app incrementally.
Going through 2 hours of video to be able to run the app for the first time is hard.
Also, it is not the way, a beginner would implement apps.
You start with making the domain model, and first thing you do is coupling it with Room - the Data layer library. That's clearly not a good start of Clean Architecture tutorial, despite this video is for beginners
This is exactly what i wanted to ask him about. He should use mappers in this case
Totally agree on that. Outside of the data_source package there should be no reference to Room. As, in fact, Philipp himself explained it two minutes before adding Room references in the domain layer!
maybe
a pull request?
is there your course specific for Clean Architecture? fantastic series
Yes, this one :)
elopage.com/s/philipplackner/building-industry-level-apps-with-multi-module-architecture?locale=en
I liked comment about data structures and algorithms. You are absolutely right about this. Knowledge could be useful or useless. For mobile app development data structures and algorithms - useless knowledge. But probably for people who created Jetpack Compose and Android Studio this knowledge is important. But we do not develop Android Studio, we use Android Studio to develop.
Could you tell me how to use kotlin flow in a domain module that is pure java ?
Preview, preview, preview, preview, preview, preview. Please, don't forget to preview the UI during the tutorial.
Thanks:)
Can you share more details, probably some docs as well, as to why in the NoteDao file, getNote function is not a suspend function but all the rest are??
Congratulations man, it was an amamazing vídeo, thanks for share your knowledge
PLZ we need multi module clean arch
i know this video will help to like others.
1st 1,162th View 😄