No video

How to Make a Clean Architecture Cryptocurrency App (MVVM, Use Cases, Compose) - Android Studio

  Рет қаралды 258,297

Philipp Lackner

Philipp Lackner

Күн бұрын

In this video you will learn everything about building a clean architecture app from scratch in Android using Jetpack Compose.
⭐ Get certificates for your future job
⭐ Save countless hours of time
⭐ 100% money back guarantee for 30 days
⭐ Become a professional Android developer now:
pl-coding.com/premium-courses...
💻 Let me personally review your code and provide individual feedback, so it won't backfire and cost you a fortune in future:
elopage.com/s/philipplackner/...
Subscribe to my Android/Kotlin newsletter for regular free tips right in your inbox:
pl-coding.com/newsletter
Join this channel to get access to perks:
/ @philipplackner
Get the initial code for this video here:
github.com/philipplackner/Cry...
Get the code for the finished app here:
github.com/philipplackner/Cry...
Coin Paprika API:
coinpaprika.com
Get coins route:
api.coinpaprika.com/v1/coins
Get a coin by ID route:
api.coinpaprika.com/v1/coins/...
Regular live codings on Twitch:
/ philipplackner
Join my Discord server:
/ discord
Regular programming advice on my Instagram page: / _philipplackner_
Checkout my GitHub: github.com/philipplackner
You like my free content? Here you can buy me a coffee:
www.buymeacoffee.com/philippl...
00:00 - Introduction
06:10 - What is clean architecture and why to use it
10:39 - Setting up the package structure
16:48 - Implementing API & Models
27:06 - Creating the repository
31:06 - Implementing the Use Cases
39:14 - Setting up dependency injection
45:53 - Implementing the ViewModels
57:53 - Coin list screen
01:07:30 - Coin detail screen

