Sealed Classes VS. Enum Classes VS. Sealed Interfaces - When to Use Which?

  Рет қаралды 57,007

Philipp Lackner

Philipp Lackner

Күн бұрын

Пікірлер: 111
@VilRapt
@VilRapt 2 жыл бұрын
Sealed interfaces is not about "saving a little bit of code" it is to reduce the memory allocated, which is twice less for the interface in comparison to the class.
@deepakbisht4957
@deepakbisht4957 2 жыл бұрын
Of course Sealed classes come with their own costs that many programmers don't consider...
@dekus80
@dekus80 2 жыл бұрын
And why all use sealed class ever with empty constructor, if as we can see in the video the same with sealed interface (object, data class)? Don't know about ability to use interface?
@VilRapt
@VilRapt 2 жыл бұрын
@@dekus80 o believe the reasoning explained well in the video. There are case when you simply can't.
@ArthurKhazbs
@ArthurKhazbs Жыл бұрын
Also interfaces give the nifty ability for each subtype to implement multiple of them, in contrast to classes only allowing to extend one of them. If for some reason you need the children of your sealed type to extend other classes, you can do so with the sealed interface. And obviously, if the children are interfaces, then their sealed supertype cannot be a class, only an interface.
@cheerwizard21
@cheerwizard21 2 ай бұрын
Memory allocation will be literally the same. The only reason is that you can use it for multiple implementation, because it's an interface and also you can use it for enum classes. In terms of memory managment and allocations, because it forces your machine to determine a type in runtime and has no control in fitting your type in memory (because it's a "virtual" type, not an actual implementation) it will work same way as class/abstract class/interface inheritance. If you just want to understand how interfaces and polymorphism works in general under the hood, learn some basics of C++ and you will understand why both sealed class and sealed interface are equals in terms of performance/memory usage.
@yossihorvitz5134
@yossihorvitz5134 2 жыл бұрын
4:30 - press TAB to delete the remaining after auto complete without delete it yourself
@AmitJayant
@AmitJayant 2 жыл бұрын
Did not work for me. Can u explain?
@OrlanDroyd
@OrlanDroyd 10 ай бұрын
This type of topic is fascinating and is very useful for job interviews and personal improvement. Keep creating this type of content too ♥
@stoyan_vuchev
@stoyan_vuchev 2 жыл бұрын
I was always wandering what's the difference between Sealed and Enum classes. I didn't knew that the Enum classes have more functionality than just declaring a constants. Thank you for explaining the differences in detail! 🤗🔥
@riyupapa39
@riyupapa39 2 жыл бұрын
Me too.... I also wandering this difference~
@mahamanbachiribrahim9884
@mahamanbachiribrahim9884 2 жыл бұрын
Thanks Philip, yesterday I searched the difference between sealed class and sealed interface so your video is welcome Big up
@huseyinbuyukcolak4550
@huseyinbuyukcolak4550 2 жыл бұрын
man i tried every other video but this is just legit thanks a lot man
@DeLL116
@DeLL116 2 жыл бұрын
Man... Thank you so much. You are answering all the questions I have for Kotlin and Android. It's like you're reading my mind. Again, thank you.
@AliouneDupuy
@AliouneDupuy 2 жыл бұрын
Hey 👋. Could you make a video about android notification. More importantly how to use dynamic title and text from a database everytime that the notification fires. Thanks in advance.
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Thanks for the idea :)
@top10channels31
@top10channels31 2 жыл бұрын
You can send data payload with notifications and retrieve it in service class as remote messages
@12nileyfan
@12nileyfan Жыл бұрын
thanks for this content, I agree with you, the Kotlin documentation wasn't that clear about the difference between Sealed interfaces and sealed classes. It is now clear to me :)
@AdnanNurKurniawan
@AdnanNurKurniawan 13 күн бұрын
Thanks for the explanation, now it's more clear to me...
@himanshu7bansal
@himanshu7bansal 2 жыл бұрын
At this point, You are making videos on my recent doubts/confusion, Thanks alot, keep it going 💪🏻
@sahil-nz7vk
@sahil-nz7vk 2 жыл бұрын
Thanks! I was actually following another tutorial of yours, and when I saw you were using sealed classes instead of enums, I was trying to understand the difference. This really helped clear it up!
@socheatlay17
@socheatlay17 2 жыл бұрын
I have been waiting for this video for soooooooo long
@moldovanpeter5123
@moldovanpeter5123 2 жыл бұрын
Nice vid, how about Creating Shortcuts? Static, Dynamic, Pinned, maybe it could help others if they want to shortcut some of their features.
@jagat.jeeban
@jagat.jeeban 2 жыл бұрын
Thank you for making this video. 🙌
@sagargandhi5080
@sagargandhi5080 2 жыл бұрын
Hi Philipp, can you please make some videos on Unit and UI testing with compose and MVVM.
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Already have that, search for ultimate testing guide
@sagargandhi5080
@sagargandhi5080 2 жыл бұрын
@@PhilippLackner aah great, thanks
@baijusharma6027
@baijusharma6027 2 жыл бұрын
Hi Philipp, You always bring something new to us and clear our confusion.
@omarredani5580
@omarredani5580 2 жыл бұрын
I can suggest to make a video about advanced feature in compose or build a small project using MVU or MVI architecture.
@raheemadamboev
@raheemadamboev 2 жыл бұрын
Great video make many videos like this!
@giulianocarmona7250
@giulianocarmona7250 2 жыл бұрын
Massive explanation dude
@josephofem5448
@josephofem5448 2 жыл бұрын
Thanks Phil, you have really made my development journey an easy on. However, I will love you to make a video on how to implement mqtt or any form of broadcast receiver with clean architecture. Thanks
@joaovictorsz
@joaovictorsz 2 жыл бұрын
Thank you for explaining. I like a lot of your videos.
@l3nvyx70
@l3nvyx70 2 жыл бұрын
BROOO thankyou so much, this really helped and the tutorial was really easy to use as well :)
@muhannddh
@muhannddh 2 жыл бұрын
Could you please make tutorial video about room encryption
@theophilus494
@theophilus494 2 жыл бұрын
Thanks Philipp for your tutorials.. it's always like you see some of my struggles on stuffs like this. I want to make a request that can you do a tutorial on workmanager firing a notification with upload progress of a file using retrofit. Thanks 🙏
@PhilippLackner
@PhilippLackner 2 жыл бұрын
I have a full workmanager guide already, would just require a few adjustments
@theophilus494
@theophilus494 2 жыл бұрын
@@PhilippLackner Ok great
@devanshu_on_youtube
@devanshu_on_youtube 2 жыл бұрын
Hey Philipp! Nice video.. just wanted to add a minor point- Kotlin stdlib 1.3 and above allows us to iterate over/perform transformations over subclass instances of a sealed class - though it is a bit more expensive than enums. But the good news is you don't need to keep track of a separate list for this purpose. Goes something like this: SealedClassExample::class.sealedSubclasses.map { it.objectInstance as SealedClassExample }.forEach { } (the casting is to assert that we know a nullable case won't exist)
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Cool, didn't know this
@westiti6650
@westiti6650 Жыл бұрын
Great explanation bro. Thanks
@ArthurKhazbs
@ArthurKhazbs Жыл бұрын
I think it's quite remarkable how subtypes of sealed types are almost always nested inside them. It feels like an unspoken rule of sealed types to declare subtypes this way, although nothing stops anybody from declaring them outside.
@PhilippLackner
@PhilippLackner Жыл бұрын
Because it's much more intuitive to access the values. If not declared inside, how will you know which values belong to the sealed class?
@Adam0001
@Adam0001 2 жыл бұрын
Thanks Philipp 👍
@AmitJayant
@AmitJayant 2 жыл бұрын
Great video as always. Cleared many doubts. btw .. What's the theme and color scheme you using in Android Studio?
@jjhoninatan55sabadi
@jjhoninatan55sabadi 2 жыл бұрын
Please a video about baseline profilers
@anibalbojorquez4800
@anibalbojorquez4800 2 жыл бұрын
Great video!
@behnawm
@behnawm 2 жыл бұрын
Thank you philipp! Can you make a course explaining Paging3 in detail? There aren't many educative stuff about Paging3 (of course except Google's complicated Codelabs!) .
@PhilippLackner
@PhilippLackner 2 жыл бұрын
I have a video about paging where I also explained why I don't like Paging3 :)
@gautamsharma9823
@gautamsharma9823 2 жыл бұрын
First of all i will thanks you for the amazing video, i have one question in my mind related to accessibility of sealed class, as you have told that we can not inherit the sealed class in other module but it is also not inheritable inside the other file or packages.can you please make it clear?
@ggstb
@ggstb 2 жыл бұрын
Your videos helped me get 12k $ job with 3 years of experience. Thanks man
@mahendranv6264
@mahendranv6264 2 жыл бұрын
Nice explaintaion bro 👌
@111shetty
@111shetty 8 ай бұрын
Hi I love watching your videos very easy to understand all difficult topics in android in that way it would be nice to make video on ci/cd integration iniside slack channel
@artsbrand
@artsbrand Жыл бұрын
Hey Filipp, could you make tutorial how you can create web app + Kotlin + database + docker + docker compose + some cloud?
@DouglasRoberto_
@DouglasRoberto_ 2 жыл бұрын
What's the name of that color theme you're using?
@cub3608
@cub3608 Жыл бұрын
thank you greatly
@viki9126
@viki9126 2 жыл бұрын
thanks for a great video
@dev_jeongdaeri
@dev_jeongdaeri 2 жыл бұрын
Super cool 😎
@nipunshah1373
@nipunshah1373 2 жыл бұрын
Can you consider explaining concept about RxKotlin or RxJava
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Got tons of videos about flows. All you need
@archestro7698
@archestro7698 2 жыл бұрын
Thank you.
@i.ankitmishra
@i.ankitmishra 2 жыл бұрын
I like your IDE theme. Please give name of the theme or the plugin name you have used for theme. 🙂 P.S. I am a big fan. Keep making such videos.
@ameentehseen6900
@ameentehseen6900 2 жыл бұрын
Hey Philipp, great tutorial I'm kind of stuck in a problem which is how would I be able to use liveData.observe in compose as I need to update a sort of UI. Would love to have a video on it.
@mustafaammar551
@mustafaammar551 2 жыл бұрын
VERY COOL YOU ARE THE BEST 👍👍👍👍
@elangovankr110
@elangovankr110 2 жыл бұрын
Can you make video on advanced concepts in Recycleview
@Guilo583
@Guilo583 2 жыл бұрын
Thanks for the video. could you please make video on apoloclient and graphql
@xandrviking1113
@xandrviking1113 Жыл бұрын
Cool video, thanks and like ☺
@freshtechtips
@freshtechtips 2 жыл бұрын
What is the name of your ide theme plugin?
@GB-nn2cx
@GB-nn2cx 2 жыл бұрын
Thanks a lot
@mdisi5967
@mdisi5967 2 жыл бұрын
Thank you !!
@PhilippLackner
@PhilippLackner 2 жыл бұрын
Welcome!
@ComposeCampus
@ComposeCampus 11 ай бұрын
8:50 It's true.
@dudziks
@dudziks 2 жыл бұрын
Hi Philipp, currently I wonder how to use FirebaseUI with Jetpack Compose. Is it good topic for you to make a video?
@brandonsgas
@brandonsgas 2 жыл бұрын
another way of saying that all a sealed class or enums types are known at compile time is that they are algebraic classes
@chitye-aung
@chitye-aung 2 жыл бұрын
Awesome ❤️❤️
@olohialli9289
@olohialli9289 2 жыл бұрын
Pls make a video on consuming graph ql apis
@yehor_zhyr
@yehor_zhyr 2 жыл бұрын
Great video, thank you. Yes, sealed interfaces are definitely simpler than they look. I think for the future it would be interesting to see about compose optimization, something about @Stable, @Immutable annotations.🙂
@MrDorperezz
@MrDorperezz 2 жыл бұрын
Thanks champ
@TuanBuianonymous
@TuanBuianonymous 2 жыл бұрын
Can you make a tutorial about using openCV in android
@kachu_sha
@kachu_sha 2 жыл бұрын
Can there be “too many” sealed classes in a project? 🤔
@nagendranm.s.4512
@nagendranm.s.4512 2 жыл бұрын
Please teach a ndk, automotive infotainment(aosp), Ble related tutorials
@ugursener1709
@ugursener1709 2 жыл бұрын
Thank you a lot for the video, it is really explict and helpful for beginners.
@m.irtizakhursheed3040
@m.irtizakhursheed3040 2 жыл бұрын
Should we need to learn Flutter with Native Android experience.
@freshtechtips
@freshtechtips 2 жыл бұрын
Yes, when you create flutter project it will create sub projects for android and ios configurations app, you can run native android in flutter with kotlin, swift, object c, java
@etelot
@etelot 2 жыл бұрын
Are you the guy that StackOverflow uses in a ad?
@adityamaurya9521
@adityamaurya9521 2 жыл бұрын
Nice👏👏
@ashadzakariya6810
@ashadzakariya6810 2 жыл бұрын
I'm too busy reading these comnts and not paying attention again.....and I'm Nice tutorialgh
@xallkv
@xallkv 2 жыл бұрын
this video is very good ! Post Phillip flutter lessons on youtube
@achalbadgujar9519
@achalbadgujar9519 2 жыл бұрын
An app with unit testing ,clean archtecture,dagger,caching
@PhilippLackner
@PhilippLackner 2 жыл бұрын
That exists: kzbin.info/www/bejne/boqzialtrbCbaNk&ab_channel=PhilippLackner
@achalbadgujar9519
@achalbadgujar9519 2 жыл бұрын
@@PhilippLackner Thanks lemme chk
@reinstallx
@reinstallx 2 жыл бұрын
Hi, thanks for a great video. May I suggest you make a video-lesson about avoiding if-else inside UI layer. For example how to refactor: if (isVisible) View.VISIBLE else View.INVISIBLE using OOP
@androiddevo
@androiddevo 2 жыл бұрын
Hi , Phillip I think it will be good idea making a tutorial about hms and gms seperation with product flavors 😇
@정재원-x1u
@정재원-x1u 2 жыл бұрын
I used to like to use sealed class, but after I found out that Parcelable was not available, I used the model related to Acitivty/Fragment as enum.
@pdjeowudjx
@pdjeowudjx 2 жыл бұрын
Parcelable works for sealed classes
@John-qt6qk
@John-qt6qk 2 жыл бұрын
So sealed clases is betta for login tho lol thanks I was stuck on this stuff for a bit
@deepakbisht4957
@deepakbisht4957 2 жыл бұрын
Enum restricts the value whereas Sealed classes restrict the type. Sealed classes are good when you want to create restricted types that can also have their own state instead of just constant values...
@elhadifettah7993
@elhadifettah7993 2 жыл бұрын
⚠️ You should rename the channel as ROMANTIC CODE 🤗
@Authentic_Reports777
@Authentic_Reports777 2 жыл бұрын
I don’t even have soft soft and I’m watcNice tutorialng tNice tutorials sNice tutorialt
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
@xallkv
@xallkv 2 жыл бұрын
Post Phillip flutter lessons on youtube
How to Make Your Code Clean With Kotlin Sealed Classes
18:09
Philipp Lackner
Рет қаралды 41 М.
Every Kind of Class in Kotlin
10:44
Dave Leeds
Рет қаралды 15 М.
Cheerleader Transformation That Left Everyone Speechless! #shorts
00:27
Fabiosa Best Lifehacks
Рет қаралды 16 МЛН
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 120 МЛН
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН
LEGO Island decompilation hits 100%!
1:05
MattKC Bytes
Рет қаралды 26 М.
The Difference between Sealed Interfaces & Sealed Classes!
7:20
Charfaoui Younes
Рет қаралды 824
Kotlin Sealed Class (With Demo Source code)
11:17
Smartherd
Рет қаралды 19 М.
MVVM vs. MVI - Understand the Difference Once and for All
18:40
Philipp Lackner
Рет қаралды 54 М.
Should You Use Compose State or StateFlow in Your ViewModels?
13:59
Philipp Lackner
Рет қаралды 83 М.
The Full Guide to ANNOTATIONS In Kotlin
21:32
Philipp Lackner
Рет қаралды 32 М.
6 Design Patterns Every Android Developer Must Know
14:16
Philipp Lackner
Рет қаралды 83 М.
Clean Flow Transformations with Combine, Zip & Merge - Kotlin Flows
16:56
Cheerleader Transformation That Left Everyone Speechless! #shorts
00:27
Fabiosa Best Lifehacks
Рет қаралды 16 МЛН