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

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ม.ค. 2025

ความคิดเห็น • 538

  • @PhilippLackner
    @PhilippLackner  3 ปีที่แล้ว +247

    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 3 ปีที่แล้ว

      So repository should return Resource?

    • @LakshyaMathersShady
      @LakshyaMathersShady 3 ปีที่แล้ว +2

      @@mdazharuddin4684 Yes

    • @erolyildiz3693
      @erolyildiz3693 3 ปีที่แล้ว +19

      can you upload the corrected codes as a new branch to the git, would be appreciated, thanks so much

    • @LakshyaMathersShady
      @LakshyaMathersShady 3 ปีที่แล้ว

      @@erolyildiz3693 All you need to do is move the code from use case to repoImpl and handle calling code

    • @smnsrl
      @smnsrl 3 ปีที่แล้ว

      Using coinId from the constants would also be better imho

  • @baijusharma6027
    @baijusharma6027 3 ปีที่แล้ว +135

    Thank you, Philipp keeping this video free for the developers. It's a gold mine.

    • @PhilippLackner
      @PhilippLackner  3 ปีที่แล้ว +20

      My pleasure!

    • @subramanianchenniappan4059
      @subramanianchenniappan4059 ปีที่แล้ว +1

      Yes

    • @disgruntled_llama
      @disgruntled_llama 8 หลายเดือนก่อน

      This is the single most helpful video on Android development that I've found on TH-cam. 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 ปีที่แล้ว +19

    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 ปีที่แล้ว +4

      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 ปีที่แล้ว +3

      @@MohammedElotol correct, thanks

  • @harrishmurugesan8869
    @harrishmurugesan8869 2 ปีที่แล้ว +6

    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!

  • @Eduardo-fx9ih
    @Eduardo-fx9ih ปีที่แล้ว +2

    I believe this video is "mandatory" to see, for each Android developer looking to improve and implement Clean Architecture. Philipp you rocks!!!

  • @Dibyendu.M
    @Dibyendu.M ปีที่แล้ว +2

    Recently, I have completed this project (code along). As a beginner, there are so many things to learn. Thank you, mate.

  • @bassline2029
    @bassline2029 3 ปีที่แล้ว +1

    Just graduated and this is the best course i could came across to get an idea about clean arch!! Good Job!!!

  • @HaSeebpjr01
    @HaSeebpjr01 6 หลายเดือนก่อน +1

    the best person with great voice, personality and knowledge in the planet. thanks for your great contents.

  • @tinythings677
    @tinythings677 3 ปีที่แล้ว +3

    Finally, you use single activity and no fragment. Love it.

    • @PhilippLackner
      @PhilippLackner  3 ปีที่แล้ว

      For jetpack compose nothing else makes sense

    • @jatinvashisht4293
      @jatinvashisht4293 3 ปีที่แล้ว

      @@PhilippLackner okay, so this means we are out of the activity-fragmnet hell?

    • @PhilippLackner
      @PhilippLackner  3 ปีที่แล้ว

      @@jatinvashisht4293 yea

    • @jatinvashisht4293
      @jatinvashisht4293 3 ปีที่แล้ว

      @@PhilippLackner wow, that's very good actually 👏.
      BTW thanks for replying 🙂

  • @morancha85
    @morancha85 ปีที่แล้ว +2

    Philipp, you are the absolute best! Your work is so appreciated! Really helpful and concise!

  • @gabrielwahle2519
    @gabrielwahle2519 3 ปีที่แล้ว +2

    Can't believe such quality content is available for free.
    Chapeaux and thank you, this is not common nowadays

  • @TomaszRykala
    @TomaszRykala 2 ปีที่แล้ว +1

    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 ปีที่แล้ว +1

      He is launching it in his brain automatically 😄

  • @audhil
    @audhil 3 ปีที่แล้ว +5

    This guy shares all the topics which I start to explore every time! This video is a gem! Kudos & Respect!

  • @satyajitmishra4809
    @satyajitmishra4809 2 ปีที่แล้ว

    One of the most required videos for Android Developers

  • @ChrisAthanas
    @ChrisAthanas 2 ปีที่แล้ว +1

    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.

  • @muneerhasan
    @muneerhasan 3 ปีที่แล้ว

    Your English accent is awesome . It will grow fast among India developer.

  • @karabomatsemela9196
    @karabomatsemela9196 2 ปีที่แล้ว

    The best clean architecture using compose I've ever seen.

  • @sumit180288
    @sumit180288 ปีที่แล้ว +1

    As you said in your comment that Repository should return the Response objects. Will this same architecture work for the data source which itself returns a flow for example Room database?

  • @sumitpatil339
    @sumitpatil339 2 ปีที่แล้ว +3

    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.

  • @jatinvashisht4293
    @jatinvashisht4293 3 ปีที่แล้ว +8

    If I have to say one word, I would say:
    *Masterpiece*

  • @sahibjadatalibansari7365
    @sahibjadatalibansari7365 3 ปีที่แล้ว +1

    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.

  • @kinggeorges625
    @kinggeorges625 3 ปีที่แล้ว +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 🇨🇩

  • @emmanuelpregnolato5026
    @emmanuelpregnolato5026 2 ปีที่แล้ว

    Watching all the adds so you get something back.
    Thank you.

  • @codinginflow
    @codinginflow 3 ปีที่แล้ว +91

    2017 - God activities
    2021 - God ViewModels
    2025 - God Use cases
    2029 - ?

    • @shijilal
      @shijilal 3 ปีที่แล้ว +5

      God Kotlin

    • @hellosagar
      @hellosagar 3 ปีที่แล้ว +1

      Master!

    • @trocchiettoski
      @trocchiettoski 3 ปีที่แล้ว

      God AI

    • @XarjunX
      @XarjunX 3 ปีที่แล้ว +15

      God Composables

    • @gabrielvasconcelos4055
      @gabrielvasconcelos4055 3 ปีที่แล้ว

      2025 will actually be Agent Smith Use cases, where your code base has use cases scattered all around that do the exact same thing

  • @tonnie7079
    @tonnie7079 3 ปีที่แล้ว

    I am halfway through this video n guess what? ... I'm totally blown off - it is like a good dream that I don't want to end. Clear explanations, top Android tricks n concrete Android Architecture. And this is what I plan to do on finishing - first I will Like, the second thing is to share with the whole world, thirdly subscribe ... in short I will click every button underneath this great video including 'Break-Up with ur Girlfriend' button if I see it.

  • @cosmicdioxide
    @cosmicdioxide 5 หลายเดือนก่อน

    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  5 หลายเดือนก่อน +1

      @@cosmicdioxide happy to help 🙏🙏

  • @amolaggarwal1979
    @amolaggarwal1979 2 ปีที่แล้ว +1

    Thank you very much bro for your contribution to the developer community.

  • @jimpauloovejera2599
    @jimpauloovejera2599 3 ปีที่แล้ว

    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!

  • @chianjia99
    @chianjia99 2 ปีที่แล้ว

    12:54
    what is Resource Class?
    did u make it or any reference that i can find for further study?

  • @kimcherwoo
    @kimcherwoo 2 ปีที่แล้ว +1

    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.

  • @victoralmeida1583
    @victoralmeida1583 ปีที่แล้ว +1

    Amazing Clean Architecture and Android development explanations.
    Thank you.

  • @Crowbaen
    @Crowbaen 2 ปีที่แล้ว +1

    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 ปีที่แล้ว +2

      Congrats mate, glad my stuff helps!! :)

  • @alperencevlik3104
    @alperencevlik3104 ปีที่แล้ว

    This is the best video I watched on your youtube channel. Thanks for your support.

  • @antonyfilochowski335
    @antonyfilochowski335 8 หลายเดือนก่อน

    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

  • @gamesforu6619
    @gamesforu6619 2 ปีที่แล้ว

    Really the best explanation on youtube in clean arch in android

  • @vitorferreira5464
    @vitorferreira5464 3 ปีที่แล้ว

    This is the best Clean Architecture tutorial I've ever seen. Thank you very much!

  • @barneus
    @barneus 3 ปีที่แล้ว +1

    Thank you Philipp! These videos are Solid Gold, please keep doing these videos

  • @programmingwithmati
    @programmingwithmati 3 ปีที่แล้ว +6

    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!

  • @eunjeongchoi5074
    @eunjeongchoi5074 3 ปีที่แล้ว

    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 ปีที่แล้ว +1

    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!!!

  • @YassinSuper13
    @YassinSuper13 ปีที่แล้ว +1

    great we must create use cases module in di package to inject it in view model

  • @jabrane1564
    @jabrane1564 3 ปีที่แล้ว

    love the news letter idea !
    Love the video too. Best android channel on TH-cam

  • @jatinvashisht4293
    @jatinvashisht4293 3 ปีที่แล้ว +1

    Just finished video, what a wonderful video.
    Amazing 👏

  • @geanbrandao4987
    @geanbrandao4987 3 ปีที่แล้ว +10

    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.

  • @muindi.stephen
    @muindi.stephen 2 ปีที่แล้ว +1

    I use the clean architecture to develop complex app for companies..👍 I like the tutorial

  • @rajaarumugam2018
    @rajaarumugam2018 ปีที่แล้ว

    After watching this video, I can get knowledge about use cases with clean architecture. 👍
    Very good job.. 👏👏🔥

  • @miltonpimentel3769
    @miltonpimentel3769 3 ปีที่แล้ว

    Hi all right, a video suggestion, apply unit tests throughout the app with best practices
    Congratulations for the excellent video

  • @johnpunzak8916
    @johnpunzak8916 3 ปีที่แล้ว

    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!

  • @NikNewNik
    @NikNewNik 8 หลายเดือนก่อน +1

    Thank you very much, Philipp!👍

  • @coldwolf5050
    @coldwolf5050 3 ปีที่แล้ว +1

    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 :)

  • @francislegaspi2923
    @francislegaspi2923 3 ปีที่แล้ว +1

    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  3 ปีที่แล้ว +1

      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.

  • @LUNAR_GRAVITY
    @LUNAR_GRAVITY 3 ปีที่แล้ว +10

    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.

  • @dreamscrapedsicoverer
    @dreamscrapedsicoverer 2 ปีที่แล้ว

    It is awesome to listen this topics from you and your logic. You are the best !!

  • @ubersticks
    @ubersticks 3 ปีที่แล้ว +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  3 ปีที่แล้ว

      Thank you!!

    • @ubersticks
      @ubersticks 3 ปีที่แล้ว

      @@PhilippLackner Enjoy your coffees

  • @alvaroisea2259
    @alvaroisea2259 3 ปีที่แล้ว

    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!

  • @matt-g-recovers
    @matt-g-recovers 3 ปีที่แล้ว +8

    How about a dive into Domain Driven Design / Development?
    May also help folks understand why we use "domain" as part of our architectural designs.

  • @bhagavanreddy104
    @bhagavanreddy104 ปีที่แล้ว

    Very useful for me to understand the use cases..Thank you very much Philipp

  • @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!

  • @mohamedhussien2101
    @mohamedhussien2101 ปีที่แล้ว

    I have worked on my own do the whole instruction from this course and learned a lot of stuff, Can I share what I have learned with my Git?

  • @joelkibona9571
    @joelkibona9571 ปีที่แล้ว

    Awesome Course
    We need one merged in both Local Database and Network Requests Clean Architecture.

  • @kazimd.saidul4212
    @kazimd.saidul4212 3 ปีที่แล้ว

    Thanks for sharing clean architecture with MVVM.
    Please continue video with unit testing, UI tested,

  • @lokiksoni3519
    @lokiksoni3519 3 ปีที่แล้ว

    I liked and enjoyed this video a lot.
    I specially logged in with google account to like this video. :)

  • @hardlife507
    @hardlife507 3 ปีที่แล้ว

    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.

  • @sankalpchauhan5884
    @sankalpchauhan5884 2 ปีที่แล้ว +9

    I think you interchanged the definitions of DTO and models at 16:00. Model is the one that contains our api response and dto is used to transform that response for our ui. That’s why it’s called a Data Transfer Object because it transfers the data from one layer of our application to another, while model contains real life entities.

  • @changhaowu1644
    @changhaowu1644 ปีที่แล้ว

    Probably one of the bets courses that i have done ... Thank you!

  • @tomaslopez9999
    @tomaslopez9999 ปีที่แล้ว

    Thanks for putting together this tutorial. It's very helpful.

  • @sijanneupane
    @sijanneupane 3 ปีที่แล้ว +8

    Me (Yesterday on Philip's dm) : It's hard to understand MVVM,
    Philip (early morning) : Boom! You looking for this?

  • @onikhometuyatest6118
    @onikhometuyatest6118 2 ปีที่แล้ว

    Most amazing Android video on the web!

  • @VikashSingh-dn7kk
    @VikashSingh-dn7kk 3 ปีที่แล้ว +2

    Really nice video 👍👍

  • @masatoshitakada760
    @masatoshitakada760 2 ปีที่แล้ว +1

    Thank you for this awesome tutorial!
    Just one question below
    Is there any usage on the saveStateHandle of ConinDetailViewModel? since it doesn't seem to be set from anywhere

  • @lucyanxyz
    @lucyanxyz ปีที่แล้ว

    Really enjoyed watching your video on structuring the app using MVVM. I just have 2 notes on extending this further and have the dependencies between layers unidirectional:
    1. Data Acces should not depend on the Domain and therefore I would create the mapping between DTOs and Models in the domain: Coin.fromDTO(coinDTO: CoinDTO): Coin
    2. I would move the CoinRepository interface in the Data Access layer for the same reason as above

    • @PhilippLackner
      @PhilippLackner  ปีที่แล้ว +1

      Then you misunderstood something. It's the other way around, domain shouldn't depend on data. Any layer can access domain

    • @lucyanxyz
      @lucyanxyz ปีที่แล้ว

      You are right. Thanks

  • @noumanpervez7465
    @noumanpervez7465 2 ปีที่แล้ว

    I found this amazing, very well explained each and every concept. Thank you Philipp!!

  • @alishanvaliani9952
    @alishanvaliani9952 3 ปีที่แล้ว

    More Such videos, please!!!
    You are amazing Android Teacher!!! Respect!

  • @AntonioGonzalezsanchez
    @AntonioGonzalezsanchez 3 ปีที่แล้ว

    This is a Masterclass on Android!

  • @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.

  • @original_anu
    @original_anu 3 ปีที่แล้ว

    Thanks for all the effort you put into this for free. Much love

  • @mahendranv6264
    @mahendranv6264 3 ปีที่แล้ว +1

    As usual Amazing Stuff Again From Philip Bromance ❤️🤩

  • @samferrer
    @samferrer 3 ปีที่แล้ว

    Wonderful... just one thing missing ... a graph representing the web of dependencies ... shown along the video ... so one can follow the logic visually

  • @matt-g-recovers
    @matt-g-recovers 3 ปีที่แล้ว +1

    Great video Phillip.
    Keep up the better practices.
    Love these style videos.

  • @VratislavJindra
    @VratislavJindra 3 ปีที่แล้ว +2

    36:53 How would you approach the case when the e.localizedMessage is null and you still wanted to provide a localized custom error message to the user? To access a string resource, you would need a reference to Context (injected via constructor maybe?). What's the best approach here?

  • @Srinivasan-i5w
    @Srinivasan-i5w ปีที่แล้ว

    Its such a more valuable content and great at all time. It's clearly understandable. More to go. Thanks for the video @Philipp.

  • @sumithpattar4335
    @sumithpattar4335 3 ปีที่แล้ว

    This is excellent video, learning ,coding and understanding 👏 Thanks so much 🙏

  • @AcuScorp
    @AcuScorp ปีที่แล้ว +16

    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.

    • @СергейБезногов-т6у
      @СергейБезногов-т6у 9 หลายเดือนก่อน +3

      I disagree. It's boring what you offer. Many hours discussions about two-three SQL tables

    • @AcuScorp
      @AcuScorp 9 หลายเดือนก่อน +2

      That depends on how you present it. But thanks a lot for sharing your knowledge 😊

  • @nastenkaoo
    @nastenkaoo ปีที่แล้ว

    that is so helpful, danke schon for everything Phlipp Lackner

  • @flowzk921
    @flowzk921 3 ปีที่แล้ว

    Great Course Philipp! many thanks for creating and sharing this with the world!

  • @j1nMatt
    @j1nMatt 2 ปีที่แล้ว

    Man...thats a lot of folders! Great video btw. Will be great if you can make a video for just basics of making API calls without all these complexities?

  • @DeepakGupta-jr5gy
    @DeepakGupta-jr5gy ปีที่แล้ว

    Hi, great video, I loved it.
    I would like to see the one that uses clean architecture, that would be very helpful.

  • @rohitjakhar6672
    @rohitjakhar6672 3 ปีที่แล้ว

    I really Enjoyed that course and watched 2 times.

  • @neon_code
    @neon_code 2 ปีที่แล้ว

    You've earned yourself a new sub, awesome tutorial!

  • @roshanfx369
    @roshanfx369 3 ปีที่แล้ว

    This is GOLD. Thank You!

  • @abhishekvishwakarma6670
    @abhishekvishwakarma6670 2 ปีที่แล้ว

    Thank you soooo much for this powerful knowledge... you are great . Thank you for your efforts.

  • @vilmarcabanero2500
    @vilmarcabanero2500 ปีที่แล้ว

    Finished this video. Very helpful :)

  • @sawoodahmed9396
    @sawoodahmed9396 3 ปีที่แล้ว +2

    Hello Philip thank you for providing this for free hope you remember me iam the one which said that your course is paid and you should put some free content on TH-cam but
    Form last month I built a simple ecommerce app for on of my friends
    It was so hard for me to build it but some how I built it but yesterday he called me and asked me to add some 5 to 6 features for free I was so angry at him and banged the phone at him and I understood how
    You felt when I asked you to provide
    Your amazing skills for free I apologise for it I hope you will forgive me and thank you for being an inspiration for android developers ❤️❤️❤️

    • @PhilippLackner
      @PhilippLackner  3 ปีที่แล้ว

      everybody needs to put food on their table. Thanks and you're welcome, happy learning

    • @sawoodahmed9396
      @sawoodahmed9396 3 ปีที่แล้ว

      @@PhilippLackner Thanks bro I was so annoying right when I said to put paid course for free I apologise for it and pls give me a heart if you give me a heart I will know you are not angry at me now❤️❤️

    • @sawoodahmed9396
      @sawoodahmed9396 3 ปีที่แล้ว

      Thank you brother

  • @sithumdasantha3147
    @sithumdasantha3147 ปีที่แล้ว

    Thanks for the video. Learned a lot. 💌

  • @pascala3823
    @pascala3823 2 ปีที่แล้ว

    Thank you so much for this course!

  • @AmitVerma-iq3oe
    @AmitVerma-iq3oe 2 ปีที่แล้ว

    hey @philipn thanks for making this video , you making android developer be a better and better everyday thanks for this

  • @manusarangal449
    @manusarangal449 11 หลายเดือนก่อน

    Well done Sir. Learned a lot! :)

  • @quantumgaming7
    @quantumgaming7 2 ปีที่แล้ว

    Most amazing video on android I watched till date

  • @andrew3937
    @andrew3937 3 ปีที่แล้ว

    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..

  • @maushamshrestha5328
    @maushamshrestha5328 ปีที่แล้ว

    Thank you Philipp. Great course. 🙂