Hay dos optimizaciones importantes que debemos de realizar en nuestra aplicación así como se encuentran
en este momento.
Obviamente funciona y pareciera que todo está bien pero hay algo importante.
Déjenme mostrarles aquí en el Biehl cuando nosotros llegamos a esta posición en la cual ya tenemos que
cargar los siguientes disparamos.
El método siguiente página que en pocas palabras lo que hace es ejecutar populares voy a poner acá un
print en cualquier lado de este método por lo que hará un print que diga cargando siguientes.
Recuerden que cada vez que este mensaje aparezca nosotros vamos a hacer una petición HTTP.
Por consecuencia si estuviéramos en el dispositivo físico esto consumiría los datos móviles de nuestro
usuario.
Ok entonces estoy colocando esta impresión acá déjeme mostrar la consola hacer un clic y hacer un tuit
Start.
La primera vez debería demostrar que está cargando los siguientes.
Ok eso está bien porque es la primera vez que carga los siguientes.
Si yo empiezo a avanzar quiero que noten qué es lo que va a suceder.
Miren aquí la consola está en el ojo pelen el ojo.
Cuando llego al final ven que se dispara un montón de veces se dispararon.
Uf este montón de veces.
Y recuerden que cada una de esas es una petición HTTP y está consumiendo datos.
Por qué lo hace.
Porque en ningún momento me ría en ningún momento yo estoy bloqueando el scroll o estoy diciéndole No
necesito que esperes hasta que regresen los datos como para volver a cargar los.
Y por eso es que se vuelve a disparar nuevamente esto claro.
En teoría da la impresión de que funcionó y ya tenemos en nuestro móvil aquí en nuestro país y ya tenemos
ese montón de tarjetas creadas.
Claro la imagen no se ve hasta que necesaria por el match pero tenemos ese listado cargado.
Tal vez pueden ser hasta unas 400 películas ya listas ahí y no quiero que esto funcione.
Yo no lo quiero hacer hoy.
Hay una manera sencilla de resolver esto pero recuerden que aquí viene mucho el ingenio de cada quien.
Justo abajo de populares voy a poner una bandera zuliana llamada cargando.
Noten que está como privada por eso el guión bajo lo voy a poner como falso la primera vez instancia
películas Provider voy a decir que estoy cargando igual a falso pagemos en el Jet populares antes de
incrementar o antes de incrementar ese populares Pach voy a preguntar si estoy cargando datos si estoy
cargando datos voy a ser un ratón de un arreglo vacío.
Es decir no hizo nada no regresó nada estoy esperándose estoy cargando datos no voy a continuar contó
el demás.
Lo demás parte de mi código.
Ahora si no estoy cargando voy a decir que cargando va a ser igual a Trump o sea en este momento.
Si ya voy a empezar a hacer la carga de información por lo cual una segunda vez que se realice esta
petición va a fallar esta condición que solo una vez debería de hacerlo.
En qué momento tengo que regresar este cargando falso.
Bueno cuando yo ya tengo la respuesta podría ser exactamente antes de este último retorno y puedo poner
aquí.
Cargando.
Falso.
Voy a grabar los cambios que yo no moví cargando siguientes que aquí da la impresión de que cargó dos.
La primera vez.
Vamos a ver.
Puede ser mejor para que lo miremos claramente no confundirnos con un posible resultado.
Cargándolo siguientes.
Perfecto voy a llegar hasta el final.
Rápidamente llega a su final.
Carga los siguientes.
Aquí apareció voy a llegar al final.
Carga los siguientes carga los siguientes.
Ella no está haciendo aquel montón de peticiones hasta que son necesarios.
Esa es la primera optimización importante de mi aplicación.
Espero que esto haya quedado claro voy a quitar este print porque no me interesa tener esos mensajes
de consola.
Impress puede agravar los cambios en el películas Provider y lo cierro porque lo demás lo voy a hacer
en muy horizontal.
Veremos aquí el pecho se acuerdan cuál era la diferencia entre un Liset View punto Builder y un avión
normal.
Si no no se acuerdan.
No se preocupen el patch va a renderizar todos los elementos que contenga mis películas o sea va a renderizar
los 20 30 50 60 todos los que estén en ese listado de forma simultánea.
Esto pudiera ser una posible falla de memoria.
Si tuviéramos mil elementos cargados ahí renderizar los 1000 simultáneamente.
La diferencia entre el PC y el PC punto Builder es que el Builder los va a renderizar conforme son necesarios.
Aquí se los va creando bajo demanda por algún lado que son creados bajo demanda entiéndase bajo demanda
cuando son necesarios me marca un error acá porque el Childe no es parte del paisaje View Builder lo
que si es parte del PC View Builder el controlador y el pH.
Eso está igual.
Lo que si es necesario es el item Builder muy muy parecido a Liz Builder sólo que aquí lo que quiero
hacer es mandar una función.
Vamos a dejar el mouse encima y recibe el Big context y recibimos un entero que es la posición índex
tiene que regresar un widget.
Ese Widget es cómo se va a construir cada uno de esos yo me voy a poner paréntesis abrir y cerrar llaves.
Aquí recibiríamos lo que es el Big context o si quieres podemos dejar nada más el contexto.
Y ahí sí dejamos el mouse encima van a ver qué de Context y si dejamos el mouse encima de él me dice
que es un hit perfecto.
Ahora tengo que retornar el código para crear una tarjeta y para crear una tarjeta.
Realmente es todo esto este contained.
Recuerden que tenemos este mapa.
Voy a regresar todo este container desde aquí hasta este retorno.
Lo voy a copiar porque está la creación de una tarjeta individual que es lo que yo necesito y voy a
quedarme un nuevo método que regresó a un widget llamado crear una tarjeta o simplemente tarjeta tarjeta
dollares pego todo el código.
Noten que aquí ya viene el retorno porque eso es obligatorio.
Tengo que retornar no hay un error acá que me dice que estoy esperando la película.
Este método necesita la película y también va a ocupar el contexto porque estoy utilizando el tema global.
Entonces definamos ambos.
El Bill context llamado context y necesito también la película que tiene que ser de tipo película obviamente
de película.
Noten que los errores desaparecen hubs context.
Pero por favor los que no sean tan atarantado como yo y ahí está el Complex perfecto.
Este método no está siendo usado por eso sale subrayado azul este crear tarjeta es lo que yo voy a retornar
aquí punto y coma.
Recuerden que necesitamos el contexto y necesitamos la película como tal y de donde extraigo la película
la película.
Recuerden que tenemos nuestro lista completa de todas las películas que están ahí.
Entonces lo que vamos a decir es películas haciendo referencia a toda la colección de películas en su
posesión y eso es la que tenemos que renderizar.
Si lo dejamos así vamos a tener un problema porque sólo va a renderizar 20 y ya las siguientes va a
empezar a tener este problema en la producción 19 no existe.
Ya empieza a darme este error y por qué sale el error.
Porque el PC no sabe cuántos elementos son los que debe colocar acá por defecto coloca el ítem o sea
el largo de ítems igual a la primera carga que tiene datos.
Pero como es dinámico tengo que especificar de cuántos ítems va a renderizar y para eso es el ítem Count
el ítem Count va a ser igual a películas apuntó.
Eso es básicamente todo tras los cambios deberíamos de ser capaces de verlo acá pero mejor hagamos un
vistazo por cualquier cosa porque este es un cambio estructural y vamos a ver si funciona bien.
Entonces empiezo a hacer scroll llego al final carga lossiguientes perfecto llego al final carga los
siguientes llego al final carga lossiguientes y posiblemente si su dispositivo no tuviera tanta memoria
o tanto recurso sientan que mejoró la aplicación.
Posiblemente si ustedes lo estaban corriendo en un celular de alta gama ni siquiera se dieron cuenta
pero este cambio es importante hacerlo si quisieran podríamos reducir el código lo pueden dejar así
no hay ningún problema pero podríamos reducirlo más haciendo una función de flecha.
De esta manera de esa manera y Wílder contexto y tarjeta y todavía podrían obviar mandar el contexto
ustedes no estuvieran utilizando el tema.
El tema principal acá eso es algo que veremos después.
Bueno esas serían las dos optimizaciones opcionales pero se la recomiendo que las hagan.
Son bastante ilustrativas y los veo en el siguiente video asegúrese de guardar todos los cambios y si
vamos a la siguiente clase.