Grande Aris, como siempre. Si no voy mal… parece una clase Enum con trembolona, no? Es decir, nos ofrece mucha más potencia que un enum con un funcionamiento similar y más amplio, si?
Un enumerado es mas sencillo, todo te permite crear tipos y listo, las sealed tienen mucha mas potencia, te permiten crear data class, object, funciones dentro de estas y mucho mas!
hola viejo, muy buen material muchas gracias por el aporte. Tienes pensado hacer algún video explicando Paging 3? Poco y nada (más nada que poco) encuentro en español. Saludos!!
El tema con las enum classes es que las constantes que vos declares se tratan como si fueran una especie de singleton, es decir, que ya tienen su propia instancia asignada y por lo tanto, no es posible volverlas a instanciar. Por otro lado, las sealed classes pueden tener tanto object (singletons) como data classes
Alejandro, las enum class sirven para crear un grupo o conjunto de valores constantes, no te permite crear subtipos, en cambio las sealed Class te permiten generar diferentes instancias de esa clase y llamando a través del "." a sus subtipos tal y como muestra Aris en este video.
@@AristiDevs Hola como estas? es que estoy haciendo una app para un juego, y para mi parte de crear personajes, necesito que me escojan en un select item que raza de personaje es, yo pensaba hacerlo con enumerados hasta q vi tu video, la raza deberia tener una imagen y el nombre de la raza cuando lo escojan. por eso mi pregunta si se puede poner una clase sellada como para que se pueda escoger
Minuto 5:30, Como comenta Aris:"..Estas sealed class nos permiten a nosotros crean Subtipos, por decirlo de algun modo". Pero para aquellos principiantes, como yo, y que les parece que el código de este minuto está en chino: ¿Por qué se asigna un tipo de la clase padre usando GameError(), si cuando asigno el tipo String o cualquier otro tipo no se usan paréntesis? La respuesta es que No está asignando un tipo, sino que está extendiendo(heredando) de la clase GameError. Y como object en Kotlin es en realidad un singleton class, entonces Rayado es una subclase (instanciada en objeto por ser singleton) de GameError. Y tambien aplica lo mismo para la posterior Data class VersionError que se declara: data class VersionError: GameError(), VersionError es una subclase de la clase padre GameError. Y sealed class tiene la ventaja de ser abstract (no se puede instanciar) y su constructor es protected por default, por lo que solo se puede usar dentro de la misma clase (como aqui para extenderlo) y dentro de las subclases. Y si alguien se pregunta si cualquier subclase podria acceder a los otros miembros de la clase padre, no podria porque son por default Nested class. Estos ejemplos tambien se podrian hacer usando clases sin el modificador sealed, pero no se tendrian las ventajas de las restricciones que tienen las sealed class y que las hace ideales como "contenedores" de opciones disponibles para un valor dado, y cada una de estas opciones pueden tener distintas funcionalidades (declarandolas en las subclases), y al que final funcionan como subtipos como comento Aris. Espero no haber confundido más.
Excelente video Aris, justo vengo de tu curso básico de Android para profundizar el tema.
Genio total!
Aris, excelente video como ya nos tienes acostumbrados! me gustaría que hagas uno similar pero de companion objects porfa!
Apuntado!
Lo Mejor en videos de programacion. Yo siempre los espero...
muchas gracias por compartir tu concimiento saludos desde Perú.
Que bien lo explicas socio, mil gracias
Excelente video, calidad, imagen, todo muy coool, aidcionalmente no conocia la sealed class
gracias amigo, sos un vergon(que se la sabe todas y a todas)
Excelente aporte, podrias hacer un ejemplo encriptando y desencriptando un valor de un editext con sha-1 en kotlin, saludos desde Ecuador-Guayaquil
Grande Aris, como siempre. Si no voy mal… parece una clase Enum con trembolona, no? Es decir, nos ofrece mucha más potencia que un enum con un funcionamiento similar y más amplio, si?
Justo, un enum que lleva en el gym un añito
Olé!
Ahora me queda más claro ;) !
muy buen video como siempre 👍👍👍
Excelente video y super bien explicado.
Que diferencias hay entre estas y la enum class?
Un enumerado es mas sencillo, todo te permite crear tipos y listo, las sealed tienen mucha mas potencia, te permiten crear data class, object, funciones dentro de estas y mucho mas!
hola viejo, muy buen material muchas gracias por el aporte.
Tienes pensado hacer algún video explicando Paging 3? Poco y nada (más nada que poco) encuentro en español.
Saludos!!
Lo tengo en mente!
Muy buena explicación Aris.
Gracias por tu valioso tiempo!!
Muy buen vídeo! ¿Existe alguna vinculación entre los Mappers y el patrón Router? Gracias.-
No lo había pensado nunca pero entiendo que sí
Se podría reemplazar por un enum? creería que no pero pregunto
super en mi ultima entrevista me preguntaron esto xD
hahaha
excelente pero, como se hace si data class es Parcelable?
Buen vídeo
También podría ser usado un enum para este ejemplo ¿cuál sería el problema de hacerlo? o ambas soluciones funcionan perfectas
El tema con las enum classes es que las constantes que vos declares se tratan como si fueran una especie de singleton, es decir, que ya tienen su propia instancia asignada y por lo tanto, no es posible volverlas a instanciar.
Por otro lado, las sealed classes pueden tener tanto object (singletons) como data classes
Super util?, gracias por el video XD
Magnifico🤗
pero cual seria la ventaja vs los enums ?
Alejandro, las enum class sirven para crear un grupo o conjunto de valores constantes, no te permite crear subtipos, en cambio las sealed Class te permiten generar diferentes instancias de esa clase y llamando a través del "." a sus subtipos tal y como muestra Aris en este video.
Pa cuando la parte 4 de kotlin maps?
No lo tengo claro, no se ni que voy a hacer esta semana haha
Se puede agregar una clase sellada a un textimputlayout?
A qué te refieres?
@@AristiDevs Hola como estas? es que estoy haciendo una app para un juego, y para mi parte de crear personajes, necesito que me escojan en un select item que raza de personaje es, yo pensaba hacerlo con enumerados hasta q vi tu video, la raza deberia tener una imagen y el nombre de la raza cuando lo escojan. por eso mi pregunta si se puede poner una clase sellada como para que se pueda escoger
Minuto 5:30, Como comenta Aris:"..Estas sealed class nos permiten a nosotros crean Subtipos, por decirlo de algun modo". Pero para aquellos principiantes, como yo, y que les parece que el código de este minuto está en chino: ¿Por qué se asigna un tipo de la clase padre usando GameError(), si cuando asigno el tipo String o cualquier otro tipo no se usan paréntesis? La respuesta es que No está asignando un tipo, sino que está extendiendo(heredando) de la clase GameError. Y como object en Kotlin es en realidad un singleton class, entonces Rayado es una subclase (instanciada en objeto por ser singleton) de GameError. Y tambien aplica lo mismo para la posterior Data class VersionError que se declara: data class VersionError: GameError(), VersionError es una subclase de la clase padre GameError. Y sealed class tiene la ventaja de ser abstract (no se puede instanciar) y su constructor es protected por default, por lo que solo se puede usar dentro de la misma clase (como aqui para extenderlo) y dentro de las subclases. Y si alguien se pregunta si cualquier subclase podria acceder a los otros miembros de la clase padre, no podria porque son por default Nested class. Estos ejemplos tambien se podrian hacer usando clases sin el modificador sealed, pero no se tendrian las ventajas de las restricciones que tienen las sealed class y que las hace ideales como "contenedores" de opciones disponibles para un valor dado, y cada una de estas opciones pueden tener distintas funcionalidades (declarandolas en las subclases), y al que final funcionan como subtipos como comento Aris. Espero no haber confundido más.
❤
Nice!
Para cuando un curso de android? :(
Todo el canal trata de eso XD