You're Collecting Your Flows Wrong In Compose | THIS Is Why

Поделиться
HTML-код
  • Опубликовано: 15 апр 2023
  • In this video you'll learn how to correctly collect flows in jetpack compose with the new stable collectAsStateWithLifecycle function.
    ⭐ 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...
    Get my FREE PDF about 20 things you should never do in Jetpack Compose:
    pl-coding.com/jetpack-compose...
    💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks:
    pl-coding.com/drop-table-ment...
    Subscribe to my FREE newsletter for regular Android, Kotlin & Architecture advice!
    pl-coding.com/newsletter
    Join this channel to get access to perks:
    / @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...

Комментарии • 49

  • @style966
    @style966 Год назад +69

    Hey Philipp, thank you for such a nice explaination.
    Btw, you are repeating yourself at 6:22 .
    I am guessing there is editing issue.

  • @dpearson
    @dpearson Год назад +4

    Love hearing the explanation and seeing the examples. Great work. Thanks Phillip!

  • @devgabriel6898
    @devgabriel6898 Год назад

    Thanks Philip, you re my absolute Android mentor! Always waiting for your videos to come out.
    When i found a USD job (i have one, but in local currency which is garbage) i will definitely buy some of your courses

  • @king_vidda
    @king_vidda Год назад

    Them videos coming in 🔥🔥🔥 and educative... Thanks Philipp ❤️

  • @mircodev
    @mircodev Год назад

    Hey Philipp, many thanks for the clear explanation.

  • @ngomdecadetkamdaou3464
    @ngomdecadetkamdaou3464 Год назад

    Interesting, I read the documentation but didn't understand it like that. Now with your video, it's very clear.

  • @rizwansworld
    @rizwansworld 3 дня назад

    Thanks man. Really helpful.

  • @John-qt6qk
    @John-qt6qk 5 месяцев назад

    Great explanation with some use case examples thanks Phillip

  • @johnshepard1267
    @johnshepard1267 Год назад +7

    Great video! Please make more videos on flows and stateFlow and different best practises!

  • @olgaderyabina7519
    @olgaderyabina7519 9 месяцев назад

    Thanks very much, that's really helpful. I am currently doing some r&d with Kotlin multiplatform mobile and looking into sharing across both Android and iOS all the layers including the views (composables) and view models. In general, everything works great, but I still don't have an opinion on how to deal with the lifecycle thing you mentioned at the end of the video (definitely will need to spend more time on the iOS-side investigation). So far lifecycle-related events is the only phenomenon that requires so much attention in the multiplatform project 🙂

  • @BrunoMilhan
    @BrunoMilhan Год назад +1

    Thanks Philipp! And about implement a collector inside of a viewModel? I'm using a mutableStateList to fill my LazyColumn, so my approach was start a collector in vm and update my stateList from that.

  • @harshv.tewari6869
    @harshv.tewari6869 Год назад

    Thanks for sharing. It was helpful ^_^

  • @osisuper98
    @osisuper98 Год назад

    Much love bro!

  • @zohaibraza1365
    @zohaibraza1365 Год назад

    Nice Explanation 👍🏻

  • @tikayz
    @tikayz Год назад +1

    Thanks Phillip

  • @bofu9662
    @bofu9662 Год назад

    Nice video!!!

  • @samdroid37
    @samdroid37 Год назад

    you are a blessing

  • @il_benza
    @il_benza Год назад +1

    Can you explain in a video, difference between using MutableState and MutableStateFlow?

  • @mesutemrecelenk5447
    @mesutemrecelenk5447 Год назад

    Thanks Phlipp. Must we use to collect variables (for example list data) that in our state data class with collectAsStateWithLifecycle?

  • @federicocreti4699
    @federicocreti4699 5 месяцев назад +1

    Thank you Phillip..as always very nice video. I have a big doubt: figure we are handling our UI state with a class. So inside the class for example we have a list of something. The list is retrieved through a repository and figure it's come from room. Since we are handling all through a state class what we do is to collect the list from the view model and when we receive a new list we will update the state UI. The UI is collecting our state and not directly the list (which as we said is collected in the VM). Now even if the app goes in background the VM still collects update from repository. How do we handle this?

  • @chndraja
    @chndraja Год назад

    Hi Philipp Lackner, please make a video on how to handle the flow values emitted from Room Database. Should i use asStateFlow, or StateIn while collecting the flows from room database?
    Your previous video on flow mistake helped me to resolve a issue. thanks for the help.

    • @osisuper98
      @osisuper98 Год назад +2

      You should use “StateIn” operator since you will be having cold flows from ROOM and not hot flows (MutableStateFlows or MutableSharedFlows). If you then need to use the result with other flows (say hot flows declared in your viewmodel), you can combine all with the “combine” operator.

  • @VinayKumar-t6m5s
    @VinayKumar-t6m5s 4 дня назад

    How to recompose the screen when data saved to shared preference?.

  • @ramazanmutlu9911
    @ramazanmutlu9911 Год назад

    Hey Philip, first of all thank you for these perfect-explained videos. But I think those both have different use cases so we can't say that someone using it wrong.

    • @PhilippLackner
      @PhilippLackner  Год назад

      For Android it's certainly wrong. In which case would you not want to collect your flows with collectAsStateWithLifecycle?

  • @thencode8403
    @thencode8403 Год назад

    ❤❤

  • @iftak01
    @iftak01 2 месяца назад +1

    Does this Apply to STATEFLOWS too!??

  • @stijndcl
    @stijndcl Год назад

    At the end you mention that the lifecycles only exist on Android, and the regular version are for desktop. Wouldn't that mean that this issue is still present on desktop? What would be the fix there?

  • @LightDante
    @LightDante 11 месяцев назад

    Is there a better way than 5 seconds which is hardcode?

  • @dimii1_
    @dimii1_ Год назад

    Hey Philipp what is the theme you are using? How is it called?

    • @wetfloo
      @wetfloo Год назад

      it's xcode theme

  • @Shakesbeer1
    @Shakesbeer1 Год назад

    I would like to try launcher that you use at your device. Could you please share?

    • @PhilippLackner
      @PhilippLackner  Год назад

      I don't use a launcher

    • @Shakesbeer1
      @Shakesbeer1 Год назад

      @@PhilippLackner But icons have a particular style. Theme?

  • @arfinhosain4969
    @arfinhosain4969 Год назад +1

    oh, i just saw normal philipp for a second. 😁😁😁😁

  • @mr.chouhan_07
    @mr.chouhan_07 Год назад

    hey philipp I've used your coroutines with retrofit tutorial but I am facing a problem. the problem is that when we get our api response from enqueue we also get response in run and logcat which makes it easy to understand when If we are using lifecycleScope then nothing is showing response in run and logcat please help me (this is your tutorial link: ruclips.net/video/t6Sql3WMAnk/видео.html )

  • @stephanhaller
    @stephanhaller Год назад +1

    1st

  • @ChrisAthanas
    @ChrisAthanas Год назад

    Strange edits at 6 minute mark

  • @andreass7012
    @andreass7012 Год назад

    Why don`t you use new UI in studio?

  • @aldredo5543
    @aldredo5543 Год назад

    Thanks 🔥

  • @stefanusayudha1853
    @stefanusayudha1853 Год назад

    tobe honest this api is so ugly.. though it is working..
    i feel it so wrong..
    i believe the problem occurs because Garbage collector method is not suitable for declarative programming..
    Declarative programming need different methods to be optimized.. as the way it's nature should be.. delete memory once. scope is ends.. thats it.. everybody happy..
    Im starting to think that we have a very big problem here..
    don't get me wrong I'm just kinda frustrated, and even though it is working, i didn't feel it's helpful...
    i hope they get rid of this method soon, and back to nature.. it should be simple, thats the idea of why compose is been made

  • @nickvillareallycool5228
    @nickvillareallycool5228 Год назад

    I don't understand why you use StateFlow instead of just State and using the .value property directly. Is there a reason?

    • @PhilippLackner
      @PhilippLackner  Год назад

      StateFlow makes it easy to add reactivity to your state