After watching about 2 hours of videos, yours is the one that finally makes me understand the purpose of ViewModel. Thanks!
@nuculabs9 ай бұрын
I was confused by View and ViewModel and Model but now it's so nicely explained that I can say that I finally get it, thank you!
@brianquigley19404 ай бұрын
Am I the only person who had to turn on captions? This guy has a lovely sounding voice, but I - me, personally! - had trouble with some of his pronunciation... e.g. I had never heard of Jetmuse (i.e. Jet News). NEVERTHELESS, it is a great video with a very clear explanation. Nice.
@miguelol Жыл бұрын
Great video! Nice Kurzgesagt easter-egg by the way!
@Narazgul Жыл бұрын
Nobody noticing the Kurzgesagt Merch? Ten points for Gryffindor, my friend! :D
@bitterjames Жыл бұрын
what does Kurzgesagt have to do with Harry Potter?
@incrizza7 ай бұрын
Tj's speaks so lovely. Thanks for this tip Cheers :D
@danielSafonyan10 ай бұрын
Best lecturer so far, thank you!
@12nileyfan Жыл бұрын
Thanks for these series of videos. they are indeed very useful to understand all the concepts in App Architecture.
@angelernesto802 жыл бұрын
another fan of Kurzgesagt! ❤️😄😄👏👏👏
@Warlax2 жыл бұрын
Great series. Will you guys cover the Domain layer?
@manuelvicnt2 жыл бұрын
Yes! It's coming soon :)
@donturner19282 жыл бұрын
It's here :) kzfaq.info/get/bejne/na-YnaaZmLucaH0.html
@RickertBrandsen2 жыл бұрын
Rocking the kurzgesagt shirt :D
@user-oy1ky3bo4t Жыл бұрын
Oh!!!!! I Really Understand!!!
@paulndibe2502 жыл бұрын
Nice, I hope there will be a code lab for after this series
@coldwolf50502 жыл бұрын
Very nice episode, short with all the important info.
@cyriltheandroid2 жыл бұрын
Those architecture videos are very interesting! Thanks!
@nima7605 Жыл бұрын
Thx for the great explanation.
@erinwolf15632 ай бұрын
Love the Edsheeran U.N.I part hehe 🥰
@SiamakAshrafi2 жыл бұрын
You should also talk about navigation at some point ...
@youdube1203 Жыл бұрын
great series , keep it up , follow you from Sudan
@michaelappiah-kubi2829 Жыл бұрын
Finally got this flow, thanks
@IncompleteTheory2 жыл бұрын
This is all well and fine with simple examples. But what if the UI state is more complex, for example with lists of objects containing other lists or even maps. Managing this with immutable data classes results in rather complex nested .copy() operations. What would be a best practice to break this up?
@martinmihalic86122 жыл бұрын
If you do the threading right, you won't have any negative impact on the performance. When you have a complex UI state, the complexity should be moved over to the domain layer (or even data layer) and you should be exposing multiple data sources to the ViewModel and just collect them as needed. However, you should be able to figure out the minor tweaks you need to do in order to match your own requirements and make your UI state more manageable. I would say that they just want to emphasize, through these simple examples, what is the best approach to make your app bulletproof and bug-free considering the platform limitations. If you ever encountered an Android app codebase that did not have an architectural rules and the state was managed everywhere across the codebase, you probably had lots of subtle issues that were not that easy to reproduce and that is something they are trying to help us with.
@IncompleteTheory2 жыл бұрын
@@martinmihalic8612 Thanks, your response got me thinking. I may not yet fully embrace the role of my ViewModel classes. Perhaps I'm enforcing too much of the domain relations onto the ViewModel classes.
@annelosch555 Жыл бұрын
As someone who is trying to learn Android Development, this is too over my head. It needs to be broken down more. After watching this, I still do not know what a UIState is.
@dillonsoul56352 жыл бұрын
Would you please add subtitles in future videos?
@heshansandeepa94714 ай бұрын
awesome
@smreha2 жыл бұрын
Domain Layer. When?
@sebastianb74962 жыл бұрын
Great video! Looking forward to the next episode!
@brianquigley19404 ай бұрын
When did "consume" become a synonym for "reads"? (e.g. consumes the new UI state.) Or "observable" and "exposed" for "API"? (e.g. exposed in an observable data holder.) Man, programming "terminology" evolves quicker than new programming languages!
@mohsenteymouri88522 жыл бұрын
Nice points. Thanks.
@user-cm8yx7xd7f Жыл бұрын
What others state holders exists, aside of viewModels?
@WaheedKhAn-mw8fo2 жыл бұрын
Awesome explanation waiting for the next episode.
@user-yj9qs7cs5r2 жыл бұрын
Боольшое спасибо автору,классное видео)
@mondoshigua Жыл бұрын
🇨🇴🙋🏻♂️👍🏼🤝🏼 Saludos desde Colombia
@muhammaddanial3954 Жыл бұрын
mannn i keep focusing on the pyramid up there!!!
@nomatter24442 жыл бұрын
Just a quastion, why you're using FlowState instead of ComposeState??
@vaibhavnalawade1612 жыл бұрын
FlowState can work as state in compose
@FrezoreR2 жыл бұрын
Isn't it wrong to call an activity an UI object?isnt it a controller and more akin to a main function. It's more of a has UI than is UI.
@thecsciworker291 Жыл бұрын
It's considered UI as its only purpose should be to display state accordingly, not manage it (which is a fundamental root cause to Android app performance, and state management issues [multiple source of truths]). Your "main function" in Android is actually your Application class, not Activities. Retrieving and transforming state for display should be delegated to state holders. Resist the temptation to operate on data in your Activities and Fragments. The most you should do, is use it as common source (if you hoist state), to pass down callbacks from your state holders. If you need Context, look to your Application Context. These updated series of videos and documentation explains it all very well. Adopting UDF principles has been the direction the Android team has been heading since they took a stance on Architecture back when they launched Architecture components.
@navczydev2 жыл бұрын
Great TJ
@zafar_codes2 жыл бұрын
Greeat!!! Thanks
@jeremywang3969 Жыл бұрын
nice
@levanhuy19922 жыл бұрын
I think the better practice is should replace StateFlow by LiveData, because the StateFlow doesn't keep the last value of state or IU data like LiveData
@sysadm852 жыл бұрын
You're wrong, StateFlow keep last value of data, StateFlow is very similar with SharedFlow(replies=1)
@levanhuy19922 жыл бұрын
@@sysadm85 sorry, i think there is my mistake. When restart fragment, the state flow will be initialized again, it will not keep the previous data. Anyway, it will be re-updated when re-fetching data and being observed inside lifecycle scope block.