Nos hemos quedado así en la clase pasada tenemos nuestro Provider que tiene un método cargar data que
regresa un hecho que a su vez resuelve una lista con objetos dinámicos.
Pocas palabras esta lista son las opciones que yo necesito mostrar en esta lista.
Hay varias formas de hacerlo pero hemos tenido el problema de que cuando obtenemos las opciones ya es
un poco tarde porque mi desvio está creado.
Hay varias formas de resolver esto o que voy a poner aquí el comentario o si quieren lo pueden borrar.
Ustedes desean yo voy a hacer lo siguiente Voy a llamar al menú Provider punto.
Cargar data y acuerdense que como esto regresa un ficho yo puedo escuchar el punto en paréntesis y aquí
yo recibiría mi lista de ítems.
Si dejo el mouse encima aquí me va a decir que yo lo que voy a obtener es una lista de tipos dinámicos
más adelante nosotros vamos a cambiar ese tipo dinámico pero no quiero mezclar tanta cosa a la vez.
Por lo cual lo vamos a trabajar con el tipo dinámico por los momentos aquí yo voy a tener una lista
de opciones.
Esto entre paréntesis y aquí viene nuestro cuerpo de esta función.
Punto y Coma.
Aquí yo voy a esperar a obtener esa respuesta perfectamente aquí puedo hacer un print de esas opciones
Energy opciones puntico.
También puedo poner otro print.
Luego ya les voy a enseñar cómo depurar esto de otra manera.
Bueno esto realmente no es una depuración esto simplemente son mensajes de consola ya llegaremos a la
parte de la depuración y aquí voy a poner un mensaje que diga lista así que estoy ejecutándolo en este
método.
Voy a grabar los cambios mostremos el dibujo con son limpiemos y voy a hacer esta vez un reloj no un
cristal puede tocar este botón y noten que cuando se está creando la lista obtenemos esta respuesta.
Podemos comentar ya este menú Provider podemos quitar esta línea que nos imprima en las rutas ya no
las ocupamos.
De hecho yo las voy a borrar grabar los cambios no importa se vuelva a dibujar la lista y aquí tenemos
la información.
En pocas palabras alguien puede llegar y decir Ok Fernando entonces lo que podríamos hacer acá con esta
lista es poner la construcción de este Live View aquí adentro y tiene mucho sentido la verdad podría
hacerse pero tenemos un pequeño problema si nuestro método de cargar data tardará mucho tiempo y retornamos
la información porque pudiera ser que tarde un segundo o dos segundos.
Nuestra aplicación parecería como congelada y trabada y nadie quiere que su aplicación luzca congelada
o que está fallando cuando realmente está obteniendo información de algún lugar.
Entonces esta alternativa no es tan viable por lo cual déjenme borrar todo esto Ok voy a borrar esto
y voy a comentar esa línea estoy aquí lo voy a borrar también por eso no podemos hacerlo de esa manera.
Hay unas cosas que sí podremos hacerlo si hay otras que no. Para nuestra suerte Flores nos ofrece algo
llamado el futuro Builder lo vamos a buscar aquí en la documentación de Flora C8 Builder.
Acá entramos y nos dice que es un widget que permite dibujarse a sí mismo basado en el último Snapshot
que interactúa con eso no me dice absolutamente nada.
Fernando Bueno no se preocupen.
Vamos a hacer el ejemplo y esto va a quedar más claro un frío Chord tiene varios estados cuando se está
pidiendo información cuando se resuelve o cuando da un error esos son los tres estados que nos interesan
y nosotros podemos reaccionar dependiendo de cualquier cosa que suceda.
Vamos a comenzar a crear este fichero Builder que no es más que un widget con una cierta lógica adicional.
Vamos a comenzar voy a definirme aquí el rechoncha porque ya no voy a regresar a este libro.
Voy a retornar un Future Vilda Tapp parentesis.
Por cierto el fichero Boiler es una característica común y de hecho ustedes pueden ver si usted selecciona
eso y presionar tap les crea todo el fichero Wílder.
Pero obviamente como en la primera vez que lo estamos usando no es conveniente hacerlo de forma automática
porque si no no aprendemos nada si dejamos el mouse encima del fichero Biber vamos a poder observar
cuáles son los errores que me está marcando.
Aquí dice que el parámetro Builder es requerido y por eso me está marcando el error.
Vamos a ver vamos a ir poco a poco.
Hay una propiedad en el fichero Builder llamada obviamente Ezzor tiene que estar enlazada a lo que nosotros
queremos esperar o sea nuestro futuro en este caso tendríamos que esperar que se llame este cargar data.
Este es nuestro futuro.
Entonces aquí puedo llamar el menú Provider punto.
Cargar data que nosotros sabemos que regresa a un fichero por eso lo acepta correctamente.
Luego otro argumento que nosotros tememos que es opcional que es el inicial Daira el inicial Daira no
es más que la información que va a tener por defecto mientras no se ha resuelto ese hecho.
En nuestro caso un inicial Daira totalmente válido sería una lista vacía aunque este argumento es opcional.
No hace falta ponerlo y todavía nosotros podríamos crear algún tipo de loden o mecanismo ya vamos a
llegar a eso.
Lo voy a dejar simplemente escrito ya lo veremos en acción enter y ahora viene lo que sí nos está pidiendo
que es el Builder el Builder la propiedad Builder recibe Déjeme poner el mouse encima recibe una función
por eso ustedes lo pueden deducir porque están estos paréntesis recibe una función que tiene como argumento
el video con Tex y un Ising Snapshot que es del tipo de la respuesta que tengo en mi ficha.
Por eso aquí lo está detectando que es una lista de tipo dinámico lo que retorna es un widget Builder.
En pocas palabras ese widget Builder o con ustedes miren un Wílder significa que es algo que les va
a permitir a ustedes dibujarlo en la pantalla de su dispositivo.
Vamos a crear esto para que quede más claro es una función que recibe como argumento el contexto lo
vamos a llamar context Koma y un Zink Snapshot o aparece Eysenck snap shot llamado Snapshot reprenderlo
Snapshot y aquí viene el cuerpo de mi función Enter.
Si yo dejo el mouse encima del context va a decir que es Bing context pero no hace falta colocarlo porque
ya viene inferido y encima dice que es de tipo Bing context perfecto.
Es Snapshot si lo dejo encima dice que es un ezin Snapshot de Dinamic.
Esto tal vez no está muy bien.
Yo podría evitar ese Dinamic especificando el tipo de dato acá o aquí arriba pero lo voy a poner acá.
Es una lista de tipo Dinamic.
Si yo dejo el Maudos encima ahora de la Snapshot me va a decir que dentro de ley single Snapshot hay
una lista de Dinamic ya vamos a ver cómo trabajamos con eso.
En este Wílder se va a disparar en varias etapas una cuando cepillando data dos cuando ya se obtuvo
la data o tres cuando tenemos algún error vamos a escribir aquí Snapshot punto y aquí tendríamos varias
cosas como Daira que significaría que tenemos ya la data sucedió un error y si no hay ninguna de estas
dos se está pidiendo información entonces por los momentos ya llegaremos al punto donde hagamos loading.
Y bueno este sería un punto para hacerlo pero no esta información está localmente en nuestro dispositivo
lo cual sería demasiado rápido aunque lo pudiéramos ralentizar con algún Tilley.
Lo mejor es que hagamos eso cuando ya estamos pidiendo información mediante servicios HTTP.
No digo que quiero hacer acá es crear mi limpio.
En pocas palabras este código que yo tengo acá voy a cortar esto y no voy a pegar aquí adentro.
Aquí arreglamos la tumoración un poco y todavía podría resumir esto a una función de flecha pero lo
voy a dejar así para no confundirlos mucho.
El Wílder debe regresar un widget y este widget se va a crear ya con la información que nosotros tenemos
de nuestro fecho.
Puedo imprimir acá y hacer un print.
Voy a poner aquí Wílder Panticosa y voy a imprimir el Snapshot punto Daira solo para que observemos
que ahí tenemos nuestra información de las rutas que vienen de nuestro servicio Jayson.
Entonces voy a limpiar la consola voy a hacer un blog y ahí la tenemos.
Ok aquí tenemos nuestro Wílder y aquí está.
Ok entonces vamos a dejarlo así.
Voy a cerrar esto ya no necesito este Builder.
Este mensaje no lo voy a ocupar y si siguió más encima recuerden que tenemos nuestra lista de Dinamic.
Esta lista de Edain yo la voy a mandar a mi.
Creación de lista de items.
Yo la voy a mandar acá en este preciso instante me marcó un error porque esa lista de ítems no está
esperando ningún argumento yo voy a decir que voy a recibir una lista puedo ponerle dinamita.
Posteriormente le vamos a poner un tipado aquí también y se va a llamar.
Vamos a poner aquí en el nombre del método se va a llamar data.
Ahora lo que yo tengo que hacer es crear mis listas o mi lista items en base a esta nueva lista que
yo estoy recibiendo acá.
Entonces déjeme quitar todo esto y vamos a hacerlo de la siguiente manera.
Aquí siéntanse libres de configurar esto como ustedes desean la sociedad terminó como mejor les plazca.
Yo lo voy a hacer de una manera sencilla voy a crear una variable final llamadas List que va a ser de
tipo Willett o sea una lista de widgets se va a llamar opciones.
La inicial hizo con una lista vacía ahora voy a hacer un data punto for each voy a barrerlos todos y
aquí yo tendría una opción o Pete le voy a poner y ahora y cierra llaves punto y coma.
Recuerden que hay muchas formas de trabajar con esto.
Recuerden el video anterior que les enseñó dos maneras.
Esta va a ser otra voy a barrer cada una de las opciones que se encuentren en esa lista y voy a crearme
un Willet temporal widget temp así lo voy a poner.
Qué va a ser igual un List Lista.
Parentesis Enter.
Ups.
Punto y Coma enter y definamos el título tal para ser igual a text parentesis y el texto va a venir.
En la opción que tengo acá en Europa entonces PT o PT y entre llaves cuadradas voy a buscar texto y
texto porque así lo tengo definido acaben texto tengo ícono y tengo la ruta entreellos aquí va a ser
el texto no le voy a poner ningún subtítulo.
Pero en el lining si voy a colocar un ícono por los momentos voy a generar un icono por defecto.
Sea aquí hay conjuntó y en cualquiera no importa voy a agarrar ese acá.
Luego lo vamos a hacer de manera dinámica o semi dinámica ya lo van a ver más adelante y el training.
También voy a poner otro ícono que sea una flecha que me indique a mí que yo puedo hacer clic en él.
Entonces icons apuntó que Ivor Arrow regista es este de acá.
Perfecto podríamos cambiarle el color de una vez estos íconos.
Voy a poner aquí el color y para eso necesito acá la clase colors.
Punto y busquemos el azul o el color que más les guste a ustedes.
Voy a colocar esto aquí también que aquí también grabo los cambios ustedes podrían observar que no revienta
la aplicación y porque creen que es porque todavía no estamos regresando nada.
Ok.
Es la costumbre que yo tengo de que cada paso salvando tal vez es un poco mi paranoia.
Voy a dejarlo así.
Voy a poner un tap tap que va a ser un método que todavía no defino por qué nos va a servir para hacer
la navegación.
Por último yo tengo este billete lo tengo que agregar a mis opciones que fuera de todo este cuerpo entonces
aquí voy a decir opciones apuntó a parentesis y voy a agregar mi widget temporal también voy a agregar
lo que es mi divague entonces a parentesis aquí Heider parentesis punto y coma.
Y aquí también voy a poner 2.5 no interpreta bien la sintaxis.
Ok ahora regresemos estas opciones aquí al final es con opciones.
Voy a grabar los cambios y ahora sí deberíamos de ser capaces de ver esto.
Si hago clic en una opción aparece el efecto de material y ya tenemos cargada nuestra lista en base
a nuestro archivo Jayson claro el ícono todavía no aparece.
Eso es algo que vamos a ser un poquito más adelante.
Pero lo importante es que ya hemos hecho todo el ciclo de leer un archivo Jayson proveer esa información
usar el fichero Builder y mostrarlo en pantalla han sido bastantes cosas que espero que sea bastante
ilustrativo para ustedes y les doy ideas de cómo manejar sus proyectos en un futuro.
Todavía tenemos mucho por delante así que manos a la obra Los veo en el siguiente.