Пікірлер: 539
@PhilippLackner
@PhilippLackner 2 жыл бұрын
2 little corrections from my side: 1. In this video I mapped the DTO to a model in the domain layer. You should rather do this in the data layer (in the repository) 2. The response handling should also rather be done in the repository (catching HttpException & IOException) as this is specific to Retrofit and the domain layer shouldn't know about that. Sorry that I didn't show that in the video, but I also never stop learning :)
@mdazharuddin4684
@mdazharuddin4684 2 жыл бұрын
So repository should return Resource?
@LakshyaMathersShady
@LakshyaMathersShady 2 жыл бұрын
@@mdazharuddin4684 Yes
@erolyildiz3693
@erolyildiz3693 2 жыл бұрын
can you upload the corrected codes as a new branch to the git, would be appreciated, thanks so much
@LakshyaMathersShady
@LakshyaMathersShady 2 жыл бұрын
@@erolyildiz3693 All you need to do is move the code from use case to repoImpl and handle calling code
@smnsrl
@smnsrl 2 жыл бұрын
Using coinId from the constants would also be better imho
@baijusharma6027
@baijusharma6027 2 жыл бұрын
Thank you, Philipp keeping this video free for the developers. It's a gold mine.
@PhilippLackner
@PhilippLackner 2 жыл бұрын
My pleasure!
@subramanianchenniappan4059
@subramanianchenniappan4059 7 ай бұрын
Yes
@disgruntled_llama
@disgruntled_llama 2 ай бұрын
This is the single most helpful video on Android development that I've found on KZfaq. It inspired me to buy some of your courses. When it comes right down to it, this is what the majority of Android apps do. Download something, then display more information about it when the user indicates.
@MohammedElotol
@MohammedElotol 2 жыл бұрын
Great work, thank you. But in 29:00 the main reason we create a repository interface (which is the Gateway in clean architecture terminology) is to invert the dependency so that the domain layer must no know anything about the outer layers including repositories (Gateway implementation) therefore repository interface abstract functions must return domain models instead of DTOs. this way we guarantee that we don't violate the DEPENDENCY RULE which is the most important thing in Clean architecture. Thank you again for your efforts.
@MohammedElotol
@MohammedElotol 2 жыл бұрын
And the job of RepositoryImpl functions are to work as an adapter and convert DTOs to domain models in addition to orchestrating data persistence and their exceptions.
@PhilippLackner
@PhilippLackner 2 жыл бұрын
@@MohammedElotol correct, thanks
@harrishmurugesan8869
@harrishmurugesan8869 Жыл бұрын
This is literally one of the best Android Related video i have ever seen! Learnt soo much from this mini project and your explanation is bloody brilliant!
@bassline2029
@bassline2029 2 жыл бұрын
Just graduated and this is the best course i could came across to get an idea about clean arch!! Good Job!!!
@Dibyendu.M
@Dibyendu.M 11 ай бұрын
Recently, I have completed this project (code along). As a beginner, there are so many things to learn. Thank you, mate.
@Eduardo-fx9ih
@Eduardo-fx9ih 9 ай бұрын
I believe this video is "mandatory" to see, for each Android developer looking to improve and implement Clean Architecture. Philipp you rocks!!!
@gabrielwahle2519
@gabrielwahle2519 2 жыл бұрын
Can't believe such quality content is available for free. Chapeaux and thank you, this is not common nowadays
@jimpauloovejera2599
@jimpauloovejera2599 2 жыл бұрын
I learnt a lot from this. One thing for sure everybody will love is a tutorial for handling Compose x Hilt scoping. Thank you for these free contents!
@johnpunzak8916
@johnpunzak8916 2 жыл бұрын
Thanks very much Phillipp! I enjoyed creating the app as I watched the video, and it worked great upon completion. Thanks for teaching about the architecture of apps. I cannot find content like this anywhere else!
@hardlife507
@hardlife507 2 жыл бұрын
Been a fan of your videos, since you had 4k subs. I been working on a stock app that is pretty far along and I became frustrated when I wanted to migrate some of my UI to jetpack compose. This is perfect and also helps me refactor some of my ugly code.
@ChrisAthanas
@ChrisAthanas 2 жыл бұрын
I just finished this course and have a SOLID handle on how to structure modern Android apps. I finally understand why and where to use Flows! And DTO's are much clearer. Also getting really good with compose now.
@morancha85
@morancha85 8 ай бұрын
Philipp, you are the absolute best! Your work is so appreciated! Really helpful and concise!
@eunjeongchoi5074
@eunjeongchoi5074 2 жыл бұрын
hello from S.Korea! I was struggling with my project trying to structure it in clean architecture and your video helped me so much!!! I think I finally got the idea ! thank you so much Philipp :D
@kinggeorges625
@kinggeorges625 2 жыл бұрын
Thaks for your high quality contents. I was just looking for this subject yesterday, and today I have it for free 😊. May God bless you and assist you in all your projects in life Peace ✌🏿 from Congo 🇨🇩
@codinginflow
@codinginflow 2 жыл бұрын
2017 - God activities 2021 - God ViewModels 2025 - God Use cases 2029 - ?
@shijilal
@shijilal 2 жыл бұрын
God Kotlin
@hellosagar
@hellosagar 2 жыл бұрын
Master!
@trocchiettoski
@trocchiettoski 2 жыл бұрын
God AI
@XarjunX
@XarjunX 2 жыл бұрын
God Composables
@gabrielvasconcelos4055
@gabrielvasconcelos4055 2 жыл бұрын
2025 will actually be Agent Smith Use cases, where your code base has use cases scattered all around that do the exact same thing
@KO7MO7
@KO7MO7 2 жыл бұрын
Thanks a lot! Your coding style is amazing, I really enjoy looking at it. I hope you know how people appreciate the hard work you have done!!! Best regards!!!
@programmingwithmati
@programmingwithmati 2 жыл бұрын
Mate! These tutorials are amazing! I can imagine how much effort these take! I do tutorials myself, more server backend oriented, but I'm learning from you to do Mobile apps with Kotlin! I'd love to partner with you for full-stack tutorials or development! Cheers!
@barneus
@barneus 2 жыл бұрын
Thank you Philipp! These videos are Solid Gold, please keep doing these videos
@karabomatsemela9196
@karabomatsemela9196 2 жыл бұрын
The best clean architecture using compose I've ever seen.
@vitorferreira5464
@vitorferreira5464 2 жыл бұрын
This is the best Clean Architecture tutorial I've ever seen. Thank you very much!
@alvaroisea2259
@alvaroisea2259 2 жыл бұрын
Thanks a lot for taking the time to makes this kind of videos, we developers really appreciate what you do and specially how you do it, big thanks!
@AcuScorp
@AcuScorp Жыл бұрын
you should start showing your app architectur using some diagramas not only talking. Not all is coding. To verify a clean architecture you need a good design. show prerequisites, the analysis, the design, the implementation and so on.
@user-uy8rw4yw1t
@user-uy8rw4yw1t 3 ай бұрын
I disagree. It's boring what you offer. Many hours discussions about two-three SQL tables
@AcuScorp
@AcuScorp 3 ай бұрын
That depends on how you present it. But thanks a lot for sharing your knowledge 😊
@audhil
@audhil 2 жыл бұрын
This guy shares all the topics which I start to explore every time! This video is a gem! Kudos & Respect!
@user-uy8rw4yw1t
@user-uy8rw4yw1t 4 ай бұрын
5 years university course would not cover all these topics!!!
@TomaszRykala
@TomaszRykala 2 жыл бұрын
Incredible work. I can't believe you typed all that code in one breath without launching the app until the very end. Super impressive and very very helpful. Thanks so much!
@TheZaurHasanov
@TheZaurHasanov Жыл бұрын
He is launching it in his brain automatically 😄
@sumitpatil339
@sumitpatil339 2 жыл бұрын
Thank you Philipp for such wonderful course. In video 28.11, We are using Data Layer DTO class in domain. This is the violation of Clean Architecture rules as domain layer is independent from all other layers. We need to change CoinRepository, GetCoinsUseCase, CoinRepositoryImpl and getCoinsUseCase to fix above suggested change.
@flowzk921
@flowzk921 2 жыл бұрын
Great Course Philipp! many thanks for creating and sharing this with the world!
@MKRN_2024
@MKRN_2024 2 жыл бұрын
Hey Philipp, thank you so much for this incredibly valuable content. I was wondering if you would mind creating another video series on Clean Architecture with D/B caching and possibly unit testing included some time in your next teaching journey. The reason is because I think it would solidify everyone's understanding on clean architecture (through repetition). If you make it a paid-course, I would still definitely not hesitate to buy it. But anyways, thank you so much.
@jabrane1564
@jabrane1564 2 жыл бұрын
love the news letter idea ! Love the video too. Best android channel on KZfaq
@noumanpervez7465
@noumanpervez7465 Жыл бұрын
I found this amazing, very well explained each and every concept. Thank you Philipp!!
@emmanuelpregnolato5026
@emmanuelpregnolato5026 2 жыл бұрын
Watching all the adds so you get something back. Thank you.
@JorgeSotoRamos
@JorgeSotoRamos 2 жыл бұрын
Really good project brother, you are a master I am quite new to developing Android Apps and I've never seen anyone doing a graphic interface like this. I always used XML activities but your video was really good and had clear code and explanation, I'm gonna keep watching your videos and trying to learn how to code like you, Thanks brother.
@satyajitmishra4809
@satyajitmishra4809 2 жыл бұрын
One of the most required videos for Android Developers
@HaSeebpjr01
@HaSeebpjr01 29 күн бұрын
the best person with great voice, personality and knowledge in the planet. thanks for your great contents.
@sahibjadatalibansari7365
@sahibjadatalibansari7365 2 жыл бұрын
So much informative movie. I did not realize that I am Studying. I am blown away by this 😲😲😲. After watching it in one go I was finding 1000 likes button.
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Thanks!
@alperencevlik3104
@alperencevlik3104 Жыл бұрын
This is the best video I watched on your youtube channel. Thanks for your support.
@jatinvashisht4293
@jatinvashisht4293 2 жыл бұрын
If I have to say one word, I would say: *Masterpiece*
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Thanks a lot!
@coldwolf5050
@coldwolf5050 2 жыл бұрын
Thank you for this. I just started to get into android with compose and this helps me understand why are certain things the way they are a little better :)
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Glad it helps!
@Histats71
@Histats71 2 жыл бұрын
This is an amazing tutorial and what I need. Thank you man🔥
@geanbrandao4987
@geanbrandao4987 2 жыл бұрын
Hi, great video, I loved it. I would like to see the UI/Unit tests being implemented in this project that uses clean architecture, that would be very helpful.
@user-bx9gy5zx5g
@user-bx9gy5zx5g Жыл бұрын
Its such a more valuable content and great at all time. It's clearly understandable. More to go. Thanks for the video @Philipp.
@dreamscrapedsicoverer
@dreamscrapedsicoverer 2 жыл бұрын
It is awesome to listen this topics from you and your logic. You are the best !!
@jatinvashisht4293
@jatinvashisht4293 2 жыл бұрын
Just finished video, what a wonderful video. Amazing 👏
@victoralmeida1583
@victoralmeida1583 Жыл бұрын
Amazing Clean Architecture and Android development explanations. Thank you.
@kimcherwoo
@kimcherwoo 2 жыл бұрын
Your video course is so good. Several levels beyond Google's text-only codelabs. They need to send you a 1 million dollar check for your positive impact on developer community.
@Crowward92
@Crowward92 2 жыл бұрын
Thank You Philipp. You have taught me so much about architectures. I have a very high paying and satisfying job because of you. Love and wishes for you.
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Congrats mate, glad my stuff helps!! :)
@gamesforu6619
@gamesforu6619 Жыл бұрын
Really the best explanation on youtube in clean arch in android
@rajaarumugam2018
@rajaarumugam2018 11 ай бұрын
After watching this video, I can get knowledge about use cases with clean architecture. 👍 Very good job.. 👏👏🔥
@justmeagain9302
@justmeagain9302 2 ай бұрын
this is so cool. I think this is my second time watching this video. I couldn't really get it at first then I "actually" learned the fundamentals like some prerequisite knowledge for this video and I manage to understand the concepts quite nicely.
@ubersticks
@ubersticks 2 жыл бұрын
This is a great lecture - it was a perfect amount of pasting vs. coding and a great example app that was simple but enough to cover all of the topics that I was interested in (Hilt, Compose, Clean, Use Cases). You are an excellent instructor. I had fun. Thank you!
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Thank you!!
@ubersticks
@ubersticks 2 жыл бұрын
@@PhilippLackner Enjoy your coffees
@NikNewNik
@NikNewNik 3 ай бұрын
Thank you very much, Philipp!👍
@tinythings677
@tinythings677 2 жыл бұрын
Finally, you use single activity and no fragment. Love it.
@PhilippLackner
@PhilippLackner 2 жыл бұрын
For jetpack compose nothing else makes sense
@jatinvashisht4293
@jatinvashisht4293 2 жыл бұрын
@@PhilippLackner okay, so this means we are out of the activity-fragmnet hell?
@PhilippLackner
@PhilippLackner 2 жыл бұрын
@@jatinvashisht4293 yea
@jatinvashisht4293
@jatinvashisht4293 2 жыл бұрын
@@PhilippLackner wow, that's very good actually 👏. BTW thanks for replying 🙂
@nastenkaoo
@nastenkaoo Жыл бұрын
that is so helpful, danke schon for everything Phlipp Lackner
@antonyfilochowski335
@antonyfilochowski335 3 ай бұрын
interesting & informative - especially enjoy the "reality" of real time error fixing in the code, on-the-fly decisions ("we'll put it here no, wait add it to main activity.." or whatever) - more fun 'cos spontaneity less boring than the standard classroom/presentation stuff - more natural in this "long form" 90 minute coding chat & code format well done thnx again
@tomaslopez9999
@tomaslopez9999 7 ай бұрын
Thanks for putting together this tutorial. It's very helpful.
@TheWasd124
@TheWasd124 2 жыл бұрын
Nice, Another app squished ;D Thanks, Philipp (still there are things that I don't quite understand but I think that you courses will help in that field, especially with discount) To the next App!
@sumithpattar4335
@sumithpattar4335 2 жыл бұрын
This is excellent video, learning ,coding and understanding 👏 Thanks so much 🙏
@andrew3937
@andrew3937 2 жыл бұрын
Dude, ths a lot, u cool, and video is cool too. I've just started working with compose and was looking how to make nice content loading state implementation. And as a result I got in my brain much more i can imagine. Applause..
@bhagavanreddy104
@bhagavanreddy104 Жыл бұрын
Very useful for me to understand the use cases..Thank you very much Philipp
@ahmedbasuoni3952
@ahmedbasuoni3952 2 жыл бұрын
This is an amazing tutorial and what I need. Thank you🥰❤
@SampathKumar-fm4oy
@SampathKumar-fm4oy Жыл бұрын
Thank you very much, Philipp. It really helped me. ☺
@francislegaspi2923
@francislegaspi2923 2 жыл бұрын
Wow! clearly explained, this is intermediate/senior dev stuff. I haven't touch Android in ages(Been developing Swift/iOS) and this is what I needed, Subscribed and already smashed bell button to you Sir :)
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Glad it was helpful!
@advitiayanand5974
@advitiayanand5974 Жыл бұрын
Definitely not senior lol. People like Philipp have lowered the barrier significantly. Nowadays every developer worth their salt is learning architecture patterns and best practices. I myself am a junior dev, and I think I'm already late to the party. Thanks a lot Philipp! Enjoy your content very much.
@mahendranv6264
@mahendranv6264 2 жыл бұрын
As usual Amazing Stuff Again From Philip Bromance ❤️🤩
@onikhometuyatest6118
@onikhometuyatest6118 2 жыл бұрын
Most amazing Android video on the web!
@muneerhasan
@muneerhasan 2 жыл бұрын
Your English accent is awesome . It will grow fast among India developer.
@CivoMT
@CivoMT 2 жыл бұрын
Hello, I just found your channel, and I really enjoyed it! Your way of explanation is really good, maybe sometimes I would go a bit deeper with explanation for example with dependency injections - what is it? It is common way to use it like you did? Real world comparison would be nice as well, but it is only my own point of view. I enjoyed your course and it gave me a lot of inspiration for next work! Keep going! I am going to watch your next videos thank you again :-)
@islammokrane3582
@islammokrane3582 2 жыл бұрын
Thank you so much bro, you are one of the best.. i learned a lot from you. Hope all the best for you.
@mattgraves3709
@mattgraves3709 2 жыл бұрын
Great video Phillip. Keep up the better practices. Love these style videos.
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Thanks Matt!
@roshanfx369
@roshanfx369 2 жыл бұрын
This is GOLD. Thank You!
@vilmarcabanero2500
@vilmarcabanero2500 Жыл бұрын
Finished this video. Very helpful :)
@ghiathalbawab7698
@ghiathalbawab7698 2 жыл бұрын
thank you, so much good stuff, I have had empathy for the newbies already
@barcaOmessi
@barcaOmessi 2 жыл бұрын
That's an amazing content. Thank you so much Philip!
@kazimd.saidul4212
@kazimd.saidul4212 2 жыл бұрын
Thanks for sharing clean architecture with MVVM. Please continue video with unit testing, UI tested,
@muindi.stephen
@muindi.stephen Жыл бұрын
I use the clean architecture to develop complex app for companies..👍 I like the tutorial
@amolaggarwal1979
@amolaggarwal1979 2 жыл бұрын
Thank you very much bro for your contribution to the developer community.
@amolaggarwal1979
@amolaggarwal1979 2 жыл бұрын
the content is awesome
@neon_code
@neon_code 2 жыл бұрын
You've earned yourself a new sub, awesome tutorial!
@original_anu
@original_anu 2 жыл бұрын
Thanks for all the effort you put into this for free. Much love
@PhilippLackner
@PhilippLackner 2 жыл бұрын
My pleasure!
@cosmicdioxide
@cosmicdioxide 22 күн бұрын
Hey man! I personally want to thank you for this great video. I'm in a process of switching career from QA to mobile dev and this video is incredibly helpful. Your explanations are very clear and understandable even for a total noob like me. Keep it up the good work! I still can't believe this video is free. You're actually doing God's work! Thank you so much!
@PhilippLackner
@PhilippLackner 22 күн бұрын
@@cosmicdioxide happy to help 🙏🙏
@CptDoge-rn3ou
@CptDoge-rn3ou 8 күн бұрын
Very helpful! Thank you very much for this!
@sithumdasantha3147
@sithumdasantha3147 Жыл бұрын
Thanks for the video. Learned a lot. 💌
@mohamedhussien2101
@mohamedhussien2101 Жыл бұрын
Thanks very much really helpful and helped me a lot in understanding some topics
@azizxushvaqtov947
@azizxushvaqtov947 Жыл бұрын
A massive thanks bro. Your videos are so helpful!
@miltonpimentel3769
@miltonpimentel3769 2 жыл бұрын
Hi all right, a video suggestion, apply unit tests throughout the app with best practices Congratulations for the excellent video
@go_better
@go_better Жыл бұрын
Thanks a lot! I will need some practice to completely undersrand it, but it makes sense. I only need understand presentation layer - VM-Activity/Fragment link, but I guess I can revisit your videos on the subject.
@pascala3823
@pascala3823 Жыл бұрын
Thank you so much for this course!
@manusarangal449
@manusarangal449 6 ай бұрын
Well done Sir. Learned a lot! :)
@antonsych4624
@antonsych4624 Жыл бұрын
Thank you, Philipp!!!
@lokiksoni3519
@lokiksoni3519 2 жыл бұрын
I liked and enjoyed this video a lot. I specially logged in with google account to like this video. :)
@arfinhosain
@arfinhosain 2 жыл бұрын
Great video, i the clean architecture implementation is now cleared to me
@LikeFactoryMade
@LikeFactoryMade 2 жыл бұрын
Awesome tutorial! Watched it till the end!
@rohitjakhar6672
@rohitjakhar6672 2 жыл бұрын
I really Enjoyed that course and watched 2 times.
@mattgraves3709
@mattgraves3709 2 жыл бұрын
How about a dive into Domain Driven Design / Development? May also help folks understand why we use "domain" as part of our architectural designs.
@morpheus4564
@morpheus4564 2 жыл бұрын
and TDD :)
@Lwish
@Lwish Жыл бұрын
Thank you for this great course!
@fazalulabid8483
@fazalulabid8483 Жыл бұрын
Thank You, Philipp!
@maushamshrestha5328
@maushamshrestha5328 Жыл бұрын
Thank you Philipp. Great course. 🙂
@devetips
@devetips 2 жыл бұрын
Sir No words to describe your efforts thank you from all the bottom of my heart. Soon I will subscribe 🌹🌹🌹👍👍
@AntonioGonzalezsanchez
@AntonioGonzalezsanchez 2 жыл бұрын
This is a Masterclass on Android!
@AbdulWahab-kk1hs
@AbdulWahab-kk1hs 2 жыл бұрын
This is what I was looking for. Bunch of thanks ❤️
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Glad I could help!
@dimuthulakshan6910
@dimuthulakshan6910 2 жыл бұрын
Thank you very much, brother. it is a very good tutorial. Thank you once again .
@path_ethics
@path_ethics 2 жыл бұрын
Thanks a lot for this free content! Just got curious about how to deal with that try catch blocks in a better way so we wouldn't need do have try catch all over the place.
MVVM vs. MVI - Understand the Difference Once and for All
18:40
Philipp Lackner
Рет қаралды 36 М.
小宇宙竟然尿裤子!#小丑#家庭#搞笑
00:26
家庭搞笑日记
Рет қаралды 15 МЛН
小蚂蚁被感动了!火影忍者 #佐助 #家庭
00:54
火影忍者一家
Рет қаралды 30 МЛН
Best KFC Homemade For My Son #cooking #shorts
00:58
BANKII
Рет қаралды 72 МЛН
Викторина от МАМЫ 🆘 | WICSUR #shorts
00:58
Бискас
Рет қаралды 5 МЛН
Make Your Code Clean With the SOLID Principles
18:24
Philipp Lackner
Рет қаралды 97 М.
Все про Dagger Hilt в Android Studio + Kotlin
52:11
Neco Ru
Рет қаралды 11 М.
Cleaner Code With Use Cases - The Full Guide
14:16
Philipp Lackner
Рет қаралды 50 М.
小宇宙竟然尿裤子!#小丑#家庭#搞笑
00:26
家庭搞笑日记
Рет қаралды 15 МЛН