Domina los FLOWS - STATEFLOW, SHAREDFLOW y todo lo necesario para trabajar en Android con KOTLIN.

Поділитися
Вставка
  • Опубліковано 9 лют 2025

КОМЕНТАРІ • 58

  • @AristiDevs
    @AristiDevs  Рік тому +6

    ¡Si quieres más tutoriales SÍGUEME! aristi.dev

  • @calixtoandrade996
    @calixtoandrade996 Рік тому +12

    el problema no es el init del ViewModel. el problema es que en tu fragmento no estabas utilizando la instancia del viewModel. Sí, lo estabas inyectando, pero sólo se va a proveer la dependencia para cuando realmente la utilices. Has de cuenta que inyectar es casi casi como un lateinit.

  • @calixtoandrade996
    @calixtoandrade996 Рік тому +16

    Otra cosita, el flow no muere para cuando el viewModelScope muere. Simplemente se deja de colectar. Supongamos que tienes una instancia Singleton de tu Repository que tiene como propiedad un flow. Esa propiedad la consumes en dos viewModels distintos en sus respectivos fragmentos. Ambos fragmentos los atachas a una actividad y puedes ver cómo consumen el mismo flow porque el repo es la misma instancia. Si remueves un fragmento, entonces su viewModel muere, pero el flow no, ya que el otro fragmento sigue emitiendo valores desde donde se quedó.

    • @leonelp9593
      @leonelp9593 Рік тому

      muy interesante ese aporte!

    • @rodrigoseverianogarcia6059
      @rodrigoseverianogarcia6059 Рік тому

      Entonces tengo una duda. ¿Cuál sería la manera correcta de detener el flow?

    • @calixtoandrade996
      @calixtoandrade996 Рік тому +4

      Para un flow simplemente es que no tenga ningún tipo de collector. Recordemos que un flow es un cold flow. Es decir, éste va emitir valores siempre y cuando exista al menos un collector activo. Por ejemplo, si tienes una activity que collecta un flow, navegas a otra actividad y quitas la anterior haciendo un finish, el flow se deja de collectar y por tanto, por más el repository quiera emitir nuevos valores porque se está modificando, por ejemplo, la base de datos, no lo va hacer.
      Cosa que es no lo mismo para un SharedFlow o StateFlow, ya que éstos son hot flows
      @@rodrigoseverianogarcia6059

  • @agullojorge
    @agullojorge Рік тому

    Porqué no he visto antes este TREMENDO video!!!!! Gracias!!!🙌🙌🙌🙌

  • @kushiromorales7122
    @kushiromorales7122 Рік тому +2

    Te amo weon gracias por tus videos me ayudan muchisimo a aprender ❤

  • @janderlaffitaordunez3126
    @janderlaffitaordunez3126 Рік тому +1

    Siempre encuentras la mejor manera de explicar las cosas, eres un crack

  • @DanielTorres404
    @DanielTorres404 Рік тому

    Buenísimo, Aris. Este tema da mucho tema pero lo explicas de maravilla.

  • @juanmanueljuarezperez9236
    @juanmanueljuarezperez9236 Рік тому

    Muchas gracias! Esté contenido es de lo mejor.

  • @albertopillado6890
    @albertopillado6890 9 місяців тому

    Videardo guapo para repasar conceptos! Gracias como siempre Aris, eres un jefe!

  • @omarguevara536
    @omarguevara536 Рік тому

    Gracias por tu talento de explicar, y por compartir con los demas ❤

  • @juanalbertosulbaranoropeza8972

    sos una estrella nunca dejes de brillar

  • @martin.88
    @martin.88 Рік тому +1

    Aris,. Gracias x el video. este contenido vendría de 10 para agregar en el curso de udemy..!

  • @angelhdz6554
    @angelhdz6554 Рік тому +1

    El uso de flow puede servir como un listening a un servicio web, por ejemplo que cada cierto tiempo, mi app verifica la sesion a un servicio web si sigue activa o a caducado, en dado caso de que caduque hacer una accion y si sigue activa que se mantenga logueado el usuario

  • @estefania7975
    @estefania7975 Рік тому +1

    Primeraaa! Gracias por el video Aris ❤

  • @rafaelbarbeytotorrellas3580

    pedazo de crack!! Muchas gracias por hacer fácil lo complicado!!

  • @pablodavidflorezjaramillo2658

    Excelente tutorial hermano, muchas gracias.

  • @gustavomoreno8390
    @gustavomoreno8390 Рік тому

    La razón de que no cargue la función example() desde init es que el view model no se inicia cuando se declara. Llamando a una función sin nada dentro, por ejemplo initializeFirstBlood(),el init sería ejecutado

  • @surflaweb
    @surflaweb Рік тому

    Bien claro. El ultimo video haslo consumiendo un api. 🎉🎉🎉

  • @n7zeha993
    @n7zeha993 Рік тому

    Aprendí mucho con este video gracias, seria genial si hicieras test del viewmodel manejando como respuesta las clases selladas, ya que al menos en mi caso no puedo burlar las clases selladas simulando los casos Succes o Error.

  • @MYYOTUBEDE1981
    @MYYOTUBEDE1981 Рік тому

    Excelente video Aris

  • @RealformStudioXR
    @RealformStudioXR 9 місяців тому

    Aris el problema del Init, es por que la intancia del viewmodel aun no esta lista, si inicializas una copia del viewmodel entonces ya tienes a dispocicion init

  • @felipegarces5007
    @felipegarces5007 Рік тому

    Gracias justo andaba buscando esto

  • @MiguelFlecha
    @MiguelFlecha Рік тому

    Qué fácil suena todo cuando lo explicas tú

  • @salvadorcano553
    @salvadorcano553 Рік тому

    Quería hacer una aplicación en la que necesito tipo 3 en raya, ajedrez, me apaño para hacer las columnas y las celdas en jetpack compose, para pintarles imágenes de figuras o fichas, pero no sé como ponerles un id a cada celda, establecer una matriz para y en funcion de la que pulses hacer una cosa u otra, es algo práctico que se sale a lo mejor de tu trazado de contenido, pero te agradecería si consideraras hacer algo parecido, para enseñar las bases, gracias. He pensado en hacer una clase que se le de un id y cree un Box para cada casilla, pero se me atasca un poquito.

  • @RaymundoFernandoMontesdeocaLun

    HEY ARI Que tan bueno es usar Flutter?

  • @alejandrosanabria1048
    @alejandrosanabria1048 Рік тому

    se engancha automagicamente ajjaja que maestro! xD

  • @SHURA_RC
    @SHURA_RC Рік тому +1

    Aris porque no usas datasource

  • @dmorales8027
    @dmorales8027 Рік тому

    El puto amo.

  • @aliciabeltran
    @aliciabeltran Рік тому

    Tengo entendido que en caso de UiState este debo collectarlo en mi Ui con un collectLatest{} ya que no quiero mostrar estados que ya pasaron

    • @AristiDevs
      @AristiDevs  Рік тому

      Dependiendo de tus casos de uso

  • @danieliopx3374
    @danieliopx3374 Рік тому +2

    puedes hacerlo en jetpack compose 😢

  • @dmorales8027
    @dmorales8027 Рік тому

    Yo compré el de udemy. Pero entiendo es el mismo de codeacademy correcto?...

  • @cesarrogelioceronvargas951
    @cesarrogelioceronvargas951 7 місяців тому

    La mejor explicacion muchas gracias

  • @DevsSebas
    @DevsSebas Рік тому +1

    Me estás diciendo que puedo resolver lo de recibir.. Por ejemplo, Datos desde un microservicio?? 😱😱😱No me arrepiento de haberme subscrito.. Toma broth.. Ahí tienes tomo mi dinero 💸💸💸💸💸

  • @renzoromanank1657
    @renzoromanank1657 Рік тому

    Genio

  • @pirrimori6
    @pirrimori6 Рік тому

    Muchas gracias aristidev, aprendo mucho con tus videos, eres un fenomeno. Tengo un problema y no se como solucionarlo en mi aplicacion, cojo los datos desde firebase realtime y cuando cambian los meto en room que me actualiza la vista mediante flow, pero si hay muchos cambios se vuelve loco el recyclerview. Puedo hacer algo para que actualice el recycler sin que se note tanto? Es en androidtv y molesta mucho la verdad. Gracias

    • @jmorasot
      @jmorasot Рік тому +4

      Con DiffCallback quizá pueda ayudar un poco las operaciones que se hacen sobre el recycler

  • @EchaleQ
    @EchaleQ Рік тому

    Ojalá hubiera visto este video antes de pelearme durante días con ellos hasta entenderlos jajaja. Me resulta curioso que digas que no has conseguido iniciarlos en el init() del ViewModel, cuando yo en mi app si los inicio ahí.

    • @diegomedinapadilla2400
      @diegomedinapadilla2400 Рік тому +1

      No le funciona porque al inicio del vídeo cuando pone el flow en el init no está ocupando el viewModel en el activity solo lo declaro, si lo hiciera al final del vídeo y pusiera el ejemplo dentro del init, para obtener lo del repo, ya serviría porque el activity ya ocupa el viewModel al recolectar lo que tiene el stateFlow

  • @manuelrodriguez3628
    @manuelrodriguez3628 Рік тому

    Buenas! buen vídeo como siempre.
    Una pregunta: no me deja entrar al Discord. "No se puede aceptar la invitación".
    A alguno le ha pasado lo mismo ?

  • @aliciabeltran
    @aliciabeltran Рік тому

    Saludos, cuando estas para saber cuando el uiState debe ser igual a _uiState y cuando a _uiState.AsStateFlow()

  • @managersoft4512
    @managersoft4512 Рік тому

    muy capo

  • @leonelp9593
    @leonelp9593 Рік тому

    explicastes lo que es el Flow Como si fuesemos retrasados
    Me gusta, asi deberian ser todos los Tutoriales xDDD

  • @luchoquiru2776
    @luchoquiru2776 Рік тому

    excelente

  • @mibarcita3223
    @mibarcita3223 Рік тому

    DEBERIAS HACER UN VIDEO HABLANDO DE ADMOB, PORQUE ES CONFUSO AHORA COMO SE MONETIZA, NO SE ENTIENDE

  • @edgarn.sr19
    @edgarn.sr19 Рік тому

    Qué ventajas o desventejas podría tener flow sobre usar RxJava/RxKotlin? viendo el video me imagino algunas pero me gustaría tu opinión

    • @janderlaffitaordunez3126
      @janderlaffitaordunez3126 Рік тому

      Bueno para mí lo fundamental es que cuentas con un recurso propio del lenguaje, así te evitas el uso de librerías externas

    • @calixtoandrade996
      @calixtoandrade996 Рік тому

      la ventaja de flow son sus maravillosas funciones de extensión. Puedes hacer una buena cantidad de operaciones dentro del flow e incluso combinar varios flows en uno sólo.

    • @edgarn.sr19
      @edgarn.sr19 Рік тому

      @@janderlaffitaordunez3126 Ese es un buen punto, gracias por tu comentario

    • @edgarn.sr19
      @edgarn.sr19 Рік тому

      @@calixtoandrade996 Eso mismo también se puede hacer con Rx pero lo que desconozco es la variedad de distintas operaciones que existe entre Flow y Rx. Gracias por tu comentario

  • @AntliaRodriguez-d9t
    @AntliaRodriguez-d9t 4 місяці тому

    Cuando un video de un juego de cartas? :)

  • @alfonzoruiz7705
    @alfonzoruiz7705 Рік тому +2

    Ya no expliques en formato xml utiliza jetpack please que para halla es q vamos el futuro

    • @calixtoandrade996
      @calixtoandrade996 Рік тому +1

      yo creo que es irrelevante el framework de vista. En este video se habla de los flows y arquitecturas. Si estás más interesado en Compose, en Udemy Aris tiene un buen curso sobre eso

    • @mamcodes3041
      @mamcodes3041 Рік тому

      @@calixtoandrade996 cuanta razón!!

  • @MxChrisRMx
    @MxChrisRMx Рік тому

    pero no me veas directo a los ojos porfavor 👉👈