Тёмный

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

Philipp Lackner
Подписаться 175 тыс.
Просмотров 257 тыс.
50% 1

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

Опубликовано:

 

22 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 536   
@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 RU-vid. 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!
@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 8 месяцев назад
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
@bassline2029
@bassline2029 2 года назад
Just graduated and this is the best course i could came across to get an idea about clean arch!! Good Job!!!
@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!
@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.
@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.
@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!!!
@morancha85
@morancha85 7 месяцев назад
Philipp, you are the absolute best! Your work is so appreciated! Really helpful and concise!
@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!
@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 🇨🇩
@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
@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!!!
@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 😄
@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!
@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.
@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!
@barneus
@barneus 2 года назад
Thank you Philipp! These videos are Solid Gold, please keep doing these videos
@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!
@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.
@satyajitmishra4809
@satyajitmishra4809 2 года назад
One of the most required videos for Android Developers
@noumanpervez7465
@noumanpervez7465 Год назад
I found this amazing, very well explained each and every concept. Thank you Philipp!!
@flowzk921
@flowzk921 2 года назад
Great Course Philipp! many thanks for creating and sharing this with the world!
@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.
@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
@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.
@Histats71
@Histats71 2 года назад
This is an amazing tutorial and what I need. Thank you man🔥
@jatinvashisht4293
@jatinvashisht4293 2 года назад
If I have to say one word, I would say: *Masterpiece*
@PhilippLackner
@PhilippLackner 2 года назад
Thanks a lot!
@nastenkaoo
@nastenkaoo Год назад
that is so helpful, danke schon for everything Phlipp Lackner
@NikNewNik
@NikNewNik 3 месяца назад
Thank you very much, Philipp!👍
@jatinvashisht4293
@jatinvashisht4293 2 года назад
Just finished video, what a wonderful video. Amazing 👏
@HaSeebpjr01
@HaSeebpjr01 16 дней назад
the best person with great voice, personality and knowledge in the planet. thanks for your great contents.
@alperencevlik3104
@alperencevlik3104 Год назад
This is the best video I watched on your youtube channel. Thanks for your support.
@jabrane1564
@jabrane1564 2 года назад
love the news letter idea ! Love the video too. Best android channel on RU-vid
@SampathKumar-fm4oy
@SampathKumar-fm4oy Год назад
Thank you very much, Philipp. It really helped me. ☺
@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
@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.
@vilmarcabanero2500
@vilmarcabanero2500 Год назад
Finished this video. Very helpful :)
@victoralmeida1583
@victoralmeida1583 11 месяцев назад
Amazing Clean Architecture and Android development explanations. Thank you.
@tomaslopez9999
@tomaslopez9999 6 месяцев назад
Thanks for putting together this tutorial. It's 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 !!
@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..
@original_anu
@original_anu 2 года назад
Thanks for all the effort you put into this for free. Much love
@PhilippLackner
@PhilippLackner 2 года назад
My pleasure!
@ahmedbasuoni3952
@ahmedbasuoni3952 2 года назад
This is an amazing tutorial and what I need. Thank you🥰❤
@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.
@sithumdasantha3147
@sithumdasantha3147 Год назад
Thanks for the video. Learned a lot. 💌
@roshanfx369
@roshanfx369 2 года назад
This is GOLD. Thank You!
@mattgraves3709
@mattgraves3709 2 года назад
Great video Phillip. Keep up the better practices. Love these style videos.
@PhilippLackner
@PhilippLackner 2 года назад
Thanks Matt!
@mohamedhussien2101
@mohamedhussien2101 Год назад
Thanks very much really helpful and helped me a lot in understanding some topics
@bhagavanreddy104
@bhagavanreddy104 Год назад
Very useful for me to understand the use cases..Thank you very much Philipp
@pascala3823
@pascala3823 Год назад
Thank you so much for this course!
@antonyfilochowski335
@antonyfilochowski335 2 месяца назад
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
@rajaarumugam2018
@rajaarumugam2018 11 месяцев назад
After watching this video, I can get knowledge about use cases with clean architecture. 👍 Very good job.. 👏👏🔥
@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!
@kazimd.saidul4212
@kazimd.saidul4212 2 года назад
Thanks for sharing clean architecture with MVVM. Please continue video with unit testing, UI tested,
@barcaOmessi
@barcaOmessi 2 года назад
That's an amazing content. Thank you so much Philip!
@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 🙂
@azizxushvaqtov947
@azizxushvaqtov947 Год назад
A massive thanks bro. Your videos are so helpful!
@amolaggarwal1979
@amolaggarwal1979 2 года назад
Thank you very much bro for your contribution to the developer community.
@amolaggarwal1979
@amolaggarwal1979 2 года назад
the content is awesome
@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.
@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 :-)
@Lwish
@Lwish Год назад
Thank you for this great course!
@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!
@ghiathalbawab7698
@ghiathalbawab7698 2 года назад
thank you, so much good stuff, I have had empathy for the newbies already
@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.
@maushamshrestha5328
@maushamshrestha5328 Год назад
Thank you Philipp. Great course. 🙂
@neon_code
@neon_code 2 года назад
You've earned yourself a new sub, awesome tutorial!
@AbdulWahab-kk1hs
@AbdulWahab-kk1hs 2 года назад
This is what I was looking for. Bunch of thanks ❤️
@PhilippLackner
@PhilippLackner 2 года назад
Glad I could help!
@antonsych4624
@antonsych4624 Год назад
Thank you, Philipp!!!
@onikhometuyatest6118
@onikhometuyatest6118 2 года назад
Most amazing Android video on the web!
@dimuthulakshan6910
@dimuthulakshan6910 2 года назад
Thank you very much, brother. it is a very good tutorial. Thank you once again .
@fazalulabid8483
@fazalulabid8483 Год назад
Thank You, Philipp!
@mahendranv6264
@mahendranv6264 2 года назад
As usual Amazing Stuff Again From Philip Bromance ❤️🤩
@abhishekvishwakarma6670
@abhishekvishwakarma6670 Год назад
Thank you soooo much for this powerful knowledge... you are great . Thank you for your efforts.
@manusarangal449
@manusarangal449 6 месяцев назад
Well done Sir. Learned a lot! :)
@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.
@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
@brky.kurtoglu
@brky.kurtoglu 2 года назад
Really really thank you, this video means a lot for us.
@rodrigogivisiez
@rodrigogivisiez 2 года назад
thanks for the video. I'm learning a lot from you
@arfinhosain
@arfinhosain 2 года назад
Great video, i the clean architecture implementation is now cleared to me
@erinwolf1563
@erinwolf1563 8 дней назад
Helped alot, thank you Philipp
@gilsonjuniorpro
@gilsonjuniorpro 2 года назад
Great video as always, Thank you
@rohitjakhar6672
@rohitjakhar6672 2 года назад
I really Enjoyed that course and watched 2 times.
@joelkibona9571
@joelkibona9571 8 месяцев назад
Awesome Course We need one merged in both Local Database and Network Requests Clean Architecture.
@mohammedalramlawi691
@mohammedalramlawi691 2 года назад
Thank you so much Philipp
@harisiqbal9120
@harisiqbal9120 2 года назад
Thanks phillip this video give me a solution for my project
@muneerhasan
@muneerhasan 2 года назад
Your English accent is awesome . It will grow fast among India developer.
@AntonioGonzalezsanchez
@AntonioGonzalezsanchez 2 года назад
This is a Masterclass on Android!
@user-ez4nm1ke1b
@user-ez4nm1ke1b 2 года назад
Thank you, A true teacher
@lokiksoni3519
@lokiksoni3519 2 года назад
I liked and enjoyed this video a lot. I specially logged in with google account to like this video. :)
Далее
Make Your Code Clean With the SOLID Principles
18:24
Просмотров 96 тыс.
Все про Dagger Hilt в Android Studio + Kotlin
52:11