Desarrollo de aplicaciones con Flutter para principiantes | Rahul Agarwal | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Desarrollo de aplicaciones con Flutter para principiantes

teacher avatar Rahul Agarwal, Flutter Developer & Trainer

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      INTRODUCCIÓN AL CURSO

      0:45

    • 2.

      Cómo crear un proyecto nuevo

      12:10

    • 3.

      ¿Qué son los widgets

      5:58

    • 4.

      Cómo trabajar con activos y archivos de Pubspec

      7:00

    • 5.

      Widget de texto y andamio

      14:39

    • 6.

      Botón de acción flotante

      8:38

    • 7.

      Cómo cambiar color y estilo

      6:17

    • 8.

      ¿Qué son los widgets apátridas

      7:17

    • 9.

      Activos e imágenes de redes

      7:32

    • 10.

      Widget de icono y botón

      12:02

    • 11.

      Widget de contenedores

      9:39

    • 12.

      Widget de TextField

      6:50

    • 13.

      Columna y fila

      8:03

    • 14.

      ListTile y vista

      8:59

    • 15.

      Qué es un Estado

      6:33

    • 16.

      El método setState()

      6:38

    • 17.

      Widget estado en acción

      11:08

    • 18.

      Qué es la función initState()

      6:30

    • 19.

      Cómo entender el ciclo de vida

      7:41

    • 20.

      Concepto de pilas

      4:49

    • 21.

      Método de empuje y pop

      12:54

    • 22.

      Cómo entender la ruta

      12:38

    • 23.

      Cómo transferir datos a constructores

      17:03

    • 24.

      Widget de navegación de cajones

      10:53

    • 25.

      Barra de navegación inferior

      14:18

    • 26.

      Sumérgete en un widget de textField

      5:38

    • 27.

      Cómo agregar un controlador de edición de textos

      8:44

    • 28.

      Validación de entrada del usuario

      13:15

    • 29.

      Decoración y otras propiedades

      10:09

    • 30.

      Widget de diálogo de alerta

      8:03

    • 31.

      Cómo mostrar una barra de refrigerios

      6:10

    • 32.

      Cómo entender futuros

      17:05

    • 33.

      Concepto de espera

      8:19

    • 34.

      Qué son arroyos

      12:40

    • 35.

      Widget de constructor de futuros

      12:12

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

303

Estudiantes

3

Proyectos

Acerca de esta clase

Si sigues el mundo tecnológico, es posible que hayas oído hablar de Flutter y su creciente popularidad día a día. Hay muchos trabajos en este nuevo marco, pero el suministro de desarrolladores calificados es menor. Así que es hora de mejorar nuestra habilidad y aprovechar esas oportunidades lo antes posible. Aprenderás los conceptos básicos hasta que se adelanten en este curso que es suficiente para empezar a solicitar tu trabajo de ensueño.

Flutter es un kit de desarrollo de software de código abierto que se usa para desarrollar aplicaciones multiplataforma de alto rendimiento con una base de código única. Ahora obviamente necesitaremos una base de datos en el futuro. La ventaja real de elegir flutter con Firebase como backend es que te ofrece un paquete completo de administración de aplicaciones. Desde el almacenamiento en la nube a la base de datos en tiempo real, el alojamiento a servicios de autenticación, Firebase te proporcionará todo en un solo lugar y satisface perfectamente las necesidades de las startups.

¿Qué aprenderás en este curso?

  • Conceptos de flutter

· Qué son los widgets

· Widgets Stateless

· Explorar diversos widgets

· Qué es un Estado

· Cómo administrar estados

· Conceptos de navegación

· Manejo de la entrada de usuarios

· Programación asíncrona

       

Conoce a tu profesor(a)

Teacher Profile Image

Rahul Agarwal

Flutter Developer & Trainer

Profesor(a)

Hello, I'm Rahul. I am skilled in building cross platform application using Flutter. I am freelance developer as well as conduct workshops to share my knowledge with the community.

Ver perfil completo

