KOTLIN: Curso ANDROID desde CERO - NULL SAFETY - Lección 8 [2020]

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ม.ค. 2025

ความคิดเห็น •

  • @mouredev
    @mouredev  4 ปีที่แล้ว +34

    Ya queda poco para finalizar este serie de tutoriales de Kotlin para principiantes... ¿Seguimos?
    ► SUSCRÍBETE Y ACTIVA LA CAMPANA 👆🏼🔔
    goo.gl/afPz3g
    ► SÍGUEME EN:
    • Twitter: twitter.com/mouredev
    • Instagram: instagram.com/mouredev
    • Discord: discord.gg/QXXZR8X

    • @acment
      @acment 4 ปีที่แล้ว

      ¡Sí! Sería de gran ayuda para mí, gracias por todo.

    • @OscarGarcia-vo6mi
      @OscarGarcia-vo6mi 4 ปีที่แล้ว

      Va muy bien!, ya veras que en poco tiempo se incrementaran las visitas. Saludos desde Montreal.

    • @hectorinojosa1572
      @hectorinojosa1572 4 ปีที่แล้ว

      Si, por favor eres una gran ayuda. los últimos videos tienden a tener menos vistas porque solo la gente realmente interesada son los que terminan xD. Espero con ansias tu siguiente video!.

    • @diegoalexisherreraquilaguy3793
      @diegoalexisherreraquilaguy3793 4 ปีที่แล้ว

      Hola Brais, considero que tu manera de explicar es muy buena por no decir excelente y con respecto a pregunta claro que si seria una excelente idea que puedas seguir con estos tutoriales ya que son muy buenos y con muy buena información

    • @erikasolerrocha8822
      @erikasolerrocha8822 4 ปีที่แล้ว

      Eres excelente en lo que haces, muchos te agradeceríamos que siguieras. Estaré atenta al siguiente nivel. Gracias Brais!

  • @LuisG_FloresP
    @LuisG_FloresP ปีที่แล้ว

    gracias por hacer estos tutoriales

  • @MiraJuegos
    @MiraJuegos 3 ปีที่แล้ว

    Simplemente +10, cada video me reafirmo

  • @libeliapompa
    @libeliapompa ปีที่แล้ว

    Excelente tutorial. Gracias!!👋👋👋

  • @javieraravena8303
    @javieraravena8303 4 ปีที่แล้ว +1

    Llevo viendo alrededor de una semana tus videos y la verdad es que explicas muy bien! Te lo agradezco y la verdad es que tus videos clases superan a muchos que he visto en udemy Asique nada... Suscriptor nuevo!

    • @mouredev
      @mouredev  4 ปีที่แล้ว +1

      Muchísimas gracias!

  • @Fasorr
    @Fasorr ปีที่แล้ว

    Excelente contenido.

  • @evilexus
    @evilexus 4 ปีที่แล้ว +5

    Ese episodio es muy importante, puede evitar muchos problemas, una super recomendación para el que venga a este video, es usar siempre el principio de inmutabilidad, es decir que las variables y/o properties sean VAL y no var, en caso de usar var usar el elvis operator siempre dejar como último recurso el operador doble admiración !! de ser posible nunca usarlo, saludos hackermen 😄🐊🤓

    • @mouredev
      @mouredev  4 ปีที่แล้ว +1

      Totalmente de acuerdo con tu explicación. Muchas gracias por aportar valor al canal. Saludos!

    • @myonalicante
      @myonalicante 4 ปีที่แล้ว +1

      cuál es el elvis operator?

    • @jnquirantes9811
      @jnquirantes9811 4 ปีที่แล้ว

      @@myonalicante la interrogacion

    • @coffeedude
      @coffeedude 2 ปีที่แล้ว

      @@myonalicante Es el ' ?: ' que se usa para definir el valor por defecto de una variable si resulta ser nula

  • @compigerard2663
    @compigerard2663 4 ปีที่แล้ว +2

    Es un gran Boom a mi cabeza de forma beneficiosa!

  • @alvaronorbertogarciameza7961
    @alvaronorbertogarciameza7961 4 ปีที่แล้ว

    No entiendo como es que la gente no apoya a personas como tu que tienen un contenido de calidad, innovador, conocimiento y un buen método de enseñanza. Desde mi humilde casa te felicito y te agradezco por realizar cada vídeo con esmero.
    val gracias = "GRACIAS POR CADA VIDEO"
    while (gracias == "Mal contenido")
    println(gracias)
    (Se supone que así el bucle sera infinito) xd

    • @ams0142
      @ams0142 2 ปีที่แล้ว

      No sé si lo entendí bien pero eso creo que dice, que "gracias" es lo mismo que "GRACIAS POR CADA VIDEO". Y entonces, "mientras GRACIAS POR CADA VIDEO sea igual a Mal contenido, imprime gracias".
      En este caso cambiaría el signo == por un != y tendría más de sentido.
      Aunque tal vez estaría mejor: fun bucleGracias() {
      var graciasPorCadaVideo = "buen contenido"
      while (graciasPorCadaVideo != malContenido)
      println(graciasPorCadaVideo) }
      Como va Kotlin después de un año? :D

  • @angelmauriciorivas6160
    @angelmauriciorivas6160 3 ปีที่แล้ว

    Moure esta explicación ha sido de las mejores para entender el manejo de nulos muchas gracias 👍

  • @christiandavidvalenzuelago4955
    @christiandavidvalenzuelago4955 4 ปีที่แล้ว +5

    Hola! Espero estés muy bien! Tengo una pequeña duda, como en que casos la variable podría cambiar a null? Estoy empezando en esto y un ejemplo me ayudaría muchísimo a poder ver un poco más amplio el panorama. Muchas gracias Hackermen! Excelentes videos! Saludos desde Guatemala!

  • @fredyrosales910
    @fredyrosales910 4 ปีที่แล้ว +3

    Hola MoureDev, En Safe Call me pedia que utilizara " ; " en ves de " : "
    // Safe call
    println(mySafetyString?.length)
    mySafetyString?.let { it; String
    println(it)
    } ?: run {
    println(mySafetyString)
    }
    Y funciono, me gustaria saber la diferencia.
    Muy buen tutorial
    Gracias y Saludos.

  • @antonioarranz7677
    @antonioarranz7677 4 ปีที่แล้ว

    Puuuuufff!!! Voy a tener que currármelo. Lo repasaré y buscaré información adicional. Gracias por el vídeo. Es el único que se me está resistiendo hasta ahora. Entiendo que las null pointer exceptions aparecen sobre todo porque al utiiizar en el desarrollo de software librerías que han desarrollado otros no puedes asegurar al 100% que las variables contengan valores. A mi esta explicación me ha servido:
    elbauldelprogramador.com/que-es-un-nullpointerexception-y-como-solucionarlo/
    La explicación creo que confirma mis sospechas porque he intentado escribir un programa que diera un NullPointerException y no he podido porque el compilador javac me lo detectaba. Sin embargo si yo hubiera hecho una librería en la que como dice la explicación tuviera una función que aceptase como parámetro un objeto a priori no podría asegurar que un progamador pasase a esa función el objeto convenientemente inicializado y no sé si el compilador lo detectaría. No sé. Es por tratar de entender un poco mejor como se pueden producir estas excepciones.
    Este enlace también me ha ayudado a entenderlo: www.educative.io/edpresso/how-to-resolve-the-javalangnullpointerexception
    Gracias por esta magnífica colección de vídeos sobre Kotlin

  • @diananorena2622
    @diananorena2622 4 ปีที่แล้ว

    Gracias por tus aportes. Claro y estructurado en la trasmisión de los conceptos. ! Felicitciones!

  • @juliofernandochipana1352
    @juliofernandochipana1352 4 ปีที่แล้ว

    muy explicativos tus videos Moure gracias! Saludos desde argentina

  • @josesuazo4340
    @josesuazo4340 3 ปีที่แล้ว

    gracias por los videos

  • @eduardomendoza2037
    @eduardomendoza2037 4 ปีที่แล้ว

    Gracias por compartir tus conocimientos

  • @hectorinojosa1572
    @hectorinojosa1572 4 ปีที่แล้ว +2

    Seria genial que también grabaras un curso para nivel Intermedio y Avanzado

  • @YuriMayakoskiSivizaca
    @YuriMayakoskiSivizaca 3 ปีที่แล้ว +2

    Hola que tal, porque saldrá este mensaje "Overload resolution ambiguity. All these functions match." al colocar el elvis operator "mySafetyString?.let " y no ejecuta correctamente. Tengo el código exactamente igual como lo haces en el ejemplo

  • @cesarenriquemorenocamino2783
    @cesarenriquemorenocamino2783 4 ปีที่แล้ว

    Escelente curso hermano muy bueno todos los dias lo hago

  • @grovertec
    @grovertec 4 ปีที่แล้ว

    Excelente explicación del manejo de nulos con Kotlin.

    • @mouredev
      @mouredev  4 ปีที่แล้ว

      Muchísimas gracias!

  • @katerinakabisova1108
    @katerinakabisova1108 2 ปีที่แล้ว

    Buenos dias. Muchisimas gracias por tus videos son geniales. Tengo un problema no me funciona el operador !! al ponerlo me da exactamente el mismo error que a ti antes de que lo has puesto, a que se debe? Gracias

  • @cristhianaguilarverduguez1698
    @cristhianaguilarverduguez1698 4 ปีที่แล้ว

    Hola Maestro este curso llegara hasta lo avanzado, gracias

    • @mouredev
      @mouredev  4 ปีที่แล้ว +3

      Hola! Espero poco a poco poder tocar temas de todos los niveles :)

  • @joseromerom.7717
    @joseromerom.7717 3 ปีที่แล้ว +6

    Una duda, a alguien más le pasa que cuando trata de imprimir mySafetyString!! le manda error de Overload Resolution Ambiguity y le pide cambiar el tipo de unidad? Por más que trato no me deja correr el programa, no se si será un problema con la versión, ya revisé todo y no lo logro

    • @berkutmig8319
      @berkutmig8319 3 ปีที่แล้ว

      A mí igual, es como si impidiera el programa desde antes del compilation time. debido al null safety

    • @manuelpetron5864
      @manuelpetron5864 3 ปีที่แล้ว +1

      Igual si digo que la variable sea = null no se ejecuta el código se supone que eso no deberia pasar

    • @bbipv6
      @bbipv6 2 ปีที่แล้ว

      Hola Jose y compudiste resolverlo yo me quede justo ahi, saludos !!!

  • @javierfuentes132
    @javierfuentes132 4 ปีที่แล้ว

    buen tutorial, se agradece!

  • @sofiagimenez282
    @sofiagimenez282 4 ปีที่แล้ว

    Hola! EXCELENTE CANAL! Buenas tardes. Necesito cambiar el color de un botón una vez que el usuario lo apretó. Saben hacer esa funcionalidad? Es para indicarle al usuario que el botón ya fue apretado.... y que no lo vuelva a apretar....De ante mano muchas Gracias!

  • @MiraJuegos
    @MiraJuegos 3 ปีที่แล้ว

    Hola señor Brais, una duda, puedo crear una funcion(para sacar un separador = de lineas), para usarla en las demás funciones pero la duda es donde la tengo que crear publica en la clase principal? para poder acceder desde otra funciona a ella?

  • @TheErudito
    @TheErudito 3 ปีที่แล้ว +2

    hice todo lo q esta en el video me hace error
    println(mySafetyString?.length)
    mySafetyString?.let {it: String}
    println(mySafetyString!!)

  • @gabrielascanio820
    @gabrielascanio820 4 ปีที่แล้ว +5

    Hola hackermen y Brais!, a ver si me podeis aclarar una duda...
    He visto que en las anteriores lecciones, a la hora de crear las funciones, lo haces para algunas como "private fun", y otras, simplemente "fun"... ¿Esto a que se debe?

    • @soykhasai
      @soykhasai 9 หลายเดือนก่อน

      las funciones y atributos pueden tener niveles de privacidad, de esta forma se controlas desde donde puedes acceder a tus variables o funciones. Una Public puede ser accedida desde otras clases sin problemas, pero una Private no puede ser accedida de otra clase y solo puedes manipularla desde la clase donde creaste esa funcion privada. Han pasado 3 años ya, pero espero que te sirva la respuesta

  • @brayandiazburgos6802
    @brayandiazburgos6802 2 ปีที่แล้ว

    disculpa despues de la leccion 10 que seguirta

  • @El_isma2023
    @El_isma2023 4 ปีที่แล้ว +1

    lo voy a volver a ver ya que no entendi nada, en que caso se usa y algunas dudas mas jaja

    • @alejandrosantiagomanriquen123
      @alejandrosantiagomanriquen123 3 ปีที่แล้ว

      Se usa en caso de que tengas demasiado codigo, usual cuando empiezes a construir una app. Eso te ayuda a que el resto del codigo se pueda ejecutar con normalidad y no solo soltarte un error que no permitira que se ejecute.

  • @victorlefeu
    @victorlefeu 4 ปีที่แล้ว

    gracias!

  • @Nanitotv
    @Nanitotv 4 ปีที่แล้ว +3

    No me funciona el "mySafetyString?.let" , una vez que comento la variable para volverla null, cambia a "it:nothing", y salta error de "overload resolution ambiguity. Apesar de tener el "?:run"

  • @diegofernandorojassanchez9276
    @diegofernandorojassanchez9276 4 ปีที่แล้ว +1

    Como estas, te tengo una pregunta, ya terminé el curso que impartes, el curso de kotlin, y profundice cada tema como muchos ejercicios y leyendo mucha documentación, donde encontré muchos más temas como la programación orientada a objetos, y muchas cosas más, la pregunta es esta, sigo estudiando el lenguaje o con lo básico que aprendí gracias a ti, podre adrentrarme ya a utilizar android

    • @victoradriangarciahernande4725
      @victoradriangarciahernande4725 4 ปีที่แล้ว

      Puedes hacer ambas. Lo mejor es tener un proyecto en mente e irlo desarrollando, de lo que tengas dudas, vas y te documentas. Es la mejor manera de aprender.

  • @andyarias2307
    @andyarias2307 4 ปีที่แล้ว

    Por qué a veces colocas prívate fun y a veces solo fun?

  • @Llal79
    @Llal79 4 ปีที่แล้ว

    Buenas! Quisiera preguntar. Me da error al leer null por lo que no puedo controlar la excepción. Gracias de ante mano!
    var mySafetyString: String? = "Luiggi null safety"
    mySafetyString = null
    mySafetyString?.let {
    println(it)
    } ?: run {
    println("El valor fue nulo! Error de programa.")
    }
    Overload resolution ambiguity:
    public inline fun println(message: Any?): Unit defined in kotlin.io
    public inline fun println(message: Boolean): Unit defined in kotlin.io
    public inline fun println(message: Byte): Unit defined in kotlin.io
    public inline fun println(message: Char): Unit defined in kotlin.io
    public inline fun println(message: CharArray): Unit defined in kotlin.io
    public inline fun println(message: Double): Unit defined in kotlin.io
    public inline fun println(message: Float): Unit defined in kotlin.io
    public inline fun println(message: Int): Unit defined in kotlin.io
    public inline fun println(message: Long): Unit defined in kotlin.io
    public inline fun println(message: Short): Unit defined in kotlin.io

  • @rockjershon
    @rockjershon 2 ปีที่แล้ว

    hola maure disculpe tengo un error al poner los 2
    signos de admiracion porque se deve esto !!

    • @pepeulloa358
      @pepeulloa358 2 ปีที่แล้ว +3

      tuve el mismo problema ya que el metodo print que ocupamos no reconocia los dos caracteres por lo que genere una variable para mySafetyString!! para poder asignarla if (mySafetyString != null) {
      var aux:String? = mySafetyString!!
      println(aux)

    • @WDartik
      @WDartik ปีที่แล้ว

      Una solución simple pero efectiva muchas gracias !!! @@pepeulloa358

  • @JoseCastillo-ph3bo
    @JoseCastillo-ph3bo 4 ปีที่แล้ว +1

    Hice todos los pasos, pero no pude ejecutar mysafetystring ! =null,
    Me salía error o
    Me salía Condition mySafetyString! =null is always false 🙁

    • @santiagolista1482
      @santiagolista1482 3 ปีที่แล้ว

      es un warning, no es un error. Funciona igual

  • @myonalicante
    @myonalicante 4 ปีที่แล้ว

    Buenas, no consigo unirme a Discord. ¿Sigue funcionando?

  • @RubenPF
    @RubenPF 3 ปีที่แล้ว

    ¿Alguien tiene el enlace del discord? El de la descripción del video ya no vale.

  • @josealexandermanzueta6958
    @josealexandermanzueta6958 หลายเดือนก่อน

    No funciona el enlace a discord

  • @abnerquinteroorozco598
    @abnerquinteroorozco598 2 ปีที่แล้ว

    Todo iba bien hasta esta lección, por más que intento no logro quitar el error de Overload resolution ambiguity al poner los dos signos de admiración

  • @dimeta2228
    @dimeta2228 4 ปีที่แล้ว +1

    3:25

  • @summermusic1267
    @summermusic1267 3 ปีที่แล้ว +1

    no me funciona el operador !!

  • @soto4476
    @soto4476 ปีที่แล้ว

    En esta clase me perdi un poco. No termino de entender para que sirve el Null Safety

  • @elitetradingpro
    @elitetradingpro 3 ปีที่แล้ว +2

    Quede igual, al paerecer es un profesor mas que dice que es para principiantes que deben venir aprendidos porque obvia explicar conceptos basicos como que es un Null SAFETY y solo se enfoco en como se emplea pero realmente no entiendo para que o en que casos se puede usar mas alla de como se explico el uso del mismo pues los ejemplos fueron muy rapidos y basicos...
    Venia fascinado pero hasta aquí no me parece que no expliquen lo mas basico

  • @isaacgomez3471
    @isaacgomez3471 3 ปีที่แล้ว

    renueva el link de discord

  • @eldiestro1990
    @eldiestro1990 4 หลายเดือนก่อน

    SAFETY...?? en serio....?? 😵😵😵

  • @leaoyola9778
    @leaoyola9778 4 ปีที่แล้ว

    se podria decir que el null termino nulo xd

  • @freddvincent
    @freddvincent 4 ปีที่แล้ว

    *Brother sales en este video **th-cam.com/video/rt4usJ6EnPg/w-d-xo.html*

    • @mouredev
      @mouredev  4 ปีที่แล้ว +1

      Hola! Siiii :)
      Víctor me pidió alguna imagen del MacBook Pro de 16" mientras programaba 👨🏻‍💻