Thank you so much! It's time to migrate my livedata to flow!
@no_one15004 жыл бұрын
saddd people are moving to flow etc etc and here i am learning livedata ....
@joaquimley4 жыл бұрын
@@no_one1500 Still valuable!
@houssemzaier3 жыл бұрын
you still need if you do databinding.
@goobar4 жыл бұрын
Bye bye AsyncTask 😀👋 .... Hello Coroutines!!
@buzzminkyunghoon38564 жыл бұрын
I will still use Async tasks in Flutter
@shaun.august4 жыл бұрын
bro, AsyncTask is not going nowhere, all what has changed is name and the way it works and executes in the background. AsyncTask is always there...and will be..
@areebjamaliam4 жыл бұрын
@@shaun.august LOL. That's r/mAndroid stuff
@edulgl4 жыл бұрын
@@shaun.august AsyncTask will be forever in our hearts
@harvey77714 жыл бұрын
AsyncTask: I've moved to behind the curtain. :D
@PatricioMoschcovich4 жыл бұрын
Great video! I am looking forward to learning more about coroutines
@igorg.86244 жыл бұрын
I am curious why your example observes LiveData or collects Flow directly in the Activity. Isn't it better to use a ViewModel?
@joaquimley4 жыл бұрын
Is it just me or in the first example the: val dbData = readFromDb() should've been "data"? Looks like you are "uploading" to the remote server, the variable is called "data" and it isn't declared in the fun's scope?
@kirill45314 жыл бұрын
yep
@ViTORossonero4 жыл бұрын
Snippet at 4:11 has an error: Single.just(readFromDb()) .subscribeOn(Schedulers.io()) is actually equivalent of Single.just(readFromDb()) .observeOn(Schedulers.io()) thus readFromDb() will be ran on the thread createWork is called(main?). And it's not about RxJava, it's about Kotlin(or Java): to call a function(Single.just) we have to calculate its parameters first.
@TheDnaitsirc4 жыл бұрын
So... Use or not LiveData? Will there be a stable decision?
@joaquimley4 жыл бұрын
For the UI layer? Yes. Anything else? No.
@TheDnaitsirc4 жыл бұрын
Not stable decision certainly. He says that in the video.
@yaroslavkulinich71554 жыл бұрын
@@TheDnaitsirc Flow is a stable decision for repository and data source levels. Livedata is for View and VIewModel levels. StateFlow and SharedFlow are not stable yet but it fully replaces LiveData on mentioned levels.
@dannicron4 жыл бұрын
So what is the rule for collecting flows in UI controllers? asLiveData().observe(..) when I want to observe hot streams as cold flows and lifecycleScope.launchWhenStarted when I observe e.g. database?
@mddi14203 жыл бұрын
It should be interesting to show also how to unit test it
@seshadripera4 жыл бұрын
Good alternative for AsyncTask 👍
@thurainbowin71643 жыл бұрын
omg... i am just understanding asynTask. It is now deprecated..
@pavneetsingh48094 жыл бұрын
So the live data and the flow (state, shared, channel, etc) will likely to coexist and won't converge?
@gi1dor4 жыл бұрын
I don't see any reason to use LiveData if you already use RxJava or Flow, except databindings (which I hope will be fixed at some point too)
@RhexGomez4 жыл бұрын
Databinding might become irrelevant if we fully switch to Compose. Although it is too early to say that.
@gi1dor4 жыл бұрын
@@RhexGomez Yes, but it doesn't related to original argument, that LiveData look not relevant if you have proper reactive library. If we talking about databinding, it doesn't mean that with release of Compose in 1-2 years magically all apps who use data bindings are disappeared or rewrite all code to compose
@pavneetsingh48094 жыл бұрын
@@gi1dor LiveData is lifecycle aware that makes it more efficient when being used in a activity or fragment. Foreseeing a library of lifecycle aware flow and channels, in case of no inbuilt support.
@gi1dor4 жыл бұрын
@@pavneetsingh4809 This sounds as repeating of some marketing, than actual argument. "lifecycle aware" just fancy words for subscribing and unsubscribing on particular lifecycle events, Flow not only lifecycle aware, it has structured concurrency which already works with Android lifecycle, and prevents leaks. Example from video about that LiveData unsubscribed on stop and resume on start can be implemented with 5 lines of code with Flow + LifecycleOwner. So no, it's not more efficient, it just has particular default behavior (which by the way not so easy to avoid)
@rpintellicus82233 жыл бұрын
You guys have made android tough to learn, can't you make it simpler
@user-ce1om8ku4v2 жыл бұрын
Thank you, best man!!
@LiranBarsisa4 жыл бұрын
How do you cancel a job via kotlin coroutines, in the same way you can do for AsyncTask? For when you have AsyncTask instance, you have a choice, of canceling with and without interruption. ON kotlin coroutines, I can see that you have to choose it when you create it. Is it correct?
@StreetsOfBoston4 жыл бұрын
Either call "cancel()" on the CoroutineScope that starts all your coroutines, or call "cancel()" on a "Job"/"Deferred" returned by the call to "launch" or "async" But "cancel()" will not interrupt a blocking thread. It will only cancel a suspending coroutine.
@serensis4 жыл бұрын
How can at the java?..Is it no way?! ㅠㅠ
@_checkit2 жыл бұрын
Nothing better than a new API to easily write gotcha code and break your app !
@mahavirprasad94764 жыл бұрын
Nice bro tq
@nogueirasjn4 жыл бұрын
Hello Coroutines!!!
@antoniokomangyudistira41504 жыл бұрын
Ugh my head goes 🤯🤯
@BrilTek4 жыл бұрын
Why?
@azulamazigh27894 жыл бұрын
me too
@isaimosso27644 жыл бұрын
Excellent!
@mahavirprasad94764 жыл бұрын
Tq bro
@CaioFaustino4 жыл бұрын
great video!
@mahavirprasad94764 жыл бұрын
Oh ..
@michaelnajera79584 жыл бұрын
I wish Swift had coroutines
@andreberenguel57534 жыл бұрын
Dispatchers are simpler
@rsolmenra62314 жыл бұрын
good
@hdkloh68574 жыл бұрын
Making Simple way more Complex
@okaymak4 жыл бұрын
Would have been nice if audio and video were in sync.
@tubtxheejlischannel724 жыл бұрын
how are you
@kirill45314 жыл бұрын
I used to write Android apps on Java but two years ago I switched to Flutter on Dart. And never regretted since then. Everything is so much easier in Flutter. I remember how AsyncTasks first appeared and became recommended, now its deprecated... I'm tired of it frankly speaking. Why should I learn Kotlin? Why should have created new programming language just for Android? Kotlin is not used anywhere else
@eliasb38573 жыл бұрын
It seems you took a long distance since you switched to Flutter. Anyways, kotlin isn't only for android, it's also used for multiplatform projects, you can have ios base code and create a backend with kotlin
@kirill45313 жыл бұрын
@@eliasb3857 does the backend language matter? You can create a backend on php, who cares, as long as it sends and receives the data
@eliasb38573 жыл бұрын
@@kirill4531 rofl, your statement was 'why they'd created a language only for Android'