Level: Beginner

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción al curso: Si eres nuevo en el desarrollo de aplicaciones y buscas un trabajo para ganar una cantidad decente de dinero, entonces no te arrepentirás de tomar este curso. Como todo el mundo sabe que Florida es tecnología de tendencia y ha cambiado la forma en que construimos aplicaciones. Se trata de una herramienta multiplataforma para construir aplicaciones para Android iOS web deck stop con solo una base de código. En este curso, aprenderemos todo desde cero. Es para principiantes absolutos. Entenderemos sobre widgets, cómo administrar conceptos de navegación de estado, manejar entradas de usuario, integrar API de descanso. Todos estos conceptos son suficientes para darte confianza como desarrollador. Entonces, ¿sangraste por tu trabajo de ensueño? Entonces sin desperdiciar nada más que la lente se inicia. 2. Cómo crear un nuevo proyecto y entender la estructura de archivos: Ahora ha llegado el momento de que creemos nuestro primer proyecto de Florida. Ahora para asegurarnos de que el aleteo se esté instalando correctamente, solo podemos usar un comando como versión aleteo. Primero abra el símbolo del sistema y luego simplemente seleccione este comando y presione Entrar. Si no puedes ver ninguna versión, entonces la has instalado correctamente. Y si hay alguna versión más reciente también, entonces también se puede ver como una nueva versión de Florida está disponible. Pero ahora mismo estaremos trabajando con Flutter 2.2 si es necesario más adelante y ambiguos, vamos a actualizar pero no sabremos. Los datos de Crf están instalados correctamente en su sistema. Ahora para crear el Proyecto Florida directo a mis hijos son de dos maneras. Primero es usar Android Studio. Si utilizas mucho Android Studio, entonces solo puedes ir y anexar Android Studio e instalar que requería extensiones lejos aleteo, porque habrá una herramienta de extensión en Android Studio como bien. Simplemente tienes que descargar o instalar las Herramientas de datos. Pero no prefiero el estudio enriquecido porque antes que nada, es muy, es, usa muchas de tus fuentes de PCD. Lo hace más lento, supongo porque soy un modo de un usuario de VS Code o muero texturalmente prefiero que nos código. Entonces eso es ola. Estaremos usando código VS. Asegúrate de instalarlo en tu sistema. Es muy fácil. Solo puedes ir a bajarlo. Ahora para crear esfuerzo un proyecto primero, ve a la carpeta donde quieres tu primer proyecto. Entonces simplemente anexa un prompt común allí y simplemente escribe, Flutter, crea. Este es el código. O puedes decir, esperar a crear un nuevo proyecto. Y después de la creación, cualquiera que sea el nombre que le des será un nombre de proyecto que sea tu nombre de aplicación. Se puede decir obviamente que se puede cambiar más adelante. No es un tema. Simplemente vamos a un tutorial de aleteo. Tutorial, está bien, haz clic en Entrar. Por lo que simplemente descargará y creará su proyecto acampanado. Si estás viendo todo hecho, Eso es todo. Lo has hecho correctamente. En, Dentro Definitivamente proyecto. Es posible que veas muchos archivos de los que discutiremos ahora solo. Pero antes de eso, simplemente anexamos código VS patio, vamos al archivo y solo anexamos. Y aquí simplemente tienes que anexar tu proyecto así. Por lo que se ven carpetas y archivos que estaban presentes. Ha utilizado con éxito el Código VS. Ahora. Ahora lo que haremos, veremos más sobre estas dos estructuras de carpetas. Hay diferentes carpetas. Eso es Android, iOS en vivo, prueba de spec dot YAML que web, señor de la cosa carpetas y archivos. Sólo tenemos que recordar que la carpeta android es donde se almacenan los archivos borrados de Android. No lo cambiamos mucho. Simplemente lo usaremos para algunas cosas como cuál será el ícono de tu aplicación, dispositivo Android, ¿cuál será el nombre de la aplicación? Son muy pocas las cosas específicas de Android son plugins, pero no todo el curso. Igual con la carpeta iOS plegada es tener todos los archivos que se utilizarán para construir una aplicación iOS. Pero sólo haremos esos cambios, pequeños, pequeños cambios que habían adquirido nodo, no código de color oscuro. Ahora que esta hoja cae, eso es lo principal, esta es la carpeta que la usaremos una y otra vez. Aquí es donde estaremos trabajando la mayor parte del tiempo. Por defecto, contiene Main.Jack. Este es el punto de entrada de la aplicación fotográfica, como dije ya lo hemos visto en esa sección de datos. Y ese punto principal, punto o la función principal, es el punto de entrada. Si vas y haces click en ellos. Esta función principal aquí, guardar. Y definitivamente habrá otras cotizaciones también. Y podría que te abrumara en la actualidad. Entonces no mires ese código. Tan solo recuerda esta función principal. Después de eso. Hay prueba, prueba esto donde pones el código de prueba de unidad para la aplicación. Cuando estés listo, cuando tu aplicación esté lista para la producción, tienes que probarla mucho tiempo. Las pruebas son un tema completamente diferente el cual no estaremos cubriendo porque antes de ir a probar, debes tener una aplicación de aleteo estructurado muy limpia. Y luego siguiente y muy importante archivo es Pub spec dot archivo YAML. Este archivo define la versión y el número de compilación de su aplicación. Si ves, solo veremos esta versión y ésta se usará cuando estés publicando tu aplicación en cualquier lugar, torr o iOS Store. Primero usos es esto, y luego estas dependencias. Y podría estar preguntando ¿qué son las dependencias? Lo veremos y entenderemos también en el siguiente video. Porque dependencias significa que tu aplicación definitivamente dependerá de software de terceros o biblioteca o plugins. Esto también es muy importante. Debería tener un video separado para discutir. Pero sólo recuerda, me he saltado otras carpetas y archivos porque la mayoría de las veces realmente no necesitamos tocarlos. Sólo tenemos que trabajar en salto, Pub spec dot YAML y poco en dentro de la carpeta Android e iOS. Por lo que ahora tienes tu aplicación de aleteo arriba. Es hora de ejecutarlo en un dispositivo. Para dispositivo solo anexa Android Studio porque deberías tener un emulador. Si no tienes el emulador, puedes usar tu dispositivo Android físico también. Solo tienes que asegurarte de tener el modo de depuración activado en la configuración de tu dispositivo Android. Aquí. Sí, dar click, configurarlo. Aquí, tengo un dispositivo. También puedes crear tu dispositivo virtual también. Es muy fácil, pero tengo esta celda grande tres APH sería 8. Simplemente lo ejecutaré. Puede que lleve un poco de tiempo. Ves, tu emulador está aquí, dice dispositivo Android. Ahora simplemente lo que tienes que hacerlo es ser tu código VS ir al punto principal. Y en su ejecución, basta con dar click en Iniciar depuración. Y ahora hay que esperar un rato, porque por primera vez, tomará algún tiempo, pero puedes quedarte. Es lanzar nuestro principal ese punto en ese emular que el modo de depuración. Entonces esto es bueno. Esto está funcionando. Yo sólo quiero decir que inundado es una herramienta muy impresionante. Es como si fuera muy fácil de entender y fácil de trabajar. También, has entendido que los conceptos básicos en cualquier lenguaje de programación son los mismos que en el lenguaje oscuro. Sólo recuerda, cuando estás usando Android Studio, tu sistema podría estar laggy. Son, se puede colgar porque sus usos en tu RAM. Por lo que podría no usar o hacer cualquier otra cosa mientras estás trabajando en un emulador de Android porque en sí mismo está haciendo que tu sistema funcionara muy duro. Y no quieres estrellarte porque estás actualizando sistema no pudo manejarlo. Sí. Está mostrando las salidas de compilación flutter, APK, app debug dot APK. Entonces espero que sepas que esa extensión APKs menudo aplicación de dispositivo Android. Ahora, está bien. Ves, tendrás esta pantalla anchos como aleteo demo homepage. Y en su oído medio estará, has pulsado el botón este muchas veces y un botón está aquí. Si hago clic en él, ver 1, 2, 3, 4, 5, va en aumento. Por lo que finalmente tenemos nuestra aplicación flutter corriendo en nuestro emulador. En el siguiente video, estaremos hablando más de los conceptos como widgets y otra cosa. Por ahora. Espero que hayan disfrutado. 3. Qué son los widgets: hoy hablaremos de widgets. Cuando estamos trabajando en coqueteado. Se encontrará con esta palabra mucho tiempo porque he escrito dentrode porque he escrito dentro esfuerzo aplicación es un presupuesto. Desde un texto sencillo, dos botones hasta diseños de pantalla. Simplemente te pondré un ejemplo. Si estás viniendo, si tienes alguna experiencia desde en desarrollo web, entonces entenderás que hay barra de navegación, campo de texto, div, tablas en Bootstrap o en HTML. En aleteo. Todas esas cosas que otros elementos de la interfaz de usuario se llaman widgets. Eso es todo. Entonces no es un concepto muy difícil. No estoy diciendo que los widgets sean, a menos que en líder estés escribiendo, pero para el entendimiento básico, hay que recordar que si ves algo en esa pantalla, será un widget. Eso es todo. Ahora, cada widget tendrá propiedades, o puedes decir argumentos que tenemos que pasar. Entonces si recuerdas el concepto de argumentos nombrados del programa oscuro anterior, dudan tutoriales, ya lo hemos hecho. la misma manera. Yo lo hubiera hecho. Widget también es una función que puedes guardar porque en la parte posterior del código de núcleo aleteo, se menciona como argumento llamado. Simplemente les daré un ejemplo. Aquí. Definitivamente este código que no debes tocar. Simplemente verás de qué hablo. Este centro es un widget. Por lo que es propiedad está aceptando es 11. Propiedad se llama niño. Sólo imagínate. Sí, yo solo, sólo lo estoy escribiendo aquí. Contamos con una función call center. Y aquí podría estar aceptando algo como argumento llamado. Supongamos nombre de cadena. Aquí, es lo mismo está ahí, pero es propiedad rígida llamada niño. Es por eso que estamos llamando a este widget centrado re-indexar propiedad child. Estamos enviando de nuevo un widget diferente, esta columna. En los próximos videos, nos sumergiremos profundamente en todos los textos de columna de centro estable de presupuesto, sean cuales sean, widgets vamos a entender todos y todo. Pero en este momento solo quiero dar un panorama básico. Al menos debes saber cuál es el significado de la palabra widget. Ahora puedes irradiar, escuchar eso, y esa propiedad aceptará la mayor parte del tiempo widget como su valor, como te dije, como te he demostrado que en esa propiedad infantil, Está aceptando una columna que es de nuevo Abhijit. Y lo último es que cada widget empieza con su nombre seguido de paréntesis. Entonces otra vez, voy a raquetear y supongo que este es un texto rígido luego paréntesis. Y dentro de sí mismo, tienes otras propiedades. Supongamos que niño así y esto, otra vez exceptuado , valore, pero en un texto, no es niño, supongo que es diferente, pero solo te estoy dando un ejemplo básico. Ahora. Ver esta imagen. Esta es una manera, esta es una aplicación construida usando aleteo. Entonces aquí, si puedes ver este botón de Verde, están esta imagen o esta flecha, todo esto, nuestros presupuestos. Este texto es de nuevo un widget. Esta barra de navegación vuelve a promediar. Ejemplo. Se trata de una aplicación de entrega de alimentos muy básica, pero se ve tan bien porque está construida con Flutter. Por lo que estas categorías también son un widget llamado fila porque es de izquierda a derecha, horizontal. Entonces dentro de esta cosa circular o lo que sea, o el ícono de búsqueda también es un widget. Igual es este ejemplo. Esta barra de búsqueda es de nuevo un widget. Este botón de navegación vuelve a ser un widget. Esta imagen es de nuevo un widget. De lo que el widget ahí es la imagen. Eso es todo. Lo verás en el video posterior. Yo solo quiero mostrarte que lo que sea que estés viendo en este momento en la pantalla, todos ellos son diferentes, diferentes widgets. Eso es todo. No lo hacemos yo si estás abrumado, entonces también está bien porque está bien. No has hecho nuestro trabajo, hecho algo así, pero es muy sencillo. De acuerdo, hasta ahora, esto es suficiente con ese tema de widgets. Gracias. 4. Trabajar con recursos y archivo Pubspec: En la sesión de hoy estaremos cubriendo un tema muy básico del patrimonio. Entonces podría estar preguntando ¿qué son los activos? Imagínate que tienes una aplicación, y definitivamente en esa aplicación, tendrás algunas imágenes, algunas imágenes diferentes. Eres el logo de una empresa, son algunos archivos de fuentes diferentes, son algunas animaciones, lo que veas, tienes algunos archivos diferentes para tu aplicación. En ese momento. Tienes que asegurarte de que lo has hecho. Usted ha dicho que para su proyecto de aleteo que estos son los activos que quiero que me incluyan en mi solicitud. Eso es todo. Por el momento que lo que tienes que hacer es ir a tu carpeta de proyecto de filtro. Aquí verás diferentes carpetas. Basta con crear una nueva carpeta de activos. ¿ O a qué te refieres con que quieres dar? Normalmente doy activos de TI porque es conveniente para mí. Entonces dentro de los activos, qué activos quieres si tienes justo si quieres, también puedes simplemente dejar aquí todos tus expedientes, el electoralmente. Pero lo prefiero. Nuevamente, crear una carpeta de imágenes son si quieres. Perdón. Si quieres. Si lo deseas, también puedes tener diferentes carpetas, como los fondos son lo que sea. Por lo que de esta manera tienes tu estructura de carpetas más antigua correctamente. Ahora en las imágenes, solo tienes que ir y copiar cualquier imagen que quieras y simplemente pegarla. Tengo esto si quisiéramos ver la imagen. Ahora, lo que tienes que hacer es tener tu carpeta aquí correctamente. Pero ahora es el momento. Implementamos nuestro le decimos a nuestro Proyecto Florida, Esta es la carpeta Activos. Por eso. Tienes que ir a ese archivo KML. Ahora, solo recuerda este archivo Pub spec dot YAML es muy sensible, bien, porque si tienes una pestaña extra o espacio extra o lo que sea, toda tu aplicación se estrellará. Entonces solo recuerda y ten mucho cuidado. No toques nada. Sólo recuerda aquí. No obstante se puede ver esta cosa patrimonial que está en el comentario. Así que simplemente vaya a una y antes de una y simplemente apile de nuevo espaciado dos veces. Eso es todo. Y otra vez aquí, retroceso dos veces. No más que eso, porque si estás viendo una rodilla, recuerda deshacer e inténtalo de nuevo. Ahora estos activos este código de activos sólo se hizo ahí para mencionar que nombres de carpetas. Aquí. Simplemente lo escribiré desde el principio. Es como activos y luego imágenes, y luego pierna, Eso es todo. Eso simplemente significa esta carpeta de activos. Dentro de esa carpeta, hay una carpeta de imágenes que acaba de subir. Detendré mi sesión de depuración de Florida. Ya que has hecho un entrenador de cambios bisagras. Y simplemente, si quieres incluir fuentes aquí, esto es lo de la fuente donde solo tienes que deshacer descomentarlo y mencionaste tu ubicación del archivo de fuentes. En este momento no estamos tratando con fuentes porque no es lo más importante en tu aplicación para los principiantes. Ahora más sobre este archivo de especificaciones de Pub. Sólo recuerda, lo primero importante es esta versión. Y ahora mismo no lo vamos a usar. Solo lo usarás cuando estés publicando tu aplicación en cualquier Android o App Store, Apple App Store. En segundo lugar, esta carpeta de dependencias. Ahora podrías estar preguntándome, ¿qué es esta dependencia? Si tienes algún paquete externo, nuestro plugin para implementar en la aplicación de inundación año, usamos esta cosa de dependencias. Y cuando te digo paquete externo, para eso, tienes un sitio web llamado pub sordo. Simplemente puedes ver es un gestor de paquetes para aplicación Flutter. Aquí obtendrás una gran cantidad de paquetes y todo. Ver parte del analizador, Selector de números de inicio de sesión de Google y asisto. Por lo que esto te ayudará a construir la aplicación muy rápido, y definitivamente tienes que usarla. Por lo que sólo iré a buscar. Supongamos HTTP. Entonces tienes esta biblioteca STDP. Simplemente vete. Y sus dependencias, solo tienes que copiarlo así y pegarlo abajo, así y guardar. Pero ahora mismo no lo estamos haciendo porque esto depende. Entonces subunidad usamos en la actualidad, al menos quiero mostrarte cuál es este activo y Pub spec dot archivo YAML. Y cuáles son las dependencias externas que usarás extensamente más adelante cuando estemos construyendo una aplicación de datos intermedios. Espero que hayan entendido los conceptos. Gracias. 5. Widget de texto y Scaffold: Entonces ahora es el momento en esta sesión, entraremos directamente en el concepto de aleteo. Es decir, tenemos que tener las manos sucias escribiendo código nosotros mismos. Saca tu código VS y simplemente ve a Main.Jack. Ahora, lo que tienes que hacer es simplemente ir y eliminar todo ese código excepto la función principal. Al igual que esto, simplemente eliminamos todo el código. Y en el archivo main.js, que es el punto de entrada, simplemente tienes que escribir mi app, material app y luego titular mi primera app. Y luego a casa. Eso es todo. Por lo que hemos importado el paquete de materiales en la parte superior porque los estaremos utilizando Material Design rich, desarrollado por Google, el diseño de materiales de Android. Para iOS, tienes un, también puedes usar el paquete Cupertino, pero solo funciona en el sistema Mac. ¿ Te dirás que necesitarás un dispositivo iOS para que se vea bien. Pero la mayoría de las veces estarás usando el Diseño de Material y solo usas algunos iOS. Los botones también son elementos si quieres en el futuro. Y también puedes ver estamos implementando deudas de Diseño de Materiales. Por qué estamos usando la aplicación de metadatos aquí. Y aplicación material es virgen. Como dije, es el nombre y luego paréntesis, cual acepta dos propiedades. Ese es el título más rápido y el segundo es entero. Título es el nombre de su solicitud el cual se muestra en ese texto, pero es sede. Salga de su solicitud el momento en que su solicitud esté en segundo plano. Pero y este hogar es el diseño principal el cual será visible para el usuario. Por lo que KV tiene nuestra primera aplicación Flutter. Usted ha entendido hasta ahora, esa es la función principal es el punto de entrada. Después de eso, podrías estar preguntándome, ¿qué es esa app run-up corrió? ¿ Eso es culpa? De lo que lo dirás es la vista predeterminada de aleteo de ejecutar nuestra aplicación. Por lo que sólo hay que recordarlo porque está predefinido. Predefinido, no podemos hacer o no podemos cambiarlo. Pero podemos saber más sobre los widgets, que es el concepto central. Entonces, antes que nada, estaremos hablando de ese widget de texto. En cualquier aplicación. Definitivamente, hay que poner algo para que el usuario lo lea. Yo que es su nombre de usuario o lo que son cualquier dato básico simple. Para eso también, primero hay que saber qué widget usar con el fin de imprimir en la pantalla. Antes solíamos escribir la impresión en ese código oscuro. Porque en ese momento sólo estábamos imprimiendo en esa consola de depuración, que no era nada. Fue justo más allá que los desarrolladores conveniencia. Pero ahora estaremos escribiendo algo que se mostrará al usuario que es una aplicación. Entonces texto es ese widget como nombre tolueno y luego paréntesis. Y en esto, Es excepto lo primero como una cadena, que es un argumento posicional. Tienes que recordar esos conceptos oscuros de memoria para asegurarte de que no te confundas. Pregunta qué es esto, ¿por qué este parámetro se envía así y no como argumento con nombre? Volveré al argumento de nombre también. Pero ahora simplemente tendrías que guardar, luego traer tu emulador y ejecutar tu aplicación. Y también se puede ver que testfile es ella porque hemos quitado las canchas. Lo harás, si quieres, solo puedes quitar esta prueba rígida. Por ahora. Porque no lo necesitamos. Ahora de nuevo, solo ejecuta tu aplicación. Tú, de nuevo, tienes que, Puede que te lleve un tiempo. En la última sesión también, hemos entendido cómo importar activos. Es por eso que tenemos que tener se puede vender esa sesión de depuración esa vez. Si hacemos algún cambio de núcleo en la app, debemos dejar de depurar y luego reiniciarla para que eso sepa qué cambios hizo su impresión. Yo sólo quiero que ustedes se familiaricen. Acostúmbrate a este concepto widget de escritura que es de nombre, luego paréntesis, luego dentro de los paréntesis I, entonces será un parámetro de nombre como este título o nombre en un parámetro nacional como este campo de texto. De nuevo, tomará un poco mientras hay que esperar. Se está llevando un poco más de tiempo. Se están construyendo al menos nuestros APKs de depuración. Es un proceso que consume mucho tiempo. Pero para que pase algo bueno, tenemos que esperar. Simplemente ignora lo que se mostraban en la consola de depuración. No tenemos que preocuparnos por eso. Pero mira, ahora la salida estará aquí. Y tenemos una primera aplicación Predator muy fea. Pero a ver que hemos sacado con éxito textos en la pantalla de la aplicación. Entonces eso significa que si tú, si has publicado esta aplicación favor hacia todos los usuarios, cada vez que el apéndice, anexará esta aplicación, verán este texto de mi primera aplicación Flutter. Ahora, podrías estar pensando, esto se ve muy feo. Ese texto está pegado a la parte superior y que estos blancos para que sea hermoso, estaremos usando nuestra próxima región. Eso es widget de andamio. Entonces, ¿qué es un andamio? Para cambiar el color de toda la aplicación o utilizar los botones de barra AB son cualquier cosa como navegar, hoja inferior o cualquier cosa. Utilizamos este widget de andamio. Da un buen aspecto a tu aplicación. Cuenta con todos los elementos necesarios. Ahora, sólo vamos a ir a nuestro código. Simplemente dentro del hogar, quitarás y escribirás andamio. Este es también un widget que aceptará y no saber qué propiedades se acepta. Se puede simplemente controlar y espacio y ver aquí primero apuntalar mi laboratorio. Estas son todas las propiedades que acepta. En primer lugar lo harás, puedes elegir APA. Esta parte, de nuevo, excepto un widget de aplicación. El lado que Bart widget. De nuevo, haga clic en tipo Control más espacio. Aquí habrá un montón de propiedades que uno necesitábamos por dos. Entonces este título aceptará el texto, rocas revoloteadas. Y ahora reinicias. El 21 solo puede Controlar S. Y ahora ver ese cambio. Ves, se ve muy bonito que antes. Sólo porque hemos utilizado un widget de andamio. Eso aquí, lo que sea que estés viendo que es esta barra AB o esta cosa blanca está dentro por esta gorra para widget. Ahora esta porción blanca es el cuerpo donde emitirás lo que quieras mostrar al usuario en las primeras propiedades del andamio. Entonces solo irás tras este control de coma y el espacio y el cuerpo derecho. En el cuerpo tendrás otro texto el cual nos dejará clara aplicación. Y otra vez Control S. Así que podría estar pensando que no se está mostrando nada. Y esa razón es porque ese color de ese texto y la pestaña de color Fondo es dos. Ahora para cambiar el color de fondo, simplemente iría a andamio cada luz. Color de fondo. No tienes que entender lo que estoy haciendo ahora mismo. Antecedentes, supongo. A ver si reinicié la aplicación. Está mostrando mi primera deposición de capa porque era de color vacío. En los próximos videos, entenderemos cómo cambiar colores como este. Lo hice ahora solo para mostrarles la salida del cuerpo. Entonces esta cosa roja es stub body de tu aplicación. Simplemente hay que recordar hasta aquí que APA y cuerpo son propiedad del widget de andamio. Apa tiene el título como su propiedad, que acepta widget de texto en lo que va de momento, porque titulo derecho, puedes tener cualquier widget del cual discutiremos uno por uno. Si queremos ver otra propiedad de AB bar, solo puedes ir por debajo de título y derecha, centro apriete. Y luego cierto. Se trata una propiedad que en sí dice que va a centrar ese título. Este título de la barra de la aplicación. Iremos al centro de tu solicitud. Entonces espero que hayas disfrutado aprendiendo porque eres capaz de construir una aplicación básica con letras. Por lo menos tienes algo en la pantalla ahora mismo, lo cual es muy guay. En el siguiente video, aprenderemos más sobre widgets para adultos porque como dije una y otra vez, aleteo es todo sobre presupuestos. Gracias. 6. Centro y botón de acción flotante: Por lo que seguiremos explorando otros presupuestos. que pedernal no sabía si tienes una aplicación de aspecto muy básico, no aplica solo una UA con algún texto en ella. El siguiente widget, del que estaremos hablando es la visita al centro es una visita muy sencilla y hace lo que dice su nombre. Se centra hacia abajo cualquier rígido. Entonces si queremos centrar el texto en el cuerpo, entonces podemos envolver ese texto dentro de una visita al centro. Para que puedan ver esto, mi replicación plana está en la parte superior izquierda. Si lo quieres al centro del cuerpo, que el centro de la pantalla. Sólo tenemos que envolverlo. ¿ Y tú qué, qué quieres decir con rapt? Si vas, simplemente puedes ver esta cosa material por dentro, entonces es andamio. Esta parte de la aplicación se envuelve debajo del andamio. Este texto está envuelto dentro de la barra AB. Ahora bien, si quiero usarlo, presupuesto del centro de texto, solo puedes irte. Un paso de hacer es simplemente copiar o cortar el cuidado. Entonces chai centro rígido. Esto es rígido. Después entramos, tenemos una propiedad infantil, y simplemente nos retorcimos. Por lo que esto está envuelto por otro widget el cual está centrado. Y como checkout nuestra app. Mira, tenemos ese texto dentro del centro de la pantalla. Sólo recuerda, te dije que esto era una primera vía y la segunda fue, solo lo desharé. Segunda forma es simplemente Cu, haga clic en esta bombilla. Piensa que así arregla. Y aquí puedes hacer un widget y simplemente un centro. Esta es también otra forma de hacer lo mismo. Porque cuando tenemos una aplicación más grande, es imposible que solo cortemos y peguemos todo el tiempo porque hay muchas comas, no son un corchetes involucrados en nuestra aplicación. Ahora. Así que recuerda, no podemos simplemente imprimir directamente cadena dentro de este centrado, como lo voy a cortar y ver que solo puedes escribir directamente cadena aquí así. No, tienes que usar propiedad infantil dentro de ese niño. Tienes, y tienes que usar otro widget, que es el widget de texto. En este momento estamos usando, pero como niño es un tipo de datos de widget, se puede ver aquí, si paso el cursor sobre él, eso significa que aceptará cualquier región. la ley que no hemos aprendido sobre otros widgets. Por eso solo estoy usando el widget de texto básico. Por lo que espero que hayan entendido el widget del centro. Es un widget muy básico. Ahora, el siguiente widget del que estaremos hablando es botón de acción flotante. Entonces solo estoy asumiendo que ya conoces la aplicación WhatsApp. En tu aplicación de WhatsApp, en la parte inferior derecha, verás un icono en nuestro botón. Ese es el botón de acción flotante. Por lo que podemos implementar el botón de acción flotante por la propiedad, por el mismo nombre que es botón de acción flotante para andamio visita. A lo que me refiero con eso. Tienes tu andamio. Nosotros lo hicimos aquí. Primera propiedad, acabamos de darle un color de fondo ya que tenemos que hacerlo rojo. Segunda propiedad fue AB bar. Tercer inmueble fue cuerpo. Ahora tenemos esta coma en. Si voy y controlo un C, hay tantas otras propiedades está exento. Pero estaremos usando el botón de acción flotante. Por lo que ese botón de acción flotante acepta el nombre del widget. Botón de acción flotante. Al igual que esto. Ya puedes verlo ahora tiene botón de acción flotante. Y tiene que apoyar esto, que es obligatorio. Primero este niño, y el segundo está en prensado. Por lo que hijo, sólo tendremos un simple anuncio de texto. Reiniciaré nuestra guardar nuestra aplicación para que los cambios se muestren en la interfaz de usuario. En el lado derecho aquí, puedes ver este botón Añadir. Entonces este es un botón de acción flotante. Ahora mismo, cuando le damos click, no piensa si quieres ver, solo puedes seguir, en prensado y solo escribir, imprimir, hola y guardarlo. Ahora si voy y doy clic a la derecha, si voy y doy clic en nuestro botón Agregar. En la depuración, se puede ver que hay este hola imprimir, imprimiendo. Pero lo principal es que hay que entender que esta es la forma de escribir código de una aplicación de aleteo. Propiedades de engranaje, hay widgets dentro de widgets. Nuevamente, las propiedades de los datos. Esa propiedad volverá a ser excepto algún widget. Y entonces esta descomprimida es nuevo la propiedad del botón de acción flotante. Hay que recordar dónde comienza, dónde termina, qué propiedad es qué rígida. Y si todavía estás consiguiendo países, sólo me gustaría decir que ella te diga que asumió que esta es una función. Estamos llamando a una función de botón de acción flotante y luego enviando dos argumentos nombre que los humanos. Ese es el primero excepto guardar widget. Y el segundo acepta una función. Eso es de nuevo por cada tonta rígida primera letra siempre se mayúscula. Se puede ver este f, este t, su centro, el andamio S. Así que cada widget tiene fósforo letra mayúscula, y cada propiedad está aceptando otro widget como su valor. Por lo que se trata de un niño de propiedad, acepta texto y todas esas propiedades tienen una estadística con esta minúscula letras a, B, a, una barra, un botón de acción flotante. Este f, que es propiedad, este f es letra pequeña. Y en la mayor parte del widget que la propiedad infantil se convertirá. Y aquí se puede ver niño, esto también es niño. Por lo que la propiedad infantil será común. Muchos de dígitos dobles. Si aún te estás confundiendo, solo te pediré que una pausa por algún tiempo y solo tratarás de hacerlo por tu cuenta y hacer algunos errores para que lo entiendas adecuadamente. Pero espero que este video haya despejado y te haya dado la información de dos o más widgets. primero es la visita al centro, y el segundo es el botón de acción flotante, que discutiremos más cosas en los próximos videos. 7. Cómo cambiar el color y el estilo: Hey, bienvenido de nuevo. En esta sesión estaremos aprendiendo a cambiar color y darle estilo a nuestros elementos. Ahora para cambiar de color de cualquier elemento como la barra AB v tienen ciertas propiedades. Tal como en una barra de aplicaciones hay una propiedad llamada background-color. Ahora generalmente amigables, estamos tratando con otras propiedades. Teníamos el valor de string o entero, o un widget. Pero ahora, otro caso es poco diferente. El valor de un color se retiene mediante el uso del teclado. Vamos a punto y seguido por el nombre del color. Ahora hagámoslo prácticamente. Ahora cambiaremos el color de nuestra barra de aplicaciones, iremos y ahora veremos otras propiedades aquí. Y uno de ellos es de color de fondo es sólo colores rectos, oscuro, ámbar. Es uno de los colores. Ahora, revisa nuestra solicitud. Este azul, ¿cambia? Sí, Cambió. Ahora es de color amarillo. Color amarillento. Se puede separar pero es un tono diferente, definitivamente. Por lo que espero que hayan entendido que dar descuidado es muy fácil. Estos colores puntan y si ese widget tiene una propiedad que está aquí, su color de fondo, en otros límites, puede haber diferente. Ahora para cambiar el color del botón de acción flotante, de nuevo, tenemos que ir a comprobar si hay alguna propiedad. Ahora aquí puedes ver hay una propiedad llamada color de fondo, y solo escribiremos colores. Dot antes. Ese color era azul. Simplemente lo haré verde. A ver. ¿ Funciona? Espero, sí. Sí, ha cambiado. Por lo que obviamente cuando estés construyendo una aplicación del mundo real, tendrás diferentes combinaciones de colores para tu app. Por lo que es necesario entender eso, qué color usar y cómo implementar el código de color. Ahora lo siguiente, lo que tenemos, lo que vamos a hacer es cómo darle estilo a ese elemento de texto. Así que cambia el color, nuestros regalos, el estilo a un texto. Tenemos que darle una propiedad de estilo al widget de texto. Por lo que ahora de nuevo, solo puedes leer hay una propiedad llamada estilo. Vamos al elemento de texto. Este primero es un argumento posicional que está en 0. El siguiente, veamos aquí. Sí, un estilo texto-alinear la dirección del texto. Estaré usando propiedad de estilo. Ahora, como mencioné, un texto también aceptamos argumentos diferentes. Pero esto recuerda la primera propiedad es vector posicional v mencionó el texto real. Y otras propiedades son argumentos nim, como uno de ellos es apretado. Ahora la propiedad de estilo aceptará otro widget como su valor, que es el widget de cola de texto de estilo. Entonces aquí sólo tenemos que escribir estilo de texto. Y dentro de ese fin de semana mencionan que cambia cualquier propiedad que queramos. Como primero, me gustaría cambiar ese color. Colores, azul oscuro. ver Vamos a ver aquí. ¿ Cambia? Sí. Además, me gustaría quitar este fondo de color rojo. No se ve bien. Entonces ya está hecho. Está bien. Ahora, entonces siguiente propiedad que estaremos usando es el tamaño de fuente. Ahora cambiemos nuestro tamaño de fuente a 30. Lo sentimos, tamaño de fuente, debería ser divertido. Dice, sí, acepta un entero, podemos decir valor W. Entonces mira, el tamaño de la fuente ha cambiado. Siguiente propiedad que usaremos es su estilo de fuente. Y habrá estilo de fuente, cursiva, y normal. Entonces, ¿qué es esta cursiva? Espero que sepan que sólo le dará posición inclinada. Aquí. ¿Ves esto? Y, y ni staling que usamos es font-weight. Fuente con sondeo de puntos. Simplemente tendrá un aspecto más audaz. Ver. Entonces así es como hacemos estilismo a nuestro elemento de texto. Sí, recuerda, también están sus propiedades. Aquí solo puedes consultar su fondo, fondo, color, decoración, fuente, familia, altura, espaciado entre letras, espaciado entre palabras, sombras. Entonces si quieres, puedes usar todos esos. Pero es muy el Pacífico de Estados Unidos si queremos usarlo o no. Pero generalmente en la mayoría de las demás obligaciones estarás usando tamaño de fuente de color y el peso de la fuente. Además, si quieres asegurarte que el texto esté resaltado, puedes decirlo. Entonces. Espero que hayas entendido ese concepto de cambiar de color y estilo. Eso es todo para esta sesión, aprenderemos más sobre widgets en los próximos videos. 8. Qué es Widget anónimo: Hola, Esta sesión es muy importante porque estaremos discutiendo qué es región apátrida. Entonces hasta ahora, estábamos escribiendo código sólo en nuestra función principal. Pero este no es ese caso cuando creemos la obligación, nos atrevemos, definitivamente tenemos que separar nuestro código en trozos más pequeños y usarlos donde sea necesario. Podemos crear nuestro propio widget, que continuará en los otros widgets que contiene. ¿ Qué tipos de widgets de compilación personalizados son región sin estado y con estado? Ahora mismo, solo tienes que enfocarte en el estado menos rígido. Definitivamente nos volveremos preocupando a la otra región en los videos posteriores. Entonces aquí puedes ver podemos crear una región apátrida extendiendo nuestra clase a región apátrida y tener una implementación mínima de cerveza como esta. Entonces este es un código muy básico de un widget sin estado. Vamos a entrar ahí significa archivo, Vamos a tener un nuevo archivo llamado home dot. Entonces ahora aquí puedes simplemente primero lo que tienes que hacer es tener que importar un paquete de material. Entonces puedes tener pantalla de inicio de clase, que se extiende región apátrida C. ¿De acuerdo? Entonces aquí está hecho. Ahora simplemente tienes que ir y hacer clic en esta bombilla. Se puede ver que faltan 11 anulación. Si le das click, te dará esta cosa. Entonces aquí sólo tienes que devolver algo. Yo sólo regresaré este andamio aquí. Entonces vea nuestra primera pantalla, es decir, la pantalla de inicio está escrita, que es una región apátrida. Entonces podrías estar preguntándome, Vale, pero ¿qué significa exactamente el widget de estado? Así que simplemente recuerda que los datos dentro de un widget sin estado no se pueden cambiar después de que se está renderizando. Supongamos que queremos que después de hacer clic en el botón, se cambie el color del texto. Esto no es posible en lectura apátrida porque ese color, es decir el verde, se renderiza. Es entonces cuando anexamos nuestra solicitud, se está renderizando. Entonces en un apátrida realmente, no es posible cambiar el color. Posteriormente. Es como si no hiciéramos click en Usuario hacer algo de Harvard o lo que sea. Si el usuario interactúa con él, entonces para ese tipo de cosas, debes tener un widget con estado. Pero comprenderás la diferencia entre ambos lentamente. Ahora, aquí, cualquier nombre que sea, este es un widget sin estado. Hay un nombre del widget, y tiene que evitar la función llamada buildup, que devuelve un widget como tipo de retorno. Y este widget significa que esto puede ser andamio, esto puede ser contenedor, esto puede ser botón, esto puede ser icono. Por lo que no es como el widget apátrida siempre es una pantalla completa. También se puede configurar, pero también es parte separada de códigos. No hay necesidad de tomar tanto estrés en la actualidad. Sólo tienes que ir con el flujo. Entonces ahora veamos. Implementa, Vamos a implementar hace fecha menos widget. Ahora, este concepto, entonces lo que tienes que hacer es simplemente ir a esto y cortar este andamio y pegarlo aquí. Ahora, dentro de estos hogares, ¿ Se puede simplemente tener que escribir pantalla de hogares? Y en ese top, hay que importar esa pantalla por así. Ahora, si reinicio de nuevo, verás que nada ha cambiado. Pero tenemos nuestra pantalla de inicio en un archivo separado el cual existía menos rígido. Y a lo que me refiero con apátrida, me gustaría explicarlo de nuevo. Ese es este color del texto que es azul no se cambiará si traté de hacer clic en él en este anuncio. Simplemente, este es el significado de un widget sin estado. Ahora si quiero cambiar ese color de este ámbar para dejar decir qué otra vez? Verde, digamos azul. Ves, esto es, ya sabes, y si ves ahora Control S Hot Reload está funcionando perfectamente. Y no fue porque escribimos todo en el No.5 principal. No como esta rígida. Pero ahora cuando presionamos en Control S, esta función de proyecto de ley se está rendiendo de nuevo. Se llama y se renderiza de nuevo. Mi primera carta proyecto todos los días y acaba de golpear Control S. Ver, está funcionando perfectamente. Entonces ahora es por eso que campana Hot Reload funcionará. Ahora capas podrías estar pensando por qué no funciona sólo porque no nos hemos separado en widget apátrida y con estado. Porque en ese momento en que Lee que funcionará será recordado y se harán los cambios. Entonces espero que hayan entendido el concepto de widget apátrida, apátrida. Y somos capaces de separar tu código de un archivo a múltiples hallazgos. Más sobre esto, definitivamente aprenderemos cuándo estaremos construyendo algunos proyectos básicos. Pero ahora mismo, tanto conocimiento es suficiente. 9. Activo y imagen de red: hoy aprenderemos a mostrar una imagen en nuestra aplicación. Entonces hasta ahora solo estábamos mostrando texto, pero la aplicación real definitivamente va a contenido imágenes. Por lo que ahora hay dos tipos de imágenes. En su mayoría. Esa es una imagen de red y la otra es una imagen de conjunto. Ahora imagen de red, cuando la pecamos por imagen, significa que la imagen vendrá de internet. Es decir, no estamos hospedando esa imagen o no estamos almacenando esa imagen en nuestro código de aleteo. Por lo que tenemos, debemos tener en URL de la imagen para poder mostrarla. En primer lugar, saca tu navegador y solo escribe cualquier imagen de Google, lo quieres como logo aleteo. Entonces tengo tantas imágenes, tengo tantas imágenes, solo elegiré esta imagen y escribiré copia dirección de imagen. Ahora aquí puedes ver esta sintaxis de imagen de red es image.network. Entonces dentro de eso tenemos que pegar la URL. Vámonos. Ahora en el centro, eliminaré este texto e image.net y simplemente lo pegaré aquí así. A ver. ¿Podemos mostrar la imagen o está mostrando, sí, ver, esta es la primera vez que estamos usando una imagen real en nuestra aplicación. Y fue mucho fácil. este momento, eliminamos que son textos en capas rígidos porque no podemos pasar dos widgets directamente dentro del niño. Este problema definitivamente se resolverá en los videos posteriores donde discutiremos sobre el widget que nosotros, que podemos usar para mostrar múltiples, para mostrar múltiples widgets en nuestra aplicación. Ahora bien, hay algunas propiedades también, como aquí se puede ver altura. Entonces altura, podemos dar, si reduzca la altura inmediatamente, muy poco, muy pequeña. Si lo cambio. Ver así. Es así como trabajamos con imágenes de red. Ahora lo otro es una imagen de activo para insertar una imagen que ya está presente en tu sistema. Por lo general lo que hacemos es hacerte caer dejar imágenes en directorio raíz como este aquí hemos hecho activos y dijimos que hicimos directorio de imágenes antes porque es estructura de carpetas muy limpia para hacer. Ahora pegamos un archivo dentro muerto así. Tengo esta imagen archivo PNG de 6 puntos. siguiente paso es darle CO2 Pub spec dot HTML y descomentar la sección de activos que ya no nos gustó esto. Consulte esta sección de activos. Tenemos sin comentarios. Se asegura de sangría o de lo contrario se mostrará agregado, lo que significa. Y este expediente es muy sensible. Por lo que tienes que asegurarte no dar ningún espacio extra ni pestañas en él. Sólo tenía que escribir así ácidos. Ahora, sabrá que dentro de nuestros activos imágenes ahí. Seremos archivos más antiguos. Además, puedes escribir tu ubicación del directorio de imágenes con o sin el nombre de la imagen. Es decir, si no mencionamos el nombre de la imagen así en entonces diré que es correcto porque Vince sube todas las imágenes en ella. Ahora, al seleccionar cómo insertar una imagen de activo antes para la imagen de red, simplemente nos asombramos a esa red. Ahora vamos a hacer conjunto de puntos de imagen, imagen, conjunto de puntos así. Entonces solo diremos sets, luego imágenes. Entonces, ¿cuál es el nombre del expediente? Emite PNG de 6 puntos. 6 puntos PNG. Y ahora veamos, ¿funciona? Ver, tenemos nuestro archivo de activos subido, es decir, nuestra aplicación insignia, sabría de qué archivo estamos hablando. Y esto no viene de Internet. Ahora, podemos cambiar algunas propiedades como altura del lago, podemos dar un 100 C como este. Con también podemos cambiar. Estas son las otras propiedades que puedes cambiar. Pero ahora mismo no queremos. Por lo general, la altura está bien. Suponemos 150 años. Bueno, se ve bien. Por lo que es muy importante entender esa diferencia entre el activo, la imagen de red, porque en tu aplicación del mundo real, estarás jugando con imágenes todo ese tiempo. Toda aplicación tiene algún tipo de imagen en ellos. O es una imagen ácida como el logo de apps, logo. No cambiará fácilmente. Por lo que sólo podemos enviárselo en nuestro código. Y la disponibilidad, algo así como la imagen de perfil de un usuario. Estará viniendo de la base de datos porque el usuario lo cambiará, haciéndolo con frecuencia. Esa es la diferencia. Eso es todo por hoy. En los próximos videos, estaremos hablando algunos otros widgets continuando nuestra sesión así. Gracias. 10. Icon y botón: Ahora es el momento de conocer otros presupuestos, como la visita Icon. Florida viene cargada de toneladas de iconos los cuales se pueden utilizar para hacer nuestra app más hermosa. Si ves alguna aplicación, ya sea a través de Facebook, Instagram, WhatsApp del mismo, definitivamente verás algún tipo de iconos porque lo es, es muy agradable a la vista. Las personas pueden relacionarse directamente con ese icono. Ahora bien, la sintaxis es muy simple. En primer lugar tenemos que escribir icono. Y dentro de eso, v no puede simplemente escribir directamente el nombre del icono. Tenemos que escribir como iconos dot cualquier nombre de icono. Supongamos que puedo iniciar usuario, puedo iniciar alarma, lo que sea. Vamos a probarlo. Voy a quitar a ese niño de la imagen. Ahora. Simplemente diré ícono y luego puedo iniciar el exceso de alarma. Ahora simplemente lo guardaré y verás nuestro icono se muestra en la pantalla y es mucho fácil. Ahora, como cualquier otro widget V usado, definitivamente, podemos cambiar su color y pocas propiedades también. Ahora para cambiar el color, solo diremos coma y luego veremos color, rueda, colores, naranja. Y luego tamaño. Escribiré a un 100. Ahora ves que es de tamaño mucho más grande que he dado a un borde solo para mostrarte que podemos cambiar sus propiedades del ícono. Y la cosa es que no es que podamos usar icono sólo en ese cuerpo. Ahora, yo, si quiero en el botón de acción flotante, solo puedo escribir icono y luego iconos, ese mensaje ahí dentro. Botón de acción flotante. Ver. Por lo que ahora puedes compararlo con el WhatsApp. App Whatsapp tiene también este tipo de yo puedo terminar en ellos. Y se ve muy bien. Tengo que decir después del botón de icono, hay otro widget, que es la región de botones. Por lo que sin botón, cualquier aplicación es inútil. Debido a que los botones están ahí en plomo para dar una retroalimentación, están tomando comentarios del usuario. Es decir, si dice codones flejados Agregar al carrito. Y si es algún formulario, entonces hay que enviar el formulario. Si alguna otra, si dos karma, si tienes alguna edición en tu, si has usado alguna aplicación, podrías haber encontrado muchos botones. Por lo que en aleteado hay tres tipos de Botón, Texto, botón, botón elevado, y puedo ponerlos. Vamos a entenderlo uno por uno. Entonces, ¿qué es este libro de texto? Por lo que en este botón de texto, no habrá alivio. Nuestro efecto 3D como este, si tan solo elimino el icono aquí y escribo texto. Pero entonces primero la propiedad es obligatoria, es ese niño, es decir, qué deberíamos dentro de ese botón, simplemente voy a hacer clic derecho conmigo. Y el segundo obligatorio está en las precedidas. ¿ Qué debe pasar cuando un usuario hace clic en este botón? Entonces mira, este es un botón de texto. No hay color de fondo ni alivio o es solo texto simple. Es por eso que su nombre es éste. Ahora, si de verdad quieres cambiar o darle estilo a nuestro botón, puedes hacerlo. Pero no creo que sea tanto necesariamente porque si quieres hacer estado hay otro pero la densidad es elevada pero un animal. Pero sólo te mostraré cómo cambiar su estilo también. Si ves la propiedad del azulejo y aceptará, si es un texto, pero aceptará textos, pero luego estilo de punto desde y dentro que simplemente puedes escribir primaria, ese es ese color del fondo y esta naranja. Ve que el color ha cambiado. Entonces si quieres, puedes dar algo de relleno. Insets de borde, áreas, ¿verdad? Simplemente 10. Para el relleno definitivamente, no se está mostrando en este momento. Podemos agregar color de fondo, fondo negro si realmente quieres este color. Porque por lo general ¿qué pasa si realmente quieres este tipo de botones? Irás directamente a subir botón porque te da estas características automáticamente. Pero está bien. Entonces. ¿Alguna otra cosa importante? Yo no lo creo. Es tan importante. No. Es así como se muestra un botón de texto. Y si de verdad quieres, puedes darle estilo como usando textos, pero estilo de 10 puntos desde y luego dar propiedades diferentes, diferentes. Ahora, solo recuerda si elimino este estilo. Este es un botón de texto básico. Pero, ¿qué pasa si uso un botón elevado? Si simplemente, la sintaxis es la misma. Si simplemente escribo un botón limitado aquí, entonces ves el color de fondo es su color de texto es blanco y algún alivio es giro dado que es, se da algún efecto 3D. Entonces es por eso que usamos el botón elevado, porque es muy útil de usar. Ahora, de nuevo, si quieres, puedes peinarlo como aquí. Tenemos un estilo limitado pero luego punto de y primaria se hará background-color. Let significa éste. En botón de texto. Es decir, era ese color de texto, pero aquí está el color de fondo. Ahora bien, si quieres alivio, sólo puedes darle cinco. Se puede ver algo más efecto 3D está ahí. Si desea cambiar el relleno, puede cambiar los insertos de borde. Cuando T C, Esto es relleno también se hace. Ahora si quieres cambiar de forma. También puedes hacer eso usando un borde rectangular redondeado. Y luego punto fronterizo de radio. En un punto de radio de frontera. Y puedes usar en años ese circular como a1 desde todos los lados, circular, radio punto conjunto de polar y dar diez aquí. A ver, si doy dos en D, te darás cuenta más. Esta forma está siendo cambiada por este show por eso ADS que hemos dado. Y aquí, estilismo los has entendido. Y esta in premise simplemente lo que debería pasar cuando un usuario presionó sobre él botón. Entonces escribo tiempo, solo imprimiendo. Pero generalmente haces algún tipo de actividad aquí, ver así. Entonces hasta ahora hemos discutido textos, pero luego un botón elevado. El tipo final de botón es el botón de icono. Entonces simplemente lo que hace, es una especie de icono que podemos presionar y hacer algo. Y acabamos de quitar el código anterior y simplemente planteamos que puedo. Pero luego en la prensa estará ahí en botones más antiguos. Y en ícono. Ya te he enseñado a mostrar cualquier icono. Este ícono aquí, checkout. Ahora esto es un ícono, pero puedes hacer clic en él. Puedes hacer clic aquí. Ahora puedes descubrir, comprobar qué otras propiedades acepta, como los colores, el acento azul. Entonces puedo decir es que se puede dar un 100. Ves, se ve tan bien. Y si hay algo más, color salpicaduras, podrías estar pensando, ¿cuál es el color de salpicaduras? A ver. Ver. Si hago click en él. Este es el color de salpicaduras. Y de igual manera tiene en prensa que simplemente imprimiré. Yo puedo. Pero luego ver en la depuración se puede decir botón Can. Por lo que hemos cubierto con éxito todos los tres botones. Eso es un botón de texto elevado pero un botón de icono NDA. Y también cómo usar iconos en nuestra aplicación de aleteo. En este botón de icono, solo recuerda, propiedad infantil no está ahí. Aquí. Puedo propiedades ahí el cual acepta un icono. Y en Alda botones que en prensado es obligatorio. Entonces hay que mencionar lo que debería pasar si alguien hace clic en él porque como es un botón, hay que saber qué debe pasar después de eso. Entonces eso es todo. Espero que estés disfrutando del curso y aprendiendo más sobre diferentes, diferentes tipos de widgets. Nos vemos en el siguiente video. 11. Widget de envase: En esta sesión estaremos hablando de widget contenedor. Entonces, ¿qué es un contenedor? Un contenedor solo envuelve su presupuesto. Entonces si estás familiarizado con el concepto de div en desarrollo web, entonces funciona igual que eso. Utilizamos este widget para que podamos dar margen en alineación con y muchas otras propiedades a ese elemento son los dos widget dentro de él. Entonces solo piénsalo como un envoltorio que se usará para manipular los otros widgets. Entonces, ¿cuál es la sintaxis? Su sintaxis es muy sencilla. Al igual que esto. Contenedor es el nombre del presupuesto y las mentas infantiles lo que debería haber dentro de ese contenedor. Entonces, está bien, empecemos. Simplemente vería mover este código anterior y tener un widget contenedor aquí. En el niño. Tendré que decks region en primer lugar. Entonces será así. Y no esto. Es como coquetear es impresionante. Vamos a guardarlo. Vamos a ver aquí. Entonces puedes ver que el texto está ahí, pero no hay nada como si ni siquiera te cuenta de que ha sido envuelto dentro de un widget de contenedor. Entonces lo que tenemos que hacer si quieres ver ese contenedor, la primera propiedad que puedes usar es esa propiedad de color. Los colores comienzan a temer. Ya sabes usar color non. Ver. Entonces ahora se puede ver qué es esto, esta cosa roja es ese contenedor, se puede decir como caja también en este momento. Por lo que este es el contenedor y tiene propiedades diferentes, diferentes. Primera propiedad, primeros dos, usamos niño y color. Ahora veamos qué es el relleno y el margen. ¿ De acuerdo? Por lo que el relleno y el margen se utilizan para dar espaciado entre los elementos. Entonces, ¿qué es un relleno? relleno es el espacio interior, lo que significa que puedes ver este impresionante II y la caja, y eso está aquí, cosa roja. Se está extendiendo lo de la perspicacia. Y la cosa roja termina azul. Eso es lo de afuera, lo de afuera es margen. Vela con el ejemplo y simplemente le damos propiedad de relleno, relleno y acepta un valor como insets de borde. Después, después de, después de decir si haces clic en dot-dot-dot, entonces tendrás otra la opción Eso es todo de izquierda, derecha, izquierda, arriba, derecha, abajo en Lee simétrico. Por simplicidad, estaré usando todo lo que es del sitio más antiguo. Yo le daré 20. Ahora ya ves, ve desde la perspectiva que esto, esto, y esto, Este es el relleno y se ve compatiblemente mejor que antes. Entonces esto es lo del relleno. Y lo que estaba diciendo es la siguiente propiedad que es margen y fusión, es ese espaciamiento fuera de eso, ya sea aquí, aquí están la parte superior y la izquierda aquí. Entonces si voy a margen y otra vez marginal así acepta valores, bordes insets, y por todo eso, voy a dar 20. Por lo que ahora sabrás esa diferencia. Ver desde afuera aquí sacas esta cosa del margen. También puedes leer aquí. El margen es el espacio exterior y el relleno. La edad es el espacio dentro. Que propiedades también están ahí, como ancho. Si hago clic en esperar y le doy un valor de suponga AT, entonces ver que se encoge. Si doy un día. Es así. Si llego a ella, irá más allá. Entonces estos son los contenedores dentro si no cedo ningún camino. Tomará lo que sea que esté dentro de él. Ahí hay un texto y que sólo somos. Ahora. Hay otra propiedad que se encuentra dentro del contenedor, que es la alineación. Y lo tiene excepto alineación de Sibelius. Supongamos arriba izquierda, arriba izquierda, arriba derecha. Ver ahora tengo que dar una tasa de 250 y una altura de 50, 58 años. Es menos después de que te hayas comido D. El alineamiento. Ahora mismo. El asunto es que no hay otro elemento, es sólo este elemento está aquí. Entonces por eso la alineación no está funcionando porque la altura o la posición es de este lado es y esta cantidad área solamente. Si lo acabo de quitar en C ahora toma toda la pantalla. Eso es lo que tenemos que asignar primero la altura y el peso del contenedor de todo lo que estaban envolviendo en su interior. Entonces sólo la envoltura. Esta alineación funcionará. En los próximos videos cuando estaremos construyendo alguna aplicación más agradable. Entonces te enseñaré esta alineación y cuándo usar el código de alineación. Porque ahora mismo podrías estar pensando, No, esto no está funcionando. ¿ Por qué no funciona? Podríamos tener demasiadas preguntas. Y esa propiedad es declaración del widget contenedor, que exceptúa la decoración de cajas como su valor. Ahora dentro de la decoración de caja, puedes darle una forma también. Forma de caja, círculo. Decoración interior de caja. Ve cuándo estás usando la decoración de cajas. El caso es que estos también tienen una propiedad de color, por lo que no se puede dar múltiples colores. En ese caso, hay que dar mencionado esa propiedad de color dentro de la decoración de caja. Y volveré a dar relleno para que el círculo se vea un poco más bonito, está dentro de él. Ahora, no hicimos la decoración de cajas. Ahí hay color, borde, borde radio, sombra de caja. Por lo que estas propiedades también puedes utilizar para decorar tu contenedor, lo cual es muy específico a tu necesidad. Entonces si lo necesitas, solo puedes probarlo por tu cuenta también. Por lo que en los próximos videos, estaremos hablando las últimas visitas que quedan por discutir. Gracias. 12. Widget de TextField: hoy estaremos discutiendo sobre TextField virgen. Por lo que los textos permiten al usuario ingresar texto. O contratamos muy kibble están dentro del teclado en pantalla. Entonces es, básicamente nos permite recolectar información del usuario. Si tienes uso de alguna aplicación móvil, sabes que el texto es la columna vertebral de la aplicación de la deuda. Ahora, lo que esta sintaxis, es sintaxis muy básica del campo de texto TXT. Entonces como usted lo hará nuestro paréntesis. Probémoslo en su cuerpo. Voy a quitar el contenedor anterior y tenerlo texto, campo de texto. Aquí. Si lo guardo, entonces dirás esto, esta línea. Y si hago clic en él, tenemos nuestro teclado. Puedo escribir lo que quiera. Pero la cosa es que este campo de texto no se ve ni le dice nada al usuario. El usuario ni siquiera sabrá qué escribir en él. Entonces para eso, tenemos que usar algunas otras propiedades en su interior, que son como decoración. Decoración, y acepta declaración de entrada es su valor. Dentro de eso. Aquí verás muchas opciones. Usaré pista o textos etiquetados primero. Ahora bien, si pasas el cursor sobre él, acepta directamente cadena, no un widget. Entonces sólo podemos decir bien, nombre así. Y ya puedes ver ahora se ve hasta poco por 10 porque cuando hacemos clic en él, sabemos lo que tenemos que escribir en él. Ahora hay, aparte de textos etiquetados, hay muchos otros como contador fronterizo enable, enable it is, si esto falla se debe desactivar para ese momento o no. Textos de pista es igual y nombre completo, por favor. Y si guardo. Ahora en ese texto, ¿ podrán ver esta pista. Es decir tenemos que escribir nuestro nombre completo. Por lo que al menos podemos dar algunos datos ficticios son alguna pista para el usuario sobre lo que tiene que escribir. Ahora, otra cosa que puedes tener es un icono de prefijo. Los iconos dan algo visual. puede decir visualmente parece bueno cuando estamos usando un que puedo ver ahora, este texto se ve comparativamente mejor. Con este pequeño icono en vivo. Hay algo más como frontera, que podemos obtener borde de entrada de contorno. Ahora. Ahora no puedes verlo correctamente. ¿ Haré qué? Simplemente lo envolveré alrededor del contenedor que ya acabamos aprender y darle un margen de filo. Insets. 20. Ves, esta frontera se ve tan bien. Y así luciendo más agradable. Y si doy entrada borde punto ninguno, entonces todo el borde es C movido. Pero usualmente me gusta este contorno en polvo de puesta. Ahora bien, podrías estar pensando solo estas muchas propiedades ya están ahí. Por lo que hay un montón de propiedades que definitivamente discutiremos adecuadamente. Porque sin un campo de texto, no podremos construir ninguna aplicación. Maxlength simplemente nos dice que el nombre no debería, debería tener caracteres Dan iniluminados en él. No más que eso. Se puede usar cuando estamos usando una contraseña, son cualquier número de teléfono, debe ser tener un número específico de dígitos en ella. No más que eso. Y ahora, ahora mismo vamos a ver a la propiedad onchange obtener mucho que está onsubmit otro, pero en cambio significa que le da una función que nos da un valor cualquiera que sea su campo de texto de retorno. Imprimiremos ese valor en nuestra consola de depuración. Ahora. Sólo tenemos aleteo. Ver. Ahora con este valor, si lo desea, podemos asignarlo a una variable y luego usar esa variable en cualquier lugar que queramos. Depende de nosotros lo que queremos hacer. Pero definitivamente TextField tiene una regla importante. Y más al respecto discutiremos en el siguiente módulo. Gracias. 13. Columna y fila: En esta sesión estaremos hablando de un widget muy importante. Por lo que estaremos hablando de dos widgets. El primer widget es el presupuesto de la columna. Entonces si te has dado cuenta hasta ahora, apenas estábamos dando salida a un widget en ese momento. Pero no está sucediendo en aplicación real. Una pantalla contiene múltiples widgets, como textos imaginados, pero un en conjunto. Entonces para ese propósito, se utiliza un widget de columna porque ayuda a generar widgets en dirección vertical, es decir, de arriba a abajo. Es por eso que Su nombre es columna. La sintaxis es muy simple. Tenemos que solo seleccionar nombre de columna. Es decir, el nombre rígido es columna. Pero aquí, una cosa se cambia ahora porque vivo con cada widget que estábamos usando propiedad infantil. Pero aquí son niños. Y simplemente porque estaremos dando salida a múltiples widgets. Y por eso es teléfono plural. Entonces sí, saca a tu editor de texto. Y yo sólo terminaré cuerpo. Simplemente veré mover el código anterior y la columna nocturna. Entonces aquí serán niños. Niños. Nosotros insulina que sólo escanea derecho de arriba a abajo qué elementos desea imprimir. Voy a sólo ese primer alto V, estoy aprendiendo. Aleteo. Entonces siguiente widget, puedes usar el botón elevado. En ese niño podemos tener texto de someter. Ahorremos y veamos. Ver. Por primera vez pudimos imprimir dos widgets al mismo tiempo, índices cuerpo. Entonces este es el uso del widget de columna si quieres después de la eliminada, pero luego puedes usar el conjunto de puntos de imagen, luego establece imágenes, imagen seis, PNG. Aquí ya tenemos, tenemos esta imagen aquí. Ver. Ahora tenemos tres elementos en la piel. Primero es un widget de texto, segundo es un elevado, pero luego, y ese tercero es la imagen. Por lo que ahora aquí se puede ver en la sección de notas, se está utilizando a los niños. En lugar de un niño. Todos los elementos están separados por una coma porque decía simplemente Es una lista de widgets, es decir Y. Y cada widget es el orden de ese widget es será el mismo cómo lo escribes aquí. No esta imagen se está imprimiendo de arriba a abajo. Dead es otro widget que te ayuda a imprimir un objeto de izquierda a derecha. Por lo que el rho también es igual que la columna. Ayuda a generar múltiples widgets, pero una fila ayuda a generar widgets en dirección horizontal. Y solo cambiaremos primero la altura y el peso. Es demasiado grande. El peso será un 100. Mira, ahora está mirando el fregadero. La sintaxis es la misma. Simplemente cambiaré esta fila. Por lo que esta columna para remar y guardar. Ahora esta cosa horizontal se vuelve vertical. Por lo que este es un elemento muy importante porque cuando estás construyendo una interfaz de usuario completa, cada pantalla de Getty estarás usando ya sea una fila o una columna. Combinación de ambos. Row tiene otra propiedad que es eje principal alineaciones deuda. Es así como se deben mostrar los elementos en la pantalla. Entonces si escribimos el espacio de manera uniforme, visto desde la izquierda, izquierda en todas partes, todo ese espaciado de espacios es igual. Y si escribo espacio entre, espacio entre, entonces c es el lado extremo izquierdo y extremo. El espaciado no está ahí. Y también hay centro. Todo se unirá en el centro. Por lo que el hecho interesante es en fila y columna puerto tener este principal salidas y cruce existente. La única diferencia es que hay que recordar cuando dice dibujar los accesos principales de izquierda a derecha. Y eje transversal será de arriba a abajo. Es decir, si cruzo la cruz de x existe alineación, eso está centrado. Yo no lo creo. De verdad en este momento, porque el elemento ya está en el centro, porque esto está tomando sólo tanto espacio, no toda la pantalla. Por eso no se ha enviado al centro. Pero el éxito cruzado para una fila significa de arriba a abajo y existe principal es de izquierda a derecha. Y de manera similar en una columna, el eje principal es de arriba a abajo y el eje transversal es de izquierda a derecha. Entonces tienes que practicar solo tu cuenta y tratar de entender lo que acabo de decir. Porque el concepto es muy sencillo. Columna y fila estamos, solo lo estamos usando para dar salida a múltiples elementos en una dirección determinada. Y también podemos usar una columna dentro de una fila y una fila dentro de la columna. Y con eso, con la ayuda de esos y Lee, podrás construir una UI completa. Gracias. Por lo que en la próxima sesión, estaremos hablando otro widget que es muy importante y que nos ayudará a hacer salida de múltiples elementos también. Gracias. 14. ListTile y ListView: En esta sesión de visitas exploradoras, estaremos hablando de cuál es nuestro estilo de lista y qué es el widget ListView. Por lo que un estilo de lista es una sola fila que normalmente contiene X, contiene algo de texto así como icono al principio o al final de la imagen solo se puede entender que cómo, qué es un estilo de lista y cómo se ve. Es algunos puede que sea algo similar a la UI a menudo lo que espero que te ame, tienes una cuenta de WhatsApp y te resultan muy familiares a eso. Entonces, ¿cuál es la sintaxis? Es simplemente su azulejo. Entonces estas son las propiedades que acepta. Menos pruébalo por nuestra cuenta primero. Simplemente tendré un azulejo de lista al principio. Entonces en el título, tendré texto de Elon Musk. Vamos a ahorrar. Ver. Entonces es lo que dice fila tipo de cosa horizontal. Entonces el otro elemento, que otra propiedad usaré se subtitula yendo a la luna. subtítulo es solo Seton, tiene una fuente más pequeña y su color por defecto es algo en algún lugar cangrejo de río. Entonces otra propiedad está liderando, eso es lo que debería ser un frente duff. Estaré usando un ícono aquí. Y puedo empezar por el círculo de conteo. Y le vamos a dar el color de los colores, azul y talla para t Vamos a probarlo. Ves, esto es lo que estaba diciendo. Este es el icono principal. Y ahora otra propiedad, muchas propiedades, pero una más importante es el trailing. Eso es lo que debería ser al final. Tendré un elevado pero diez supongan. Y sólo lo tendrá texto de lo que debería ser el texto. No es buena idea usar un botón como este. En ese trailing. Simplemente tendré un ícono. Pero entonces si quiero, entonces en el ícono, tendré, puedo empezar retrasado. Ver tenemos un ícono aquí. El trailing significa el final de la cosa horizontal, el viento conducente, el elemento frontal. Y la última propiedad importante es el destapar. Es decir, lo que debería pasar. ¿ Cuál debería haber sido si el usuario hace clic en este azulejo. Por lo que en la consola se acaba de ver, voy a dar clic aquí y ver luego debe. No estoy hablando de este botón. Esto, esto lo tenemos, si queremos hacer algo bueno, tenemos que hacer escribirlo en esta on-premise. Pero todo este asunto del azulejo está imprimiendo a este Elon Musk. Digamos que tengo click en él cinco décimas. Por eso está aquí así. Este estilo de lista también es un widget de interfaz de usuario muy interesante porque, es, es un paquete de todas las cosas que pueden, que podemos necesitar en nuestra aplicación. Ahora, ya sabemos lo que es una columna widgets. Simplemente lo envolveré alrededor de la columna. Ver nada va a cambiar. Ahora lo que voy a hacer es que quiero hablar del siguiente elemento, que es ListView. Pero antes de ir a eso, me gustaría mostrarles el tema con la columna. Si yo, si tengo este estilo de lista, esto mucho, esto muchas veces, más, si tengo, si presiono es mu2 veces, ver algún error está ahí en la parte inferior, es decir, el fondo es nuestro fluido. Eso si directamente nos acercamos. Columna aquí así , mostrará error y no es desplazable. Entonces aquí viene nuestro siguiente widget, que es Vista de lista. Listview es como una columna. Es decir, lo, imprime esa cosa. widgets Alda de manera vertical a esta de arriba a abajo. Pero también es una cosa desplazable. Si escribo Lista Ver aquí y la guardo. El error es puede ver que somos capaces de desplazarse por nuestros elementos son widgets. Por lo que ListView es, de nuevo es decir es lo mismo que columna sobre líder. La principal diferencia es que es, es nivel de coral y recuérdalo, lo, imprime los widgets en dirección vertical por defecto, si quieres cambiar, solo puedes cambiarlo aquí en el dirección de desplazamiento y punto de acceso puedes darle vertical también. Pero nuestra saudita horizontal también horizontalmente. Pero la cosa es, entonces el elemento debe ser diferente porque verticalmente no se puede imprimir un estilo de lista. Además, podrías estar pensando, ¿qué debemos hacer si no quieres usar datos? Columna rígida? Pero no queremos usar el widget ListView, pero aún así queremos eliminar este error. Porque obviamente toda la aplicación, todas las páginas de la pantalla que usaremos tendrán tantos elementos en esa pantalla. En ese caso, sólo se puede adaptar ese elemento más elevado, es decir, este es el elemento superior más del cuerpo. Simplemente puedes envolverlo con un widget y ese nombre de visita es vista de desplazamiento de un solo hijo. Simplemente recuerdas este nombre porque es un cambio de juego. Y esto te ayudará a hacer que el widget de columna se pueda desplazar. Ver el error se ha ido, y en este momento, esta columna ahora se está desplazando sin ningún agregado en la parte inferior. Si lo deseas, puedes Google estos términos. Qué vista de desplazamiento de un solo niño, lo que ListView, lo que nuestra columna, si queremos ir más en profundidad. Pero te he dado la información básica en un concepto básico de cómo y cuándo deberíamos usar este tipo de widgets. Espero que hayan disfrutado este módulo porque aquí lo tienen, ahora están listos para entrar en cosas más profundas en los próximos módulos. Y al final de este curso, te convertirás en un completo desarrollador de aplicaciones de aleteo. 15. Qué es un estado: Este módulo es muy importante porque aquí estaremos discutiendo sobre lo que es presupuesto con estado. En las sesiones anteriores V, estamos muy acostumbrados a afirmar menos widget. También creamos nuestro propio widget sin estado por el nombre de la pantalla de inicio. Pero definitivamente en la aplicación mundial ideal V, mi chica podría ser un montón de escenarios donde tenemos que usar un presupuesto con estado. Antes de entrar al estado completamente widget, podrías estar pensando ¿qué es este estado? Por lo que un estado es solo un valor o una pieza de datos en nuestra aplicación. Cualquier cosa que pueda cambiar, como un conteo de contador, texto, color, etc., puede ser parte de los datos de declaraciones estatales en su aplicación. Esto como Zoom, un estado de nombre de usuario, ¿eso es qué? Sus habilidades, aleteo, Firebase, estas son todas estatales. ¿ Cuál es el color de la app? Azul, eso también es un estado. Widget con estado es simplemente un rígido cuyos datos internos cambiarán en alguna acción. Es decir, se hace clic en botón y luego se debe cambiar el color del texto son el, debe haber algún tipo de animación. En ese caso. Obtener rígido es refrescar y reconstruir con 10 nuevos datos. Esto no es posible en la región apátrida. Por lo que teóricamente has entendido, pero definitivamente estamos trabajando en nuestro código. Podría tener muchas dudas. Y vamos a aclararlo uno por uno. Por lo que simplemente volveré a eliminar todos esos datos. Pero antes de eliminar todos los datos, me gustaría tener una pantalla nueva. Es casa está bien. Es un estado menos rígido. Pero me gustaría tener suponer punto de contacto, punto. Tenemos esta pantalla. Ahora vamos a crear nuestro primer estado de pantalla completa. Entonces ahora primero tenemos que importar material como de costumbre, luego crear una clase y nombre. Nombre Voy a nombrar es contacto y luego extendió fecha de vencimiento, visión completa. Está bien. Entonces tendrá alguna máquina faltante o qué derechos. Y esto es así. Este es el estado de creación. Widget con estado tendrá dos clases. Una es el estado full div, que extiende el estado. Y la segunda es esa clase estatal que lo extiende. Entonces aquí simplemente puedes volver, supongamos que lo llamaré tech. Estado. Esto volverá a ser rígido. Voy a crear este estado de contexto. Se extenderá es fecha, que tendrá este nombre. Y entonces ahora aquí, otra vez, faltará ya hace la factura. Y ahora estás familiarizado con este cinturón. Simplemente regresaré aquí andamio. Entonces este es el esqueleto desnudo minima o dub de un widget con estado. Entonces podrías estar pensando, Oh no, no quiero escribir esto una y otra vez. En ese caso, es posible que necesites algunas extensiones. Al igual que aquí, tengo estos impresionantes fragmentos de aleteo. Entonces definitivamente tendrás Dardo y fértil en él. Con este aleteo impresionante, fragmentos. Nos dan muchos atajos. Uno de los atajos es crear un widget con estado directamente. Por lo que sólo voy a eliminar todas estas teclas de acceso directo S, D, F, que es aleteo widget con estado. Y entonces sólo voy a dar clic en entrar y lo voy a nombrar. Contacto. A ver. Esto se hace. No tenemos que hacer nada con este atajo. ¿ Y qué es ese estado aquí? Tendré este nombre de cadena es igual a invitado. Supongamos que este nombre de invitado es un estado que cambiaremos más adelante y te mostraremos cómo es, cómo dribla pantalla y cómo, cómo cambia la UI Gs ante cualquier acción que hagamos. En el siguiente video, seguiremos desde aquí. Entonces tendón y alegría y practica lo mejor de ti. Y tú. 16. El método de setState(): Ahora ya hemos discutido para estos y cómo escribir un widget con estado. Ahora es el momento de hacerlo prácticamente y entender cuando se invierte, tenemos que usar el método set state. ¿ Y cuál es el beneficio de usarlo? Hagámoslo. Tenemos esta página de contacto, dot-dot-dot. Aquí en el andamio, tendré una barra de aplicaciones, y tendrá un tipo de texto. Supongamos widget con estado. ¿ De acuerdo? Y en el cuerpo, Vamos a tener una columna en los niños. Y los niños menos primero Habito campo de texto. Y debajo de eso, vamos a tener un texto de supongamos hola, Dan, variable de nombre. Y en el punto principal punto-punto, en lugar de entrar a la pantalla de inicio, Vamos a la pantalla de contexto. Refresca nuestro reinicio nuestra aplicación. Y verás que solo verás un campo de texto pero texto normal con este widget de texto hola. Ahora lo que quiero es cada vez que algo se cambia aquí es sobre valor cambiado. Quiero que se establezca esta variable de nombre. El lo que sea reescribiéndolo. ¿ De acuerdo? Pero la cosa es que si lo hacemos así en ahí hay sin usar estado establecido, no va a funcionar. A ver Hola, me gustaría archivo Flutter. Ya ves, nada está funcionando aquí. Es sólido. Es de nuevo, hola invitado. Pero si sólo usamos el método de estado conjunto aquí, eso es un dato de prueba de cambio y cómo, cómo nos gustaría sentarse Estados, SET 10 capitales, set state, luego paréntesis. Y dentro de eso, de nuevo, IF funciona así, así es como está escrito. Entonces dentro de este estado conjunto, ahora si cambio nombre es igual al valor, y entonces empezamos. Ahora solo te enfocas en el texto Hola. Ver, la primera vez lo que eran nosotros estamos escribiendo la UI se está reconstruyendo sólo por una razón, porque dice estado widget completo. Ahora aquí sí afirma ese es el nombre. Podemos cambiarlo de acuerdo a algunas acciones aquí. Esa acción es un campo de texto. Entender lo que está pasando y cómo lo hace la pantalla se está reconstruyendo. Sólo podemos tener una declaración impresa. Primero en ese proyecto de ley, eso es la pantalla impresa Edificio. Y uno aquí. Valor de impresión si lo desea. O puede utilizar un estado de conjuntos de impresión se llama. Ahora cuando reinicio, solo ves el edificio de pantalla de la consola de depuración es decir, se llama a esta función de factura. Por eso somos capaces de ver este resultado. Ahora voy a escribir, ver, si escribo f, entonces otra vez establece el descarte y pantalla se está reconstruyendo. Y tú d, d, e. Entonces todo ese tiempo el CUI fue que es esta función de factura volvió a llamar de nuevo y este nombre de valor se estaba cambiando. Por eso se está reflejando aquí. Por lo que a través de la consola de depuración, puedes entender lo que está pasando bajo el capó. Y media letra está usando el método de estado establecido para alertar a la interfaz de usuario para reconstruirse a sí misma. Entonces esta es la diferencia entre un widget sin estado y con estado. En unas deudas rígidas apátridas, la deuda es lo que está escrito no se puede cambiar por sobre si queríamos a través de algunos botones, clics o lo que sea. Pero en un widget con estado, estos valores se pueden cambiar usando este método de estado establecido. En el siguiente video haremos otro ejemplo de cola de estado establecido luego solo intenta investigar y practicar por tu cuenta también. 17. Widget Stateful en acción: Por lo que hasta ahora, sabemos cómo usar una declaración SET y cómo se puede usar para reconstruir nuestra pantalla con Dan nuevo estado. Pero es, es mejor si practicamos algunos con algunos ejemplos más. Empecemos y creemos una nueva pantalla. Nuevo, nuevo archivo será. Supongamos que no debería serlo. Y sólo lo nombraremos con estado. punto-punto. Como de costumbre paquete material de importación. Entonces tener es visita con estado de mi fecha pantalla completa. Acabo de nombrarlo así. Entonces ten el andamio. Y luego como de costumbre, en ese título, tengo un texto de fecha, totalmente rígido en el cuerpo. Tú en el cuerpo. Vamos a tener widget centrado y niño. Vamos a tener un widget de columna. Ahora se sienta en un widget con estado. Definitivamente tiene a algún estado donde voy a crear una lista de cadena. Yo lo nombraré. Nombres es igual a esto. Y aprendo a Bill, mark. ¿ De acuerdo? Y voy a tener un NSDate de int I es igual a 0. Podrías estar pensando, ¿qué son estos? Entonces es sólo 0 porque el índice de una lista comienza con 0. Ahora aquí en ese primero habrá algunos textos, un campo de texto y para invitar, mi medio es entonces nombres. Y yo, por lo que sumará el mismo comienzo, mostrará IL-1. Y para eso, tenemos que cambiar a mi punto punto medio, que es mi pantalla completa de estado, para luego reiniciar. A ver. Ver mi nombre y mi nombre es 11. ¿ De acuerdo? Y también la columna usaré un centro principal, principal de puntos de alineación de X que es de arriba a abajo, debe estar centrado. ¿ De acuerdo? Ahora lo que quiero es que quiero levantar botones en la misma columna. Elevado significa que lo siento, me refiero botón elevado. Y el primer botón será el siguiente. Y el segundo elevado, pero luego regresaremos. Está bien, vamos a ver. Está bien. Lo que quiero es cuando hago click en este botón Siguiente, Mi nombre es Elaine debería ser, Mi nombre es Bill. Es decir H debe circular o debe pasar por esa lista de nombres para eso. En el on-premise, tengo que cambiar esos datos. Lo hice es que es 0. Debería ser uno. Si doy clic en el botón Siguiente, hasta el momento que sólo voy a escribir estado conjunto y luego yo plus, plus. A ver. Voy a dar click en este siguiente C, Mi nombre está construido en. Si hago click Mi nombre es Mark. De igual manera, si quiero volver atrás, solo estableceré el estado de set I menos menos. Aquí. Si hago click en Siguiente, se irá Bill. De hecho, podemos volver atrás. Volverá a aprender. Pero la cosa es, si el usuario hace clic conecta múltiples veces, entonces mostrará alguna letra C. Porque yo sólo soy la Atlántida sólo 0, 1 deuda es tres. Pero si voy más de dos, empezará a mostrar el error demasiado lejos que tenemos que hacer algún tipo de condiciones aquí en el on-premise, como el estado set. Si sólo digo aquí mismo. Si yo es menor que los nombres de longitud de punto, entonces sólo ejecutar hizo esta cosa de estado conjunto. Está bien. Ahora reiniciemos y comprobemos qué pasará. 012 va a tratar no debe ejecutar 01 marca. Y de nuevo, tengo que escribir menos uno aquí entonces definitivamente. Hagámoslo otra vez. Eland Bill, mira, ahora no está mostrando ningún error. Y de igual manera, retrocede. Cuando vuelvas, tenemos que comprobar si yo no es igual a 0, diez menos si ya es 0, entonces no podemos ir más allá. Ahora, probémoslo. Si voy 123, ¿de acuerdo? Ahora si voy Bill 11, y ahora si trato de volver también, entonces tampoco va a funcionar porque tenemos nuestra condición la cual nos asegurará que esa pantalla no se estrelle. Por lo que este es un ejemplo muy básico de estado conjunto. Un ejemplo más que puedes tener es suponer que muerto es un color, este color es rojo. ¿ De acuerdo? Este es un estado. Ahora tendré un botón de acción flotante. Botón de acción flotante que me gusta. En ese niño, tendrá un ícono. Puedo empezar. A ver. No sé cuál es la lente de color. Vamos a comprobarlo. A ver, está bien, aquí tengo este ícono. Lo que quieren es cuando hago clic en este ícono, es color debe cambiar. Ahora. Tengo este color de fondo y este color de fondo será el estado que es rojo. De acuerdo, entonces en el principio el estado es rojo. Pero quiero es cuando hago clic en este botón, ese estado debe cambiarse aunque. Entonces cuando hago clic en este botón, set state, color es igual a colores dot Amber. Solo te estoy mostrando ejemplos diferentes, diferentes para que estés más cómodo con conjuntos de datos entender lo que hace. Ahora le estoy dando click, ver un cambio de color a Ámbar. Entonces este es el uso de sets date, y así es como funciona un widget con estado. Simplemente cambia esos datos y reconstruye pantalla Estado con nuevos datos de deuda, simples como eso. Por lo que en el siguiente video discutiremos pocos del concepto restante de este módulo. Y después de eso, estamos bien para entrar en los próximos conceptos más halagados. Gracias. 18. Qué es initState(): Entonces ahora ya hemos trabajado en widget con estado y cómo cambiar el estado usando la sentencia SET y get es otro método que es muy importante en un widget con estado, que se llama el estado init. Entonces, ¿qué hay en cada estado? Se trata de una función que ya está muerta dentro de cada widget con estado solo tenemos que escribir IN. Ver aquí puedo conseguir este ayudante. Entonces si hago clic en Entrar, hay esta función en su estado y lo que la hace cuando esta pantalla, nuestra camioneta, este widget con estado se está construyendo para lo primero. A esto se le llama. Por lo que eso significa antes de esta función de proyecto de ley, antes de la UI, esto en su estado se llamará. Entonces si quieres ver lo que estoy diciendo, imprimamos. Eso es cerebro. Aquí. Estado Init y en función Bell. Vamos a imprimir la función de compilación. Ahora reiniciemos la aplicación. En la consola de depuración. Verás primero se llamó al estado init, y en segundo lugar se llamó a la función de factura. Por lo que esto es muy potente y muy útil cuando estamos construyendo una aplicación en el mundo real. Entonces podrías estar pensando, vale, pero ¿ de qué sirve este estado init? Entonces lo que solemos hacer es asignar algún valor. Asignamos algún valor a nuestras variables, variables instancia, se puede decir a esos datos, supongamos que esto es solo, por ejemplo, esto es nombre de cadena, y esta es una variable. Ahora, se acerca este dato. Supongamos que desde la pantalla anterior, utilice su nombre. Aquí dentro. Yo sólo diré esto.Nombre de usuario, los dos. Jeff Bezos. Ahora en el estado init, me gustaría asignar ese valor. Ese es el dato que viene de la pantalla anterior a esta pantalla. Simplemente escribimos este nombre de punto es igual al nombre de usuario de punto widget. Y luego en el texto, pero me gustaría mostrar ese nombre de usuario. A ver, ¿funciona o no? Ver. Entonces lo que hicimos fue que los datos venían de pantalla anterior a la pantalla, solo por ejemplo. Y aquí está asignando ese valor a una variable que estaba vacía, que antes era nula. Pero antes de construir la pantalla, este valor se asignó a esa variable usando el estado init. Ya que, debido a que es la primera función a la que se está llamando cuando se construyó este widget. Hay, se puede decir cuando se estaba construyendo este presupuesto. Ahora, supongamos, espero que recuerden el estado conjunto conservador anterior. Si hago clic en esto, entonces se volverá a llamar a esa función de factura. Pero la función de estado init solo se llama una vez. Entonces mira, se está llamando de nuevoa la función de factura está llamando de nuevo porque se está actualizando la página. Pero esta cosa init state, von, no podemos llamarlo de nuevo, ya es bastante esto en Lee enrollado una vez ADH tienes que quitar esta pantalla o ir a la diferencia puede totalmente diferente de dos páginas para luego volver a esta página. Este es el on livery. Aquí solo asignamos ese valor desde el widget padre a este widget. Esas cosas se pueden ver. Hay un montón de cosas como streams, textos, y ser controlador. Por lo que el valor de las cuotas son aquellas cosas que queremos inicializar se utilizarán o VK puede inicializarlo en el estado init. Entonces ahora mismo podrías estar pensando lo que estoy diciendo, pero más adelante cuando estamos usando base de datos Firebase o tenemos que inicializar algo. Es decir supongamos alguna solicitud HTTP. Estas cosas, podemos hacerlo en el estado init. Eso significa que acaba de morir se inicializan esa cosa tan pronto como se está construyendo esta página. Entonces espero que hayan entendido el concepto de presupuestos con estado y cómo se construyen las páginas. Este estado init es muy importante. Pero ahora mismo, si has entendido, a menos que el concepto también, entonces es suficiente. Podemos pasar a algunos otros temas. Y Q 19. Comprender el ciclo de vida Widget: En el último video, V, y luego cómo funciona el estado init Vogue. De igual forma, tenemos ya sea funciones u otras cosas también. Cualquier widget con estado, que se llama ciclo de vida de presupuesto completo del estado. Entonces DRF, pocas de las funciones que podemos utilizar en widget con estado. El primero es el estado init, que ya hemos discutido. Este es el primer método llamado cuando se crea el widget. Se llama una vez y sólo una vez. Por lo general se usa para inicializar propiedades que dependen de estos widgets de crianza de ese árbol. Subíndice dos flujos modificadores de cambio. Cualquier otro objeto que pudiera cambiar la fecha abajo de ese widget. Entonces esto lo hemos discutido. Entonces lo siguiente son las dependencias de cambio profundo. Este método se llama inmediatamente después en cada estado. Y cuando la dependencia del objeto del estado de la muerte cambia vía widget heredado. Por lo que solo puedes ver que sí cambió dependencias. Simplemente, simplemente escribiré impresión. ¿ Cambió dependencias. Reiniciaré la app. Y aquí verás primero en su estado estará ahí. Después cambian dependencias, luego doble función. Este método rara vez se necesita o se usa. Que los muelles del aleteo también sugieren que podría ser útil si necesitas hacer algunas llamadas remotas. Pero cuando n heredó actualizaciones de widget, que este concepto no es tan importante. He estado construyendo absolutamente mucho, muchos años y esta cosa no es importante. Tercero es esa función de campana. Este método se llama cada vez que hicimos esto reconstruido, es un requerido y debe devolver un widget. Entonces esta es la función de campana. Ya tenemos, ya sabemos que se llamará en ese 30 lugar primero en su estado. En segundo lugar, cambiar dependencias. Y en tercer lugar, función por días sí actualizó región. Esta es también una función que se dan por el widget con estado. Se llama cambios frígidos de padres y tiene que reconstruir discreto. Ese es este widget. Entonces lo que quiero decir es, supongamos que aquí este dato viene de ese padre frígido, es de la pantalla anterior. Y aquí sí actualización. A esta cosa se le llama si estos puntos, supongamos nombre no igual a 0, nombre de usuario de punto rígido. O lo siento, Sólo puedes decir este widget dot nombre de usuario, marca. ¿Cambiaron? Entonces ahora no podemos demostrarlo, pero hay que entender el concepto. Supongamos un caso típico cuando un padre pasa alguna variable a los hijos a través del constructor, que es este caso que ya hemos hecho. El padre está pasando algunos datos a través del constructor. Y si esto, si el pad y los datos de widgets cambian, entonces esta función también recordará y mostrará que los cambios realizados. Entonces para la causa que funcionará después de esto, por lo que no hay necesidad de leer el estado establecido por su cuenta. Esta función tampoco se usa tanto. Pero cuando estamos aprendiendo sobre widgets con estado, al menos debes saberlo. Estos términos también existen. Estado de 50 set. Ya sabemos que se trata de un rey de estado conjunto. Y después de eso, vuelve a llamar a la función de factura y se construye la interfaz de usuario. Esto no es algo nuevo. Sexto es desactivar. Esta función se llama cuando el objeto se elimina del árbol. Esto de nuevo rara vez se usa. Este método existe básicamente los objetos de datos de costo se pueden quitar de 1 a otro y se puede quitar temporalmente. Simplemente les mostraré que esto también existe desactivando así. Cuando acabas de imprimir desactivar. Y una final y la última está dispuesta. Esto es muy importante. Este método se llama cuando este objeto, es decir cuando este widget con estado se elimina del árbol de forma permanente. Aquí debemos liberar las fuentes de energía retenidas por el objeto como detener cualquier misión son lo que sea. Un ejemplo es Wendy's my TED se llama vil usando la colocación empujador del navegador. Próxima sesión sólo estaremos hablando de navegación. Entonces eso es de una página a otra página. Si vamos, Entonces la página anterior debe desecharse adecuadamente. No debe haber fuga de memoria. Por lo que en una aplicación del mundo real, es muy importante utilizar estos mentor de disponer. Aquí detendremos alguna animación, llamadas a nuestra base de datos o lo que sea, lo cual no se requiere más adelante. Por lo que estos widget de vida adulta secular , libre, con estado primero es init state segundo, deshaciéndose de dependencias. Tercero es la función de construcción. 40 es si hacemos alguna, si su widget padre hace algún cambio en sus variables aquí. Entonces sí actualizó vd, esta llamada, comparamos eso con valores. Y luego los últimos son los desactivados, que tampoco es tanto uso, pero esta publicación se usa mucho. Mucho. Entonces tienes que asegurarte, conoces todos estos términos y cuando lo estamos usando más adelante, no estás confundido sobre qué es esto o es algo nuevo? Porque al menos ese concepto que conocemos más adelante prácticamente aprenderemos a usarlo. Gracias. 20. Concepto de stack detrás Navegación: En este módulo, estaremos iniciando un nuevo tema que es la navegación. La navegación es una parte clave de la experiencia de los usuarios para cualquier aplicación móvil. Porque definitivamente los usuarios navegarán constantemente constantementeentre pantallas diferentes, diferentes. Es imposible que estés construyendo y una aplicación en toda regla y solo tengas una pantalla en ella. Si viste si ves un sitio de comercio electrónico, DNR, ordena mi pedido, carrito, luego página de inicio, luego oferta de página. Hay muchas pantallas para la deuda. Tenemos que saber navegar correctamente. Ahora papá está enfermo concepto de navegación aleteo, que es pila. Si vienes de algún lenguaje de programación R, Si has hecho tu graduación, entonces definitivamente, ¿ sabes qué es una pila? Simplemente es empujar y estallar elementos. Por lo que sólo se puede ver este diagrama y entender eso. Supongamos que esto no es pila vacía. Después una pantalla que es cuando se abre la aplicación, luego la pantalla de inicio está siendo empujada a la pila. Entonces desde la pantalla de inicio, si navegamos a la pantalla de contexto, es decir, si solo vamos a los contextos limpios y tenemos la opción de volver de nuevo a la pantalla de inicio. Entonces esa pantalla de contexto irá por encima de la educación en casa en esto como sólo la pila. Es decir, está por encima de uno sobre otro. Por lo que sólo se puede decir que sigue la regla del último en primer lugar, es decir lifo y no de primera-en-primera-salida. Entonces si hacemos estallar la pantalla de contextos y volvemos nuevo a la pantalla de inicio que este contacto verde se eliminará de la pila. Y luego de nuevo indust stack. La pantalla de inicio estará ahí solamente, la cual será visible para el usuario final. Entonces este es el 2D, este es el concepto detrás de la navegación en Florida. Tienes que entender porque definitivamente en tu mente, debes visualizar cómo las páginas o cómo funciona tu código. Empecemos entonces. Si conoces el concepto, entonces empecemos con una navegación básica. Saca a relucir ese editor de texto. Y estas páginas no quiero, solo voy a crear una nueva página. Y el nombre es primer punto de pantalla. Entonces importaré material. Entonces será apátrida. No quiero cambiar ningún dato. Será primera pantalla. Será un andamio en la barra AB. Tengamos y de título texto de primera pantalla. Ahora, solo asigne esta primera pantalla en punto de dominio. Ahora actualiza tu aplicación y vamos a ver. El primer rey está muerto. Por lo que en el siguiente video aprenderemos sobre el concepto de Bush y Bob. Es así como enviar esta pila, una pantalla dentro de la pila, y cómo eliminarla. Y volver de nuevo a la pantalla anterior. 21. Push y pop: Sigamos trabajando en la parte de navegación. Entonces si tenemos esta primera pantalla en el cuerpo, Vamos a tener un widget de centro. Y luego hijo de botón elevado. Y dx será igual a segunda pantalla. ¿ De acuerdo? De acuerdo, tenemos este botón. Ahora. Tenemos que crear una nueva segunda pantalla también. Por lo que sólo voy a crear un nuevo archivo segunda pantalla, pero Dart. Nuevamente, tengo que hacer este material de importación. Después tener un widget apátrida llamado segundos pantalla. Nosotros, ya que es una pantalla, así que realmente es andamio. En esta parte tendremos un título. Esto es muy repetitivo, lo sé, pero hay que practicarlo. Tienes que acostumbrarte tanto que lo sabes todo al respecto. ¿ De acuerdo? Tenemos esta segunda pantalla, ¿de acuerdo? Ahora, tenemos que navegar a, podrías estar pensando, bien, pero ¿cómo navegar? Para navegar existe un método llamado colocación de empuje y empuje. Es decir, primero es empujar. Es decir, acabaremos de empujar hacia arriba la siguiente pantalla por encima de la pantalla. Es decir, empujaremos la segunda pantalla dentro de la pila. Pero la primera piel estará atreviendo la pila. A lo que quiero decir es que tenemos que usar el push, pero la sintaxis que hay que recordar es primero es el punto del navegador, luego la era del CD, tantas opciones. Empuje, pop, empuje reemplazo. Por lo que estaremos usando push. Entonces aquí verás que acepta dos cosas. Primero es un contexto y el segundo es una ruta. Esta ruta tenemos que enviarme TDL página ruta widget como este. Ves, es un poco diferente, pero este es un código que tienes que simplemente aprender o simplemente recordar de memoria, eso es todo. Ahora este Builder es una función como esta, que lo hará, aquí será contexto. Y luego regresa esta función. De esta manera el nombre de la pantalla alcanza en nuestro caso es segunda pantalla. Por lo que este es ese código requerido para navegar de una pantalla a otra. Aparte de esta segunda pantalla, todo lo que tienes que simplemente recordar, esta es la sintaxis. Y navigator dot push toma dos parámetros. Uno es contexto y el segundo es ruta de página material. Material page it out acepta un parámetro de Builder, que es una función que devuelve ese nombre de pantalla. Eso es widget tensor de identidad. Se puede decir, Vamos a ver, ¿está funcionando? Y solo recuerda aquí que estamos usando y solo escribiré método push porque hay una diferencia entre push y push replacement. Voy a dar click en ir a segunda pantalla y ver segunda pantalla está ahí. Por lo que esta es una primera vez que estamos usando múltiples pantallas de una pantalla a otra. Y ahora se puede ver aquí hay este botón de flecha. Entonces solo imagínense por este empuje, estamos a punto de volver a la pantalla anterior. Y si puedes visualizar una pila, eso significa por encima de la primera pantalla, esa segunda pantalla estaba sentada. Y luego simplemente lo quitamos. Y podrías estar pensando, vale, he entendido de alguna manera qué es push, pero ¿qué es el reemplazo de push? Por lo que empuja el reemplazo borra esa pila. Eso significa que no podemos volver a esa pantalla anterior. Una vez que navegamos a la segunda fecha de pantalla no es ninguna flecha hacia atrás. eliminarán todas esas pantallas anteriores. Entonces eso es navegante. Sustitución de empuje. Sencillamente. Después de eso, todo será igual desde el contexto hasta la ruta de la página material y todo. Sólo la diferencia se empujará la sintaxis de reemplazo. Ahora, de nuevo, saca el emulador y pruébalo por tu cuenta. Al hacer clic en ir a segunda pantalla, ver que no hay botón de flecha. No podemos volver de aquí. Simplemente lo puedes entender con un ejemplo de Facebook. En primer lugar, esa pantalla de inicio de sesión aparece cuando ingresamos nombre de usuario y contraseña. Después de eso, el usuario es, y si es correcto, el usuario es navegado a la pantalla de su perfil. Y desde la pantalla de perfil de deuda, no puede volver de nuevo a la pantalla de inicio de sesión hasta y a menos que haga clic en el botón de cerrar sesión. Por lo que este es un ejemplo muy bueno y en típico de cuándo usar push y cuándo usar push replacement. Ahora, hemos entendido y hemos aprendido a empujar páginas. Pero hay otro concepto de popping pages. Por lo que haremos aquí en esta segunda pantalla. Apenas en su cuerpo. Otra vez. Crear centro derecho, luego niño. Entonces botón elevado. Aquí está yo he hecho algo mal. En el botón elevado. Apenas visto cuando el niño lo harás, escribiré aquí y volveré. Ahora aquí estaremos entendiendo el concepto de pop, que significa simplemente quitar esta página de la pantalla y menos en impuestos navigator dot push. Ahora aquí solo pop simple y acepta contexto de paso. Eso es todo. Nada mucho. Y para poder pop, solo recuerda aquí, está empujado, no empujado el reemplazo de empuje, o de lo contrario tu aplicación se estrellará. Simplemente saldrás directamente fuera de tu aplicación. ¿ De acuerdo? Ahora bien, si hago clic en ir a segunda pantalla, ver tenemos este botón Volver y cuando haga clic en él, volveré a hacerlo, vuelve de nuevo, volver a la primera pantalla. Ahora podrías estar pensando este enrutamiento también hace lo mismo. También, por defecto llama a la función pop dot del navegador. Ambos hacen lo mismo, pero aquí escribimos deliberadamente el código para volver atrás. Eso es todo. Y este navegador dot pop quita esa página más alta de la pila. Por lo que podría haber por debajo de 23 páginas, pero sólo elimina esa página superior. Eso es todo. Y si quieres de esta segunda página, también puedes volver atrás. Bueno, dos página diferente. Voy a sólo navegante escolar, pero empuja. Entonces aquí, ruta de la página material, luego simplemente contextos. Ahora me gustaría ir a a esta página de contacto. Supongamos aquí la página de contacto. ¿ De acuerdo? Esto también es empuje. Recuerda, ahora lo que pasa de en la etiqueta índice láctea. Es solo primero conseguir widget en, en este momento. Entonces cuando hago clic en ir a segunda pantalla, entonces tech sumar muy por debajo de la deuda es la primera pantalla por encima de ella, luego la segunda pantalla. Entonces si voy a esto, lo siento, me olvidé de cambiar el nombre. Si voy a pantalla de contacto, ver ahora los contextos bastón está ahí y ahora en dest tag directory pantallas una arriba y abajo. Entonces cuando regrese aquí, vendrá la segunda pantalla y la pantalla de contextos está saliendo de la pila. Y ahora si vuelvo aquí otra vez, entonces esta primera pantalla está aquí. Pero supongamos a partir de esa segunda pantalla, usaré reemplazo push. Ahora, ¿qué pasará? Es muy interesante ver desde la primera pantalla, cuando voy a la segunda pantalla, tenemos dos pantallas en la pila. Pero si hago click en Ir al contacto y como está usando reemplazo push, entonces quitará todas las pantallas. Eso es segunda pantalla así como la primera pantalla. Ahora si voy a Contacto, ver, se está quitando. Ahora tengo reemplazo de empuje de uso aquí. Y por eso no deberíamos poder usarlo. Tienes que decirlo de nuevo, a veces simplemente a poco l viene, está bien. Pero hay que entender que este reemplazo push quita toda la pila, todas las visitas de esa pila. Esto podría suceder debido a algún almacenamiento en caché normal o algo así. Pero hasta que no tengas suficiente familiaridad, has entendido ese concepto de memoria. Eso es lo que importa. En los próximos videos, discutiremos la navegación, modo en profundidad y el agua, las otras funciones en lugar de simplemente push pop y todas las demás cosas también, cuales serán discutidas en un mientras que. 22. Comprender la ruta nombrada: Hasta ahora, hemos aprendido a navegar usando el método push. Pero hay otra forma de navegar es mediante el uso de rutas con nombre. Ahora suponga que si necesita navegar a la misma pantalla en muchas partes de su aplicación, el enfoque anterior puede resultar no es la duplicación de código. La solución es definir un nombre, ruta, y usar ese nombre para la navegación donde quieras. Y la sintaxis también está lista simple, no como antes de eso tenemos que usar ruta de página de material y luego constructor y mucho antes era mucho más código de caldera,codificación de calderas era mucho más código de caldera, y todo. Pero en este momento la sintaxis es muy fácil. Así son los pasos. En primer lugar, tenemos que crear dos pantallas, que ya hemos hecho, ¿de acuerdo? Y el segundo se definen las rutas proporcionando propiedades adicionales en el widget ADL. Por lo que ahora tenemos que ir a nuestra página principal de puntos. Aquí. Tenemos que usar propiedades de rutas aquí así, y luego llaves. Por lo que esta también es propiedad de rutas de laboratorio de materiales, que definitivamente te ayudarán en tu navegación y código limpio. Entonces primero tienes que determinar la cadena de tarea correcta. Es lo que debe llamarse. Ese es el nombre de la ruta. Pero aquí acabo de dar slash, que significa la página de inicio. Y es una función como antes solamente. Y aquí estaré enviando la pantalla de inicio. Y así segunda ruta puedes tener contacto. Puedes tener como este contacto. Y aquí otra vez, esa función y contextos pantalla. Cuando estamos usando rutas, entonces no deberíamos usar la propiedad del hogar. Deberíamos usar ruta inicial. Y aquí, cuál es la ruta inicial es esta barras inclinadas. Por lo que tengo que comentar este hogar y luego reiniciar nuestra aplicación. Digamos que la ruta inicial es la pantalla de inicio o no. la ruta inicial se define con qué ruta debe comenzar la aplicación. Entonces por el nombre solo lo entenderás. Se está llevando un poco de tiempo en mi sistema. Sí. Pero ya está hecho. Diga que la educación inicial en casa ya está aquí. Y solo enviaré la primera pantalla 2 inicial. A ver. Ahora cómo navegar a la segunda pantalla usando ese nombre, que se navega la capa de propiedad push name. Nosotros, estamos usando el navegador dot push and push replacement. Pero ahora podemos usar push named y push Nim reemplazo. Vayamos a la primera pantalla. Aquí. Ver tenemos nuestro método push, que voy a comentar y he push llamado mi 10. Y la sintaxis es muy simple. Navegador dot push nombrado, luego contextos y su nombre de ruta. Y su nombre será slash contact. Lo enviaré para ir a Contacto. Supongamos. Por lo que se puede ver que la sintaxis es muy simple. Es navegador dot push name. Entonces aquí no tenemos que usar ninguna página de material, ruta y todo. Simplemente podemos escribir el nombre de la ruta y nos ayudará a navegar. Vamos a Contactar y ver las páginas de contacto aquí. Y de igual manera, hemos empujado. Empujar nombre de reemplazo. Hace el mismo trabajo que el reemplazo de empuje en las diferencias de líder. Aquí estamos usando un nombre sequía. Y es click y ver que no hay botón Atrás. No podemos volver aquí también para navegar atrás. O si tienes, si quieres crear un botón, entonces simplemente podemos usar navegador dot pop, igual que antes. La única diferencia es que estamos usando rutas de nombre para nosotros a Marina para la navegación. Nombre de Bush. Y de igual manera en la reunión, pero que se puede escribir tantos nombres que desee. Supongamos segunda página, entonces. Contexto. Y segunda página. Segundos. Bien. ¿ De acuerdo? Y sólo diremos que es segunda pantalla. ¿ De acuerdo? Por lo que esta es la forma de utilizar las rutas. Ahora la cosa es, el único inconveniente aquí es cuando estamos navegando, tarifa debe tener que recordar este nombre adecuadamente. Supongamos que lo escribimos. Supongamos que el punto de contacto S son contextos, entonces mostrará error. Y definitivamente, es, es muy difícil para nosotros recordar la ortografía. Esta barras inclinadas correctamente, cada vez que lejos se consigue más fácil solución pequeña. Y eso es usar modificador estático para llamar a las rutas de nomenclatura. Lo que significa es que si usamos un nombre, si comienzas método para navegar de un lugar a otro dentro del concepto de nomenclatura, entonces hay que recordar la cadena que hemos proporcionado a su nombre. No necesariamente siempre es deuda. Recordamos el nombre cuando hay pantalla múltiple en una aplicación. Por lo que creamos un tipo de datos de cadena del mismo con el modificador estático, para que podamos asignarlo directamente, llamándolo a través de su clase, que significa simplemente que estamos usando una variable táctica dentro de nuestro estado menos rígido y darle un nombre como este hogar, simplemente escribiremos estática. String. Id es igual a casa así. ¿ De acuerdo? Y luego en el archivo main.js, simplemente podemos escribir para el principal como esa clave. Podemos escribir 0 pantalla dot ID. Y esto tendrá un contexto de pantalla de inicio. Simple. Por lo que se pone mucho más limpio y agradable. Y definitivamente lo harías, puedes recordar ese nombre de clase, al menos en esa pantalla de inicio. Es mucho más fácil de recordar que la cuerda. Del mismo modo, si vas a la segunda pantalla, simplemente podemos escribir, tomar string ID es igual a. Y luego puedo escribir segunda pantalla así e ir al punto principal. Aquí, sólo tengo que escribir segunda pantalla. Y como es variable estática, así podemos llamarlo directamente sin crear un objeto. Entonces así es como se hace. Como se puede ver anteriormente, hemos utilizado un modificador estático, que tipo de datos de cadena tanto a la pantalla como asignarle una variable de cadena. Ahora lo siguiente es que tenemos a nuestra señora. Entonces esos ID de cadena, eso son esas variables estáticas en las rutas. Ahora es el momento de llamarlo, porque podemos acceder directamente a él fácilmente y navegar de una página a otra recordando ese ClassName. Y ahora no tenemos que recordar esa cuerda. Y lo haré una y otra vez, lo que quiero decir con eso. Nuevamente en ese contexto, igual que antes. X ID de cadena estática es igual al contacto. Entonces aquí, simplemente escribe contacto dot ID. Y si puedes cambiar esto también. Ahora cuando voy a la primera pantalla aquí, no tengo que escribir esta cadena como este contacto. Simplemente puedo escribir contacto y estética. Entonces así, método táctico, solo puedo llamar al ID así. Ver la diferencia. Es tan limpia forma de escribir nuestro y administrar nuestro código. Yo solo puedo decir ilegal contactar así. Y mira, de nuevo, está funcionando. No hay error. Si estamos usando este enfoque. Depende de ti cuál prefieras. Si estás viendo muchos videos y tutoriales, es posible que te encuentres con este método también, porque es una preferencia personal. Sea lo que quieras, puedes hacerlo, No siempre es necesario usar esta táctica, pero definitivamente te sugeriré porque cuando tienes muchas y muchas rutas, entonces es imposible para ti todas y cada una de las cadenas correctamente. Eso es todo. En el siguiente video, aprenderemos más sobre cómo pasar datos entre dos pantallas y mostrarlos en la interfaz de usuario. 23. Pasar datos a través de Constructors: Entonces hasta ahora, hemos entendido cómo navegar de una pantalla a otra usando una forma normal y usando una vía con nombre. Entonces ahora es el momento. Entendemos cómo pasar algunos datos mientras navegamos definitivamente en una aplicación. Y habrá escenarios. Después tenemos que pasar un dato desde el primero pasando a la segunda pantalla. También supongamos que hay una situación como en la segunda pantalla, necesitamos el nombre de usuario de ese usuario, es net case. No queremos volver a tener una base de datos llamando a la segunda pantalla porque va a consumir mucho tiempo y consumir recursos. Es mejor que si tenemos los datos ya en la primera pantalla, pasemos los datos a la segunda pantalla a ese constructor. Como ya sabemos, hay dos tipos de constructor. Constructor parametrizado, nombre constructor. Entonces para aceptar datos, primero tenemos que crear variable de instancia en la pantalla a la que estamos navegando. Esa es una segunda pantalla que puedes ver y crear un constructor en ese espíritu, que acepta y asigna el valor a la variable de instancia. A lo que me refiero con eso es, vamos. Supongamos que tenemos esta crema de contexto que sí. Simplemente tomaré esta segunda pantalla. Aquí. En primer lugar, tendré una variable de instancia de nombre de cadena. Y entonces tengo que declarar. Mencioné un constructor que va a exceptuar este valor y asignarle eso a Buda, llamado a esa variable. Pero definitivamente abajo sólo hemos hecho este constructor. Simplemente eliminaré este y crearé un nuevo como antes. Y simplemente escribe este nombre de punto. ¿ De acuerdo? Se hace esta sección. Ahora en Main.Jack definetly. Aquí. Es pedir que tengamos que mandar algún valor. Entonces es mejor cuando estamos usando, porque los vendedores están usando rutas con nombre ahora esto no es para enviar un valor. Discutiremos eso también. Pero por el momento, sólo comentaré esa segunda pantalla. Y ahora en la primera pantalla, usaré el método push, no el push llamado mi turno. Y se puede ver en ese método push, la segunda pantalla está dando algunos agregados porque está diciendo que tiene que haber algún argumento insertado en la segunda pantalla es aceptar algún argumento. Entonces simplemente enviaré eso porque como es un argumento posicional, no un constructor con nombre, es un particional que es la 0ª posición. Entonces simplemente diré nombre, nombre, diré niños. Ahora en la segunda pantalla, en el estado init, siento, esta es una región apátrida. Por lo que tenemos este botón ir al contacto. Aquí. Simplemente imprimiré el valor, que es nombre. Y lo escribiré impreso. De acuerdo, Ahora veamos, ¿funciona? ¿ Podemos enviar datos de una pantalla a otra? Averigüemos. Traiga a su emulador. Ahora ve a contactar para que sea bueno a segundos. Espero que lo hayas entendido. Entonces cuando me vaya, ahora tenemos esta impresión de botón. Y al hacer clic en este botón, ver a Bill Gates en la pantalla de impresión, podemos ver ese valor Bill Gates, que fue enviado desde la primera pantalla. Por lo que finalmente, v saber navegar con la configuración de datos. Pero ahora sólo era un argumento posicional. Igual que cuando estamos pasando datos a un constructor de nombres. Que no es algo muy difícil ya que lo hemos hecho de nuevo en otra vez. Simplemente lo que tienes que hacer. Vaya a la segunda pantalla y simplemente hágalo en nombre constructor. Y se puede dar requerido ya que no es un elemento nulo en un valor liberal. Ahora en la primera pantalla, tendrás que hacer nada. Es un parámetro de nombre para tener que escribir el nombre que es el medio como lo mencionamos ahí. Y ahora mismo lo llamaré Elon Musk. Ahora de nuevo, comprueba si también funciona con el constructor de nombres. Cuando voy a la segunda pantalla y hago clic en Imprimir, ver Elon Musk. Entonces esta fue esa diferencia y desde el principio mismo de las sesiones de puntos, deberías saber la diferencia entre los parámetros constructores particionales y los parámetros de nombre han sido énfasis en esto una y otra vez porque es un concepto muy básico. Ahora, esa cosa está muerta. En un principio, elimino esa ruta con nombre porque estaba mostrando algunos agregados. Sólo porque si tienes una ruta de nombre y quieres pasar esos datos, también podemos enviar parámetros val1 navegando, pero simplemente agregamos argumento a un mapa empujando a la siguiente pantalla. Se puede ver aquí con el ejemplo navigator dot push contextos nombrados, contact dot ID. Entonces es un nuevo parámetro llamado argumentos y acepta mapa. Aquí la clave es nombre y un valor que he dado tiene cadena. Pero también puedes tener diferentes objetos o modelos personalizados en el futuro. Pero para entender ese concepto, hay que ver cómo se hace sacando a tu editor. Ahora en la primera pantalla, he llenado go y check in domain dot, dot. ¿ De acuerdo? Y como estamos usando rutas con nombre, tengo que eliminar este constructor. Es decir, no podemos aceptar un valor así. Para eso, ¿Cuáles fueron los pasos? El paso 1 fue? Aquí, simplemente vas a la tercera posición que es contexto más rápido. Segundo es el nombre de la pantalla. Eso es contacto dot ID. Voy a contactar, pero me gustaría ir a segunda pantalla, así que sólo cerraré segunda pantalla. Aquí podemos cribar. Si ves el rojo es este parámetro de argumento llamado argumentos. Y aquí simplemente puedes escribir nombre como clave y valor. Como puedes ver, Mark Zuckerberg. Y yo solo digo aquí, supongamos que estoy enviando dos valores, fundador, Facebook, ¿vale? Por lo que ahora estamos enviando su valor, pero definitivamente en esta segunda pantalla, debemos aceptarlo. Recuperarlo. Y para recuperar los datos. Este es el código que hay que recordar que es ruta modelada. Mucho contexto, ajustes de puntos, argumentos de punto también. Entonces sólo recuerda esto. Antes que nada comprobaré si es nulo. Es decir, si se da valor o no. Cuello, esto no es igual a nulo. Y aquí, esto mostrará algo rojo, rosa porque no se puede acceder incondicionalmente. Porque obviamente esto también puede ser nulo. Entonces o tenemos que usar al operador así, lo que significa que se enrolla. Sabemos r, podemos VR, permitiéndole comprobar. Este concepto se agrega recientemente en la no-seguridad. Entonces aquí en primer lugar, estamos comprobando si no es nulo, entonces sí, excepto almacenarlo en una variable. Lo mismo. Copiar y pegar. Y igual que como mapa. Por lo que hay que escribir mapa en orden como mapa porque de lo contrario será un objeto. Viene como un objeto, que estamos diciendo No, es un mapa aquí. Y luego simplemente escribir argumentos. La primera clave fue el nombre, y luego imprimir argumentos. Y la segunda clave fue el fundador. Vamos a revisar de nuevo. Ahora desde nombre de primera pantalla y financiador, ¿podemos imprimirlo? En cuanto vamos a la segunda pantalla? Acude a segunda pantalla y ve a Mark Zuckerberg y Facebook. Por lo que este es el V ofs pasando datos por nombre drop. Nuestro anterior aprendimos a pasar datos a una normal, esa es la forma normal de navegación a través de construido. Y segunda forma es usar una ruta de nombre. Aquí tenemos que asegurarnos recordar la ruta modelo punto fuera de los contextos. Esta es una forma de extraer los valores vinilos navegando. Entonces lo último de pasar el valor es que también podemos devolver un valor al volver atrás. Por lo que de primera a segunda pantalla, aprenderemos a pasar datos. Pero podría haber algunos escenarios donde desde segunda pantalla, debes conseguir algún tipo de conformación. Algún tipo de éxito, puede vender status y que dará como resultado ese cambio en esa primera pantalla. Para eso, necesitamos modificar la función post en la primera pantalla para asegurarnos de que espera el valor usando await y pasar el valor en la función pop de esta segunda pantalla. A lo que me refiero con eso es, en la primera pantalla, supongamos mientras empuja, ahora mismo no estoy enviando ningún dato. Tenemos que esperar. Entonces yo, boo status es igual a esperar. Este concepto asíncrono y espera definitivamente aprenderemos en la próxima sesión. Ahora mismo. Usted acaba de recordar aquí, estamos esperando este valor, para que esta función, para que esta acción se complete. Y luego en plomo, el valor se almacenará en ese estado lo hace Boolean. Y aquí me limitaré a decir estado de impresión. Y ahora en así desde la segunda pantalla. Si bien volvemos atrás, valoramos. Aquí, simplemente escribiré un punto contexto Bob. Y entonces aquí sólo cortamos mi relato verdadero. Eso es todo. Tan sencillo que al salir de la pantalla, tenemos que enviar este verdadero valor. Ahora cuando voy a la segunda pantalla y cuando hago clic en, volver con valor c, true. Por lo que esto se imprime desde la primera semana porque tenemos que esperar. Estaba esperando a que volviéramos de la segunda pantalla a la pantalla. Y después de eso, sólo este código se ejecutó como asíncrono y esperar son un concepto muy importante. Se llama programación asíncrona. Y definitivamente en la sesión posterior, estaremos profundizando en eso porque sin este concepto, no podrás construir ninguna aplicación completa. Para que se haga esa porción de navegación. Ojalá te divirtieras y tuvieras todas tus dudas claras. Por favor intenta hacer más y más pantallas y practicarlo, porque definitivamente tienes que recordarlo de memoria. Gracias. Nos vemos en la siguiente sesión. 24. Widget de navegación de Drawer: En esta sesión, estaremos hablando del widget de arrastre, que también puedes decir que envía barra de navegación lateral. Entonces si tienes uso alguna aplicación como Amazon, supongo que la mayoría de la aplicación tiene estas tres líneas o en el ícono de la hamburguesa en la parte superior. Cuando hacemos clic en él, es barra lateral viene con un montón de opciones para navegar. Entonces definitivamente lo haríamos en Florida, es una manera muy fácil de implementar eso. En las aplicaciones que utilizan diseño de materiales, existen dos opciones primarias para la navegación. En primer lugar son los grifos. Es decir, si tienes, si ves el ejemplo de lo que CEP, las pestañas en la parte superior, chats llama a esos pasos. Y la otra opción son los cajones. Cuando no hay espacio suficiente para soportar grifos, para proporcionar una alternativa práctica, podemos usar un cajón solo dentro de un widget de andamio. Por lo que hay que recordar eso. Vamos a probarlo. Vayamos a la primera pantalla. Andamio indus. Tenemos este cajón. Está bien. Esta es una sintaxis de escribirla a nuestro widget. Vamos a comprobar si algo sucede en la primera pantalla. Ver este icono de hamburguesa ha llegado. Estas tres líneas. Cuando hago clic en él, tenemos esto, esta navegación lateral aparece. Pero como no tenemos nada dentro, está vacío. Pero espero que hayas entendido que solo tenemos un código, pudimos mostrarlo en la interfaz de usuario. Ahora por dentro vía se acepta un niño. Definitivamente puedo, habrá muchas otras lecherías, habrá muchísimas derivaciones de ops de navegación. Entonces ahí dentro nos usaremos supongamos que no columna el ListView. Y les mostraré por qué no elegimos columna también. Pero ahora mismo, solo recuerda, excepto dentro que solo tienes una vista de lista. Y dentro de ListView, V puede tener opciones diferentes, diferentes. En primer lugar, solo te mostraré estilo de lista con una opción de navegación. En ese Titán. Tendré texto de segunda pantalla. Y al tap no voy a hacer nada por ahora, pero solo voy a guardar y mostrar que ves nuestra primera opción de Navegación que es ir a segunda pantalla puedes ver son solo ejemplo Inicio Contáctanos Acerca de Nosotros categorías, lo que quieras, Depende de ti. Entonces si tienes si recuerdas, nuestro encabezado también, si recuerdas gmail lab, ahí en el encabezado hay algunos detalles de cuentas como un beneficio de nombre de usuario por impulsar. Se puede tener eso usando cuenta de usuario, cuenta de usuario, dibujar nuestro encabezado. Entonces simplemente mencionó esas cosas. El nombre de la cuenta debe ser Elon Musk, cuenta, correo electrónico puede ser Tesla, y que es.com. Es muy raro que nunca uses una semejanza de cuenta de Gmail. El tercero, podemos tener. Por lo que imagen de cuenta corriente, usaré un avatar circular. Y dentro de eso puedes tener una imagen de red, pero solo usaré un ícono. Veamos cuál es la salida. Pero si tienes una app de Gmail contigo en este momento, acaba de anexar Gmail y mostrar. Ver esa navegación lateral de eso como aleta. Se puede comparar y ver. Tenemos esta imagen de perfil, nombre de usuario, y correo electrónico de usuario con este hermoso fondo también. También puedes cambiar otras cosas. Pero ahora mismo, es mejor mantenerlo simple. Porque el aleteo es muy vasto y habrá mucho y mucho argumento de propiedades que dar. Si quieres ver, sólo voy a ir aquí y decir Flecha color, margen de tecla sobre detalles presionados. Estas son otras opciones en ella. IA líder me dará un ícono para mirar. Ahora se ve así. Supongamos que este es el hogar. Voy a copiar y dar otra baraja como simplemente escribir. Ver. Entonces con esta navegación lateral, se ve realmente bien. Simplemente me saltaré otra página de inicio. Bueno, en casa y sólo escribe a quién aquí. Se puede ver este cajón. Ahora se ve muy profesional con principalmente por este encabezado. Todavía se ve impresionante. Y como dije, también hay algo llamado cabecera de cajón, que puedes probarlo por tu cuenta si quieres. Y ahora supongamos que esto no es ListView sino la columna, digamos que hay algo que cambia. Di que no, nada cambió. Pero recuerda, si tienes muchos datos que aún están aquí y no será desplazable si estás usando una columna. Entonces lista lo usamos cuando tienes muchas otras opciones en ella también. Columna funciona bien. También. Ahora vamos a navegar. A la pantalla de inicio. Yo me relaciono, navegar, empujar. Dan en la ruta. Tendremos un constructor de páginas. Contexto. El nombre es la pantalla de inicio. Está bien. Vamos a revisar. ¿ Navegamos a la pantalla de inicio? A ver, estamos en la pantalla de inicio. Ahora. Tienes que dar atención y entender lo que pasa cuando hacemos clic en el botón Volver. Cuando hacemos clic en el botón Volver atrás, este dibujo sigue abierto, pero no se ve bien. Debería estar cerrado así. Lejos que antes de empujar vía, hay que pop. Tenemos que escribir, navegar arriba pop con el fin de cerrar el cajón y luego pasar a la segunda pantalla. Inicia tu app. Ahora cuando voy al inicio, navegamos a esta pantalla de inicio, pero no en este tiempo si hago clic en el botón Atrás, viene correctamente a la pantalla de inicio y no ese dibujo anexar porque ya cerramos ella con el navegador dot pop. Entonces esto hay que recordar porque cuando tenemos una aplicación completa, no quieres nada que no se coloque en el usuario. El usuario se molesta o nada, tenemos que evitarlo. Así que asegúrate de tomar nota de estas cosas porque definitivamente dispones más tarde después de un mes, podrías olvidarlo. Eso es todo. Eso está todo muy abajo y dibuja una porción. Ese siguiente video estaremos hablando de navegación de fondo. Gracias. 25. Barra inferior de navegación: hoy estaremos hablando de barra de navegación inferior. Lo dejo si tenemos discutir qué es un cajón y cómo implementarlo. Por lo que esta es otra navegación muy a menudo. Y este widget se utiliza en la mayor parte de la aplicación. Porque solo imagina que esta es la pantalla y en esta zona que no es un lado inferior, hay algunas opciones que mosaicos, es decir, contacto domiciliario o chats o lo que sea. Si hacemos clic en él, así limpio se cambiará. Por lo que este es un widget muy cool, que ha sido dado por el marco de Florida. Y podemos agregar esto fácilmente al andamio. Al igual que en ese cajón también. Hay un parámetro en el andamio. Entonces probémoslo por nuestra cuenta. Y si ves hace sintaxis en ese andamio, está esta barra de navegación inferior, que acepta una barra de navegación inferior, rígida, que tiene un par. El primer parámetro es el índice actual. Es decir, qué pantalla es VR en ese momento, en ese momento. Y el segundo son los artículos. De qué estos artículos que es el, que es el ícono o puede guardar lo que nosotros, qué estamos a punto de navegar. Es decir, ¿ chats caseros son lo que queremos mencionar en la UI? Y el tercero está de grifo. Eso es lo que debería pasar si alguien toca esa opción de navegación. Por lo general tenemos que cambiar esta pantalla. Y aquí en la sección de notas se puede ver que debe haber más de un elemento de barra de navegación inferior para que funcione. Obviamente, si los otros artículos múltiples entonces sólo pecan la navegación. Para una opción, ¿por qué alguien usa una barra de navegación inferior? No sirve de nada. Entonces aquí en la imagen se puede ver de lo que estoy hablando. Esto es lo que estamos a punto de construir. Saca tu Código VS. Y ahora, Ok, No lo hicimos. Este es el error por lo booleano. Nada mucho. Ya que ya mencionaste que necesitamos algún tipo de valor booleano ahí. Comentario, tostado. Y así el andamio usará la barra de navegación inferior. Y un nombre de widget es navegación inferior, pero ahora tiene ítems. Índice actual por ahora solo diremos 0 ítems. Tendré barra de negación. No sé dar ningún icono. Debería serlo. Estaremos usando etiquetado porque lo ideal se está depreciando y etiqueta acepta cadena. Directo a casa. De igual manera, días y pegarlo dos veces, digamos puede y acabará aquí. Y cuando supongamos que puedes dar pesadilla, mantendré simple. Y solo diremos, está bien. Y lo siguiente es en eso. Lo que da, que es una función que nos da un índice. Simplemente imprimiré el índice por ahora y veamos qué se ha hecho. Ver usos de contacto domiciliario. Se ve tan bien. Cuando hago clic en Contactar, el índice es 1. Cuando hago clic en Usuarios, índice es de dos. Cuando hago clic en Aceptar. Whoa, el índice es 0. Entonces de esto es de lo que estoy hablando. Con este índice. Ahora vamos a hacer los cambios para que cada vez que alguien haga clic en contacto, debe ir a la página de contacto. O puedes decir aquí se construirá la página de contacto. No, no estamos navegando directamente, pero aquí sólo en esta pantalla, sólo páginas de Alda vamos a ver. Ahora lo que tenemos que hacer. Tenemos segundo bazo. Contamos con pantalla completa. Tu pantalla. Simplemente vas a la pantalla y en la parte superior, menos tienen un entero que es 0. En segundo lugar debe ser una lista de páginas. Aquí. ¿Qué no debería pasar? Deberíamos escribir todas esas páginas que necesitamos. Por lo que primero se debe suponer que el conjunto de pantalla es el contacto. Y tercero es éste que es mi estado pantalla completa. Mi estado pantalla completa. Está bien. Tenemos todas las páginas aquí. Ahora simplemente terminan cuerpo. Aquí en el cuerpo. Voy a quitar todo y escribir páginas. Entonces el índice está en el principio mismo, sigue siendo. Pero cuando alguien hace clic en algo, debería cambiar. Eso es estatal, el estado debe cambiar. Y para eso tenemos que hacer de ella una visión plena del estado. Ahora es un widget con estado. Cuando alguien toca esa navegación en particular, dijo un estado del índice 2, este índice el cual estamos recibiendo el d 0, 1, 2, 3. Entonces podrías estar pensando, ¿por qué? ¿ Cuál es la necesidad? Te volveré a explicar. Tenemos una lista de páginas, una posición en la escuela en casa, luego una posición contextos limpios y para posicionar mi pantalla con estado. Y tenemos una variable llamada índice, que comienzan inicializada con 0. Por lo que al principio, siempre se mostrará la pantalla de inicio cuando alguien inicie nuestra aplicación. Porque en ese cuerpo, tenemos estas páginas y el índice es 0. Ahora, cada vez que alguien hace clic, eso está al toque en cualquiera de estos elementos de la barra de navegación inferior. Ya sea contacto débil o lo que sea, su índice estará tomando eso es uno. Y esa pantalla se mostrará. Saca el emulador y mira que tenemos este contacto. Tenemos esta casa, y tenemos estos usuarios. Entonces, ¿qué escuela en casa en su lugar? Se trata de los hogares en Sibelius. Cambia la pantalla y la pantalla así. Ahora la pantalla de inicio es apropiadamente lo es. Y usuarios, tenemos toda la lista. Ahora no quiero 2 de esta parte app. Entonces lo que puedo hacer ya sea puedo quitar la barra AB de la pantalla, esa es la primera pantalla. Volvamos a traer nuestra app de nuevo. Digamos que se ve mucho mejor. Ahora cuando me cambio en el bar se cambia. Pero sí, sí, se ve muy bonito. Además, podría estar pensando por qué este color no está cambiando, porque aquí no hemos mencionado ese índice. Acabamos de leer 0. Pero aquí tenemos que escribir ese índice variable. Y luego inténtalo de nuevo. Ahora, esta cosa azul, color azul se mostrará en lo que haga clic, Ver ahora el contacto es azul. Ahora cuando hacemos clic en los usuarios, esto se destaca. Se ve muy bien. Ahora tenemos una interfaz de usuario muy básica, al menos. Hemos aprendido cómo funciona ese dibujo, cómo funciona la navegación inferior, cómo navegar de una pantalla a otra. Entonces en este módulo, hemos aprendido mucho. En el siguiente módulo discutiremos más conceptos de Flutter Framework. Hasta entonces, sólo practica y asegúrate de entender todo el código de corazón. Gracias. 26. Dibuja profundas en el Widget de TextField: En este módulo, estaremos hablando de la virgen TextFile. V se estará metiendo muy profundamente en este widget porque es el único widget que nos usaremos intensamente para manejar la entrada del usuario. En cualquier aplicación. Ahí tiene que hacerlo. Tenemos que tomar alguna entrada, ya sea el nombre de usuario, contraseña, lo que les gusta, lo que no les gusta, cualquiera que sea la edad. Por lo que el campo de texto es una región muy importante. Entonces, ¿qué es un campo de texto? Creo que ya lo hemos discutido. Textos llenan Florida es el widget más utilizado que permite a los usuarios recopilar entrada desde el teclado en una aplicación. Entonces este es un fragmento de código que es la sintaxis de cómo mostrar el campo de texto. Tiene algunas propiedades como siempre, decoración, ribete y muchas más. Entonces para empezar. Y lo que me gustaría hacer es quitarme las pantallas anteriores porque no quiero tantas pantallas en la actualidad. Si no quieres, solo puedes dejarlos como está. Pero como es un módulo nuevo, simplemente eliminaría todo. Tenemos este archivo principal. Voy a crear un nuevo archivo fuera de página, punto, punto. Como siempre. Simplemente voy a crear esta fecha menos rígida de página principal. Y tendremos esta pantalla de inicio. Empecemos con este andamio. Usar entrada. Y en la fiesta tendrá un asistente de columna v cuya principal existe alineación celular. El alineamiento estará en el centro. Y los niños. Ahora en eso niños, tendré este campo de texto. Porque con esa propiedad declaratoria, podemos dar alguna decoración como qué hacer, qué se trata este TextFile. Con este texto de nivel. Deberías escribir su nombre. Y frontera. Yo quiero delinear frontera. Recarguemos nuestra aplicación y guardemos la salida. Para comprobar este resultado. Es una pantalla básica. Hicimos relleno de texto en la parte inferior. También. Me gustaría envolver esta columna con un widget de relleno para que tengamos algo de espaciado por todas partes y se vea un poco decente ahora. Además, si lo deseas, puedes haber enviado dos de la APA. Asegúrate de recordar estas propiedades practicando. Por eso te sugiero que escribas hace pantallas todas y cada una de las veces por ti mismo, para que al final del curso, aprendas todo ese código. Entonces recuerda todos esos códigos de memoria, y no tienes que revisar una y otra vez. Por lo que ahora tenemos estos textos rellenados en daños y perjuicios. Pero debemos saber recuperar el valor de ese texto. Ahora bien, si escribo, entonces definitivamente debería haber algún código para recuperar el valor del campo de texto, que estaremos discutiendo en el siguiente video. Gracias. 27. Añadir un controlador de edición de TextEditing: hoy aprenderemos a recuperar el valor de un campo de texto. Ya tenemos este textual. Pero al menos debemos saber cómo conseguir w, cualquiera que sea el tipo de usuario. Para ello, estaremos usando el método del controlador. Entonces, ¿cuáles son los pasos? El primer paso es crear un controlador de edición de texto como este. Aquí puedes ver tenemos una edición de texto puede recolectar tipo. Entonces el controlador significa que es el nombre de la variable, que es igual al controlador de edición de texto. Ahora, adjunte ese controlador de edición texto al campo de texto. En ese campo de texto, definitamente el área es una propiedad llamada controlador, a la que el valor debe ser nombre de controlador oscuro. Ahora, el tercero es recuperar el valor del campo de texto mediante el uso de ese método de texto de punto proporcionado por el controlador de edición de texto. Entonces aquí se puede ver esto dará salida W, es decir, cuando escribamos ese nombre del controlador de edición de texto, luego dot txt, generará el valor de cadena. Por lo que espero que hayan entendido los pasos de usar una zancada de un kilómetro de largo por nuestra cuenta. Entonces aquí, en primer lugar, definiré ese controlador de edición de texto y lo nombraré significa controlador, que será igual a controlador de edición de texto. ¿ De acuerdo? Se hace el primer paso, que es este creado txt y controlador de final. Segundo es en esa película oscura Controller 28 textos. Tenemos este campo de texto aquí. A ver, ¿tiene una propiedad llamada controlador? ¿ Aquí? Este es el nombre, controlador de nombre de propiedad que acepta un valor de controlador de edición de texto. Y nuestro aprendizaje se nombra controlarlos. ¿ De acuerdo? Ahora, ese tercer paso es el valor del campo de texto mediante el uso del punto txt. Ahora lejos que vamos primero por debajo del texto para cuando deberíamos tener un botón elevado y dejar una fecha. Y en ese niño, simplemente escribiré letra impresa. Y elevado. Yo imprimo. ¿ Cuál es el nombre del controlador? Controlador de nombre y punto txt. Está bien. Reiniciemos en el nombre. Quiero decir, correcto. Jeff Bezos. Y simplemente haga clic en Imprimir y vea en la consola de depuración, son capaces de poner lo que tenga en el campo de texto. También. Si quieres mostrarlo en la pantalla. Diez simplemente podemos hacer de esta página de inicio un widget con estado. Y este nombre controlador. Podemos tenerlo en alguna parte de aquí. Encima de ese texto simplemente escribirá el nombre controlador dot text style x y tendrá un tamaño de fuente del font-weight, font, weight, bold, y lays, dot. Lo que es bueno. Y de manera similar al OK. Y ahora sólo tenemos esas pruebas. Eso es todo. Vamos a probarlo. ¿ Funciona o no? Ahora bien, si escribo Elon Musk y hago clic en Imprimir C, podemos generar lo que hayamos escrito en la interfaz de usuario esta vez no en la consola de depuración porque estamos usando el estado establecido. Es solo, sólo quiero que practiques esto una y otra vez y entiendas por esta incredulidad del estado conjunto y Chen fue llamado de nuevo. Y ahora este texto tiene este valor de Elon Musk. Otra forma es recuperar el valor es que podemos dejar una variable llamada cadena, nombre es igual a mt. Supongamos. Y en este campo de texto simplemente podemos escribir en cambiado. Y aquí obtenemos el valor. Y este valor, esto, ¿cuál es el nombre? String es nombre debe llamarse tomó mientras tú, eso es todo. Y podemos enviar probado también. Podemos simplemente establecer este estado. Y aquí el texto debe ser simplemente nombre variable. Esta es otra forma de recuperar el valor del campo de texto al cambiar. Pero la mayoría de las veces, gente usa el controlador de edición de texto en lugar de esto sin cambios. Pero no es que no puedas usar. Simplemente escribiré nombre como quiénes eran. Ahí está muy bien. Nadie se me viene a la mente que presente simplemente Bill Gates. Pero mira, cuando estoy escribiendo, es actualizar la interfaz de usuario porque en cadena es como cada vez que hacemos clic en un teclado, un alfabeto, o siempre que se cambie, se reconstruirá toda la pantalla. Eso es todo. Por lo que estas son las dos formas de recuperar valor. La mayor parte de su tiempo será controlador de edición de texto sin cambios y obtener nuestros otros sensores de opción como en país de edición, completos en enviado. Estas son también otras formas de conseguir W. Si quieres leer más, también puedes buscar. Pero te he enseñado lo más, lo más, utilizar la más aplicación o la forma más grande de recuperar el valor del campo de texto. Gracias. 28. Validación de entrada del usuario: En esta sesión, estaremos hablando cómo validar la entrada de un usuario. Pero antes de eso, debes entender un nuevo widget llamado widget de formulario. Involucrar un formulario virgen en tu aplicación simplemente hace que sea más fácil validar un reset y guardar múltiples campos de entrada a la vez. Y recuerda, usamos el campo de formulario de texto widget dentro de la forma en lugar de solo textos realmente. Entonces estamos aquí, estamos usando texto will. Pero ya que a partir de ahora estaremos usando completamente la forma. Entonces tenemos que usar ese formulario de texto lleno con él. Entonces lo que tenemos que hacer, simplemente antes que nada, me gustaría eliminar este nombre y OnChange. Entonces para que el widget de formulario funcione simplemente envolverá esta columna con el presupuesto. ¿ De acuerdo? Esta parte se hace ahora. Y este campo de texto debe leer formulario de texto rellenado. Esto también se hace. Ahora la siguiente parte es la validación de formularios. Entonces si estás construyendo una aplicación, si estás tomando alguna entrada del usuario, Es muy necesario ¿es obligatorio que valide entrada? Porque supongamos que tienes una contraseña que debe ser mínima de ocho caracteres y el usuario escribe solo cuatro caracteres, entonces no deberíamos permitirle que un número de teléfono debe ser mínimo de 10 dígitos. No puede simplemente seleccionar nueve dígitos e ir y dar un número falso a nuestra aplicación. Entonces para asegurarnos de que esos adders nunca pasaran con nosotros, tendremos unas reglas de validación de forma muy fuertes. Por lo que para validar una granja en aleteo, necesitamos implementar principalmente tres pasos. Paso uno se utiliza un widget de formulario. Tomamos clave global. Entonces, ¿qué es esta clave global? Simplemente recuerda que es una especie de estado el cual vamos a combinar o se puede decir que nosotros, que vamos a dar a la finca para que sepamos más adelante cuál es el estatus de la firma es validaciones están funcionando adecuadamente o no para eso. Entonces es solo una sintaxis que tenemos que recordar. No es pensar muy complicado. Simplemente le daré el nombre variable de clave externa y la pondré en azul voluminoso. Y luego aquí, forma estado. Esta es la sintaxis de asignar una clave global de estado y simplemente copiarla. Y en el campo de la granja, tendrás esta propiedad llamada clave y solo péguela aquí. De esta manera, puedes asegurarte de que Lou voluminoso y tu teléfono estén conectados. Ahora se hace el primer paso. En segundo lugar, usar textos de falló al dar la entrada llena de propiedad validador. Por lo que existe esta propiedad de mililitros que tenemos que usar. De acuerdo, vamos a hacer eso. Y el paso tres lo crea 10 para validar el campo de granja y mostrar el error de validación. De acuerdo, primero haremos el paso 2, que se le asigna unas reglas de validez al formulario de texto. Por ahora tenemos que usar la función validadora en ese texto lleno de diversión para validar las propiedades de entrada que el usuario da la entrada incorrecta. La función validador devuelve una cadena que contiene un mensaje de error. De lo contrario, la validez de la función devuelve nulo. Vayamos al campo de formulario de texto. Aquí. Simplemente tendré esta propiedad validadora, que es un buen valor Shen Dao, lo que sea que se esté escribiendo. Aquí, simplemente comprobaré si la cola está vacía. O se puede decir si el valor es igual a. Ahora así. Ahora puedes ver la cadena vacía así. Entonces gano. Se torna campo es obligatorio, de lo contrario, devuelve nulo. Tan bien, y luego siguiente paso de ley del toque era crear el botón que ya hemos hecho, que lo valida. Formulario rellenado. Entonces aquí, este es el código que recuerdas, pero ahora es el momento de usar la clave externa. Simplemente escribiré qi dot state dot validate. Fecha actual de validación de punto es igual a true. Se puede decir: Sí, simplemente escribiré, imprimiré. Presentar 10 sexos para Li k se extinguió. En primer lugar, Stefan. Y también presentaré no imprimir. Se ve profesional. Dentro de cadena vacía. Si hago click en Enviar, consulte Phil se requiere. Entonces esta es la validación de la que estaba hablando. Esto es muy importante porque definitivamente cuando tienes un formulario de inicio de sesión o registro, tienes que mostrarle al usuario estos mensajes de error como un feedback porque el usuario no quiere simplemente quedarse en su pantalla y no hacer nada. Y si yo, si escribo coqueteado y luego imprimo Submit, entonces se pueden ver firmas que hicimos con éxito. Entonces sí, así es como se valida el campo de formulario. También puedes tener múltiples campos de formulario. Simplemente te mostraré un relleno de formulario más. Simplemente escribe nombre y contraseña y contraseña o es orden adquirido? No, yo solo le voy a dar una longitud. Valor longitud de punto menor a tres. Si el valor de la longitud del punto es menor a 3 y obtenemos contraseña debe ser más de tres. Directores. Ahora tengo una nueva forma x libre, pero esta clave externa, esta fuente es suficiente para validar tanto de ese campo de texto como también para el segundo campo de texto, debemos crear otro controlador de edición de texto, que se nombrará controlador de contraseña. Simplemente lo copiaré y lo pegaré aquí. Ahora si escribo el nombre coqueteó, pero contraseña solo doy 12 caracteres, entonces ver contraseña debe ser más de tres caracteres. Ahora, si tengo cuatro caracteres y hago clic en enviar, formulario enviado con éxito. Pero así es como se valida múltiples campos a la vez usando la clave de formulario. Y es que, eso no es, usamos este widget para validar campos de formulario o puedes decir campos de texto. Ahora, otro concepto que debes conocer RE, que podría ser útil para ti es salvar una firma. Si bien la construcción de la aplicación, probablemente queremos guardar los datos del formulario para hacer algo con eso. En este conjunto, solo crearemos algunas reglas de ahorro para otros campos. Y luego cuando llamemos al Ancef mi papá, ejecutará esas tres reglas. A lo que me refiero con eso es en ese campo de texto, aparte de validador, tenemos muertos propios en salvado. Y simplemente imprimiré aquí. Simplemente imprimiré un nombre. El campo se guarda. Y en su validez eso se aísla en guardado e imprimir. Se guarda el campo Contraseña. Y para asegurarnos de que se ejecute este código o esta función, simplemente escribimos clave externa, dot current state dot save. Eso es todo. Por lo que tal vez lo necesites en algún lugar. Depende de ti. Pero al menos debes saber que estos conceptos también ahí. Cuando entramos a la app y de color gris, voy 2345. Y haga clic en Enviar. Ver ninfal la misma contraseña para listas guardar, y luego formularios enviados con éxito. Entonces aquí acabamos de imprimir valoración de inicio, pero se puede utilizar para asignar el valor dos variables, r y hacer alguna red llamando a lo que eran SET, sí estado o lo que quieras, Depende de ti. Pero cada propiedad o cada método se está utilizando para algún propósito determinado. Y ahora le toca a un desarrollador lo que quiere y lo que no quiere. Pero espero que hayas entendido cómo validar un campo de formulario y asegurarte de que el usuario no ingrese lo que quiera. En la próxima sesión, estaremos hablando más ese campo de texto y sus propiedades. Pero hasta entonces, espero que estén disfrutando. 29. Decoración y otras propiedades: Entonces hasta ahora hemos aprendido a usar características del campo de texto, a validar, a guardar y lo que sea. Pero ahora haremos que se vea bien también. Por lo que para decorar los textos se reutilizará la propiedad declaratoria, que toma como valor una decoración de entrada. Vamos a probarlo. Por lo que tenemos este campo de texto fuera de nombre. Aquí. Ya tenemos esta declaración propiedad la cual está aceptando decoración de entrada su valor. Por lo que ahora primero es texto etiquetado, que utilizamos para dar información al usuario. Ahora sólo tendré que quitar esto. Y el segundo es el texto de la pista. Por lo que dice una solución. Por lo que sólo escribiré tu nombre. Está bien, vamos a ver. Se puede ver primero es usar las propiedades de sugerencia y nivel para dar información al usuario. Ahora cuando hago clic en el nombre, se puede ver que hay esta cosa adicional. Eso es correcto, tu nombre completo. Entonces y cuando escribimos algo, se quita. Y cuando está vacío, se muestra de nuevo. Segundo es que puedes agregar iconos usando Puedo prefijo, puedo agregar sufijo, puedo agregar propiedades de la decoración de entrada. A lo que quiero decir con eso está dentro de la declaración de entrada, primero, te voy a mostrar. Yo puedo. Yo puedo, puedo empezar. Ahora. Está bien. Echa un vistazo. Ves, tienes este ícono aquí. Ahora cuando digo prefijo una lata, Es lo mismo en Linden Lu están bordeado, se extiende. Viene dentro de la frontera. Cuando estamos escribiendo prefijo y sufijo, puedo. Tenemos este ícono en el lado derecho. Entonces sólo esta es la diferencia. Nada mucho. Pero hay finitamente, este ícono le da un montón de eficiente y mira, me gusta ese prefijo uno, así que simplemente lo dejaré con ese prefijo que puedo. Está bien. El siguiente. También puedes dar polvo para agregar productivo, quitar sobre él con un campo de texto. Entonces en este momento, si no estamos escribiendo o dado alguna hermosa propiedad, entonces abajo están el trueque abajo ya es días por defecto, puedes quitar eso también. Para quitar eso, simplemente tenemos que escribir entrada, hamburguesa y guardar. Y ver que debajo de la frontera es. Pero si eres como yo, eso es que me gusta toda la frontera. Por lo que nuestro parámetro de entrada de plan es el valor que tenemos que asignarlo para que tenga un borde desde todos los lados del mismo. Y se ve muy bonito. Y además, me gustaría dar algún espaciado entre textos, rellenar formulario de texto apto para eso me llamarán grazones psi. Simplemente regalos y, uh, darle una altura de 20. Para que exista este espaciado entre los dos textos, campos de granja. Ahora la tercera declaración que podemos utilizar es el uso de textos ayudantes. Si no quieres una etiqueta, pero quieres un mensaje persistente para el usuario. A lo que me refiero con eso es en ese formulario de texto de contraseña rellenado, simplemente tendré el texto auxiliar y la contraseña debería ser. Jefe, mayor a tres. Está bien. Está bien. Has visto textos etiquetados, le has visto textos. Ahora, veamos cuáles son los textos de ayuda. Y mira aquí, Siempre está ahí. Si hago clic en la contraseña, entonces también se mostrará aquí no se eliminará. Por lo que es bueno asegurarse de que el usuario no haga ningún error porque podría no saber que su aplicación, excepto contraseña en legalmente entonces tres caracteres en ese caso sostuvo. Propiedad de texto es muy útil. Ahora. Y lo siguiente es que también puedes cambiar las propiedades del teclado para TextField. Es decir, los tipos son textos de entrada, tipo de entrada, texto, es decir teclado normal, luego tipo de entrada de texto número de punto, dirección de correo electrónico numérica, teclado normal, nosotros, tendemos al signo de tasa, fecha, hora, luego multilínea. Entonces ejemplo para eso es que voy a tener un nombre, supongamos entonces nombre. Y recuerda que este tipo de teclado es propiedades fuera de la declaración de entrada aquí. Y hay un tipo de teclado, texto, tipo de entrada número de punto, y eso es todo. Y diré, y cuando haga clic en Nombre ahora, vea este teclado numérico aparece. Por lo que esto se usa cuando estás pidiendo edad o puedes ahorrar mayormente número telefónico. Para eso, hay que usar esta técnica de teclado. Ahora bien, ¿cuál es el significado de este texto oscurecido para ocultar texto en si TextField configura la propiedad de texto de falda a true, usamos mayormente en un campo de contraseña. Entonces definitivamente, ya sabes, cuando el usuario es y durante su contraseña, no queremos que esté en los alfabetos normales. Queremos ocultarlo. Para eso, sólo tienes que ir al campo de formulario de texto fuera de la declaración de entrada, ¿verdad? Textos oscurecidos y acabo de dibujar. Y guárdalo. Ahora cuando vas en el autobús lleno de líquido y tipo f, l, tú el ER. Para que veas que la contraseña está oculta, solo puntea y no el alfabeto adecuado. Por lo que es la mejor práctica porque el usuario también llena que eres, que esta aplicación sea segura de usar. Ahora, la siguiente propiedad o el siguiente campo de texto de característica está controlando los caracteres max, Codex Wilkin los controla, los números de caracteres de Mac, un término dentro de él. Entonces si sabes intuitivamente A alguna longitud, ¿esa es nuestra limitación? ¿ De la misma manera? Podemos tener esta limitación. Supongamos que en el campo de nombre, simplemente podemos escribir longitud máxima de 15 que dicen, más que eso. estará el nombre de la persona muy clara. Entonces solo diré aquí es numérico alfabético. Pero desde que comiste 15, si trato de cruzarlo No. Ahora más que eso, no puedo escribir. Por lo que espero que hayan entendido las propiedades o la declaración de ese campo de texto. Se puede utilizar la misma declaración en el campo de formulario de texto cuando estamos usando un widget de formulario también. Entonces esto es, he escrito que quieres aprender sobre cómo trabajar con archivos de texto. En el siguiente video, acabaremos de aprender sobre algunos widgets nuevos como alerta, cuadro de diálogo y snack bars. Entonces hasta entonces, solo sigue practicando. 30. Widget de diálogo de la alerta: En esta sesión estaremos hablando la nueva versión llamada el diálogo de alerta. Por lo que un diálogo de alerta es una característica útil que define al usuario con información importante para tomar una decisión de proporcionar la capacidad de elegir una acción específica. Entonces en palabras simples, si quieres dar algo así como una alerta emergente, el usuario tiene que seleccionar sí o no son conformes para esos 10, podemos usar un cuadro de diálogo de alerta. ¿ Cuáles son las propiedades clave de la caja? Esas son acciones. Ese es el conjunto de acciones que se muestran en la parte inferior del diálogo. Típicamente botones, que ya esbozé es Canson son, estoy de acuerdo Ese tipo de botones luego aprietan que me encantó ese diálogo se muestra en una fuente grande y la parte superior del diálogo en palabras simples, supongamos, ¿estás seguro o una advertencia son importantes? Este tipo de palabras clave, luego contenido. Esto da una descripción del mensaje sobre el título que habrás proporcionado. Entonces puede ser simplemente como, ¿ estás seguro de que quieres desactivar tu cuenta luego de las acciones puedes tener una conjetura, IM o no, eso es solo un escenario que estoy diciendo. Entonces simplemente color de fondo o alivio. Por lo que para mostrar una alerta, debe tener que llamar a la función show dialog, que contiene el contexto y la función de constructor de elementos. Entonces aquí se puede ver que la sintaxis muestran el diálogo, luego los contextos, los contextos aceptores reales y su factura. Hay una función que devuelve un diálogo de alerta. Entonces probémoslo por nuestra cuenta. En el último video, lo hicimos hasta aquí. Ahora, la validación del proveedor es verdadera y se guarda el formulario. Entonces podemos mostrar un diálogo como show dialog. Y luego en ese contexto, será contexto. Pero el constructor, querido Will we function, que devuelve un diálogo de alerta. ¿ De acuerdo? Entonces en el diálogo de alerta, esa propiedad de título, usaré como 10 Q. Supongamos. Entonces en ese contenido, escribiré ese texto de enviado con éxito. Enviado, con éxito. Entonces en eso acciones, es decir, agua, los botones que me gustaría proporcionar son algún tipo de acción que un usuario tomará de este diálogo de alerta. Tendré, lo siento, no texto. Tendría un botón elevado el cual escribirá texto. Y simplemente K. Y después de cuando lo usen, haga clic en esto, vale, quiero que este diálogo desaparezca, esto salga. Por lo general, lo que puedes hacer es algo así como hecho. Entonces también puedes navegar a diferentes pantallas. O si tienes un botón de cancelación, entonces esta función de punto pop del navegador tienes que usar para que el usuario de nuevo, esto elimina ese cuadro de diálogo de la pantalla y vuelve de nuevo a la pantalla anterior. Veamos nombre. Escribiré coqueteo y contraseña 123456. Enseguida, somete y vea esto. Estaba hablando de este tipo de pop up con ese título. Tienes 10 Q y establece el contenido aquí. Y cuando hago clic en este botón de OK, ver ese cuadro de diálogo o cuadro de alerta desaparece. Y además aparte de las acciones, estas son las propiedades que acepta. Hay alivio, su color de fondo. Si escribes colores de fondo, acentúa, y luego rellena alrededor de ese contenido. Y ver puedes dar piling titulado agregando un búho en esa forma, puedes tener borde rectángulo redondeado o algo por el estilo. Por lo que se puede tener redondo y luego googler frontera, radio de frontera. enfriador de configuración de radio fronterizo obtendrá 10. Veamos de nuevo qué hace este color y forma de fondo a nuestro cuadro de diálogo de alertas. Conociendo entonces nombre, dejaré revolotear otra vez, contraseña 123456. Ahora cuando hago clic en Enviar, mira que el color es rojo y las fronteras se ven muy bien aquí porque está rodeado. Por lo que se puede decir que puede ser una alerta que es algo salió mal o algo por el estilo. Depende de ti. Y si hace clic en cualquier lugar fuera también, entonces también desaparece el diálogo de alerta. Por lo que no siempre es necesario. Podemos si queremos, también podemos asegurarnos de que eso no suceda. Pero supongo que hay una propiedad diferente para eso. Si quieres estudiar más al respecto, solo puedes explorar por tu cuenta. Pero un básico, ahora hemos aprendido a, a utilizar un diálogo de alerta básica en nuestra aplicación de aleteo. Por lo que en la siguiente sesión o en el siguiente video, también hablaremos de un nuevo widget, que es el snack bar. Gracias. 31. Mostrar bocadillo: En la sesión anterior hablamos de diálogo. Por lo que en esta sesión, estaremos hablando de un nuevo widget llamado el widget de snack bar. Widget de Snack bar se utiliza para mostrar mensaje corto. Normalmente se muestra en la parte inferior de la pantalla. Y también maldito mensaje se muestra por un periodo de tiempo muy corto. Y proveedor un tiempo específico y proveedor se completa, desaparecerá de la pantalla. Entonces cuando estamos usando el snack bar, ese usuario no tiene que hacer ninguna acción al respecto. Bastante no interrumpir su aplicación sólo pero cuando estábamos usando diálogo de alerta, nos da hip pop up. Por lo que ese usuario, cualquiera que sea la pantalla en la que estuviera trabajando estaba usando, eso será interrumpido. Pero snack pero es muy ligero y solo viene y se va. Se, sí envió. No hace que la experiencia sea incómoda, lista, desagradable para el usuario. Entonces esta es la sintaxis. Es un snack bar básico y luego contenido. Aquí, el contenido acepta como valor a una virgen, que suele ser textos visitados. Ahora, ¿cómo exhibir un snack bar? Para mostrar snack bar v, hay que utilizar este código que es andamios messenger dot off context. Y después de eso podemos entonces mostrar snack bar. Vamos a probarlo. Ahora. Yo en primer lugar comentaría abajo este cuadro de diálogo. Y aquí voy a mostrarnos snack bar con simplemente andamio, messenger dot off context dot C. Aquí tienes show snack bar. Y dentro de ella solo tienes que escribir neg bar. Y en ese contenido, se puede escribir formulario enviado con éxito. Está bien, probémoslo. Trae tu emulador. Nombra la contraseña 123456. Ahora, cuando hago clic en el Enviar, ver formulario enviado con éxito, y después de dos o tres segundos, desaparece. Por lo que es una muy buena retroalimentación para el usuario. En caso de que haya algún error. Supongamos que el campo de contraseña o el usuario ya existe. Por lo que este tipo de mensajes de error son mensajes de éxito se pueden mostrar usando el snack bar. Ahora también aparte del contenido. Por lo tanto, snack bar tiene otras propiedades también. Al igual que la acción. Es decir, supongamos que también puedes tener algo como despedir, cancelar, botón OK. Igual que el cuadro de diálogo de alerta. Entonces fondo-color. Supongamos que voy a añadir colores, punto-punto, leer, no leer, ya que dice éxito, entonces dejaré verde. Después hay margen, forma de relleno, duración también. Es si quieres que la duración sea menor. Entonces aquí puedes tener segundos y simplemente escribiré 1 segundo. Ahora intentémoslo de nuevo. Coquetear. Después 1, 2, 3, 4, 5, 6. Y presentar. Y C formulario enviado con éxito. Y ahora como era uno, Segundo, desapareció más rápido en comparación con el anterior. Antes, supongo que fueron dos o 3 segundos, uno por defecto. Ahora depende de ti cuánta duración quieras. O también si, suponga si hay un editor, puede tener el color de fondo es rojo. Por lo que es una muy buena retroalimentación para el usuario. No se confunde por qué no es capaz de iniciar sesión o algo así. Entonces solo recuerda este cuello pero es muy importante para widget. Y supongo que cuando se compara con un cuadro de alerta, dejar diálogo v estará usando snack bar con más frecuencia en nuestra aplicación más adelante. Entonces eso es todo. Para este módulo. Hemos aprendido a utilizar texto visitará cómo recuperar su valor, cómo validar, cómo validar, entonces ¿cuáles son las propiedades del campo de texto? Y luego Andy y nosotros hemos aprendido de estos dos nuevos widget, que es el diálogo de alerta y ese snack bar. Por lo que en el siguiente módulo, estaremos iniciando un nuevo tema. Tilden. Sólo sigue practicando. 32. Comprender futuros: Hola, bienvenido al nuevo módulo donde estaremos discutiendo sobre nosotros programación sincrónica. Entonces si eres nuevo en este concepto, podrías estar pensando ¿qué es un sincrónico? ¿ Si ves de cerca? Simplemente de una manera normal de escribir códigos, los códigos se están ejecutando línea por línea. Eso es de arriba a abajo. Y hasta que una funcion completa ejecución. La siguiente función tiene que esperar. Por lo que esperará hasta que se ejecute esa línea de código y pasará a la segunda línea. Pero en la programación asíncrona, mencionamos las funciones que pueden tardar tiempo en ejecutarse y esperar el terreno de incrustar de terminación sin detener la ejecución de la siguiente pieza de código. De esta manera, se logra la ejecución paralela del código. Así que simplemente asuma que está cargando algún archivo a la base de datos, al servidor. Entonces hasta que el archivo pueda ser grande y puede tardar algún tiempo en ejecutarse. Entonces en viales que se está subiendo phi, también puedes servir navegar o hacer algunas otras cosas en la app. Para que no tengas que esperar hasta que se complete un 100 por ciento. Entonces este es un ejemplo muy bonito, los otros diferentes también. Entonces cuando lo vamos a hacer prácticamente. Entonces entonces en ese momento lo estás, tus dudas o conceptos serán más claros y lo entenderás adecuadamente. Eso es todo. Entonces cuando hablamos de programación asíncrona en esos dos términos que nos vienen a la mente, nuestros futuros y flujos. Entonces estos son los dos modos de los tipos de nosotros los programas sincrónicos. Se puede decir. Lo discutiremos uno por 1. En primer lugar, discutiremos qué es un futuro. Entonces si usted silla es simplemente cuál es su nombre. Deuda es que los datos vendrán después de algún momento en el futuro. Imagina que vamos a pedir algunos datos de base de datos y el resultado será devuelto después de unos segundos. Por lo que definitivamente sede. Inicia tu aplicación de Instagram o Facebook. Toma uno o dos segundos para refrescar tu feed. Tan tiempo muerto, podrías ser capaz de hacer algo, pero es posible que no. Depende de ellos, pero ese es un ejemplo de futuro. Es decir, que los datos vendrán incrustar en un futuro cercano. Y es una garantía de que algo vendrá del final. O es un dato o es un nulo. Si no hay datos, sólo hay que recordar ese concepto. Eso es todo. Entonces ahora se nos entiende lo que nuestros futuros, es el momento. Sabremos definir el futuro. Si tú, Chad se define exactamente como un funcionamiento que, pero solo usamos futuro como prefijo, prefijo. Se puede ver como ese tipo de datos tipo de retorno. Si desea mantener el tipo de retorno de la función, entonces puede escribir este futuro luego escriba I que esa función está devolviendo algún tipo de cadena, booleana o void. Es decir, no está devolviendo nada, pero va a estar haciendo algo. Dicho esto, ahora, sabemos cómo, cuál es nuestro futuro, cómo definir una característica. Ahora es el momento. También sabemos usar el futuro en nuestro programa. Hay dos formas de ejecutar un futuro usando Dan catch y usando async await. Por lo que los eventos futuros Normalmente las solicitudes de red son la operación de entrada-salida es decir, desde su propio dispositivo. Ahorrará algo o recuperará algo. Pero aquí simularemos nuestra solicitud falsa y de red usando Future dot delayed, lo que nos ayudará a entender el concepto sin llamar a una API real en este momento. Porque en el siguiente módulo, estaremos trabajando con datos reales, que se convertirán a partir de una API dedicada. En ese momento también, estaremos usando futuros. Pero con el propósito de entender el concepto, simplemente falsificaremos o simularemos escenario de muerte en nuestra aplicación. Este punto futuro retrasado toma dos argumentos dentro de él. Entonces para ejecutarlo, tenemos que pasar dos argumentos. En primer lugar es la duración, que especificará cuánto tiempo tardará en ejecutarse. Y segundo argumento es una función que debe ejecutarse después de que se termine esa duración de tiempo, se completa. Ya basta con la parte teórica, podrías estar pensando , vale, he entendido algo pero habrá muchas dudas. Para despejar esas cosas. Saca tu editor de texto. En el archivo de hoja, voy a crear un nuevo archivo de futura pantalla dot-dot-dot. Aquí. Material de importación, como siempre, tener una visita con estado de futuro pantalla. Entonces simplemente andamio parte de la aplicación. Entonces sólo voy a dar futuro. Está bien. Ahora en el cuerpo, servicio de plomo y televisión, luego niño teniendo botón elevado. Y en ese texto simplemente puedes decir, Haga clic aquí. Eso es todo. Ahora, ve a la media y haz esa pantalla futura tu pantalla predeterminada , el archivo principal predeterminado. Está bien. Sí, tenemos esta página. Ahora lo que haremos es crear una función que será un futuro. Simplemente crea un vacío futuro. No devolverá nada por ahora. Después dele el nombre de Get Data e AI. Entonces lo que podemos hacer es usar Future dot retrasado importó. Ver Future dot método retrasado para falsificar una llamada a la red. Ahora la escucha de que los datos deberían aparecer después de tres segundos. ¿ Y qué debió haber estado aquí? ¿ Qué debe hacer? Lo que se debe hacer es que se imprima. Es aleteo. Desarrollador. Porque aquí el primer argumento fue la duración y el segundo argumento o como una función que debe ejecutarse después de que se retrase este punto Futuro. Dinamita se hace el distrito segundo. Y la siguiente línea de código que vamos a escribir aquí es línea aleatoria de código. Sólo imagínate, sólo recuerda esta cosa. Y como es un futuro, debe ser sincrónico. Tenemos que escribir un fregadero ahí. Es, es una cosa que hay que recordar todo el tiempo que ese aleteo debe saber que esta función es una función asíncrona. Eso es todo. Ahora, copia esto, consigue datos , presiona ejecutarlo. Ahora. Ahora solo ahorra También si quieres. Se puede tener, de nuevo, dos futuros sólo por el bien de comprensión y dará un t segundo final por debajo de 12 segundos. Si estás recibiendo envidia, solo puedes pausar el video e intentar entender ese código una y otra vez. Ah, está bien. Ahora, si vemos nuestro código de arriba a abajo aquí, ID de usuario debería ser lo primero. Entonces esto, oye, es un desarrollo aleteado, esos son los datos del usuario. Y entonces esta línea aleatoria de código es la última línea. Pero cuando hacemos clic en el botón, ver lo primero que se ejecuta o que se imprime fue línea aleatoria de código. Entonces eso, oye, es desarrollador inundado. Y por último el ID de usuario. Para que se pueda ver que los futuros. ¿ Qué es un futuro? Es decir, tomará algún tiempo de descanso dos o tres segundos. Pero después de eso, el valor, obtendremos el valor o se ejecutará el código. Pero no se detiene. Entonces eso fue lo que no esperó tres segundos para ejecutar. Simplemente fue directamente para imprimir una línea aleatoria de código. Y acaba de ejecutar esa línea de código. Entonces esto nos está ejecutando sincrónicamente, pero hay un tema. Es decir, el nombre de usuario debe ser recuperado solo después de ID de usuario. Eso significa que debemos esperar a que se ejecute una función. Simplemente imagina si esta es tu app de Instagram, entonces cuando la app está llamando a la base de datos para la información del usuario, son el ID de usuario. Después de eso, sólo, la pantalla de inicio debería aparecer con esos detalles. Sin los detalles, debe esperar y no, y no debe ir a la siguiente línea. Para tal efecto. Utilizamos Esta captura Dan. Por lo que usar esto entonces atrapar significa después esta duración son estos futuros se completa, entonces sólo hacer hace segunda línea de código son entonces sólo hacer la segunda cosa. Entonces sólo espera y trata de entender. Dot Dan está apegado al final mismo de la función. Entonces aquí, antes de este punto y coma, solo voy a dar clic en punto y luego ver hay algunas cosas y usaremos punto-punto. Entonces lo que significa es primero que el futuro debe ejecutarse y tomará tres segundos. Después de tres segundos cuando se haga este sprint. Entonces sobre Likud a esta línea de código, eso es todo. Y luego cogerlo y gana. Si mientras ejecutaba esta función, si algo, algún error o algo salió mal, entonces éstos deberían, por ahora imprimir punto print que agregó. Pero por lo general hemos dado una retroalimentación al usuario usando un snack bar o algún cuadro de alerta. Entonces si recuerdas la salida anterior, era una línea de código aleatoria al principio, luego odia a Florida y luego ID de usuario. Pero ahora queremos un ID de usuario. Esta línea aleatoria de código se ejecutará primero porque esto es un futuro y tomará algún tiempo. Entonces sí, No va a esperar e ir directamente. Pero se puede ver en esta salida que el ID de usuario, tenemos el ID de usuario y luego solo tenemos el detalle de los usuarios. Por lo que hemos conducido con éxito, escrito una función futura en teatro y también hemos aprendido a ponderar o a utilizar el error catch mientras se trabaja con futuros. Espero que hayan entendido el concepto. Si tienes algunas dudas, te sugeriré que solo tengas paciencia y Vig. Porque en los próximos dos o tres módulos, al final de los tres modelos, definitivamente tendrás todas tus dudas claras porque este es solo un ejemplo muy ficticio. Pero cuando estamos construyendo aplicación real, se marchitará. De acuerdo, Por esta razón, mientras estamos, mientras ustedes están aprendiendo estas cosas son, este es el escenario de caso de uso para 10. Entonces eso es todo. En la próxima sesión, estaremos hablando de esto. Estaremos hablando de este fregadero y esperaremos. Porque usar Dan jaula y usar asincrónico y esperar hace lo mismo, pero están muy lejos. Escribir código es diferente. Eso es todo. Espero que practiques y estés practicando mucho. Nos vemos en el siguiente video. 33. Concepto Async Async Async: Por lo que en esta sesión estaremos hablando de palabra clave async await mientras se utiliza un futuro. En esa sesión anterior, aprendimos a usarlos catch error, y definitivamente funciona bien. Pero también hay una sintaxis alternativa que muchos finan para ser mucho más legible y también para evitar cadena múltiple de la jaula del dengue, usamos una palabra clave sync. Después nuestro nombre de función, y agregar palabra clave await antes de cualquier cosa que necesite algún tiempo para ejecutar eso. Sólo por ejemplo, nuestra solicitud GET o este futuro retrasado. Ahora, todo después de esa espera se ejecutará cuando se haya devuelto el valor. Entonces lo que quiero decir con eso es que se puede ver la sintaxis. Tenemos este futuro y futuro nombre. Entonces esta función tiene esta palabra clave del mismo, lo que simplemente significa que esta variable de impresión solo funcionará si este futuro financiero devuelve ese valor o no. Entonces vamos a probarlo. En primer lugar, si quieres, puedes hacerlo con el mismo ejemplo si queremos. Ahora, tengo esta función fuera de esas diez en punto y la voy a quitar. Ahora. Supongamos que esta función devuelve un ID que es uno y V tienen este id almacenado en una variable llamada ID de usuario. Pero ahora, pero ahora esa cosa es V1, ese ID de usuario, y tráelo aquí. ¿ De acuerdo? Entonces si lo hacemos en este momento, definitivamente, mostrará agregado o algo así como nulo. Si, hay, su futura instancia de usuario un futuro que significa que el valor no se ha almacenado en esa variable ID de usuario. Deberíamos esperar. Y aquí viene la palabra clave peso, que simplemente significa esta función. Después de que esta función se ejecuta, entonces en código de líder irá a esta línea. Entonces ahora lo que verás es cuando haga clic en este botón, este código aleatorio de línea no se ejecuta. En primer lugar. Esto se ejecuta. Entonces esto porque está sincronizado, no hemos dicho que esperemos aquí. Y ahora esto tiene este valor de 1. Pero este concepto es muy, muy, muy importante porque cuando estamos construyendo con Firebase y bases de datos, el futuro se utilizará todo el tiempo que yo soy. Entonces por eso hay que entenderlo. Esta función esperar claramente esperar palabra clave voy a decir. Ahora dirás que no, quiero esperar esto también. Y por fin se deben ejecutar las cotizaciones. Por lo tanto, simplemente escribe una función de peso. Antes de esta función. Y ahora verás el cambio de salida. Primero, ID de usuario, segundo, oye, es aleteo. Y luego línea aleatoria de código. Porque tenemos nuestra solicitud a Whittier. Hasta entonces, no vayas a la siguiente línea. Entonces es un concepto muy importante. Por favor intenta volver a practicarlo en un niño. Ahora podrías estar preguntando qué pasará si hay algún tipo de error. Para eso, utilizamos este bloque try catch para captar cualquier error de red. Y hacia esas cosas de aquí, Eso es todo. Y en la captura si quieres, solo puedes traer dirigida. Porque anteriormente teníamos entonces y cogerlo. Pero ahora cuando estamos usando async await, deberíamos usar ese bloque try catch también. Y hundir no significa que solo tengas que crear este tipo de función de TI separada. Ahora, supongamos que tenemos esta huella. Segunda función. Supongamos. Ahora, ¿qué pasará? Cuando hago clic aquí, ver segunda función se ejecuta primero. Y entonces esto consigue la duda porque aleteo sabe que es un futuro. Entonces, que no esperó aquí y se fue a esta línea de código. En este escenario. Nuevamente, si dices que no, quiero es obtener datos para ejecutarse primero, luego en labio imprimir esta segunda línea de función de código. Entonces otra vez tienes que usar un fregadero aquí y un peso aquí. Ahora echa un vistazo a tu salida. Y pudimos usar, es una función también, y esta también fue una función. Por lo que tienes que entender que solo necesitas una función para que nosotros trabajemos. Ahora bien, esta línea se ejecuta primero y ver, se ejecutó en ese último. Entonces espero que hayan entendido profundamente el concepto de asíncrono, aguardan y futuros. Debido a que este concepto es tan importante que dudamos de este concepto, no se podría trabajar en ninguna aplicación posterior. Y no te pongas no te abrumes por ello. Porque sé que es un concepto muy nuevo si eres nuevo en esta lata de programación. Y si no lo has entendido todo, está bien. Porque como principiante, entiendo que tendrás alguna duda. Tendrás que practicar mucho, pero eventualmente lo conseguirás. Eso es todo por hoy. Espero que estén disfrutando de nuestras sesiones fotográficas. Y también cuando no estás viendo nuestros videos, solo estoy confiando en ti que estás practicando por tu cuenta. Y Q. 34. Qué son Streams: Hola. En esta sesión estaremos hablando de streams. Antes hemos discutido qué es un futuro, pero ahora es tiempo nodo V, el segundo tipo de programación sincrónica que estos flujos. Entonces cuando estamos usando streams, entonces tenemos muchos valores siendo buscados y honestamente, y en lugar de anexar una conexión una vez, como en el futuro, podemos hacerla permanecer abierta y lista para nuevos datos para entrar. Simplemente, se produce cualquier cambio o se inserta cualquier dato nuevo, se reflejará al final. Future tiene sólo una respuesta, pero stream podría tener número de respuestas. Simplemente, me gustaría decir que cuando estamos usando un futuro, si algo cambia ya sabía notificar o aparece nuevo mensaje, que un usuario tiene que refrescar esta página o aplicación. Pero cuando estás usando streams, es en tiempo real. Es decir, cualquier cambio de datos, su base de datos se reflejará directamente en sus deudas de aplicación. Se. No tienes que tener, no tienes que pensar en otra cosa. Esta es la diferencia básica. Entonces en el siguiente módulo, estaremos hablando de streams más prácticamente porque estaremos usando Firebase. Aquí volveremos a simular nuestro falso, evento que devuelve un nuevo mensaje cada pocos segundos, solo para hacerte entender ese concepto. Por lo que hay cuatro pasos involucrados. Crear streams, agregar datos a un stream, escuchar un stream y luego cerrar una cadena. Hagámoslo prácticamente. Saca tu editor de texto y ten un nuevo archivo llamado stream. Captura de pantalla oscura. De nuevo, lo mínimo desnudo que necesitamos, ¿verdad? Está bien. Voy a usar el menos rígido porque la IU no se ha cambiado. Stream, pantalla, denso, andamio, Dann die Daten flujo de texto. Ahora, lo que haremos es simplemente crear un arroyo. Y para crear esta corriente, tenemos que predecir controlador de flujo, que se utilizará para controlar esa corriente. Stream. Controlador de corriente se debe pierna esto. Y esto se importa automáticamente porque estamos usando streams y odd. El segundo paso es agregar datos a la corriente. Para simplemente para eso, crea una función llamada datos de flujo. Y aquí se puede tener un bucle for de int I es igual a 0, yo menos de 4, I plus, plus. Y luego controlador stream dot add. Recibiste el mensaje. Y entonces sólo esperaré dos segundos aquí. Entonces sólo es FOR bucle se ejecutará de nuevo. Esto segundos para, eso es todo. Nada más. Ahora en el cuerpo. Vamos a tener un aliviado, pero hecho. ¿ De quién brillo? Cuando hacemos Click para transmitir. Entonces en el principal, hazlo por defecto. Pantalla y solo reconstruir o la estata. ver. Tienes esto el arroyo. Y sólo lo vamos a centrar. Está bien. Ahora en ese flujo de datos, voy a parecer, por favor lista, empieza a escuchar. Haz, hace árbol. Eso significa escuchar significa que entra cualquier dato nuevo. Cada uno debe imprimirse. Simplemente imprimiré datos. Y los datos de cadena que asignaré a esa función. Sé que aquí hay muchas cosas por entender, pero sólo se pueden ver pasos de polvo. Primero a nosotros creando un nuevo arroyo. En segundo lugar fue agregar datos al arroyo. Cansado estaba escuchando el arroyo, que simplemente significa qué? Eso simplemente significa, que empezamos conexión que esto es cierto es básicamente como un río. Ahí es cuando se inicia uno. Si, si el punto de inicio de la tarea no está cerrado, entonces esos datos o el agua comenzarán a fluir continuamente hasta y a menos que bloquee su camino, simple como eso. De acuerdo, Vamos a dar click en este botón. Tienes el mensaje. Tienes el mensaje C3, 4, cuatro veces que imprime porque tenemos este cuatro. Y si estás pensando que no. Por lo que sólo escribiré imprimir aquí después de dos segundos y simplemente imprimirá, leerá. Kay? Vamos a intentarlo de nuevo. Perdón, esto porque era un arroyo. Por lo que hay que reiniciarlo. Porque ya empezó a escuchar. No puedes hacerlo una y otra vez. A ver que recibiste el mensaje. Leer. Tienes que leer el mensaje, tienes que tasa de mensajes. Por lo que aquí los datos nos fluyen continuamente. Necesito cambio se desvió sin que cambiemos, reiniciando la aplicación. Esto se hace significado del arroyo. Eso es todo. Entonces podría estar pensando, ¿qué pasa si sé que se ingresan los datos? Entonces si se ingresa otro dato más adelante también, entonces también se imprimirá. Lo que digo es que tengamos un botón de acción flotante. Shea. Simplemente escribiré, agregaré un on-premise. Simplemente lo haré en ese controlador de corriente, le agregaremos que tiene una nueva defecación de nodo. Está bien. Ahora veamos. Aquí no he escrito ninguna impresión ni nada, pero como está escuchando vía ya he escrito este código y ejecutarlo. Al igual que si hago click en esto, empezó a escuchar. Ahora, después de que todo esté hecho, si hago click en Agregar, veo que tienes una nueva notificación. Entonces no tenemos que volver a escuchar ya la conexión ya estaba abierta y necesitaba eso, eso fluye dentro de ese arroyo se saldrá. En palabras simples, imagina que tienes tus mensajes en la barra de notificaciones aquí. Si alguien te siente nueva notificación, nuestro mensaje, este conteo aumentará 123. Entonces este es el concepto de moderación. En palabras simples, ¿cuál es la diferencia entre futuro y arroyo? Futures se ejecuta una vez que un estado va a la base de datos y llevar eso a esa conexión ha terminado. Si algo cambia en la base de datos, el usuario tiene que refrescar esta página o tiene que reiniciar su aplicación, entonces sólo se enviará una nueva solicitud futura. Pero en caso de freestream, cuando va y pide los datos, ella, ella, anexa una conexión. Qué, y en ese caso, si ese valor o si algo cambia en la base de datos, fluye directamente de la base de datos a la app. Sin el usuario refrescante ni nada. Simplemente se actualizará aquí automáticamente. Espero que tengas claro eso básico. Y también con el ejemplo del mundo real lo haremos en entonces próximos módulos. Pero hasta entonces, solo disfruta lo básico de cualquier teoría que estemos aprendiendo. Gracias. 35. FutureBuilder y StreamBuilder: Bienvenido de nuevo. En esta sesión estaremos hablando un nuevo widget llamado Future builder. Y básicamente es una visita con ayuda para lidiar con futuros. Algún futuro cuando eso quita parte del código que tenemos que escribir cuando estamos buscando algo de esa red, es decir de la base de datos o servidor. Digamos que quieres buscar datos de la base de datos al lanzamiento de la aplicación y mostrar un spinner de carga hasta que llegue más tarde, en ese caso, el futuro se verá viene muy útil. No es como lecturas muertas. futuro habrá no puede realizar la tarea, pero tomará mucho tiempo son algunos más de código. Tienes que hacer algo de estado conjunto y todo. Pero, ¿por qué todas estas cosas cuando tenemos este impresionante rechazan con nosotros? Por lo que se devuelve como cualquier otro widget. Acepta dos parámetros. Uno es futuro y el segundo es constructor. Y el constructor también toma una función que tiene dos parámetros. Uno es contextos, que es por defecto, y segundo es snapshot, que es sólo un nombre de variable. Pero es muy importante porque contiene los datos devueltos por la función característica. Entonces aquí se puede ver la sintaxis, simplemente futuro constructor. Entonces el futuro es la función que está devolviendo el futuro. Y ese constructor, devuelve un widget dentro de él, pero es una función. Entonces hagámoslo prácticamente para que lo entiendas más. Acude a la pantalla del futuro. Y lo que podemos hacer es que podamos volver a tener esta función. Yo sólo lo hice por las pruebas. Vamos a tener una función futura llamada get username. Y será lo mismo porque es el futuro. Ahora vamos a establecer una variable. Cuerda final. Usuario es igual a Future dot d lastrado. Tengamos una duración de dos segundos. Y entonces tengo una función que básicamente devuelve el valor de Bill Gates. Tessa Violet, la variable de usuario, y luego regresamos a este usuario. Ahora es un futuro que está devolviendo un valor de cadena. Ahora este futuro ha sido devuelto. Tenemos que demostrarlo en nuestro cuerpo, solo vamos a quitar todo y tener un futuro. Con nosotros. Un error tipográfico. Este futuro constructor, que es primer parámetro es futuro, que debemos asignar este get username. Y segundo. Y el segundo es constructor, que es una función y acepta contacto no exhibir nos da contexto y una instantánea. Y tiene el tipo de datos de la instantánea de sincronización. Por lo que 10. Ahora bien, espero que lo hayan entendido. En primer lugar. Escribimos este widget de Constructor futuro. Lo asignamos a un video futuro. Ahora las cosas importantes, CMS, que es el papel de esta instantánea. En primer lugar, tenemos que comprobar si snapshot dot tiene datos. Si es mayor que, está bien. Hasta entonces mostraremos algo como un indicador de carga. Will simplemente eventos podrían aprender indicador de progreso. Por lo que esto se ejecutará hasta ese momento. Eso es este 2 segundos, primero a segundo lo. Entonces hasta ese momento definitivamente tenemos que mostrar algo a la pantalla. Y estaremos usando este widget llamado indicador de progreso circular. Ahora supongamos que tenemos datos, entonces simplemente regresaremos. En ese niño, tendremos un widget de texto. Vamos a dar salida a datos de punto, que está dentro de la instantánea. Datos de instantáneas. Eso es todo. Vamos a probarlo por nuestra cuenta. Empezamos lo siento, quiero decir, tenemos que asignar esta pantalla futura. Vea esta carga e indique que hubo allí durante dos segundos. Y entonces tenemos valor Km, que está siendo devuelto por la futura función. Por lo que espero que hayan entendido al futuro constructor. Lo más importante, hay que investigar en el snapshotting porque esta es esa cosa que usaremos para manipular nuestros widgets. Eso es archivo FASTA mostrar un indicador de carga y luego mostrar un show o se ponen esos datos. Eso es todo. Entonces sí, puedes ver el código aquí otra vez. Entonces lo siguiente que hicimos fue un StringBuilder. Stringbuilder funciona igual que un futuro constructor. Sólo diferencia. Se, escucha continuamente que se hace cambio y actualiza la interfaz de usuario en consecuencia sin tener que actualizar o reconstruir nuestra pantalla. Ahora StringBuilder también toma un dos parámetros, que es trim y un builder. Ahora también construir que toma una función que tiene dos parámetros, contextos mismos que por defecto. Y snapshot es solo una variable que contiene los datos. Vamos a probarlo de nuevo. Acude a la pantalla del stream. Antes creamos, creamos un futuro ficticio. Ahora vamos a crear un arroyo ficticio, arroyo. Mi arroyo. No estará viendo, verá como truco porque como es una cadena en el futuro, tenemos esta palabra clave sync, palabra clave que lo hará, que se asigne si es un futuro. Pero cuando dice arroyo, tenemos que escribir un asteroide de fregadero. Eso es todo. Ahora, aquí está simplemente, simplemente tendré esta función for loop donde leerá lo que es igual a 0. Yo menos de 10, yo más, más. Y voy a ceder no volver. Dejaré que valoro. Y también dejaré que el futuro punto D lipídico aquí para que los valores lleven un poco de tiempo. Nuestra función está escrita correctamente. Es lo que simplemente, está diciendo que lejos debo ir de uno a nueve y nuestro valor debe insertarse en el arroyo sido enlazado, es decir 1, 2, 3 es para simplemente flotar a través de la cuerda. Eso es todo. Ahora de nuevo, tendremos al constructor del arroyo. primer parámetro es un arroyo, ese es mi arroyo. En segundo lugar, un constructor, que tendrá un contexto, el cual tendrá contexto. Y en instantánea. Ahora como de costumbre, siempre tenemos que comprobar si la instantánea tiene datos. De no ser así, en primer lugar, devolveré un indicador circular de progreso. Y si es peligro, si tenía datos, entonces en el centro sí tuvimos un hijo. Y el texto decía snapshot dot data dot toString. Eso es todo. Ya que es un entero, hice dos cadenas aquí. Y en la página de inicio. Ahora a la derecha pantalla de flujo. Reinicia y comprueba la salida. C 12. Tres, no estamos haciendo nada. No estamos actualizando la página. Pero como dice stream, los valores de datos se están actualizando en tiempo real. Por lo que finalmente, espero que sean concepto de arroyos y los futuros sean claros. Al menos conoces el concepto, eso es todo. No digo que debas saber todos y todo, lo que hemos escrito aquí y todo porque puede ser un poco complicado para ti en este momento. Pero confía en mí, cuando estaremos usando un PS y Firebase, todas tus dudas serán despejadas. Entonces eso es todo para este módulo. En el siguiente módulo, estaremos implementando API reales en nuestra aplicación. Y todos esos datos vendrán del servidor. Gracias. Nos vemos en el siguiente módulo.