Performance Optimization with @Stable and @Immutable in Jetpack Compose

  Рет қаралды 20,609

Philipp Lackner

Philipp Lackner

6 ай бұрын

In this video you will learn how you can optimize your performance with Stable and Immutable in Jet Compose.
💻 Let me be your mentor and become an industry-ready Android developer in 10 weeks:
pl-coding.com/drop-table-ment...
⭐ Courses with real-life practices
⭐ 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...
Regular programming advice on my Instagram page: / _philipplackner_
Join my Discord server:
/ discord

Пікірлер: 39
@nguyenvietquang2065
@nguyenvietquang2065 6 ай бұрын
Some facts i learned about recomposition: - var is always considered Unstable. It is the same concept with Phillip's List example. - viewModel is always unstable. - lambda may be stable or not, based on every "global" object you use inside it, for example using viewModel or var (not mutable state) will cause the function unskipable. For details, lambdas are anonymous classes keeping 1) the lambda content itself and 2) every objects that lambda is using other than parameters itself holds P/s: Overusing @Stable and @Immutable will sometimes make funny moments when your UI seems to not update instead log say yes 😂
@kinggeorges625
@kinggeorges625 6 ай бұрын
Thanks for the video. Can't wait for another full project tutorial
@yuuzuX
@yuuzuX 6 ай бұрын
Thank you for helping us to boost up our app performance.
@RahulKumar-un6ur
@RahulKumar-un6ur 6 ай бұрын
Awesome...Philipp...😎😎
@user-eq2um3jv9y
@user-eq2um3jv9y 6 ай бұрын
Great video. Honestly seems a bit silly to have to wrap a list with a state class just to mark it as stable. Would be awesome if we can eventually just annotate single params like you did at 6:38. Will probably stick to the ImmutableList approach because of this (provided the list doesn't merge well into an existing state)
@unknownBoy85lover
@unknownBoy85lover 6 ай бұрын
It's great for me that I started compose thank you sir
@shahriarzaman4715
@shahriarzaman4715 6 ай бұрын
Every youtuber: How to make a simple todo list app in jetpack compose Philipp: Hey guys! Let's learn some advance topic Me: Why philipp is not uploading new video!!
@mortezamgh1347
@mortezamgh1347 Ай бұрын
Thanks, that was very helpful
@nayabsarfraz586
@nayabsarfraz586 6 ай бұрын
This is so helpful 👏
@venkatesh4307
@venkatesh4307 6 ай бұрын
Great explanation
@zafar_codes
@zafar_codes 6 ай бұрын
Cool. Also would like to see your video about performance and how to profile app using android studio’s profiler.
@ankitverma3932
@ankitverma3932 6 ай бұрын
Really helpful video. Plz make a video on Defer state reads and state hoisting.
@mustafaammar551
@mustafaammar551 6 ай бұрын
thank you bro
@redaelmadini
@redaelmadini 6 ай бұрын
Very very good 👍 🎉
@jimpauloovejera2599
@jimpauloovejera2599 3 ай бұрын
you marked the class as @Stable but it would have been better if you try to update the state to showcase its stability
@Rafaelrgm
@Rafaelrgm 6 ай бұрын
Great Video. I wanna take the chance to ask for a new tutorial of a chat app using ktor and websockets, since the last one was about 2 years ago and is mostly deprecated... In my case the initial project couldn't even be built.
@brightonshifu
@brightonshifu 5 ай бұрын
This would be awesome.
@user-hj6gg4iq5p
@user-hj6gg4iq5p 6 ай бұрын
Maybe recomposition becomes because your `var selected` is out of Column?
@icodethis
@icodethis 6 ай бұрын
goat
@hoanghai5572
@hoanghai5572 6 ай бұрын
Seem like you change list to immutableList, if my list is still mutable, there is no way to prevent ContactList re-composed right ?
@jms7634
@jms7634 5 ай бұрын
My problem with programming is it takes me like a hundred lines of code before i know when to use such annotation or any other concept. Optimization is such a headache but is a very crucial part when coding
@virajbenade5572
@virajbenade5572 12 күн бұрын
Dear sir I have one serious question when we generate a model classes for our api response can we mark is at a @stable or @Immutable 😊
@keepgoingman5829
@keepgoingman5829 5 ай бұрын
How about the code below? Does it can be a problem too? @Immutable data class User( val name: String, val age: Int ) { var address: String = "" } you can see the 'address' with Var in the body of the data class. Does it could be a bad performance?
@dmytroberezhnyi717
@dmytroberezhnyi717 6 ай бұрын
There is more info about @Stable when we have custom modifiers
@solomonenakele7219
@solomonenakele7219 5 ай бұрын
Please why is Horizontal pager lagging so much, even after optimising recompositions.
@jasv49
@jasv49 6 ай бұрын
How does this apply if we use ViewModels for UI state management?
@mieszkokozma4239
@mieszkokozma4239 6 ай бұрын
Exactly the same. It's all about the class you use as a state aka model for the functions marked @Composable
@imamyusupbachtiar5461
@imamyusupbachtiar5461 6 ай бұрын
Sir, is your online course lifetime if i buy it ? i still consider it to buy
@PhilippLackner
@PhilippLackner 6 ай бұрын
yes :)
@owenthompson8397
@owenthompson8397 4 ай бұрын
If you annotate a class as @Immutable which implies that the data class can never change, but it does and creates a new instance, wouldn't that have an impact on assigning more memory to accommodate the new instance.and also invoke recoposition?
@loafic
@loafic 18 күн бұрын
it's just a shallow copy, reorganizing the external Compose components, and most of the internal components will be skipped
@517Amit
@517Amit 6 ай бұрын
Don't know why >my layout inspector can't detect any component tree. I tried almost all the solutions from stack and from internet. But seems like on of them works. hedgehog
@esneider
@esneider 6 ай бұрын
soy tu fanboy
@arozendojr
@arozendojr 6 ай бұрын
Suggestion, webview with kmp compose, as large companies use it, reason for use, code push on the website that the webview accesses, feature delivered faster, Cloud scalability, micro frontEnd, micro service in the cloud
@cursedfunction
@cursedfunction 6 ай бұрын
Please don’t do this. Use the right tool for the job. WebViews are not the do-it-all tool that some folks try to make them out to be.
@arozendojr
@arozendojr 6 ай бұрын
@@cursedfunction Market needs, code push, kotlin or swift do not have code push, the market finds webview solutions. Nowadays large companies use webview, for native code @JavascriptInterface, in the end they are creating a meta browser
@cularu1
@cularu1 Ай бұрын
It's horrible.
@cularu1
@cularu1 Ай бұрын
It's only good to update the "app" faster. It's basically a webpage not an app.
@khanra17
@khanra17 3 ай бұрын
Jetpack Compose is terrible! They had a chance to switch to a modern paradigm and they made dog poop. Everything is hacky and complex.
ViewModels & Configuration Changes - Android Basics 2023
18:46
Philipp Lackner
Рет қаралды 102 М.
KMP vs. Flutter - Who Will Win The Cross-Platform Battle?
16:19
Philipp Lackner
Рет қаралды 31 М.
🍕Пиццерия FNAF в реальной жизни #shorts
00:41
Climbing to 18M Subscribers 🎉
00:32
Matt Larose
Рет қаралды 35 МЛН
OMG🤪 #tiktok #shorts #potapova_blog
00:50
Potapova_blog
Рет қаралды 17 МЛН
1 класс vs 11 класс  (игрушка)
00:30
БЕРТ
Рет қаралды 4,4 МЛН
compileSdk VS. targetSdk VS. minSdk - THIS Is the Difference
8:15
Philipp Lackner
Рет қаралды 19 М.
So You Think You Know Git Part 2 - DevWorld 2024
23:02
GitButler
Рет қаралды 69 М.
DropDown - Widget of the Cafe 🤎
8:04
Progammer's Cafe
Рет қаралды 13
Add  sign up screen | Log In & Sign Up with Firebase #17
6:47
Code with Franck
Рет қаралды 10
JavaScript Array Cardio Practice - Day 1 - #JavaScript30 4/30
23:27
How To Learn Any Chess Opening in 24 Hours
23:47
jacksark
Рет қаралды 4,1 М.
This Is My FAVORITE Error Handling Class
28:57
Philipp Lackner
Рет қаралды 26 М.
3 Clean Code Hacks I Bet You Didn't Know (Kotlin & Android)
12:30
Philipp Lackner
Рет қаралды 25 М.
🍕Пиццерия FNAF в реальной жизни #shorts
00:41