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

Поделиться
HTML-код
  • Опубликовано: 24 янв 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

  • @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.

  • @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 ❤

  • @martin.88
    @martin.88 Год назад +1

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

  • @albertopillado6890
    @albertopillado6890 8 месяцев назад

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

  • @juanmanueljuarezperez9236
    @juanmanueljuarezperez9236 Год назад

    Muchas gracias! Esté contenido es de lo mejor.

  • @juanalbertosulbaranoropeza8972

    sos una estrella nunca dejes de brillar

  • @estefania7975
    @estefania7975 Год назад +1

    Primeraaa! Gracias por el video Aris ❤

  • @omarguevara536
    @omarguevara536 Год назад

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

  • @rafaelbarbeytotorrellas3580
    @rafaelbarbeytotorrellas3580 Год назад

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

  • @surflaweb
    @surflaweb Год назад

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

  • @pablodavidflorezjaramillo2658
    @pablodavidflorezjaramillo2658 Год назад

    Excelente tutorial hermano, muchas gracias.

  • @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

  • @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.

  • @alejandrosanabria1048
    @alejandrosanabria1048 Год назад

    se engancha automagicamente ajjaja que maestro! xD

  • @felipegarces5007
    @felipegarces5007 Год назад

    Gracias justo andaba buscando esto

  • @MYYOTUBEDE1981
    @MYYOTUBEDE1981 Год назад

    Excelente video Aris

  • @MiguelFlecha
    @MiguelFlecha Год назад

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

  • @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

  • @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

  • @salvadorcano553
    @salvadorcano553 11 месяцев назад

    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.

  • @dmorales8027
    @dmorales8027 Год назад

    El puto amo.

  • @managersoft4512
    @managersoft4512 Год назад

    muy capo

  • @cesarrogelioceronvargas951
    @cesarrogelioceronvargas951 7 месяцев назад

    La mejor explicacion muchas gracias

  • @AntliaRodriguez-d9t
    @AntliaRodriguez-d9t 3 месяца назад

    Cuando un video de un juego de cartas? :)

  • @danieliopx3374
    @danieliopx3374 Год назад +2

    puedes hacerlo en jetpack compose 😢

  • @leonelp9593
    @leonelp9593 Год назад

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

  • @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

  • @RaymundoFernandoMontesdeocaLun

    HEY ARI Que tan bueno es usar Flutter?

  • @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

  • @SHURA_RC
    @SHURA_RC Год назад +1

    Aris porque no usas datasource

  • @dmorales8027
    @dmorales8027 Год назад

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

  • @luchoquiru2776
    @luchoquiru2776 Год назад

    excelente

  • @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

  • @aliciabeltran
    @aliciabeltran Год назад

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

  • @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 ?

  • @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

  • @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 👉👈