¿Qué es gestión de estados en Flutter?

Поділитися
Вставка
  • Опубліковано 18 гру 2024

КОМЕНТАРІ • 98

  • @diegoveloper
    @diegoveloper  3 роки тому

    📌 My Playlists
    - Flutter Animations Tutorial
    ua-cam.com/play/PLrS57q8gZKG9qOwbWYCkJBg39ANvRSvEh.html
    - Flutter Challenges
    ua-cam.com/play/PLrS57q8gZKG-SvWY9w6JEVVrMRko9txOr.html
    - Flutter Tips - 1 minute:
    ua-cam.com/play/PLrS57q8gZKG_3Xh77m3jLzEL0aFVY83ev.html

  • @diegoveloper
    @diegoveloper  4 роки тому +13

    Hola a todos me ayudarían mucho compartiendo el video y el canal para seguir creando contenido :)

    • @jaimehoyosdominguez8404
      @jaimehoyosdominguez8404 4 роки тому

      También me recomendaron este package pub.dev/packages/hive para manejar base de datos.. que tal sera?

    • @diegoveloper
      @diegoveloper  4 роки тому +2

      @@jaimehoyosdominguez8404 Es bueno, para base de datos NOSQL y cuando manejas bastante información en tu dispositivo.

  • @victorhurtadolopez6684
    @victorhurtadolopez6684 3 роки тому +1

    Eres súper bueno Diego! Llevaba un montón de tiempo buscando como hacerlo sin paquete

  • @AlejandroFlores-lk5cv
    @AlejandroFlores-lk5cv Рік тому

    Gracias Diego, esto es oro molido, para el tema yo hubiera usado de manera primitiva sharedPreferences para guardarlo, ahora veo que hay formas más avanzadas.

  • @jeanmartinpachasvilla6640
    @jeanmartinpachasvilla6640 4 роки тому +1

    Excelente @diegoveloper , con Streams algunos ejemplos....

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

    gracias por la excelente explicación

  • @Jdbluesky
    @Jdbluesky 3 роки тому

    Impresionante!!! Muchas gracias por tan completa explicación. Eres grande!!

  • @johnalexanderg9693
    @johnalexanderg9693 2 роки тому

    Excelente video, muchas gracias.

  • @mustafashaikh7829
    @mustafashaikh7829 3 роки тому

    Yeah nice explanation and example on state management.

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

    Mi primer comentario como Miembro Developer

  • @jaimehoyosdominguez8404
    @jaimehoyosdominguez8404 4 роки тому +2

    Excelente video, puedes hablar sobre como implementar SQLite con buenas practicas ?

  • @kike1918
    @kike1918 4 роки тому

    Gracias diego me aclaraste muchas dudas, estaré pendiente en los siguientes videos.

    • @diegoveloper
      @diegoveloper  4 роки тому

      gracias :D justo acabo de subir uno nuevo

  • @jpq1987
    @jpq1987 4 роки тому

    Hola Diego, muy clara la explicación!

  • @immanueldiaz5710
    @immanueldiaz5710 4 роки тому

    Genial!! cual seria para ti la mejor forma de hacerlo en base a tu experiencia?

    • @diegoveloper
      @diegoveloper  4 роки тому +1

      No existe una mejor forma de hacerlo, usa el package que más te guste y con el que tú y tu equipo se sientan más cómodos.

    • @immanueldiaz5710
      @immanueldiaz5710 4 роки тому +1

      @@diegoveloper Grandioso crack! si usamos MultipleProvider seguiria la misma logina de un Provider normal?

    • @diegoveloper
      @diegoveloper  4 роки тому +1

      así es, sería lo mismo pero menos elegante usar providers concatenados, para eso está el multiprovider :)

  • @dennisdllg
    @dennisdllg 4 роки тому +1

    Excelente explicacion, sinceramente lo tenia miedo a la gestion de estados con Bloc y mi desconocimiento me llevo a provider, pero ahora lo entiendo mejor.... buen video. Una pregunta, veo que es mejor no utilizar Paquetes por lo que te preguntare si utilizando Bloc, tuviste la necesidad de utlizar Provider en algun momento?? Podrias subir este ejemplo a GitHhub. Gracias.

    • @diegoveloper
      @diegoveloper  4 роки тому +3

      Sí, pero más por practicidad, uso provider e implemento bloc a mi manera.
      En proyectos reales solo necesito Provider para la gestión de estados. Para demos puedo evitar packages, es bueno conocer como funciona Flutter primero para que luego el uso de packages sea sencillo.

  • @VicGeek
    @VicGeek 4 роки тому

    No esperaba menos de tus videos Diego, ojala puedas subir más videos del funcionamiento del provider.

    • @diegoveloper
      @diegoveloper  4 роки тому +1

      Gracias :D, algo en específico sobre Provider?

    • @VicGeek
      @VicGeek 4 роки тому

      @@diegoveloper Por ejemplo bro, yo tengo un carrito de compras, al darle "agregar al carrito", en el icono debe incrementarse en 1 unidad dependiendo de los items que mandes no?, como se guardaría en el celular eso para que si cierra la aplicación no se borre.

    • @diegoveloper
      @diegoveloper  4 роки тому +2

      @@VicGeek ah pero eso ya no depende de provider, flutter_bloc, etc, sino más de la lógica que manejes, podrías usar shared_preference, sqflite, hive, es tu elección , no es un tema complejo, busca info sobre persistir datos en flutter

  • @inuma5623
    @inuma5623 3 роки тому

    gracias me quedo muy claro

  •  4 роки тому +5

    muy bueno, podrías hablar un poco de test en flutter en un próximo vídeo?

    • @diegoveloper
      @diegoveloper  4 роки тому +3

      Creo que eso podría ser un tema para un live en the dart side :p , prepararé un challenge con animaciones para el sgte video.

  • @jaimehoyosdominguez8404
    @jaimehoyosdominguez8404 4 роки тому

    Excelente video, está muy claro. Gracias !

  • @felipevergara4179
    @felipevergara4179 3 роки тому

    Buen video! Saludos desde Chile :D

  • @gauchokk
    @gauchokk 4 роки тому +1

    Buen videro, pregunta, si eso provider y en ese bloc tengo un metodo que se usa en varias vistas cambiando valores, en todas las vistas que lo uso debo usar el consumer?

    • @diegoveloper
      @diegoveloper  4 роки тому

      Si tienes un provider Global, encima del MaterialApp, entonces si podrás acceder al bloc en las demás vistás, de lo contrario no, solo en la vista que inyectes.

    • @gauchokk
      @gauchokk 4 роки тому

      @@diegoveloper perfecto, gracias

  • @mtux
    @mtux 3 роки тому

    muy buen vídeo, muchas gracias!!!

  • @JJ17CP
    @JJ17CP 3 роки тому

    2 preguntas, sensei. La primera, Provider con package o sin package ¿cuál sería tu recomendación? y la segunda, cuando hacemos uso del ChangeNotifierProvider(), ¿debe ir siempre en el main()?

    • @diegoveloper
      @diegoveloper  3 роки тому +1

      1- Provider solo va bien.
      2- No necesariamente. Mira este playlist donde uso Provider y GetX, el primer video es solo de UI, El segundo con GetX y el tercero con Provider: ua-cam.com/video/Ek4tRH19xiY/v-deo.html

    • @JJ17CP
      @JJ17CP 3 роки тому +1

      @@diegoveloper ¡capo! me encanta este sector y gracias por el apoyo y la dedicación que brindas a toda la comunidad

  • @adalidosmarlimachilopez2449
    @adalidosmarlimachilopez2449 4 роки тому +1

    Tengo que refactorizar mucho código jajajaja, gracias Diego

    • @diegoveloper
      @diegoveloper  4 роки тому +1

      Jaja, siempre hay que refactorizar :D , comparte el video para seguir creando contenido

  • @yubervasquez
    @yubervasquez 4 роки тому

    Muy bueno muchas gracias como siempre

  • @juanpablogonzales7874
    @juanpablogonzales7874 4 роки тому

    Hola diego estuvo muy bueno el video y la explicacion pero tengo una duda el bloc lo hiciste sin usar streams o sink lo entendi q lo hiciste parecido al provider mi duda es en q situaciones se debe aplicar los streams

    • @diegoveloper
      @diegoveloper  4 роки тому +2

      Tu decides, es a gusto personal, puedes usar Streams, ValueNotifier, ChangeNotifier, como uno se sienta más cómodo, para este caso la forma más sencilla es ChangeNotifier. Incluso cuando traes data en tiempo real de Firestore con Streams, lo puedes transformar a ValueNotifier y emitir datos. ua-cam.com/video/ogXEriEdMDU/v-deo.html

    • @juanpablogonzales7874
      @juanpablogonzales7874 4 роки тому

      @@diegoveloper geníal la verdad que yo siempre que escuchaba bloc lo relacionaba a streams y ahi todavia sigo pataleando jeje me cuesta un poco a un y justamente por eso tambien lo veia mas facil el uso de provider pero en tu video hasta me parecio mas facil la parte del bloc jeje gracias 😀👍

    • @diegoveloper
      @diegoveloper  4 роки тому +1

      @@juanpablogonzales7874 Sí, lo que pasa es que las primeras charlas de Google fueron con BLoC + RXDart incluso, más complicado aún, pero luego al salir scopemodel, provider, etc, vieron que habían formas más sencillas de implementar la gestión de estados :)

    • @juanpablogonzales7874
      @juanpablogonzales7874 4 роки тому

      @@diegoveloper si justamente eso pensaba que bloc era mas complicado que otras opciones como provider y yo rompiendome la cabeza para entender los streams y medio que lo deje ahi de ladito y me pase al team provider pero en tu video el bloc lo vi bastante claro

    • @diegoveloper
      @diegoveloper  4 роки тому

      @@juanpablogonzales7874 Dale, de todas maneras es bueno que aprendas Streams :) , no te olvides de compartir el video, esto me ayuda para seguir generando contenido :D

  • @arcechava
    @arcechava 4 роки тому

    Excelente !!!
    Gracias !!!

  • @gauchokk
    @gauchokk 3 роки тому

    Hola, pregunta, sabes como es posible con ValueListenableBuilder que usa un ValueNotifier actualizar un TextEditingController() que esta en una clase diferente de donde están los dos primeros

    • @diegoveloper
      @diegoveloper  3 роки тому

      El TextEditingController es un listenable, así que podrías actualizarlo directamente desde otra clase.

    • @gauchokk
      @gauchokk 3 роки тому

      @@diegoveloper este es el caso que tengo. En un archivo tengo una clase que tiene visualmente 3 TextEditingController(), en esa misma clase llamo un endpoint que esta en otro archivo, su respuesta trae los datos para cargar en esos TextEditingController(), como es posible que desde ese segundo archivo cargar los datos que trae el endpoint, no se si me explique bien, gracias

    • @diegoveloper
      @diegoveloper  3 роки тому

      Ejemplo: Clase BloC (lógica de negocios)

    • @gauchokk
      @gauchokk 3 роки тому +1

      @@diegoveloper ah ok perfecto, muchas gracias, lo estaba haciendo con un interface

  • @llaandresmcll3833
    @llaandresmcll3833 4 роки тому

    muy buen video bro, sigue así!

  • @mitzukodavis7393
    @mitzukodavis7393 4 роки тому

    Prefieres hacer el bloc por pantalla o por funciones?

    • @diegoveloper
      @diegoveloper  4 роки тому +1

      Un BLoC por pantalla me va bien casi siempre, si la pantalla tiene muchos widgets con mucha lógica, prefiero un BLoC por cada widget (complejo), para poder tener los BLoCs más limpios.

  • @danielalcantara6696
    @danielalcantara6696 4 роки тому

    Excelente contenido

  • @wjbtc4395
    @wjbtc4395 3 роки тому

    Hola diego una pregunta como hacer para organizar la app de esa manera digo las paginas para que tengas 2 apps dentro de una sola

    • @diegoveloper
      @diegoveloper  3 роки тому

      Solo crea botones y enlaza a vistas distintas, es lo que hice

  • @juancarlosnino379
    @juancarlosnino379 4 роки тому

    gracias

  • @gauchokk
    @gauchokk 3 роки тому

    Diego tengo una pregunta, tengo un app que carga un listado con la respuesta de un webservice, eso está ok, como haría si por ejemplo no tengo internet, obviamente la tabla no carga pero si quisiera que cuando vuelva internet cargue la tabla llamando al webservice, como lo podría hacer?, gracias

    • @diegoveloper
      @diegoveloper  3 роки тому

      Revisa algun package de conectividad, para que puedas escuchar cambios cuando tienes o no internet -> pub.dev/packages?q=connectivity , en base a eso podrías recargar datos.

    • @gauchokk
      @gauchokk 3 роки тому

      @@diegoveloper gracias, voy a revisar, he visto algo que se llama RX pero no entendí como funciona, con eso sería posible?

    • @diegoveloper
      @diegoveloper  3 роки тому

      Eso es un package de reactividad, no es necesario, puedes manejar el estado de muchas formas como explico en el video

    • @gauchokk
      @gauchokk 3 роки тому

      @@diegoveloper perdon preguntar tanto, eso de RX para que se usa?

    • @diegoveloper
      @diegoveloper  3 роки тому

      medium.com/flutter-community/why-use-rxdart-and-how-we-can-use-with-bloc-pattern-in-flutter-a64ca2c7c52d

  • @__renesan
    @__renesan 4 роки тому

    Usando flutter_bloc las variables de datos como un carrito de compras debería de estar declarada en el bloc?

    • @diegoveloper
      @diegoveloper  4 роки тому +2

      Así es, en este caso solo use la clase `bloc` para manejar eventos y estados en esa clase, flutter_bloc te sugiere hacerlo en base a bloc , eventos y estados, bloc gestiona ello, para realizar acciones usas eventos y para mostrar/guardar datos usas estados bloclibrary.dev/#/fluttertodostutorial?id=bloc

    • @__renesan
      @__renesan 4 роки тому

      @@diegoveloper veo que los guarda en un File, osea mi duda es por buena práctica se debe persistir la información que se usa al momento o se podría tener variables en el bloc que la guarden por así decirlo solo mientras lo usa?

    • @diegoveloper
      @diegoveloper  4 роки тому +2

      La forma en como persistes eso tú lo defines, puedes guardarlo en file, en preferences, o solo en memoria.
      Si quieres que tu carrito persista luego de que cierras la app, entonces Shared_preferences/SQFlite/Hive son una buena opción.

    • @__renesan
      @__renesan 4 роки тому

      @@diegoveloper gracias

  • @alexanderrepreza3369
    @alexanderrepreza3369 4 роки тому

    Utilizando el changenotifier los widgets pueden ser stateless?

    • @diegoveloper
      @diegoveloper  4 роки тому +1

      Así es

    • @alexanderrepreza3369
      @alexanderrepreza3369 4 роки тому

      @@diegoveloper excelente gracias!

    • @diegoveloper
      @diegoveloper  4 роки тому +2

      @@alexanderrepreza3369 De nada :) buena observación, solo para algunos casos podrías usar stateful, quizás en tu bloc con changenotifier podrías tener un StreamController, por lo cual necesitas liberarlo en el método dispose(), por eso necesitarías stateful/state para en el método dispose del state llamar al bloc.dispose();

    • @adalidosmarlimachilopez2449
      @adalidosmarlimachilopez2449 4 роки тому

      @@diegoveloper en un statelesswidget no se libera automáticamente el stream ?

    • @diegoveloper
      @diegoveloper  4 роки тому +1

      @@adalidosmarlimachilopez2449 Si lo usas dentro del widget StreamBuilder, si se libera automaticamente, pero si lo usas suelto para emitir datos con sink.add , entonces hay que liberarlo manualmente , streamController.close()

  • @luisalbertomartinezgarcia3012
    @luisalbertomartinezgarcia3012 4 роки тому

    Cómo puedes usar un setter de provider en el initState de un widget?

    • @diegoveloper
      @diegoveloper  4 роки тому

      Provider.of(context, listen:false) , con eso obtienes acceso al provider, ahí puedes usar cualquier método/setter/getter, el listen:false es básico sino no funcionará

  • @peruviancode1360
    @peruviancode1360 4 роки тому

    Oye bro qué opinas sobre GetX?

    • @diegoveloper
      @diegoveloper  4 роки тому

      No lo he probado, solo lo he visto, siento que es muy intrusivo.

  • @gonzalocaira2007
    @gonzalocaira2007 4 роки тому

    Me haz abierto los ojos jaja

  • @emanuellemos5818
    @emanuellemos5818 3 роки тому

    te hago una pregunta brother , videos para aprender flutter desde cero no tenes ?

    • @diegoveloper
      @diegoveloper  3 роки тому

      no, pero hay muchos en youtube, solo busca: curso flutter o curso dart

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

    puedes pasarnos el repositorio de ese proyecto bro ?

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

      uf ya es recontra viejo, jaja, únete al canal para que seas miembro, tendrás acceso a los directos pasados con videos exclusivos de flutter, además desde el plan DEVELOPER tienes acceso a nuestra comunidad de discord donde resolvemos dudas además de hacer sorteos mensuales

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

    Se que el video es algo antiguo ya, pero bueno actualmente me gusta muchisimo mas Riverpod que todos los demas.

  • @jomardevtech
    @jomardevtech 4 роки тому

    Buen video, ahora más claro con bloc y provider, y yo usando los dos a la vez 🤣🤣🤣 solo tengo una duda, que no me queda claro, cuando se usa el context, porque en el video, en la mayoría de los casos no pasas el context

    • @diegoveloper
      @diegoveloper  4 роки тому +1

      ojo que el package flutter_bloc ya incluye `provider` por dentro, como mencioné , provider es una ayuda para la gestión de estados. El context lo podrías usar cuando quieres mostrar un showDialog , snackbar o si quieres acceder al themedata, mediaquery, etc, en el ejemplo use el context para poder acceder al InheritedWidget.
      Comparte el video y suscríbete para seguir creando contenido :D

    • @jomardevtech
      @jomardevtech 4 роки тому

      diegoveloper ósea se usa de la misma forma que en nativo, Gracias 👏🏼

    • @CommunityBrainn
      @CommunityBrainn 4 роки тому

      @@jomardevtech así es, conceptos similares

  • @michaelcarrillo.m
    @michaelcarrillo.m 9 місяців тому +1

    Excelente video, gracias.