No video

Async and Await - Kotlin Coroutines

  Рет қаралды 79,817

Philipp Lackner

Philipp Lackner

Күн бұрын

Пікірлер: 121
@iam-learning6374
@iam-learning6374 3 жыл бұрын
Just Conclusion of above video:: [For beginners only] there are basically two kind of execution 1. Sequential (Default) 2. Concurrent(achieved with async{} ) For instance if we have two function func1() & func2(), execution of func2() is dependent on func1() then in that case we can use default version of coroutine and if they are independent of each other then we can use concurrent with the help of async{} with the sequential execution we run the code sequentially so if func1() takes 5sec for execution and func2() takes 3 sec for execution then total elapsed time will be around 8 sec, however when this methods are independent and their results are not required for execution of other fun then in that case execution can be completed in 5 sec with the help of async(concurrent). Async vs launch: Async returns Deffered [Type:: calling function is returning] launch returns Job. await() -> methods are used to ensure the execution will go further until function is executed completely. [e.g func1().await()] We can also call async with LAZY pass below value in async constructor. val one = async(start = CoroutineStart.LAZY) { func1()) } one.start() // start the execution of func1 Reference link:: (Highly recommended: please watch this video before exploring below link) kotlinlang.org/docs/reference/coroutines/composing-suspending-functions.html
@Ilamarea
@Ilamarea 2 жыл бұрын
You are repeating a very incorrect statement that gets thrown around a lot with coroutines. All coroutines are sequential. What produces concurrent code are nested coroutines. Async does not produce concurrent code without nesting. It just returns the value. You decide how the code is blocked depending on where you put the .await() or .join() functions.
@sameeryadav8857
@sameeryadav8857 2 жыл бұрын
@@Ilamarea correct
@kahanbhalani3607
@kahanbhalani3607 2 жыл бұрын
This is the easiest explanation I've found on Kotlin Coroutines. Very, well done. 👏👏
@aviksutar
@aviksutar 3 жыл бұрын
whenever I starting watching your videos.I just press the like button first. :). Thank you for such simplicity
@PhilippLackner
@PhilippLackner 3 жыл бұрын
Thank you so much 😀
@warwickwestonwrigful
@warwickwestonwrigful 2 жыл бұрын
This video should have been extened to show how you would have updated a UI component with the data returned by the async function (in a thread safe manner)
@BurzowySzczurek
@BurzowySzczurek 6 ай бұрын
So I just watched the entire series (except android specific things because I don't make android apps) and I really helped a lot. I finally understood those thingies. I knew the async mechanics from other languages like Dart and a bit of JS but I had hard time mapping the Kotlin syntax to what was used to. This did really help.
@Ilamarea
@Ilamarea 2 жыл бұрын
I've read a whole bunch of blogs and posts and watched a ton of videos. This is the first thing that actually explains the difference between launch and async. Nice.
@aryanvikash1967
@aryanvikash1967 4 жыл бұрын
Omg where was you .. seriously u made it so simple for me.♥️
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Thaaaanks❤️
@norulesprateek
@norulesprateek 4 жыл бұрын
Neat explanation, understood the concept right away. Thanks!
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Glad you like it!
@jayceeddeyro1406
@jayceeddeyro1406 4 жыл бұрын
I love all your videos!!! I am still shock why still not enough views. This is quality content to be honest.
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Thank you!! ❤️ I think that's completely normal that KZbin needs its time to check who is actually serious with his videos and who not. In the long term my channel will grow
@jayceeddeyro1406
@jayceeddeyro1406 4 жыл бұрын
@@PhilippLackner I really hope it will. keep it up! Will wait for your more videos!
@PhilippLackner
@PhilippLackner 4 жыл бұрын
@@jayceeddeyro1406 thanks man, I will just keep going thanks to comments like yours🙏
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Hey man, would it be okay for you, if I use your comment as one of many testimonials on my future website?
@jayceeddeyro1406
@jayceeddeyro1406 4 жыл бұрын
@@PhilippLackner Yes of course! I am okay with it. Its my pleasure! :)
@aritrabhattacharya7722
@aritrabhattacharya7722 4 жыл бұрын
your coroutine series is the best Period
@SouthernPole
@SouthernPole 10 ай бұрын
you made coroutines so easy
@achyut_ft
@achyut_ft 8 ай бұрын
Great Explanation
@mahmoudabdelwahab1015
@mahmoudabdelwahab1015 4 жыл бұрын
علينا النعمه اسيادنا راضيين عليك Good Job dude really thank you very much
@dawoodamir2011
@dawoodamir2011 4 жыл бұрын
Very well explained man
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Thanks man!
@hossamqandel5638
@hossamqandel5638 2 жыл бұрын
Thanks Philipp for this ease and fully clear content ❤❤❤❤❤❤
@rajkumarsingh8664
@rajkumarsingh8664 3 жыл бұрын
Fantastic video. Keep smiling and keep rocking.
@sarthakgiri4596
@sarthakgiri4596 5 ай бұрын
great content Philip, you are awesome
@smreha
@smreha 2 жыл бұрын
Nicely explained. Thanks.
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Thanks :)
@ManishPatel3030
@ManishPatel3030 4 жыл бұрын
Very cool session. Thanks for this 👍
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Glad you enjoyed it!
@nanonkay5669
@nanonkay5669 2 жыл бұрын
I'm coming from web and my understanding is Deferred = Promise
@jordan2816
@jordan2816 4 жыл бұрын
it is better to explain more if you try val answer1 = async{networkCall1()}.await() val answer2 = async{networkCall2()}.await() the result should be different.
@VivekSharma-qw5ky
@VivekSharma-qw5ky 4 жыл бұрын
then they would give answer sequentially rather than parallelly
@sanD-xq8nb
@sanD-xq8nb 11 ай бұрын
@@VivekSharma-qw5ky Why it is so? Only the Deferred object run at the same time?
@renatoosousa
@renatoosousa 2 жыл бұрын
The best explanation. TY
@unaisulhadi9102
@unaisulhadi9102 4 жыл бұрын
Thanks for such a simplified, great tutorial :D Keep going, Also please make a tut about Dependency injection , Thanks
@Hrit
@Hrit 2 жыл бұрын
super clean explanation
@dbtechprojects2392
@dbtechprojects2392 3 жыл бұрын
Great tutorial which was helpful to me as a beginner, will be implementing this later :) thanks
@PhilippLackner
@PhilippLackner 3 жыл бұрын
You're very welcome!
@AlgeriaHere
@AlgeriaHere 4 жыл бұрын
great video so far , keep up the good work
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Thanks man🙏
@AlgeriaHere
@AlgeriaHere 4 жыл бұрын
i already knew little bit about coroutines before but after watching your videos , they are not that long but showed me valuable information and i will keep watching your videos , thank you
@moekyawoo9378
@moekyawoo9378 2 жыл бұрын
Nice explain..
@Raazvenga
@Raazvenga 4 жыл бұрын
Good Job. Explained it very well.
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Glad it was helpful!
@hi-rt4hc
@hi-rt4hc Жыл бұрын
thank you. understood fast
@NeitonSilva
@NeitonSilva 4 жыл бұрын
Thanks for the videos!
@PhilippLackner
@PhilippLackner 4 жыл бұрын
You're welcome!
@TungNguyen-id4gi
@TungNguyen-id4gi 3 жыл бұрын
thank u for your wonderful tutorial
@abuiman5251
@abuiman5251 2 жыл бұрын
Thanks bro!
@elpirato5428
@elpirato5428 3 жыл бұрын
thx for the best simple exapmles
@Kunal-jp8tn
@Kunal-jp8tn 2 жыл бұрын
Thanks for the tutorial!!!!!!!!!!
@siddharthdixit5009
@siddharthdixit5009 Жыл бұрын
Your all videos are just awesome .please create a udemy course on Android advanced topics please
@jonhdow4396
@jonhdow4396 3 жыл бұрын
very well explained.
@triihart
@triihart Жыл бұрын
gud content. i like it
@ahmedabolftouh3124
@ahmedabolftouh3124 3 жыл бұрын
Very nice 👍👍, you are simplyfying it very good
@MrRahulmalik
@MrRahulmalik 4 жыл бұрын
Hey please make a video on how to consume GraphQl api with Apollo using MVVM and coroutines
@sheffomp
@sheffomp 4 жыл бұрын
Nice Idea !
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Thanks for the suggestion
@soumayamondal6915
@soumayamondal6915 4 жыл бұрын
Thank you sir for your help
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Always welcome
@srikanthgutti5056
@srikanthgutti5056 3 жыл бұрын
Looking forward for your new udemy course
@mrpi230
@mrpi230 4 жыл бұрын
Thank You
@bboydarknesz
@bboydarknesz 4 жыл бұрын
wow It reminds me Javascript again.. async await..
@robertradi7364
@robertradi7364 4 жыл бұрын
well explained!
@lial2011
@lial2011 3 жыл бұрын
great tutorial
@PhilippLackner
@PhilippLackner 3 жыл бұрын
Thanks!
@srikanthgutti5056
@srikanthgutti5056 3 жыл бұрын
Here still i'm not clear why i should go for async when i can able to make both requests in 3 seconds using launch().
@mikec4220
@mikec4220 3 жыл бұрын
I guess because with async you have a much leaner code...
@nurshuvo3854
@nurshuvo3854 3 жыл бұрын
How will u do it?
@harshar6897
@harshar6897 3 жыл бұрын
👍
@xmoore5377
@xmoore5377 Жыл бұрын
mantap bang messi
@mohsenmashkour
@mohsenmashkour Жыл бұрын
thank you, Philipp but i did not get why we should use await?
@davidgreenwitch
@davidgreenwitch Жыл бұрын
Does the await call block until it finishes? So do we wait longer if network call 1 takes say 10 seconds? And only then we see call1 and2 (which took only 3 seconds)?
@brucebane7401
@brucebane7401 3 жыл бұрын
amazing!!!!!
@ajaygalagali5963
@ajaygalagali5963 3 жыл бұрын
:) Thanks
@PhilippLackner
@PhilippLackner 3 жыл бұрын
You're welcome!
@talhac2796
@talhac2796 Жыл бұрын
Why we should use async instead of launch?
@pavelb3734
@pavelb3734 4 жыл бұрын
one question, as you asked to ask- on your label picture of the channel at the video beginning (where a green android is)- the word "ANDROI" - is something like hand, "D" - is a body. But I am still confused what "EVS" is? PS. Videos are great, thank you)))
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Uhm read my name again and then look at the logo again😂
@mayanknagwanshi
@mayanknagwanshi Жыл бұрын
this is very different from javascript async await, I was thinking the await() function will block the code execution until the async function completes, in fact this is opposite
@minaisaac4529
@minaisaac4529 3 жыл бұрын
brilliant..but is there any use case for one "async" alone ?
@mikemikee7797
@mikemikee7797 4 жыл бұрын
GJ as always is there any chance to make a video about web sockets?
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Not planned currently, but someday I want to do something with client server communication
@danielcettour
@danielcettour 2 жыл бұрын
I'm in a fragment and after onCreate(), onCreateView() is called, the problem is that I need the data retrieved from the service in onCreate to use it in onCreateView, but what happens is that the code keeps going and crashes, the problem is that it has no data because is being obtained in the corrutine in onCreate, like your method. How can I wait for corrutines to retrieve data before continuing to onCreateView()? Hope I made myself clear, thank you!
@victory4627
@victory4627 3 жыл бұрын
Can you please make videos on Dagger because it's really hard to implement in real-life projects.
@AlfranAli
@AlfranAli Жыл бұрын
I think the async will create 2 separate threads and wait for it, in that case what is the use of suspend? In first way coroutine scope will run in a single thread for both network calls? I'm new to kotlin , someone please correct me if I'm wrong? How can we track how many threads are getting created, some good resources to read will be appreciated.
@rak590
@rak590 2 жыл бұрын
why did you hve to use globalscope coroutine? would we be able to do this without the global scope coroutine?
@poojanprajapati5553
@poojanprajapati5553 2 жыл бұрын
Is Deferred in kotlin and Future in flutter are same concepts?
@Whothefuckiskevin
@Whothefuckiskevin 2 жыл бұрын
What about using viewmodel scope launch? When I use it is not necesary use async and await
@abdoghania2273
@abdoghania2273 4 жыл бұрын
WorkManager Tutorial please
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Next project will be a bigger app, maybe after that
@guy1407
@guy1407 4 жыл бұрын
Hi, Thanks for your videos Why did you change from val to var and back to val Why cannot all your variables be var for the demos (unless you want to declare a constant, like the TAG during the program that does not change, and will not change) ? For example - time = 04:48, var answer1 , val job1 turns to val answer1 @ 05:12
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Only ever make a variable a var if you need to change it, everything else is a bad practice and is also marked by the IDE as a warning
@guy1407
@guy1407 4 жыл бұрын
@@PhilippLackner many thanks (peter?)
@cinemacom5161
@cinemacom5161 2 жыл бұрын
CONTROL + D !!
@vimaljames6440
@vimaljames6440 2 жыл бұрын
Why do we require to use GlobalScope.launch? Can we not write the coroutineScope {} ?
@mohammedoucif217
@mohammedoucif217 4 жыл бұрын
hi sir in the case when you use two launch functions you said we need to wait for both jobs to finish so the we don't see null for answer1 and answer2 .why !?
@mingato5538
@mingato5538 4 жыл бұрын
Make video about dependency injection took thank you in advance
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Check out my running tracker app
@ravinsinghjain6529
@ravinsinghjain6529 2 жыл бұрын
You said its bad practice but you did not mention why it is bad practice. Can you explain that ?
@ARIHANTJAIN27
@ARIHANTJAIN27 3 жыл бұрын
What is the meaning Deferred?
@joelmikha1792
@joelmikha1792 Жыл бұрын
Hi btw what imports you have in your project? Becuse i cannot use some methods/functions that you use for the video on my android kotlin project
@pavelb3734
@pavelb3734 4 жыл бұрын
Is it correct to use delay to simulate network calls instead of sleep? Because in fact network requests are blocking in common cases.
@PhilippLackner
@PhilippLackner 4 жыл бұрын
Network calls don't block the thread if you use them in coroutines
@narangkishore98
@narangkishore98 4 жыл бұрын
Tried using async and it said to include anko library and when did async was deprecated.
@FckYouPlz
@FckYouPlz 3 жыл бұрын
At 4:35 (the bad way) it took 3039 ms but in 6:41 (the better way) it took 3091 ms. Why?
@debashishmahato4591
@debashishmahato4591 4 жыл бұрын
Can we have 1 more video for async await??
@PhilippLackner
@PhilippLackner 4 жыл бұрын
What didn't you understand here?
@abdelrahmanesam3684
@abdelrahmanesam3684 4 жыл бұрын
what if i didnt call await ?
@Sk-gb2hx
@Sk-gb2hx 3 жыл бұрын
+
@arunenquiry
@arunenquiry 2 жыл бұрын
At 4:49 : why is this a bad practice?
@xmoore5377
@xmoore5377 Жыл бұрын
bibi aku cantik banget bang
lifecycleScope and viewModelScope - Kotlin Coroutines
6:25
Philipp Lackner
Рет қаралды 51 М.
I Rewrote This Entire Main File // Code Review
16:08
The Cherno
Рет қаралды 156 М.
طردت النملة من المنزل😡 ماذا فعل؟🥲
00:25
Cool Tool SHORTS Arabic
Рет қаралды 9 МЛН
Bony Just Wants To Take A Shower #animation
00:10
GREEN MAX
Рет қаралды 7 МЛН
КТО ЛЮБИТ ГРИБЫ?? #shorts
00:24
Паша Осадчий
Рет қаралды 883 М.
95% Don't Understand THIS About Coroutines (Main-Safety)
9:38
Philipp Lackner
Рет қаралды 27 М.
The Essence of Coroutines
8:10
Dave Leeds
Рет қаралды 9 М.
Javascript Promises vs Async Await EXPLAINED (in 5 minutes)
5:50
Roberts Dev Talk
Рет қаралды 576 М.
Let, Also, Apply, Run, With - Kotlin Scope Functions
11:44
Philipp Lackner
Рет қаралды 95 М.
Reactive Spring Boot With Kotlin Coroutines: Adding Virtual Threads
1:23:41
Kotlin by JetBrains
Рет қаралды 11 М.
MVVM vs. MVI - Understand the Difference Once and for All
18:40
Philipp Lackner
Рет қаралды 38 М.
Launch vs Async in Kotlin Coroutines
8:11
Amit Shekhar
Рет қаралды 8 М.
طردت النملة من المنزل😡 ماذا فعل؟🥲
00:25
Cool Tool SHORTS Arabic
Рет қаралды 9 МЛН