Transcripciones
1. Introducción: Hey, todos, Mark Price aquí con desktops dot com, y este es el nueve de Iowa desde principiante hasta profesional pagado, te
voy a enseñar todo lo que necesitas saber sobre el desarrollo de IOS para conseguir un trabajo como un programador de tiempo completo, que asciende hasta $70,000 al año justo fuera de la puerta, o para construir apt profesional a la tienda Apple App. He construido 57 app móvil sedate, y también doy clases en el campamento de arranque de codificación, y sé lo que se necesita para aprender. Y he tenido un montón de estudiantes viniendo a mí diciendo, he estado tomando cursos en línea, pero no puedo conseguir lo que necesito. No puedo retener el conocimiento. Aquí hay 10 mil dólares. Ayúdame. Y así empecé a pensar, ¿Qué pasaría si pudiera tomar esa experiencia de bota inmersiva y traerla estudiantes en línea, pero por una fracción del costo? Y lo he hecho y hay una fórmula para el éxito, y déjame decirte cómo voy a convertirte en un desarrollador profesional de IOS en cuestión de semanas. En primer lugar, vas a aprender todos los principios básicos de programación como funciones, bucles, arrays, todo lo que necesitas para tener éxito en cualquier lenguaje de programación. También vas a construir más de 15 APS, y estos no son solo APS de juguete estrellándose. apetito profesional puede poner en su cartera o presentarse a la tienda APP. También te estamos dando más de 40 horas de contenido. No hay otros deportes de Iowa en ti. Timmy ofrece cualquier cosa incluso cercana a eso. Nuestras clases también son súper divertidas en su on video. Es como un verdadero aula inmersiva. Vamos a pasar por los problemas juntos. No está guionado, así que vamos a aprender a aprender realmente. Y así cuando me haya ido, incluso sabe resolver problemas por su cuenta. Por último y lo más importante manera, ofrece una sala de chat online gratis y foro gratis donde puedas ir a buscar ayuda al instante, voy a estar ahí. Los ayudantes de mi maestro van a estar ahí, y la comunidad va a estar ahí una herramienta súper poderosa para ir a ti necesitas ayuda en su lugar. Entonces si quieres ganar dinero construyendo APs, si eso es crear tu propio EPS para construir APS profesional, Sí, desarrollador thin. Este curso es para ti. No soy sólo un tipo sentado en su sótano haciendo videos. Soy un desarrollador profesional. También soy profesora profesional y doy clases en un botín de codificación todos los días y ayudo a la
gente a pasar de no saber nada a conseguir trabajo. programadores de Iowa. Así que echa un vistazo a las vistas previas gratuitas, Haz clic en el botón Inscribir y te veo en clase.
2. Cómo recibir ayuda gratuita en vivo: Oigan, ¿qué pasa, todos? Mark Price for depth, Celts dot com Y en este video, vamos a hablar de sala de chat online gratuita a la que podrías unirte para obtener ayuda al instante. Y la razón por la que no quiero que te pierdas esto es porque conseguir ayuda es tan importante cuando estás tratando de aprender, sobre todo cuando estás tratando de aprender programación, porque podría ser muy deprimente y te puedes angustiar muy fácilmente. Y así he proporcionado una comunidad en línea. Ya hay toneladas de personas aquí se estaban ayudando todo el tiempo. Yo estoy ahí. Ahí hay moderadores. Ahí hay gente que está recubierta durante años, y estamos ahí fuera ayudándonos unos a otros. Los estudiantes se están ayudando unos a otros. Necesitas unirte a esta sala de chat si realmente quieres sacar el máximo provecho de tu educación en este programa. Y así está usando la plataforma de discordia. En realidad es una plataforma de juegos, pero funciona de manera fantástica para nuestra comunidad, y mantengo a todos los spammers y toda la basura fuera de ahí, así que realmente es un entorno de aprendizaje puro. Y para llegar a esta sala de chat, todo lo que tienes que dio es abrir un navegador e ir a def pistas dot com y dar click en Chat Room , que te dará una invitación a nuestra comunidad y sala de chat aquí. Y así lo que te recomiendo que dio es como te encuentras con problemas en el trabajo sobre ellos durante aproximadamente una hora. Y si te estás golpeando la cabeza después de una hora y absolutamente no puedes resolver un problema, ven a la sala de chat, consigue algo de ayuda o simplemente estar ahí en general y ayuda a participar porque a medida que
enseñas, también aprendes y creces. Entonces ahí está la sala de chat y déjame solo mostrarte tipo de cómo funciona. Entonces si yo era dedo del pie publicar un problema, aquí hay algún código aquí mismo. Podría simplemente copiar este comando de Código, ¿
ves? Y si quiero publicarlo aquí en la sala de chat, podemos usar mark down. Así que marca, marca, marca la tecla superior izquierda debajo de la tecla de escape en tu teclado y escribe el nombre del idioma en nuestro caso, rápida en el mantén presionado shift y presiona
enter, entra de nuevo y haz tres más garrapatas, y dentro de ella, voy a hacer el comando V para pegar el código, está
bien. Y entonces sólo voy a presionar enter. Y como puedes ver, el código está ahí. Déjenme decirles a los estudiantes que eso es una prueba porque esta grabación de tiempo de Israel. Entonces así es como se puede ritmo de código. También son algunas otras cosas sencillas que puedes hacer por, como, palabras
audaces. Por lo que puedes hacer doble asterisco aquí para decir que esto es audaz o puedes hacer una sola. Este es yo tallix. De acuerdo, Así que cosas realmente geniales. Enorme comunidad ahí para ayudarte. Es realmente importante que te unas aprendas sobre su llevo haciendo esto desde hace mucho tiempo. Ven a buscar ayuda de mí. Soy programador profesional. Yo estoy aquí para ayudarte. Entonces de todos modos, ¿las cabezas arriba se unieron a la sala de chat? Consigue algunas habilidades y te veo ahí esperemos.
3. ¿Por qué tomar este curso?: Oye, Mark Price, escucha con pendientes sordas dot com Y solo quería tomarme un momento y tener una
conversación uno en uno contigo. Pretende que soy tu maestro y tú eres el estudiante o yo soy tu mentor y tu el mentee . A lo mejor estás decidiendo si debes comprar el curso o no. Y si es así, quiero ayudar a aliviar cualquier preocupación o temor que pueda tener. Esta es una conversación que podría tener en la vida real cuando alguien viene a los campamentos de arranque en los que estoy enseñando. ¿ De acuerdo? Y así quiero darte cada pedacito de confianza que necesites para tomar este curso. Y entonces, ¿por qué tomar este curso? Bueno, vi que había muchos estudiantes que venían a mí en campamentos de botas de la vida real, diciendo que fui a los cursos en línea, pero realmente no retenía todo. Fue un buen comienzo y ayuda, pero no me lo podía meter en la cabeza. Y me siento como un lugar más cerca de donde empecé a conseguir un trabajo, y empecé a ver esto una y otra vez. Y así tuve una idea. Y si pudiera llevar la experiencia de los $10,000 boot camp a un curso en línea. Y yo te he elegido para esa plataforma, y creo que podemos hacerlo. Está bien. Y entonces lo que vamos a hacer es que vamos a tratar esto como un campamento de entrenamiento. Excepto que no vas a pagar los 10 mil dólares. Sólo vas a pagar los pocos $100 de los costos del curso. ¿ De acuerdo? Y lo que va a dio es que va a tomar de no saber absolutamente nada. Está bien. Todo el camino para poder trabajar como desarrollador junior o poder lanzar tus propios APS a la tienda APP. Está bien. Y entonces, ¿por qué este curso es diferente? Bueno, eso es porque te estoy tratando como a una estudiante. Al igual que yo me preocupo por ti. Porque yo sí. Yo quiero que seas exitoso. Y si estás aquí tomando este curso, probablemente
sea porque no has encontrado lo que buscas. De acuerdo, si estás buscando una referencia donde solo podrías golpear línea, ítem por línea, ítem X, Y y Z averiguar la sintaxis para algo, ya
sabes, probablemente no vas a encontrar eso aquí. Eso es probablemente algo mejor para una pila desbordamiento dot com o desarrollador dot apple dot com Buscando documentación. Esto no se trata de referencia. Se trata de cambiar la forma en que piensas como programador. Para que puedas trabajar profesionalmente o así podrás liberar aplicaciones profesionales y todo lo que hacemos aquí te guía por ese camino. No vamos a construir APS de juguete de mala calidad. Está bien. Todo lo que hagamos va a ser de alta calidad, y te va a ayudar a construir tu portafolio y te ayudará a convertirte en un desarrollador profesional de aplicaciones. cual, Elcual,
por cierto, algunos desarrolladores de aplicaciones están consiguiendo hasta 150 mil dólares al año. Entonces cuando sé que recientemente solicité un trabajo como junior, desarrollador de
Iowa gana 100.000 dólares al año, y sólo lleva seis meses haciendo esto. Imagina ir de hacer lo que estés haciendo ahora mismo hasta ganar 100.000 dólares en seis meses. Es muy posible. Y así tengo todas estas cosas en mente mientras te estoy enseñando, ¿ acuerdo? Y así algunos de los puntos centrales harán que nuestro curso sea diferente a los demás es uno. Contamos con una fantástica comunidad online, salas de chat
en vivo y formularios. Podrías obtener ayuda en cualquier momento porque obtener ayuda mientras estás aprendiendo el código es tan crítico. En segundo lugar, no
leemos de guiones. Como pueden ver, no
estoy leyendo de un guión aquí y ahora mismo, ¿de acuerdo? Solo te estoy enseñando lo que sé que es verdad y lo que es efectivo. ¿ De acuerdo? Y además, planeamos todo de principio a fin con mucho cuidado, pero aún no leemos de un guión. Y por qué, eso es porque quiero que puedas pasar por el
proceso real de desarrollo y codificación . Yo quiero que pases por los errores que vas a encontrar que construimos unas manzanas tienen choques en ellas a lo largo del curso. vamos a arreglar juntos. Vamos a hacer todas las cosas que vas a hacer es desarrollador profesional para que cuando termines este curso y quieras construir algo nuevo, no
seas como, oh, multitud. No enseñaron eso en las conferencias. ¿ Qué hago? Sabes que vas a saber cómo hacerlo porque has aprendido los principios y
conceptos subyacentes y ningún otro curso y ningún otro curso de IOS sobre ti, para mí o en cualquier otro lugar hace eso. Ellos enseñan tu X, y y Z, lo aprenderás. Y luego pasas a lo siguiente. Está muy scripted y no sabes cómo resolver problemas, cómo usar la herramienta para resolver los problemas. Entonces eso es una cosa que nos separa de todos los demás cursos, es nuestro enfoque en ayudarte a convertirte en un mejor programador y desarrollador de IOS. Y eso lo hacemos a través de unos pocos medios. Uno es calentamientos al principio de cada forma de sección tener un calentamiento, ayuda a entrenar tu cerebro para pensar como un programador. Pensar como programador es diferente de lo que nunca habías pensado antes. Tienes un tren. Cómo pensar el dedo del pie algoritmos, Cómo resolver problemas. Entonces vamos a hacer eso cada sección y lo más importante, después de cada aplicación que construimos y después de algunos otros conceptos está bien, también. Tenemos ejercicios, y básicamente lo que es un ejercicio es camino. Te damos una lista de cosas que hacer para construir tu propia app, y básicamente son muy similares a la app que acabamos de construir juntos en los videos. La diferencia es que tienes que usar tu propio poder cerebral para tratar de resolver algunos de estos problemas. Algunos de los ejercicios tienen soluciones, y algunos de ellos no Así que vas a tener que averiguar ir a la comunidad, averiguar cómo resolver estos problemas. Pero básicamente las cosas que acabamos de pensar que construimos una aplicación ligeramente diferente. No exactamente lo mismo en, porque eso es sólo copiar. Y no te ayudará a retener. Construimos una app diferente con los mismos principios, para que puedas retener de inmediato las cosas que aprendes. ¿ De acuerdo? Y así quiero darte mi compromiso personal de que te voy a ayudar. Está bien. Si necesitas ayuda,
comunícate en la sala de chat en los formularios en línea. Voy a estar ahí, salir de las discusiones aquí. Y tú a mí. Hagamos de este un curso inmersivo en línea. Entonces no estás pagando la cuota de los 10 mil dólares del campamento de arranque, pero estás recibiendo la experiencia del campamento de arranque, y espero que esto sea emocionante para ti. Yo quiero que tomes esta clase. Yo quiero que tengas éxito, y este es Mark Price con pendientes de muerte dot com, y te voy a ver en clase. Esperemos
4. Cómo ejecutar Mac en un PC: todo el mundo. ¿ Qué pasa, Mark? Pricier Deb jabones dot com. Y este es un video corto sobre cómo ejecutar Mac en un PC. A lo mejor no tienes una computadora Mac, y todo lo que tienes es un PC, y quieres intentar que Mac se ejecute en él. Entonces lo que debes dio es abrir un navegador y solo teclear y ejecutar Mac en PC. Y el video que realmente quieres está aquí mismo cómo instalar Mac OS X. Uh, este de aquí. De acuerdo, Así que aquí está el tipo. Este es el mejor video que encontré. Pasa por todo el proceso en profundidad. No lo voy a hacer por ti porque este tipo sólo conoce sus cosas y te puede ayudar. Ahora, con eso dicho, tengo un PC muy potente además de mi Mac y en realidad traté de seguir estos pasos. Y no funcionó porque no funciona en todas las PC y mentes de unos cinco años de edad. Entonces hay que tener uno más nuevo. Si quieres que esto funcione está en mi recomendación a ti es que lo hagas funcionando antes intentar Teoh, toma esta clase o cómprala,
uh, uh, porque yo no querría que lo hicieras. No quisiera decirles que absolutamente va a funcionar porque no funciona en todas las computadoras. Con eso dicho, si quieres ser un desarrollador profesional, si realmente quieres meterte en esta industria Y si realmente quieres que Teoh sea
desarrollador de iPhone ya sea como, ah programa de tiempo completo o haciendo tus propios APS, tienes que conseguir un Mac. Ahora bien, si eres programador en general, tienes que salir de las ideas de estar sesgado hacia una plataforma otra. Oh, odio a Mac. Odio a Apple. Odio a Steve Jobs o lo que sea. O, ya
sabes, o al otro lado, odio el PC. Odio a Lennox. Lo que sea. Odio androide que tienes. Tienes que parar. Tienes que ser agnóstico de la tecnología, y tienes que empezar a amarlos a todos. Verdaderos desarrolladores y buenos desarrolladores saben usar múltiples plataformas, así que te recomiendo que te consigas un Mac, y hay algunas maneras diferentes en las que puedes hacerlo por un precio bastante barato. En primer lugar, puedes ir a Google y escribir en Apple reacondicionado. De acuerdo, Una computadora reacondicionada es básicamente una computadora que tenía algún problema, y sacaron la parte problemática. Ponga uno a estrenar. Y así es casi como si fuera realmente, como una computadora totalmente nueva. Pero legalmente no pueden llamarlo una computadora totalmente nueva. Está reformado. Entonces solo piensa en conseguir una computadora nueva. Y lo que recomendaría es este de aquí, el aire reacondicionado del libro Mac. De acuerdo, um, y así si bajas al lado izquierdo por aquí, solo tienes que hacer clic en Mac book air 13. Ya veremos todos los que tienen disponibles. Y aquí hay algunas reacondicionadas que tienen disponibles. Obtienes computadoras realmente buenas por, um, por un precio más bajo. Y tú eres como, 1000 dólares. Eso es eso que te ordena. Eso es demasiado caro. Bueno, um, tienes que invertir en ti mismo. Está bien. Uh, no
quiero sonar grosero o malo. ¿ Qué? Tienes que invertir en ti mismo Si realmente te tomas en serio lo de hacer esto en la vida real en persona, gente que toma mis campamentos de arranque, hacemos que todo el mundo consiga a Max porque hay tan prevalente, sobre todo en el mundo. Tecnologías de código abierto, sin hablar de manzana. Pero en general, si se quiere utilizar tecnologías de código abierto. De verdad están empezando a atender a Max. De acuerdo, Otra opción es ah, mejor comprar caja abierta. Está bien. Y lo que me gusta hacer es este Click justo aquí y mira todas las cosas de la caja abierta. Y así haga clic en computadoras y tabletas y ah, eso es genial. Pero no queremos PCs. Queremos a Max. Entonces vamos a buscar el máximo. Liken. Uh, bueno, vamos a hacer clic en laptops. Está bien. Y luego aquí vamos. Aquí está la marca. Haz clic en manzana, ¿de acuerdo? Y tienen algunas computadoras reacondicionadas aquí también a usted lo confinó. En realidad conseguí un aire de libro Mac muy bonito para, como, $680 el uno de 13 pulgadas. Fue en celda Ultra, por cierto. En el mejor de los casos Comprar. Si de verdad eres amable, puedes hablar con el encargado de la tienda y decir:
Oye, Oye, estoy tratando de aprender algo nuevo. No tengo mucho dinero. Esta es caja abierta me puede dar descuento. Ya lo he hecho antes, y en realidad te darán,
como, como, otros 50 o hasta 100 dólares de descuento. Por lo que la mejor compra es un gran lugar para ir y conseguir un libro de Mac usado. Um, conseguiría un aire de libro Mac. Muy poderoso. Ejecuta todo lo que necesitas hacer. Entonces de nuevo, si realmente vas en serio en hacer APS de iPhone. De acuerdo, consigue un Mac. Uh, puedes probar e instalar en un PC. Simplemente no puedo garantizar que vaya a funcionar. No funcionó para mí. Aunque sí funciona para mucha gente . Entonces de todos modos, hay algunos consejos gratuitos Calle. Aquí está el euro. Este tipo es genial, y espero que puedas poner esto en marcha y tomar este curso invirtiéndote y pongámonos a trabajar.
5. No DO este video: Oigan, ¿qué pasa, todos? Mark Price for depth, Celts dot com Y en este video, vamos a hablar de sala de chat online gratuita a la que podrías unirte para obtener ayuda al instante. Y la razón por la que no quiero que te pierdas esto es porque conseguir ayuda es tan importante cuando estás tratando de aprender, sobre todo cuando estás tratando de aprender programación, porque podría ser muy deprimente y te puedes angustiar muy fácilmente. Y así he proporcionado una comunidad en línea. Ya hay toneladas de personas aquí se estaban ayudando todo el tiempo. Yo estoy ahí. Ahí hay moderadores. Ahí hay gente que está recubierta durante años, y estamos ahí fuera ayudándonos unos a otros. Los estudiantes se están ayudando unos a otros. Necesitas unirte a esta sala de chat si realmente quieres sacar el máximo provecho de tu educación en este programa. Y así está usando la plataforma de discordia. En realidad es una plataforma de juegos, pero funciona de manera fantástica para nuestra comunidad, y mantengo a todos los spammers y toda la basura fuera de ahí, así que realmente es un entorno de aprendizaje puro. Y para llegar a esta sala de chat, todo lo que tienes que dio es abrir un navegador e ir a def pistas dot com y dar click en Chat Room , que te dará una invitación a nuestra comunidad y sala de chat aquí. Y así lo que te recomiendo que dio es como te encuentras con problemas en el trabajo sobre ellos durante aproximadamente una hora. Y si te estás golpeando la cabeza después de una hora y absolutamente no puedes resolver un problema, ven a la sala de chat, consigue algo de ayuda o simplemente estar ahí en general y ayuda a participar porque a medida que
enseñas, también aprendes y creces. Entonces ahí está la sala de chat y déjame solo mostrarte tipo de cómo funciona. Entonces si yo era dedo del pie publicar un problema, aquí hay algún código aquí mismo. Podría simplemente copiar este comando de Código, ¿
ves? Y si quiero publicarlo aquí en la sala de chat, podemos usar mark down. Así que marca, marca, marca la tecla superior izquierda debajo de la tecla de escape en tu teclado y escribe el nombre del idioma en nuestro caso, rápida en el mantén presionado shift y presiona
enter, entra de nuevo y haz tres más garrapatas, y dentro de ella, voy a hacer el comando V para pegar el código, está
bien. Y entonces sólo voy a presionar enter. Y como puedes ver, el código está ahí. Déjenme decirles a los estudiantes que eso es una prueba porque esta grabación de tiempo de Israel. Entonces así es como se puede ritmo de código. También son algunas otras cosas sencillas que puedes hacer por, como, palabras
audaces. Por lo que puedes hacer doble asterisco aquí para decir que esto es audaz o puedes hacer una sola. Este es yo tallix. De acuerdo, Así que cosas realmente geniales. Enorme comunidad ahí para ayudarte. Es realmente importante que te unas aprendas sobre su llevo haciendo esto desde hace mucho tiempo. Ven a buscar ayuda de mí. Soy programador profesional. Yo estoy aquí para ayudarte. Entonces de todos modos, ¿las cabezas arriba se unieron a la sala de chat? Consigue algunas habilidades y te veo ahí esperemos.
6. Cuenta de Apple Desarrollador e Instalación de Xcode: Hey, todos, Mark Price aquí en profundidad pendientes punto com. Y es un día emocionante. Se llega a inscribirte como desarrollador de Apple, primer paso en un mundo más grande, así que sigamos adelante y vamos a desarrollador dot apple dot com. Pullup Cualquier navegador y desarrollador dot apple dot com es el sitio web para todo el recurso es que vas a necesitar videos, documentación, herramientas, etcétera. Está ahí, así que haz clic en un centro de miembros en la parte superior derecha, y lo que vamos a hacer es crear una nueva manzana I d Así que haz clic en ese botón ahí y se va a preguntar antes alguna información básica. Gran parte de tu nombre, tu apellido, Tu manzana. Yo d, um, que, uh, se va a quedar con tu cuenta de iTunes. Y, uh, pero en tu contraseña confirme contraseña Todas las cosas básicas. Yo solo quiero asegurarme de que caminemos por esto para que veas exactamente lo que estoy haciendo poniendo tus preguntas de seguridad. Y si te estás preguntando si realmente son preguntas y respuestas tienen que ver conmigo, no
lo son. Por lo que no puedes hackear mi cuenta de apple. ¿ Hay como un huh? Ya veremos de eso. Bueno, está bien todo es falso. Entonces pasemos por aquí. Preguntas de seguridad. Es bastante guay. El real solía costar dinero, incluso sólo para convertirse en un desarrollador de manzana. Por lo que realmente se han abierto y han permitido a la gente Teoh abrazar la plataforma. Cumpleaños cada vez más cerca. Vamos a poner en su dirección postal y sólo obtener información básica aquí. Eres como yo pensaba, estos videos, vamos a ser emocionantes. Bueno, no
sé cuánto más emocionante pueda hacer llenando Ah, forma para mí. Pero si no hice este video, seguro, alguien para ser como no puedo conseguir que funcione ¿Qué está pasando? Y así aquí está. Si tienes algún problema, puedes ver este video, y está todo aquí grabado. Pon aquí el código de seguridad que está en la imagen y crea apple i D.
Que te va a enviar un correo electrónico a tu dirección de correo electrónico. Y bastante seguro, lo conseguimos. Si no lo conseguiste, revisó tu carpeta de spam. Podría haber ido allí. Usa click en el Verifica ahora, pero ahí adentro y adelante y pon tu nombre de usuario y contraseña que acabas de crear para tu cuenta. Dirección de correo electrónico verificada whoa! Éxito. Creo que acabamos de convertirnos en un desarrollador de apple. Vamos a iniciar sesión. Muy bien. Inicia sesión. Tienes que estar de acuerdo. Se puede leer todo el asunto o se puede acelerar leerlo o no. Léelo todo. ¿ En serio? No me importa y se someta. Y ahora estamos en todo pase de acceso. Entonces caso SD es lo que queremos porque eso es lo que tiene todas las herramientas
que vamos a necesitar que vamos a poder descargar. Página web muy bonita. Esto solía ser realmente feo, por cierto. Realmente se han abierto de nuevo a los desarrolladores por lo que es una gran experiencia. Haga clic en X abrigo, feo clic código X. Y habla de algunos de los principios básicos de extra. Definitivamente quieres leer estas cosas realmente geniales. Se familiariza con todo lo que puedas en la página web sobre cualquier cosa que tenga que ver
con el desarrollo de apple o Iowa. Lee todo lo que puedas. Cuanto más leas, más inteligente vas a conseguir. Cuanto más vas a aprender, haz clic en descargar. Y ahora mismo es la beta. De acuerdo, código
X siete, beta cuatro. Podría ser beta cinco en el futuro. Si el siete de exportación está en vivo, vas a descargar en realidad desde la tienda APP. Por lo que es posible que tengas diferentes versiones beta aquí, dependiendo de cuándo estés viendo esta versión, o es posible que la hayas descargado desde la tienda APP. Ojalá hayamos actualizado nuestro código dentro de nuestro programa para trabajar con cualquier aversión beta que
pudieras tener. Todos deberían ser muy similares. Y para descargarlo, solo
puedes hacer clic en ese descargar ex coach siete datos y se va a descargar e instalar. Y eso es todo. Todo lo que tienes que hacer es descargarlo. Ahora hablaremos de instalarlo en el siguiente video.
7. Aumentar y disminuir el tamaño de fuente dinámico: a ti mismo, a todos. Mark Pricier. Deb jabones dot com Hoy vas a obtener una visión de los consejos y trucos que utilicé para
aumentar el tamaño de la fuente y disminuirlo sobre la marcha. Ahora, tal vez alguien a quien te has estado preguntando ¿Es magia? ¿ Cómo lo hace? Porque no puedo hacerlo. Bueno, déjame mostrarte. Estoy haciendo que suene más emocionante de lo que realmente es. En realidad es plug in un código X no proporciona por defecto. Si te diste cuenta en el código X. Bueno, vamos a abrirla aquí en el código X. Ya sabes, podría ir a preferencias de x código, fuentes y colores, y entonces en realidad puedo cambiar manualmente el tamaño aquí. Qué gran dolor. Pero a veces se quiere simplemente poder rápidamente,
uh,
a uh, aumentar o disminuir el tamaño como se puede y muchas otras me d facilidad. Entonces qué, vamos a dio vamos a descargar este enchufe aquí, conseguir hub dot com slash Zatz slash ajustar tamaño de fuente dash X código dash plug in. Ahora, si eso es mucho, solo
puedes ir a Google y escribir el código Ah x aumentó el tamaño de fuente y este
desbordamiento de pila superior justo aquí. Vale, haz clic en eso y luego desplázate hacia abajo. ¿ Y ves éste aquí mismo? Estos 13 13 votos arriba pueden ser diferentes cuando lo miras, son 14 ahora. Ja, ja. Adelante y haz clic en ese enlace y te llevaré al mismo lugar. Y entonces lo que vas a dio es que vas a descargar el zip. ¿ De acuerdo? Haga clic en el archivo en sí. El archivo zip. Entra a la carpeta y este proyecto aquí mismo. Vas a tener razón. Haga clic en él y abra con cualquiera de los códigos X Beta. Si estás trabajando en el código X beta que tienes tienes lo tienes abierto con beta. ¿ De acuerdo? Si quieres instalar en tu código X normal, tienes que hacer lo mismo es lo que así hay que abrirlo con el
código X en el que querías trabajar. En nuestro caso, estamos usando X code beta para Apple TV porque no ha sido lanzado. Paso si ha sido liberado. Se utilizó la versión 7.1 en vivo, que habrás descargado de la tienda APP por lo que abre con la aplicación beta de código X. Está bien. Y lo tiras aquí mismo y todo lo que dio es que lo corras, Eso es todo. Tú lo ejecutas. Y una vez que diga correr, uh, solo
hagámoslo ahora ejecutando X codebuild tuvo éxito. Eso es todo. Hecho. Trato. Está bien. No hay nada más que tengas que hacer. Se puede hacer clic fuera de ella. Detener la tarea. Eso está bien. Y luego si tiras de abrir tu proyecto, comprimes comando. Y el signo más se vuelve más grande el mando en el signo menos y se hace más pequeño. Ah, De todos modos, ese es otro consejo de marcas. Cool X consejos de código, algo que realmente no existe. Pero ¿sabes qué? Yo dio tan cool. Trato. Diviértete, feliz bebiendo y creciendo.
8. Introducción a la aplicación de iOS 9 App: Hola a todos. Mark Price with Deb pistas dot com Voy a dar intro a la app que vamos a construir de hecho, nuestra primera app Super cool. De hecho, ese es el nombre de la APP. Voy a tirar de abrir aquí el simulador de código X. Y como puedes ver, es una pantalla blanca con algún texto azul, y eso simplemente pasa a ser un botón. Y cuando haces clic en el botón que dice hazme super cool porque en este momento es súper aburrido. Boom, ap, Tenemos antecedentes. Ahí tenemos una imagen. Entonces lo que vamos a cubrir son unos principios. Cómo conseguir el código X arriba en marcha. Vamos a hablar de que sería puntos de venta. Vamos a hablar de reacciones yo. Ah, tu vista de imagen. Y ah, ¿imaginas vistas, en realidad, y el botón u A y ah, puede
parecer simple, pero hay algunas cosas que vas a aprender, así que va a ser muy divertido, emocionante. Y este es el comienzo de un viaje al mundo del desarrollo de aplicaciones. Sólo se pone más aventurero, más divertido y fueron complejos a partir de aquí. Pero este es el punto de partida. Me emociona tenerte aquí en la clase. Vamos a divertirnos un poco y construyamos una app. Todo el mundo, vamos a hablar un poco de esta próxima aplicación estaban a punto de construir así como algunas herramientas que nos pueden ayudar a derrama antes de construirla. Eso tiene algún sentido. Entonces vamos a hablar de encuadre de alambre, tan genial sitio web. Um, puedo ponerte en marcha muy rápido es https colon slash slash wire frame dot cc. Está bien. Y, uh, voy a seguir adelante y solo haga clic en botón de empezar a dibujar por aquí, y tienen algunas opciones diferentes, para que puedas escoger una, ya
sabes, tableta, esta es un móvil. Este es un paisaje móvil. Y así nuestra app sólo va a ser móvil. Entonces solo voy a hacer clic en él y así me hace un bonito pequeño iPhone. Justo lo que queremos y todo lo que vamos a hacer es tener una idea aproximada de lo que estamos a punto de hacer. Ahora puedes construir marcos de alambre de muchas maneras diferentes. Puedes hacerlo a través de su herramienta de software como esta. Puedes hacerlo en bolígrafo y papel. Toma fotos de ella lo puedes hacer en Photoshop con un bloc de bocetos, que es lo que hago. A veces la idea es simplemente poner tu aplicación visualmente frente a ti para que puedas saber lo que vas a hacer antes de empezar a revestir. Por lo que nuestra aplicación se llama Boom AP. Y lo que va a hacer, básicamente, es ser muy aburrido al principio y tener un botón en la pantalla, ¿de acuerdo? Y luego cuando presionas ese botón
, carga un fondo fresco en un logo genial. No debería ser mucho lo que realmente vamos a hacer aquí en esto en la pantalla. Por lo que queremos hacer es simplemente seguir adelante y hacer clic y arrastrar algo. Entonces lo que haremos es diremos, sabemos que necesitamos un título, un gran título que va aquí arriba. Está bien. Y, ah, va a ser una imagen que nos diga en imagen, ¿de acuerdo? Y luego solo vamos a dar clic y arrastrar aquí abajo, y sabemos que vamos a necesitar un pero aquí hay algunas cosas diferentes caja redondeada. Ya sabes, un montón de opciones geniales aquí. Um, entonces van a decir que esto es un botón, acuerdo. Y ah, le pones trazo. Cosas así. Uh, Así que aquí está su botón. Muy cool. Entonces sabemos cuando hacemos clic en esto, pero en, um, que va a hacer que esto aparezca y Accord va a hacer que aparezca un fondo si
realmente queremos , um, hacerlo perfecto con su otra imagen. Sé que perdimos nuestras otras cosas. Bueno, probablemente
podríamos simplemente ir por aquí a arreglar elementos y queremos que nos envíen a atrás, así que es resaltado se envió de vuelta. Ahí vamos. Entonces tenemos que imagen aquí abajo una imagen aquí y cada animador que representa nuestra app, la imagen del logo, imagen fondo en el botón que hará que aparezcan esos. Por lo que probablemente sólo es necesario para que en este momento puedas dejar esta pantalla abierta. Si obtienes la versión premium, podrías descargar esto. Uh um, haz lo que necesites con él, pero creo que esto es lo suficientemente bueno por ahora para que empecemos en nuestra app y sigamos adelante
y obtengamos recubrimiento
9. Recursos de aprendizaje - ¡Entrena tu cerebro!: sin embargo, uno solo quería tomarme unos minutos y hablar de algún
recurso de aprendizaje súper importante es como vas siguiendo estos cursos. Entonces a medida que te estás convirtiendo en un desarrollador junior bebé, vas a querer comer, dormir y respirar código cada momento cada vez porque tienes que entrenar a tu cerebro para pensar de cierta manera. Muchos de nosotros no hemos usado en nuestras vidas este tipo de habilidades que vamos a estar usando un programa. Es solo resolver problemas con lógica y cosas así. Por lo que necesitas entrenar tu cerebro continuamente. Entonces, al recurso es, quiero recomendar de inmediato fuera de la caja. Aquí están los videos de la WWDC. Cada año, la Conferencia Mundial de Desarrolladores de Apple pone en Big Conference, llena de presentaciones sobre desarrollo, además de lanzar nuevos productos y cosas por el estilo de todos modos,
Así que si eres una manzana registrada desarrollador, que deberías ser en este punto, solo
puedes ir a desarrollador, no apple dot com para ello slash videos para una slash wwdc para su último 2015. Ese siendo el año cambiará a medida que pasen los años, aquí
tienen videos destacados. Fantástico recurso es lo nuevo y veloz? ¿ Qué hay de nuevo en código X? Diseñando para un futuro puerto. Algunas de estas son muy, muy avanzadas. Algunos de ellos son muy básicos. Entonces solo haz algunas búsquedas. Averigua cuáles parecen un buen punto de partida. Pero deberías estar vigilando. Deberías convertirte en un experto en manzanas. Deberías empezar a vivir y respirar estas cosas porque te van a enseñar los principios de programación en y el SDK de IOS. Pero te van a enseñar qué hace buena aplicación lo que Apple espera en su diseño y su ah, en su sistema. Por lo que cuando vas a enviar después de la tienda APP, puedes saber que tu app está siguiendo las mejores pautas y principios y prácticas
tan fantásticas. Desarrollador de recursos top dot com slash video slash wwdc slash 2015 Conoce todo sobre Iowa s y todas las cosas nuevas. Súper cool. El 2do 1 del que quiero hablar es Project Euler o Project Oiler. Depende de cómo quieras pronunciarlo jitomate,
jitomate Pero básicamente este sitio web es un sitio web donde puedes practicar
habilidades de resolución de problemas . De acuerdo, entonces cuando escribes un Seguro hay una serie de preguntas que uh, preguntas de
programación que te harán resolver. Básicamente, cada uno tiene una respuesta muy específica, y te dirán lo que tienes que hacer para resolverlo. Y luego en esa cualquiera que sea la programación que
quieras, resuelves el problema. Debes apuntar a resolver uno de estos proyectos en el Proyecto Euler una vez a la semana y seguir
entrenando tu cerebro para ser programador. Lleva mucho tiempo. Vas a pasar por este curso y vas a aprender mucho. ¿ Pero no hay cosas ahí? De hecho, cada momento en el que no estás trabajando en el trabajo de curso aquí, deberías estar practicando y programando y suscribiéndote a bloques tecnológicos realmente te
inyectan . Si de verdad quieres hacer un cambio de carrera o si realmente quieres hacer algo genial con el desarrollo del
iPhone, tienes que inyectar tu cerebro y decodificar todos los días. Por lo que el proyecto Euler WWDC. Asegúrate de que estás gastando mucho tiempo para estudiar sobre estos recursos es y aprender
todo lo que puedas
10. Aplicación de iOS 9: ¡tu primera aplicación!: Bienvenidos de nuevo, damas y caballeros camino están a punto de llenar nuestra primera app. Súper emocionante. Súper cool. De hecho, ese es el nombre del proyecto. Súper cool. Así que adelante a tu ex código beta y haz clic en él. Va a rebotar. Va a aparecer con un menú. Ahora deberías ver la pantalla. Si no te diriges a nuestros foros y publicas lo que estás viendo, podemos ayudarte. Pero esta es la pantalla común que ves cada vez que quieres crear un nuevo proyecto. Entonces lo que vamos a hacer es hacer clic en éste justo en el medio, crear un nuevo proyecto de código X. Son amables. ¿ De acuerdo? No, esta es nuestra primera vez a través. Vamos a ir mucho más a fondo después, Ron. Entonces pasaremos por el semi rápido. No voy a explicar todo lo que ves aquí, pero básicamente vamos a hacer clic en que queríamos aplicación IOS y que queríamos ser una aplicación de vista
única. OK, Vista
única significa extensión de una vista. Haga clic en el siguiente botón. Nombre del producto, nombre de organización
super cool puedes poner ahí lo que quieras. Tu nombre o tu empresa, nombre y organización. Identifica dónde es convencional con siestas de Ivo usar un dominio inverso como com, tu empresa nombre de punto de la app. Por lo que una Z se podía ver ahí mismo el identificador del paquete. Se está llenando el nombre para nosotros automáticamente, por lo que com dot Deb pendientes super cool. Bueno, eso son lenguajes supercool. Swift. Por supuesto, entraremos en objetivo ver más adelante, pero Swift es el lenguaje de programación
más grande y malo que hay hace poco. Lenguaje de programación número uno en el mundo. que respecta a ser más popular y dispositivos telefono, escribo en Universal Universal. Obviamente reuniendo a ambos. Simplemente vamos a seleccionar iPhone para ahora mismo para hacer nuestra vida más fácil. De acuerdo, todo lo que está pasando ahora es que estamos salvando el proyecto, y sólo voy a poner en el escritorio por ahora. Ahí hay un control de fuente. Crear get repositorio en mi mac. Ahora. Realmente no necesitamos esto ahora mismo, pero lo harás en el futuro. Y cuando estás creando tus propios proyectos usando la versión mitral, Oslo
iba a hablar más tarde sobre el control de versiones? Así que solo sigue adelante y haz clic en crear, Y si notas aparecer en la parte superior, a la derecha, sí
crearon un proyecto para mí. Muy bonito. Esta es nuestra información general de aplicación. Aquí. Tenemos un objetivo. Está bien. El objetivo es super cool, y es ajustes generales. De acuerdo, están justo aquí. Y lo que vamos a hacer. Vamos a mantenerlo en el iPhone. Vamos a despegar paisaje izquierda y paisaje, ¿verdad? Nos pondremos al revés. Solo queremos mantenerlo como una aplicación de retrato, ¿de acuerdo? Y la idea es que vamos a tener una aplicación muy simple y eso como un biden, y luego vamos a presionar ese botón y la APS se va a poner súper cool y mostrar algunas
imágenes geniales . Entonces sigamos adelante y mosey por aquí a nuestro trabajo principal de la historia de puntos. Está bien. Y un storyboard en X coat es como una historia. Te lleva de pantalla en pantalla, mostrándote lo que viene después del dedo del pie lo que viene después. Y, uh, así es como funcionan. Básicamente, como si estuvieras construyendo un libro de cuentos para un niño, pondrías una página juntos, y así eran los storyboards. Muy, muy bonito s. oh, aquí está. Está bien. Tenemos el lado derecho, que tiene Inspector, lleno de todo un montón de información, entrar en eso más y detalles. Seguimos aquí en el lado izquierdo, te muestra
lo que hay actualmente en tu story board para esto. Lo que se llama controlador de vista. De acuerdo, ¿y qué? Voy a dio otra vez. Esto es sólo para que se haga una siesta y que sea realmente simple y no más te confunde al principio. Entonces lo que voy a hacer es hacer clic en el controlador de vista por aquí en el lado izquierdo y por aquí. Desea asegurarse de que el show atributos Inspector sea elegido y tamaño. Voy a cambiar este Teoh a iPhone seis, Que es esta pulgada de cuatro puntos. De acuerdo, todo ese dicho es, Hey, vamos a hacer que parezca un iPhone seis. Uh, para que puedas diseñar las cosas en consecuencia. Entonces otra vez, lo que queremos tener pasa, presionas un botón, y hace que tu app se vea súper cool. Entonces aquí abajo, tienes una lista de controles, ¿
verdad? Uh, tienes lo que se llama aquí. La biblioteca de objetos. De acuerdo, entonces voy a buscar lo que se llama
Botón U I. Sólo voy a dar clic y arrastrarlo por aquí. Muy, muy bonito. Se alinea. Voy a hacer clic en él y encenderlo. todo bien en el medio. Perfecto. Voy a estirar bien y largo. Voy a leer Arrástrelo por aquí y centro y otra vez. Está bien. Ahora, por aquí a la derecha adentro. Puedo cambiar lo que dice. De acuerdo, este es el título aquí, y voy a decir que me hagas super cool. Este es un botón. Hazme súper cool. Entonces lo voy a guardar. Voy a seguir adelante y por aquí a la derecha dentro de estos tus simuladores. Esto es en lo que puedes probar tu app con el fin de desplegarla en un dispositivo que tienes toe has ah pagado cuenta de desarrollador de apple registrada. Pero puedes usar simulador por ahora. Y así voy a seleccionar en este caso iPhone seis. Porque ahí es donde construir y probar para, um, Y si no ves esto aquí mismo, Vale, podría significar que esos esos componentes requeridos y paso de aislamiento no se instalaron. ¿ De acuerdo? Y así, um, ve a nuestros foros, publica tu problema, y podemos apuntar a la dirección correcta consiguiendo un insulto, pero debería haber instalado con la instalación. Entonces iPhone seis va a hacer clic en eso. Está bien. Y todo lo que voy a dio es presionar este botón de reproducción aquí arriba. Por lo que construye nuestra primera compilación de aplicaciones tuvo éxito ejecutando supercool en el iPhone seis. Entonces se carga, y ahí está. Nuestra aplicación está cargada y mira, el botón clics y todo. Acabamos de construir nuestra primera app para iPhone. Toma tu mano y acariciate en la espalda y logro emocionante. Y no fue tan complicado. Y el desarrollo de iPhone es en realidad bastante simple. En comparación con muchas otras plataformas, puede volverse intrínsecamente complejo a medida que construyes aplicaciones más robustas. Pero para empezar es en el artículo un par de punteros aquí con el simulador. Si esto es demasiado grande en tu pantalla, hay algunas cosas que puedes dio. De acuerdo, puedes, uh Bueno, primer lugar, puedes cambiar tus dispositivos aquí desde el iPhone seis y seis más etcétera. Está bien, um, puedes guardar Capturas de pantalla haciendo click. Esto ahorrará una captura de pantalla de eso para morir. Deténgase donde primero pueda comandarnos. De acuerdo, um veamos aquí. Pero en realidad estoy buscando es ah, buscando rotar a la izquierda y a la derecha para simular paisaje. Y lo que queremos hacer aquí es realmente cambiar el tamaño de la misma. Entonces si presiono comando en el teclado Comando más uno lo hace súper grande por Press Command más dos. Se hace de tamaño medio Command más tres lo hace pequeños sitios. Entonces si tienes algún problema de tamaño en tu computadora porque tus monitores a pequeño comando más uno o comando Plus dos o comando Plus tres cambiarán el tamaño de ese botón de comando en tu teclado es dice comando y mantenlo presionado mientras presionas +12 o tres. Entonces ahí vamos. Consiguió una aplicación básica para iPhone en ejecución, pero aún no está completa. Ahora lo que tenemos que hacer es conseguir son aptos para apuntar donde está empezando a parecer súper cool, y creo que vamos a necesitar algunos gráficos para eso. Entonces voy a ir a Google Chrome, jalar aquí arriba. Y por cierto, si viste eso aparecer en la pantalla, está bien, se llama Spotlight Search. Puedes acceder a ella presionando comando en tu teclado, además de la barra espaciadora, y es súper útil. Puedes teclear cualquier cosa y te llevará derecho a esa aplicación. Eso es lo que acabamos de hacer por Google Chrome. Voy a este sitio web del fondo llamado Text Craft dot net. Y sólo vamos a conseguir un gráfico fresco para nuestra aplicación. Y para que pudieras escoger un montón de cartas y fondos y tipo de cosas aquí, y luego puedes descargarlo. Uh, voy a ir con el pre construido, pero tienen aquí abajo que alguien hizo llamado super picks. Y voy a decir, uh, boom ap porque esta es una app y es boom. Enfriar. De acuerdo, entonces boom al fresco. Hice un poco de logo aquí. Podéis jugar con lo que queráis de vuestro lado. Voy a descargarlo. Y es pensar y pensar, y son este boom ap. Entonces si hago clic en esto para ir a mostrarla y encontrarla o si estás usando safari, puedes usar safaris, herramienta de
descarga, en todo caso, ello a mi sección de descargas en mi buscador en mi espalda. Y ahí está ISS Así que lo que voy a hacer es arrastrar algunas carpetas por ahí y de vuelta un código X por aquí. Voy a hacer clic en activos. Está bien. Esta carpeta azul aquí en el lado izquierdo cuando hago clic en eso y me voy Teoh, abre mi buscador ahí otra vez. Y lo que voy a hacer es simplemente hacer clic en él y arrástrelo. Ahora bien, esta imagen está en mi proyecto y la puedo usar. Super cool click. El tablero principal de cuentos por aquí en el lado izquierdo es donde hemos estado trabajando. ¿ De acuerdo? Y, uh, lo que queremos que pase en un rap es que queremos que
aparezca este genial logotipo en el fondo escolar al hacer click. Hazme súper cool. Antes de eso, va a ser súper aburrido. Pero ¿entonces qué? Tenemos que hacer el suyo primero. Ponlo en la pantalla. Entonces voy a escribir lo que se llama una imagen U I de ti. De acuerdo, lo
escribí aquí abajo en el lado derecho en el objeto, inspector. Aquí mismo. Biblioteca de objetos. Voy a hacer clic en esto y simplemente arrastrarlo por aquí en el medio. El tamaño no importa todavía. Por lo que las vistas
de imagen , por supuesto, tienen una imagen detrás de ellas. OK, entonces voy a tomar este ícono de la mano derecha por aquí en el inspector, y solo voy a escoger el aviso de imagen que automáticamente encuentra el nombre de tu imagen que le arrastramos. Eso un super cool. Está claro y oh, Dios
mío, lo ha hecho súper feo. Y estamos diciendo súper mucho, así que necesitamos que sea super un feo. Entonces voy a hacer clic en este modo aquí mismo, y voy a poner aquí aspecto si es agradable. Ahora se ve relación de aspecto, y sólo voy a arrastrarlo hacia arriba. De acuerdo, um, si hago clic en esta cosa de aquí, podría arrastrarla por ahí, y sólo voy a hacerlo más grande. Y es mantenerlo relación de aspecto, que es lo que queremos. ¿ De acuerdo? Y está un poco apagado ahora, pero eso está bien. Entonces solo estoy dando clic y arrastrándolo para que sea un poco más grande y agradable, y solo lo voy a arrastrar hasta que se alinee justo donde lo queremos. Muy cool. Muy, muy, muy cool. Pero ahora necesitamos un fondo súper cool para ir con nuestro texto súper cool. Por lo que estoy en libre pick dot com. De acuerdo, el enlace está aquí arriba. Siento que sea largo puedes copiarlo si pausas el video pero básicamente en estos chicos tienen ah imágenes libres de regalías para usar siempre y cuando le des atribución. Por lo que te estamos dando atribución gratis pick y diseñado por free pick dot com, y vamos a seguir adelante y descargarlo con la licencia gratuita con atribución
descarga libre . Debes acreditar al autor que acabamos de acreditarte. Dejar de pedir acreditación. Está bien,
agárrenlo . Está descargando ahora 5.1 megabytes. Eso es un archivos zip
grandes, grandes. Voy a darle click. Va a abrir mi carpeta y descomprimirla. Y yo sólo voy a agarrar este J peg, y sólo vamos a ir aquí a nuestra carpeta de proyectos otra vez. Y voy a Otra forma de moverse en el Mac es la pestaña de comandos. Te mueves entre archivos. Si mantienes pulsado el comando mientras presionas la pestaña, vamos a volver a tocar para encontrarla. Y llamemos a este BG por antecedentes recién tomados. Arrástrelo aquí de nuevo a su sección de imágenes. Recuerda, tenemos imagen. Contamos con activos. Pensamiento xsi activos resaltados. De acuerdo, Lo que vamos a hacer ahora es volver al tablero principal de cuentos y como esa es otra imagen, necesitamos otra vista de imagen. Entonces lo que voy a dio se está arrastrando ahora. No es del tamaño correcto. Obviamente necesitamos que sea la pantalla completa y uh, Lo que voy a dio es en realidad solo seguir adelante y seleccionar la imagen BG. Por supuesto que no lo es. Lo que queremos es encogerlo. Y digamos,
uh, uh, ajuste de
aspecto. De acuerdo, entonces es realmente pequeño ahora mismo, pero yo sólo voy a Nos vamos a divertir. Sólo toma a este pequeñito. Esta pequeña flecha aquí en la esquina superior izquierda. Simplemente hazlo realmente, realmente, muy grande. Voy a colgar del filo. Eso está bien. Está bien. No tiene que ser perfecto para deslizarlo hacia arriba. Esto es sólo por diversión Y haciendo que se vea bonito y como, OK, genial. Ahí está. Um, también
puedes moverlo como presionar las flechas. Por lo que siempre y cuando esté seleccionado aquí en el lado izquierdo como es, puedes, uh, um, moverte con el aire. El de Lucky también. De acuerdo, entonces ahí vamos. Se ve lo suficientemente bien por ahora y después nota. ¿ Cómo se desaparecen otros controles? Bueno, eso es porque en revisión aquí estas cosas se ordenaron de cierta manera, y nuestro fondo está encima de todo lo demás. La capa inferior estaría aquí arriba, por lo que necesitamos que el fondo esté justo ahí. ¿ Entiendes? Haga clic. Arrástrelo por ahí en el lado izquierdo ahí y prohibir. Ahí está nuestro logo. Ahí está nuestra redacción ahora. Por supuesto, no
queremos que el logotipo y el fondo se muestren justo al principio, por lo que necesitamos escribir algún código. Entonces, ¿qué vamos a hacer? Quita esto por aquí, Arrastra este poco más grande es vamos a dar click a estos dos pequeños círculos. Aparecerá el asistente de editor. Si estás en una versión diferente del sistema operativo Mac, este podría ser un ícono diferente, como persona o algo así, pero sigue siendo el mismo. Simplemente haz clic en el del medio, y, uh, va a abrir el asistente de editor aquí. Y lo que está haciendo es abrir el archivo de código correspondiente. De acuerdo, Así que nuestra vista puede nuestro tablero de historias principal en este controlador de vista que se ve justo aquí se adjunta a este controlador de vista punto rápido por aquí. Está bien. Apegado a ella. Y de todos modos, así se abrió el archivo de Código Asociado a esto, su controlador. Ahora lo que tenemos que hacer en el iPhone es que necesitamos conectarnos, conectar cosas para que funcione. Nuestro código necesita saber qué está haciendo nuestra interfaz de usuario y viceversa. Y hay dos tipos de cosas que tienes. En cuanto a esas interacciones, tienes salidas I D y acciones de Ivy, y yo sería outlet es una variable que estableces en tu código que almacena una referencia a los elementos de la interfaz de
usuario. Simplemente apunta a ella, por lo que sabe usarlo y cambiarlo. Y yo La acción es una acción. Cuando se realiza en la app de iPhone en el tú yo que se llevará a cabo en el código. Llamará al código y le hará hacer algo. Entonces necesitamos hacer eso. Entonces lo que vamos a hacer es asegurarnos de que este tipo sea seleccionado aquí mismo. Hay múltiples formas de hacer esto. Y lo que vamos a hacer es seguir adelante y mantener presionada la tecla de control de tu teclado. Dice control. De acuerdo, mantenlo presionado y luego haga clic. Y si estás usando clics izquierdo y derecho, es izquierdo,
click, click, click y arrastra. Se ve una cosita aquí para siempre. Estoy sosteniendo el control y haciendo clic y arrastrando desde esto. Lo voy a arrastrar por dentro por debajo de la clase. Pero sobre la vista sí función de carga justo aquí. Vamos a soltar el click y quiere un nombre. Y así vamos a llamar a este logo genial. Este es nuestro genial logo. Y puedes presionar, entrar o hacer clic, conectar, presionar, entrar, hacer clic, conectar y bam! Ahí está por ahí en el lado derecho. Y este pequeño punto que se está llenando muestra que eso es lo que está conectado. Y si paso el cursor sobre él, lo muestra en el constructor de interfaces lado izquierdo. Se trata de una
imagen de U. S. S. Se te dio un nombre de logo cool. Ahora también necesitamos hacer lo mismo con la copia de seguridad porque necesitamos dedo del pie. Unhigienic son cosas cuando se presiona el botón. Entonces lo que vamos a dio es hacerlo de manera diferente esta vez. ¿ De acuerdo? Esta vez en realidad vamos a escribir el código aquí en el lado derecho, estoy outlet week bar. Eres como, ¿qué significa eso? ¿ Débil? Esta semana es un fuerte ¿Esto es malo? Te explicaré esas cosas después de la semana bar, y vamos a llamar a esto genial Bijie y va a ser un tipo. Eres vista de imagen. Mira eso. Precioso auto. Puntos de exclamación completos. Está bien, así que tenemos otra variable de salida de Ivy. Y esta vez, lo que vamos a hacer es que sepas cómo es ya. En realidad podría hacer clic y arrastrar este año en segundo plano y funcionaría. Pero quiero mostrarte algo más. Otra forma de hacerlo. Uh, lo que quiero hacer en realidad es hacer click a este tipo aquí este controlador de vista. Ahora recuerda, está atado a esto aquí en el código de la derecha, y así sabe de estas variables. Por lo que voy a dar clic derecho en el controlador de vista y notar cómo se puede ver ese clic derecho o dos dedos click. No obstante, tus bocas están configuradas, puedes ver que tiene algunas manchas aquí. Y mira a nuestro Kool. BG está ahí. No te preocupes por las otras cosas, pero preocúpate por su Kool BG. Así es. Ahí hay. Lo que puedo hacer es hacer clic en esto y en realidad por aquí en el lado izquierdo. Yo
también puedo seleccionarlo así . Hay múltiples formas de atar tu interfaz de usuario a tu abrigo, lo cual es realmente genial ahora, por
supuesto, um necesitábamos acción para esas cosas también. Estar escondidos Lo siento por mostrar en el pero en esta prensa. Y necesitamos que el botón se oculte Cuando, uh, el botón está pulsado, así que en realidad necesitamos un mawr con el que estaría fuera. Entonces lo que voy a hacer es que sólo voy a partir de aquí mismo, voy a controlar drag debajo de estos otros, y vamos a llamar a esto un cool, pero porque no está bien. De acuerdo, entonces él está por ahí ahora y ahora, ¿
harías una cosa más haciendo esa misma droga de control click. Ahora vamos a ir por aquí y debajo de nuestra función de advertencia de memoria sí recibió. Vamos a dejarlo ir. ¿ Te gusta qué? Acabamos de hacer esto. Bueno, aquí está la diferencia. Preste atención. En lugar de que la conexión sea un outlet, vamos a crear una acción. Hecho. ¿ Lo hizo, eh, y vamos a llamar a esto me hacen no tan guay. Eso suena como una función adecuada. Nombre Conectar, centro de
prensa. Ese tiempo y ahí está nuestra función. Eso significa siempre que se presiona este botón. De acuerdo, esta función se va a llamar, Así que estamos muy bien aquí. Consiguió las cosas conectadas. Escribamos un poco de código, ¿de acuerdo? Simplemente vamos a seguir adelante y agarrar nuestro logo de cosas cool y vamos a llamar a punto Oculto igual a Verdadero. Es una propiedad en la imagen. Tú Eso es realmente genial. Y kool BG dot oculto es verdadero. Está bien. Y luego un cool y punto oculto es igual. En realidad, hice esto al revés. Esto debería ser falso. Queremos que Thies no se oculte cuando presionamos el botón y queremos que el botón se
oculte cuando lo presionamos, Eso es exactamente lo que queremos que suceda. Ahora sólo hay un problema. Estas cosas van a estar,
um, um, no ocultas por defecto. Entonces sigamos adelante en el en el constructor de interfaces aquí en el guión gráfico Voy a hacer clic en el logo del boom aquí y solo estoy click oculto, ¿de acuerdo? Y hago clic en el fondo y voy a dar click Golpearlo Así que ambos están golpeados. Y ahora Ok, como puedes estar un poco descolorido aquí Y así si presiono stop para detener la actual construcción y reconstruyo esto bien todo debería estar listo para ir hacerme super cool. Por lo que tenemos un fondo súper aburrido y boom ahí iss tu primera app y es supercool boom ap Felicidades por hacer tu primera aplicación y es live y running on be simulator. Por lo que ahí lo tienes
11. Cómo funcionan los ejercicios y las calaras de Warmups: Oigan, todos, quiero hablar brevemente de ejercicios y calentamientos y cómo caen en el curso y por qué son importantes. Ya que no tengo nada que mostrar, te voy a dar un objeto para que mires de lo que estamos hablando de hacer ejercicio. De acuerdo, así que aquí está el trato. He enseñado a mucha gente, y he aprendido cómo la gente aprende. Y aprendí lo que se necesita para aprender y retener las cosas. Y pero sé de hecho es que no se puede simplemente pasar por estos videos uno tras otro todo en un día y aprender a retener estas cosas. Va a entrar por un aire al otro. Entonces si te interesa aprender realmente el desarrollo de iPhone, haz cada ejercicio para cada calentamiento y verás los calentamientos en las siguientes secciones. Después de su primera parte y los calentamientos ayudan a refrescar lo que ya has aprendido, además de enseñarte a pensar como programador. Entonces el problema muy orientado al programa resolviendo problemas simples de matemáticas, cosas así, cosas que te ayudarán a empezar a pensar como un programador para entrenar tu cerebro. Está bien. Y los ejercicios como están diseñados es que te enseño un concepto visualmente en un video sobre todos los principales en él, y luego por tu cuenta, construyes una siesta sin video instrucción. Es muy similar. Todos los principios y conceptos son similares a lo que acabas de aprender en el video, pero su aplicación un poco diferente. Entonces tienes que usar tu propio poder cerebral para traducir cómo funcionan las cosas, uh, y cómo se conectan las cosas y puedes mirar atrás los videos que hice como referencia. Y así no saltes los calentamientos. No te saltes los ejercicios si realmente quieres aprender estas cosas. Si te saltas esas cosas, entonces va a ser mucho más difícil retener esto, OK, Y la idea es que además, poder
hacer esos ejercicios y retener esos principios que se estaban enseñando, también puedes ir a nuestro sitio web en nuestro foro y publicar problemas que estás teniendo y en realidad convertirlo en un aula interactiva de la vida real. Por lo que considera esto un boot camp en línea donde estás obteniendo la mejor ayuda que posiblemente
puedas sin tener un profesor ahí, conociendo tu nombre y poniendo a buen uso todas estas cosas. Y así que esa es mi despotricación y rave sobre los ejercicios y los calentamientos. Si de verdad quieres aprender y cuidar si realmente te comprometes con este curso, vas a hacer esas cosas e incluso te sugeriría que las sometas para conseguir hub Eso la gente puede mirar tu código más tarde, Ron, ya que eres entrevista para empleos, etcétera. Así que por favor hagan esos calientes de ejercicios y, uh, vamos a llegar a ello.
12. Introducción a Swift 2: Hey, todos, Mark Price aquí pendientes muertos punto com Y hoy te van a introducir en el mundo de Swift. Vamos a hablar de dónde puedes aprender por tu cuenta cuando no estás viendo estos videos. Así que pasa a tu Mac y comandos. Además el espacio abre tu búsqueda de focos y tipea en iBooks. De acuerdo, Todos los libros. Puede o no tener libros veloces aquí. Estas manzanas de aire, funcionarios, libros
veloces. Si no lo tienes, haz clic en iBooks store. De acuerdo, Y escribe en veloz en la parte superior, justo en tu barra de búsqueda. Y deberías ver éste aquí mismo. Lenguaje de programación Swift actualmente swift 2.1. Y adelante y haga clic. Obtén, o si lo tienes ya leído lo abrirá. Y hay un libro. Se abre. Y esto es exactamente lo que queremos ver. Voy a hacer mi tamaño de fuente un poco más grande aquí, ¿de acuerdo? Y solo te voy a dar la visión general de la redacción de swift por manzanas
para que puedas tener una idea de lo que estás a punto de meterte. Swift es un nuevo lenguaje de programación para IOS y os X. APS que se basan en lo mejor de ver un objetivo C sin las restricciones de la compatibilidad
C. Swift adopta patrones de programación seguros y agrega características modernas para hacer la programación más fácil , más flexible y más divertida. Swifts Clean Slate respaldado por los marcos maduros y de mucho amor Coco y Coco Touch, es una oportunidad para reimaginar cómo funciona ahora el desarrollo de software. Esto es realmente importante. Aquí está la razón por la que Demos un paso atrás cuando salió el objetivo C. De acuerdo, Si estás familiarizado con objetivo ver, ya
sabes, es muchas de las clases en Ciudad Objectiva. Empieza con las letras N s como N s string bien, o cualquier objeto, ¿Qué es esto? Y S Will N s representa el siguiente paso. Cuando Steve Jobs salió de Apple por primera vez, creó una empresa llamada Next Step. Era como el renacimiento de Apple, pero a sus propios ojos y manera, y crearon un lenguaje de programación que se basaba en C, y era un lenguaje de programación objeto, adornada. Y se desarrolla a lo largo de los años ahora cuando salió el IOS por primera vez, así fue como se construyeron los APs. Objetivo C. Y ha existido durante mucho tiempo, pero se ha construido, construido sobre y
construido sobre un mejorado y mejorado con el tiempo. Y para lo que lo estábamos usando en el inicio del desarrollo de Iowa nunca fue para lo que
originalmente se anticipó para ser utilizado. Así que aquí viene Swift y Swift fue construido desde cero para ser un lenguaje poderoso, utilizando principios de programación modernos para admitir completamente el desarrollo de aplicaciones IOS y OS X. Y así mi punto es, Swift está construido para que pudiéramos hacer increíbles IOS y OS X APS con todas las poderosas características que alguna vez podríamos querer, pensar y pensar y crear justo para nosotros y hacer nuestra vida más fácil. Entonces por eso Swift es tan grande. Y si ya conoces el objetivo C, probablemente
sepas que vencejos bastante asombrosos. La mayoría de los programadores que me conozco incluidos ya han hecho el salto a Swift. Entonces, de todos modos, esa es una breve historia de por qué Swift es tan poderoso, y te voy a enseñar a usar Swift de manera profesional. No solo leamos el libro y hagamos X, y y Z. En realidad te
enseñemos cómo construir APs veloces que puedes poner en la tienda APP de la que un empleador estaría orgulloso Y así te voy a enseñar todo lo que sé es un desarrollador profesional. Y voy a inyectar eso en nuestro aprendizaje de Swift. Entonces que dicho eso, sigamos adelante y solo sumémonos y construyamos unos APS veloces.
13. Variables y constantes de Swift 2 de Swift: Oigan, ¿qué pasa, todos? Mark Pricer death pistas dot com Y hoy vamos a hablar de variables y constantes. Entonces sigamos adelante y abrimos aquí nuestro código X, pincha en un y haz clic en empezar con un patio de recreo, y voy a crear uno aquí llamado Variables. IOS está bien. Da click siguiente, y voy a poner esto en el escritorio por ahora mismo. Está bien, déjame traernos esto bonito y grande aquí para que veas lo que está pasando. De acuerdo,
Entonces, ¿qué es una variable? Bueno, variable es un nombre y representación de algún tipo de valor. De acuerdo, si eso tiene algún sentido, Así que básicamente, en programación, tienes diferentes tipos con los que puedes trabajar. Puedes trabajar con cuerdas como esta aquí mismo. Se trata de un tipo de cadena con palabras y caracteres. Se puede trabajar con números como dobles y flotadores. Enteros. Ya sabes, puedes hacer operaciones matemáticas con números. Piensa en esto por un segundo. Si eres completamente nuevo en la programación, piensa en cuando vayas a tu página web bancaria, banco
estadounidense Wells Fargo, Lo que sea que esté bien, y te dan mensajes como nueva alerta. Ya sabes, tu cuenta ha sido actualizada o te han sobregirado. Entonces hay palabras y personajes reales y luego hay números reales también. A como este es mi saldo bancario, ya
sabes, negativo $500. Ustedes saben de lo que estoy hablando, ¿verdad? Y Ah, así que tienes números y tienes personajes Así que lo mismo con la programación se construye sobre estos constructos. Y así en este caso, aquí mismo, lo que estás viendo es una variable indicada por la palabra var una variable llamada str y su valor es igual a hola playground ahora str puedes llamarnos como quieras. Este es el nombre de su variable. Entonces en realidad estás nombrando ah tipo de datos, una pieza específica de datos. Le estás dando un nombre para poder reutilizarlo más tarde, cual es realmente interesante. Entonces esto es un patio de recreo rápido, ¿de acuerdo? Y voy a hacer esto más grande aquí. Y así imprime exactamente lo que estás poniendo aquí a la pantalla ahora en una aplicación en IOS o Mac, podrías hacer algo como este print str y en realidad imprimirlo al cónsul. Ahora, como puedes ver, ahí
mismo está imprimiendo y añade un nuevo personaje de línea al final para nosotros aquí. Y ah, eso es lo que haces para imprimir esa variable. No necesitamos hacer eso aquí ahora mismo,
sin embargo, sin embargo, así que hola. El patio infantil es lo que viene aquí. Y esta es una cuerda que es realmente genial y así entender un poco las computadoras. Necesitas entender que cuando creas una variable que realmente está almacenada en la memoria tu computadora, tal vez estés pensando, ¿Qué quieres decir en la memoria? Bueno, en tu computadora, recuerda cómo fuiste a la tienda y el vendedor estaba como, Oh, deberías conseguir esta computadora. Tiene 512 gigabytes de RAM. Bueno, ram la memoria de acceso aleatorio. Aquí es donde se almacenan las variables. Por lo que cuanto más ram tengas, los programas más rápidos se ejecutan porque podrían almacenar más variables y datos más información. Entonces cuando creas esto aquí mismo, este mismo proyecto de ley aquí llamado str
Vale, ha sido almacenado en una ranura en la memoria en tu hardware físico. ¿ Qué tan guay es eso? Entonces esta es una variable de tipo string, que es realmente genial, y hay otros tipos de variables a u otros tipos que puedes usar como podría decir número, y podría decir 20. Interesante. Entonces esta es otra variable. Pero este es un entero bien de 20. También puedo hacer números decimales que podrían ser flotantes o dobles así u otros tipos. Por lo que podría decir decimal equivale a 50.5. Y se podría hacer eso en la programación también está bien. Entonces estas variables de aire Ok, Cada vez que
creé variable, le doy un nombre y puedo poner un valor en ella. Y este nombre se almacena en la memoria para que pueda usarlo más adelante, cual es realmente genial. Y se pueden cambiar variables así. Por lo que podría decir decimal ahora es igual a 20 punto 23. Y ahora he cambiado el valor de esta variable para igualarlo. Ahora esta variable sigue en el mismo lugar en la memoria. Pero le ponemos un nuevo valor, lo cual es realmente genial. Puedes cambiarlo alrededor. Entonces esa es una variable variable de nuevo es la representación sin nombre de un valor de algún tipo. Casey de variables. Y también tienes algo llamado Constance. Y una constante es algo que es inmutables. Y se define una constante con la palabra clave let para que yo pudiera decir Let new decimal igual, Digamos, 40.4 cinco. Nuevo decimal Eco's 40.5. Ahora veamos qué pasa si trato de cambiar el valor de esto para poder decir nuevo decimal igual a 6.4. A ver si me deja cambiar ese valor. Si miro por aquí, hay un aire rojo. Arreglarlo cambia, deja demasiado lejos para hacerlo mutable. Mutable significa cambiable, pero no queremos hacer eso. Esa no es la solución que queremos. Nos da una era, dice que no se puede cambiar su valor. Entonces las dos cosas básicas que puedes hacer con swift es Puedes crear una variable, que es un valor cambiable,
un valor cambiable aquí, ¿de acuerdo? O podrías hacer una constante, que es inmutable. Una vez que lo asignas, no se puede cambiar. De acuerdo, entonces hay ventajas cuando vas a usar estos en diferentes aplicaciones y ah, y lo verás próximamente aquí. Pero esto son variables y constantes. En su forma más básica, tu variable se puede nombrar mayormente cualquier cosa, cualquier cosa que quieras, lo cual es realmente genial. Por lo que no tenía que decir, str podría decir, Mensaje de
bienvenida. Hola, Área de juegos. Eso es algo genial. O si hicimos el ejemplo del banco, digamos que conoces a tu Wells Fargo. Mensaje de bienvenida. Esto podría decir hola. Tu cuenta está sobrecortada. No sabes manejar tu dinero, tonto? Está bien. Y esto en lugar de número Esto podría ser saldo de cuenta igual a negativo 500 porque eso es lo que parece. Nuestras cuentas bancarias siempre están yendo en la dirección equivocada. Así que cosas realmente cool, diferentes tipos que puedes hacer aquí. Esto apenas está rascando la superficie. Si quieres ver algo realmente tonto que puedes dio si comandamos espacio y abrimos nuestro libro de fuentes, Ok, podría hacer una búsqueda de emoji. Por cierto, nunca
hagas esto. Chicos y muchachas, esto es simplemente ridículo. Sólo te voy a mostrar. Solo estoy destacando este emoji y comando. ¿ Ver? Y puedo salvar a nuestro mono igual a caballo. Eres como, Espera, ¿qué diablos está pasando aquí? Bueno, Emojis se basan en caracteres Unicode y así puedes usar Unicode como nombres de variables. Ah, y podrías darle un valor. Ahora otra vez, no hagas esto nunca. Esto es ridículo. Y absoluta lutely. No tiene sentido hacer esto. Solo te estoy mostrando que puedes hacer eso. Entonces esto son variables y constantes. En su forma más básica, queremos llegar un poco más avanzados. Podemos declarar múltiples variables en la misma línea, como cuenta lejana. Uno es igual a 0.0. Y podría hacer una coma y decir cuenta dos es 1.1 y coma cuenta tres igual 3.6 Y lo que hemos hecho aquí ya que hemos declarado tres variables diferentes, La única diferencia es que no pusimos la palabra clave var delante de estos otros dos. Lo excluimos y lo pusimos en la misma línea sólo para hacer nuestra vida un poco más fácil y poco más legible. Por lo que también puedes declarar variables en la misma línea, como tal ahora este tipo de variables que hemos estado creando hasta ahora, hemos inferido su tipo. Entonces básicamente hemos dicho decimal, y hemos dicho:
Oh, Oh, oye, esto va a ser un doble porque son 50.5. Tan rápido es realmente inteligente, y te da un tipo de datos. Está bien. Todas estas variables tienen tipos de datos y no hemos especificado explícitamente cuáles son estos
tipos de datos . Pero yo puedo hacer eso. Podría guardar nuestro nuevo mensaje es de tipo String. Entonces lo que esto dice es, Hey, aún no le
he puesto ningún dato, pero cuando los datos sí entran en
ella, tiene que ser una fuerza. Vale, Entonces, por ejemplo, ver qué pasa si digo nuevo mensaje igual a 50 Lo que crees que va a pasar me da un error, no puedo asignar valor de tipo end siendo entero a la fuerza. Por lo que no podemos poner el inter journey aquí. Por lo que hemos hecho una anotación de tipo. De acuerdo, escribe anotación. Esa es la palabra clave. Entonces esta es una anotación de tipo, y básicamente hemos dicho, Hey, esta variable va a ser de este tipo. Y así en lugar de los 50 si digo hola, este es un nuevo mensaje. Sé que eso no es muy creativo. Funciona. OK, así que muy cool. También puedes hacer anotaciones de tipo con múltiples variables. Por lo que podría decir lejano rojo, verde azul es de tipo doble. Y así las tres de estas variables son de tipo doble. Entonces ahora si digo que el rojo es igual a la cuerda rosa, veamos qué pasa. Igual que antes, Vale, Tenemos aire. Entonces así es como puedes definir múltiples variables con anotaciones de tipo con una sola anotación aquí. Entonces esto, si tienes muchas variables que querías definir que son de tipo doble y relacionadas, entonces esta es una buena manera de hacerlo en una línea. Entonces cosas realmente geniales, ¿eh? ¿ Qué crees que es esta locura? ¿ Locura? Yo creo que sí. Pero si no lo estás entendiendo por completo, está bien. Lo conseguirás con el tiempo ya que realmente construyes aplicaciones. Por lo que esta es una visión completa de las variables y constantes. Apenas arañando la superficie, pero muy fundacional. Y así vamos a llamar a este video hecho y seguir adelante y adelante.
14. Swift 2 comentarios y Semi-Colons: Oigan, ¿qué pasa, todos? Mark Pricier muerte pendientes dot com Y hoy vamos a hablar de comentarios y punto y coma . Ya lo sé, ¿verdad? No realmente excitante. Y estos no son los comentarios como, ya
sabes, cuando vas a Reddit, sé quién eres. Y empiezas a trolear, ¿eh? Eres el mayor perdedor burbuja en Belova. Haces un comentario y nadie sabe quién eres porque es anónimo y piensas que eres realmente genial. Pero en realidad no lo eres. No es ese tipo de comentario en absoluto, algo completamente diferente. Así que adelante y abre tu código ex y abramos el último patio de recreo que hicimos. O si no quieres hacer eso y que caiga algún otro código, quieres abrir, siéntete libre de hacerlo. Vamos a abrir nuestro último patio de recreo aquí. Como puedes ver, está justo aquí y nota aquí en la parte superior. Ahí está esta cosa en verde aquí. Este es un comentario y un comentario es algo que es omitido por el compilador. De acuerdo, entonces cuando estés construyendo aplicaciones rápidas, un compilador compilará tu código y permitirá que sea utilizado por el usuario y se llamará a
las diferentes funciones etcétera. Pero comentarios o omitir, no
tienen ningún impacto en el usuario. Entonces, básicamente, solo comentas cosas haciendo para reenviar barras. De acuerdo, eso es todo. Significa que ya no va a leer. Y así, por instancia, si quisieras tener un mensaje diciendo, Sabes que esta variable es hacerle saber al usuario cuando su cuenta está sobrecargada. Entonces si tienes código, puedes dejar comentarios para el desarrollador que podría estar mirando tu código para darles una indicación de lo que tu código está haciendo ahora con eso dicho, Ok ,
primero no ir por ahí poniendo comentarios y todo tu código porque este es un principio de diseño importante. Quiero perforar en tu cerebro ahora mismo. Buenos documentos de código en sí. De acuerdo, entonces los nombres de tus variables y la coda de mesero estructurada deberían ser bastante fáciles para que un desarrollador pueda entrar y entender lo que está pasando sin tener que leer comentarios. Entonces si tienes comentarios por todo el lugar, probablemente lo
estés haciendo mal, ¿de acuerdo? Pero así es como se puede agregar comentario. A veces es bueno comentar código que no necesitas solo por un minuto. O a veces sí necesitas explicar las cosas. A lo mejor hay un error que necesitas arreglar más tarde. Y un comentario podría ser algo bueno para eso. Pero no vayas a poner comentarios a todas partes. Buen Entrenador. Un documento en sí. De acuerdo, así que acabo de hacer barras dobles. También puedes en el código X. Puedes resaltar lo que quieres comentado y manteniendo presionado el comando en el teclado. Se puede hacer comando ford Slash. Y comentará todas esas líneas a la vez, lo cual es realmente genial. Puedo resaltarlo de nuevo y hacer comando slash otra vez y poco común. Siéntate. Entonces esa es una forma de común rápidamente el comentar un bloque de código en lugar de hacerlo manualmente. Una forma más de comentar mucho código es haciendo estrella de corte El pastor Rick le preguntó el riesgo. ¿ Alguien puede pronunciar eso correctamente y cerrarlo? Pones un final. Sólo voy a llamarlo estrella. ¿ Está bien eso? Estelar y taladrar. De acuerdo, Así que arrancando ranura. Así que la última estrella de Ford Ford slash Así terminaste que vendrá en un bloque de código . Está bien. Bastante cool. Tan muy útil y comentando. Cosas que uso comentarios todos los días, pero en su mayoría no está en código de producción. Es mayormente cuando me estoy desarrollando. Yo quiero probar las cosas y fastidiarme. De acuerdo, podría comentar algún código fuera, probar cosas diferentes. Eso es para lo que se utiliza mucho. Y así que eso es bastante guay. Observe cómo en rápido avanzar, por cierto, los comentarios. Se puede hablar de comentarios o tanto tiempo pasando aquí. No tenemos semi Coghlan's en aviso Swift. ¿ De qué manera otros idiomas tienen semi colones? Bueno, Swift no lo hace, lo cual es realmente genial. Odio los semi colones, pero puedes usarlos bastante cool, ¿
verdad? Entonces lo que pasa con Swift es que lee hasta el final de la línea, y luego pasa a la siguiente línea. Por eso no necesita punto y coma. No obstante, si quieres cosas en la misma línea, múltiples declaraciones, está bien, estas declaraciones aéreas. Aquí está la palabra clave para las declaraciones del día. Esta es una declaración, cualquier pieza de código que se vaya a ejecutar. Entonces esta es una declaración. Si quiero otra declaración en la misma línea, entonces
puedo usar un punto y coma y guardar nuestro nuevo saldo igual a 50. De acuerdo, y así hay una nueva declaración así que Si quieres varias sentencias en la misma línea, puedes usar un punto y coma. Esto no es común y veloz en absoluto. De hecho, nadie realmente está haciendo eso. Y te recomiendo que no hagas eso,
que eso es lo que hace la gente en otros lenguajes de programación. No es común a Swift, así que pero puedes usar punto y coma para poner las cosas en la misma línea. Además, usarás semi puntos cuando estés usando para bucles o bucles de algún tipo, y vamos a hablar de eso en el futuro. Pero te mostraré aquí ahora mismo cómo se ve en realidad. Entonces podría decir que cuatro para de nuestra X es igual a cero X es menor de lo que sabes 50 x plus, y tenemos este bucle aquí, este cuatro bucle y notar cómo hay semi puntos entre estas diferentes declaraciones aquí. Entonces ese es otro momento en el que usas cosas pero bastante cool. Cosas bastante simples, semi colones y comentarios. Eso es todo lo que realmente necesitas saber de ellos. Entonces sigamos adelante y sigamos adelante y Ford
15. Números de Swift 2 y seguridad de tipo: Yo, ¿qué pasa, todos? Mark Pricier pendientes sordos punto com. Y ahora mismo, vamos a hablar de números. Mis números. Digo, enteros, dobles y flotadores. De acuerdo, que
no se confundan con carrozas de cerveza raíz o carrozas de desfile o cualquier otra cosa tonta
que pueda decir , Vamos a hacer clic en código Rx y otra forma de abrir el siguiente proyecto de código. En realidad, si quieres saber, haz clic aquí en tu código ex y ve a la parte superior cuando decida cargar. Vamos. Ahí vamos. Archivo nuevo proyecto o patio de recreo. En nuestro caso, sólo
estamos haciendo clic en el patio de recreo aquí otra
vez, Al comenzar con un patio de recreo y éste sólo vamos a quedarnos números. Enfriar. Trato. Tiro honesto Este año carpeta. Pon el tuyo donde quieras. De acuerdo, entonces ahí vamos. Hagámoslo bien y grande aquí para que puedas verlo. Por lo que hemos hablado brevemente de números que te mostré antes. Vamos realmente a meternos aquí. Entonces, en programación, tenemos algo llamado entero. Oye, mira eso. Estos comentarios están entrando en juego un entero y veamos qué Inter juris aquí. De acuerdo, los imagers son números enteros sin componente fraccional, dijo solo 42 negativo 23. Los enteros son cero positivo firmado o negativo o sin signo, positivo o cero. Eso es interesante. Por lo que hay dos tipos de enteros con los que trabajarás mayormente. Hay otros tipos que puedes usar, pero hay firmado y sin firmar y el estándar está firmado, lo
que significa que puede tener valores negativos y valores positivos. Entonces, por ejemplo, sabes que podría salvar nuestra cuenta bancaria equivale a 500 negativos. Está bien, eso es interesante. Eso es de tipo entero. También podría haber hecho esto. Recuerda una anotación tipo que podría haber dicho muy adentro, o mi cuenta bancaria. Fin de colon equivale a negativo 500 Eso funciona igual. De acuerdo, Y fíjate cómo es la palabra clave dentro con el capital. No entero como, Así que es int. De acuerdo, ahora intentemos otra cosa. Var. Haga clic aquí mi segunda cuenta bancaria. Por cierto, puedes poner números en tus variables. Eso es algo genial. Mi segunda cuenta bancaria, y esta vez diremos de tipo. Terminas por sin firmar a menos que un negativo 200 Veamos qué pasa. Ah, interesante. Un error. entero negativo se desborda cuando se almacena en el tipo sin signo en. De acuerdo, entonces no es lo suficientemente grande como para permitir números negativos. No podemos hacer eso. De acuerdo, entonces Onley usa enteros sin signo esto int en cualquier momento que veas un tú frente a entero Onley Alguna
vez, vez, nunca,
nunca, nunca usó eso cuando puedes absolutamente garantizar que va a haber un non valor negativo. De acuerdo, entonces cero y adelante. Está bien. Nunca nunca lo hagas de esta manera. No va a funcionar. Puedes bloquear tu aplicación por lo que claramente una cuenta bancaria no es algo bueno para usar un entero
sin signo. De acuerdo, Entonces Ah, lo que podrías usar es ah, algo mejor. Al igual, digamos de nuestra edad. Hmm. Interesante. Terminas igual a 22 que funciona. Ya sabes, por edad, nunca
vas a tener una edad negativa a menos que seas Benjamin Button. Y Ah, por lo que podría ser una buena opción para un entero sin signo. Está bien, eso es un poco genial. Ahora tal vez te estás preguntando ¿a qué altura puedo ir en un entero? Bueno, veamos qué tiene que decir Swift al respecto. El libro veloz aquí, se iss cuello. Lo perdí. Ahí está. De acuerdo, hagámoslo más grande. Un poco más grande. Muy bien, intentemos esto otra vez. Ahora. De acuerdo, aquí está el número ¿Qué es eso? ¿ Negativo? 2,147,487,648 todo el camino a lo positivo. 2,147,483,647. De acuerdo, entonces tu entero estándar regular va a caber dentro de este rango, lo cual es realmente genial. Entonces si tienes números dentro de ese rango que la mayoría de las aplicaciones van dedo del pie estar bien con esto con entero estándar. A menos que seas Donald Trump, quien tiene más de este dinero en su cuenta bancaria, si quieres más. De acuerdo, entonces necesitas usar un n 64. Entonces sigamos adelante y probémoslo aquí. Copiemos este número aquí, ¿de acuerdo? ¿ Y qué? Voy a dio salvar nuestro gran número y saquemos los comentarios. De acuerdo, así que ese es nuestro entero. A ver si le agrego otros siete. A ver qué pasa. Ah, interesante. No estás recibiendo aire. Eso es algo genial. Sigamos adelante. Bueno, es realmente genial lo de Swift es que sí inferencia de tipo, y te dirá qué tipo tienes, pero digamos que significa que lo convertirá en un entero 64 para que podamos apoyar esto. Pero digamos que hicimos esto en su lugar, ver qué pasa. Todavía no hay aire. Pero el problema es que podemos tener problemas de desbordamiento y otros problemas de memoria también a Entonces, si sabes que tu número va a ser por encima de esa cantidad que dos mil millones cantidad. Lo que vas a querer dio es usar integer 64. ¿ Y qué número va eso también? No lo sé. Es mucho solo sigue y sigue y sigue. Entonces si realmente tienes números apenas grandes funcionan dentro de 64. Pero con todo esto se dice 99.999% del tiempo, vas a usar un entero estándar como lo hemos hecho hasta ahora sus siete online, un NUM es igual a cinco. Ese va a ser tu estándar en jurado. OK, entonces no vas a ver esto a común o esto. De hecho, en realidad nunca
he escrito aplicación escrita e IOS que alguna vez usara un entero sin signo o que alguna vez usara un entero 64 Así que y he construido un montón de cosas APS como 58 ahora. Entonces el entero estándar es lo que quieres, pero e indigente no tiene decimales de coma flotante. Entonces si abro mi libro son rápidos otra vez aquí, Vale, Si miramos los números de punto
flotante aquí, los números de punto flotante son números con unos componentes fraccionales como 3.14159 punto uno negativo a 73.15. Los tipos de coma flotante pueden representar un rango mucho más amplio. Está bien. Uh, mucho. Correcto. Un rango de valores y tipos de enteros y números consortes que son mucho más grandes o
más pequeños de lo que podría almacenarse en entero. De acuerdo, entonces un doble representa un número de coma flotante de 64 bits, y flotante representa un número de coma flotante de 32 bits. Entonces hablé de esto. Tenemos dobles, y tenemos carrozas. ¿ Cuándo usas cuál? Bueno, leamos la nota. Aquí. Doble tiene una precisión de al menos 15 dígitos. Dígitos decimales. Está bien. tanto que la precisión de un flotador puede ser tan poco como seis dígitos decimales. Ah, interesante. Entonces aquí hay algo importante. Si quieres más de seis dígitos decimales, está bien. Entonces usa un doble porque vas a conseguir al menos 15. Si eso es lo que necesitas, entonces usa un doble, ¿de acuerdo? Y no lo hace realmente no importa demasiado. De lo contrario, puedes quedarte. Se trata de un poco de seis dígitos decimales con un número de coma flotante aquí. Entonces si quieres trabajar con dígitos decimales más pequeños, pero aún quieres decimales, pero realmente quieres forzarlo a ser más pequeño que usar a flote. De lo contrario, use un doble este doble preferido en el desarrollo de IOS con swift. Y eso es lo que debes usar en todas partes es el doble bien? Realmente no importa. Honestamente, realmente no importa. Um, lo que a ti
respecta, vale, nunca
he tenido un nunca he tenido un punto donde tenía que hacerlo. Absolutamente. Por el bien de mi solicitud. Usó un flotador ah, o doble o viceversa Ahora han usado flotadores o dobles por la forma en que la manzana tiene razón. Y nunca he tenido una situación en la que me metí, absolutamente he usado uno u otro. En la mayoría de los casos, ambos
han funcionado bien, pero el defecto es doble. Entonces si guardo nuestra ah, otra cuenta bancaria equivale a 55.5. ¿ Qué crees que va a ser? Bueno, eso va a ser un doble por defecto. ¿ De acuerdo? Y por cierto, ¿Qué tipo de tipo crees que deberías usar para una cuenta bancaria? ¿ Usarías un entero o un doble? Bueno, tú haces el doble porque tienes cambio, ¿
verdad? Tan doble. Ahora tal vez estás pensando, Bueno, tal vez flota mejor para la moneda porque hay menos dígitos decimales. Y tal vez tengas razón. A lo mejor si estás construyendo un banco y una aplicación en lugar de usar el doble, podrías usar float, pero realmente no importa. El doble toma un poco más de memoria. Posiblemente. Pero realmente no importa. ¿ De acuerdo? Y así que eso es realmente genial. Se pueden almacenar dobles. También puedes almacenar flotador para que yo pudiera salvar nuestro Ah, algún voto equivale a cinco. Disculpe de tipo float equivale a 5.5. Entonces ahora tenemos un flotador. Ahora mismo, digamos que quería multiplicar estas barras. Algunos equivale a otra cuenta bancaria, veces algún valor. Y aún no has visto operaciones en variables. Pero te estoy mostrando aquí por primera vez. Yo quería multiplicar esos dos valores. No me va a dejar. De acuerdo, la multiplicación del operador
binario no se puede aplicar a operaciones de tipo, doble y flotante. De acuerdo, así que no puedes simplemente dar la vuelta y usar estos valores de manera intercambiable. Está bien, ¿
no? No funciona así, y la razón de eso es veloz es un lenguaje seguro tipo. Entonces si abro, sólo abramos aquí. Tipo seguridad y tipo. Inferencia. Sarah leyendo mucho del libro, pero es importante que aprendas a leer por ti mismo y entiendas a dónde ir para obtener ayuda cuando no estás viendo videos tan rápido es un lenguaje seguro tipo. Escribe lenguaje seguro te anima a tener claro los tipos de valores con los que tu código puede funcionar. Si parte de tu código espera una cadena, no
puedes pasarle un ent por error. Debido a que Swift es tipo la seguridad realiza comprobaciones de tipo al compilar su código y banderas. Cualquier tipo de desajuste termina como herederos. Esto le permite atrapar y fijar aires lo más pronto posible en proceso de desarrollo. Entonces, ¿por qué es esto importante? ¿ Por qué es importante que tus variables solo puedan tener un tipo u otro
lenguajes de programación ? De acuerdo, no
tienes que tener tipos específicos. De hecho, podría tener cuenta bancaria se ingresó tu aquí y luego más tarde otro lenguaje de programación . Podría poner una cuerda ahí adentro Bueno, y algunos de esos lenguajes. Digamos que eso está sucediendo en tiempo de ejecución, y cuando digo tiempo de ejecución, significa los usuarios en el programa. Ponemos el valor equivocado y lo que tu app se bloquea, ¿
verdad? Tu APP se bloquea por completo mientras solían usarla. Entonces la razón por la que swift usa la seguridad de tipo es porque podemos resolver esos bloqueos y problemas antes de que el código siquiera haya enviado. OK, cuando esté compilado, podríamos decir, Oye, estás poniendo lo equivocado aquí, ¿de acuerdo? Y por eso esto es tan importante. Por eso Swift es tan poderoso. Esta es una de mis cosas favoritas. He trabajado con muchos lenguajes de programación, y algunos tienen seguridad de tipo y otros no. Y por qué esto es tan importante es porque tus APS tienen menos bloqueos en ellos, a menos que problemas en tiempo de ejecución, tener esto aquí dentro al no permitir que un usuario almacene malos valores aquí, por lo que otro tiempo de cuenta bancaria, algún valor no funciona. Entonces si quiero este trabajo del dedo del pie, lo que primero tengo que hacer es arrojar este valor en algo con lo que el doble pueda trabajar, o viceversa. Entonces si lo echo como así pone la palabra doble delante de algún voto. ¿ De acuerdo? Lo que va a dio es que va a tomar este flotador aquí, y lo va a convertir en un doble y luego tomar el resultado de eso y multiplicarlo por este valor aquí y así algunos. ¿ Cuál crees que es el tipo de algunos? Bueno, ¿y si trato de hacer esto? ¿ Y si dijera var ser voto de tipo? ¿ Flotar? De acuerdo, igual, digamos 5.6. Mi 0.7, claro. Y entonces digo que algunos igual a voto B. A ver qué pasa. No me va a dejar un firmarlo, así que eso es interesante. Entonces para responder a la pregunta, esta suma es de doble porque tomó este doble y lo convertimos en un doble y lo
multiplicamos. Por lo que se está quedando un doble. Y pero aquí tratamos de tomar este flotador y ponerlo dentro del existente Algún Valium no va a
funcionar porque no es un doble. Entonces si invertimos aquí, quitamos este casting justo aquí y en su lugar echamos otra cuenta bancaria a un flotador como
así Así Así que donde esta vez estamos haciendo lo contrario. Lo estamos lanzando a flote reconfortándolo a flote. Y entonces si dije algo igual a voto B, no
deberíamos salir al aire esta vez. ¿ Por qué? Porque algunos ahora está a flote. De acuerdo, entonces teclea seguridad, principio
muy importante y muy grande con veloz. Simplemente no puedes poner lo que quieras en lo que sea. Siempre que la variable
quieras, tienes que pensar con claridad qué tipo de datos quieres. Piensa en tu aplicación. ¿ Es ésta una aplicación bancaria? ¿ Debo estar usando un doble o flotante o un entero o un entero sin signo? ¿ Puedo tener números negativos? Necesitas pensar en todas esas cosas cuando estás trabajando con tus tipos de datos y luego Swift no te dejará solo cambios sobre la marcha no dejará que tus usuarios los cambien. Se llega a decidir cómo funciona tu código y qué va y qué variables cosas tan realmente geniales . Entonces esto es lo básico de los enteros en carrozas y dobles, y te he enseñado algunas cosas importantes. Ahora ya sabes cuándo usar las cosas y cuándo no usar las cosas. Y a medida que avanzamos y realmente construyes aplicaciones, vas a ver el valor de este tipo de seguridad y manera necesidad de tener también estos
números de coma flotante . Terminó usted mismo. Eso es todo por ahora. Marcar Precio. Estás firmando con pendientes de deuda dot com y nos vemos pronto.
16. Conceptos básicos de terminal: Aquí estamos otra vez. Todos, y hoy vamos a hablar de la terminal. Ahora, el terminal es una herramienta que vas a estar utilizando todos los días como
programador profesional . Y cuanto más lo uses, mejor lo consigues. Y, uh, hay prácticamente ningún día que pase cuando estoy programando que no use terminal durante todo el día. Así que en realidad he doctor aquí en mi barra lateral, pero hay múltiples formas de llegar a ella. Si presionas comando más espacio en tu teclado y comienzas a escribir en la terminal, se va a reventar ahí mismo. ¿ De acuerdo? O puedes ir aquí a tu Launchpad, ¿de acuerdo? Y desplázate hasta que veas o está aquí? ¿ Preferencias del sistema? No hay otro Curtis otro K y está justo en su terminal. Da click en él ahí. Ok, entonces ya tengo el mío abierto. Entonces voy a seguir adelante y ah, ábrelo aquí arriba. Yo lo haré bonito y grande para que puedas verlo. Por cierto, si alguna vez tipeas de estiércol verde primavera y no harás que las letras sean más grandes o más pequeñas, solo tienes que mantener pulsado el comando, además del signo más por la tecla de borrar en la parte superior. ¿ Verdad? Trabaja mi extremo más la tecla menos justo al lado,
que hará una más pequeña Y así tu terminal puede verse diferente. Puede que tenga una palabra diferente. Aquí tu nombre. Eso está bien. Um, la mente solo muestra esto ahora mismo. Y básicamente un terminal es un sistema basado en comandos que te permite navegar por tu computadora y realizar operaciones en tu computadora. Eso, uh, que también podrías hacer gráficamente. Entonces, por ejemplo, aquí, er dice bash. Está bien. Una de las primeras cosas que vas a aprender es ah está bien. Básicamente, enumera los contenidos del del del director en el que estás. Por lo que la terminal aquí está empezando en su directorio raíz. Entonces si sigo adelante y abro una ventana de buscador Bien, aquí está mi hallazgo una ventana. Aquí está mi terminal. Está bien. Y si hago clic aquí mismo, es lo mismo. De acuerdo, Entonces esta es mi computadora. Se llama gastado tack, y básicamente me mostró el mismo director. Por supuesto, tengo algunas de las cosas aquí que muestran algunos archivos ocultos y esas cosas, pero básicamente esto es todo aquí. Está bien. Lo mismo exacto. Entonces si escribo un comando llamado CD Ok, esto se llama cambiar directorio. Y digamos que quiero un CD en mi carpeta de documentos. Puedo empezar a escribir documentos, presionar enter. Y si escribo ls esta
vez, me va a mostrar todos mis documentos. De acuerdo, Entonces lo que vamos a dio es ah, adelante y haz un directorio usando em que de ir. Hagamos comando directorio y vamos a darle un nombre. Vamos a llamar a este terminal Dash Fund Gay M k D a r Espacio Terminal Dash Fund. Y aquí está la cosa realmente genial si yo y organizado por nombre Vale, vamos a bajar a sobre dónde t debería ser tu en aquí en alguna parte. Y si sigo adelante y presiono enter, mira eso. Apareció la carpeta, y ahí está. caso de lo que hagas en tu terminal va a suceder y quedará reflejado aquí en tus localizadores reales. Ahora, claro, no
es súper útil. A lo mejor dos. Adelante y navega toda tu computadora por el Terminator como usuario de una
computadora Mac , Pero como desarrollador, vas a empezar a usarlo cada vez más para crear archivos para administrar co dos trabajo con control de
versiones a trabajar con git y tan importante que aprendas estas cosas. Hasta el momento hemos hablado de ls para mostrar ese contenido actual de un directorio. También hemos hablado de make directory para crear un directorio. Y hemos hablado de CD para cambiar de directorio. Entonces ahora que tengo fondo terminal, puedo empezar a escribirlo Y mira eso. Es así como se acaba de poblar automáticamente. Cómo sucedió eso es porque presiono la tecla de tabulación. Entonces empiezas a escribir. Y a medida que se convierte en una frase única cuando llegues a ese punto donde lo que estás escribiendo es único cuando presionas tab, llenará el resto por ti. Es inteligente así. Por lo que presiono enter aquí estamos en una carpeta vacía. De acuerdo, por aquí a la derecha dentro de la carpeta. Todavía ahí. Ahora digamos que rápidamente queremos hacer un nuevo archivos JavaScript sólo por diversión. De acuerdo, puedo teclear un toque químico terminal, vale. Y puedo guardar mi archivo dot Js presentador. Mira eso por aquí a la derecha por dentro, acabo de crear un archivo javascript. Por lo que el comando touch es realmente útil también. 200 navegando por ahí, Puedes crear archivos y estás como, Oh, necesito un archivo de texto muy rápido. De acuerdo, toca algún texto dot txt antes que tu sistema operativo ya sabe exactamente a qué tipo de archivo está bien Issa. Ah, así cosas súper geniales que puedes hacer aquí. Um, digamos que eso no me gustó, que quiero deshacerme de él. Qué tipo de RM. Empieza a escribir algo de texto y quítalo. De acuerdo, entonces nuestro m y luego el nombre del archivo lo quita. De acuerdo, hagamos un nuevo directorio. Digamos hacer directorio. Llamemos a esto una carpeta y sigamos adelante y CD en alguna carpeta. L s Ahí no hay nada. OK? Y voy a seguir adelante y tocar nuevo archivo dot Js hacer otro archivo de script de trabajo. Y bastante seguro, es ahí voy por aquí, está ahí. De acuerdo, Ahora digamos que quiero salir de esta carpeta, ¿de acuerdo? Y ahora puedo ver mi alguna carpeta y pude ver a mi padre. Sólo digamos que quiero deshacerme de toda la carpeta en sí. Si solo dijera rm, alguna carpeta Oh, No, me da un error. Alguna carpeta es un directorio. No me deja quitármela. Entonces si quieres eliminar un directorio con todos los archivos que están en él RM space dash capital son y luego el nombre del directorio. Está bien. Esconde nuestro sentido para que un significado cursivo pase por justamente. Todo dentro de ella. Y bastante seguro, se ha ido. De acuerdo, así es como eliminas archivos Grabar nueva terminal así como directorios. realmente geniales. Así es como se crea la voluntad de los padres, también. Si quieres saber dónde te encuentras actualmente como has estado navegando por ahí, podrías escribir PWD President Directorio de trabajo Eso te dirá exactamente dónde estás en tu sistema de archivos. Y ah, otra vez, ls te muestra lo que hay en ese directorio específico en el que estás así que algunas cosas realmente geniales. Ahora hemos aprendido a ver el en algo, y puede que hayas visto aparecer. Hice cd dot mientras citi dot dot dot dice ocupar un nivel. De acuerdo, solo sube un nivel. Está bien. Y estamos aquí. Estamos de vuelta a donde empezamos. Ahora volvamos a fondo terminal. Hagamos un nuevo directorio. Ve a llamar al nivel uno, ¿de acuerdo? Y luego Ah, aquí algo interesante. En realidad puedes hacer directorios sin tener que ir dentro de él. Por lo que podría hacer directorio nivel uno slash nivel dos. Y si miro en su se creó un poco también. De acuerdo, Entonces lo que vamos a hacer es seguir adelante y crear el nivel tres ahora, así que hacer directorio nivel uno hoja nivel dos. Sabemos que eso está ahí. Slash nivel tres. Necesitamos un nivel tres. Entonces entro ahí. Cierto, ya está ahí, nuestras pantallas poniéndose un poco desordenadas. Está bien. Entonces si quiero despejarlo, puedo escribir comando más K, y lo despejará. Está bien. Súper cool. También puedes escribir la palabra clear, y se aclarará que está bien que típicamente hago comando más K porque es más corto. Entonces lo que hemos hecho, si escribo ls sabemos que estaban ahí con el nivel uno y mi archivo que Js Ahora digamos que queremos quedarnos en este directorio. Vamos a crear un archivo todo el camino hacia abajo en el nivel tres. Entonces lo que puedo hacer es decir toque Y entonces lo que podría hacer es que podría decir nivel uno barra nivel dos barra nivel tres va a una carpeta aquí. Y, um Y entonces podría decir, Ah, otro expediente que Jess. Y lo suficientemente seguro, lo puso ahí para que en realidad puedas poner nombres de ruta completos y trabajar justo desde la terminal, lo cual es realmente genial. Entonces acabamos de hacer un archivo hasta el final. Tres niveles abajo y seguimos aquí en el directorio arriba. Ahora, digamos que quieres dedo del pie copiar un archivo. Está bien. Bueno, hay un mando para ese Cp. Está bien, como un cp Así que estás aquí. Tengo una copia, mi archivo dot Js y quiero una copia en nivel uno barra nivel dos nivel barra barra, tres barra y ahí está. Yo lo he copiado. Eso es realmente genial. Digamos que quiero renombrar algo. Fue una manera realmente rápida y fácil para que eso usara la envidia, envidia, mover algo. Pero también puede renombrar algo también. Por lo que vamos a querer cambiar el nombre de algo que sólo podemos decir. Mueve mi archivo dot Jess, y sólo lo moveremos aquí en el mismo directorio. Lo llamaremos igual. Lo llamaremos lo mismo. Lo siento. Lo llamaremos algo diferente en el mismo directorio, Así que lo llamaremos cambiado nombre dot Js Ya tengo ls bastante seguro, ahora ha cambiado nombre dot Js Muy cool it. Por supuesto, también
puedes moverlo. Podría decir cambio de movimiento. Nombrado en Jess en el nivel uno con slash. Ya se ha ido. Está bien. Y si voy aquí al nivel uno, ha cambiado de nombre. Entonces no hay nada que quiera mostrar que ibas a ver el nivel uno CD nivel dos. De acuerdo, CD nivel tres. Suena como jugar a Mario aquí. De acuerdo, digamos que quiero ir todo el camino de vuelta a mi directorio raíz. Bueno, todo lo que tengo que hacer es escribir en CD y presionar enter han sido pwd. A ver dónde estamos. Y bastante seguro, estamos de vuelta al nivel inicial de nuestro director aquí. Entonces, medida que pases por eso tu desarrollo, vas a estar usando estos comandos todo el tiempo. Estos son los que utilizas probablemente más que cualquier otra cosa. Además de algunos comandos git de los que hablaremos más adelante, Pero básicamente necesitas familiarizarte con moverte, crear carpetas y hacer cosas como esta en la terminal porque a medida que te conviertes en un más adepto desarrollador y si empezabas a hacer como trabajo de servidor donde llegaste a conseguir una base de datos en ella y un servidor en funcionamiento para que tu app de iPhone pueda hablar con el servidor. Todos los servidores están basados en su mayoría en Lennox, y vas a tener que no un login. Y no hay interfaz gráfica de usuario. Todo está hecho aquí mismo en la terminal. Eso es importante saber Y también sabes, no
puedes hacer cosas normales como estás acostumbrado. No puedes No puedes resaltar todas estas cosas y solo presiona retroceso y elimínalo. Ah, hay algunos
modales muy específicos hay algunos
modales muy específicosen los que funciona la terminal. Y así aquí te dejamos algunos del inicio básico que podría estar usando todos los días como desarrollador, y haremos algunos ejercicios al respecto también, y lo estaremos practicando a lo largo del curso, pero más o menos para nadie si puedes, ya que estás usando git y como estás trabajando con archivos, adelante y comienza a usar el terminal. Consigue práctica con él porque lo vas a necesitar para tu trabajo así como para el
desarrolloprofesional desarrollo
17. Control de versiones: Bienvenido de nuevo a otro emocionante día de recubrimiento Hoy vamos a hablar sobre el
control de Birgit . De acuerdo, así que realmente un poco dibujando hoy. Es una tienda de fotos. Amor Photoshopped. Herramienta fantástica. Muy bien, entonces control de versiones, ¿Qué es? Es posible que hayas oído o no hablar de algo llamado get G i t. O tal vez has oído hablar de algo llamado get Hub quizá flotando en algún lugar del mundo. OK, y luego hubo algunas otras cosas de las que pudo o no haber oído hablar, como Mur Curiel o SD N o Ah perforce. De acuerdo, estos son sistemas de control de versiones. ¿ De acuerdo? Y la idea detrás del control de versiones es que a gestione versiones de su código. Ahora, eso podría no significar nada para ti en este momento. Ese no es el color que queremos. Queremos que aparezcan blancos limpios. Muy bien, entonces nos vamos a sentar. Perfecto. De acuerdo, Entonces quiero hablar de manejo de versiones de código. Entonces hablemos de cómo podrían haber usado las cosas para pujar. Podría haber acostumbrado estar en los viejos tiempos de revestimiento a través de tal cosa. Entonces imagina que tenemos Ah, aquí
tenemos a Conehead Bob. ¿ De acuerdo? Revestimiento de Bob Tiene un gran proyecto. Disculpe? Hace muchos cambios en su asignación, en
su proyecto o en lo que sea en lo que esté trabajando. Esto es código, ¿de acuerdo? Es su abrigo. Bueno, es mucho para cambiar. Estas cosas iban muy bien. Jefes contentos, pero oh, no. Ahora, jefe dice que sabes qué? Tenemos que retomar el ritmo. Contratemos a otro desarrollador. De acuerdo, entonces el jefe contrata a Steve. De acuerdo, este es Steve y Steve necesita también empezar a trabajar en código. No, digamos que no tenemos un control de versiones en su lugar, ¿de acuerdo? Y digamos que Bob está trabajando en la página principal, pero Steve también está trabajando en la página principal. Entonces, ¿qué pasa si Bob hace cambios? A, B y C, y luego Steve hace sus propios cambios A, B y C. Ahora tenemos que poner esta vida en el servidor. Entonces digamos que este es el servidor. Tenemos que conseguir esto por aquí la vida. Pero el problema es Steve hizo los cambios que queremos, y Bob hizo los cambios que queremos. ¿ Cómo logramos que trabajen juntos? Entonces, en los antiguos tiempos, Bob podría haber tenido que enviar a Steve su archivo de código Y entonces lo que Steve
haría es copiar y pegar. De acuerdo, Copia y pega los cambios de Bob línea por línea e inyectarlos ahí dentro. Está bien. Ahora, después de que se haga la copia y el pegado, Steve podría haber enviado ese archivo de vuelta a Bob y Bob. Probablemente solo deshazte de su archivo de abrigo. Y tú Steve ahora, porque ahora están los dos arriba hoy y su fregadero. De acuerdo, Ahora no se necesita un científico de cohetes para averiguar y ver por qué este es un
proceso muy doloroso . Copiar y pegar manualmente líneas para hacer frente a algo se rompe. Oh, Dios
mío, qué dolor. Qué dolor manejar. Y por supuesto, en este punto, cuando todo esto está sincronizado, esto iría al servidor. De acuerdo, así que esto es lo que pudo haber pasado en el pasado, ¿de acuerdo? Y en realidad, muchos programadores nuevos, terminan haciendo cosas como esta, copiando abrigos novatadas,
haciendo copias de seguridad todos los días. Y hay una mejor manera. De acuerdo, hay una mejor manera. Pero primero, hablemos del otro. Hablemos del otro problema que tenemos aquí. ¿ De acuerdo? Entonces, aparte de gestionar diferentes cambios en el propio código. De acuerdo, hablemos de copias de seguridad. Entonces digamos que Bob hace un montón de cambios aquí. Boom, boom, boom, boom, boom, boom, boom. Digamos que se trata de 1000 líneas de código. Eso son muchas líneas de código. De acuerdo, 1000 líneas de código, y de repente lleva dos horas trabajando en ello y rompe su código. Está rota. Él lo rompe. De acuerdo, um, ahora tiene un problema. Bob no sabe dónde rompió su código y escribió tanto código y escribió algunas cosas realmente buenas. Pero en algún lugar ahí dentro rompió algo. Y no tiene hallazgo escribió 1000 líneas de código. ¿ Qué va a tener que hacer? Bueno, en los viejos tiempos, va a tener que pasar por cada línea de código hasta que encuentre el problema. Y eso podría ser 500 líneas de abrigo de código de vuelta adentro. ¿ Quién sabe? Podría llevarle un tiempo. Va a ser un lío muy doloroso. OK, no idea. Entonces aquí está el control de versiones al rescate en el control de versiones. Lo que haces son clips. Lo que haces es hacer cambios a tu código. Digamos que aquí tres cambios. Entonces en este punto, lo que haces, bien, es que cometes ese cambio. De acuerdo, almacenas en control de versiones. ¿ De acuerdo? Dices que en este momento, quiero tomar una instantánea de lo que mi código parece una instantánea. Entonces cada vez que obtienes una nueva característica, derecha, Seaver se compromete, te comprometes , te comprometes. Entonces ahora digamos que fueron brillantes aquí, trabajando en el cuarto,
comete, comete, ¿de acuerdo? Y luego rompemos algo, y absolutamente no lo podemos encontrar. Bueno, tal vez sea más fácil salir de esto por completo y volver a nuestro compromiso anterior. Entonces en lugar de pasar por todas las líneas de código que escribimos o perderlo todo, solo
retrocedemos unos pasos justo a este comité aquí mismo. En realidad podemos comprobarlo porque una instantánea de cigüeña de cada punto en la historia de su código, que es super cool porque significa que usted su ricotta segura. Tu código es seguro. Puedes regresar como necesites. Por lo que Bob está muy contento porque ahora puede ah, su abrigo y guardar versiones de la misma. Entonces de eso se trata el control de versiones. Se trata de hacer tu vida más fácil. Entonces, volviendo a nuestro otro ejemplo, donde teníamos a Bob y Steve. De acuerdo, digamos que tenemos Ahora tenemos a Bob y Jenny. ¿ De acuerdo? Ahí hay unas pestañas geniales, y ella está súper feliz. Está bien, es una súper freak. Está bien, ahí vamos. Entonces aquí está Jen. De acuerdo, ahora tenemos tenemos dos cosas. Aquí un código. OK, tenemos el código de Bob. Tenemos el código de Jen. Ahora, digamos que Bob hace cambios. A, B y C y Jen hace cambios. A, B y C. Bueno, esto es super cool. ¿ Qué control de versiones va a hacer por ti? Va a hacer esto por ti. Automática estaban antes donde lo hacían manualmente copiando y pegando cosas tu
control de versión y específicamente conseguir que vamos a estar usando exclusivamente en esta clase. Pero básicamente, lo que va a pasar es tu versión. Controla tu get quién es super inteligente. Vale, esto es tu Este es el cerebro k los cerebros de la operación que es un cerebro de algún tipo. Básicamente, va a seguir adelante y agarrar esto y se va a inyectar ahí para ti automáticamente. Se va a agarrar esto, inyectarlo ahí para que automáticamente inyecte para ti ahí automáticamente e inyecta para ti ahí automáticamente. De acuerdo, entonces se va a hacer todo ese pensamiento, y va a fusionar ese código para ti, y va a hacer tu vida mucho más fácil. Entonces, de repente, muchos programadores. De acuerdo, Muchos programadores. Este es Ah, este es Biker Steve. No es un tipo muy feliz. Por lo general así tiene una cara infeliz. De acuerdo, um, así que tiene su código, ¿sabes? Y luego por aquí, tenemos, ya
sabes, algunos que estás buscando, amigo. 02 abrigos a un costado y estos tíos codifican aquí. Entonces ahora estás obteniendo Es hablar con todas las diferentes fuentes de código todas las diferentes versiones. Y es inyectar cosas donde necesitan ser inyectadas y hacer tu vida mucho más fácil para que un equipo pueda trabajar en conjunto. Teoh empuja un proyecto. Por lo que el control de versiones es muy, muy poderoso. Lo vas a usar todos los días como desarrollador profesional. Y uno de los grandes errores que cometen los desarrolladores novatos es que no usan el control de versiones a su favor. Podrías abrir un nuevo proyecto Exco y dice crear un repositorio git. Eres como,
OK, OK, lo que sea. Y luego nunca lo vuelves a usar. Pero te diré lo que deberías estar cometiendo muy, muy a menudo cada vez que haces la característica más pequeña o cambias porque cuando más frecuentemente te cometes, más posibilidades tienes de guardar tu código de casos un problema, puedes volver solo una mejor buena práctica en todo el camino. Por lo que el control de versiones es súper importante, y lo vas a volver a utilizar a lo largo de toda tu carrera de desarrollo profesional. Entonces es importante que lo bajen ahora mismo.
18. Conceptos básicos de Git: Bienvenidos de nuevo, todos. Y hoy vamos a hablar de get. Ya hablamos del control de versiones, de los principios detrás de él. Pero ahora en realidad vamos a hablar de cómo usarlo, y lo vas a ver en acción. Así que adelante y abre tu terminal. Voy a presionar el espacio de mando. ¿ De acuerdo? Tipo en terminal. Y ahí está. De acuerdo, ahora mi terminal se ve un poco diferente. Dos años, tengo un montón de cosas personalizadas en él, y así que no te preocupes por las diferencias. Los comandos serán los mismos. Está bien. Y así tengo mi terminal abierta aquí. De hecho, sólo
voy a seguir adelante y moverlo por aquí. Y entonces lo que vamos a hacer es abrir nuestro buscador por aquí, y lo vamos a poner en el escritorio. Entonces usando tu terminal, adelante y navega a tu escritorio Si quieres ver dónde estás, solo revisando pwd. Conocí mi nivel raíz, así que sé que necesito ver el en el escritorio. De acuerdo, así que ahora estoy en el escritorio pwd Guess Stop. Muy bien. Ahora quiero hacer un archivo y una carpeta de carpetas primero hacer directorio y K D N r Hagamos un poco más grande ahí, hacer directorio. Y vamos a llamar a esto get dash Fund, porque conseguirlo es muy divertido. Y vamos a ver el dentro de eso. Por cierto, si no recuerdas la razón por la que es auto poblando lo que estoy escribiendo es porque impresionando a Tabas empiezo a escribir y se siente el resto por mí. Está bien, ahora y diviértete. No hay nada aquí ahora mismo si yo a menos que esté vacío. Entonces sigamos adelante y hagamos un es qué archivo. Entonces es un toque dirá get fun dot swift. Está bien. Y miro mi directorio Por aquí. Ahí está. Un fondo de regalo punto swift. Fantástico. De acuerdo, entonces tenemos un archivo ahí dentro ahora. En este momento, no
estamos manejando nada con control de versiones. De acuerdo, esto es sólo un archivo, y solo está sentado aquí haciendo lo suyo. Entonces si escribo en la línea de comando, ponte bien. McCurdy sabe lo que consigue ISS tiene un montón de comandos aquí. Es como, Oh, ¿qué quieres hacer? Anuncio Bisek Sucursal revisó colonia, etcétera, etcétera, etcétera. Entonces lo sabe. Disculpe. Él sabe exactamente lo que estamos tratando de hacer, um, cuando escribimos y conseguimos porque Mac es genial y viene pre instalado con él. Entonces voy a mandar a K que lo limpie. Entonces no tengo todas estas cosas en la pantalla. Y así para primero usar get, tenemos que estar en un repositorio git o get directory. Y si escribo en get status, que es un comando get, ver el estado actual de get Taito no obtener repositorio o alguno de los directorios principales. De acuerdo, entonces esto no es un get no vamos a conseguir repositorio esto. Obtener carpeta divertida. No es conseguir repositorio. Y así tenemos que convertirlo en un repositorio get. Y así lo haces escribiendo git en él. De acuerdo, eso va a hacer que este get repositorio y asegúrate de que cuando escribas get y estés en la carpeta, vale, que estés en la carpeta en la que quieres hacerlo. Eso es muy importante. Simplemente puedes hacerlo para cualquier lugar que necesites estar en esa carpeta que estás inicializando a medida obtienes el repositorio. Entonces no nada. Lo que estamos viendo es cualquier cosa dentro de esta carpeta que queremos rastrear con control de versiones. Queremos rastrear con git. Entonces ahora si sí consigo estado, Mira esos archivos sin seguimiento. De acuerdo, entonces antes de que hayas agregado archivos, bien, antes de haberlos agregado a tu control de natalidad sus desrastreados. Entonces lo que está diciendo es que tienes algunos archivos en esta carpeta que el control de la natalidad no está manejando en este momento. ¿ Quieres manejarlos? ¿ Quieres dejarlo aquí? No estamos haciendo nada con él, así que solo te avisamos que no está rastreado. Bueno, queremos rastrearlo, por
supuesto, porque queremos comprobar los cambios de versión en él. Entonces lo que haces para hacer algo tracto es decir, conseguir agregar en el nombre del archivo. De acuerdo, consigue añadir el nombre del archivo. Por lo que presiono enter. Se acaba de agregar. Esto presentó un control de versiones. Entonces si sí consigo estatus, mira eso. Dice cambios a comprometerse. Está bien. Y hay nuevos archivos y verde. Antes no estaba bien, y ahora está en verde. Entonces cuando tienes nuevos archivos, primero
tienes a Adam para que sean rastreados. Y luego una vez ahí, una vez que están siendo rastreados, puedes comprometerte ahora, cuando te comprometas. ¿ De acuerdo? Lo que estás diciendo es que quiero cometer un cambio. Y así es el único cambio que hemos hecho hasta donde hemos agregado un nuevo archivo para que podamos seguir adelante y hacer eso. Ahora consigue comprometerte, Dash M. Vale, consigue comprometerte, Dash M significa que te vas a comprometer. Y vas a añadir un mensaje. Tú y luego pones entre comillas. ¿ De acuerdo? El mensaje que quieres poner con este commit. Entonces voy a decir, agregó, nuestro primer expediente. ¿ Se te puede comprometer? Dash M agregó nuestro primer expediente antes que un archivo cambió cero relaciones de insurgencia. No cambiamos ningún código en él. No borramos ningún código. Y todo lo que hicimos fue añadimos un archivo. Por lo que voy a conseguir estatus ahora. Nada que comprometer. El directorio de trabajo está limpio. De acuerdo, entonces no tengo nada que comprometer. Este archivo ha sido agregado. No se le hacen cambios. Es bueno ir. Ahora empecemos a ver la belleza de get Okay. Entonces si escribo, consigue log. Está bien. Voy a ver que aquí tengo un commit, y tiene el mensaje de que acabamos de entrar. Eso es genial. Entonces voy a presionar, uh, control, presionar algo. Dios mío, esa es una linda Q Q te va a sacar de esa pantalla si te atrapan en su prensa. Q Bondad. Muy bien, Entonces, um, ahora
vimos que nuestro comité no es sabe. Hagámoslo otra vez. Obtener registro. Está bien, son comprometer está ahí mismo. Está demostrando que tiene un número especial en él. Y ahí está otra vez. Está bien. Presionar lindo. Escapó. Muy bien, entonces ahora lo que vamos a dio es tener obtener estatus. Y de nuevo, no
hay nada. Nada es diferente. Nada ha cambiado. De acuerdo, voy a mandar a K que despeje esto, así que voy a entrar en mi expediente ahora. ¿ Verdad? Haga clic en él y abra con X código Beta app. Siete. Está bien. Y este es un archivo rápido, ¿verdad? Entonces lo que voy a hacer es que voy a hacer una variable llamada bar. Mi primer cambio es igual a este es un cambiado. Voy a crear una variable de tipo string y solo ponerle un valor, y lo voy a guardar. De acuerdo, Ahora, aquí hay algo realmente genial. Si escribo y obtengo estatus, mira eso. Se detectó automáticamente. Detectó ese co cambio. Dice que ha sido modificado. Por lo que necesitamos tomar una decisión. ¿ Queremos agregar esto a I'm are commit. Por supuesto que lo hacemos Es ahora mismo donde no nos hemos comprometido. No hemos dicho que quiero quedarme con este cambio. Es todo lo que decir es, Hey, cambias esto. Ok, s Entonces lo que voy a hacer es lo mismo es antes de llegar. Entonces a pesar de que antes se desrastreaba y agregamos el archivo get ad también va a agregar modificaciones. Está bien. Y borrado. Entonces y puedes usar exactamente este mismo comando. Get add, get fun dot Swift. De acuerdo, así que cuando vuelvas a tener cambios, consigue anuncio así que escribo y obtengo estado. Está bien. Cambios a comprometerse. Por lo que se ha agregado, y ahora quiere que lo cometamos de nuevo. Si bien eso es super cool, así que podríamos hacer lo mismo. De acuerdo, consigue commit Dash m por el mensaje, y podemos decir que agregó una variable. Y si sí obtengo el estado y noto cómo se agrega esto una variable en mi mensaje Un archivo cambió una inserción. Sólo cambié una línea de código. Esa es la inserción. No tengo estatus. Nada que comprometer. De acuerdo, así que lo hemos comprometido y ahora estamos trabajando directorios limpios de nuevo. Entonces lo hemos rastreado y lo hemos metido en un commit. Ahora, si voy a buscar log, vas a ver dos commits Muy cool. El más reciente en la cima. Aquí está nuestro primer compromiso. Aquí está nuestro segundo commit procesa para escapar de esta pantalla. Está bien, muy bien. Hagamos 1/3 de cambio por un segundo cambio. De acuerdo, segundo cambio iniciado comprometido son mi segundo cambio igual a 1.568123 Solo por diversión. De acuerdo, obtener el estatus. Cierto, ya se ha modificado de nuevo. Súper cool. Entonces hagámoslo de manera diferente esta vez lo vamos a agregar de nuevo. Pero esta vez, vamos a conseguir add dot Bueno, eso va a hacer es cualquier director en el que estés Todos los archivos han sido cambiados en ese directorio que quieres agregar. Se les va a sumar a todos. Entonces eso es sólo taquigrafía para agregar en todo lo que se ha cambiado en este
directorio actual . Así que consigue add dot get status. Se ha agregado, pero ahora hay que comprometerse. Entonces vamos a repetir ese proceso otra vez. Entonces consigue comprometerse. Dash M, esta es mi segunda variable. De acuerdo, Un archivo cambio tres aserción. Una deleciones, si voy a conseguir estatus, estaban limpias. Eso es genial si voy a buscar log, vale, hay tres commits ahí ahora, Justo lo que esperaría. Está bien, se ve genial. Oh, no. De repente nos dimos cuenta de que no necesitamos ese cambio. Digamos que nos rompimos. Vamos a ver realmente lo que este Este código no es lo que queríamos dio, y no sólo queríamos eliminarlo. Queremos simplemente volver a nuestro compromiso previo de que sabemos que es seguro que sabemos que está haciendo lo que queremos hacer. Entonces escribiendo, get log, ves tus commits. Entonces digamos que no queremos a este tipo aquí como hicimos estos cambios y no
contentos con ello. Y no quiero un hombre y luego volver y borrado. Yo sólo quiero volver al estado antes de que fuera porque me gusta mucho Eso es lo podías hacer al ir a este número de commit aquí y copiar el 1er 7 caracteres. 1234567 De acuerdo, copia esos 1er 7 caracteres con los que puedes hacer click derecho e ir a copiar o simplemente puedes presionar política de
comandos para copiar esos 1er 7 caracteres del commit con el que quieres trabajar. Está bien, procesa. Escapar. Esto lo que realmente puedo hacer ahora, como podría decir, salir a ver, está bien. Y pon esto justo aquí. Y cuando haga esto, quiero que veas la pantalla del entrenador en el lado derecho. ¿ De acuerdo? Obtener el check out. Vamos a revisar una anterior mirada de compromiso a eso. Si notaste el cambio que hicimos en el tercer commit desapareció. ¿ Por qué? Porque hemos comprobado un commit previo y otra vez, esa es una de las bellezas del control de versiones con get, Sobre todo porque puedes echar un vistazo a los commits anteriores y salvarte en caso de que hayas cometido errores. Entonces esto es bastante guay. Estamos haciendo algunos buenos avances. Estás aprendiendo los conceptos básicos de get para que siempre agregues archivos primero usando get ad, y luego cometes archivos para hacer tus commits, y debes comprometerte tan a menudo como completes funciones. Y tantas veces como no puedas cometer cosas rotas en tu base de código. Pero siempre que tengas algo que esté terminado y funcionando, adelante y comete porque quieres mantenerte a salvo. Cuanto más compromiso tengas, menos código vas a perder. El caso. Tienes un gran problema o error. Comprometerse temprano y comprometerse a menudo es mundo es la frase que escucharás en el
mundo del desarrollo muy a menudo. Entonces somos cosa de lo que quiero hablar aquí. Sus ramas. OK, entonces vamos, um Volvamos a maestro. ¿ De acuerdo? Nuestro código va a volver aquí. ¿ Te gusta? ¿ Qué es eso? ¿ Qué acaba de conseguir? Check out? De acuerdo, entonces si escribo en claro este año, estoy escribiendo claro esta vez por tipo y obtengo sucursal. Me va a decir que estoy en una sucursal específica, ¿de acuerdo? Y cómo funciona esto es cuando estás escribiendo código, lo
estás poniendo en un cubo que estás obteniendo Le estás dando un nombre. Estás diciendo todos mis cambios. Yo quiero estar en este cubo. De acuerdo, así que ahora mismo estamos en amo, que es solo el nombre de nuestra sucursal que lo sostiene todo. De acuerdo, digamos aunque que tengo un nuevo futuro que quiero que los jefes me pidieron crear, y el futuro es crear un crear una función. Está bien. Sí, tampoco
hemos hablado de
eso . Genial. Función que se suma a los números. De acuerdo, Entonces no pongo esto en la rama maestra. Yo quiero romperlo porque la rama maestra tiene todo el código que es seguro. Y está bien. Y lo que quiero hacer es romper esto en su propia rama para poder probarlo y jugar con ella. De acuerdo, entonces lo que voy a hacer es que voy a decir que salgan,
Dash, Dash, que se ponga bien. Cuando sí consigues check out dash beat, estás diciendo que quiero crear una nueva sucursal. ¿ Todo bien? Y vas a dar nombre en este. Voy a llamarlo función agregando. Está bien. Cambie a una nueva rama llamada adición de funciones escribiendo get branch. Lo deletreé mal. Está a una edad a ella. Por cierto, si presionas hacia arriba el teclado, pondrá en el último comando que escribiste en la terminal, lo cual es útil. Obtener sucursales. Ahora tenemos dos ramas,
derecha, derecha, agregando función, que acabo de crear y dominar. Entonces ahora cualquier cambio que haga se va a agregar a esta rama de función agregando, por ejemplo, voy aquí a mi código. Ahora estás como, Bueno, nada ha cambiado por ahí en el abrigo. Bueno, eso es cierto. Lo hemos hecho es que le hemos quitado todo el código existente al maestro. Lo hemos roto en una nueva sucursal. Ahora, en realidad
puedo decir, um, Funk, eso es taquigrafía para la función Cubrirá esto más adelante en litera. Agrega dos números y va a tomar un, uh vamos a llamar a este num a de tipo int número e de tipo int. Está bien. Y, uh, vamos a tener este regreso a nosotros y y y todo lo que vamos a decir dio, devolver el número A más num B. Vale, voy a guardar eso. Por lo que acabo de crear una función que toma en números y los agrega y devuelve el resultado. De acuerdo, no te preocupes por esto En impuestos, solo te
estamos dando un dentro a lo que viene por delante. Pero tenemos una función aquí ahora está teniendo status get en la terminal. Y bastante seguro, los cambios ahí, hagamos otra forma de agregar archivos. Obtener add dash capital A. Ahora ¿qué va a hacer esto? ¿ Esto va a agregar todos los archivos cambiados en este directorio actual así como todas las carpetas
así como todos los archivos cambiados en sub carpetas, todo y todos los directorios todo el camino hacia abajo que se ha cambiado. Se los va a agregar todos a la vez, y esto es muy, muy útil. Pero ten cuidado. Si hay archivos que no quieres agregar, esto los va a agregar todos. Así que ten mucho cuidado para conseguir Ad Dash Capital A. Me refiero a obtener el estatus, y está listo para ser comprometido. Entonces vamos a conseguir commit Dash M y digamos agregado y agregando función agregada en una implosión. Un archivo cambió cinco inserciones. Una eliminación Obtener estado. Ya estamos bien para irnos. Estás como, Ok, y eso es genial. Pero, ¿qué está pasando realmente? Echemos un vistazo de nuevo a nuestras sucursales aquí. Recuerda, tenemos dos sucursales ahora Digamos que queremos volver atrás y echar un vistazo a la
rama maestra . Queremos ir a ver cómo solía verse nuestro código. De acuerdo, así es como vas a ver la diferencia entre las sucursales y cómo gestionan sus propias versiones de código. De acuerdo, entonces, escribiendo, echa un
vistazo. No el dash B esta vez, porque no estamos haciendo la nueva sucursal. Sólo estaban revisando un rancho existente, obtén el check out Maestro, Mira lo que pasa en el lado derecho en la pantalla del entrenador. Bam! Se ha ido. Bueno, la razón es que se nos cambiaron también. Nuestra rama maestra, que tiene una versión diferente, uh, controla su código de gestión de manera diferente y todos nuestros cambios en esa rama, y así eso es realmente genial. Por lo que ahora estamos empezando a ver un poco en la ventaja de las ramas. Podrías empezar a construir cosas nuevas fuera como, digamos que dije,ya
sabes, ya
sabes, yo tenía en otra sucursal Obtener echa un vistazo a Dash B. Llamemos a esto, uh, función de
restar. Está bien, así que tengo una nueva rama llamada Restar Función y ah, y así estoy como, OK, hunk, restar. Y solo voy a poner en tu entumecido un tipo int y ser de tipo final. Y queríamos regresar, ya
sabes, y dentro de nosotros. Está bien. Y entonces podríamos simplemente decir devolver un menos entumecido, mantenerse. No, eso es genial. Vamos a seguir adelante y, ya
sabes, obtener estatus y, uh, obtener add dash capital, un get commit dash m creado, función de
restar. De acuerdo, así que consigue el estatus. Siempre obtienes estado para asegurarte siempre de que no tenías un aire de sintaxis, algo que tus archivos están haciendo con la necesidad de que los directorios de trabajo sean limpios, que es lo que queremos ver. Ahora, digamos, um, construimos esta característica y los jefes como yo no necesito ninguna función de restar apestosa. Sólo agregamos en nuestra empresa. Entonces eres como, OK, bueno, ya no
necesito esta sucursal. Para que pudiera conseguir el check out para conseguir el check out, maestro. De acuerdo, entonces si sí consigo sucursales, no tres sucursales, K. Así que estoy como, OK, bueno, ya no
necesitamos esta función de atracción. Bueno, la buena noticia es
que, ya que la pusimos en su propia sucursal Ya no tendría que preocuparme por ello. Ni siquiera está en amo. No teníamos que volver atrás y cambiar el código y arreglar cosas que,
um, um, que los Boston quieren, así que sólo puedo conseguir sucursal. Um, Dasha. Sí, D Está bien. Consigue prueba de sucursal que elimines, y vamos a decir función de restar, función seguimiento de rama
eliminada, obtener estado. Nada que comprometer. Director de trabajo. Limpia, buena, buena rama. Y se ha ido tan genial que rompes suficientes características y te deshaces de, um lo mantiene muy modulo levantado. Es así como deberías estar trabajando en tus entornos de programación. Cuando empieces a hacer un montón de nuevas características y cambios, intenta ponerlos en diferentes ramas. Por lo que mantienes tu sucursal maestra limpia y segura. De acuerdo, así que ahora, sin embargo, tenemos una rama maestra que no tiene una función de adición. Y el jefe dice que es hora de hacer la función de adición. Ve la vida a la APP store K que necesitábamos Hacer este cambio la herrería Absar. Entonces si consigo checar agregando aviso de función, está por ahí en el lado derecho. Genial. Todavía está ahí. Eso es todo lo que quiero demostrar que sigue ahí. Volvamos ahora, en realidad, dos Maestro cuando queremos traer cambios a una rama. ¿ De acuerdo? Y esto es algo así como nuestro ejemplo anterior con nuestros personajes. Ya sabes, Bob o está trabajando con sus compañeros, y necesitan a Teoh. No quieren una copia. Pegar las cosas manualmente, ¿verdad? Quieren que suceda automáticamente. Bueno, aquí es donde está pasando esto. Lo que vamos a hacer es que vamos a tomar los cambios. ¿ De acuerdo? Toma los cambios de la función de adición Branch K. Tomaremos estos cambios y los vamos a fusionar en master. De acuerdo, es todo lo que vamos a hacer es esto. Obtener función de adición de fusión. Está bien, Y mira eso. Acaba de traer nuestros cambios de agregar función automáticamente a nuestra base de código. Aquí, aquí está la belleza de get y control de versiones dead este primero automáticamente si notas aquí un archivo cambiar cinco inserción. Por lo que tomó el código de agregar función y lo insertó en master. Entonces si voy a conseguir estatus, Nada que comprometer director de trabajo limpio. Estamos bien para irnos. Simplemente trajo esos cambios en. Entonces tengo que conseguir sucursal ahora. Yo puedo deshacerme de esa rama. Obtener Branch Dashti por eliminar la función de adición. Está bien, y seguro que ya están los cambios aquí mismo. De acuerdo, entonces te estás dando cuenta de todos tus proyectos. A partir de ahora, vas a crear get repositorio para ello y vas a seguir adelante y agregar y comprometerte a menudo
como puedas. Y hay una forma más que quería mostrarte. ¿ Cómo trabajó específicamente con git y código Ex? Entonces si vamos a excavar tus Michels fuera de este archivo ahora mismo, cierra esto. ¿ De acuerdo? Si hago clic en código X y hago clic en Nuevo México Project. Solo sigamos adelante y pinchemos. Aplicación de una sola vista. Eso está bien. Doy click siguiente nombre del producto. Solo llamemos a esto get test. Está bien, eso está bien. Pon esto en el escritorio dentro de get fun. De acuerdo, en realidad, ponlo en alguna parte. Pongámoslo en algún lugar nuevo donde no haya get repositorio. Por lo tanto, vamos a hacer clic en escritorio nueva carpeta. Llamemos a esto otro get test. De acuerdo, la creación rápida. Bueno, aquí está Aquí está la llave. De acuerdo, aquí mismo en la pantalla. Ver? Cómo dice control de fuente, Crear repositorio git Exco para reemplazar tu proyecto bajo control de versiones. Esto lo va a hacer gratis Automático. Entonces se va a saltear el paso donde tienes que hacer meterte en él, y lo va a hacer por ti automáticamente en tu proyecto de código ex. OK? Y si hago clic en crear Ok, hago clic en crear suavizar esto por aquí. Vamos a navegar Así seedy espacio punto punto Subiremos al directorio porque sabemos que necesitamos
salir de divertirnos. Es queremos un CD en otro get test. Eso es lo que acabamos de crear por l s. ahí está mi proyecto de código ex. De acuerdo, así que veamos el dentro de eso. Aquí es donde un proyecto está bien. Ahora, si sí consigo estatus, mira eso. Ya está inicializado. Esto es Hey, tenemos cambios. Creaste un nuevo proyecto. Oh, genial. Vamos a ponernos en dash A get status para asegurarnos de que todos estén agregados Ahora están verdes. Fueron leídos antes de conseguir commit Dash M creó nuevo proyecto de código X y atraen eso. ¿ Qué tan guay es eso? ¿ Cómo? Súper cool. Ahora, aquí hay algo que realmente es genial también. Si voy a mi código por aquí, digamos que hago un cambio. Solo hagamos un comentario aquí haciendo un cambio y lo guardo. De acuerdo, Si voy a conseguir estatus Ahí está. Ver controlador dot Swift Lo encontró. ¿ Qué tan genial es eso ahora? También. De acuerdo, Un día puedes Dio está en realidad en el propio código X. Ve ahí mismo la M. ¿ Qué crees que significa? Está bien, significa modificado. Incluso lo dice justo ahí tiene un pop up así que en realidad puedes hacerlo en lugar de incluso hacerlo bien en tu en tu terminal para que pudiera conseguir status y es rojo. Tiene que estar de acuerdo en que tenemos que agregarla primero, correcto para que en realidad pueda ir por aquí, ¿
verdad? Haga clic en él, vaya al control de fuentes y en realidad puedo comprometerme. Es lo que va a hacer, es, en realidad, um, en realidad va a agregarlo primero, y luego va a comprometerlo por nosotros aquí. Entonces lo estoy comprometiendo y contesta tu mensaje de compromiso. Digamos que hizo un comentario, que es lo que sí cometimos un archivo y simplemente lo hizo primero automáticamente snuff. Voy a conseguir estatus. Mira eso. No. Está bien. Um, usted está aquí. Obtener el estado. Haz limpieza aquí. Pasan demasiadas cosas. De acuerdo, así que agregó ese expediente. Te diste cuenta de cómo eso cambió ese archivo específico de tu control sobre Swift. Es que se ha cambiado. No agregamos este archivo aquí, claro, pero si escribo, consigue log. Mira eso. Hizo un comentario para que en realidad puedas hacerlo directamente desde el código X
también, también, si quieres. Um, todos los entornos integrados d. E s tienen características geniales como esa, pero Exco lo hace muy cool. Hemos hecho lo que hemos hecho es conseguir commits,
conseguir agregando trabajamos con las sucursales git, asegurarnos de que siempre recuerden, siempre haces un cambio y luego agregas y luego te comprometes. De acuerdo, cambia, agrega, comete cambio, agrega, commit, y luego puedes fusionar bright. Podrías fusionar ramas en otras ramas, y este es el control de versiones. Estos aire, los fundamentos del control de versiones 90% de lo que estás haciendo con control get y version
va a ser lo que acabamos de hacer aquí. Hay cosas más complejas en las que te metes, pero el 90% del trabajo que vas a estar haciendo son estas cosas de la vacuna que hicimos en este momento. Entonces eso es bastante guay. Tienes una verdadera buena visión general de ello ahora y bienvenido al control de versiones mundial y get y ser un codificador profesional.
19. Trabajar con Github: Oigan, a todos. Por lo que hemos hablado de Get ya y control de versiones. Ahora vamos a hablar de get hub ahora. Gave Hub no es igual para conseguir. De acuerdo, lo que consigue Hub es un sitio web. Es un servicio. Alguien ha creado. Está bien, ve ahí. Ahora consigue hub dot com Es un servicio que alguien ha creado para realmente almacenar repositorios. De acuerdo, así que los almacena para ti. Y así, básicamente, toda
tu organización, si tienes múltiples miembros del equipo, todos
ustedes pueden publicar tu código a tus cuentas de dar y compartir y descargar código y publicar cambios hacia arriba. Y así es como obtienes tu código hablando con el código de otros miembros del equipo. También es un gran lugar para que guardes tus proyectos. Por lo que los empleadores potenciales y las personas que quieren mirar tu abrigo y mirarlos. Entonces tenemos un hub dot com. Se trata de un servicio. De acuerdo, los usos se ponen detrás de bambalinas. También hay otro servicio del que quiero hablar llamado bit bucket dot o coque un poco. Bucket es un servicio que compite, está bien. Y, ah, hace exactamente lo mismo es conseguir ayuda. Servicio apenas diferente. servicio fantástico en realidad es a la vez y una cosa a tener en cuenta está encendida. Ponte de pie. Si quieres usarlo de forma gratuita, todos tus repositorios tienen que ser públicos. Significa que cualquiera puede mirar tu abrigo. Entonces si tienes código patentado, estás construyendo una app que conoces a alguien para ver. Tienes que hacer una cuenta de get help pagada. ¿ De acuerdo? Para que puedas tener repositorios privados en el libro. Es la misma idea. Excepto lo genial del cubo de bits es que te da cinco repositorios privados gratuitos. Entonces si quieres usarlo de forma gratuita con un proyecto patentado, no lo
hacen. Cualquier otra persona que vea un cubo grande podría ser el camino a seguir, porque te permite hacer cinco repositorios privados antes de que tengas que empezar a pagar cosas
tan geniales que vamos a hablar de Get hub hoy. No me voy a preocupar por esto ahora mismo, así que vamos a ir a levantarnos y, ah, si voy a cerrar sesión. Aquí s para que puedan ver lo que veo aquí. Básicamente, vas a tener dot com, y te va a pedir que firmes a Anderson o te apuntes para seguir adelante y apuntarte aquí. Ponga un nombre de usuario, contraseña, correo electrónico y contraseña. Está bien. Y seguro que te van a enviar algún tipo de correo electrónico de verificación. Vas a querer entrar en tu correo electrónico y verificarlo. Entonces solo voy a iniciar sesión desde que me separé Creé una cuenta. De acuerdo, así que fueron súper fáciles. Súper cool. Um, ahora sólo vamos a bucear justo aquí y justo aquí en el lado derecho. Los años pueden ser diferentes dependiendo de cómo se disparen tus sistemas, pero estás buscando un botón llamado Nuevo Repositorio. Está bien, voy a darle un clic, y le voy a dar un nombre. Ahora, como ya hicimos un proyecto, OK, hicimos el super cool AP. Está bien. Muy tener un proyecto. Eso es lo que vamos a subir aquí. Y vas a querer hacer lo mismo con tu proyecto en el siguiente ejercicio, así que mira cómo lo hago. Ahora, sin embargo, es un nombre de repositorio, así que va a ser impuesto gastado. Asumo mi cuenta para ello. Slash y luego como quiera llamarlo. Entonces voy a llamar a este curso IOS super cool AP montones de guión. Eso está bien. El cheque significa que es bueno ir descripción. Esta es la primera app que construimos en el curso del IOS. De acuerdo, Soldado. Ah, está bien. Que quiere mi dinero. 7 dólares al mes. Está bien. Si quiero un privado, lo vamos a hacer público. Entonces es agradable y gratis inicializado este repositorio con un archivo de leerme? Seguro. ¿ Por qué no? Sé divertido. Está bien. Y punto hacerse ignorar. Por lo que ignora es un archivo en tu repositorio git en tu sistema local que básicamente dice, ¿qué archivos? No quiere poner en control de versiones. No vamos a hablar de eso en cualquier momento. Si alguna vez quieres cosas que no quieres patrullar Adam Version, puedes agregarlo al archivo dot get ignore, y se ignorará esos archivos y no lo empujará hasta tu positivo. Entonces si hago clic, crear repositorio donde y bam Ahí lo iss. Tenemos un nuevo repositorio sentado ahí, pero no hay código en él en este momento. ¿ De acuerdo? Es sólo estar aquí sentado sin hacer nada. Entonces lo que queremos dio es empujar hacia arriba nuestro abrigo existente a través de este repositorio aquí, así que hay algunas cosas que necesitamos hacer Primero, tu computadora tiene capacidad para generar una clave ssh. Es básicamente ssh es una forma de iniciar sesión remotamente en las cosas, empujar las cosas hacia arriba. Y de todos modos, tienes una clave que generas desde tu computadora que te identifica con levántate o si estás iniciando sesión en un servidor, etcétera. Entonces necesitamos configurar eso, en realidad. Entonces voy a ir a Google a buscarlo. Consigue Hub. Ssh! Clave. Iba a buscarlo. Y bastante seguro, plantea una ayuda abierta. Obtener. Ten un punto com en este artículo aquí. Y esto es en realidad lo que estamos buscando. Este top uno justo aquí. De acuerdo, Ahora te va a dar unos pasos. Ahí están las ventanas de Mac. Linux es todo. Obviamente vamos a usar los pasos de Mac aquí, ¿de acuerdo? Y sólo vamos a pasar por esto juntos. Así que paso uno comprueba las claves ssh cuando mi computadora tiene una. Si eres nuevo, probablemente no tengas uno. Asumamos que no tienes uno, OK, Entonces qué, vas a dio vas a pasar por estos ejemplos aquí? Está bien. Y en tu terminal, sigues estos pasos aquí. Está bien. Está bien. Y así quiero decir Ssh Key. Jen Dashti Arce. Dash B 4096 necesitas entender algo de esto, necesitas hacer lo que dice realmente ni siquiera le pongo atención. Bueno, estos detalles significan que así es como lo configuraste, y podrías poner tu correo electrónico aquí, así que me pusieron, uh, el
mío aquí ahora mismo. Entonces, uh, y, ah, va a generar un nuevo ssh. Usando el correo electrónico proporcionado como etiqueta generando barra pública par de claves RSC privadas. Está bien. ¿ Y ella qué archivos? Para guardar la llave. Ahora, solo
debes presionar. Simplemente debes presionar enter. ¿ De acuerdo? Yo no voy a hacer eso porque ya tengo una llave nexo h. Y no quiero hacer otra. Entonces solo voy a presionar esto, y puedes poner tu frase de pase. Normalmente uso la frase de pase de computadora que tienes para tu computadora. ¿ De acuerdo? No va a mostrar ningún personaje a medida que lo entres, es y lo vuelves a pedir. Está bien. Disculpe. Um, entonces el mío no lo dijo, pero está bien, porque yo no quería ponerlo en ningún lado, porque ya tengo uno. Entonces en tu caso, solo
debes presionar enter debió haber funcionado bien. ¿ De acuerdo? Y luego verás algo como esto aquí. De acuerdo, que tiene algunos detalles ahí. Entonces el siguiente arriba es justo aquí. Por lo que solo puedes copiar a pasos. OK, ven a verte a copiar. Pase el ritmo justo aquí. Y ya sabes, tengo uno teniendo un agente ssh corriendo en segundo plano, ¿de acuerdo? Y entonces vas a ejecutar este comando. Ya he hecho esto. ¿ De acuerdo? Vas a ejecutar este comando, y va a agregar tu clave a eso. Ssh. Agente, hasta este punto, aún no deberías tener ningún problema. Esto es para ser muy sencillo,
Por cierto, Por cierto, en Lenox y Windows, hay más pasos en esto, y puedes tropezar con más problemas. Pero por suerte, somos un Mac, que hace muchas cosas por nosotros muy bien. Está bien. Disculpe. Entonces lo siguiente aquí es simplemente copiar esa clave. De acuerdo, entonces deberías tener Aquino. Está bien. Ah, Y si tienes algún problema aquí, ve a la página web, ve a los formularios puedes conseguir ayuda su publicación tu problema específico, o puedes google problema específico. Esto es que hay muchos problemas comunes asociados con las claves ssh. Y estoy seguro de que sé que hay muchas, muchas respuestas por ahí para cada tipo de problema. Así que adelante y copia este comando aquí mismo. Y lo que va a hacer es que va a copiar tu llave. Se lo va a copiar en tu portapapeles. ¿ De acuerdo? Y así siempre que lo pegues, se va. Sea lo que sea que hagas clic Pegar va a ritmo esta clave aquí. Entonces ahora todo lo que necesitas para dio volvamos a buscar ayuda, volvamos a tu cuenta, ¿de acuerdo? Y vas a ir a la configuración. Entonces haz clic en este ícono, aparece arriba, ¿verdad? Vas a ir a ajustes. Y si no está aquí, solo ve a averiguar dónde están los ajustes para tu perfil, ¿de acuerdo? Ajustes. Y luego vas a ir a ssh keys. Está bien. Y lo que vas a hacer es que lo vas a agregar. Vas a poner un nombre y aquí mismo Siria para decir la clave ssh de mi computadora. Y lo que vas a dio es que lo vas a pegar aquí. Ahora bien, esta es una clave segura. No se quiere mostrar a nadie, razón por la
cual la nuestra está bloqueada aquí. Pero básicamente solo voy a pasar el ritmo donde quiera que ponga en tu portapapeles. y luego necesitas hacer clic en Agregar una clave, y eso es todo. Y la razón por la que necesitabas hacer eso es para que puedas empujar hasta tu repositorio. Podrías empujar código hasta tu repositorio. De acuerdo, entonces voy a volver aquí ahora, ¿de acuerdo? Y hemos creado nuestro repositorio. Está justo aquí. Super cool ap. Voy a hacer clic en él. Todo está aquí justo donde tiene que estar. De acuerdo, ahora, en tu terminal, por aquí, el
lado izquierdo. Adelante y navega para llevar tu proyecto. ISS. Entonces en nuestro caso, está en el escritorio. Súper cool. Tener un CD, Intuit CD. Súper cool. Está bien. Y muy agradable. Entonces está todo bien ahí ahora. Nunca hemos inicializado esto a un repositorio get todavía, así que deberíamos hacer eso como lo hemos hecho antes. Entérate ahora mismo. Se inicializa. Yo sí obtengo estatus. Hay muchos cambios. Yo sólo voy a conseguir en Dash Capital ocho, adultos estos y luego volver a obtener estatus. ¿ De acuerdo? Están todos verdes. Eso es bueno. Significa incluso añadido, Comprometámoslo. Obtener comprometerse. Dash M Agregado archivos para super cool. Muy bien, entonces acabamos de agregar archivos. Ahora sólo hay una cosa que tenemos que hacer. Tenemos que decirle a nuestro repositorio local git, este repositorio local aquí y nuestra carpeta en nuestro equipo. Tenemos que conseguirlo hablando con el uno y conseguir tener punto com Necesitan hablar unos con otros. OK, entonces lo que vamos a Dio es por aquí en el lado derecho, vas a ver algo que dice ssh. Vas a hacer clic en él. De acuerdo, puedes hacer clic en este botón para copiarlo aquí mismo. De acuerdo, así es ahora. Copia dice copia. Ahora lo que vas a dio es que todos queden adentro? Si tecleo get remote, Dash V, va a enumerar en mis repositorios remotos ahora mismo. No hay nada. Así que consigue remoto Dash V enumera todos los servidores, como, levantarse que nuestras historias de casa hablando ahora mismo, no
es hablar con ninguno de ellos, así que necesitamos agregar uno. Entonces lo que vamos a hacer es conseguir anuncio remoto. ¿ De acuerdo? Tenemos que darle un nombre a esto, ya
sabes, para poder decir mi get hub. Ah, convención
muy común es solo llamar a origen, así que me voy a poner a distancia, agregar espacio de origen, y voy a pegar. De acuerdo, voy a pegar en ese enlace aquí mismo. Así que ponte a distancia, Añadir origen, ¿de acuerdo? Y vamos a pasar un pecado justo aquí, tal como lo ves aquí en una cena de prensa. ¿ De acuerdo? Acaba de agregarlo. Entonces si tecleo y obtengo a distancia Dash V. Claro
que sí, tiene dos orígenes. Hizo uno por buscar Lo que significa buscar es agarrar, por lo que agarrar y descargar. Y nos dio uno para empujar Empujarlo hacia arriba Ahora podría ser diferente. Ya sabes, uno podría ser que podría ser un enlace para descargar uno como empujar hacia arriba. Depende de cómo estén configurados sus servidores y de su computadora. Te levantas. En nuestro caso, son exactamente iguales. Entonces eso es muy guay. Todo lo que hemos hecho ahora hasta este punto es que los conseguimos hablando entre sí. K, tu terminal ahora está hablando con Bueno, tu local get up repositorio para tus terminales. Ahora, hablando a través de tu cuenta get hub dot com. Entonces todo lo que tenemos que hacer ahora esto es realmente genial. A pesar de tener status get, nada que comprometer, directorio de
trabajo limpio. Todo lo que necesitas hacer es empujarlo hacia arriba. Entonces lo que podrías hacer. Diga get push Origin Master. Ahora sabemos que montamos en la rama maestra, ¿de acuerdo? Porque de eso hemos estado trabajando. Si yo era un tipo en get branch, esto se remasteriza por defecto. Eso es genial. Entonces solo quiero empujarlo hasta la rama maestra para obtener empuje origen Maestro, ¿de acuerdo? Y Oh, no
, nos está dando aire. ¿ Qué dice? Decir cayó para empujar un poco de descanso para levantarse porque el remoto contiene trabajo que
no debes que no tengo un localmente. Entonces si te das cuenta aquí mismo, agregamos un archivo read me cuando realmente creamos un repositorio. Y aún no tenemos eso localmente en nuestra computadora. Entonces antes de empujar, hay algo que siempre necesitas dar siempre. Y quiero mostrarte este aire, así que ya sabes, vas a correr hacia él antes de empujar. Siempre quieres un poste. Consigue el polo de origen, Maestro. Lo que vamos a hacer es tirar cualquier cambio que esté en get hub dot com y lo
vamos a poner en nuestra base de código primero. De esa manera podemos tener el coach más actualizado. Vamos a darle una oportunidad. Consigue Pole Origen, Maestro. Y ahí está. Está bien. Se le ocurrió una pantalla aquí, Y por cierto, la pantalla que surgió aquí como, ¿qué está pasando? Estoy atrapado aquí. A esto se le llama Vim. Se trata de un editor de texto en el editor de texto basado en terminal tiene comandos muy funky. Es un poco complicado tomarse un tiempo para aprender. Entonces antes de que hagas algo loco aquí, solo tienes que seguir adelante y presionar escape un par de veces. Está bien, aguanta. Desplazar y pulsar Colón una vez. De acuerdo, Shifted y Colin una vez. Y luego solo presiona x X significa guardar. Renunciar de nuevo. Presione muy funky escapa un par de veces si has conseguido algún estado raro y luego cambia y presiona Colin una vez y suelta y luego presiona X para ahorrar rápido. ¿ De acuerdo? Todo lo que hizo fue decir Hey, estamos fusionando estos cambios de aviso aquí mismo. Sí se fusionó. Se tiró en el archivo de lectura me lo puso aquí. Por lo que acabo de obtener el estatus. Nada que comprometer, directorio
de trabajo limpio. Y entonces puedo seguir adelante y hacer ahora que ha sido jalado y fusionado, puedo hacer. Consigue empuje Origen, Maestro. Está bien. Y aquí va comprimiendo, comprimiendo, montando total y luego lo envía hacia arriba. Entonces si voy por aquí a mi página aquí y lo refresco comando son para refrescar Mira mis códigos aquí ahora existe ahí. Ahora, ¿qué tan genial es eso? Algunos ahora obtienen Hub está oficialmente rastreando cambios. Entonces si fuera a poner otro archivo aquí como, digamos, toque y digamos,
um, um, algún archivo así de veloz, sí
me dan estatus. Por supuesto, necesito agregarlo, conseguir en algún archivo que rápido obtener estado y es verde. Por lo que se agregó y consigue comprometerse. Dash M agregó algún archivo. Y luego quiero que hagas esta vez no necesitamos tirar porque nadie ha hecho cambios en el servidor en el servidor get hub server. Pero siempre es buena práctica hacer eso primero. Entonces consigue polo origen, Maestro, y esto ya está al día. Por lo que nadie hizo los cambios conocidos, empujado aún. Eso está bien, Así que sigamos adelante ahora y hagamos push origin Master para empujar hacia arriba ese cambio de archivo que hicimos así haz lo mismo ahora que está leyendo y está pensando. Y si refresco la página, lo bastante
seguro, algún archivo que Swift está ahí mismo. muy cool. Uh, esto. Es decir, puedo entender cómo esto podría ser un poco confuso. Se necesita algo de práctica. Lo estarás haciendo mucho a medida que pasa el tiempo, pero puedes referirte a este video Así que las tomas de esto son una vez que hayas configurado tu
clave ssh . De acuerdo
, básicamente vamos a conseguir hub. Sepa que este equipo tiene acceso a esta cuenta en este repositorio. Eso es lo que hace la clave ssh. Por eso lo agregamos aquí en la configuración de Llegar a casa. Aquí lo generamos. Por lo que una vez get hub es hablar con tu computadora local. Entonces cuando haces cambios, primero
puedes anunciarlos y comprometerlos como estás acostumbrado a hacer ahora y después tiras hacia abajo, obtienes polo origin, Maestro, puedes tirar de este repositorio y luego también puedes obtener push origin maestro para empujar los cambios de nuevo aquí y de nuevo. Otra cosa que hicimos fue agregamos, conseguir hub Archaea tener cuenta y el repositorio específico Agregamos un repositorio remoto za. De acuerdo, usando get remote o get remote, agrega origen y luego pasa el ritmo en el enlace al repositorio. Entonces así es como vas a poner repositorios para conseguir hub. Haz esos exactamente mismos pasos que hicimos aquí para todos tus proyectos aquí son de vez en cuando . Puedes usar el sitio web para obtener cualquier ayuda que puedas necesitar, y eso es levantarte.
20. Swift de Swift 2 (si / otra) parte 1: Bienvenidos de nuevo, todos. hoy vamos a hablar de condición ALS. De acuerdo, es
decir, si en l declaraciones también, así es como consigues que piense tu abrigo. Y de hecho, en su mismo nivel base. Una vez que conoces variables y, ya
sabes, condiciona la ALS, puedes programar casi la mayoría de las cosas de alguna manera anterior en su nivel más básico. tan muy cool. Fundacional. Súper importante. Empecemos. Pasemos a tu beta de código ex. ¿ De acuerdo? Y lo que vamos a dio es crear un nuevo patio de recreo. Así que empieza con el patio de juegos Iowa. Y llamemos a esta pistola adicional, ¿de acuerdo? Y sigue adelante y guárdalo aquí en tu escritorio o donde quieras guardarlo, y va a abrir nuestro patio de juegos. Entonces para entender condición, ALS, necesitamos hablar de otro tipo de datos llamado booleano. De acuerdo, Entonces espíritu de nuestra cuerda aquí, si salvo nuestra es mi casa en llamas, consideramos de tipo toro. De acuerdo, igual a falso. Está bien, Entonces, bullying los valores de Vala son o verdaderos o falsos. De acuerdo, Más cero o uno. Está bien. Entonces uno siendo verdadero, cero siendo falso. De acuerdo, así que esto es un booleano, ya
sabes yo también podría haber dicho otro toro igual a cierto. Ya sabes, el 1er 1 es solo de tipo explícita y explícitamente definido. De acuerdo, Así tiene sentido. Una de las bases centrales, hecho,
básicamente todo lo que haces,
en básicamente todo lo que haces, respecta a las operaciones,
se reduce a un valor simple, verdadero falso. Entonces hablemos de las declaraciones de ifs o de lo contrario. ¿ De acuerdo? Entonces podemos decir si mi casa está incendiada. Está bien, es mi casa en llamas. Entonces vamos a, uh, hacer imprimir. Esto va a imprimir en tu consola por aquí en el maletín, el patio de recreo del lado derecho. Imprimir que alguien me traiga un poco de agua. Está bien. Solo estoy presionando tab para auto completar aquí lo demás. Está bien, Brent. Entonces si mi casa está en llamas, así que danos un poco de agua. De lo contrario imprime a alguien conseguir un poco de fuego para mi casa, lo guardo. Dice que alguien recibe fuego por mi casa. Entonces esto es falso, ¿verdad? Entonces estamos diciendo que si esto es cierto, alguien me dé un poco de agua, lo contrario, así que me traigo un poco de fuego. Entonces, ¿se incendia mi casa? Puntos iguales que instalamos aquí. Entonces esto realmente está saliendo a falso Esto es igual a falso Y así como esto equivale a falso, entra en la condición else. Entonces estamos diciendo, si esto es cierto, haz esto de lo contrario haz esto. Bueno, no
es cierto. Entonces vamos a hacer esto. De acuerdo, entonces esas son algunas afirmaciones simples si un else. De acuerdo, entonces hablemos de la lógica booleana en general. ¿ De acuerdo? Entonces podemos hacer esto. Resultado Var es igual, si verdadero es igual a verdadero. ¿ Cuál es el resultado Serán los resultados van a ser verdad? Porque verdadero es igual a verdadero Y note cómo usamos la ciencia doble igual. Es así como hacemos la comprobación condicional y el veloz es doble igual. De acuerdo, si fuera un solo
igual, como aquí estaría asignando los resultados. Entonces estamos asignando el resultado de esto. Entonces esto va a generar ya sea verdadero o falso valioso en él, y lo va a almacenar y dar resultado. Está bien. ¿ Y si decimos resultado es igual a verdadero igual a falso Si verdadero es igual a falso. El resultado va a ser lo que causa falsa verdadera no es igual a jefe. Está bien. Tú conmigo hasta ahora, se está volviendo un poco loco aquí, Así que los resultados tendrían resultado igual fuerza igual a falsa, esta falsa fuerza igual. Sí, sí lo hace. Es cierto. Te gusta. Espera, ¿qué está pasando aquí? False es igual al verdadero. No es nada que haya aprendido nunca. Bueno, esta locura Bueno, en realidad
es verdad. Falso. Si false es igual a false. Bueno, eso se relaciona con el verdadero porque es cierto. Tengo sentido. Y entonces también hemos cubierto todo aquí es cierto. Era falso. False es igual a falso. Sí. O sea, ¿tus simples, condicionales cheques aquí s para que puedas empezar de verdad? Hacer algunas cosas divertidas es Ahora podemos imaginar que tenemos una cuenta bancaria, ¿no? Hasta el momento, el total de la
cuenta es igual. Digamos que tenemos Tenemos $300.33 en nuestra cuenta. Está bien, Muy bien. Ahora digamos que hay un artículo que fuimos una compra en la tienda dio nuestro llamemos a este nuevo juego de llamada del deber, y eso va a igualar 59 99. Muy bien, entonces el juego cuesta 59 99. El total de mi cuenta es de 300 dólares y 33 centavos. Entonces es hora en el padrón. Está bien. Por lo que podría hacer algo como esto si el total de la cuenta es mayor o igual a nuevo call of duty game print Acabo de comprar el juego. Está bien. De lo contrario, amigo, no
tengo suficiente dinero. ¿ De acuerdo? Y mira eso. Acaba de comprar el juego. Ahora digamos que mi cuenta bancaria solo tenía 30.33 dólares. Cierto, no
tengo suficiente dinero para que puedas ejecutar operaciones de bullying en cualquier cosa. OK, entonces esto va a equiparar a un valor verdadero o falso si total de la cuenta, si $30.33 es mayor o igual a nuevo juego de llamada del deber, que es 59 punto no 59 99. Entonces haz esto. Bueno, sabemos que esto no es cierto porque sólo tiene 30 dólares pero hazlo realidad. Sabemos que esto es ahora. Esto no es cierto porque ahora tenemos $300 que acaba de comprar el juego. Disculpe. Entonces, solo empezando a tener algún sentido, ¿de acuerdo? Tenemos valores que comparamos con otros valores, y podríamos hacer algunas cosas similares con algunas cadenas también a Así que por ejemplo,
digamos Ah, digamos Ah, dije que el nombre de la barra es igual a Jack. Está bien. Podría decir si nombre es igual a Jack. Entonces haz esto. Eso es una huella. Tu nombre es Jack bien. Else imprimir. Tu nombre no es Jack. Tiene sentido. Bueno, es imprenta. Tu nombre es Jack. Bueno, digamos que puse aquí, Jackie, tu nombre no es Jack. ¿ De acuerdo? Entonces, como se podía ver, uh, se
puede hacer otro tipo de comparaciones Aquí está bien, también, que es realmente, realmente genial. Entonces si declaraciones anel, podrías empezar a construir urológica así. Y así si te das cuenta aquí, como, si estuviera construyendo algún tipo de solicitud de caja registradora para una tienda, ya
sabes, podría tener similar Lógica. Esto está muy basado, pero tengo lógica similar a,ya
sabes, ya
sabes, a tal vez declinar una tarjeta de crédito o aceptado o hacer una compra, o y esto podría ser cualquier cosa para que puedas empezar a hacer montones y montones de cosas diferentes . Entonces, por ejemplo, si digo de nuestro algún número equivale a 25 bien. Y, uh, vamos a llamar a este número un bien. Número a guardar nuestro número B equivale a 30 40. Nuestro número C es igual a 45 son el número D igual a 50. De acuerdo, sólo un montón de variables. A, B, C d. Y ahora podemos hacer todo tipo de cosas divertidas podría salvar nuestro, um, número
final igual a 100 y debilitar dio alguna revisión condicional aquí. Lo que podemos hacer es que podríamos decir si el número A es igual al número final. Haga esto más si el número D es igual al número final. Haga esto más si el número C es igual al número final. OK, haz esto más Aquí. Esto Así que presentamos algo nuevo aquí. Esto es otra cosa, si es así, antes que lo hicimos. Si esto entonces haz esto. Entonces es o esto y si esto no es cierto, entonces adelante y haz esto. Pero en este caso, estamos diciendo que si esto es cierto, entonces haz esto más. Si esto es cierto en esto también, si esto es cierto, entonces hazlo. De lo contrario, el caso final. Adelante y haz esto aquí mismo. Entonces por supuesto que podemos imprimir. Podemos simplemente decir Ah, imprimir el número A. Sólo tienes que imprimir el número real y podríamos seguir adelante y copiar y pegar esto aquí, aquí y aquí. Imprimir número B número C. De lo contrario, podríamos utilizar algo totalmente diferente. Podemos decir que ninguno de los valores fue igual al número final y deberíamos ver esta impresión porque ninguno de estos números es igual a 100. Ahora si hice este 100 deberías ver 100 siendo impresas ahí mismo. Y esto no se llama porque el número A hace eso igual. Encuentra un número? No. 25 no es igual a 100. ¿ Y si pico número fuera número fino? Bueno, el número B es 100 el número final es 100. Entonces eso es cierto. Por lo que lo imprime ahí. OK, entonces podrías empezar a ver lo simple que es el ifs y Ellis. Y si una otra si las declaraciones pueden ayudarte a averiguar cómo resolver ah montón entero de diferentes tipos de problemas. Entonces este es un panorama básico de, si lo demás declara miles de millones, las cosas equiparan a cierto. Vale, Así que nota cómo si es mayor que o igual a Ok, También
podríamos decir, si es menor que o igual a bien o si es igual a eso es otra cosa que podríamos decir. O también podríamos decir, si no es igual a eso es lo que significa el signo de exclamación. Entonces si total de cuenta, si 300.33 no es igual a 59 99 entonces es un seguro, por
supuesto, eso no es igual a eso. Entonces va a equipararse a. Cierto. Entonces hay diferentes formas en las que puedes jugar con condicional y, uh, lo
haces con cuerdas o números, Claro, con cuerdas. Ya
sabes, obviamente no quieres hacer cosas como,
um, ya
sabes, ya
sabes, si el nombre es mayor o igual a Jack, eso te va a dar resultados inconsistentes, No lo que eres buscando. Simplemente vas a querer usar la igualdad o los operadores de desigualdad en cadenas. No vas a hacer menos o igual a cosas como esa. Pero este es un panorama básico de condicionales
21. Swift de Swift 2 (y || ) parte 2: Oye, Ron, vamos a cavar a la derecha en condicional es un poco más si las declaraciones de lo contrario. Entonces sigamos adelante y abramos X abrigo. Vamos a crear un nuevo patio de recreo. Llama a esta condición ALS para guardarlo donde quieras. Está bien, Perfecto. Entonces me voy a deshacer de esto. Entonces hablamos de miles de millones de los que hemos hablado si una AL declaraciones, hablemos de solo tener múltiples cheques condicionales en la misma línea en la misma declaración. Entonces digamos que tengo un banco lejos mi cuenta equivale a $1000 son mis amigos. Cuenta igual a $2000 son mis amigos Cuenta igual a $3000. De acuerdo, así que digamos si mi cuenta es mayor que 900 y si mis amigos cuentan mi cuenta de amigos bien es mayor que 1500. Y si la cuenta del amigo de mi amigo es mayor a 2000 imprimimos. Tenemos moot Joe move. Ver, eso iguala lo verdadero Es cierto. Entonces hablemos de lo que está pasando aquí. Tan doble ampersand. De acuerdo, este es el símbolo ampersand en los siete de tus teclados, y básicamente lo que estamos diciendo es, si esto es cierto, y si esto es cierto, Y si esto es cierto, entonces haz esto. Está bien, Y también mi cuenta. Mayor a 901,000 es definitivamente mayor a 900. Entonces esto es cierto. Entonces estamos diciendo, si es cierto y verdadero, porque está secuestrado verdadero. Y las tropas decían Si verdadero, interino, verdadero, verdadero es verdadero igual a verdadero igual a verdadero. Entonces es cierto, si eso es todo cierto, entonces imprime esto aquí muy bien. Y siempre equiparan de izquierda a derecha. De acuerdo, entonces esto va a ir primero en esto y esto y tendrán que ser ciertos para que esto funcione. Está bien, hablemos de otro ejemplo. Digamos que tenemos un juego multijugador cooperativo y necesitamos saber si uno de
los miembros de nuestro equipo está muerto para que podamos enviar a un medico para revivirlo. Porque si todos morimos, se acabó el juego. Entonces, ¿qué? Vamos a dio para hacer unas variables jugador A. Una vida igual a verdad. Nuestro jugador estar vivo es igual a verdadero. Nuestro jugador ver vivo equivale a tropas. Ahora mismo están todos vivos. Eso es genial. Si el jugador a vivo es igual a falso o si el Jugador B vivo es igual a falso o si el jugador ve una vida es igual a falso. Por lo que cualquiera de estos jugadores, cualquiera de estos jugadores está muerto. Traigamos un mensaje. Uno de los miembros de tu equipo está abajo. De acuerdo, así que ahora mismo todo esto es cierto. Entonces esto no es Esto no está funcionando, Sin embargo, ¿Qué pasa si hago que jugador esté muerto? Le dispararon. Yo soy. Ya es uno de los miembros de su equipo. Está bien. Entonces, ¿qué pasó es que corrió esto aquí mismo? Jugador A a vivo es igual a falso. Bueno, no
es falso, así que se salta. Se pasa a la siguiente. Y aquí mismo. Bam! Este es ahora este jugador Estar vivo ahora. Podrían franjas de jugador estar con vida. Tan falso equivale a falso. Eso es cierto. Entonces le pegamos a esto aquí mismo. Entonces lo que va a pasar en esto o declaración es que esto va a dejar de correr. Ni siquiera va a hacer esto aquí mismo. Sólo va a decir Bien, esto es cierto. Entonces vamos a bajar aquí. Entonces esto es o Ok, haz esto. Y si esto es falso, prueba esto y esto es falso. Prueba esto. Sigue haciéndolo hasta que uno de ellos sea verdad. Si ninguno de ellos es cierto, lo hará. Entrará a la cuadra aquí. ¿ De acuerdo? Y puedes tener tantos en estos en la misma línea como quieras. Por supuesto, tu código podría volverse más complejo es que empiezas a hacer eso en como desarrollador profesional , no
te vas a encontrar haciendo más de dos o tres de estos en la misma línea. De acuerdo, Si estás haciendo eso, probablemente
tu sea una mejor manera. Teoh, haz tu lógica en tu abrigo. Está bien. Tan muy cool. Entonces uno de los miembros de nuestro equipo está abajo, así que sabemos que somos declaraciones están funcionando. Enfriar. Entonces también, otra
cosa es, um Bueno, también
se podría hacer, ya que esto es un matón aquí. Pero también podríamos hacerlo. En realidad podríamos despegar, es igual a falso, y podemos poner un letrero de libra delante de él, ¿de acuerdo? Y lo que eso está diciendo es lo contrario de lo que es. Entonces básicamente, jugador en vivo es igual. Las tropas decían, si esto no es cierto, si esto no es cierto, entonces entra en esta declaración aquí mismo. ¿ De acuerdo? Entonces esa es otra forma de otra forma de escribirla, pero la volveremos a poner a la manera en que era sólo por el bien. Claridad. Aquí y no necesitas envolver demasiado la cabeza por ahí haciéndolo. Esas otras formas de esta manera está completamente bien y un poco más legible. Entonces hablemos un poco más de estas condiciones ALS y tal vez haciendo algo de mezcla y emparejamiento. De acuerdo, todos
queremos retirarnos en algún momento en el tiempo. Entonces descubramos si se nos permite retirarnos y veremos si la selección natural en la naturaleza o como quieras llamarla nos permite hacer. Entonces. ¿ Puedo retirarme? De acuerdo, de nuestra edad equivale a 23 nuestra cuenta, esta es tu cuenta bancaria equivale a 100 mil dólares. Infinito. Agrega una cosa más aquí, Digamos de nuestro tío rico que murió, que me dejó una herencia igual a falsa. Uh, eso es interesante. Podrías hacer nombres de variables que son realmente largos. Eso es bastante guay. De acuerdo, así que digamos si la cuenta es mayor a los 70.000 dólares. ¿ De acuerdo? Y si la edad es mayor o igual a, digamos 60. Está bien. Entonces si nuestro conteo tiene más de 70 mil dólares en él y nuestra edad es mayor o igual a 60 o si Tío
Rico que murió me dejó herencia igual a verdad. Está bien, así que eso igual a cierto. Simplemente haz que esto sea un poco más grande, chica. De acuerdo, entonces escuchemos este Oregon. Entonces si mi cuenta es superior a $70,000 tengo 60 años o más, Ok. Entonces si esto equivale a cierto, estos dos construyeron estos dos este corrector condicional. Entonces si esta condición es cierta, y si esta condición es cierta, vamos a entrar aquí para que pueda imprimir Puedes retirarte, Está bien. Entonces O si Rich tío que murió, ¿quién me dejó? La herencia es verdadera significa que acabamos de conseguir un montón de dinero. Y no importa qué edad dónde o cuánto esté actualmente o hacer cuentas, porque estamos a punto de conseguir una gran suma gorda de dinero. Entonces ahora mismo, guárdalo. Entonces Cuentas nivelador. Bueno, mi edad. Ah, así que aquí hay un problema. Por lo que mi edad no es mayor a los 60. Yo sí tengo un $100,000 pero no se me permite retirarme porque mi edad simplemente no es
lo suficientemente vieja todavía. Y mi tío no murió lamentablemente. Por lo que no conseguí esa suma de dinero. Y si mi tío está mirando Lo
siento, no quiero que mueras. Um, me llevaré tu dinero de todos modos. De acuerdo, Así cuenta edad. De acuerdo, entonces sabemos que esto es equiparar el defecto. ¿ Por qué? Porque la edad envejece. Mal. Entonces digamos ahora hago mi edad 61. Bueno, ha salido a ser verdad. Se puede jubilar. De acuerdo, Entonces si la cuenta es mayor a los 70,000 que es y la edad es mayor que igual a 60
puedo retirarme. Fantástico. Está bien. Súper cool. Está bien, entonces nos estamos retirando. Ahora. Digamos que vamos a volver a los 23 años en nuestra cuenta. El saldo tiene $50 en él. Somos un estudiante hambriento que vive de ramen y panqueques superiores. Mezcla de panqueques. De acuerdo, Entonces si la cuenta es mayor a 70,000 y la edad es mayor que igual a 60 puedes cansarte. Bueno, ya no
me estoy retirando, sino buenas noticias, todos. El tío murió y nos dejó como mil millones de dólares. Ya veo. Oye, podríamos retirarnos. Entonces a pesar de que mi edad es menor a 60 mi cuenta es definitivamente menor a 70 mil dólares. Uh, esta condición ahora equivale a do true. Está bien, Entonces lo que se dijeron aquí es lo que dijimos aquí es si esto y esto es cierto. Entonces ninguna de estas en este caso es falsa tregua? O aquí está la palabra clave. O si tío rico que murió, ¿quién dejó la herencia igual a verdadero va a escuchar? Bueno, esto sucede. Entonces ahora podemos entrar. Entonces así es como se puede mezclar y emparejar declaraciones y cheques condicionales con o condicionales. Y las usarás todo el tiempo en tu revestimiento. Entonces eso es condicional es la segunda parte, y hemos cubierto realmente una buena Una buena comprensión de cómo funciona esto en su nivel más básico. Y así te conectas para ser un programador muy funcional, sabiendo lo que sabes ahora mismo.
22. Funciones de Swift 2: otro día emocionante aquí en el mundo de la programación IOS. Y hoy vamos a hablar de funciones. Las funciones son otro componente central de la programación. De acuerdo, vas a usar todos los días como programador, sin importar el lenguaje que estés usando. Entonces voy a seguir adelante y, uh, abrir un nuevo proyecto Exco. ¿ De acuerdo? Ya tienes, um, siguiente archivo de código abierto aquí. Alguien va a presentar un nuevo patio de recreo, y vamos a llamar a esto Ah, función de
la parte alta. Tú. Yo mismo hice ese nombre. Está bien. Está bien. Entonces por supuesto que nos da ese mal a cuerda. Hola. El patio infantil eliminará eso. Y esto es construir nuestra primera función. Se utiliza la palabra clave funk para no confundirse con la función, solo funk. Y vamos a llamar a este funk A Eso es funk con el K. Y estaban en un todo bien. Esa es una función. Y ahí está el final de la lección. Sólo bromeando. Está bien, así que disecemos esto un poco aquí, Así que tenemos una función. Bueno, este es un nombre de función, igual que le das un nombre de variable como bar. Mi variable es igual a algo tal como le das un nombre. Estás dando nombre a esta función para que pueda ser reutilizada. Está bien. Y la idea detrás de una función es que realiza algún tipo de acción. Vale, entonces si convirtieras a un ser humano en un ejemplo de prácticas de codificación, una persona podría tener lo que se llama propiedades y función, así que algunas de las propiedades podrían ser edad, ya
sabes, uh, altura. Está bien. Ya sabes, sus propiedades. personalidad. Alality enojada. Está bien. Esas propiedades y funciones en una persona podrían ser tales como caminar bien o hablar o participar en una pelea. De acuerdo, entonces hay alguna función. Por lo que tenemos una persona con propiedades y funciones para acciones. De acuerdo, así es como funcionan las funciones ahí. Al igual que las acciones. Realizaron algún tipo de acción en nombre de tu programa. Está
bien, bien dejarlos ahí. Entonces volvamos atrás y a encontrar a Funk A. Vale, sólo
vamos a imprimir un valor. Entonces vamos a imprimir. Esta es mi primera función. Está bien. Todo lo que eres, Bueno, ¿qué? ¿ Qué está haciendo? No es poner nada bien, para hacer que una función funcione, haces algo llamado llamar a una función funk. Un presentador. Y ahora mi función funciona Ok. Entonces a pesar de que este código aquí mismo ha sido escrito. Esto nunca, nunca,
jamáscorrerá ,
jamás hasta que realmente lo llames bien. Y siempre sepa que nunca está llamando a una función hasta que le ponga un
paréntesis de apertura y cierre . Entonces todo lo que estamos haciendo es llamar funky. Lo estamos llamando así Así que este momento en el tiempo pasa justo aquí. En realidad va a saltar aquí y a la línea seis. Y eso va a imprimir para nosotros. De acuerdo, así que acabamos de llamar a nuestra primera función. Y las funciones son realmente una simple ¿Está bien? Tiene nombre, el funk frente a él. Y tú lo llamas para realizar algún tipo de operación. De acuerdo, Algún tipo de acción. Hagamos algunas funciones más. Funk, funk estar bien. Y sólo estoy nombrando a estos como yo quiera. Puedes llamarlos como quieras. Analistas definieron funk. Ves, tenemos tres funciones. ¿ Todo bien? Ahora, las funciones pueden llamar a otras funciones. Vale, entonces lo que vamos a hacer es decir que llamemos a funk estar bien, y ah, pon eso ahí. Y entonces esto iba a llamar llamando a funk, ¿
ves? Y éste va a imprimir algo más que decir. Yo soy la mejor función de todos. Eso es discutible. Está bien, muy bien. Ahora no pasa nada. Bueno, eso es porque aún no hemos llamado a las otras funciones. Entonces esto es hacer eso ahora. Funk. Tenga en cuenta cómo incluso reconoce la función. Aunque esté por debajo. No importa si está por debajo o por encima de ella. Todos se reconocen entre sí, lo cual es realmente genial. Se llama Funk,
Ves, Ves, Y esto es por supuesto que no va a llamar nada. Ahora, por
supuesto, no pasa nada. Es bueno, aún no
hemos llamado a la primera función funk A Y como lo llamamos llamando va ser llamando funk. Ver, yo soy la mejor función de todas. Hizo eso? Ah. Por lo que ahí lo tienes funciones en su forma más simple. De acuerdo, ahora déjame demostrar un No, No. De acuerdo, realidad
puedes meterte en lo que se llama un bucle infinito, y puedes hacer que tu programa se bloquee. Oh, no. Hagámoslo. Siempre es divertido hacer que las cosas se estrellen. Cómo mi ojo causa un infinito Bueno, ¿qué pasa si llamo Funk A de funk? A ver, vamos a pensar en eso aquí. Como pueden ver, se va y se va y eventualmente puede detenerse y romperse, o mi programa puede estrellarse. Uh, pero esto es un bucle infinito, ¿de acuerdo? Y lo que está sucediendo es recordar la función A que está llamando a la vista de función, que es llamar a la función. Ver, que es volver a funcionar un y llamarlo una y otra vez y
hacer efecto justo en esos pocos momentos de mí hablando, pasó por 19,355 veces. Las computadoras son muy rápidas. Adelante y quítate esto Así que no quieres Loop infinito, así que trata de no hacer eso. Y en realidad, se va a estrellar para que pueda recuperarse a sí misma. Puede que no. Ya veremos aquí. Pero este es un ejemplo perfecto de lo que no se debe hacer. Entonces fiebre Encuentra tu programa o ex código congelado. De acuerdo, es posible que te pongas en un bucle infinito. De acuerdo, entonces hay funciones en su nivel más básico, pero esto no es realmente súper útil. Yo funk un frumpy es ya sabes, cuando puedes usar eso en el mundo real. Entonces hablemos de, uh, más ejemplos del mundo real. Digamos que tienes una cuenta bancaria. Cuenta bancaria lejana equivale a $500.50. De acuerdo, Ahora digamos que queremos hacer una compra. Vamos a comprar algo. Bueno, nos vendría bien una función para eso. De acuerdo, así que digamos que tengo nuestro artículo Monto igual, Let's a 200 $12.23. Y entonces qué? Nos conectamos noticias, podemos decir funk hacer compra, Ok. Y entonces lo que podemos hacer es que podríamos Por supuesto, vas a querer rescatar alguna validación aquí por algunos. No voy a llamar a manejo de aire, sino alguna lógica. De acuerdo, Entonces si la cuenta bancaria es mayor o igual a artículo, obviamente queremos asegurarnos de que no lo pudiste pagar. Entonces si lo podemos pagar ahora, podemos decir cuenta bancaria menos igual a artículo derretido, por
supuesto. Menos igual es sólo taquigrafía para cuenta bancaria es igual a cuenta bancaria menos cantidad de artículo. Ahora, eso es más código del que queremos escribir el mismo principio. De acuerdo, así que volvamos y digamos menos igual cantidad de artículo. ¿ De acuerdo? Y como puedes ver, una vez que se decida pensar por un segundo aquí cuenta bancaria. Oh, no
es imprimir para nosotros. Esto está impreso aquí. Imprimir. Gracias a cuenta. Ah, ¿sabes qué? Si cuenta bancaria es mayor o igual a yo soy cantidad. Cuenta bancaria menos igual cantidad de artículo. Está bien. Uh, tan tonta. Ni siquiera llamé a la función hamburguesa. Tengo que llamar a la función. Por supuesto. Simplemente te explico esto, y ni siquiera lo estoy llamando. Tu función nunca se ejecuta hasta que alguien la llame con los paréntesis al final. Y ahí está. Observe cómo en explotar, Al menos en el esquema de color predeterminado, lo hace rosa. Eso significa que estás llamando a la función. Por lo que acabamos de hacer una compra. El saldo bajó como un gran ejemplo de cómo,
uh, uh, cómo usar la función en conjuntos del mundo real. Ahora, realidad no
estamos usando funciones de la mejor manera posible en este punto. Tenemos variables aquí,
¿de acuerdo? Y está manipulando esos, pero funciona tanto como pueden. Deberían poder estar solos. Significa que no deberían tener que depender de datos que estén por encima de él. Está bien. La función debe ser autocontenida, si es posible. Y así vamos a hablar de lo que se llama parámetros de función, acuerdo? Los parámetros de función hacen que las funciones sean más reutilizables. ¿ De acuerdo? Y los extrae de manipular directamente los datos en su en su programa. De acuerdo, así que intentemos esto otra vez. Digamos en cambio que es esta vez. Llame a este intento de compra. No sabemos si realmente va a hacer la compra. No sobre todo si no tienes suficiente dinero. De acuerdo, vamos a hacer es intentar comprar. Vamos a poner aquí una variable llamada Importe. Está bien. Y lo vamos a hacer de tipo doble. Hablemos de esto aquí mismo. ¿ De acuerdo? Entonces lo mismo es, antes de darle un nombre definimos Es una función, pero aquí hay una cosa diferente. tanto que antes estaba vacío aquí dentro. Ahora ponemos algo aquí, y esto es lo que se llama un parámetro. Vale, Lo que es cuando alguien llama a una función, vale, pueden caer en un ítem en esta variable para que puedan caer en el ítem en ella, y luego pueden. En la función se pueden utilizar esos datos. Entonces, por ejemplo, si quisiera llamar a esta función, podría
decir intento, compra, podría pasar en cantidad de artículo, bien. Y entonces realmente puedo imprimir cantidad. De acuerdo, así que hablemos de lo que está pasando aquí. Entonces aquí mismo, en realidad llamando a la función y estaban cayendo en esta variable. Por supuesto, este es un billete muy de tipo doble. No lo definimos explícitamente, pero sabe automáticamente por el valor que le asignamos. Entonces vamos a pasar en un doble. Eres como, Espera un minuto. Esto es cantidad de artículo, pero esto dice cantidad. ¿ Qué? ¿ Qué está pasando aquí? Bueno, ¿qué está pasando? De acuerdo, es cantidad de artículo se está cayendo en el cubo justo aquí y se le cambia el nombre a la cantidad para que pueda ser reutilizado. De acuerdo, entonces déjame dibujar. Dibuja aquí algunas cosas. Entonces esta es la línea que primero se llama aquí mismo. De acuerdo, eso se llama primero. Muy bien, entonces lo que pasa es ah, pasas este parámetro aquí, vas a escuchar mucho eso. Pasas un valor o una variable a una función, así que vamos a pasar esta cantidad de artículo, vamos a dejarlo aquí. Entonces lo estamos agarrando, lo estábamos dejando caer, y luego viene justo aquí. Y luego decimos:
Hey, Hey, vamos a darle un nuevo nombre. Lo vamos a llamar cantidad. Simplemente le cambiamos el nombre, ¿de acuerdo? Y entonces podríamos hacer lo que queramos con él aquí mismo. Entonces así funcionan las funciones. Puedes pasar cosas en ella, y lo cambia el nombre casi como un alias y te permite ah, para jugar con él. Tan muy cool. Ahora, en este caso. De acuerdo, bueno, pasamos la cantidad y le damos un nombre. Nosotros en realidad esto es un let Esta es una constante que no puedes modificar. Entonces en realidad lo está copiando. De acuerdo, para tipos de valor como doble en cadena flotantes cosas como esa. De acuerdo, para esos esos tipos de valor, cuando los pasas, hace una copia del mismo. Y no se puede modificar la versión original. Eres como, De lo que está hablando este tipo se está volviendo loco. Bueno, vamos a, uh vamos a probar esto aquí. Entonces si yo Así sabemos que la cantidad de artículo se está pasando, ¿
verdad? Entonces digamos que quería ser un poco programador desagradable y cambié cantidad de artículo desde aquí . Ya sabes, podría hacerlo así. Por supuesto que soy cantidad igual a cinco, ¿verdad? Definitivamente podría hacer eso. Uh, y va a acceder a ella, pero estamos hablando de este tipo aquí mismo. Importe. De acuerdo, así que pasamos cantidad de artículo. Aquí entra aquí. Nosotros lo renombramos. A ver si podríamos hacer lo mismo con ellos. fuera porque cantidad. Si recordamos, Si imprimimos el importe del valor es igual al importe del artículo. Entonces, como, OK, es lo mismo, ¿verdad? Bueno, ¿qué pasa si intentamos modificar el parámetro en sí? Cantidad equivale a cinco puntos. Ah, ¿qué dice? No se puede firmar un valor o Lo sentimos. No se puede asignar al valor cantidad es una constante let. Ooh, eso es interesante. Eso es realmente interesante. Y luego, um, lo que es realmente interesante es que me da la opción de hacer de mi parámetro una variable. Entonces por defecto, si no tengo nada ahí dentro, va a convertirlo en una constante. ¿ De acuerdo? Está bien. Pero si pongo un bar ahí, si hubiera podido estar ahí dentro, Ok, así que ahora puedo cambiarlo. A ver si puedo Acabemos de meternos en la impresión. No equivalgo a ver qué es eso, verdad. Por lo que tenía cantidad sigue siendo la misma. Entonces lo que realmente sucedió aquí fue esta vez en realidad lo copiamos, y aún así, pero hicimos una variable. Por lo que ahora podemos modificarlo. Ahora todavía es copia, y esto está cambiando. Esto no va a cambiar. Podemos copiarlo, meterse con él, y a veces quieres que en la mayoría de los casos, mantenerlo deja es probablemente lo que quieres dio. De acuerdo, entonces eso es ah, parámetro. Entonces vámonos ahora. No pensemos en el problema que estamos tratando de auto intentar comprar. Entonces si la cuenta bancaria es mayor que o igual a la cantidad Ok, entonces sigamos adelante. Y ah, es una cuenta bancaria menos igual cantidad otra. Uh, imprimir, um, en fondos suficientes. Entonces ustedes odian eso Están tan emocionados de ir a McDonald's, mi hamburguesa, y estaban, como, 20 personas detrás de ustedes. Y luego desliza tu tarjeta, y es como decadencia de autos. Te avergüenzas de cualquier manera. Tal es la vida. Ejemplo del mundo real. Como dije en ustedes chicos podrían ser los que imprimieran estos mensajes estos mensajes desagradables para que nosotros maravillosos y usuarios podamos disfrutar del dolor de esa experiencia. De acuerdo, así que fondos insuficientes. Muy cool. Cambiemos el melón y veamos si nuestra declaración más funciona. Entonces no monto es ah, $600. De acuerdo, Son mis propios fondos insuficientes. De acuerdo, ahora estás avergonzado en la vida. De acuerdo, así que en realidad estamos haciendo algo que es bastante útil aquí. Está bien, eso es tan malo. Bueno, ya
sabes, creo que podemos re factorizar esto incluso un poquito para que hagamos algún mo mejor código. ¿ De acuerdo? va a borrar estas cosas. ¿ De acuerdo? Um está bien. Y Ah, no monto Eso se ve bien. De acuerdo, así que vamos, uh vamos primero a revisar. Ya sabes, estamos hablando de cuando estás en fila, primero desliza la tarjeta, es antes de que incluso intente sacar dinero de tu banco. Simplemente comprueba para ver si realmente puedes hacer la compra. Está bien. Entonces hagamos una nueva función llamada puede comprar. Se toma y un derretimiento igual que antes. OK, pero esta vez Whoa. Era su cosa de aspecto extraño de época. OK, entonces tenemos más de llamar a una función, pero ¿puede una función devolver algo? Bueno, sí, puede. Podemos hacer que nuestra función devuelva algo. Haz quien sea que lo esté llamando. De acuerdo, entonces en este caso, es decir que nuestra función necesita devolver un booleano. De acuerdo, Puedes poner cualquier tipo aquí. Se quiere tensar. Lo que sea. A lo mejor un int en nuestro caso, queremos devolver una compra booleana. De acuerdo, ¿y qué? Podríamos dio su similar codificado antes. Si la cuenta bancaria es mayor o igual a la cantidad. Es un retorno. Verdadero otra cosa. Retorno. Falso. De acuerdo, también, aquí hay algo interesante. En realidad ni siquiera necesitamos una declaración de retorno aquí por lo demás. Lo siento. Ni siquiera necesitamos aquí la declaración else. Podríamos simplemente decir volver. Falso. De acuerdo, piénsalo aquí un segundo. Si esto alguna vez es cierto, va a llegar hasta aquí. Y una vez que golpees una declaración de retorno, bien, está
bien,en realidad va a dejar tu programa. ¿ De acuerdo? No tu programa, sino tu función. Por lo que en cuanto llegues a este retorno, va a devolver un booleano, y esto nunca se ejecutará. Podría tener 5000 líneas de código aquí, y nunca verás la luz del día. Y eso es porque en el momento en que regresas dentro de una función, tus funciones muertas. Ya está hecho. Y regresa, OK, devuelve algo. De acuerdo, entonces en este caso, estamos regresando verdad, así que no necesitamos elfo declaración otra afirmación porque, uh, bueno, sólo
llegaremos aquí si no se llama a esto. De acuerdo, así se puede comprar. Está bien, empieza a tener sentido. Bien. Bien. Me alegro de escuchar eso. Gatos. Entonces veamos aquí. Entonces estamos comprobando si podemos comprar. ¿ De acuerdo? Y nos dieron un pase un artículo. Y, um, hagamos también otra función para procesar realmente la compra. Por lo que esta función se llamaría siempre que realmente pasemos de la, uh, la porción de compra de lata. Y aquí es donde realmente sale de tu cuenta bancaria. Ghost, la a la institución en la que estás gastando dinero, por lo que proceso comprado, Toma un doble. Y mira. Esta vez llamé a la a m t Como dije, puedes Puedes nombrar tus parámetros, lo que quieras. Está bien. A m t. Y estamos aquí con solo una cuenta bancaria. Menos es igual a MT. Está bien. No, se está llamando a
esto, por
supuesto todavía porque en realidad no hemos llamado a la función. Sólo los hemos definido. ¿ De acuerdo? Nosotros sólo para encontrarlos. Entonces vamos a seguir adelante y procesarlo ahora mismo si puedo comprar. Está bien. Y digamos cantidad de artículo. Espera, ¿qué está pasando? Espere. ¿ Por qué estás poniendo un si delante de la función, pensé que acabas de llamarlo. Y entonces así es como lo hiciste. Bueno, lo
mismo aquí. En realidad estamos llamando a una función. Estamos llamando a la función de compra de lata, ¿verdad? Y recuerda cómo dijo que las funciones pueden devolver las cosas. Por lo que en este caso, puede comprar está devolviendo un booleano. De acuerdo, entonces lo que en realidad estamos diciendo es o es devolver un verdadero falso o un dicho tractor es si es cierto o si es falso? K. Mira esto. Si Y si dijera, uh lejos,
um, um, lo que está en esto es igual No se puede hacer igual a un derecho de función puede comprar pasando la cantidad
del artículo. Echemos un vistazo falso. Por lo que esta variable tiene el valor cae en ella. De acuerdo, entonces cuando usted cuando asigna una función a una variable, en realidad no está firmado asignando la función a esa variable. De acuerdo, en realidad
te arriesgas a asignar el valor de retorno de esa función, que es ésta o esta. Y eso es lo que está consiguiendo tienda por ahí. Es por eso que podemos usar la función como una bala en expresar aquí y hacerlo un cheque en ella. Digamos, si pueden comprar sí
vieron, van a estar seguros si también, si podemos comprar, sigamos adelante y procesemos,
procesemos , compraremos y pasaremos en el monto del artículo. Está bien. De lo contrario. De acuerdo, lo contrario sólo vamos a imprimir Teoh en fondos suficientes. De acuerdo, así que vamos a ver si funciona. Recordando si se puede comprar, estamos tramitando la compra. No tenemos suficiente dinero. Dice:
Oye, Oye, mira, Funciona igual que antes. A ver si ponemos un 400 aquí y,
Ah, Ah, creo que hizo la compra del proceso de compra. Um, y esto es imprimiendo aquí. Imprimir. Hiciste una compra de la cantidad son cool. Pequeña, uh, cosa de cadena de inserción
variable aquí, y solo diremos, uh, sí, vale. A menos que cierren nuestros paréntesis. Está bien, así que ahí lo tienes. Mira eso. Entonces empezamos aquí. Si se puede comprar. Está bien. Entonces si podemos comprar esto, que podemos, entonces sigamos adelante y llamemos a esta función para procesar la compra, que está sucediendo aquí mismo. Y luego hiciste una compra de la cantidad de 400 dólares que parece que está funcionando. Entonces ahí lo tienes. Aprendiste sobre parámetros. Aprendiste cómo las funciones pueden devolver las cosas. Y hagamos una más. Hagamos una cosa más de retorno aquí. Digamos que tienes una barra de cuerdas. Uh, nombre es igual a Sweeney Sweeney Todd. Ahí hay minúsculas. Y digamos,
digamos que realmente necesitábamos esto, uh, embarazada en una cartelera y tiene que ser todo en mayúsculas. Bueno, podemos escribir una función para esa alineación así podemos decir funk obtener versión superior, ¿de acuerdo? Y ah, podemos hacer es sólo podríamos decir cadena de entrada. Ahora string viene con un poco agradable una cosita agradable para nosotros. Una cuerda viene con una bonita propiedad que nos da de todos modos, así que estamos reinventando la rueda aquí, Pero esto es sólo para fines de demostración otra vez. Entonces vamos a pasar a la industria la cadena de entrada, y nos va a devolver la cadena mayúscula. ¿ Eso tiene sentido? Pasando la cadena de entrada, Va a hacer su magia. Nos va a devolver una nueva fuerza. Entonces está bien, puedo decir devolver cadena de entrada punto cadena mayúscula. Ahora, aquí está lo de aquí de lo que te estaba diciendo,
um, um, String tiene una propiedad de cratering superior. Esta es una propiedad. Entonces lo que hace, es que es en realidad es propiedad calculada detrás de las escenas cadena va a hacer tus cosas en mayúsculas. Y así realmente no necesitaríamos hacer esto dentro de una función. En realidad podríamos simplemente hacer cadena de propietario en sí mismo. Pero con fines de demostración. De acuerdo, así que pasaste a desviarte en devuelve una cuerda. Está bien, así que si digo var nombre superior es igual a Vale, consigue una perversión y paso. Nombra el nombre aquí arriba. De acuerdo, entonces esta variable es igual a obtener una perversión. Paso con este nombre y va a ser alguna espalda. Mira eso es ahora todo en mayúsculas. De acuerdo, entonces nuestra función tomó una cuerda e hizo algo de magia con ella, hizo algunas operaciones en ella, y luego regresó. Se devolvió la versión mayúscula. Bastante guay, ¿eh? Por lo que ahora hemos hablado de devolver las cosas súper cool. Hablemos de tener múltiples parámetros se estaban acercando al final aquí, lo cual es bueno. Estás aprendiendo casi todos los conceptos básicos de funciones aquí, y cuanto más practiques con ellas, mejor lo bajarás. Entonces, um, mejor. El verdadero truco es saber cuándo y cómo usarlos. No necesariamente esta intacta, Así que sólo se necesita práctica. Entonces sigamos adelante y,
uh, uh, hablemos de múltiples parámetros aquí. Digamos que tenemos un juego, vale y tiene múltiples jugadores en Cada jugador tiene un marcador, y sólo queremos una función para declarar ¿quién? A los ganadores. El que tenga la puntuación más alta es el ganador. OK, así que funk ik bengala ganador. Vamos a pasar en el primer jugador de parámetros una puntuación de tipo int. De acuerdo, jugador, sé marcador de tipo int. Está bien. Y podríamos simplemente hacer algo de lógica si más como lo hemos hecho antes. Si jugador un marcador es mayor que el marcador del Jugador B. OK, jugador
de imprenta, A vientos. Ah, está bien, Else Si el jugador dice a tu abeja puntuación es mayor que el jugador gana un marcador jugador de impresión B. Está bien, de lo contrario. ¿ Cuál es lo más? Es un empate. Por supuesto. Imprimir el juego. El juego está parado. Está bien, no tan mal. No se está llamando, por
supuesto, porque aún no hemos llamado. Entonces hagámoslo ahora. Declarar ganador. Vamos adelante y pongamos un marcador y así jugador va a ser 33. jugador B va a cumplir 40. Lo que va a imprimir jugador será gana, claro. Pero si el jugador A es 50 vamos a asegurarnos de que funciona El jugador A gana esto a 50 y 50. El juego está parado. Donut. Ah, tan super cool. Podrías tener múltiples parámetros. Solo notemos una cosa aquí mismo Así que cuando pones tu primer parámetro, en realidad no puso el nombre aquí mismo. Observe cómo se trata de Player X verbal aquí mismo. No es ponerlo antes en el primer parámetro. No pone eso ahí dentro. No lo pones. No se pone el nombre de la variable en la llamada de función real. De acuerdo, Pero en el segundo y subsecuentes parámetros, requiere
que pongas el nombre real del parámetro. OK, así que no te confundas. Es sólo la forma en que funciona el veloz. Entonces, en lugar de solo verlo así, Vale, contra 50 coma 50. El segundo cebador sobre el trabajo requiere que el nombre del parámetro esté ahí y luego
pases en el valor justo aquí. De acuerdo, así que esa es la única diferencia. De acuerdo, así es como pones una, uh, función junto con múltiples parámetros. Puedes tener tantos parámetros como quieras. Por supuesto, no
quieres estar interfiriendo con toneladas. Si estás haciendo eso, posible que
tengas que volver a factorizar tu código y averiguar si puedes. Mejor módulo surgen cosas, pero ,
um, eso son funciones en pocas palabras. Al igual que los fundamentos y principios básicos de la misma toma parámetros. Usted lo llama, supuesto, por
supuesto,llamando el nombre y poniendo paréntesis después de
él, puede devolver algo. De acuerdo, puedes saber dónde hay un retorno. Se puede devolver algo de una función. Puedes asignarlo a algo. Haces todo tipo de cosas divertidas con función. Y espero que se pueda ver una especie de visión del mundo real como cómo podrían funcionar en un programa. Y podrías estar seguro de que los programas de tu banco tienen cosas como compra de procesos, cosas así. Por supuesto, va a
haber mucho más complejo y seguro y cosas, pero ahí vas funciones.
23. iOS 9: conceptos básicos de diseño automático: bienvenida a todos a otro hermoso día en el mundo del desarrollo de IOS Hoy
vamos a hablar de diseño automático, la capacidad de colocar las cosas en múltiples tamaños de pantalla para que se vean bien y no se
corten la pantalla o se estiren o cosas como esa. Entonces vamos a bucear ahora mismo, ya tenemos el código X abierto aquí mismo. Y solo quiero mostrarles una nueva forma de crear un nuevo proyecto. Entonces si tienes un proyecto existente abierto, puedes ir a archivar nuevo proyecto, ¿de acuerdo? Y una aplicación de una sola vista está bien. Adelante y llama a esto como quieras. Vamos a llamar a esto restricciones de diseño automático, ¿de acuerdo? Todo lo demás aquí se ve bastante bien. Y lo pondré en el escritorio, y, uh, ahí vamos. Y ahora tengo dos proyectos abiertos. Así que vamos a deshacernos de éste de aquí, y ,
uh, estamos muy bien. De acuerdo, Así que voy a hacer esto un poco más grande. Habla de algunas cosas diferentes aquí. Entonces me has visto navegar un poco en el pasado y los iba a explicar un poco más, obviamente, aquí en la mano izquierda, lado. Tienes un montón de archivos. De acuerdo, esto es representativo de lo que está en tu estructura de archivos real en tu computadora. Tenemos algo llamado delegado app dot swift. Obtenemos un punto de control de vista Así que si este es tu archivo de código que está correlacionado con tu principal , eso es para recompensarte controlador. OK, Y ahí está tu story board, que en realidad abre lo que se llama constructor de interfaces. Entonces este es un storyboard y un constructor de interfaces, y tienes una pantalla de lanzamiento por aquí. De acuerdo, esto es lo que se va a lanzar desde tu app. Primeras cargas en tiempo de ejecución. Y hay otras cosas también para Así que si se cierne por aquí en el lado izquierdo, es un espectáculo. El editor estándar. Entonces Ok, el editor estándar significa que esto es lo que ves aquí mismo. De acuerdo, Este es un editor estándar. Si hago clic en mostrar asistente editor
, agrega otro dolor aquí en el lado derecho. Entonces la idea detrás del editor asistente es para que puedas trabajar con una parte de Europa como constructor de
interfaces y otra parte, que es el código en el lado derecho. Volvamos al estándar y luego por aquí. Tenemos control de Birgit. Y el nombre oficial que dice es mostrar ese editor de versiones. Y esto esto te permite mirar tu código lado a lado desde diferentes versiones. Ya hemos hablado de ello, y esto te permite comparar diferentes cambios que has realizado en diferentes versiones en gets. En realidad puedes mirar esos cambios aquí mismo. Tiempo real. Muy cool. La mayoría de las ideas. La mayoría de los entornos de desarrollo integrados , ya
sabes, ofrecen algo como eso es realmente genial. Entonces voy a volver al modo editor estándar aquí y,
uh, uh, también notaré aquí en tu story board. Sólo rápido. Ten en cuenta que estás usando un ratón. OK, Si no es una malicia mágica, es difícil moverse. Apple ha deslizado funciones aquí. Por lo que para deslizar el dedo hacia la izquierda y la derecha es lo que lo mueve alrededor, podrías hacerlo en un ratón mágico también está bien. Está bien, sólo emocionante. Ahora, por aquí en el lado derecho. De acuerdo, tenemos al navegante. De acuerdo, entonces esos archivos de los que estaba hablando, se llama Navigator K. Esa sección se llama Navigator, y aquí mismo tenemos el área de depuración. Entonces cuando empieces a ejecutar código excusa voy a empezar a imprimir todo tipo de cosas a esto aquí . Esto es como tu consola. Para que puedas mirar, Mira Ayers y bichos y cosas tus impresas a la pantalla. Y así estos esconden y muestran esas cosas en el lado derecho es la sección de utilidad y tiene información diferente en función de qué pantalla estás aquí. Pero básicamente, es el lado derecho. De acuerdo, así es como puedes moverte, uh, en X coca. De acuerdo, entonces ya construimos algo sencillo. Y para entender cómo construir buenas aplicaciones que sean razonables pantallas múltiples
tenemos que entender Auto Layup. Ahora, lo que hemos hecho hasta ahora es, ya
sabes, hemos hecho clic en nuestro controlador de vista justo aquí, ¿de acuerdo? Y luego hemos dicho tamaño 4.7 pulgadas, y estamos como, Vale, esto es un iPhone seis. Y entonces tal vez pongamos una etiqueta tú yo aquí, ¿
verdad? Y tal vez nosotros, uh tal vez lo ponemos justo aquí. Hice un realmente grande y lo centré y digo que podríamos decir un doble. Haz click y di, ya
sabes, soy una etiqueta, ¿de acuerdo? Y con centro lo correcto. De acuerdo, bueno, eso se ve genial, pero ¿realmente se ve genial? ¿ De verdad lo sabemos? OK, entonces sabemos que se ve muy bien en el iPhone seis porque este es un iPhone 63 ¿Qué pasa si
cambio mi simulador aquí a un iPhone por S vamos a quién pasa? No lo sé. No estoy seguro de qué va a pasar, pero vamos a ver. Está construyendo y se acerca. Tomándose su dulce tiempo en algún lugar. Vamos a agarrarlo. Vamos a forzarlo en la pantalla. Ahí vamos. Y de nuevo, esto es un poco grande, así que voy a presionar comando para encogerlo. Oh, Dios
mío. ¿ Qué en el mundo está pasando aquí? Entonces soy un sello no era Senador, por cierto, sólo desapareció. Aquí, aquí hay un Aquí hay un filete de condón que podrías hacer. Y yo solo lo hice yo mismo. Y esta es una de las razones por las que no tenemos clases guionadas aquí porque quiero
poder ver el tipo de errores que puedes tener y saber arreglarlos. OK, entonces básicamente, pongo esto en la pantalla de lanzamiento, por lo que sólo muestra ese lanzamiento. Entonces ahí lo tienes. Se llegó a ver lo que pasó en una pantalla de lanzamiento. Yo soy un sello, pero en realidad lo queríamos en su storyboard principal aquí con nuestro principal do you controller. Entonces, um, ahí vamos. Y aquí, también
podemos seguir adelante. Y como pueden ver, podemos cambiarlo. Teoh un iPhone 4.7 pulgadas. Ponga la etiqueta aquí soy una etiqueta en el lugar correcto. Está bien, No
sabemos si esa es una afirmación verdadera por ahora. Esto está en un diseño de iPhone six en el controlador de vista. Eso es una métrica simulada que establecemos. Entonces si lo construyo de nuevo en un iPhone para nosotros, acuerdo, ¿ esa etiqueta
está en el lugar correcto? La respuesta es no, no
lo es. Y así es muy común que un nuevo desarrollador ponga las cosas en la pantalla y simplemente
esperen mágicamente que estén trabajando en la pantalla. Dice que puede que solo tengas un iPhone seis ya que lo pruebas y estás como, Oh, esto se ve genial. Y luego liberas de la tienda APP en casi todo el mundo quejándose. Esto es amable. Esto no está funcionando bien porque necesitas probar una pantalla de múltiples tamaños, así que eso es lo que vamos a hacer vamos a averiguar una arreglarlo. Entonces lo primero que podemos hacer es arreglar este problema que estamos teniendo en este momento, ¿de acuerdo? Y quiero hacer un comentario que las métricas de México simuladas aquí están simuladas . ¿ De acuerdo? No necesariamente significa,
um bueno, um bueno, significa que lo que ves aquí es este tamaño de pantalla que estás soportando, pero no necesariamente significa que esté soportando todos los tamaños de pantalla. Y así que en realidad recomiendan sobre la aplicación que solo uses el tamaño inferido predeterminado, y solo eres raro. No parece un iPhone o un iPad. Bueno, ideal aquí, la idea aquí es que tomes todos tus controles, tus componentes, y los coloques en la pantalla usando lo que se llama restricciones. De acuerdo, Tú los pones, y luego funciona en todos los tamaños de pantalla. Independientemente de la resolución real en la que se coloca debido a las restricciones que le has puesto. Y tal vez eso no tiene sentido ahora mismo, pero lo vamos a demostrar. Lo vamos a demostrar. Por lo que una forma rápida de saber cómo se verá tu aplicación una pantalla de múltiples tamaños es usar prevue. De acuerdo, esta es una herramienta muy poderosa. Entonces lo que primero voy a hacer es apagar el lado izquierdo,
el navegador aquí, apagarlo para que pudiéramos tener más espacio en pantalla. Voy a mover esto ahora. Voy a dar clic a este doble círculos aquí mismo. El ayudante de redactor. OK, solo tienes que hacer clic en esto y activarlo. Ahora sigue siendo dolor, y no queremos ver el código. Sé que en realidad queremos ver algo llamado Prevue, Así que si vas por aquí hacia dice automático y si eres dice algo diferente, está bien. Uh, sólo asegúrate de hacer clic en el enlace. Los dos anillos van hasta aquí abajo para previsualizar OK en la parte inferior. Es como en un lugar raro tipo de golpearlo y ir hacia la derecha, y renuncio. Storyboard principal y bam. De acuerdo, aquí tienes un iPhone de cuatro pulgadas. Muestra cómo se va a ver. Aquí hay algo realmente genial. Puedo hacer clic en el plus por él, y puedo empezar a añadir diferentes tamaños de pantalla. Veamos cómo se ve en un iPhone seis, Por cierto, si no lo sabes, tengo 4.7 pulgadas es iPhone 65.5 pulgadas. Seis más las cuatro pulgadas como iPhone, cinco en mayor y 3.5 pulgadas es iPhone para s y antes, Por
supuesto, he tenido su iPad. Y, uh, así que vamos a seguir adelante y hacer clic en el iPhone seis. Está bien, mira eso. Entonces se ve bien. Y iPhone seis, pero un iPhone para su No así podemos ver en realidad ambas pantallas. También podemos rotarlo aquí también, y ver cómo parece que soy,
Oh, bueno, bueno, ¿por qué se está cortando? Bueno, podemos minimizar eso para hacer más espacio o si hago doble clic, hará
que estas cosas sean pequeñas. Desafortunadamente, no
hay, uh, sin tener, ah, ratón
mágico o, ah, trackpad. No hay manera de que el dedo del pie realmente se acerque perfectamente a menos que lo hagas pellizcar zoom
en tu pad de pistas o en tu ratón mágico, que es lo que acabo de hacer en este momento y así y así zoom de dos dedos pellizcar, y tienes que hacerlo aquí en el espacio en blanco. tan cool. Podemos ver cómo se ve sin tener que hacer clic en este botón de correr por aquí, lo que te va a ahorrar mucho tiempo. De acuerdo, así que primero. Llevemos a este centro de etiquetas donde él necesita estar. Entonces si lo llevo y lo muevo por aquí en el medio, mira cómo las líneas centrándolo para que tu chasqueando en su lugar. Pero por aquí, está fuera del criador. Al igual que lo que diablos es Go Won. ¿ Por qué no funciona? Bueno, es porque lo que haces aquí en este lienzo inferido, de
forma libre no necesariamente va a ser exactamente lo que ves aquí en el
lado derecho . ¿ De acuerdo? Tienes que usar restricciones. Y hablemos de eso ahora. Por lo que las restricciones son lo que se vincula. ¿ Qué solía unir elementos a otros elementos o a la pantalla, o dar espaciado y cosas así? Entonces si miras aquí abajo, está
bien, bien, hay algunas mordeduras golpeadas. Entonces lo que queremos hacer es que queramos anclar a este tipo. Está bien. Um y, uh, lo que podemos hacer es decir, bueno, quiero que esté en la parte superior de la pantalla. OK, entonces si tú si hago clic aquí mismo, lo
perdí aquí, vamos a añadirlo de nuevo. Ahí vamos. Entonces si hago clic en este botón y lo pin 14 desde la parte superior. Va a estar ahí para mantenerse bien en todos los tamaños de pantalla. De acuerdo, 14 de arriba. OK, así que agrega una restricción. Eso es una restricción. Es uno que sólo está cambiando, compañeros. Vamos a sumarlo a eso. Tú etiqueto cual es lo que Esto es justo aquí. De acuerdo, entonces ahora se agrega. Pero espera, se movió aquí a la izquierda, y estás pensando:
Bueno, Bueno, ¿por qué sujetarlo a la parte superior lo movería hacia la izquierda? Bueno, cuando no tienes todas las restricciones en su lugar y solo tal vez un diseño automático haga algunas cosas raras detrás de las bambalinas contra tu volante
y tu elección, y así es como es. Entonces tenemos que juntar todas las piezas para que esto funcione. Y así que ahora mismo se puede ver que hay un ícono azul ahí ahora, y está diciendo:
Oye, Oye, estoy anclado a la parte superior Ahora la siguiente parte es que lo necesitamos centrado en el medio, y hay un par de formas de hacer esto. Solo lo vamos a hacer de una manera, así que voy a hacer clic en este icono diferente aquí abajo. El icono de alinear. Está bien. Y voy a decir Ok, voy a decir horizontalmente en contenedor. ¿ De acuerdo? Lo que esto va a hacer es que lo va a centrar horizontalmente en medio del contenedor y ahí lo tienes. De acuerdo, Así que ahora, ahora se ve muy bien en cada tamaño de pantalla. De acuerdo, veamos cómo se ve en un iPad. Está bien. Ahí también se ve
bien . ¿ Qué opinas? Parece que si lo rotamos. No esperes hasta el final para comprobar cómo va a quedar tu app en diferentes
resoluciones de pantalla . Está bien. Te dará un gran dolor de cabeza, porque vas a tener que resolver muchas cosas en ese momento. Por lo que esta es una forma rápida de centrar y poner las cosas donde quieres que estén y que funcionen en múltiples tamaños de pantalla. Y también puedes posicionar elementos cerca uno del otro. Entonces digamos que quiero tenerte bien? Este es un tú que veo. Es una especie de fundamento de todos estos controles. Tomo esto y lo arrastro, anuncio por qué realmente no lo ves, así que voy a ir aquí con el inspector, y voy a bajar al fondo, y lo voy a cambiar por Teoh azul. De acuerdo, puedes escoger tu propio color. Y por supuesto, nuevo Mira aquí en el lado derecho. Nada se está alineando como queremos cada pantalla. Entonces vamos a centrarlo, ¿de acuerdo? Queremos centrados. Y digamos que lo queremos tan lejos de esta luz superior. Queremos mantenerlo ahí. OK, así que por aquí, como pueden ver, algunas de estas diferentes alturas entre algunas de ellas está sobre a la izquierda, sobre a la derecha, no
es el lugar correcto. Entonces vamos a dio es cosas similares. Voy a hacer clic en el icono del pin aquí abajo y voy a volver a hacer clic en El top. Está bien. Y lo vamos a poner tan lejos de lo alto. Entonces lo hizo. Y tú eres como, Espera, todo está arruinado. Oh, no, acabo de romper todo lo hará, llegando donde quieres estar otra vez. Vas a tener dedo del pie agregar restricciones, y las cosas van a parecer rotas, pero no están rotas. ¿ De acuerdo? Por lo que de nuevo, podemos seguir adelante y hacer clic en el menú de línea y debilitar Dio es click horizontalmente y contenedor . De acuerdo, hay otra forma de hacer esto. ¿ De acuerdo? Un par de maneras, en realidad, pero lo que en realidad voy a hacer es que voy a ligar este y mantener el mando. Voy a seleccionar la etiqueta. ¿ De acuerdo? Las etiquetas ya asignadas al centro de todo el contenedor, en realidad
puedo hacer clic en el enlace a línea aquí, y puedo centrar estos dos controles juntos. De acuerdo, así que quiero que tengan centros horizontales. Bueno, ya que las etiquetas ya se centran en el contenedor principal cuando hago clic en esto, esto es ahora ¿verdad? Blue View no se va a centrar con la etiqueta. Está bien. Minuto. Los centros horizontales en estos controles incluyen agregar una restricción. Está bien. Y lo hizo, pero aun así no lo puedo ver porque hay una cosa más que necesitamos dio necesitamos establecer el con
y la altura de esta vista azul así que podría dar click apagado. Entonces es solo el que está siendo seleccionado aquí. Está bien. Y ahora lo que voy a hacer es hacer clic en este,
um, um, botón
pin aquí, y vamos a hacer clic en el ancho y la altura. Vamos a obligarlo a que se mantenga tan alto y tan ancho y ahí iss ha aparecido de nuevo en la pantalla. Entonces otra vez, vas a lidiar con esto todo el tiempo. Las cosas van a saltar de tu pantalla. Eres como, ¿qué está pasando? Así que asegúrate de terminar de poner tu restricción, y como que tienes que mirar un poco al futuro para saber cómo va a ser terminado de poner esas restricciones, y luego hará lo que quieras que haga. Entonces lo que hicimos fue que nos fijaron a la parte superior aquí arriba, bien de este sello, y luego lo que también hicimos es seleccionarlos a ambos. Entonces nosotros, uh hicimos centros horizontales justo aquí. Y esto no está resaltado en este momento porque sólo tenemos un control seleccionado. Y luego, por
supuesto, fijamos la mecha y la altura de esta vista para que se mantengan igual. No importa en qué estuvieras, lo que estaba pasando se está encogiendo y desapareciendo sobre nosotros de nuevo. Yo no diseño hace algunas cosas raras, y apenas es auto lay. Ni siquiera sé por qué lo llaman así,
porque tienes que hacer tanto trabajo para que tus cosas funcionen en múltiples tamaños de pantalla. Pero está lo básico del diseño automático
24. iOS 9: diseño automático (profundizar profundizado): Oigan, todos, aquí vamos otra vez. Desarrollo de iPhone, por
supuesto. Y vamos a hablar más sobre el diseño automático y las restricciones algunas de las
características más avanzadas , para que podamos resolver problemas únicos que te encontrarás como desarrollador. Y así para este proyecto, vamos a usar un gráfico de Internet. Y yo sólo quería tirar eso aquí arriba de antemano. Este es bastante cohete aquí mismo, y tengo que dar crédito para poder usarlo. Entonces es su divino, pero diseñado por gratis pick dot com, ahí está la URL justo ahí. Esto también se incluye en el código fuente del proyecto. Corto esto un poco en Adobe Illustrator, pero ahí está. Está bien. Y tengo que escuchar mi escritorio ya listo para salir, y en realidad ya tengo un siguiente proyecto de código abierto. Entonces otra vez, voy a presentar nuevo,
uh,
nuevo proyecto,¿ proyecto, acuerdo? Y vamos a hacer de esta una sola aplicación de ustedes. Y llamemos a este auto layout avanzado. Ahora, cuando digo murciélagos, está más avanzado en el último. Pero las restricciones podrían llegar a ser aún más avanzadas, e incluso vamos a hablar aquí. Pero en su mayor parte, Este es el tipo de cosas que estarás haciendo como desarrollador profesional como alguien que está liberando EPS a la tienda APP. Entonces lo voy a guardar en el escritorio. Y había fantasmas. Salgan de esto del proyecto aquí. De acuerdo, Entonces lo que queremos hacer es hablar de cómo conseguir que tus vistas se alineen a través la pantalla y seguir manteniendo, como un flexible con, sin importar en qué tipo de pantalla se encuentre el usuario, sea cual sea el tamaño que sea. De acuerdo, entonces voy a ir por aquí y hacer clic en guión gráfico principal ¿verdad? Y de nuevo, como ya hablábamos antes. Lo voy a dejar aquí en este estilo de forma libre o porque quiero que sea árbitro. No quiero pensar qué se vería bien en un iPhone. Nos vemos bien. Y tenía yo quiero pensar lo que se vería bien en todos los dispositivos. OK, y si tienes una siesta, que específicamente cuatro un iPhone y específicamente realmente quieres diseñarlo acuerdo al tipo de teléfono específico? Se puede, por
supuesto, ir aquí. Haga clic en su inspector sus atributos, inspector, y puede cambiar el tamaño. De acuerdo a los diferentes tamaños de teléfono. Está bien, um, no
vamos a hacer eso. Vas a dio inferido. Está bien. Está bien. Entonces sigamos adelante y tirémonos de ti. Estoy escribiendo. Tienes No escuchas. Esa es sólo una forma de filtrar. Y podrías, por
supuesto, desplazarte hacia abajo hasta encontrarlo. Pero es más fácil si tipeo nuevo, ¿verdad? Y ahí está. Está bien. Y así lo voy a poner en la pantalla, y es blanco, y no me gusta. Entonces voy a ir aquí a mi inspector otra vez. Podrías cambiar alrededor. ¿ Qué? Voy con el inspector. Simplemente lo vamos a cambiar a este bonito rojo. Lo pones del color que quieras. Y entonces lo que queremos que suceda en nuestro caso es que queremos que pase por la pantalla así en todos los tamaños de pantalla. Está bien. Voy a cerrar el lado izquierdo por aquí. El navegante. Está bien. Entonces tenemos más espacio en pantalla, y voy a seguir adelante y hacer clic en el ah, asistente de editor aquí y de inmediato mostrando código. Pero de nuevo, recuerda, queremos ver la vista previa, así que voy a dar clic automático o simplemente hacer clic en los dos anillos si no ve automático y voy a ir a vista previa familia se quedó en la revisión de storyboard. Está bien, Así que ya no está haciendo lo que querías dio. Pensarías que las cosas funcionarían de la caja, pero no lo hace. Y por supuesto, si estás familiarizado en absoluto con el desarrollo web, sabes que eso tampoco funciona fuera de la caja. Tienes que hacer cantidades similares de trabajo para que las cosas se pongan en marcha. Entonces sigamos adelante y abrimos un 4,7 pulgadas, ¿de acuerdo? Y no lo es. Tampoco está haciendo lo que queremos ahí . Queremos que se vea un poco como se ve por aquí en el lado izquierdo. Entonces sigamos adelante y hagamos algunas restricciones. Ahora, ya has visto esto antes de esta parte antes de los hombres de alfiler. De acuerdo, entonces hablemos de esto. Por lo que nota cómo 00 y cero. De acuerdo, bueno, la razón por la que es 2000 es porque storyboard aquí, este controlador de vista, tiene un margen de 20 a cada lado. Y así si fuera a ponerlo justo aquí, todo el camino hasta el borde y luego haga clic en el botón pin. Ahora está en fuera negativo. 20. De acuerdo, porque es que lo está firmando a los márgenes. Ahora bien, si no quisiera trabajar con márgenes, en realidad
podría hacer clic en esta casilla de verificación aquí mismo. Preocupada a los márgenes. Quítala y nota. Ahora es cero. Por lo que en realidad lo está fijando a la esquina de la vista. Lo vamos a dejar en márgenes porque ese es el defecto, ¿de acuerdo? Y así voy a deshacer esto. Y lo que quiero hacer es que sí quiero cero desde arriba otra vez. Ahí está la marcha, así que técnicamente sigue siendo cero cero desde arriba. Ahora quiero que esto pase todo el camino a través de la pantalla, no importa en qué tamaño de pantalla le
ponga, no importa si es paisaje o retrato. Y entonces tal vez estás pensando para ti mismo, Bueno, tal vez debería hacer el con este largo. De acuerdo, bueno, vamos a quien pase si hacemos eso 5 60 Así que lo hice con 5 60 curso. Desaparece en el iPhone cuatro pulgadas otra vez. A menos que hagas todas las restricciones, las cosas son inconsistentes. Esa es la 4.7 pulgadas Vamos al iPad y,
ah, ah, el iPad sólo va parcialmente el camino a través de la pantalla. Entonces definitivamente no queremos un fijo con Bueno, discúlpame. Queríamos expandirnos a través de toda la pantalla, así que voy a mandar a Z para deshacer eso. Muy bien, ¿
ahora qué? Vamos a dio volvamos aquí. Entonces lo vamos a fijar a la cima. Sabemos que queríamos quedarnos ahí, y esta vez realmente lo vamos a fijar a la izquierda y a la derecha. No nos importa el con. Entonces al fijar el lado izquierdo 20 y el lado derecho 20 lo que está diciendo es, Hey, necesitas pegarte al lado izquierdo de la pantalla y al lado derecho de la pantalla. Y eso con va a auto sentir por ti. Entonces lo va a estirar para valorar faras ¿qué? Lo cual es realmente genial. Entonces si hago eso, va a sumar tres restricciones y bam. Y tú estás como, Espera un minuto. Ahora lo está encogiendo. Sí, los demonios del diseño automático están en contra de nosotros. Nunca temáis. El botón pin está aquí, y lo haremos, por
supuesto, a la altura. De acuerdo, entonces se está encogiendo porque no le dimos una altura Así que digamos que queremos que la altura
sea 1 28 Agrega una restricción. Y bastante seguro, está haciendo exactamente lo que queremos. Ahora puede que estés pensando, Espera un minuto. ¿ Por qué es la cena, como, no tan alta en el iPad como es la 4.7 pulgadas? Bueno, en realidad
lo es. Está bien. Lo es. Es sólo una pantalla más grande. Por lo que tener estos ahí mismo uno al lado del otro hace que se vea un poco apagado, pero todos son del mismo tamaño. ¿ De acuerdo? Súper cool. Ahora, sigamos adelante y lanzemos otra vista de tu ojo. ¿ Todo bien? Muévete justo aquí. Está bien. Y voy a hacer este color por aquí a la derecha por dentro y el inspector realmente seleccionado lo voy a hacer azul. ¿ Todo bien? Puedes escoger el color que quieras, acuerdo? Está bien. Eso es un bonito azul, um, y vamos a seguir adelante y
mandar, Ver, Ver,copiar y mandar V para pegar. Está bien. También podría que lo supieras. Copiar en él. Pegar. Está bien. Arrástrelo hasta aquí, y voy a hacer amarillo a este tipo. Ahora. Tenemos algunos colores bonitos en la pantalla. Por supuesto, como de costumbre por defecto no está haciendo nada remotamente relacionado con lo que queremos dio. Y, por
supuesto, queremos que estos chicos se reúnan en el medio y se vean realmente amables juntos. Entonces lo que voy a hacer es cambiar el tamaño de estos más pequeños. Entonces si vas por aquí a la derecha adentro, Vale, hay una regalita por aquí. A esto se le llama el tamaño Inspector. Vamos a empezar a trabajar mucho con esto. ¿ De acuerdo? Por lo que el tamaño de Specter, tiene su exposición. De acuerdo, ¿dónde está? En el eje X. Entonces de izquierda a derecha. Y la posición blanca. ¿ Dónde está? Arriba y abajo. Está bien. Y la posición 00 está en realidad aquí arriba en la parte superior izquierda. Entonces si fuera a decir 00 lo pone arriba en la parte superior izquierda. Por supuesto, eso no es lo que queremos, pero sólo para
que lo sepas, así funciona. De acuerdo, voy a mandar comandos de Ian, comer, deshacer y deshacer. Y quiero aumentar el camino a este 2 276 Vale. Y quiero aumentar la altura del mismo a 1 28 y luego sólo voy a arrastrarlo por ahí mismo. Está bien. Al 76 por 1 28 lista de lo mismo aquí a 76 por 1 28 Vale, Perfecto. De acuerdo, entonces en el lado izquierdo, está mirando cómo queremos que se vea. Y por cierto, el lado izquierdo es este constructor de interfaces aquí. Aquí es donde quieres diseñar las cosas para que se vean de la manera que quieras. OK? Y por aquí a la derecha es lo que realmente se ve. De acuerdo, Entonces lo que digo, sin embargo, es a pesar de
que, como, por ejemplo, digamos que yo también estaba puesto un con en esto. Y quiero que el con sea 10 algo realmente pequeño. ¿ De acuerdo? Y hago clic en agregar restricción por aquí en lo que realmente va a quedar en tu producto. Es realmente pequeño. Pero por aquí a la izquierda, sigue siendo realmente grande. De acuerdo, entonces esto no es reflexivo en el lado izquierdo. Esto no es reflejo de tus restricciones. ¿ De acuerdo? Este es tu editor visual, ¿de acuerdo? Y lo que realmente se va a ver es por aquí en el lado derecho. Entonces, todos modos, lo que digo es hacer tu lado izquierdo por aquí en la interfaz, pero ahí hacer que se vea de la manera que quieres. Y en las restricciones cuando las tienes todas juntas correctamente, estas cosas del lado derecho se verán como la cosa del lado izquierdo. De acuerdo, así que muy importante por aquí. Diseñarlo de la manera que quieras que se vea y luego metido con las restricciones hasta que el
lado derecho de tu vista previa se vea igual a tu lado izquierdo. Entonces voy a deshacer ese cambio porque no queremos que sea pequeño así, ¿de acuerdo? Y nos estamos acercando. Pero lo que realmente queremos es esto. Toma la mitad de la pantalla en cualquiera de los casos aquí, ¿de acuerdo? Y así hay algo especial que tenemos que hacer para que eso suceda. Lo que vamos a hacer es que vamos a seleccionar esta vista azul aquí mismo, y vamos a seleccionar la vista roja. Y lo que vamos a hacer es que vamos a ir por aquí Toothy pin button. Vamos a decir anchos iguales. Ahora estás pensando en lo que no queremos usar para ser lo mismo. Eso no tiene ningún sentido en absoluto. Bueno, en IOS, cuando se establecen ciertos tipos de restricciones. En realidad tienes que establecer primero las restricciones equivocadas, y luego ir y editarlas. Desafortunadamente, así es como es. Por lo que necesitamos establecer esto en anchuras iguales. De acuerdo, Necesitamos establecer ambos de estos dos iguales con. Y voy a explicar por qué en un momento mi click agregar una restricción. De acuerdo, eso es realmente raro. Yo lo sé. Y luego vamos a una cosa más. Vamos a dormir ambos de nuevo, y ahora vamos a alinear los bordes delanteros aquí, agarrar eso de nuevo en línea los bordes delanteros. Porque queremos que esta izquierda esté alineada a esta izquierda derecha aquí. ¿ De acuerdo? Anunciado en todo tipo de cosas funky son como, Oh, Dios
mío, ¿
sabes qué está pasando? Pero si miras por aquí, es hacer lo que dijimos. Está alineando la parte izquierda del azul a la parte izquierda del rojo, y lo está haciendo solo un largo así que está obedeciendo lo que queríamos hacer. Todavía no estamos del todo listos, Así que lo que queremos hacer para salvarlo a un hombre s Voy a dar clic a esta vista azul y por aquí en el tamaño, Inspector. Está bien, el gobernante. Aquí es donde se agregan tus restricciones siempre que tengas restricciones. ¿ De acuerdo? Y le agregas a algo. Si haces clic en esa vista, va a mostrar todas sus restricciones justo aquí a la derecha dentro. También puedes acceder a ellos haciendo clic en el lado izquierdo. Por aquí, puedes hacer clic en él, limitas a bajarlo. Y se pueden ver todas las restricciones allí así como las restricciones individuales para una
vista específica . De acuerdo, entonces estás en el lado derecho, acuerdo? Vamos a ir a esto igual con, y vamos a cambiar las cosas un poco. ¿ De acuerdo? Vamos a cambiar de aire algunas cosas. Entonces lo que quiero hacer es que quiero cambiar el multijugador. ¿ De acuerdo? Yo quiero cambiar el multiplicador. Está bien. Perfecto. Ahora, no notaste un gran cambio en absoluto, y eso está bien ahora mismo, porque tenemos que hacer un par de cosas más. Vuelve a hacer clic en tu vista azul. Hagamos clic en el menú pin. Digamos que lo queremos 88 abajo de la vista roja. De acuerdo, así que sigamos adelante y posicionémoslo de la manera que queremos que sea. Adelante y también seleccione altura. Nosotros sí queremos ser la altura que es. De acuerdo, queremos que eso siga igual, no importa lo que agreguemos esas dos restricciones. Está bien, Entonces lo que se hace es que ahora lo movió. Está bien, lo ha movido por aquí en el lado izquierdo. ¿ De acuerdo? Y es realmente grande, sin embargo. De acuerdo, así que si hago clic en él y voy aquí al inspector de tallas otra vez, ya
sabes, como Ok, bueno, ¿qué acabas de hacer aquí? De acuerdo, um, tenemos tenemos esta vista en esta vista. Bueno, las cosas realmente están haciendo lo que queremos que hagan. Entonces lo que voy a hacer en realidad es que voy a hacer clic en el segundo ítem aquí mismo, y voy a decir que invertimos primero y segundo ítem. Está basando. Lo que está haciendo es poniendo el multijugador también. Y ahí lo está haciendo el doble de tiempo. Pero no lo queremos el doble de tiempo. En realidad lo queremos a la mitad. Queremos que el con sea la mitad de esto con aquí, así que voy a revertir esto, ¿de acuerdo? ¿ Y ahora todavía no te das cuenta de ningún cambio? Pero eso está bien, porque vamos a llegar a eso en un momento aquí. De hecho, en realidad, ahí vamos. Ahora también lo es. Y ahora está funcionando. Entonces habla de lo que acaba de pasar. Entonces fuimos y pusimos el con de esta vista azul para tener un igual con de la Vista Roja. ¿ De acuerdo? No, no
queremos que eso sea igual,
vale, vale, porque esto necesita ocupar la mitad de la pantalla. Entonces todo lo que hemos hecho, voy a dar clic en esto. Perdí los detalles aquí en el doble click esto. Entonces perdimos. Disculpe. Nosotros, uh nosotros al principio estaba mostrando el doble de longitud. Y entonces lo que hemos hecho ahora, es este primer artículo aquí? Está bien. Estamos diciendo que es, uh este rojo, Ok. Ve cómo resalta cuando pasas el cursor sobre él. Y entonces lo que estamos diciendo es en este primer ítem que tenga una relación igual con el segundo ítem y que sea el con Ok. Ahora, cuando pones un multiplicador en, siempre
se aplica al segundo K dos. La segunda vista aquí, El segundo ítem, este multijugador siempre se aplica al segundo ítem. Eso es lo que estamos diciendo está bien, así que queremos que esto sea la mitad en cualquier momento dado, La
mitad del con de esta vista superior. De acuerdo, eso es lo que hace el multijugador. Entonces resuelve nuestro problema, ¿verdad? Porque queríamos que esta vista fuera la mitad de la pantalla. Por lo que sabemos que el rojo ve la pantalla completa. Entonces si eso es 100% y restas 50% esa es la mitad restante. Entonces lo que estamos diciendo es, oye, haz que la vista azul sea la misma longitud de la Vista Roja, pero vamos a darle un multijugador de dos para cortarla por la mitad. Entonces, no importa lo grande que sea la vista roja, esta azul siempre va a ser la mitad de la roja. ¿ Estás bien? Entonces por eso hicimos igual a Set. En primer lugar, lo
estabas haciendo de la misma longitud. Entonces es relativo al rojo, y sólo lo estaban cortando por la mitad. Si es confuso, está bien. Toma tiempo para bajar estas cosas. Pero puedes revisar este video y ver cómo funciona todo. Ese tipo de meterlo en tu cabeza. Las restricciones pueden ser muy complejas. Está bien, pero ahora tenemos que resolver el problema del E amarillo uno. De acuerdo, así que voy a darle clic. Vamos a hacer restricciones similares. Vamos a hacer ocho desde arriba. De acuerdo, vamos a darle una altura. Voy a añadir esas dos restricciones, y voy a seleccionar las amarillas como la roja. Y voy a hacer clic en el botón de alinear aquí abajo, y esta vez vamos a alinear los bordes finales, ¿de acuerdo? Cantos traseros. Eso tiene sentido. Desapareció nuevamente de la pantalla. No te preocupes por eso. Tienes una mirada al futuro otra vez. Piensa en todas las restricciones que necesitas hacer y luego hazlo, y luego reventará donde tiene que estar. Entonces, adelante. Y ahora consiguiendo volver a hacer clic en estas dos vistas. Está bien. Y,
ah, ah, haz clic en el botón del pin. Y al igual que la última vez, hagamos anchos iguales. Está bien, ahora, obviamente, no es
lo que queríamos ser todavía. Estamos haciendo resolver el mismo problema que hacíamos antes. Así que vuelve a hacer clic en tu vista. ¿ De acuerdo? El punto de vista amarillo. Y por aquí a la derecha, dentro donde dice igual con para ver, doble clic en él. Por lo que necesitamos volver a resolver el mismo problema que antes. Entonces pongamos el multiplicador a y otra vez. Se va un poco largo y así Está bien, Sí, eso tiene sentido. Vamos a revertir el primer y segundo ítem. ¿ De acuerdo? Y como lo hicimos,
lo repuso 2.5 en contra. Adelante y ponlo en dos. Hará eso en tu prensa dos y luego presiona enter. ¿ De acuerdo? Y ahí está bien, así que lo está dividiendo la mitad y la mitad. Ahora. Una cosa que sabemos, necesitamos un poco de espaciador, ¿de acuerdo? Porque no queremos que se toquen. Queremos ese bonito espacio o en el medio. Entonces lo que podrías hacer es realmente puedes agregar una constante aquí. Esto va a aceptar una cantidad establecida de píxeles. De acuerdo, voy a decir ocho y voy a ir al Blue View y me voy a poner. Voy a hacer clic en él, y luego voy a dar click proporcional con para ver doble click. Eso y debo poner la constante aquí a ocho. Y por cierto, cada vez que cambio estos, estoy presionando. Entrar. Entonces ellos Así me aseguro de que surtan efecto. Y ahí lo tienes. De acuerdo, así que mira eso en todos los tamaños de pantalla. aquí se ve justo como queremos. ¿ Y el retrato o el paisaje? Es decir, se ve bien en el paisaje va a paisajismo aquí. Muy bien, entonces lo que hemos hecho es que tengamos que recapitular. De acuerdo, Tomamos estas vistas es vista azul y amarilla. Los hicimos a la misma longitud de este rojo. De acuerdo, fijamos o mejor dicho alineamos el lado izquierdo de la vista azul al lado izquierdo de la
vista roja . Forramos el lado derecho del te amo al lado derecho de la vista roja. Y entonces lo que hicimos fue que acabamos de cortar el con y la mitad estableciendo un multiplicador de dos decían:
Hey, Hey, vamos a cortarlo por la mitad. Dando un multijugador de dos Así que siempre es el 50% del ancho del rojo. Y así esos siempre se estirarán y encogerán en función del tamaño del rojo. Súper, super cool. Hay un principio más que vamos a cubrir aquí. ¿ De acuerdo? Y eso es algo que se re dimensionable en base a. Además de eso, ya
sabes lo que quiero decir es, digamos que aquí no tenemos imagen, y se corta en algunos tamaños de pantalla, así que sigamos adelante y simulemos eso aquí. Entonces voy a pasar. Te imagino vista por aquí en la parte inferior. ¿ Verdad? Voy a arrastrarlo, ¿de acuerdo? Y vamos a agarrar una imagen. Entonces voy a ir adelante a mi lado izquierdo por aquí, giró navegador de nuevo en Haga clic en la carpeta Activos. De acuerdo, lo que voy a hacer es ir a mi escritorio. Se puede ver aquí mismo. Solo estoy un clic y arrastra el cohete hasta aquí para traerlo a mi proyecto. Vuelve al storyboard de punto principal, y luego se selecciona mi imagen tuya. Entonces voy a subir aquí arriba, a la derecha y volver a seleccionar los atributos, inspector, y voy a hacer clic en la imagen, pero y ponerla en cohete, también. Ahora, claro, está un poco estirado. Entonces si recuerdas, ¿
cuándo encaja el aspecto? Está bien. Y, eh, digamos que lo queremos mucho más grande que esto. Digamos que queríamos Philip la mayor parte de esta pantalla aquí. De acuerdo, entonces si hago doble clic aquí, perdimos nuestra vista previa de uso aquí. Bueno, sólo Adam de vuelta otra vez. ¿ Todo bien? Y vamos a añadir un iPad. Entonces, um Aquí vamos. Por lo que sigue en algunas cosas funky. Correcto su camino. Teoh. Demasiado grande para su iPhone. iPad de cuatro pulgadas. Está por aquí, por
supuesto, supuesto, no
es mentirle a Belle de todos modos. Um, digamos que queremos dedo del pie. Queremos alinearlo hasta el fondo de la pantalla. De acuerdo, entonces sabemos cómo hacer eso Ya. Podemos hacer clic en el botón pin y sólo una línea aquí hasta el fondo. Está bien. Y, uh, eso está bien en una restricción. Entonces están en el fondo. Por supuesto, no
está mirando como nosotros en todas las pantallas porque son solo un poquito dos grandes
¿verdad ? Está bien, está bien. Hay una cosa más que necesitamos dio Volvamos al menú 10 y hagamos clic en
Relación de aspecto , pase lo que pase. Queríamos mantener la relación de aspecto en las restricciones. Incluso más allá de la imagen misma en la, um, entrada. Mantengamos estas restricciones. Espere relación de aspecto a medida que se contrae y crece. Entonces voy a dar click. Añada una restricción. De acuerdo, Ahora hay algo de magia que necesitamos hacer para que esto funcione. Entonces lo que voy a hacer es que voy a mis cohetes ya seleccionados. Se puede ver aquí mismo. Voy a tomar esto y es super view container. De acuerdo, entonces la vista de que está sosteniendo esta vista se llama super vista. Entonces también voy a hacer clic en
eso . Sí, ambos
están seleccionados, Como pueden ver,
Ahí, Ahí, en el lado izquierdo, voy a seguir adelante y hacer clic en una línea y recordar cómo, antes de decir, a veces hay que poner las restricciones equivocadas y luego arreglarlo para llevarlas donde necesitas estar, y eso es lo que vamos a tener que hacer. Así es clic en los bordes delanteros. Y cuando digo bordes de frente, eso significa el lado de liderazgo de esto y el lado de liderazgo de esta opinión. Alinémoslos. ¿ De acuerdo? No. Es eso lo que queremos nevar? No. Es eso lo que hace aquí? Bueno, parece que sí. Hay un poco de espacio en blanco. Está contabilizado, pero eso no es lo que queremos al final. Así que vamos a hacer doble clic para salir de esto aquí y seguir adelante y hacer clic de nuevo en tu cohete con tu cohete seleccionado
aquí, por aquí a la regla, el inspector de tamaño y el aterrador espacio líder para super vista, Doble haga clic en él. Y ahora queremos cambiar algo. Entonces queremos realmente cambiar esto para que sea el, um, centro X. Vale, centro x de super vista. Entonces en lugar de hacer que el lado izquierdo del cohete coincida con el lado izquierdo de la super vista, hagamos que el lado izquierdo del cohete coincida con el centro de la super vista justo aquí. De acuerdo, Entonces voy a cambiar al Centro X. ¿De acuerdo? Y se lo movió, y ella está como, Ok ,
bueno, eso parece que está funcionando aquí en el lado derecho. Se ve que el inicio de los Cohetes arranca en el centro de la vista principal. De acuerdo, Pero eso no es exactamente lo que no vamos a recordar. Queremos que esté completamente centrado. Entonces vamos a poner un multiplicador aquí, ¿de acuerdo? Va a ser caso de punto cero 5/2. Lo que estamos diciendo es, um vamos a centrarlo el inicio de la misma al principio, o discúlpame menos centro, el inicio del cohete a la mitad de la super vista. Pero entonces vamos en realidad a un multijugador de la mitad. Entonces, vamos a quitarnos la mitad de eso. Entonces eso es lo que queremos. Queremos mover la izquierda a mitad de camino. OK, y ahora volvamos a hacer clic fuera de la pantalla. Aquí es como tu cohete otra vez. Y ahora vuelve a hacer clic en la vista aquí en el lado izquierdo. Es como el botón de alineación aquí abajo. Y ahora este atemporal a través del borde final es hagámoslos juntos algo como
lo hacíamos antes excepto los bordes finales en una restricción. Entonces si te das cuenta, las cosas están empezando a cambiar de tamaño automáticamente quienes se estaban acercando a donde queremos estar . Está bien. Pero no del todo ahí todavía. Así que haz clic fuera de él y luego recoge tu cohete y ve hacia el lado derecho. Esta vez, haga clic en DoubleClick, el que este es el espacio final. Está bien. Y ahora lo que vamos a hacer es cosa similar. De acuerdo, entonces, um, realidad ,
bueno, en este caso se intercambió. Por lo que necesitamos cambiar estos artículos. Adelante y haga clic en esto y haga clic en revertir primero, un segundo elemento porque queremos que la super vista esté en la parte inferior aquí. Está bien. Y queremos que el segundo ítem sea centro X. De acuerdo. Y esta vez, está
bien. En lugar de 0.5, pongámoslo en 1.5, y déjame explicarlo. Entonces, ¿qué está pasando aquí? Está bien. Y si pudieras
averiguarlo, solo aprendes una de las partes más complejas del diseño automático. Y en realidad te estoy mostrando esto porque muchas cosas son más fáciles que esto. Este es un tema avanzado. También hay algunos conceptos más avanzados . Pero este es uno de los conceptos más avanzados. Bajen esto. Se puede hacer casi la mayoría de cualquier cosa en el diseño automático. Y básicamente todo lo que hemos hecho es volver a decir,
Lleva el inicio de este centro de cohetes a la mitad de la vista principal. Todo este contenedor el centro aquí. Pero entonces vamos a multiplicarlo por 0.5, que lo va a traer a mitad de camino, que es justo lo que queremos. Queremos que este cohete esté a mitad de camino aquí y luego el lado derecho de aquí tiene el cohete. Queremos centrarnos nuevamente al centro. Pero esta vez, hagámoslo multiplicador de 1.5. Y por supuesto, no
haríamos. 0.5 punto cinco lo va a llevar por aquí a la izquierda. En este caso, queremos multiplicarlo por 1.5. Entonces está justo aquí en medio. Tan mismo principio, justo en dirección opuesta. Por lo tanto, es 1.5. Y esos valores que puedes usar más o menos, uh, siempre que quieras hacer algo como esto. Y así si te das cuenta por aquí ahora en el lado derecho son cohetes. Coincide en cada una de las vistas. Y una vez que esté bien por aquí, podrías estar seguro de que va a funcionar tal y como quieras en el simulador. Entonces voy a ir por aquí arriba a la izquierda y ejecutar la aplicación. ¿ De acuerdo? Veamos si está haciendo exactamente lo que queríamos hacer. Ahí vas. Está bien. Gran simulador enorme en la pantalla otra vez. Si quieres un pequeño podrías hacer comando tres. De acuerdo, somos mando a mando. Uno lo hace enorme en el mando tres. Y mira eso. Nuestro cohete. ¿ Eso qué? Justo lo que quieres Ahora, hay un ejemplo perfecto de lo que estaba hablando cuando dije Tienes que mirar hacia el futuro. Cuando comienzas a construir cosas aquí en tu tablón de cuentos, tienes que mirar al futuro de cómo podría verse en todos los tamaños de pantalla. Podría haber sacado esto en el papel. Podrías hacerlo en tu cerebro. Lo que sea. Simplemente empieza a pensar en el futuro porque puede que no se vea exactamente así, Pero mientras generalmente coloques las cosas donde las quieres, va a ser como quieres que sea. De acuerdo, Entonces esto es auto layout. Se trata de limitaciones. Es así como haces algunas cosas más complejas con él. Lo usas en tus aplicaciones. Y, uh,
sí, sí, esto hace que las interfaces de usuario maravillosas que pueden funcionar en todos los tamaños de pantalla. Y eso es lo que quieres soportar todos los tamaños de pantalla.
25. Introducción a la aplicación de iOS 9 App: Es un gran día, todos. Y yo soy Mark Price con Deb Sloves. Hablaremos del mapa que vamos a construir hoy. De acuerdo, jala bien. Se llama Tabar no confundirse con el tapper de cerveza de raíz o cualquier otro tipo de grifo
que pudiera estar pensando. Esto en realidad es un juego de clic. Y lo que vamos a hacer es poner una serie de grifos y buen juego. A medida que tocas el contador sube, la etiqueta cambia. Y cuando llegues a los grifos Oh, Dios
mío. Debí haber hecho mucho menos grifos ahí hace. El juego se reinicia, OK, Ahora estás pensando ¿Esto va a ser difícil? ¿ Esto va a ser fácil? Bueno, va a ser un poquito de ambos. Vas a aprender algunas cosas nuevas, van a estirar la mente, y luego vas a hacer algunas cosas de las que ya hablamos. Y, por
supuesto, vamos a poner algunos gráficos bonitos que en realidad he dado atribución en el propio
video en el que lo estamos construyendo. Por lo que me emociona construir esto contigo. Adelante y empecemos
26. Aplicación de iOS 9: tapper: Muy bien, señoras y señores, vamos a construir otra aplicación hoy una aplicación completa y les ayudará a profundizar en el
mundo del desarrollo del IOS. Entonces, antes de que
empecemos, sólo vamos a tirar hacia arriba. Algunas de las imágenes iban a estar usando hoy. Dar alguna atribución. Entonces vamos a estar usando a este tipo aquí mismo. Si quieres esta imagen o l, puedes sentirte libre de posicionar video y agarrarlo. Estos aire también se incluyen en el código fuente que obtendrás como parte de este archivo de video. Entonces estamos usando a este tipo de aquí. Pick gratis, gran sitio web. Vamos a estar usando a este tipo aquí mismo. ¿ De acuerdo? Seguí adelante y lo corté un poco en ilustrador para nosotros aquí en pick gratis también . Y entonces vamos a estar usando a este tipo aquí mismo. Este boleto se vuelve a poner. Corto éste abierto, ilustro un poco también, y pongo una obra de teatro, pero ahí en su lugar. Y entonces ah, por aquí, un punto de artesanía de texto En eso me adelanté y construí un logo que estará usando un oleaje también. Y solo te estoy mostrando este sitio web que podrías construir tus propios logotipos. Y así es bueno y cerrar esto aquí afuera, y voy a seguir adelante y construir y ejecutar la aplicación que vamos a estar haciendo hoy Realmente genial. Entonces aquí va. Se lo ha hecho más grande. Ahí vamos, Tapper bajo, uh, solo
será música de cabezas más frías, Pero llegaremos a eso en un video posterior. Entonces la idea es, ¿entras cuántos grifos para ganar el juego? Está bien. Y presionas play, y luego tocas similar a algunos de esos como galletas tappers o juegos de monedas Tepper que de
alguna manera se pusieron en la parte superior de la tienda de aplicaciones. ¿ Quién sabe? Pero de todos modos,
entonces, ¿cuántos grifos para ganar? Digamos que duodécimo click play y lo que vas a hacer es que vas a tocar un botón y las etiquetas podrían actualizarse. 3456789 10 11 12. Y en la investigación del juego. Si bien eso no fue mucho,
Bueno, Bueno, ¿por qué empezaste a meterte en el código? Especialmente si eres nuevo aquí, vas a ser como,
Oh, Oh, Dios
mío es un montón de cosas, Así que no te asustes. Es una buena, buena ah, pendiente para entrar en cosas más complejas. Y una cosa que sí quería señalar es en nuestras aplicaciones,
las ops que construimos de principio a fin, van a quedar realmente bonitas. Entonces hay una diferencia entre que seas desarrollador de iPhone y el resto de los programadores en el mundo. OK, Y lo que quiero decir es que otros programadores en el mundo digamos que programan en Java o C sharp u otras aplicaciones de escritorio. su jefe y a la empresa no le importa si conocen una lamida de ti. Yo bien de buen diseño, vale, a ellos no les importa todo. Tienes que enfocarte en el abrigo. No así todos los mejores desarrolladores de iPhone pueden hacer que el APS de iPhone se vea bien, si no genial y fantástico además de poder abrigos. Necesitas empezar a tener tu mente ahora mismo. Oye, tengo que empezar a poner mis chuletas de diseño en marcha. Tengo que empezar a hacer que las cosas se vean bonitas, y no tienen que ser perfectas. No tienes que ser diseñador gráfico, pero tienes que empezar a saber cómo el dedo del pie pone las cosas y hacer que se vean bien juntas. Y por supuesto que en realidad no diseñé ninguno de estos gráficos. Yo solo y bueno en Google, y eso es lo que hice. Entonces vamos a seguir adelante y empezar aquí. Voy a matar a este simulador de aquí, ¿de acuerdo? Presioné comando. Lindo para dejarlo. Y como tengo el código X ya abierto, solo
voy a ir archivo, vale, un nuevo vamos a hacer nuevo proyecto. Y esta va a ser una aplicación de vista única, como lo hemos hecho antes. Nombre del producto va a ser Taber. Y voy a llamar a la mente Tapper uh, extremo para el énfasis. Está bien. Y Swift está bien, claro, Y ah, iPhone. Y eso es todo lo que necesitamos ahora mismo. Da click siguiente, y lo voy a guardar aquí en el escritorio. Y me voy a ir. Crear repositorio git habilitado porque vamos a querer enviar esto para argumentar. Tener cuentas después fueron completas para que la gente pueda mirar su abrigo y algo rápido crear . Está bien, discúlpeme. Entonces sigamos adelante y apaguemos paisaje a la izquierda, apaguemos paisaje. Correcto. Y sólo vamos a apoyar al revés un retrato para hoy. De acuerdo, Haz esto un poco más grande para que pudiéramos verlo y debilita sumergirnos justo en nuestro guión gráfico. Siempre me gusta antes de empezar a escribir cualquier abrigo, saltar a storyboards y empezar a poner algunas cosas para poder empezar a tener ah, idea
visual de cómo van a salir las cosas, y así sabemos que vamos a necesitar algunos gráficos. Y como tengo todos los gráficos ya exportados y listos, solo
voy a hacer clic en la carpeta de activos punto x C activos aquí y, ah, voy a agarrar todas mis imágenes. encontraremos aquí en mi escritorio. Aquí vamos. Y yo solo los voy a arrastrar a todos para que los veas aquí mismo. Una gota de dragón. Está bien. Y de nuevo, jugué un poco con estos un ilustrador y una tienda de fotos para sacarles las cosas que
necesitaba de ellos. Y, uh, es muy útil si tienes tiempo para aprender a hacer lo básico de la tienda de fotos cortar cosas, re dimensionar cosas como desarrollador y iPhone, me ha ayudado tremendamente. No hay un día que pase como programador en iPhone que no use photoshop. Uh, y ahorra mucho tiempo para versus hey, tú trabajando en la empresa. Tienes una siesta. Tienes que ir más alto diseñador. Tienes que enviarte las cosas a su manera o a su manera. Muy bueno saberlo, photoshop, pero aquí no lo vamos a cubrir. Tan cool. Vamos a entrar en nuestro storyboard de puntos principales. Muy bien,
Entonces, ¿qué es lo primero que tiene más sentido hacer? Bueno, probablemente la cosa que está en la parte de atrás de la pantalla. OK, que es el fondo. Entonces sigamos adelante y al fondo justo ahí. Busquemos en nuestra biblioteca de objetos. Y si no lo encuentras, ya sabes, puedes hacer click en el usado para expandir lo que hay justo ahí en la parte inferior. Da click a este pequeñito aquí y adelante. Y tú me imagino vista. De acuerdo, vamos a arrastrarlo y centrarlo. Hermosa. Ahora, esto es hazlo a pantalla completa. Uh uh uh uh está ahí Y si te acuerdas, volvamos a nuestros atributos, inspector, y vamos a hacer una imagen o seleccionar una imagen, y va a ser un BG retro. Mira qué bonito se ve eso. Sí, yo soy como, Está bien, tenemos esto hecho. Ah, no lo olvides. ¿ De verdad lo tenemos hecho? De verdad, Probablemente no. Doy clic en esto, uh, estos dos círculos aquí el asistente de editor y hago clic Este tipo funciona es automático admitir años puede no decir que podría automático. Puede decir algo más que voy a Prevue Main. Eso es historia. Aburrido. Oh, Dios
mío. Era demasiado bueno para ser verdad. Oh, sólo
es conseguir esto se está poniendo peor aquí. De acuerdo, así que obviamente, necesitamos hacer algo de auto layout. De acuerdo, así que voy a arrastrar esto. Está bien, vamos a hacer clic en el fondo. Este es un auto fácil tarde. ¿ De acuerdo? Todo lo que tenemos que hacer es cambiar el modo aquí a la derecha. Vamos a cambiarlo a ajuste de aspecto. ¿ De acuerdo? Entonces siempre se mantiene relación de aspecto, y todo lo que vamos a hacer es simplemente fijarlo a los bordes de la pantalla. Cero. En este caso, um, sí dice márgenes limitantes de este 20 negativo. En este caso, realidad no queremos limitar a los márgenes porque no necesitamos ningún espacio en blanco. Queremos que se cubra todo el fondo real, así que voy a despegar márgenes constreñidos, y va a ir hasta los bordes. Soy un selecto los cuatro, ¿de acuerdo? Y te das cuenta que en realidad no es lo que queríamos hacer. Entonces creo que cometimos un error. Hacemos clic aquí mismo. Aviso sobre a la derecha. En el interior. No es ajuste de aspecto lo que queremos No queremos caber en la pantalla. Queríamos llenar el aspecto de la pantalla, Phil. Ah, ahí vamos. Entonces no es estiramiento. No es abrasar. Simplemente lo está cortando en los bordes. Y estoy de acuerdo con eso. Creo que se ve bien. Entonces lo voy a guardar. Y se ve bien en todos los dispositivos por aquí. Sí, me gusta. Un trato hecho. Eso fue bastante fácil. No, sabemos si recuerdas bien, sabemos que la pantalla principal tenía un logotipo y tenía un botón de reproducción. ¿ Y cuántos grifos ganar? OK, um, llegaremos a los botones donde estás tocando la moneda y todo eso después. Solo hagamos que la pantalla principal funcione aquí. Y tú eres brillante, preguntándote, como, espera. O sea, ¿va a haber más de una pantalla? Las cosas están desapareciendo. Bueno, también vamos a llegar a
eso . Entonces sigamos adelante y arrojemos otra imagen. Tú en la pantalla. ¿ Todo bien? Y sigamos adelante y seleccionemos a Tapper. Uh, ahora podrías hacer esto unos años. En realidad podrías extraer y fingir que ellos, um ya sabes de qué tamaño se supone que debe ser. Nunca quieres estirar tus imágenes de squash. Eso es un pecado cardinal, un desarrollo de iPhone. Y ah, es sólo de mal gusto. Pero nunca, nunca siento que voy a ser perezoso. Lo voy a apretar y hacer lo que sea que se vea bien. Oh, sí, Digamos que eso se ve mi nunca, nunca. Especialmente si estás trabajando con un diseñador, aunque sean unas cuantas tomas como, ¿en qué estabas pensando? Uh, tienen un ojo realmente bueno para este tipo de cosas. Nunca aprieta los lavados obtienen las dimensiones reales de la relación de aspecto. Y si no puedes recordar, como en nuestro caso, realmente no
podemos recordar, no
recuerdo cuáles son las tallas, y simplemente no sabemos. Entonces lo que en realidad puedes hacer es ir aquí a tus activos que XY activos aquí. ¿ De acuerdo? Y podemos dar click a Tapper si voy por aquí al lado derecho y hago click en este archivo Ah? No. No, esos
no. Tenemos que hacer clic a este tipo de aquí. Ah, ahí está la imagen real en sí y ve aquí a ah, imagen en el lado derecho y nota. Esto es para 97 por uno de siete. Entonces para 97 con uno de siete Heizo para 97 por 107 Así que quiero volver para 97 por 107 y
sólo voy a ponerlo a eso para 97 por 107 Y, ya
sabes, esto es un poco grande. Está bien, es un poco grande. Um, al
menos tenemos la relación de aspecto denunciada. Lo que podemos hacer es que si mantienes pulsada la tecla shift en tu teclado y haces clic y arrastras, mantendrá la relación de aspecto. Significa que no te dejará machacar y estira un turno de retención hacia abajo y haga clic y arrastre. Y se va a hacer más pequeño, y va a mantener su relación de aspecto. Entonces a pesar de que era más grande de lo que
queríamos, simplemente podríamos hacer eso aquí para que sea el tamaño real que queremos. Y ahí está bonito y bonito. No nos molestamos en los diseñadores locos y las cosas se veían bien. De acuerdo, claro,
como
de costumbre, auto layout no nos está haciendo ningún favor justo fuera de la caja. Tenemos que hacer el trabajo. Eso está bien, eso es lo que estamos aquí para que trabajemos. Entonces nos dieron nuestro logo, y sólo necesitamos un alfiler él. Correcto. Por lo que queremos un bolígrafo a la parte superior. Queremos unos 39 pixeles. Eso está bien. Ahora, hagámoslo 40 para que sea agradable, ¿de acuerdo? Agradable. E incluso Entonces, 40 de arriba es arruinar algo más que queremos hacer? Bueno, creo que en nuestro caso, vamos a forzar el dentro de la altura en todos los tamaños de dispositivo pueden. Esto es Esto es hacer que se quede ahí. Por lo que no vamos a hablar de relación de aspecto ya que tiene estas restricciones. Escuchar algo así sólo haría que el ancho y la altura para decir Ok, tan cool. Ahora nota. Todavía no está alineado en el centro. Bueno, eso es bastante fácil. Si recuerdas, podemos ir al botón de línea aquí abajo, ¿de acuerdo? Y sólo podemos decir horizontalmente en contenedor y mágicamente es ahora una línea. Entonces si hacemos zoom aquí y nuestra vista previa y seguimos adelante y agregamos y iPhone 4.7 pulgadas, todavía
se ve bien. Está bien. Lo mismo con la noche en ambos. Pero se ve bien bien bien. Avanza ahora. Por supuesto, necesitamos un botón de reproducción. Entonces, antes de haber estado usando imágenes, en realidad
podemos lanzar una imagen en un botón también. Entonces voy a arrastrar un botón aquí ahora mismo. Es Ah, es lindo y menguante, pero eso está bien. Lo vamos a repostar. Entonces fui por aquí y hice clic. El pequeño solo llegó a saber qué tipo de icono es ese. Es Es algo. De todos modos, hacemos clic en los atributos, inspector ,
y ,
uh, sólo
vamos a seguir adelante y establecer una imagen por defecto. ¿ De acuerdo? Imagen predeterminada, y va a ser botón de reproducción. Yo haré eso. Ya lo hizo un buen tamaño para nosotros aquí. De acuerdo, entonces voy a seguir adelante y borrar el texto fuera de él. Este es el título. Porque, como se puede ver, está justo ahí. Entonces voy a borrarlo y presionar Enter, ¿de acuerdo? Y ahora el arma de Texas. En realidad no
queremos, en realidad no queremos ese texto porque tenemos nuestros propios textos, y voy a seguir adelante y redimensionar esto. Sé de qué talla lo quiero. Ah, y va a ser alrededor de 249 por 120. Simplemente, uh, jugué con esto antes, y esto es sobre el tamaño que quiero aquí. ¿ De acuerdo? Y por supuesto, como se pudo ver, no
se está alineando como lo queremos, por lo que lo limita al rescate, alinear horizontalmente en contenedor. Ah, pero ahora es enorme y está ahí arriba. ¿ Lo hace? Parece que incluso creció de tamaño. Bueno, eso es porque probablemente lo hizo. Si cocinamos esa restricción aquí, sigamos adelante y fijarla al fondo 65 lejos del fondo. Y entonces sigamos adelante y dámoslo dentro de una altura que esté fija. Por lo que se quedará que no importa el tamaño de pantalla que sea, y ahí lo tienes mágicamente lo es. Haz lo que queramos. Recuerda, las restricciones no suelen verse de la manera en que quieres que se vean o tus vistas no usan esas restricciones en tu vista previa hasta que las hayas agregado todas. OK, así que no creas que algo esté roto hasta que hayas mirado un poco hacia el futuro y hayas dicho: Oh
, , creo que necesito hacer esto. Esto y esto. Y como pueden ver, nos
funcionó muy bien. De acuerdo, entonces tenemos la um, casi todas las piezas para la pantalla principal aquí. Sólo necesitamos una cosa más, que es un lo que se llama usted. Yo campo de texto. Entonces voy a teclear en ti. Yo campo de texto. Está bien. También podría simplemente escribir en campo de texto con una F y va a salir es lindo poco
buscarte . Es click y arrástrelo sobre. De acuerdo, uh, haz un poco más alto. Hagámoslo un poco más largo. Hagámoslo así como el botón de reproducción y ah, vamos y yo voy a hacer clic en el botón Thea aquí arriba y vamos a darle un
texto de marcadores de posición. Y vamos a decir ¿Cuántos grifos para ganar? Por supuesto, lo
pone en el lado izquierdo. no nos gusta. Entonces, vamos a hacer clic en el botón central justo aquí. Centro el texto. Vamos a subirlo algunos tamaños. De hecho, hagámoslo más legible. Probablemente seas billetera. Estás perdiendo espacio de frotis ahí. No se ve genial. Bueno, también vamos a arreglar
eso . Y también voy a cambiar la diversión. Odio el sistema IOS luchado por defecto. Uno de los fondos más bonitos que recomendaría usar tu absolutamente, serio? Al igual que la fuente predeterminada eres tú. Um, En primer lugar,
recorta el té por aquí. Probablemente debería explicar que recortó el té y sobre el tuyo es divertido. Cámbialo a personalizado y déjanos quedarnos ahí mismo en Helvetica Nueva. De acuerdo, quémonos ahí mismo. Creo que es una realmente genial peleada y, uh , claro, puedes elegir cualquier tipo de fuente que seas. Hay un montón de teléfono. También puedes importar fuentes personalizadas, a las
que llegaremos más adelante en el curso y, uh, mirar hecho. Y nosotros estamos como, Bueno, no
se ve tan genial. Bueno, yo estaría de acuerdo, Um, y por supuesto no está alineado donde él quería estar. Entonces hagamos algunas cosas. Está bien, vamos a seguir adelante y sólo lo dije desde abajo. Por cierto, cuando empiezas a poner las cosas, no
es tenderlas. En todos los casos a la super vista, realidad los está colocando de acuerdo a las otras cosas que están cerca de ellos. Y así estamos a 18 píxeles del botón de reproducción, y eso es justo lo que queremos. ¿ Está bien? Y sabemos también, por
supuesto, que probablemente deberíamos decirlo con para que no se encoja en nosotros, ¿de acuerdo? Y esta vez vamos a cambiar realmente lo más alto. Entonces note cómo por aquí en el lado 10, no se
puede cambiar el tamaño de la altura del campo de texto. No estoy seguro de por qué es así porque la mayoría de los desarrolladores que conozco incluyéndome a mí mismo, siempre cambian la altura de los campos de texto porque simplemente no son lo suficientemente altos, Pero no les gusta cambiarlo aquí. Para que puedas elegir. , Si,sin embargo, es que lo puedes cambiar con una restricción, y vamos a hacer click en altura y vamos a dar click en 45. OK, así que hemos tendido hasta el fondo. Lo conseguimos dentro de la altura de 45. Eso se ve muy bien. Y voy a seguir adelante y, uh oh, veamos aquí, la otra espina en ello. Y hay una cosa más que necesitamos. Seguramente eres como tenemos que centrarlo. Y si eso es lo que estabas pensando, tienes razón. Y si eso no es lo que estabas pensando, entonces estabas equivocado. OK, entonces no lo vamos a enviar a todo el contenedor esta vez sólo para ser diferentes. Simplemente vamos a centrarnos en este momento a este control porque sabemos que el botón de reproducción
ya está centrado. Y por cierto, puede seleccionar múltiples elementos. Puedes mantener presionado, mandar y hacer clic o en realidad puedes mantener downshifting. Haga clic hace ambas cosas. Entonces qué voy a hacer esta vez Porque voy a dar clic en el botón de línea y voy a decir que estos chicos tienen centros horizontales y ahí lo tienes de lado derecho. Mira eso. Un bonito, gran texel gordo que se ve bien. Y tenemos todos nuestros controles. ¿ Quieres ver tu obra en acción? Asumo que estás diciendo que sí, pero como no puedo oírte, lo
ejecutaremos de todos modos. Compilando sentir área éxito. Y mira eso. Es hacer lo que queríamos hacer. Mira eso, incluso lo más destacado para nosotros. ¿ Qué tan guay es eso? No se necesita trabajo extra. Eso es lo que hará el botón por ti. Súper cool en el talón lo por aquí. Botón de parada Y ah, hicimos algunos progresos pueden. Ahora sabemos que presionamos el botón play y entramos ¿Cuántos toques para ganar? Sabemos que las monedas van a aparecer en la etiqueta y que estas cosas
van a desaparecer para que en realidad podamos seguir adelante y simplemente tirar que tú yo aquí ahora mismo . De acuerdo, entonces lo que voy a hacer es por cosas. Voy a esconderlos. Voy a seleccionar a los tres. Esta vez, voy a ir a la derecha por aquí. ¿ De acuerdo? Voy a hacer clic oculto solo para que desaparezcan de la pantalla por ahora mismo, que lo
haga más realizable. De acuerdo, voy a tirar aquí un botón, ¿recuerdas? Porque esa, uh, esa moneda es de grifo herbal. De acuerdo, entonces hagamos esto feo, pero no tan feo o el lado derecho de tu deshacerte del presentador de texto. Ahora es invisible por aquí. Y sigamos adelante y tomemos una imagen y pongamos la moneda. Ah, qué bonito. En realidad sólo se adelantó y lo hizo por nosotros. Uh, todo por su cuenta. Tan muy cool. Está bien. Y veamos, ¿qué ciencia debería ser ésta? Es un poco demasiado grande. Voy a decir que vamos a hacer 1 72 por 1 77 Puedes jugar con esto tú mismo. Um, tanto
como quieras hasta que lo hagas bien. Uh, no tiene que ser exactamente como lo estoy diseñando aquí, OK? Y ahora en realidad no necesitamos ocultarlo. bien lo real por aquí porque sabemos que el local no va a estar ahí. OK, así que
sí, se ve un poco funky, pero eso está bien ahora mismo, porque lo vamos a diseñar. Vamos a hacer clic en la alineación aquí, y vamos horizontalmente en contenedor. Genial. Y luego me di cuenta de que el diseño automático trabajando en contra de nosotros. Bueno, pongamos un puñetazo de diseño automático en la cara. Digamos que con un ojo está fijo y ahí está. Está arreglado y ahora está en el centro. Podría estar en el lugar equivocado porque aún no lo hemos alineado a la cima. Nosotros sólo tenemos Sip. A ver cómo por aquí está haciendo lo que quiera volver a hacer. Uh, las cosas no son obediencia. Vamos a seguir adelante y hacer clic en el botón pin y este pin lo ocho píxeles de la parte superior. Si hacemos eso en nuestras dos vistas de pantalla aquí, ¿de acuerdo? Está haciendo justo lo que queríamos dio. Está bien, hay una cosa más que necesitamos, ¿verdad? Eso sería una etiqueta Ya hemos hecho esto antes. Vámonos. Te una etiqueta, pero ahí mismo en medio. Y sé que va a ser una etiqueta más grande. Entonces voy a seguir adelante y sólo hacerlo más grande ahora mismo, y lo voy a centrar hasta que me dé estas líneas azules ahí mismo. Está bien. Y luego voy a hacer clic en este raro aspecto atributos Inspector otra vez, Averigua qué es eso, ¿de acuerdo? Y, ah, vamos a centrarlo haciendo clic en este botón inter vamos a cursar, cambiarlo. Este desagradable sistema luchó, y vamos a ir a la Helvetica personalizada nueva y talla 17. Eso no está cerca de lo que necesitamos. De hecho, hagámoslo audaz. Ah, podemos cambiar de estilo aquí. Escena muy cool. Vámonos. Negrita. Perfecto. Todavía no es lo suficientemente grande. Y, ah, acercándose. Se está acercando, así que voy a hacerlo aún más grande ahora, ¿de acuerdo? Y simulemos lo que realmente va a decir. Voy a sacar la etiqueta de palabras y voy a decir 100 grifos. Se ve bien. Aún así, creo que podría ser un poco más grande. Este es un juego que conoces, necesita estar muy presente para el usuario. Está bien, eso se ve muy bien. Está bien, Ahora, negro no se va a dar, claro. Entonces sigamos adelante y usemos el blanco. Sí. No, nos vemos muy afilados. Y todo lo que necesitamos hacer es sacar a este tipo, así que sigamos adelante. Y, uh, horizontalmente y contenedor. Está bien. Entonces vuelve a ponerlo ahí arriba. Simplemente haz lo que quiera. Eso está bien. Hagamos clic en el botón pin. Vamos a anclarlo 33 píxeles de la moneda. Está bien. Agradable. Y, uh, vamos a seguir adelante y sólo mantener la altura y el con Hagámoslo fijo. Entonces, um, ah
se queda del tamaño que necesitábamos para estar bien en tres restricciones. Y así, lo puso justo donde esperábamos que fuera. Bastante cool. Pero siempre es bueno hacer. Soy algunas pruebas aquí está bien para asegurarme en tu pantalla más pequeña que se vea bien. Entonces ya sabes, nuestros juegos nunca van a ir por encima digamos 1000 grifos. Seguro que cualquiera que esté jugando a esta app no va a querer tocar esa moneda 1000 veces, así que ah, 1000 grifos es bueno, y todavía encaja aquí simplemente bien. Y luego tú si quisieras poner comas, ya
sabes, podrías probarlo. Y, uh, ya
sabes, se ve bien. Sigue sacando lo común porque hoy no vamos a lidiar con eso, Así que todo se ve muy bien. Muy bien, entonces ahora sabemos que estas cosas solo aparecen cuando el supresor de botones de reproducción realmente va a seguir
adelante y esconder estos dos. Por lo tanto, mantenga pulsado turno. Es como, ambos van por aquí y hacen clic en oculto. Ahora esas estaban escondidas, y voy a seguir adelante y una noche de las otras Y hagámoslo desde el lado izquierdo esta vez. Entonces, um pero en no, eso no es muy descriptivo, ¿verdad? Entonces si presionas enter en tu teclado cuando esto esté seleccionado por aquí en el CEO
del lado izquierdo , es azul President. Er muy duro, Sam. Está bien. Yo no llamaría a este botón de reproducción. Es bueno renombrar estas cosas, Teoh algo que es más descriptivo. Y sabes que esto es tapper probablemente debería llamar a este logotipo. Y este es otro botón. Y llamemos a esto Ah, moneda. Pero en solo estoy presionando alrededor de estos y luego ah analista toca etiqueta lbl bien. Y luego, uh, tenemos un campo de texto. Esto es retro BGE s un BG de fondo, así que probablemente lo dejo ahí. Y, um, sólo
necesitamos nuestro campo de texto. De acuerdo, vamos a llamar a esto, uh, los grifos lo llamarán txt para un campo de texto. De acuerdo, aquí vamos. Por supuesto. Ya se ha ido todo, así que sigamos adelante y ocultemos las cosas que ya no queremos ocultas. Entonces queremos no queremos esto. Queremos la obra. Pero y,
uh, uh, el logo va por aquí a la derecha, dentro y desmarque oculto, y estamos de vuelta en el negocio. Por lo que tenemos todo lo que necesitamos es faras interfaz gráfica de usuario. Ahora solo necesitamos escribir algún código, así que vamos a hacer las cosas un poco diferente hoy antes de que nos vieras. Entonces yo hablando en plural aquí, me
viste arrastrando. Bueno, ¿te mostraré qué? Te mostraré lo que hemos estado haciendo. Ya sabes, hemos estado haciendo te lo mostraré de todos modos. Entonces si salimos del modo de vista previa aquí, solo tienes que hacer clic en este tipo de vista previa aquí e ir dedo del pie automático y ver controlador. Si no hay automatics, vas a manual y luego vas a navegar por tu proyecto. ¿ Te parece tan rápido el controlador de vista? Sólo estamos dando click aquí. Entonces, ¿lo que nos has estado viendo haciendo va plural otra vez? Lo que me has estado viendo haciendo, vale, es esto. Bueno, ahora
controlan y pinchando y arrastrando y soltando por aquí en el código. ¿ Verdad? Entonces eso es genial. Esa es una forma de hacerlo. Te voy a mostrar otra forma de hacerlo. De hecho, conozco a muchos programadores que no lo hacen de esta manera. Entonces sigamos adelante y escapemos de eso. Y me voy a deshacer del,
uh, uh, editor
asistente de aquí, y voy a hacer clic sólo en Editor Estándar. De hecho, sólo
vamos a dejar esta pantalla todos juntos. Vamos a ir a ver controlador tan rápido, como, Espera, ¿qué está pasando? Y además, sigamos adelante y manguremos estas funciones aquí. Estas funciones de aire, Pero ni siquiera necesitamos verlos aquí en este momento, porque no las vamos a usar. De acuerdo, uh, sí
recibimos una advertencia de memoria. Oh, bueno, no
vamos a lidiar con ello. Entonces y te explicaremos esas funciones con más detalle a lo largo del curso. De acuerdo,
Entonces, ¿qué hacemos no puedo recordar. Bueno, por
eso lo estamos haciendo de esta manera. Porque quiero que recuerdes quiero que tengas esto arraigado en tu cerebro sabiendo hacer esto por arte. Entonces vamos a hacer un a signo y yo seré chuleta, ¿de acuerdo? Donde la semana de palabras clave va primero, y luego var bien. Y luego un nombre porque siempre haces un nombre después de una variable. Y entonces, ¿qué queremos hacer primero? Bueno, pensemos en la primera parte de la pantalla. Por lo que tiene un bollo de juego. Cuenta con un campo de texto y un logotipo. De acuerdo, vamos a necesitar todos esos porque tienes que esconderlos. Entonces vamos a agarrar primero al local. Entonces digamos sólo la semana de nuestro logo. Y una cosa que es común hacer en,
um, um, desarrollo de
iPhone. No tienes que hacerlo, pero es común poner realmente qué tipo fuera, Um, qué tipo de control es. Por lo que puedo decir vista de imagen del logotipo. O podría simplemente decir imagen local. Eso probablemente sea más corto. Y él se acuerda, imagen
inferior del tipo te imagino vista y ponemos el letrero de libra al final. Eso es lo que se llama y se desenvuelve implícitamente variable. Y tú eres como, Oh, ¿
decir qué? Eso está bien. No entiendes que vamos a estar yendo mucho a fondo en desenvolver y opcionales, que quizá hayas escuchado sobre May not Entonces sabemos que tenemos la imagen local. Eso se ve bien. De acuerdo, éste otro. I VL it semana de nuestra y ¿cuál es el siguiente que queremos hacer? Campo de texto. Entonces llamemos a esto. Ah, um timón muchos grifos. Txt. Ah, sí. mí me parece bien. Eres un campo de texto es el tipo la exclamación al final luciendo bien. Y tenemos un botón tal vez outlet semana de nuestra bien. Y ah, este va a ser trineo, pero y tienes botón con buen aspecto y auto completo está siendo muy amable con nosotros. Y, ah, sintiendo cosas lo noto por aquí. Al igual que llenó el estilo aquí. Eso es un bicho. No debe ser de campo porque aún no hemos conectado esto, pero puede desaparecer más adelante. Entonces sólo para que lo sepas. De acuerdo, así que tenemos esos tres controles. Bien. Eso es lo que queremos. Entonces, ¿qué queremos que suceda? Pensemos en ello. Queremos cuando un usuario presiona la jugada y queremos que empiece el juego. Queremos que estos controles se oculten, y queremos que los demás controles se muestren. Entonces bien podríamos seguir adelante y simplemente poner los otros controles aquí está bien, también, para que podamos mostrarles semana son. ¿ Y cuáles eran? Entonces tenemos una moneda. Biden's Vamos a llamar a esto. Llamaremos al botón de toque. Hace que el botón que toca. OK, tú mi botón en la semana de Ivy Outlet estas bien. Y vamos a llamar a esto, uh, pero en la etiqueta, era sólo la etiqueta. Entonces llamaremos a esto, um grifos, etiqueta de tipo de ustedes. Yo etiqueto. Está bien, lo estoy guardando y dejando que X codifique. Piensa que todos los errores desaparecen. Está bien. Muy bien. Tenemos todos nuestros controles aquí. Ve. Entonces hablemos de la otra manera. Vamos a conectar estas cosas. Ya lo hemos escrito todo aquí. Eso es lindo. Entonces ahora en realidad puedes ir por aquí a izquierda adentro y hacer clic en tu story board. ¿ De acuerdo? Lo que podemos dio está en tu controlador de vista aquí mismo. ¿ Todo bien? Se puede justo justo a la derecha. Haga clic y haga clic. Este ícono aquí toca etiqueta, y puedes arrastrarlo por aquí. Está bien. En la etiqueta de grifos. ¿ Ver? Hazlo, o puedes ir por aquí y hacerlo. Ahora es invisible por aquí, así que no queremos hacerlo. Lo encuentra, Pero no queremos hacerlo de esa manera. Entonces vamos porque ¿quién sabe qué? Vamos a dejarlo seguir. Entonces y nota cómo
También, solo te permitirá hacer el tipo que has definido. Entonces sólo nos va a dejar usar que tú yo las etiquetas. Sólo tenemos uno en la pantalla. Sólo se selecciona esa. Es realmente inteligente así. Vamos a hacer clic en el del lado izquierdo. Observe cómo ahora está conectada. Por lo que acabamos de conectarlo botón de toque. Está bien. Y si no hubiera renombrado estas cosas sería difícil saber cuáles estaban seleccionando aquí. Entonces el botón de toque Bueno, esa es la moneda por y está bien, el botón de reproducción, por
supuesto, es el botón de reproducción. El logo de la imagen es el logo. Está bien. ¿ Cuántos grifos? Texto. Ese es nuestro campo de texto. ¿ Y qué? Aquí los tenemos todos seleccionados. Control de visualización de búsqueda que es su por defecto. No te preocupes por eso, así que esos están todos conectados ahora para volver a nuestro abrigo. Entonces acabas de presenciar una forma diferente de hacer algo, y en este caso no hay una manera correcta o incorrecta. Es lo que más te guste. Entonces lo que sabemos es cuando un usuario hace clic en el botón de reproducción, quieres que desaparezcan el logotipo y el campo de texto y el botón de reproducción,
y queremos que aparezca el botón de toques y la etiqueta de toques. Y, por
supuesto, si recuerdas por un botón, es un click de botones para ser detectado. Necesitamos una acción de Ivy. Entonces, ¿cómo hacemos eso? ¿ Aquí en el abrigo? Vamos a seguir adelante y hacer eso ahora mismo en Ivey Action Funk para la función, Ok, y nos llamamos lo que queramos. Le das a una función el nombre que quieras, y esto se llamará Let's Say on play, pero en prensado, ok y ah, sigamos adelante y pongamos un remitente, y, uh, esto va a pasar en el objeto que en realidad fue tocado, y sabemos que nos va a mandar que tú por qué botón? Entonces vamos a seguir adelante y ponerte bien. Pero aquí dentro, quiere el signo de exclamación. Y ahí lo tenemos en juego. Botón presionado. Ahora, nuevo, esto aún no está conectado. Entonces llegamos a hacer eso. Adelante y vayamos a la principal. Eso es historia. Aburrido. Está bien. Y este botón de juego aquí mismo, lo
vamos a hacer un poco diferente también. Entonces en lugar de hacer clic derecho aquí y arrastrar por encima Vale, um, podemos Es justo aquí en la parte inferior. Acciones recibidas
27. Ejercicio: aplicación de múltiples múltiples múltiples: Bienvenidos de nuevo, todos. Nosotros vamos a construir y hacer ejercicio, y esto es sólo la visión general de lo que vas a estar haciendo. Y así voy a seguir adelante y sacar las imágenes que van a estar usando ok sobre tu en gratis pick composites y agarrar esos euros si quieres que usemos esta pequeña almohadilla rosa por aquí y vamos a estar usando este fondo de pizarra de tiza por aquí. Y entonces acabo de crear un logo en texto craft por aquí llamado múltiplos. Y por cierto, te
estaré dando todas estas imágenes en el código fuente así como en archivos separados para que puedas construir la app con estas imágenes. No obstante, me gustaría animarte mucho a agarrar tus propios gráficos y empezar a aprender a hacer eso si puedes. No te estreses por ello. Pero si puedes empezar a conseguir tus propios gráficos y empezar a acostumbrarte a encontrar cosas que te atraigan y que se vean bien y llevarlas a proyectos, así que ahí está el recurso es que vamos a estar usando, voy a seguir adelante y ejecutar la versión final de la APP. De acuerdo, esta app se llama múltiplos como puedes ver. ¿ De acuerdo? Y la idea es que un usuario pondrá aquí un número, cualquier número uno a través de cualquier cosa. Um, y, uh, se sumará. Guárdelo sumará esos números por el múltiplo. A lo que quiero decir es que tienes un running algunos y lo harás un seguimiento y agregarás por múltiplo. Entonces si sigo adelante y hago clic, digamos cinco y podrían jugar. Es su anuncio de prensa para agregar Tiene sentido. Aquí tienes el botón de agregar. De acuerdo, click. Agregar cero más cinco equivale a cinco lata. Vamos a sumar por post cinco es igual a 10. 10 más cinco equivale a 15. 15 más cinco equivale a 20 20 más cinco es 25 25 más cinco es 30. Obtienes el punto y sigues pulsando hasta llegar a un número determinado. Ahora ese cierto número que cantidad máxima de múltiplo o corriendo algunos que llegas a ti podría determinar que tú mismo y podrías codificar duro eso justo en tu código Ok, como una variable R es una constante bien, es un let y así de nuevo a enfatizan los proyectos sobre tener gráficos, y los están colocando. Esto obviamente se ha presentado muy bien aquí. Uh, con restricciones. Cualquier múltiplo que pongas va a ser lo que funciona en las matemáticas y cuando podrías jugar esconder algunos controles. Entonces algunos controles. Establecemos un texto predeterminado aquí cuando el juego aún no ha comenzado. Tenemos un botón al hacer click. Agrega lo que está haciendo aquí es tomar el actual corriendo algunos, agregarlo, agregarlo el múltiplo y darte un nuevo algunos. Está bien. Y así cuando hago clic de nuevo ahora el viejo algunos son dos más el nuevo algunos de no es igual para Ok, Así que proporcioné el código fuente para este proyecto. No quiero que lo mires a menos que absolutamente tengas que hacerlo. De verdad quiero que averigües esto por tu cuenta. Ese es el punto completo de estos ejercicios. De acuerdo, Is Teoh es averiguarlo. Si te encuentras con problemas, te sugeriría ir a nuestro sitio web e ir a la comunidad y ver qué información puedes encontrar ayuda que puedes obtener antes incluso de ir mira el código fuente porque una vez que miras la fuente código, es un poco fácil de salir. Las cosas van a empezar a retener. Así que intenta golpear un poco la cabeza. Está bien estar un poco frustrado. Eso es normal en programación. Y, uh, otra vez, te atrevería a usar gráficos propios. Pon algo de tu propio estilo en esto, y ve y diviértete con él,
y esto te va a ayudar a encabezar en las próximas porciones del programa. ve y diviértete con él, Así que buena suerte.
28. Swift 2 Arrays: Marca precio aquí con Deb pistas dot com y top of the muffin a ti hoy, te vas a sumergir justo en y hablar de un aumento o cara. Voy a ir al código X. Voy a archivar nueva zona de juegos y tirarla aquí arriba. ¿ De acuerdo? Fui al archivo de código x. Nuevo patio de juegos. Está bien. Y sigamos adelante y llamemos a esto. Ah, lo que quieras. Yo diría que mi aumento y las mujeres lo ahorran aquí mismo en el escritorio. De acuerdo, borra este código repetitivo. ¿ Y qué es? ¿ Un rayo? Bueno, y un rayo es una recopilación de datos. Ha sido útil para nosotros hasta ahora poder agregar variables, pero datos en ellas y Constance. Pero, ¿y si necesitas una colección, por ejemplar? ¿ Y si necesitas un carrito de compras o qué? Si necesitas una lista de éxitos o algo así,
tienes que encontrar la manera de cuidar a tu gente. Pero en un rayo, ¿de acuerdo? Uno de los principios fundamentales de programación fundacional. Así que sigamos adelante y creemos nuestra primera matriz rápida de nuestros nombres. Igual a ti. ¿ Listo? Está bien. John Jacob Jingle, sin embargo, y Smith Ok. John Jacob Jingleheimer Smith consiguió algunos nombres ahí y, ¿
eh qué? Esto es justo aquí. A esto se le llama una matriz literal. Y lo que estamos haciendo es que le estamos poniendo valores literales El momento en que estamos en Stan Shih haciéndolo. De acuerdo, entonces estamos creando una matriz y poniendo una variable. Ahora, probablemente
estás acostumbrado a ver cosas como var alguna palabra, ya
sabes, de tipo string igual a palabra. De acuerdo, entonces eso sería en una variable de tipo string. Bueno, esto es una matriz, y tiene un tipo es un oleaje a Ok,
Hasta ahora, Hasta ahora, los nombres es en realidad una matriz. Entonces así es como lo harías. Um, real hacer así como esto. Ah, vamos a hacer nueva línea aquí y diremos, ah, de nuestros nombres a es una matriz de tipo string. OK, entonces esa es la sintaxis para ello. Ahora bien, si me quitara estos corchetes, sería sólo una cuerda. Pero con los corchetes decían que esto es una matriz. De acuerdo, entonces no sería capaz de hacer algo como esto. Nombra dos iguales. Oye, ¿qué pasa? De acuerdo, eso es una cuerda y la cuerda dice. Pero por qué no funciona Bueno, el tipo no es cadena en esto. El tipo es una matriz de tipo string meeting. Vamos a tener un montón de cuerdas dentro de la matriz. Y así es como haces una colección. Una colección sencilla, y es súper potente. De acuerdo, así que salgamos y deshagamos de estos aquí. Y espero que ya puedan ver el beneficio de trabajar con un aumento. Puedes empezar a manipular datos, colecciones de datos, juntar cosas, y ,
ah, hay muchos usos para ello. Pero no estás limitado, Teoh. Ah, palabras. Cuerdas. Podrías hacer todo tipo de carreras prácticamente de cualquier tipo para que pudiera guardar nuestros números. igual a 44 2 33 12 y 54 Sí, Cuatro. De acuerdo, así que esto es un array apagado. Está bien. Y note cómo en los números. No les estoy poniendo cotizaciones a su alrededor. OK? Los números no tienen cotizaciones a su alrededor. Sólo cuerdas. De acuerdo, entonces esto no funcionaría, Por
supuesto, al poner eso ahí, porque eso no es una cuerda que sea una cuerda. OK, así que podríamos hacer que los números se debiliten a matón ins. Um ya sabes, uh, tal vez Tender tenga algo parecido. Como, uh, ya
sabes, gente que conoces, caliente o no, ¿sabes? Y entonces, ah, sería cierto. Falso. Verdadero falso, Falsas caídas. Falso. Sabemos lo que suelen gustar 10. De acuerdo, entonces ,
uh, ,
uh,cometes miles de millones y sus números y sus cuerdas, y hay muchos usos. De acuerdo, ¿qué pasa con esto? De acuerdo, bar, um, mixto es igual, y vamos a seguir adelante y ponerle un nombre aquí otra vez, John. Pero esta vez vamos a 200. Y esos bebés metieron una cuerda ahí dentro y es cierto. ¿ Esto va a funcionar? La respuesta es sí, pero no lo hagas. ¿ De acuerdo? No quieres poner diferentes tipos de datos en tu tarifa, y esto es más la mejor práctica. OK? El motivo por el que pones una recopilación de datos juntos es porque los datos son parte de, uh, algo relacionado. De acuerdo, si estás usando diferentes tipos de datos como ese, se vuelve realmente confuso saber qué hay en él, sobre todo saber cómo usarlo. De acuerdo,
Entonces, ¿qué vas a escuchar por mí? Y estas son las palabras de Mark Price programador profesional. No soy todo conocedor y todo poderoso, pero me gustaría decir que nunca, nunca, jamás hagas esto nunca, nunca, nunca, nunca. De acuerdo, así que voy a borrar eso de tu cerebro. Pero simplemente no quería que supieras eso. Ah, podrías hacer eso. Y ah, sé que no se supone que lo hagas. De acuerdo,
Entonces, ¿qué más podemos hacer de nuestros digamos países, Vale, así que solo estoy declarando y ah, declarando un rayo. Por supuesto que no lo ha inicializado, ¿verdad? No puedo hacer nada con él hasta que se inicialice. Entonces, ¿cómo inicializas ahora? Un rayo vacío? Bueno, casi como si estuvieras llamando a una función poner Thea. Ups. Vamos al colon aquí y pongamos los iguales Lo que vamos a decir de su país es una variable y lo que esto va a hacer aquí mismo, va a crear una matriz vacía de tipo string. OK, entonces ponemos los paréntesis al final de la misma para crear un nuevo rayo vacío. Y como pudiste ver, es justo ahí no existía antes, pero ahora lo hace mientras que Leones seis está lleno de cadena, literal es que estamos poniendo valores literales en la matriz. Justo desde el principio en línea. 14 decían que aún no tenemos ningún valor, pero vamos a hacer una matriz vacía, ¿de acuerdo? No está tan mal para que lo tengas. Se inicializa una matriz vacía. De acuerdo, vamos a ver aquí. Digamos que queríamos crear un rayo vacío. Uh, al
menos crear una nueva matriz, pero adelante y inicializarla con unos pocos valor inicial. Entonces digamos, um, queríamos decir de nuestros tres colores top. ¿ Quieres obtener los tres primeros colores de un usuario? Vamos a decir que es igual a cadena. Y ya sabes cómo ponemos los paréntesis al final. Eso es tarifa vacía. También tiene un ah especial, inicializar er justo aquí. De acuerdo, donde se puede poner en cuenta. Por lo que queremos decir tres y repetido valor. Sin color. De acuerdo, um, o si quisiéramos, podríamos poner un valor por defecto y decir, um aburrido Brown. Está bien. Y lo que va a dio es darnos una matriz de tres elementos y copiar lo mismo en ella. Entonces eso es realmente genial. Si quieres valores predeterminados en la matriz antes de empezar a usarlo, está bien. Y ah, así que estamos progresando con los Rayos en realidad no es tanto para ellos. De acuerdo, hablemos de sacarles cosas. Digamos que quiero a Teoh quiero a Teoh cambiar algo, en realidad primero va a cambiar algo que nos va a sacar algo. Entonces digamos que quiero cambiar el primer marrón aburrido. De acuerdo, entonces, uh, los usuarios ahora largos Dan, Y pueden mejorar su color. Entonces voy a decir los tres primeros colores y el corchete cuadrado cero igual. Diré azul. Entonces lo que hemos hecho es que hemos accedido al primer elemento en la matriz. De acuerdo, entonces cómo levantar el trabajo. Esto es importante. ¿ Entiendes cómo es el trabajo de aumento? Comienzan en cero. Está bien. Y ahí están secuenciados. Entonces veamos esto un poco más. Su secuencia por lo que uno es igual al rojo y dos iguales temprano sería de color muy fresco. De acuerdo, entonces lo que hemos hecho es que hemos accedido a elementos en esa matriz, y les hemos asignado valor. Entonces, cuando creas una matriz, comienza en cero. Entonces si miras esto por aquí en línea seis. ¿ Cuántos elementos crees que tienen los nombres? De acuerdo, bueno, veámoslo. Hay una, 2345 Ok, entonces ¿cómo sacaríamos a Smith? ¿ Diría bar? ¿ Un nombre es igual a nombres? Cinco. No, hay aire. ¿ Por qué? Bueno, porque un aumento de inicio en cero. De acuerdo, entonces, Jonah cero Jacobs un jingle es a heimer es tres y Smith su cuatro. Por lo que elevar siempre comienzan en cero. OK, tan super importante saber, ¿No se inician en una. De acuerdo, así es como puedes agarrar un elemento de una matriz. Y así si vuelves aquí, estamos firmando valores en la matriz. De acuerdo, 01 y dos. Y este es este índice, las llaves cuadradas. De acuerdo, lo
vas a hacer una y otra vez, y te familiarizarás con ello, pero así es como lo haces. De acuerdo, entonces hablemos de agregar elementos uno. ¿ Verdad? Entonces todo lo que hemos hecho ahora está justo aquí. Hemos inicializado una matriz con tres valores, y después hemos cambiado esos tres valores. Pero ¿y si queremos sumar cosas para integrar? ¿ Qué? Definitivamente no pudimos hacer eso. Y, uh, no
puedes hacerlo. Todos los lenguajes de programación botón swift puede. Entonces hay un favor var. Coches es igual a cadena. Entonces, ¿qué es esto? Es una matriz de tipo string, y lo estamos haciendo vacío, ¿de acuerdo? Y vamos a seguir adelante y agregarle algo. Entonces debo decir que los autos de fe punto upend y se podría poner un nuevo elemento ahí dentro. Entonces digamos, uh, BMW M tres. Ese es un auto divertido. Y, ah, vamos adelante y ah, metemos un Audi. De acuerdo, s siete. Coche muy bonito. Muy caro. Muy rápido. Está bien. Y sigamos adelante y pongámoslo. Ah, Ford Pinto. De acuerdo, ¿
ahora qué? Quien puso eso ahí como,
Vamos, Vamos, vamos a deshacernos de esta cosa. Quien ponga eso ahí dentro está loco. Entonces sigamos adelante y vamos a fe autos punto Eliminar en índice. De acuerdo, ¿en qué índice está el Ford Pinto? Bueno, BMW es cero. Audi tiene 14 Pinto también lo es. Entonces sigamos adelante y llamemos a esta función. Quítalo, índice, y se va a deshacer de los cuatro Pinto. Por lo menos creo que lo es. Entonces dime de qué quieres deshacerte. Eso es impresionante. Y sigamos adelante y sumamos uno más. De acuerdo, vamos a decir Ah 1969 Chevy Camaro, Por cierto, tengo uno de estos. Entonces si estás celoso, bueno, deberías estar bien. Entonces Y como te das cuenta de su 28 en línea. El Pinto se ha ido. Por suerte, ¿de acuerdo? Y ah, así es como puedes agregar artículos a la tarifa. Y ahora la pregunta es, ¿se agregan artículos al principio o al final? Bueno, los artículos siempre se anexan al final del rayo. Está bien hasta el final. Bueno, tal vez estás pensando para ti mismo ahora. ¿ Y si quiero estos por orden de preferencia, y ,
uh, necesito insertarlo en cierto punto? Bueno, debilita haz eso. De acuerdo, Entonces lo que es
Débilen dio Ah, digamos que queremos ponerlo al principio. Podemos decir que los autos fe punto anexar y ah, vamos adelante y ah, um, no upend. ¿ En qué estoy pensando? Inserta autos favoritos que inserten. De acuerdo, El nuevo elemento. Y eso va a ser, por
supuesto, un auto fantástico Nissan GTR. Y vamos a insertar en el índice cero. Está bien. Y ya veremos qué nos dice. Se quiere imprimir. A lo mejor llegue ahí eventualmente. Ahí vamos. Y bastante seguro, está ahí en el primer lugar. Um, super cool. Súper fácil. De acuerdo, Así que has mirado un bolígrafo. Cosas que has mirado cómo eliminar artículos podemos reemplazar artículos debilita los artículos de conjunto. Está bien. Cosas muy cool que nunca quieren dio es ah, agarrar artículos que no existen. De acuerdo, ¿
entonces no quieres a Teoh? Digamos, salvemos nuestro A car equivale a carros fe, elemento 10. De acuerdo, eso te va a dar un gran problema porque no existe. Y así eres manzana Crash. Por lo tanto, nunca excedas un elemento en matriz en una matriz que no existe. O tendrá errores en su aplicación y se estrellará. OK, entonces estamos progresando. Ahora, hablemos de tal vez una situación en el mundo real, y solo estoy haciendo esto por énfasis. Realmente no hay mucho más que plantear que esto. Hay muchas funciones de ayuda que Swift te da con los Rayos, pero en su mayor parte, este es el núcleo básico que usarás una y otra vez. Pero hablemos de ello. Hasta ahora, digamos que tenemos un carrito de compras, ¿de acuerdo? Y va a ser una matriz de tipo string, y lo inicializaría para vaciar. Está bien, es una tarifa vacía. Y, uh, tenemos un presupuesto. De acuerdo, 500 dólares. Y estoy poniendo un 0.0 al final de la misma para que sepa que es doble y no un int. De acuerdo, si no quieres hacer tipeo explícito como este para que yo pudiera podría decir eso y
funcionaría bien. Si no quieres hacer eso, solo pon el punto al final del mismo, y le hará saber que es un doble. Por lo que conseguimos un presupuesto de $500 de nuestro monto actual del CARRITO equivale a 0.0. Entonces no hay nada en nuestro auto actualmente, y sigamos adelante y función creativa. Como hemos aprendido en lecciones anteriores, agrega artículo al carrito y esto va a tener dos parámetros. OK, primero siendo el artículo y que tiene nombre, la cadena y el 2do 1 va a ser el precio del tipo doble. Entonces, siempre que vayas a llamar a esta función, vas a pasar un nombre de artículo y su precio. De acuerdo, entonces si monto actual de la tarjeta más precio así más el precio que venía, eso está entrando. Si es menor o igual a nuestro presupuesto, vale, significa
que podemos comprarlo. Entonces, carrito
de compras. Me perdí la t en eso. ustedes probablemente les gusta que falte una t pero no me pueden hablar para decírmelo Así que no lo
vi. Perdón. Carrito de compras punto anexar y ah, pasando el artículo. Entonces si nos lo podemos permitir, pasemos el artículo. Y entonces, por
supuesto, vamos ah, sumar a nuestra cantidad actual de tarjeta más precio igual. Vamos a sumarle el precio. Está bien. De lo contrario. Ah, imprimir. No hay suficientes dineros. Ahí vamos. Y Ah, para aquellos de ustedes que están vigilando fuera de Estados Unidos, ustedes son como, Oh, ¿ dinero
es un término americano? No, creo que lo acabo de hacer o sal en algún videojuego en algún lugar. Entonces, no vengas a mí para practicar inglés, por favor. De acuerdo, agrega artículo al carrito. ve bien. Ahora, aún no lo
hemos llamado, así que sigamos adelante y hagamos eso. Agregar artículo al carrito. Uh, ¿qué es un buen juego que es? Salió Final fantasy 10 Ah, y 10 2 Clásicos Remade para los ps four, que, por
supuesto, es el mejor sistema. Si no tienes uno, es increíble. En el precio es de $50.25 Vale, alguien de allá está quejándose. Nuestra caja X es la mejor. Bueno, Xboxes. Bien. Teoh yo solo estoy, uh sólo estoy tratando de causar una pelea. Entretenerme aquí donde estoy hablando conmigo mismo. Me vuelvo un poco loco. Tienes que hacer esto por un tiempo porque no estás sentado frente a mí. Estás sentado frente a tu pantalla y probablemente te estés hablando contigo mismo. Entonces voy a seguir adelante e imprimir el monto actual de la tarjeta después de agregar cada artículo al carrito y debo decir, agregar artículo al carrito de nuevo. Y esta vez, vamos ah dice que tenemos fantasía final. Probablemente vamos a necesitar algo de lejía. Um, porque es un RPG a veces es tan largo, y puedes hacer tu colada entre las escenas de corte largo o algo
así, Así que eso va a 3.45 dólares. Ah, y sigamos adelante y,
um, um, presentador un par de veces y sumamos algunas líneas más aquí para que podamos ver imprimir cantidad de carro actual . Hagámoslo otra vez. Una línea innecesaria ahí y ah, se imprimirá eventualmente. Ahí vamos. OK, y vamos a añadir otro artículo en el artículo al carrito. Añadamos un sofá. No se puede jugar al call of duty sin sofá. Por lo que 150 dólares en 72 centavos. Esto, por
supuesto, es un sofá Walmart, no un sofá de calidad. Y vamos a imprimir la cantidad actual del carrito, ¿de acuerdo? Y aún nos vemos bien. Entonces tenemos, Ah, 200 dólares en nuestro cartón, ilustrado por un PS cuatro. Nos lo colamos en el carrito sin decírselo a su esposa, y nos olvidamos cuál era el presupuesto. Y vamos a ver si nos deja comprarlo. Contento en impresión, Importe actual del carrito. Y esto debería imprimir $204 Porque la compra no debió haberse hecho aún. Nuestra función lo impidió. Tan bastante cool. Echemos un vistazo a lo que hay en nuestro carrito. Imprime nuestro carrito de compras, el array, todo
el rayo. Sólo imprimámoslo. De acuerdo, zona. Por lo que hay tres artículos lejía fantasía final y el sofá. Entré el juego, pero la esposa no dejó entrar al sistema. Y ahora ni siquiera puedo tocarla. Entonces parece que voy a estar haciendo mucha ropa y sentada en el sofá no haciendo nada. Entonces aquí hay un aumento y su forma más básica, y lo que acabamos de hacer en este momento va a ser la mayoría de su uso con un aumento. Vas a empezar a pensar en los tipos de datos y colecciones que quieres usar con él. Ya sabes, carritos de
compras. Un gran ejemplo. ¿ Para qué puede usar una matriz siempre que necesite una lista para algo? Está bien. Por lo que una herramienta muy poderosa. Súper fácil de usar. No tan mal. Y puedes referirte a este video si olvidas la sintaxis. Y hay un montón de cosas geniales que puedes aprender sobre ellas. Fui veloz a medida que avanzas y creces y aprendes. Entonces eso es un aumento. Enhorabuena.
29. Bucles de Swift 2 Loops: Oigan, todos. Mark Precio aquí de Dev Slopes y estamos aquí y en el centro de Cupertino. Y tengo un invitado especial me hoy. Tim Cook está en el programa para ayudarnos a codificar. Sí, um, realidad sólo
estoy en mi sótano, pero vamos a rendirle homenaje escribiendo hoy algún abrigo realmente genial. Entonces sigamos adelante y empecemos. Vamos a hablar de bucles, ¿de acuerdo? Y Ah, bien. Y abre aquí tu código ex. Yo quiero abrirla. Voy a archivar Nueva zona de juegos. De acuerdo, lo
tiraré en la pantalla aquí, archivaré nuevo patio de recreo, y vamos a seguir adelante y llamar a esto bucles. Ahora ponte el escritorio. Perfecto. Entonces lo que pasa con los loops es que los loops son lo que permiten que un programa se ejecute eficientemente para realizar muchas operaciones sin tener que copiar y pegar y repetirte mucho. Está bien. No te repitas. Ese es el principio seco. De acuerdo, entonces hablemos de bucles y cómo pueden ser efectivos. Digamos que tengo una variedad de edades. Acabamos de hablar de un aumento no hace mucho tiempo. De acuerdo, Edades 23 25 41 51. De acuerdo, digamos 62 Vale, Ahora, digamos que queremos saber qué edades son mayores a 50. De acuerdo, bueno, sin un bucle de cuatro, podría estar limitado a hacer algo como esto. Y digamos que queremos imprimir al cabildo las todas las edades que son mayores de 50 años. De acuerdo, 50 años más. Entonces lo que tendría que hacer es algo así. Si edades cero bien es mayor o igual a 50. De acuerdo, estamos contentos y decimos imprimir. Tienes 50 años o más. Está bien. De lo contrario si la edad uno es mayor o igual a 50. Imprimir. Tienes 50 años o más. Creo que estás empezando a ver el patrón aquí, pero voy a seguir adelante y a tirar un poco de sal a la herida y hacerlo aún más doloroso para ti porque necesitamos demostrar lo doloroso que es realmente esto. Está bien, sigue y sigue y sube. OK, así que pasa por cada uno de los elementos de la matriz hasta llegar al final y seguir adelante y hacer tu lógica. O, ya
sabes, podríamos haber hecho algo como esto. Si las edades cero es mayor o igual a 50 o si las edades uno es mayor o igual a 50 o si las edades a es mayor o igual a 50 entonces vamos a seguir adelante e imprimir. Eres casi un poco viejo, pero si tienes 50 años o más y viendo este video, eres super cool. Y en mis ojos no estás tan bien ambos, Muy bien. Tiene sentido. De acuerdo, empezar a ver cómo esto puede ser un poco doloroso y por cierto, solo meterse aquí hablando de edades. En realidad he enseñado a gente en sus cincuenta y sesenta que han pasado, en cuestión de semanas de no saber ni siquiera, apenas tuvieron que usar una computadora para trabajar como desarrollador profesional asnos en el trabajo. Por lo que nunca eres demasiado viejo para codificar y para hacer algunas cosas grandiosas. Y algunas personas incluso trabajan desde casa ahora y solo pueden hacer que sea mucho más dinero. Pasar más tiempo con la codificación familiar es el lugar para estar, especialmente la programación para iPhone. Entonces me alegro de que estés aquí, y si no puedes escuchar mi voz, significa que no estás aquí, y eso es desafortunado. Entonces hablemos de una mejor manera de hacer esto, y esto es bucles Esto es cuando comienzas a entrenar tu cerebro para pensar como un programador. ¿ De acuerdo? Tienes que empezar a pensar de manera diferente. Ahora. Esto es algo que no estás acostumbrado a ver en el mundo real. La idea de bucles. De acuerdo, pero así es como lo haces con programas y computadoras, y es tan poderoso. Entonces si quisiera hacer esta misma lógica, Vale, lo que haría es, um, escribir un bucle for. OK, así que vamos a seguir adelante. Y, uh, y por cierto, no
lo hizo,
uh, uh, manera sólo debería asegurarse de que ese show de que funciona aquí. Entonces o si envejece. Ah, ya
sabes, tres es mayor o igual a. Ah, 50. De acuerdo, 0123 Sr. Print, Al menos algo esta vez son hace. Por lo que hemos calificado a uno de ellos. Eso está bien. Yo sólo te enseño ese trabajo. Ahora, sigamos adelante y hagamos un bucle de cuatro. Vale, Entonces lo que podría hacer es decir cuatro var X es igual a X igual a cero punto y coma, mientras que X es menor que edades conteo de puntos X más y luego abrir y cerrar. Tirantes rizados. De acuerdo, así que unas cuantas cosas diferentes aquí. Probablemente estés como, ¿qué está pasando aquí? Entonces sigamos adelante y hablemos de ello. Entonces primero fuera cuatro. Es así como empiezas un bucle de cuatro en Swift. Simplemente usa el cuatro p o es una palabra clave reserve. No lo uses en ningún otro lugar excepto cuando quieras hacer un bucle. Ahora bien, esta primera parte aquí te parece probablemente un poco familiar. Var X es igual a cero. De acuerdo, solo
estamos declarando una variable llamada X y la inicializamos. Cero. Yo también podría haber dicho bar bla o lo que yo quisiera. De acuerdo, es sólo una variable. Y estamos diciendo:
Hey, Hey, ponlo en cero. Esta es la fase inicial Isar de un bucle for. Y entonces estamos diciendo, Mientras que X es menor que edades conteo de puntos Esta es una condición. Esto es como una verdadera condición falsa. Entonces si X es menor que edades conteo puntos bien. Y lo que es ages dot No puede qué edades es nuestra matriz, y así conteo de puntos es en realidad una propiedad en una matriz que nos dice cuántos elementos Aarón lo. Entonces todo lo que está haciendo es decirnos cuántos artículos hay aquí. Entonces si fuéramos a ejecutar primero este código, sabríamos que el recuento de puntos de edades es igual a 12345 Hay cinco elementos en esta matriz. Y luego dice X plus. Además, Así que este es el er incremental o el bloque de finalización del bucle for. Entonces cómo funciona es que empieza aquí. De acuerdo, X es igual a cero. Está bien, Esto empieza justo ahí. De hecho, vamos a seguir adelante y hacer esto un poco más visual para ti Aquí. Entonces esta justo aquí, esta parte de aquí, esta es la meta entera Isar. De acuerdo, ese es el Isar inicial. Eso es lo que pasa antes de que las impresiones de cuatro bucles. Está bien, antes de que esté bien, sean cuatro. Lo tengo. Eso es lo que pasa antes de entonces tenemos Justo aquí está la condición. De acuerdo, Entonces lo que estamos diciendo es, si X es menos en edades punto Contar ejecutar el bucle. De acuerdo, entonces otra vez, este es Onley. Corre una vez al principio, el izer inicial de nuestra X es igual a cero. Pero esto aquí mismo, esta condición se ejecuta cada vez antes de que el bucle vuelva a pasar. De acuerdo, entonces un bucle va una y otra vez hasta que le digas que se detenga. Entonces esta condición bien, esta es la condición. Es así como le dices a tu cuatro bucle que detenga la condición. De acuerdo, así es como le dices a tu bucle de cuatro que se detenga. ¿ De acuerdo? Y entonces tenemos el, uh, este incremental aquí. ¿ Qué sucede al final de cada iteración del bucle? De acuerdo, ¿sí iba a suceder al final, y le estamos diciendo que agregue un dedo X. Vale, despejamos este año. Entonces, básicamente, hablemos de lo que realmente va a pasar con edades aquí. Por el momento, X es igual a cero. Eso se ejecuta en los inicios. Conocemos X cero. Está bien. Y mientras X es menor que edades conteo de puntos, Así que digamos que estamos iniciando el bucle de cuatro. OK, X es menor que edades conteos de puntos. Entonces si vamos si hacemos esto, vale, va a entrar justo aquí. Se va a ejecutar esto. Se va a ejecutar Cualquiera que sea el código que hayamos escrito aquí mismo, aún no
he escrito ninguno, pero eso es lo que va a pasar. OK, y en este punto en el tiempo, Ok, X es igual 20 Ok, entonces esto fue cierto. X era menor que edades. Ese recuento causa edades dot El recuento es de cinco y X igualado. Cero. Entonces entró aquí, está bien. Y luego cuando se ejecuta todo tu código. Al final, va a correr esto. Por lo que X ahora es igual a uno. Y luego vuelve a tu bucle for aquí y ex ahora es igual a uno. De acuerdo, entonces X es menos en edades. No puedo. Sí, eso es cierto. Entonces volvió aquí y se va al final otra vez. X es ahora igual a dos. Entonces esto es ahora también. Y lo que está diciendo es, si dos X, si dos es menos que una cuenta justa bien, la cuenta edades es de 52 es definitivamente menos de cinco. Entonces vamos a pasar por el bucle otra vez. Entonces X es igual a dos, luego golpea aquí. Por lo que en el Nexo tres es tres menos de cinco. Eso es lo que estamos diciendo aquí. Bueno, está seguro que lo es. Para que sepas que conocemos los tres de X. Está bien. Y, uh, vamos aquí otra vez. Ahora X es igual a cuatro. Está bien. Es por menos de cinco. Bueno, sí, lo es. Entonces X es para y volvemos a entrar en el bucle y luego vuelve a sumar. Ahora X es igual a cinco. Ok, ahora son cinco menos de cinco. No, la respuesta es falsa. Cinco es igual a cinco. Pero cinco no es menor a cinco. Por lo que este bucle se rompe. Ya no corre. Ahora estás pensando, Espera, hay cinco elementos. No debería Esto ha sido igual a cinco. Bueno, si te acuerdas, correcto. Ah, levanta. Siempre empieza en cero. De acuerdo, entonces si esto fuera para decir si X es menor o igual a las edades no cuentan. Habría pasado por una vez más. Pero nos estamos deteniendo mientras es menos de edades conteo de puntos. Y eso es algo que vas a hacer todo el tiempo con cuatro labios. Sólo tienes que saber que si comienzas en cero, probablemente
vas a querer hacer, um bueno, X es menos que edades que cuentan o como sea el nombre de tu variable,
mientras que es menor que no menor o igual a. Está bien. Y así es como corre un bucle de cuatro, va a ir una y otra vez hasta que le digas que no lo haga. Entonces si quieres ver esto en la práctica, todo lo que tenemos que dio bien es una impresión esta impresión, y solo podríamos imprimir x k la variable. Está bien, y,
ah, ah, guárdalo. Está bien. Y fíjate cómo dijo que corrió cinco veces. Eso se espera porque las edades tienen cinco elementos en ella. Por lo que corrió cinco veces, al igual que explicamos en nuestro ejemplo. Y solo estoy haciendo clic en esto. Ah, este botón de aquí. Y por supuesto, pasó a través de impresos todos ellos. Um, entonces, um, muy cool. Entonces acabamos de hacer un look de cuatro cuando se imprimió. De acuerdo, ahora, ahora rehagamos nuestro ejemplo. Eran hacer antes. ¿ De acuerdo? Y todo lo que tenemos que hacer es una var. Edad es igual a edades. Corchetes X. De acuerdo, hablemos de lo que está pasando aquí. Entonces estamos creando una variable llamada edad, y luego estamos diciendo que es igual a edades. Ex blanco, ¿Qué está pasando? Bueno, si recuerdas y el otro video para sacar elemento de una matriz hasta el momento y la edad es igual edades, recuerda cómo ponemos un cero ahí. Entonces estamos diciendo Hey, saca el primer elemento de él y guárdelo en esta variable. Eso es lo que decíamos antes, y ah, aquí
no es diferente. Solo estamos usando una carrera en impuestos para agarrar elemento de ella. Ahora, la diferencia es que estamos usando el bucle for porque sabemos que la X va a
cambiar continuamente . Está bien, va a cambiar continuamente. Y así vamos a usar eso para agarrar los índices. Y por supuesto, podemos estar seguros de que no va a salir del alcance de nuestra matriz siempre y cuando hagamos que la X sea menor que las edades que cuentan. De acuerdo, si fuera a decir, ya
sabes, algún número aleatorio aquí, 200 ¿Qué? Vamos a tener un problema, Porque las edades no tienen 200. Y esto va a llegar hasta 200 se va a romper muchas veces. Y ahí va. Ya nos está rompiendo, porque ah, construye en tiempo real ahí. Entonces quieres usar el recuento de matrices en conjunto con el bucle for, Ok. Y así ahora, pero debilitar dio decir si la edad es mayor o igual a 50. De acuerdo, sigamos adelante e imprimamos. Um, tienes 50 o más. ¿ Y cuántas veces esperabas que imprimiéramos? Echemos un vistazo dos veces. Bueno, dos de los números de aquí son mayores o iguales a 50. Entonces mira esto. Entonces imagina si esta matriz tuviera un 1,000,000 de personas en ella. Obviamente no podías hacer nada como esto es malo, pero con una matriz y un bucle de cuatro podrías simplemente leer a través. Y por supuesto, la clave es que estos números cambian los intercambios. Se pasa Así que de nuevo va inicializar es al principio a cualquier valor que quieras. Por lo general es X igual a cero I o como sea variable que quieras llamarlo. Y entonces lo que hace es que hace Esta comprobación es X menos de cinco. Si su excelencia y sus edades cuentan es cierto. Y de nuevo, esto es sólo una condición que podríamos haber dicho, uh, podríamos haber dicho si, um, feliz es infeliz. De acuerdo, podríamos tener que poner basura ahí dentro así. Um, podría haber dicho, Ah, si feliz es igual a feliz, um, me comparan cuerdas. Entonces es sólo una condición. Cualquier tipo de código condicional que pueda escribir. Puedes ponerlo ahí, pero tiene sentido poner algo que sea relevante. Entonces mientras X es menor que edades, la cuenta X plus y luego agarramos la edad yendo a la matriz, poniendo los corchetes al final y poniendo el índice en ella. De acuerdo, y estamos usando X porque X está cambiando continuamente para que podamos contener a Lee. Agarra cada elemento a lo largo de todo el rayo, y luego simplemente escribimos el código. Ahora, si estás confundido en absoluto por
esto, está bien. Mira este video una y otra vez y toma tiempo y toma práctica. Toma mucha práctica, y se convertirá en segunda naturaleza para nosotros. tan muy geniales. Sigamos adelante y solo construyamos una pequeña y divertida app para reiterarla más. De acuerdo, voy a seguir adelante y voy a archivar nuevo proyecto y una aplicación de una sola vista siempre me gusta probar. E incluso cuando estoy haciendo mi propia programación, intenta hacer algo de diversión con ella. Porque la programación y un patio de recreo todo el día se ponen realmente, realmente aburridos. Al menos lo hace por mí. Entonces hagamos algo divertido. Vamos a llamar a esto viejo gorras cerraduras en la vieja escuela Un Mac. ¿ Por qué no? Y todo esto se ve bien aquí. Haga clic en Siguiente. Ponlo en mi escritorio, y Ah, ahí vamos. Simplemente haz clic en tu story board por aquí en el lado izquierdo. Haga doble clic en él. Dedo del pie. Tire hacia arriba en la vista. Asegúrate de que la vista seleccionada aquí y vamos a usar fueran para que pareciera una
computadora vieja y simplemente imprima algunas cosas en ella,
usando un bucle for, usando un bucle for, simplemente se asemejan y financian. Entonces voy a hacer clic en el, um Estamos buscando atributos, Inspector Icon por aquí, y vamos a cambiar el fondo. Dos negros, Ok. Y yo voy aquí abajo y tipeo en nuevo. Dejo la etiqueta para encontrar la etiqueta, y la voy a arrastrar por aquí como, así que hazla un poco más grande. De acuerdo, Vamos a lucir bien. Se ve bien. Voy a centrarme en el medio, lo
empujé aquí un poco. Voy a arrastrarlo hacia abajo, hacerlo bonito y grande, así podría caber alrededor de 10 líneas de texto en él. De acuerdo, Ahora, lo que voy a hacer es del lado derecho donde dice líneas. Sigamos adelante y solo cambiemos esto a 15. Y parece el color que puedes escoger diferentes colores con tan solo un toque donde dice dónde está
este blanco. Sólo tienes que darle un toque. ¿ De acuerdo? Lo que va a pasar es que este pequeñito va a aparecer y puedes arrastrarte por ahí. Si tienes una pantalla diferente aquí, puedes cambiar estos alrededor. Ah, pero podrías simplemente ir por aquí a este pequeño color voluntad y bonita pantalla para nosotros. Son igual que las viejas computadoras. Y, por
supuesto, vamos a deshacernos del feo sistema para y simplemente hacer Helvetica nueva porque es más mejor. Y, ah, se ve bien Así y queda la línea, lo cual está bien. Sólo necesitamos algunas restricciones aquí para que no se mueva sobre nosotros. Vamos a mantener el con y mantener la altura y vamos a fijarlo a la parte superior. Por lo que con la altura, pin a la parte superior. En torno a 36 píxeles está en mente. Tus años podrían ser lo que quieras. Haga clic en agregar, y la única otra cosa que voy a hacer es ir al menú de alineación aquí, y voy a centrarlo horizontalmente en el contenedor, y eso debería hacer el trabajo. Vayamos a nuestro asistente de editor aquí y hagamos algo de conexión Magic control. Arrastra tu etiqueta en el lado izquierdo por
aquí, hacia la derecha por dentro, y voy un poco más rápido en algunas de estas cosas porque ya has hecho esto antes. En el punto de esto en realidad es, ah, la conexión de tomacorriente. El punto de esto es aprender cuatro bucles y trabajar con un raise Eso Sigamos adelante y
solo llamemos a esta lbl principal, que está bien. Y lo que vamos a dio es ah, definir una matriz. De acuerdo, un aumento y cuatro bucles van de la mano. Si estás trabajando con una matriz, probablemente
estés trabajando con el bucle for. Y si estás trabajando con A para probablemente estés trabajando con una matriz en la mayoría de los casos. Así que solo sepas si escuchas la palabra odiar it array sobre esta colección o iterada sobre estos datos, probablemente signifique que estás usando un bucle for para generar sobre Andre o colección de algún tipo . Entonces vamos a imprimir algunas frases como cuando la computadora se cargue por primera vez. De acuerdo, entonces frases iguales lo convertirán en una matriz literal. Entonces vamos a, uh, arrancar desde disquete dr dot y voy a haber puesto nuevos personajes de línea ahí. Bueno, eso va a hacer es va a forzar una nueva línea en su sello que ese extremo de barra no será leído. No podrás verlo, pero en realidad hará que pase a la siguiente línea. De acuerdo, vamos a hacer otra lectura desde disco. Recuerda cómo estos hombres, estas viejas computadoras en el día que ponías un disquete y sé como, oye, y pitido y como, despierta todos y todos sabían que estabas en la computadora y ah, Y entonces, por supuesto, cuando subiste a la computadora, um, todo
era verde y negro. Buenos tiempos. Ah, actualizando registro, lo que sea. Lo que sea que eso signifique. Actualización del registro. Tengo una nueva línea aquí. Está bien. Y ah, supercool. Y vamos a ah, hacer algunos puntos. Nueva línea. Y por cierto, los estoy separando por comas porque así es como se una matriz separada elementos. Ah, y así solo estoy separado por comas aquí para indicar que es otro elemento de la matriz. En minúscula nueva línea ahí. Y hagámoslo Ah, sólo por diversión. Un conjunto de puntos más realmente largo. De acuerdo,
Está haciendo su cosa de carga, y ah, entonces uno está terminado Loading dirá Welcome, Jessica. Bienvenida, Jessica. Jessica, nos alegra que estés aquí en la clase codificando con nosotros y Ah, me alegro de que estés tu nombre está incrustado en este video aquí. Tan nueva línea. Bueno, quiero hacer una nueva línea dentro de esto. Frase actual aquí no tiene que estar en un nuevo elemento ah ray. Es agradable volver a verte. Es hablar Y los que somos. De acuerdo, así que hay frases. Entonces si miro los comentarios, parece que tenemos uno. Hacer 3456 alrededor de siete frases. Está bien. Y cuando queremos hacer es solo usar un bucle for para ponerlos en nuestra etiqueta aquí. De acuerdo, entonces , ya
sabes, no podría simplemente no puedo hacer esto. No puedo decir que principal etiquetado en texto es igual a frases. Escribir. No tiene sentido porque simplemente puedes meter una matriz en un campo de texto. Tenemos que poner texto ahí dentro, ¿verdad? Entonces hagamos nuestro por Luke, ¿de acuerdo? Y así diremos para var X es igual a cero. Y solo para demostrar que podrías hacer cualquier otra cosa que quieras decir para la ley Barb es igual a cero. Y nunca harías eso en código profesional, pero mostrarte eso está bien para lejos cuatro de nuestro bloque es igual a cero. Y por qué, mientras bla es menos que frases conteo de puntos, vale, bla más. Y nos dieron nuestros tirantes rizados. Se ven bien. Y lo que podemos dio es realmente simplemente como podemos decir, texto de punto de etiqueta
principal, um, igual o lo que podemos realmente vamos a extraer un poco mejor. Agarremos primero el texto de él. Si hay algún texto en el edl e incluso antes de eso, vamos a darle sólo unos textos por defecto. No nos quedan bloqueos por si acaso, ah, los casos nos dan nada más vamos a hacer que sea una cadena vacía ahora mismo sobre esto se
ve se carga, Por cierto, ya
hemos hablado de esto una vez antes, pero lo visto carga se llama justo cuando la avena de manzana Así va después de todas las vistas se
han cargado a la pantalla y están en la memoria. Entonces te va a ejecutar este código automáticamente para que no llamemos a una función para hacer esto. Por eso lo estoy poniendo aquí, ¿de acuerdo? Y entonces lo que vamos a hacer es que primero vamos a agarrar el texto que actualmente está en la etiqueta . Por lo que de nuestra etiqueta principal de nuestro saber qué decir, el texto es igual a principal etiquetado ese texto. Y recuerda, lo que sea que esté en este for loop se va a repetir cada vez, acuerdo? Y es que sólo nos dice que no lo estamos usando. Entonces nos está dando ese rojo Subrayar lo que vamos a decir es Ah, texto más igual. Está bien. Y lo que vamos a decir es que las frases bloquean. Entonces vamos a agarrar la frase actual, usar el índice aquí. Podría ser 012345 o seis. Podría ser cualquiera de esos. Vamos a sacarlo de aquí. ¿ De acuerdo? Usando el índice de raza. Y así si estuviéramos en el índice número tres, obtendríamos 0123 Obtenemos estos puntos aquí mismo. Eso es lo que necesitamos estar agarrando ahora mismo. Y así estamos sumando al texto y sigamos adelante y ahora ponerlo de nuevo en la etiqueta igual a txt. ¿ De acuerdo? Y, ah, lo que tenemos que hacer aquí es realmente poner el letrero de libra al final del texto de punto. Vale, recuerda, no
nos hemos metido en esto. Mencioné un par de veces. Esto es un opcional. De acuerdo, Puede o no tener valor. Si pudieras ver ese signo de interrogación aquí arriba, puede o no tener valor. Y así tenemos que poner el letrero de la libra para decir:
Oye, Oye, sé que ahora hay un valor aquí dentro. Por cierto, si no lo hubiera, simplemente
habrías estrellado tu app. Pero por eso hice esto aquí mismo. Yo sólo me aseguré de que no fuera No, puse una cuerda ahí, Así que muy bien. Adelante y corramos y se está cargando. Se está cargando. Se está cargando. Y ahí está. Arranque desde la lectura de disquete desde la actualización de disco, registro ,
punto , punto, lotes de datos de puntos y muchos puntos. Entonces ahí está nuestra computadora. Utilizamos un bucle for. Teoh iteró a través de esto aquí mismo. Ahora bien, lo que sí quiero hablar es de un par de maneras diferentes que podríamos haber escrito esto. Entonces esta es una forma abreviada de una manera conveniente de escribir esto. De acuerdo, Podríamos haber escrito también Son para un bucle de una manera diferente. Qué forma diferente de escribir un bucle. Bueno, vamos a Ah, vamos a comprobarlo. Por lo que podría haber dicho repetir, Ok. Y primero, lo que podemos hacer aquí es que podemos seguir adelante y fuera de aquí podría salvar nuestra X igual a cero,
y, ah, ah, mientras que X es menor que para sube conteo de puntos. Está bien. Y entonces lo que yo haría por aquí es ah, agarrado. Monograma este código en el medio aquí Y por cierto, si eres como, ¿cómo comentó mágicamente esas líneas de código? Acabo de sostener eso. Yo los resalté. De acuerdo, los
resalté, y mantuve abajo el mando. Además ford slash donde está el signo de interrogación en tu teclado manteniendo pulsado comando supercool ¿
verdad? ¿ Quién? Está bien, voy a copiar lo que hay dentro. Porque sí queremos ese mismo código. Y por supuesto, voy a teta poco común, porque, ah, no
necesitamos ahí, y está sangrada incorrectamente. Entonces voy a mantener el mando abajo y luego a la izquierda, Curly Brace o corchete izquierdo. Y eso va a sangrar de nuevo a la izquierda. Si sostenía el comando corchete derecho, se va a mover hacia la derecha. Entonces Ok, hasta ahora, X es igual a cero. Repite esto, ¿de acuerdo? Y por supuesto, no
queremos rubia aquí, ¿
verdad? Porque no existe. Nosotros lo comentamos. Entonces la acción necesita X aquí porque eso es lo que estamos haciendo aquí. Entonces esto es exactamente lo mismo que acabamos de escribir. Estamos creando una variable, y solo estamos diciendo repetir,
repetir, lo que sea, lo que sea, coz aquí hasta que se cumpla esta condición. De acuerdo, Bueno, frases conteo de puntos o X es menor que frases dot com, así que vamos a ver si realmente funciona y hace exactamente lo mismo. Sentí que acabamos de hacer algo muy, muy malo. Acabamos de crear un bucle infinito. Y una cosa que nos perdimos es la parte donde incrementas el valor, entonces X más, Vale, entonces va a ejecutar este código, y luego va a hacer X más X uno. De lo contrario, si no hice esto, X siempre va a ser menos que frases que cuentan. Y esto va a correr para siempre hasta que tu aplicación se cuelgue porque nunca vamos a cambiar X y ah , intentemos eso de nuevo. Hubiera sido malo. Está bien, se está ejecutando. Y ahí está, exactamente lo mismo. Entonces esa es otra forma de escribirla. Acabamos de crear manualmente la variable terminó el aireador it ahí mismo. Y ah, lo
hacemos una vez más de una manera más. Claro, hablemos de 1/3 forma de hacer esto, ¿de acuerdo? Lo que podemos hacer es que podemos decir por cada uno bien, tan libre. Y digo para cada uno no estoy escribiendo la palabra cada uno, pero eso es lo que significa. Entonces para cada, uh, simplemente lo
llamaremos línea en frases o incluso mejor. En realidad, lo que podríamos decir es por cada frase Vale, así que esto es aún más taquigrafía, ¿de acuerdo? Y la diferencia aquí es que solo estamos iterando a través de la matriz misma. Qué está haciendo para decir,
Hey, agarrar, agarrar, agarrar, pasar por esto y agarrar un elemento fuera de él. Cambiarle el nombre a esto, acuerdo? Y luego puedes usarlo así de simple. ¿ Al igual que qué? ¿ Qué? ¿ Qué está pasando? Bueno, sí, es así de sencillo. Lo que está pasando es que estamos diciendo, Oye, pasa por la matriz de frases, pasa por cada una. De acuerdo, agarra el artículo. De acuerdo, así que vamos a agarrarlo. Vale, Así que aquí está el Aquí está la mano, Ok. Es agarrar la frase y caer justo aquí y renombrarla. Entonces va a hacer eso cada vez. Entonces va a correr esto. Ah, Y supongo que en nuestro caso siete veces y esta variable de frase aquí es el equivalente de decir, Hey, var X es igual a cero. Entonces todo lo que estamos haciendo aquí es que estamos bien, no
es el criminal de eso. Es el equivalente de esto aquí mismo. Perdón. Frases, corchetes X agarrando el elemento fuera de ella. Entonces es agarrar el elemento fuera de él aquí y simplemente renombrarlo la frase para que podamos
usarlo ahora. Obviamente las diferencias que no podemos no nos gusta mutarlo. No podemos cambiarlo. No podemos decir que sabes frases. X es igual a alguna nueva frase. Ah, sólo
estamos leyendo aquí. Pero eso está bien. Esto es super comunidad y aún menos líneas de código. Entonces si sigo adelante y copio estas mismas líneas de código que sabemos que vamos a necesitar bien, y voy a seguir adelante y, uh bajo este año y sólo vamos a reducir el factoring por RMN aquí. Entonces tenemos la frase. Entonces lo que queremos dio es que todavía queremos agarrar esto, pero en lugar de hacer frases Ah, ya veo. ¿ Eso es hacer frases x para decir frase Eso es super cool? Es todo lo que tenemos que dio es ah, usó la frase porque pasa cada vez. Ya veremos qué hace. Por lo que para cada frase y frases pasa por toda la lista agarra un elemento fuera de ella, lo
cambia el nombre para que puedas usarlo. Súper, super cool. Nosotros sólo esta tres maneras diferentes. Esto es realmente bucles. Esto es todo. Esto es bucles. Qué guay es Eso no está tan mal toma mucha práctica para realmente bajarlo. Pero no es tan malo. Y acabamos de pasar por las principales formas de hacerlo. Entonces así es como dio un bucle, ¿de acuerdo? Y sólo asegúrate ah, que siempre tengas una condición que se cumpla. Si lo estás haciendo algunas de estas otras formas asegúrate de que se cumpla esta condición porque si
no lo es , tendrás un bucle infinito en tu programa se estrellará. OK, tan buenas cosas. Lo vas a usar mucho durante todo el resto del curso. Um y esto es fundacional. Entonces si no consigues esto, mira el video una y otra vez y tendremos un ejercicio para que puedas practicar esto, así que está bien, todos, sigamos avanzando.
30. iOS 9: introducción a la vista para la vista de la visualización de: tan gran día por delante de nosotros aquí. Vamos a hablar de IOS nueve Stack. Sigamos y empecemos. Voy a abrir código X, ¿de acuerdo? Y consiguió un nuevo proyecto tirándolo aquí mismo. De acuerdo, así que fui a archivar, ya
sabes, por
supuesto, nuevo proyecto. Y si no recuerdas, y ya debes saber cómo hacer esto,
cómo abrir Exco, solo
tienes que hacer clic en el icono que dice X Code beta O si este video es ahora en el futuro, esta podría ser la versión final del código X siete, que descargaste de la tienda APP. De acuerdo, sigamos adelante y hagamos una aplicación de una sola vista. Vamos a llamar a esto Ah, Stechert uh, apilar sólo por diversión, porque el nombre realmente no importa en absoluto. Todo lo demás se ve muy bien aquí, Guárdalo en el escritorio. Y aquí vamos proyectos abiertos. ¿ Y sabes qué? Vamos a seguir adelante y hacer esto universal para iPhone y iPad. Eso va a ayudar a mostrarnos el poder de las vistas de pila. Ahora, ya
hemos hablado de restricciones. De acuerdo, cómo alineas las cosas y recuerdas lo difícil que fue cuando teníamos un par de, por ejemplo, vistas aquí, ¿
verdad? Y queríamos que retomaran la mitad de la pantalla. De acuerdo, entonces, ya
sabes, uno era un color como este verde justo aquí, y el otro era como, justo aquí al lado. Vamos a darle un poco de relleno. Estos no son perfectamente parejos. Pero lo que sea, esto es sólo un ejemplo. Y vamos a cambiar para leer y recordar lo duro que fue hacer esto para que tuvieran flexibles con. Por lo que siempre que rotes o mueves tu dispositivo o cambias de pantalla, ambos
tienen egoístas. Fue un dolor en el trasero. De acuerdo, gran, enorme dolor. Y creo que la gente de Apple se dio cuenta de esto y por lo tanto crearon la vista tú me apila, lo cual es fantástico. Y la regla de oro ahora es apilar vistas primero y luego restricciones con cuando sea necesario . Así que adelante y aprende esto y empieza a usarlos de inmediato. No hay razón para no usarlos porque van a cambiar por completo la forma en que construyes tus diseños y hacerlo mucho más potente y mucho más fácil. Entonces, ¿qué vamos a construir? Esa es una buena pregunta. Sigamos adelante y hagamos algo que me gusta hacer todo el tiempo, que es ideales de acero de otras personas. Y por cierto,
así es como realmente se construye. APS. De acuerdo, así que sigamos adelante y encontremos una buena idea. Entonces lo que me gusta hacer es tipo en Pinter arresto mejor diseño APS. De acuerdo, no
busco comida ni últimos estilos, sino mejor diseño APS. Y aquí hay un enlace justo aquí. Sólo estoy haciendo clic en un enlace aleatorio. Hice esto hoy temprano y miren todos estos APS fantásticos. Podrías simplemente obtener inspiración e ideas de estas aplicaciones aquí. Gran manera de hacerlo. A veces. A veces hasta yo sólo lo miro y, como, me gusta mucho esto. Y entonces yo como que todavía el diseño y cambio los colores. Y eso está bien, porque el arte realmente está robando todo alrededor de tu inspiración, etcétera. Y me gusta este de aquí. OK, tenemos unos zapatos aquí. Se ve realmente genial. A mí me gusta el diseño. Esta es una gran manera de aprender a hacer uso de pila, y sigamos adelante y robarnos esta imagen. Voy a hacer clic y arrastrarlo a mi escritorio aquí, y voy a cerrar el navegador ahora. Una cosa que quiero mostrarte muy rápido. Si no tienes photoshop, probablemente
deberías conseguirlo. Y vamos a hablar de esto más adelante en la lección. No tienes que ser un experto, pero yo usaba photoshop todos los días como desarrollador de aplicaciones. Entonces ve a Adobe Creative Cloud. Y si haces clic en su página web aquí, Ok, puedes conseguir sus servicios en la nube para su software. Al igual que la tienda de fotos y esas cosas son muy baratas. Creo que la tienda de fotos es de 9 99 al mes. Está bien. Herramienta muy potente. Cuando te conviertas en un desarrollador up profesional, serás una herramienta más útil si sabes usarlo. Entonces voy a seguir adelante y acaba de abrir con Photoshopped, click
derecho a aquí. Y lo único que quería mostrarte Esto no es una lección sobre Photoshopped. Pero lo que quería mostrarles es lo que me gusta dio. Tan solo para prototipo APS es tomo este pequeño color aquí en lado izquierdo y yo color pick y agarro este valor de color aquí y hago lo mismo en este chico y puedo darle click y me da el valor de color así que si quieres esos colores puedes agarrar y justo de las imágenes, que es super cool. Por lo que Photoshopped, gran herramienta en tu cinturón para tener y usar como desarrollador. De acuerdo, entonces sabemos cómo queremos que se vea. Y, Ah, ahí vamos. Algo así. Está bien. Queríamos lucir bien en todas las orientaciones y tamaños de pantalla, así que sigamos adelante y empecemos. Ahora ¿Qué? Está aquí arriba. ¿ Esa es usted? I Barra de navegación. Y ya que en realidad no vamos a construir un controlador de navegación en la APP, Vale, sólo
vamos a fingir así que voy a poner arriba de ti aparece y pretender que es un controlador de
navegación real . Pero eso está bien. Todavía va a demostrar los propósitos de nuestra aplicación aquí, y voy a cambiar el color de fondo. De acuerdo, voy a seleccionar este color rojo. Puedes escoger el color que quieras, ¿de acuerdo? O puedes cursar, hacer clic en esto y cambia alrededor. En realidad puedes hacer clic en el color, pero ya lo elegí aquí, así que son rojos un poco grandes aquí, y vamos a seguir adelante y subirlo. Ahora lo que voy a hacer es hacer clic en el menú pin y, ah, trabajadores. Algunas restricciones. Y tú estás como, Espera un minuto. ¿ No acabas de decir que no vamos a estar usando restricciones? Bueno, yo no dije eso. Dije que vamos a usar la vista de pila primero y luego las restricciones cuando sea necesario, pero esto no va a ser necesario para estar en una vista de pila, porque es barra de navegación en los Estados en la parte superior. Entonces voy a decir 000 dependientes todos estos lados aquí y entonces lo que vamos a hacer es sólo darle una altura, y se quedará ahí. De acuerdo, así que tenemos un zapato. Tenemos algunos otros zapatos aquí. A algunos les gustan las miniaturas. Tenemos una etiqueta aquí y una sub etiqueta en algunos botones, y hoy no nos vamos a preocupar por los iconos sociales. Y así me he tomado la libertad de agarrar y, uh, cortar algunos activos para que usemos. De acuerdo, así que voy a seguir adelante y solo, uh, agarrar mis zapatos bien creados. Ahí lo va a arrastrar por aquí, acuerdo. Y ah, sí, hoy
Chuck Taylors, nena. Eso es lo que vamos a estar construyendo. Y, ah, pasemos al guión principal aquí. Y qué crees que necesitamos Bueno, con una pila de ti, lo que haces es simplemente poner tu interfaz aquí, ¿de acuerdo? ¿ Y qué es realmente interesante de las vistas de pila? De acuerdo, va a ser un poco raro, pero ya sabes cómo antes, como abrir la vista previa y lo que sea que hagas con tu código aquí a la izquierda , ya
sabes lo que las restricciones van a aparecer por aquí a la derecha? Bueno, sí, eso es cierto, pero en realidad apilados para nosotros problemas con esto, y no sé si es un bicho. Todavía no se ha hecho porque sigue en beta. Pero esto no se actualiza correctamente cuando se tiene vista apilada. Y así, la única forma en que realmente sabes cómo se va a ver es ejecutándolo. De acuerdo, entonces no vamos a usar eso demasiado hoy, Así que sabemos que necesitamos un zapato aquí, así que sigamos adelante y agarramos el de Chuck. ¿ De acuerdo? Por supuesto que se estira. Digamos que ajuste de aspecto y solo hazlo un poco más grande, ¿de acuerdo? Son amables. Y ahora también vas a ver la razón por la que usamos este lienzo inferido en lugar de escoger un iPhone o lo que sea, porque los apiladores realmente son poderosos en estirar y moverse por la pantalla y volver dimensionar las cosas y todo tamaños de pantalla. Por lo que es una buena idea usar este tamaño arbitrario aquí. De acuerdo, entonces tenemos nuestro zapato. Sabemos que necesitamos algunas imágenes justo debajo. Si miro la mirada a la foto aquí, necesitamos algunas imágenes debajo de ella, y no vamos a hacer las nuestras idénticas. Vamos a hacer una especie de versión propia, te
daremos una muestra de cómo funcionan las vistas apiladas. Pero sabemos que vamos a necesitar algunas imágenes. Entonces sigamos adelante y hagamos eso. Y conozco a estos tipos plazas aéreas porque los creé. Entonces diría que solo 100 por 100 quizá un poco demasiado grande, Digamos 80 por 80. Estoy haciendo clic en los números en el lado derecho el de allá, y voy a seleccionar zapato uno y luego voy a seguir adelante y asegurarme de que sea como su comando d duplicar mudarse por aquí. Voy a hacerlo de nuevo. De acuerdo, tienen tres y nosotros cuatro. Y ahora tenemos cinco zapatos, y solo voy a resaltar todos pinchando y arrastrando y simplemente centrándolos OK, ahora, Claro, ahora mismo, si fuéramos a correr esto, todas estas cosas estarían fuera de la pantalla y se vería realmente feo, Pero aún no estamos ahí, así que sigamos adelante y solo cambiemos otras imágenes ahora y otra vez. Esto es diferente. Solo somos nuestros aps un poco diferentes, eso es todo. No estamos usando el mismo zapato y múltiples ángulos, y la razón de eso es que no pude encontrar una vez tú en múltiples ángulos. Entonces ahí vamos. Tengo un poco de conversar aquí. Y en realidad, es un poco bonito con todos los diferentes colores de todos modos. Entonces, ¿qué tenemos aquí? ¿ Tienes esos? Necesitamos una etiqueta aquí. Debajo de ella. Adelante y hagamos eso. Vamos ah, hacer au. Etiqueta aquí al fondo y lo pondré aquí mismo en medio. Y vamos a centrarlo y sacarlo del desagradable sistema Divertido y cambiado a un mejor funt aquí. Y se ve un poco audaz en la imagen, así que voy a hacer el mío atrevido. Está bien, se ve bien. Voy por aquí en el lado derecho y cambio el color a rojo. El mismo rojo que se ve arriba. A mí me gusta que se ve genial. Y, uh, vamos a llamar a esto Ah, zapatos de
Chuck Taylor y ah, sí, vamos a conseguir un poco de espacio ahí. Y no me voy a preocupar por esas pequeñas ah, grandes cosas de los lados ahora mismo. De acuerdo, sigamos adelante y pongamos una segunda etiqueta. Voy a sólo ah,
dragón o y, ah, ah, hacerlo un poco más largo aquí y centrarlo bien y cambiar el dedo del pie de color, tal vez un gris claro que se ve bien. Y parece que también es audaz. Entonces es cambiar la fuente y el estilo demasiado audaz, y sólo le pondremos algunos datos arbitrarios. Es un poco demasiado audaz. Hagámoslo regular. Sí, regular. Y digamos, um, ¿qué quieres decir? Vamos a darle un número de referencia. Referencia 7715112 U. S. A. Una edición especial. De acuerdo, eso es lo que están estos zapatos ahí. Edición especial. Y eso parece que hay una etiqueta de precio por ahí en el lado derecho. Entonces vamos a hacer eso también. Está bien. Himnos en una copia y pega esto ahora y cambia el color a verde. A mí me gusta y me gusta. Y esta vez lo haremos audaz y diremos 78 dólares. Incluso eso se ve bien. Hagamos esta etiqueta más pequeña, porque no va a tener que ser tan grande. Y ah,
alinearlo justo por ahí. mí me parece bien. Y vamos a destacar ambos y sólo tipo de centro que así no tiene por qué ser perfecto. Simplemente no te veas un poco bien en la pantalla. A lo mejor esto es un poco demasiado fuera de lugar aquí, Smeagol. Más pequeño. Ahí vamos. Se ve un poco mejor. De acuerdo, entonces me dieron un precio. Tenemos la referencia que d aquí. Y luego necesitamos un par de botones. Por supuesto. Está bien, sigamos adelante y tiremos unos botones aquí. Tú yo pero dentro y sólo lo pones justo aquí. Y lo que voy a hacer, en realidad es convertirlo en un botón personalizado. ¿ De acuerdo? Ahora mismo es blanco, y pondré el color de fondo del mismo. Y no está aquí arriba como todos los demás están en el botón. Tienes que desplazarte hacia abajo, y está justo aquí en la parte de vista de la misma. Y ahora mismo, Es un fondo claro. Entonces vamos a cambiarlo para leer y hacerlo un poco más grande aquí. Y, uh, sí, solo se ve bien ahí mismo. De acuerdo, Tal vez un poco más grande, incluso. Simplemente algo así cambiará el texto en él. Teoh. Um, me gusta y vamos a cambiarlo, Teoh Custom, Helvetica New hará Bold. A mí me gusta. Y voy a seguir adelante y mandar a d que lo duplique. Y en este, vamos a llamarlo por. Está bien. Y voy a desplazarme hacia abajo y cambiar el color de éste a verde. Y ¿no es genial cómo solo con mirar algo a la inspiración, ya
podemos empezar a construir una muy hermosa creo que se ve bien. Creo que la gente diría que tu app se ve bien si se veía así y no teníamos que
hacer demasiado pensando que alguien más hizo todo eso pensando por nosotros, Así que se ve bien. Ahora, claro, vamos a jugar, divertirnos y ejecutarlo y ver cómo se ve sin ninguna vista de pila y sin ninguna limitación. Llegamos a ver lo malo para poder apreciar lo bueno. De acuerdo, aquí viene. Y estalló. Y por supuesto, es feo. Bueno, eso se esperaba. De acuerdo, voy a seguir adelante y detener esto y hablemos de puntos de vista de pila. ¿ De acuerdo? Entonces una vista de pila la idea detrás de una vista de pila es que es apila tus vistas literalmente. De acuerdo, Entonces lo que va a dio es que vas a decir lo que no hice Así que quiero apilados horizontalmente. Y qué artículos quiero apilados verticalmente. Entonces pensemos en este año. Entonces definitivamente sabemos que la horizontal Disculpe, Los artículos verticales que queremos apilados están justo enfrente de nosotros aquí. Entonces si solo,
uh,me uh, escondo en una herramienta aquí para que sepamos que queremos apilar a este tipo. Entonces esto sería como en una vertical apilada es ser uno que sabemos que queremos apilar esta fila aquí. Teoh, Queremos apilar esta etiqueta, apilar esta etiqueta y apilar estos botones. OK, Así 123 por cinco. Por lo que potencialmente hay cinco elementos que van a ir en una pila vertical. Eso es genial. ¿ Y las pilas horizontales? Bueno, este tipo podría ser suyo en su propia pila, así que esto sólo sería un elemento de uno sin embargo. Y esto de aquí, ya
sabes, apilar estos. De acuerdo, entonces hay o cinco artículos. Eso son cinco artículos que se apilarían horizontalmente. Entonces 12 y, uh, este tipo podría estar en su propia vista de pila. Ahora, cuando son solo elementos individuales, no
tienen que estar en una pila para ti, pero tiene sentido poner todo en una pila. Tú, en caso de que les agregues cosas más adelante. Y aquí hay otra pila horizontal para ti y otra, OK, porque hay múltiples elementos en ella. Tan pocas cosas diferentes pasando aquí. Vamos a seguir adelante y sólo ponerlo en práctica. Y lo que va a hacer es que va a romper las cosas para nosotros. Um, y luego los arreglaremos. Entonces sigamos adelante y agárrale el zapato y sequemos aquí en la parte inferior. Hay un pequeño botón, pequeño botón cuadrado con la flecha llamada Stack, y solo vamos a hacer clic en stack, y es como, Wow, um, acaba de estropear. Y así si vas al lado derecho ahora mismo, se está apilando verticalmente, como si estuviera en su propia pila vertical. Lo voy a poner como horizontal sólo porque creo que vertical no es exactamente lo que estamos buscando en este momento. Nosotros Porque en caso de que en el futuro, podríamos agregar cosas horizontalmente, probablemente no verticalmente a este elemento específico. OK, así que eso está bien. Y es realmente enorme ahora mismo, pero eso está bien. Acabemos de apilar el así que voy a aferrarme a estos tipos ahora. He seleccionado el zapato y voy a mantener pulsado turno y seleccionar todos los zapatos. Aquí lo que queremos es una pila de acceso horizontal. Entonces si seleccionas a todos su cable de izquierda a derecha. Y ahora haga clic en este botón en la parte inferior aquí, la pila. Pero ahora todos están apilados en una vista de pila horizontal. Muy, muy cool. De acuerdo, estos, uh, zapatos de
Chuck Taylor. Sigamos adelante y pongamos esto en su propia vista de pila, y lo voy a cambiar a horizontal. En caso de que tuviéramos cosas sería a la izquierda o derecha arriba y abajo y al igual que estos gran texto y este texto verde, y poner eso en una pila de ustedes. Y es lo suficientemente inteligente como para saber que esa es una vista de pila horizontal. Y luego selecciona los botones izquierda y derecha, y pon esos en una pila de ti. ¿ Qué clase de te apiló? ¿ Crees que va a poner qué tipo de acceso? Si fueras a decir horizontal, estarás ahora mismo,probablemente
estés pensando, probablemente
estés pensando, ¿Cómo nos ayuda esto a llegar a cualquier parte? Bueno, ahora mismo, no
se ve así del todo, pero pronto lo hará. Entonces si voy por encima de tu lado izquierdo y selecciono la vista de pila superior y esta siguiente y la siguiente y la siguiente y la siguiente y pongo todas estas en una vista de pila, las cosas están empezando a verse un poco bonitas. Se salieron de la pantalla, pero están empezando a alinearse un poco mejor ahora. Está bien. Muy cool. Todavía poco grande. Pero eso está bien. Entonces ahora mismo lo que queremos dio es que hemos creado un stack views. Creamos estas vistas de pila múltiple, pero ahora necesitamos usar restricciones. Esto es lo que te estaba diciendo. Usaste la pila estos primero. Entonces usas las restricciones y lo que queremos es que queremos constreñir toda la vista de pila . En nuestro caso, queremos ponerlo de esquina a esquina a esquina la esquina. Queríamos llenar toda la pantalla, sin importar en qué pantalla esté. Y la belleza de las vistas de pila es que se estirarán y ahí con ancho y altura flexibles en
función del tamaño de la pantalla. Y se verá bien. De acuerdo, No
tendrás que hacer todo tipo de cosas locas, raras como lo hicimos antes con nuestras limitaciones. Entonces lo que voy a hacer es simplemente moverme están apilados vista aquí mismo, ¿de acuerdo? Y voy a ir al menú del pin, y lo que vamos a hacer es quitarnos los márgenes, ¿de acuerdo? Y, ah, voy a seguir adelante y se cero para la parte superior cambió atrás y cero para la izquierda y para la derecha. Yo quería decir cero. Y para el fondo. Vamos. Es desobedecer por el fondo. Yo quiero decir que cero está bien, también. Y vamos a ver qué pasa si me fije todo esto al, uh, a los lados aquí. Está bien. Empezando a mejorar un poco aquí. Si concedes e, puedo ver que se ve bastante guay. Y vamos a ejecutarlo y a ver cómo se ve ahora mismo. Un poco mejor. Ya sabes, es que está llegando ahí. Está encajando en la pantalla. Vamos a rotarlo. Si presiono comando plus right, girará mi pantalla siempre y cuando haya habilitado en la configuración de mi proyecto. Y se ve bien en el paisaje. Incluso estamos haciendo algunos avances, así que vamos a rotarlo de nuevo. Él es esa animación genial, también, Trae. Está bien. Está bien, Muy bien. Vamos a detenerlo. Entonces arreglemos uno de los problemas obvios. ¿ Estos zapatos son correctos? No van a cruzar toda la pantalla, y eso ya no es estar dentro. Entonces lo que queremos dio es la distribución. De acuerdo, quiero decir que te sientas igual de bien. Y entonces lo que quiero hacer es añadir algo de espaciado en el medio, Digamos 25 espaciado y mira eso. Se adelantó y espació. ¿ Son las imágenes igualmente a través de la pantalla? ¿ Qué tan guay es eso ahora? Funcionará eso en todos nuestros diferentes tamaños de pantalla? Bueno, vamos a ver. Vamos a seguir adelante y a correr de nuevo. Y así los está apretando ahí, lo cual no estoy muy contento por eso. Y, uh, aquí
mismo, en realidad no los está centrando, así que tenemos algunos problemas que necesitamos resolver. Eso está bien. Entonces el primer problema que quiero resolver es el hecho de que cuando estábamos en, creo que fue el paisaje. No iba a atravesar toda la pantalla. De acuerdo, lo recuerdo. Correcto. Vamos a volver a comprobar otra vez para asegurarnos de que lo construiremos y lo ejecutaremos. Y sí, así están aplastados ahí, y luego aquí no cruzan por todos los desiguales. Se ve un poco tonto. No me gusta. Entonces lo que necesitamos en realidad Dio es en nuestra vista de pila de padres. De acuerdo, aquí
arriba, queremos seguir adelante y gira dice que la alineación ahora mismo está alineando todo por los
bordes delanteros . Entonces lo que digo es que esto se está alineando por esto por esto, pero está todo en el lado izquierdo, y eso no es lo que queremos. Lo que realmente queremos es llenar todo el espacio. ¿ De acuerdo? Queremos que cada uno de estos esté alineado con la sensación para cubrir todo. ¿ Todo bien? Y luego, por
supuesto, la distribución hay múltiples opciones. Debilita hacer ahí, podemos decir que te sientas bien, veamos cómo se ve con la sensación, bien. Y lo que vas a querer hacer es jugar alrededor de la vista apilada para conseguir lo que
buscas perfectamente. De acuerdo, así que ahora va a través de la pantalla, lo cual es bonito. Agradable. Está bien, claro que es cambiar y estirar las cosas, pero está bien. Y veamos cómo se ve cuando cambiamos de distribución para sentirnos igualmente bien, ¿ Quién? Eso es interesante. Está bien. Y eso, en este caso, realidad está tratando de darle igual espacio a todo, y entonces eso no es lo que queremos. De acuerdo, entonces cambiémoslo de nuevo para sentir que está mirando. Se ve bastante bien en campo. Y de nuevo, vas a querer jugar con estos ajustes. De acuerdo, Entonces la alineación es como todas estas vistas de pila se alinean de acuerdo entre sí. ¿ De acuerdo? O los elementos dentro de ella. Es decir, así que esta pila, tienes todas estas vistas de pila dentro. ¿ Cómo queremos alinear esos? Bueno, queremos que llenen su espacio de izquierda a derecha. Está bien. Y la distribución son los artículos dentro de ella. ¿ Cómo quieres distribuir sus propios los elementos. Está bien. Y, um, así que ahora mismo, esta pila, era vertical. Entonces 1234 Ya sabes, cinco cosas más o menos y ah, se ven bien, Tal vez deberíamos poner un poco de espaciado ahí. Mayo 5 pixels. De acuerdo, ahí vamos. Apenas el espacio. Pequeño. Hizo que se viera un poco más bonito para que puedas jugar con eso Realmente bonito. Recuerda, hacer esto con restricciones habría sido mucho más trabajo. Estamos haciendo grandes avances en este momento. Ahora, el otro problema que quiero resolver es estos zapatos Estaban aplastados y estirados, y eso realmente no me gusta. Entonces voy a seleccionar cada una de las imágenes ellas mismas, zapatos de uno a cinco. Y voy a decir en lugar de escala para sentir, digamos, ajuste de
aspecto, no se ajuste de aspecto. Por lo que encaja en cualquier límite en el que esté. Y sigamos adelante y corramos ahí, y vas a querer tener que correr esto una y otra vez mientras haces cambios incrementales . Para que sepas exactamente lo que hacen tus cambios de aire, porque podría afectar todo. Um, está bien, así que mira eso. Son las imágenes ahora están dimensionando de manera diferente, y como que me gusta. A mí me gusta que las palabras vayan. Es hacer esto primero automáticamente, por cierto. Recuerda cómo antes siempre me estaba quejando de auto layout no es realmente auto layout voluntad. No, es un poco más de un no un layout. Está empezando a pensar por nosotros. Gracias a bondad. Gracias, Apple, por crear algo tan increíble si ves el video W W D C cuando presentan esto como, gente está animando y aplaudiendo así es lo importante y poderoso que es esto tan muy cosas cool son las imágenes ahora son la relación de aspecto, y estoy empezando a gustarme ahora. El zapato, se ve un poco grande, y así creo que queremos arreglar este problema a continuación. Entonces vamos a detenerlo para ahorrar energía de procesamiento aquí. ¿ De acuerdo? A lo mejor todo lo que necesitamos para dio es dar algo de relleno entre la vista de pila más externa y la super vista
real. Entonces creo que voy a hacer eso. Entonces aquí mismo donde dice espacio trailing. Um, voy a decir tal vez una constante de cinco. Ahora, digamos 15. Digamos que 20 veintas lucen bien. Adelante y hagamos eso por el resto de ellos. Voy a dar click en Click Off y ah, oops, equivocado aquí mismo. Todo mal otra vez. Ahí es 20 y sigamos adelante y digamos 20. De acuerdo, Esto es menos 20. A ver. No, tenía razón. ¿ Qué hice mal aquí? Esto es sólo 20. Ah, basta con hacer click en el mismo exacto. Perdón. Sí. De acuerdo, así que vamos a ver este de aquí. Entonces eso es 20. Ahí fue cuando yo era diferente. Está bien, eso está bien. Simplemente no lo está mostrando. Eso está bien. Digamos que. 20 y uno más. Yo solo estoy haciendo clic fuera de él, haciendo clic en él y luego haciendo doble clic en la, uh, cosa ahí y vamos a darle una oportunidad a eso. Construyamos y debo Moveamos a este tipo por aquí Así se movió en medio. Ahí vamos. Eso lo hacen las restricciones. Seguimos haciendo lo suyo. Yo sólo quería sacarlo del filo, para que no se viera tan apretado ahí. Eso se ve mucho mejor. Uh, ya
sabes, eso me daría un ejemplo de cómo se ve el zapato. Podría hacer clic en thes si tuviera la funcionalidad para ello. No cambiar un zapato si voy a modo paisaje. Oye, ¿sabes qué? Sigue funcionando. Eso está bien. Yo estoy de acuerdo con eso. Uh, me gusta. A mí me gusta mucho. Entonces se ve bien. Y esta es solo mi preferencia. Solo estamos trabajando con pila estos. Podrías jugar con él todo lo que quieras. Entonces echemos un vistazo a nuestra etiqueta de zapatos Chuck Taylor aquí. Bueno, eso está bien. No parece estar en un lugar muy malo. Um y tampoco esto un poquito. Parece que hay un poco de espaciado que probablemente necesitemos aquí. Entonces sigamos adelante y cuidemos algo de espaciado y algo de limpieza aquí arriba, ¿de acuerdo? ¿ Vas a detenerlo? Creo que tal vez deberíamos solo quizás agrega más espaciado. Y acabo de decir tal vez dos veces. Una palabra tras otra. Realmente raro. De acuerdo, así que vista de pila de nivel superior. Adelante y hagamos más espaciado. Diga, 10. Ahí vamos. Se corrió eso. A ver si ese espacio es nuestro texto un poco mejor. Sí, se ve realmente bien. En
realidad, ahora se ve muy bien. Estas imágenes, siento que son un poco más pequeñas de lo que quiero que sean, así que voy a ir a Placr Image stack view aquí. Voy a reducir parte del espaciado. Voy a decir que tal vez. Ah, 15 espaciado. Hazlo un poco más grande. Vamos a correr eso. ¿ Ves cómo va otra vez? Yo lo pruebo todo. Así es como me desarrollé. Entonces si eres como el hombre, este tipo construye y corre mucho. Así es justo como lo hago. A mí me gusta ver a dónde van mis cambios específicos aire, sobre todo porque no puedo previsualizarlos. Entonces me gusta lo que está haciendo aquí mismo. OK, Pero no me gusta lo que está haciendo en modo paisaje. Creo que creo que necesitamos aplastarlos un poco más, o al menos hacerlos más pequeños cuando estamos en modo paisaje. ¿ De acuerdo? Y ah, entonces creo que una cosa que podemos hacer para cambiar que debo parar este año es que podemos establecer
abrazos de contenido . De acuerdo, Entonces si selecciono las propias imágenes, no selecciones la pila, seleccionarías las propias imágenes. Y si voy aquí con el gobernante Vale, hablemos de abrazos de contenido. Entonces abrazar contenido es la idea de algo es abrazar tu contenido, ¿
Significado? Tratando de aplastarlo. De acuerdo, así que piensa como si le estuvieras dando un abrazo a alguien. Estás tratando de aplastar sus huesos. De acuerdo, uh, más o menos. Y contenido. Resistencia a la compresión. De acuerdo, ¿Cuánta resistencia quieres darle a la compresión a ese abrazo? Entonces, como, ya
sabes, alguien viene y abrazando al tipo Uriel, ya
sabes, um, empujarlo de nuevo sobre él. ¿ Cuánto quieres retroceder sobre él? Está bien. Y así, usando esas dos cosas puedes determinar,
como, como, el tamaño de las cosas. Y así no me gusta el tamaño del de los zapatos y modo paisaje, así que quiero ver si puedo comprimirlos un poco más. Entonces lo que voy a dio es que voy a seguir adelante y adelante aquí. Voy a cambiar esto. Ah, a un número más alto. Por lo que a 60. Entonces voy a decir que quiero ponerme un poco más y vamos a correr eso y ver qué pasa ahora. Por cierto, tenía todos estos seleccionados al mismo tiempo, y así eso les está afectando a todos. Sigamos adelante y corramos y veamos qué pasa. ¿ Tienes un paisaje? Sí, todavía no del todo lo que busco. Entonces intentemos otra cosa. Entonces solo creo que son demasiado grandes en el modo paisaje y así podemos usar en realidad algunas restricciones ahora, Y lo que puedo hacer es que puedo seguir adelante y seleccionar lo que queremos hacer aquí. Digamos que hagamos la altura, acuerdo? Nosotros queremos hacer queremos sentarnos? Sí, intentemos eso. Establezcamos una altura. Y ahora mismo
, son 100 en este modo aquí. De acuerdo, Pero vamos Ah, vamos adelante y cambiemos esto aquí, así que voy a dar clic. Añada cinco restricciones para cada uno de estos ítems. Lo que voy a hacer es seleccionar cada uno de estos, doble clic en él, y voy a decir que estos zapatos tienen que ser menores o iguales a no águila también, pero menores o iguales a Teoh. Y voy a cambiar esto. Voy a decir que vamos a decir 70. ¿ De acuerdo? Necesito ser menor o igual a 70 y voy a hacer eso por cada uno. ¿ De acuerdo? Voy a entrar aquí y cambiarlo de igual a menor o igual a 70 y esto es arbitrario. El número es sólo una prueba. Y llegué a hacer esto individualmente en estos aquí, digamos, 70 cambios a menos o igual a, y me gusta. Y dos más doble clic en la restricción 70 y cambia a menor o igual. Y, ah, una más. Está bien. Y cuando cambias esto aquí mismo a menos o igual a y 70. De acuerdo, sigamos adelante y corramos y veamos qué pasa. Oye, mira eso. Son más pequeños. A mí me gusta. A mí me gusta mucho. Por lo que mezclamos algunas restricciones con algunas vistas de pila. Eso está bien, eso es lo que se supone que debes hacer. Y se ve muy bien. Y lo estamos abrazando un poco. Estamos fijando un máximo. Ah, una altura máxima menor o igual a. Y eso es re dimensionamiento para nosotros. Entonces me gusta. Y ah, se ve bien. Ahora estos Ah, estos Ah etiqueta gris aquí en esta etiqueta verde cuando voy a paisajismo ahí tipo de no alineado el camino que quiero que sean. Entonces echemos un vistazo a algunos de sus ajustes. Voy a parar esto aquí. Y así tenemos la referencia aquí y veamos su caso ahora mismo. Lo estamos centrando. Creo que no quiero centrarme. Creo que voy a decir, dejó una línea. Y en el dinero, creo que voy a decir bien alineado y luego voy a dar clic en la vista de pila aquí, ¿de acuerdo? Y echemos un vistazo a la línea ahora mismo. Estamos diciendo, siento que me gusta. Creo que me gusta la sensación, Um, pero ¿qué distancia? ¿ Qué queremos hacer? ¿ Quieres sentirlos por igual? Bueno, ambos
son de diferentes tamaños. No necesariamente quiero llenar ese espacio por igual,
um, um, sentirme proporcionalmente proporcional a su tamaño. Eso podría ser lo que queremos. Adelante y corremos eso, ¿de acuerdo? Se está ejecutando, y voy al modo paisaje y oye, me gusta. Está manteniéndolo a la izquierda y a la derecha. Y en modo paisaje, es Ah, está llegando allí también, a su izquierda y sus derechos muy claros, invisibles. Todo parece alineado. Y por cierto, está haciendo esto para nosotros de forma automática, lo cual es super cool. ¿ Sabes cuánto trabajo habríamos tenido que haber hecho para hacer que estas cosas se
redimensionaran por su cuenta? Ah, mucho trabajo. De acuerdo, entonces obviamente sólo hay una cosa más que necesitamos cuidar. Y son estos botones,
OK, OK, son de diferentes tamaños en este momento, así que vamos a hacer clic en esa pila, concebiblemente a ver si podemos resolver el problema solo con la vista de pila. Entonces la alineación es sentir. Yo lo quiero campo. A mí me gusta. Se debe llenar la distribución. Ah, bueno, estos son dos botones. Vamos a llenarlos por igual Así que están divididos por la mitad y tú estás como, Eso se ve bien. Pero, ¿qué pasa con este espacio? Bueno, nunca temáis. El espaciado está aquí. ¿ Y qué crees que deberíamos hacer alrededor de 10? Ooh, eso no es realmente bonito. Sigamos adelante y construyamos y ejecutámoslo. Y está arriba y va y se ve bien. Vamos a mandar a la derecha para rotar comando a la izquierda para girar hacia atrás. Y se ve realmente bien. Y solo para referencia. Si te encontraste con algún choque durante este proyecto, vale, lo
hice yo mismo en un momento. No durante este video, sino de antemano. Y creo que es X Code siete. Los bichos beta probablemente desaparecerán cuando se lanzen las versiones finales, pero si te encuentras con esos choques eran como, ¿Por qué me está estrellando? Solo
31. Introducción a la aplicación de iOS 9 App: Bienvenidos de nuevo, todos. Se trata de Mark Price con Deb Sloves. Hablaremos de la app que vamos a construir hoy. Ahora sé lo que has estado pensando. ¿ Es esta mi oportunidad de construir mi aplicación de calculadora de $1,000,000? Bueno, solo
podría ser porque nuestra calculadora es bastante genial. Y ahí está corriendo en el simulador. De acuerdo, así que ahí está. Es una calculadora. Ahora, tal vez
estés pensando, ¿Qué? Esto parece un poco sencillo. Bueno, primer lugar,
déjame asegurarle que no es un tema sencillo. Probablemente piense. Y en segundo lugar, esto va a dar pasos agigantados a los futuros temas de los que vamos a hablar. Por lo que esta es una gran app. Y hablemos de dónde conseguí algunos de los gráficos. ¿ De acuerdo? Así que tira hacia arriba Google Chrome aquí. ¿ Todo bien? Está bien. Estos fueron construidos por Black Moon Dev y siguieron adelante y lo publicaron en el juego abierto art dot org de forma gratuita. Es la licencia wtf pl, y seguiré adelante y te dejaré averiguar qué es eso por tu cuenta. Entonces estos tipos son geniales. En realidad he trabajado con ellos antes. Me topé con este arte y descubrí que ellos son los que lo hicieron y construyeron arte para mis juegos antes. Entonces si alguna vez buscas algún arte de juego impresionante, son un gran estudio al que acudir. De acuerdo, entonces estoy emocionado de construir esto. Espero que te tomes tiempo para bloquear al mundo y solo siéntate y construye esto. Eso porque va a tomar algo de pensar que va a ser en dos partes y va a llevar
a las otras lecciones de las que vamos a hablar. Entonces estoy emocionado. Adelante y empecemos.
32. Aplicación de iOS 9: calculador retro parte 1: Bienvenidos de nuevo, todos. Marcar Precio aquí con Deb pendientes dot com. Y tenemos otro emocionante después de que vas a construir hoy. mucho, Hacemucho,
mucho tiempo en una galaxia lejana, construimos una calculadora retro del espacio exterior. muy cool. Ahora en el servicio, parece una calculadora, pero en realidad, sigue siendo una calculadora. A pesar de que es divertido, y se ve realmente genial. Ahora, puede
que estés pensando que esto es bastante simple, ¿verdad? Bueno, no del todo. Nada es siempre tan sencillo como parece. Por supuesto. Y ah, hay bastantes cosas que vas a aprender hoy. tan muy cool. De acuerdo, voy a seguir adelante y poner esto de nuevo aquí. Y también podrías notar que hoy tenemos un video de mí grabando. Alguien me dijo que para que me conectara personalmente con mi público, que no puedo ver ni hablar, que necesitaba tener un video y ah, botas se están conectando, así que me siento bastante conectada. ¿ Qué hay de ti? Está bien, bueno, con eso dicho, sigamos adelante y pongámonos a los negocios. ¿ De acuerdo? Voy a abrir un nuevo proyecto Exco. ¿ Todo bien? Al ir al archivo. Tire de ella aquí arriba. Entonces tienes que presentar nuevo proyecto. Y Ah, aquí vamos. Vamos a construir una aplicación de vista única, nombre
del producto, calculadora
retro o calculadora de espacio retro. Como quieras llamarlo. Retro Cal. Llegas tarde o bien, Todos estos ajustes se ven bien aquí. Voy a dar click a continuación, y lo vamos a mantener en el escritorio. Y vamos a crear un repositorio git porque ojalá estés enviando esto para obtener cubo de órbita hub dot com Porque quieres poder mostrar a los empleadores potenciales tu código. Es así como te contratan. ¿ De acuerdo? Necesitas ser bueno con git y obtener hub. Entonces empieza a practicar ahora. Crear. Muy bien. Cuando ahí lo tenemos. Estamos construyendo esta app ahora. De acuerdo, Entonces la orientación del dispositivo justo aquí en el medio. Vamos adelante y dio paisaje apagado y boca abajo. Está bien, eso se ve bien. Todo lo demás en tus looks. Bien. Entonces si vamos al tablón principal de cuentos, está vacío. ¿ Ahora qué? Siempre me gusta dio cuando tengo una siesta que es relativamente simple, o al menos tiene algunos componentes visuales importantes. A mí solo me gusta construir primero la interfaz de usuario, Hay otras formas de hacerlo, pero esto es lo más divertido para emocionarte con la app y empieza a darte una visión de dónde va a seguir. Por supuesto, código
X es altamente visual. Y así tiene sentido jugar con el dedo del pie con el constructor de interfaces para que las cosas se muevan
porque en realidad
también es bastante importante . Entonces ahí está nuestro lienzo. Ahora sabemos que necesitamos algunos gráficos, K. Ya
tengo esos gráficos para ti, y ah, necesitamos importarlos. Por lo que tenemos activos dot activos XY aquí mismo. Voy a seguir adelante y encontrar mi carpeta de activos de imagen, que está aquí mismo. Muy bien. Y, ah, vamos a seguir adelante y agarrar cero 123456789 Añadir dividir igual multiplicado. Restar. Necesitamos el panel posterior para sujetar los botones. Necesitamos el mostrador, y vamos a necesitar algo de espacio exterior y vamos a necesitar algo de terreno. Y creo que eso es todo lo que vamos a comer ahora mismo. Entonces voy a salir y arrastrar estos por aquí Muy bonito. Se ve bien. De acuerdo, vayamos al tablero principal de cuentos y sigamos adelante y pongamos los antecedentes. Entonces, ¿cómo hacemos eso? ¿ Alguien recuerda? Kimberly dice Use a you white imagery. Eso sería correcto, Kimberly. Muy bien. De acuerdo, así que sigamos adelante y pongamos la vista de imagen U en el fondo aquí, ¿de acuerdo? Y, ah, lo
arrastraremos hasta los bordes aquí. De acuerdo, ya
hemos hecho esto antes. No es gran cosa. Vamos a seguir adelante y seleccionar una imagen. Aquí hice clic en el ícono ah de aspecto raro aquí, que todavía no sé qué es. Son los atributos, inspector. Eso sí sé. Cambiemos la imagen a que creo que fue ah, espacio. Y ahí está el espacio exterior. Ahora de nuevo, si estás pensando que tal vez todo está bien,
bueno, bueno, tal vez deberías hacer clic aquí en el editor asistente, clic en los dobles círculos donde es automático y cambiarlo para previsualizar. Y bastante seguro, tenemos algunas cosas raras pasando. No podemos ver el Planeta Tierra. De hecho, no
sabemos si se trata de estirar la comida. No sabemos qué está pasando. Vamos a seguir adelante y añadir un iPhone six plus presionando ese signo más allá y seguramente cuando elimines a este tipo muy rápido, Seguramente no todo está bien. De acuerdo, entonces sabemos que hay problemas. Ya lo hemos experimentado antes. El diseño automático no es tan auto como ya hemos hablado y ah, sigamos adelante y ah, arreglemos algunas cosas. OK, entonces en primer lugar,
vamos a anclar este pequeño menú de pin de aquí. De acuerdo, podrías hacer clic en él y vamos a dar clic fuera, limitado a márgenes porque queríamos cubrir todas las esquinas. No hacemos ningún espacio en blanco unos 1000 y cero y eso fija cada uno de los bordes a un lado de la pantalla o a la super vista en la que está, que simplemente pasa a llenar la pantalla. Y básicamente se va a estirar. Cualquiera que sea este punto de vista. Teoh, cumple con esos requisitos ahora. Dado que es una imagen, puede
que no siempre sea lo mejor estirar. Entonces hay una cosa que sí necesitamos dar, y que es establecer la relación de aspecto en ella y sigamos adelante y pinchemos. Añada cinco restricciones anualmente. Oh, eso no es hacer lo que se supone que tiene que hacer. Dio y yo estaríamos diciendo lo mismo porque claramente no lo es. Vayamos por aquí en el lado derecho y cambiémoslo de una escala para sentirnos por encima al
campo de aspecto . Y ahí vamos. No, En este caso, está bien que tengamos la tierra cortada porque son diferentes tamaños de pantalla. Y, uh, ya
sabes, espacio es vasto, y eso está bien. Y, uh, queremos asegurarnos de que se vea bien en la mayoría de pantallas años nosotros para tirar hacia arriba la
pantalla más pequeña . Y se ve bien ahí, también, al eliminar el seis más. Y sin embargo se ve realmente bien. Está bien, muy bien. Entonces conseguimos su antecedente. No, sabemos que vamos a necesitar un panel trasero, y sabemos que vamos a necesitar el mostrador o el área donde vas a poder ver esos cálculos. De acuerdo, así que sigamos adelante y sumémoslos ahora. Y si estuvieras pensando que deberíamos agregar un par más, imaginas vistas, entonces tienes toda la razón, porque eso es justo lo que necesitamos. Está bien, hay uno. Adelante y pongámoslo en el panel trasero. Y por supuesto, se aplasta y se estira y todo lo demás. Entonces sigamos adelante y cambiémoslo a ajuste de aspecto. Ahora, tal vez estás pensando, ¿Cuál es la diferencia entre aspecto, ajuste y aspecto? Siéntase bien, ajuste de
aspecto se ajustará a su imagen con una relación de aspecto dentro de los límites de su vista. Entonces, ya
sabes, es que vistas bastante pequeñas en este momento Va de aquí a aquí y aquí a escuchar si
lo cambio a aspecto se ajuste a mi punto de vista. El tamaño no cambió, ¿verdad? Acaba de hacer mi imagen más pequeña. Por lo que cabía ahí dentro. A veces quieres que a veces, ya
sabes, voy a deshacer ese Comando Z. Y luego probemos aspecto sentir ahora, Aspect Phil mantendrá tu imagen en relación de aspecto, pero te cortará la imagen una vez que llega a los bordes del rebote. Entonces solo arrastro esto más grande. Mi imagen. Todo sigue ahí, y se ve bien, pero está, ah siendo cortado. Eso no es lo que queremos. Entonces sigamos adelante y simplemente cambiarlo. Ajuste de aspecto. Y solo,
ah, ah, hazlo más grande. Sí, no está tan mal. Y, ah, la razón por la que tengo las 3.5 pulgadas aquí encendidas. Este es el iPhone cuatro. Y para nosotros, Ok, la razón por la que tengo eso ahí encendido es porque queremos apoyar el tamaño de pantalla más pequeño , vale. Y ah, no
es del todo. Eric. Las chicas lo sacaron ahí mismo. Está bien, me gusta. De acuerdo, vamos a seguir adelante y sólo sacarlo del camino aquí. Y sigamos adelante y agreguemos otra imagen. Tú por el mostrador, y vamos a cambiar este contador de Teoh. Ahora bien, si este contador la mejor palabra para no lo
sé, no sé cómo se llama la ventana de vista. Ese cálculo, Vieux Port, como quieras llamarlo. Lo que mirabas, lo que solía poner la calculadora boca abajo cuando era niño y deletreaba infierno, uh, para impresionar a todos tus amigos. Y te reirías. Entonces esa cosa, eso es lo que estamos haciendo. Y hagamos lo mismo con esto. Adelante y hagamos ajuste de aspecto. ¿ De acuerdo? Ya sabes, es un poco pequeño. ¿ Aviso cómo? A medida que los estoy bajando, la imagen no se re dimensionando. Soy discriminado espacio extra fronterizo. De acuerdo, creo que esto se ve bien. Creo que estos dos deberían estar juntos. Tal vez flotando así, Ok. Y Ah, sí. Entonces me gusta. No. En tiempos pasados, hemos usado restricciones para mover las cosas. En este caso, vamos a utilizar una vista de pila. Ya hablamos de esto, pero cuando en realidad estaba construyendo esta app, decidí jugar con restricciones al principio solo para ver cuánto tiempo tardaba y por qué me tomó una hora con restricciones. Me llevó unos cinco minutos con la vista U i stack. Entonces la palabra en la calle, según Apple, es usar la vista pila primero y luego las restricciones cuando sea necesario, mientras que en el pasado todo tendría que hacerse con restricciones. Por lo que se ve bien. Sigamos adelante y seleccionemos este comando manteniendo pulsado o shift y luego haciendo clic en el
panel posterior se ve un poco apagado. Ves, esos pequeños puntitos dijeron que parece que no están del todo centrados. No estoy contento por eso. Ah, es porque uno es sólo un poco. Me voy a volver loco anal por esto. Adelante y hagámoslo así un poco más grande. A ver si podemos igualarlo. Uh, se ve bastante bien. Está bien. Se ve bastante bien. Sostén pulsado, turno o comandos como el otro. Y lo que vamos a dio es aquí abajo. Esta pequeña flecha y pila cuadrada. Bam ahí, pila. Ahora ya sabes, es como que tenemos un problema. ¿ El dimensionamiento se acaba de ir todo loco Haywire? Está bien, está
bien. Fuera de la pantalla. Y eso no es lo que queremos. Entonces voy a seguir adelante y deshacer la creación de la vista de pila Comando Z, um, yo estaba jugando alrededor de algunas cosas. Muy bien, Entonces, adiós, pila, escribe sobre ahora. Muy bien, entonces notamos que se puso realmente grande. Y al menos para esta aplicación, solo
queremos arreglar el tamaño. No nos vamos a poner todo loco complejo, Y ya estoy auto dimensionando cosas. Está bien, tan bien. Y haz clic en tu vista de contador ahí y ve a tu menú pin, y vas adelante y haces clic con y altura. Dale un fijo con en una altura fija para que no cambie. Está bien, Perfecto. Ahora es algo así por ahí, pero eso está bien. Y luego en lo mismo para el panel posterior, sigamos adelante y pinchemos fijo con y altura fija y sumamos a las restricciones. Y, por
supuesto, se ve todo funky por aquí. Pero ahora cuando por arte de magia seleccionamos esto y mantenemos presionado el comando shift
y como la segunda vista y luego cuando seleccionas la pila para ti aquí abajo en la parte inferior, ahora
están apilados juntos como una sola unidad que es super cool. Súper, super cool. Me encanta. Entonces sigamos adelante y ahora centramos esto en medio de la pantalla porque sabemos que
no necesitamos nada por encima de ella y nada por debajo de ella. Entonces voy a seguir adelante y hacer clic en el icono de Suleiman y vamos a horizontalmente en
contenedor y verticalmente en contenedor, y las cosas deberían verse mágicamente correctas en el lado derecho en la pantalla de vista previa. Y lo bastante seguro, lo
hacen. Veamos cómo se ve en una pantalla más grande. No está mal. Ahora de nuevo, no
estamos utilizando todo el espacio en pantalla, pero eso es un tema y una lección para otro día para que las cosas crezcan y se encojan según las necesidades . Hablamos un poco de eso en nuestra lección de diseño automático, así que puedes hacerlo si quieres. De acuerdo, entonces se ve lo suficientemente bien por ahora. Ahora necesitamos algunas cosas de aspecto de botón naranja que tengan números en ellos. De acuerdo, así que sigamos adelante y hagamos eso primero, sin embargo. Yo quiero señalar algo. Si puedes ver estas líneas discontinuas justo aquí. De lo que ese dicho es, pesar de que en tu pantalla ahora mismo, tus imágenes y controles están donde están donde en realidad se estarán moviendo hacia arriba en hacer esa posición en tiempo de ejecución. Entonces es una especie de Ah, vislumbrar el futuro, ya
sabes, tan bastante guay en la pantalla. Obviamente, no está completamente centrado aquí mismo, pero será en tiempo de ejecución, como se puede notar en el lado derecho. Por lo que siempre confía en lo que hay del lado derecho. No siempre confíes en lo que hay del lado izquierdo. No obstante, en el lado izquierdo, asegúrate de que solo se vea a la derecha. De acuerdo,
entonces, ¿qué debemos usar para estos números? Bueno, si dijeras, usemos algunas imágenes nuevas, estarías absolutamente incorrecto porque necesitamos usar botones. Por supuesto botones. Da clic en imágenes que no. Entonces vamos a pasar por alto. Dragón sobre. De acuerdo, eso no es lo que queríamos hacer. Observe cómo simplemente lo dejó caer justo ahí en la vista de pila. Ahora esa es una característica realmente genial para los tiempos en los que quieres soltar cosas en una pila que no se dan las restricciones de cambio, pero eso no es lo que queríamos hacer. Un código X actuaba un poco demasiado inteligente para su propio bien. Vamos a deshacer eso. Ahora voy a seguir adelante y arrastrarlo a algún otro lugar de la pantalla. Ahí vamos. Y vamos al lado derecho aquí y borremos la palabra, pero adentro porque no queremos hacer eso. Queríamos ser una imagen. Y para tu imagen, ¿Con qué número crees que deberíamos empezar? Bueno, si estuvieras pensando en el número cero o uno, eso estaría cerca, pero en realidad vamos a empezar con siete. Ahora, la calculadora de manzana en el iPhone, arranca 789 del top 456 Y muchas calculadoras hacen esto. ¿ Entiendo la razón o la ciencia detrás de ella? No, pero vamos a seguir el ejemplo. Entonces estoy asumiendo que han hecho investigación. Y esto es lo que le gusta a la gente Y qué, así botones demasiado grandes demasiado grandes demasiado grandes. Obviamente. Tenemos que sentirnos para encajar más aquí que solo esto. De acuerdo, así que sigamos adelante y descubramos un buen tamaño para esto. Um, mantenga pulsado el turno y encogerlo hacia abajo. Yo sólo voy a guesstimate muy rápido aquí, estimando, estimando cuándo estás tres al otro lado. Esto podría ser bueno por ahora mismo. Adelante y Oh, cuidado. Voy a agarrar lo equivocado aquí. Vayamos por aquí. Y lo que puedes hacer es mantener pulsado el comando Comando. Ah, más D. Ok. Y lo duplicará. Eso significa duplicado. O podrías hacer comando ver que comando ser, hace exactamente lo mismo. Vamos a entrar y cambiarnos poco más al número ocho. Se ve bien. Y luego estamos en un comando de seleccionado de nuevo. Tan solo quiere ser resaltado de nuevo Mandy, y vamos a seguir adelante y moverlo por aquí, y eso se ve bien. De acuerdo, cambiemos la imagen a nueve. Está bien. todas las chicas. Está bien. A mí me gusta. Entonces hagamos también otra cosa para que sigamos adelante y solo hagamos de estos todos una altura fija con y fija. Podemos cambiarlos más adelante si queremos. Sólo para que digan lo mismo. Ah, te encanta. Ahí va el auto layout haciendo que nuestra vida sea mágica por aquí en el lado derecho. Por qué ningún 1 puede saber alguna vez, pero pronto nos arreglaremos seleccionando los tres de estos. De acuerdo, mantenga pulsado, Comando, seleccione los tres. Mantén pulsado turno y vamos a seguir adelante y poner estos en su propia vista de pila justo aquí a
la derecha dentro. Y ahora están en una vista de pila. Eso es bastante guay. Y están crujidos. Pero mágicamente, al cambiar este número por aquí espaciado, ya no será crujido. Voy a poner un 25 ahí dentro, ver cómo se ve. Y ahora son espacio por 25. Eso es bastante guay. Eso es realmente genial. En realidad. Ahora, lo que puedo hacer es tomar toda esta pila de Reino Unido, y en realidad puedo arrastrarla a la sensación de pila. De acuerdo, chico, eso va a servir. Se lo va a solventar. Por lo que no queremos apilar cosas en la vista de pila porque no necesitan ser una pila. Tienen que estar flotando encima de ella. Entonces en este caso, no
vamos a estar usando múltiples estatuas con números. Y el fondo que realmente estamos haciendo es poner esto a través de restricciones, lo cual está bien, eso está bien. Entonces sigamos adelante. Ayuda. Podría ser cuidadoso. Seleccionas aquí. Voy a seguir adelante y sólo ah, mueve la pila para ti todo el camino hacia abajo, ¿de acuerdo? Y voy a usar las flechas ahora. Dos cosas de posición, porque si haces clic y arrastras, lo va a soltar justo en esa pila V otra vez. A veces es demasiado inteligente para su propio bien. De acuerdo, entonces, sí, espaciamientos un poco, un poco pesados. Entonces sigamos adelante y cambiémoslo aquí en el lado derecho. ¿ Qué? Piensa que un buen número 20 20 podría ser el número. Vamos Ah, haga
doble clic en esto otra vez y muévelo un poco. Creo que 20. Todavía un poco demasiado. Sigamos adelante y intentemos 15 Mejorando. Por cierto, vas a hacer mucho de este lote de prueba y error y pruebas a menos que un diseñador te haya proporcionado el pixel perfecto artwork para ti y espera que lo implementes pixel perfectamente. De acuerdo, estarás haciendo mucho aire de prueba por tu cuenta. De acuerdo, entonces se está acercando a lo que quiero. Um, realmente
siento que estos botones son un poco demasiado grandes. Vamos a jugar un poco con ella Aquí. Um, ¿qué tenemos ahora mismo? Ahora mismo, es 65 por 66. Uh, sigamos adelante y cambiemos. Puede ser así 61 63. Entonces si haces doble clic en estos ah, números de,
de hecho debilita a Dio Um, pensé que podríamos No podemos hacer todo de met una vez. Esto es hacer de uno a la vez, sólo ah, ahora lo que no quieres hacer es no quieres seguir adelante y darle clic aquí y cambiar aquí de nuevo porque sumará dobles restricciones. Um, eso no es lo que queremos. Entonces sigamos adelante. Haga clic en este y haga doble clic en él. Y lo que probablemente debería haber hecho es solo conseguir el tamaño correcto para el 1er 1 abajo. OK, pero eso está bien en juicio y error. No es gran cosa. Entonces digamos 61. Son un poco más altos de lo que son anchos. Eso está bien. Por lo que 61 vamos a hacer clic fuera de la pantalla y volver a hacer clic y cambia a 63. Está bien, y ah, eso se ve bien. Podemos ir con este tipo de aquí y ah, vamos adelante y cambiemos el Eso es interesante. El ah apilado En realidad se adelantó e hizo algunas modificaciones de un decirle, pero vamos a entrar y cambiar estos. Todos ellos aquí 61 en 61 no 6 61 cosa tú y Ah, Click off. Vuelve a hacer clic y vamos a repasar. Teoh 63 empezando a dar forma aquí. Uno más, uno más. 61. Si tengo un oso a través de hacer esto, tienes que aguantar hacer esto justo como es, ¿de acuerdo? Y Ah, 63. Está bien. A mí me gusta. A mí me gusta. A mí me gusta. Ahora se está acercando a qué? Yo quería parecerme. Alguien hace doble clic en la vista de pila y simplemente se mueve un poco. Aquí. Arriba. Ahí mismo encontró el centro para nosotros. Perfecto. OK, me gusta. A mí me gusta. A mí me gusta ahora. Obviamente necesitamos que estos floten en la parte superior del ah, el panel trasero. Entonces, ¿cuál es la mejor manera de hacerlo? Bueno, probablemente
haya montones de distancia. Entonces una manera es tal vez podríamos simplemente centrarnos en esto. Sabemos que esto está centrado en la pantalla, la libra trasera. A lo mejor podríamos centrar esto y darle un desplazamiento constante. Um, creo que tal vez lo mejor que podríamos dio es que queremos todos estos. Queremos que todos estos números estén alineados con este significado. Si esto fuera para moverse por toda la pantalla. Los números siempre estarán en él porque es una calculadora. Entonces lo que estoy pensando que necesitamos dio es realmente crear todos los números ahora y todos los todos
los botones los ponen cada uno en su propia fila. ¿ De acuerdo? Y entonces creo que tenemos que hacer es hacerlos todos en su propia vista de pila, y luego centrar eso en el centro de esto. De acuerdo, si eso es confuso, no te preocupes. Vamos a ir ahora mismo, Así que voy a seguir adelante y, uh, Mandy a duplicar y vamos a seguir adelante y seguir adelante abajo justo debajo de él aquí un
poco lento, porque tenemos múltiples controles seleccionados a la vez. Está bien. Está bien. Queríamos sobre Vamos a ver aquí. Está bien, eso se ve bien. Ya sabes, no importa demasiado lo que estemos haciendo aquí mismo, porque lo que puedo hacer es solo darle un espaciado en una pila vertical, y probablemente debería ser tu probablemente 00 no. Mira eso. Se lo quiere poner en el ciervo, Ya sabes. Está bien, bueno, usaremos los errores. No uses el peligroso Ah, el peligroso click drag. Oh, Dios
mío, agarrando las cosas equivocadas. Vamos, vamos,
vamos, vamos, vamos, vamos. Ahí vamos. Haga doble clic en él. Se selecciona. Mover de nuevo hacia abajo. Se va a ir un poco lento. No hacer exactamente lo que queríamos a Dio. Eso está bien. Esto lo mueve. Simplemente lo necesitamos por debajo del otro control ligeramente. ¿ De acuerdo? Porque, ah, la pila de combustible. Alinearlo para nosotros. De acuerdo, Así 1234 Necesitamos cinco filas en total. Ahora tenemos tres. Vamos a seguir adelante. Y es como estas dos filas ahora y comanda D. Vale, ponlo arriba. Sácalo de nuestro, uh, fuera de lo nuestro. Todos juntos. Debe ser un bicho. Hagamos sólo uno a la vez. Cómo lo hizo ese también. Um, vamos. Hice lo que hice esta vez fue sólo comando C comando V. Así editar copiar, Editar pegar. Y funcionó esa vez. Entonces sigamos adelante y lo hagamos de manera diferente esta vez ya que está tomando mucho tiempo. Vayamos al eje Y sobre a la derecha. En el interior. Vamos a moverlo hacia abajo. Déjenme decir 400. Vale, bueno, tal vez 4 50 Muy bien, Eso es demasiado. Pero digamos por 20. Muy bien, entonces necesitamos una fila más. No es gran cosa. Voy a seleccionar a este tipo aquí. Comando C, mando V. Y sigamos adelante y hagamos, Ah, 500. Está bien, muy bien. Entonces ahora lo que voy a tratar es que vamos a seleccionar todas las vistas de pila, así que Oh, vamos. Cámara 12 manteniendo pulsado turno tres, cuatro y cinco. Y veamos si por arte de magia funciona fuera de la caja para nosotros. Cuando sigamos adelante y seleccionamos esta pila aquí. Ahora, se supone que es inteligente y reconocer que esto es vertical. Veamos qué tan inteligente es la vista de pila cuando hago clic en ella y es bastante dang inteligente. De acuerdo, así que tenemos una vista de pila con un montón de vistas de pila en ella, y eso es justo lo que queríamos. Entonces ahora si voy por aquí a los atributos Inspector, puedo establecer espaciado. ¿ Qué tan guay es eso? Y también lo son los espaciados que creo que eran 15. A ver cómo es, Lefd que aquí demasiado. Digamos 10. Se ve mucho mejor, ve mucho mejor. ¿ Qué tal si decimos siete Vale, estoy gustando adónde va esto. Vayamos aquí y pinchemos la regla. ¿ De acuerdo? Y, ah, hagámoslo un poco más alto. Lo siento. Bueno, más alto. El número irá a la baja, pero las imágenes vamos a ir más alto. Entonces sigamos adelante y digamos 1 80 Demasiado alto. 1 90 sobre 90. ¿ Puedo conseguir uno? 91? 91 90. Ah, no del todo 1 98 Tal vez se esté moviendo. Se está moviendo. No estoy del todo donde lo queremos todavía. Ah, tengo corchetes, Por
eso,
Vale, Vale, nos estamos acercando. Digamos, uh 205 ¿Puedo escuchar un dos de cinco Duo cinco a un cinco com sobre spinning de bebé? Está girando. Se está moviendo un montón de cosas que una vez es comprensible. Eso es un poco demasiado. Digamos que 202 Vamos. Está bien, voy a pensar que creo que voy a llamar bueno a eso, acuerdo? Y tú eres como, ¿qué? Está fuera de la pantalla en el lado derecho. Y si estás pensando que debes saber que esto es lo que el auto Leo nos hace, no
es justo. Pero es sólo la forma en que está bien. muy cool. En realidad no, pero tenemos que lidiar con ello. Entonces Ok, entonces lo que queremos es que esto se quede aquí mismo en el lado derecho. ¿ De acuerdo? Actualmente no está haciendo eso. Entonces otra vez, muchas opciones. Podríamos centrarnos en la pantalla. Lo que sea. Sigamos adelante y hagamos que estos apillen vistas, hablándonos unos con otros. De acuerdo, Entonces lo que voy a decir es que voy a seguir adelante y seleccionar la tarifa de pila moderna, que son mis números, acuerdo? Y me debe gustar la vista de la pila superior, que es el retroceso real aquí. Y lo que quiero hacer es seleccionar una línea, ¿de acuerdo? Y, ah, creo que hay algunas maneras en que podríamos hacer esto también. A lo que podría hacer es decir,
oye, oye, alinear la parte superior de esto a la parte superior de esto. Y entonces qué podríamos hacer como podríamos darle un dedo del pie de desplazamiento constante. Vuelve a ponerlo por aquí. ¿ De acuerdo? Lo cual tal vez deberíamos haber hecho eso en primer lugar en lugar de mover todos estos números . Pero, uh, esto es después del hecho, o lo que podríamos hacer es que podríamos centrarlos. Um por supuesto, horizontalmente. No necesitamos cambiar eso. Pero luego verticalmente también. Y lo que podríamos hacer es en la vertical. Podríamos en realidad, no lo
soy. No el uno. Estos de aquí. Centros horizontales verticales y centros médicos. Y en la vertical, realidad
podríamos decir offset. Ahí está bien, también. Y en realidad estoy pensando que eso es lo que quiero hacer. Entonces voy a hacer clic en ambos. va a centrar en esto, así que los va a mandar aquí, y lo va a poner horizontalmente ahora, el de afuera. El panel trasero no va a cambiar de acuerdo a lo que estamos haciendo aquí porque
ya está anclado al centro del contenedor. Entonces eso ya pasó. Y así esto sólo va a pasar con nuestros números. No va a afectar el movimiento real de esto. Entonces está bien, reunirme como si tuviera estos números por aquí e hiciera centros horizontales, no
va al panel trasero por ahí. De acuerdo, voy a añadir las dos restricciones, Ok. Y ahí vamos. Ahora, es justo como esperaba ponerlo ahí. Se ve perfectamente centrado si se considera aquí todo el límite real real. Pero eso no es lo que queremos, claro. Por lo tanto, haga clic fuera. Por lo que no están ambos resaltados. Y haz clic en tu pila de números. ¿ Estás bien? Y, ah, por aquí en el lado derecho. No queremos tocar esto. Este es el ex centro. Pero lo que sí queremos tocar es el Por qué. Ok, entonces ahora lo que puedo dio es Aiken, dale una constante, ¿de acuerdo? Y ah, vamos a tirar un número aleatorio él. Entonces es un 20 y se movió hacia abajo. Entonces digamos 40 un poco demasiado. Digamos que 35 por cierto, estoy mirando la cosa del lado derecho, Claro. Y 35 parece el número correcto. Ahora, pase lo que pase. Pantallarlo encendido. De acuerdo, esto va a quedar bien. Aunque la lanzo en la almohadilla de noche. ¿ Verdad? Vamos. ¿ A dónde fuiste? Pongo en panel la rueda giratoria de la muerte está sobre nosotros. De acuerdo, sigamos adelante. Y quién no es grande ahí. Está bien, así que se ve genial. Y todos los tamaños de pantalla. Está bien. Entonces de nuevo, lo que hicimos fue poner las cosas en vistas de pila y una vez que estaban en la estatua. De acuerdo, No
hicimos restricciones entre números y números números. Acabamos de ponerlos en la pila de ustedes. Hizo lo suyo por arte de magia. Y luego hicimos las restricciones en las vistas de pila que queríamos fluir encima de la otra vista de pila. Y seguimos adelante y lo enviamos verticalmente. Y luego también horizontalmente y en la horizontal, ponemos un, uh Disculpe en la vertical de aquí, dijimos un offset, así que lo baja un poco. Entonces no está del todo centrado en todo el asunto, pero lo forzamos en su offset. Por lo que se ve bien. Se ve muy bien, en realidad. Entonces estamos avanzando. Entonces todos me están preguntando. Yo lo sé. ¿ Cuándo vas a cambiar los números de la porquería? Se roba un 789 Ok, Ok. Pongámoslo ahora mismo. No es gran cosa. Entonces, sigamos adelante y solo haz clic en él. Eso es bastante fácil, chicos. No hacer esto. Ni siquiera debería demostrar que se podría hacer esto con los ojos vendados. Cambia esto a un cuatro. De acuerdo, por cinco. Vamos, cuatro. Este es cinco. De acuerdo, éste, aquí
estoy del lado derecho. Está bien. Haciendo clic en la imagen. Eso es todo lo que estoy haciendo. De acuerdo, nada mágico. 456 Y, por
supuesto, después de 456 siempre viene. 12 y tres, uno a y tres. Está bien. Y por supuesto, este 10 tiene que tener un cero ahí dentro, y éste se va a dividir. Ah, por cierto, puedes teclear dos. Si quieres divides, percenter, encuéntrala en. Este se va a multiplicar. Estoy escribiendo cartas en la M y aparece en mi centro de prensa. Eso es todo. Este va a ser sub tracto. De acuerdo, éste va a ser anuncio, ¿de acuerdo? Y este va a ser igual igual igual. Está bien. Está bien. Todos contentos. Tenemos los botones ahí. Está empezando a lucir realmente bien. Nos falta alguno. ¿ Por qué? Bueno, nos falta el suelo. Podríamos hacer eso. Ahora. Voy a ser divertido. Entonces sigamos adelante y hagamos eso. El suelo es estático, así que vamos a seguir adelante y usar una u Te imagino para eso. Te imagino maravilloso, y vamos a seguir adelante y ah, ten
cuidado no ten cuidado de no pasar por encima de tus vistas de pila. Le gusta engullirse todo. Al parecer así. Um Y por cierto, si no sabías que esta pila era un nuevo concepto de nueve Iowa. De hecho, es bastante revolucionario. Y he estado jugando un poco con él, y lo estaré usando en todos mis APs de producción aquí en cuatro. Eso es lo importante que es. Entonces Ah, las cosas que aprendimos sobre las restricciones también son súper importantes, porque tienen que trabajar juntos, y estarás usando ambas. Pero por favor aprende a usar vistas de pila si quieres que tu vida sea más fácil. ¿ De acuerdo? Por cierto, si alguna vez haces clic en algo mal, como acabo de hacer ahora mismo, solo presiona escape y volverá. ¿ A dónde pertenece caso? A veces tiene problemas como aquí está la cabeza. En realidad necesitábamos estas flechas aquí. De acuerdo, voy a arrastrar esto ahora. ¿ De acuerdo? Vista de imagen. Este es nuestro terreno. Um, esto se eleva un poco más alto, ¿de acuerdo? Y lo que voy a hacer es ponerlo si te das cuenta Ah, aquí
hay orden de cosas. ¿ De acuerdo? Las cosas que están en la parte superior son, aunque en la parte superior, y queremos el suelo detrás de ella, así que voy a seguir adelante y arrastrarlo ahí mismo. No se debe confundir con poner dentro de ella o debajo hay justo ahí. Vamos a ponerlo una especie de arrastrarlo por aquí a la izquierda de la línea azul está bien de ti justo ahí. Y Ah, ahí vamos. OK, así que está en el muy bien. No lo queremos. Sí queremos en la parte inferior, pero no todo el camino en la parte inferior, No detrás de los fondos espaciales. Volvamos a no ponerlo dentro de ella. Pero ponlo a la izquierda del espacio atrás o a la derecha por ahí, y debería alinearse justo donde lo quieras. Muy bien. Está bien. Una escuela cambia la imagen de la misma en el lado derecho.
33. Aplicación de iOS 9: calculador retro parte 2 2: Se trata de Mark Price. Y bienvenidos de nuevo al show, todos. Este episodio te lo trae Spike Energies manteniéndome despierto por la noche
para poder entregarte algunos mapas impresionantes. Y por cierto, esto no es un espectáculo. No tenemos episodios, y no estoy siendo patrocinado. Entonces Ok, entonces en la última parte, fuimos adelante y construimos toda la esposa o aplicación. Ahora necesitamos realmente escribir algún código. De acuerdo, aquí está mi app. Aquí tienes tu app. Está bien. Y ah, se ve genial. De acuerdo, así que vamos a seguir adelante y deshacernos del asistente de editor aquí. Ahora muévete esto. Y solo voy a hacer clic en mi controlador de vista que veloz en el lado izquierdo. Está bien. Como pueden ver, aquí no
tenemos nada. ¿ En serio? Acabo de borrar el sí recibió la advertencia de memoria. Y hablemos de lo que estamos tratando de dio. ¿ De acuerdo? Queremos poder hacer clic en botones en la interfaz de usuario y en los controles, hablar con nuestra interfaz por aquí, y luego nosotros desde operaciones basadas en cualquier operador que fue seleccionado. De acuerdo, entonces hay algunas cosas que podemos empezar ahora mismo. sin tener que usar demasiada potencia cerebral, como conectar nuestros elementos de interfaz bien
, en el código dentro. Por lo que soy outlet así como yo reacciones. Está bien. Y hay bastantes maneras diferentes en las que podemos hacer esto, pero lo vamos a hacer de una manera. Y así en primer lugar, lo que yo sea Alice, ¿necesitamos Piénsalo. Bueno, lo que puedo decir, lo único que realmente necesitamos saber o tener una referencia es algo que podemos cambiar, creo
que está en Lee la etiqueta de salida. De acuerdo, así que voy a decir que soy outlet. Está bien. Semana de nuestra salida, etiqueta de tipo usted. Yo etiqueto. Ahí vamos. Ponga un letrero de libra al final. Está bien. Ahí hay yo sea outlet. Ahora, pensemos en las acciones, ¿de acuerdo? Tenemos un montón de botones, y necesitamos conectarlos
también . No, los números son solo números. Ahora, lo que podríamos hacer es que podríamos seguir adelante y hacer que veamos de uno a nueve más cero. Entonces eso son 10 números. ¿ De acuerdo? Podríamos seguir adelante y hacer 10 acciones de hiedra, pero no creo que esa sea la mejor manera de hacerlo. Creo que hay una forma más inteligente de hacerlo. Entonces esto es lo que vamos a dar. Vamos a abrir a nuestro asistente de editor aquí en el medio, ¿de acuerdo? Y vamos adelante y cambiamos esto aquí. Voy a dar clic a esta carpeta aquí. Calculadora retro, y voy a seleccionar storyboard de punto principal. Está bien, Muy bien. Muy bien. Cerremos aquí el lado izquierdo por espacio. De acuerdo, entonces tenemos todos estos números aquí, y hay algo realmente genial que puedes hacer con un botón o cualquier vista. ¿ De acuerdo? Estos botones y todos estos controles, por cierto, todos heredan de lo que se llama U I. View. No hemos hablado de herencia, pero básicamente, todos estos controles heredan características de otros controles. ¿ De acuerdo? Y así tienen una característica llamada Tag T A G. Muy bien, así que voy a escuchar el lado derecho y desplazarme hacia abajo más fácil que mi predeterminado. El tag se establece en cero. Entonces lo que estoy pensando, lo que estoy pensando es lo que vamos a dio es darle a cada uno de estos una etiqueta basada en el número que representa el botón, y luego llamaremos a la misma función en la acción I b en nuestro código, y entonces sólo agarramos el número de ella para ver qué botón se presionó que sólo tenemos que hacer una función. Creo que eso es lo que queremos dar. Entonces lo que voy a hacer es primero, seguir
adelante y cambiar los números en cada uno. Entonces acabo de cambiar. Número uno dedo del pie uno cambio número dos, también. Está bien. Y voy a cambiar de 3 a 3. Creo que estás siguiendo un patrón aquí para 24 y 5 a 5. Y te dieron seis. Está bien. Sí. Siete. Tenemos ocho y nos dan una noche. Ahí lo tienes. No demasiado duro. Tan fácil bastante. Ahora adelante y escribe. R I B acción por aquí en el lado derecho. Y les animo a escribir tanto código como sea posible para memorizar estas cosas. Está bien, yo reacciono. OK, estas son las funciones del funk. Y sigamos adelante y llamemos a esto, um, cuál es un buen número para nombre para un número presionado Número presionado. Está bien. Y ah, a mí de tipo botón, ponerte un botón. ¿ Recuerdas? El parámetro le damos un nombre y luego pasamos el tipo después de él. Está bien, Muy guay. Entonces ahora sabemos qué botón se presionó. OK, me gusta. A mí me gusta. A mí me gusta ahora antes de meternos en la basura
ardiente, hagamos una cosa más divertida. OK, pongamos algo de audio aquí, y esto es emocionante. Me encanta poner audio, mis abdominales. Me encanta dar vida a mi APS. Lo que sea. ¿ Tienen clientes que? Ah, que sólo quieren los huesos desnudos. Yo estaba haciendo mi mejor esfuerzo para darles mawr no a expensas de tiempo y dinero, sino darles más de lo que pidieron. Y a veces unas animaciones simples. Y el amor que pones en las cosas puede mejorar enormemente una aplicación. Y creo que esos son los APS que ganan mucho dinero en la tienda APP. Así que sigamos adelante y agreguemos algunos efectos de sonido a nuestra app. ¿ De acuerdo? Y entonces lo que vamos a hacer es que vamos a usar algo que se llama fundación V. Voy a seguir adelante e importar la biblioteca aquí, importar una fundación V ahora Swift automáticamente sabe lo que estoy haciendo, OK, no me completó auto, Así que si no supieras lo que buscas eso no lo haría simplemente mágicamente ponerlo. Pero ahí lo tenemos. A V fundación. Lo que va a hacer es que nos va a dar y reproductor de audio video, y sólo vamos a tocar un poco de sonido, ¿de acuerdo? Y así tenemos que sonar primero. Entonces voy a seguir adelante y abrir de nuevo el lado izquierdo por aquí, como pueden ver. Está bien. Y vamos a agarrar ese archivo. ¿ De acuerdo? Entonces voy a abrir mi buscador, y vamos a mirar en el escritorio yendo al arte de la calculadora aquí. Y ah, esto es un arte. Pero vamos a seguir adelante y agarrar a cualquiera. Ahí está la onda de punto de botón, y solo puedes seguir adelante y hacer clic en él y arrastrarlo por aquí justo al lado del
TTF de Minecraft . Eso está bien. Está bien. Asegúrese de agregar el objetivo está seleccionado igual que la última vez. Destino elementos de copia mayor si es necesario, está encendido. Y adelante y haga clic. Terminar. Está bien, así que ahora tenemos un archivo de sonido son reales en el proyecto, acuerdo? Y así voy a seguir adelante y ah, hacer esto un poco más grande para que puedas ver el código aquí. Está bien, Y Ah, OK. Debajo de los puntos de venta aquí, voy a seguir adelante y crear, um, un reproductor de audio. Entonces vamos a guardar nuestros botones. Sonido de audio tipo A V. Vamos fuera. Un reproductor de audio completo Lario A V. Está bien. Y el signo de exclamación dice:
Oye, Oye, sólo
vamos a asignar esto más adelante. Ahora mismo, no
hay nada en ella. Y si intentas usarlo el choque de manzana. Pero me estás prometiendo que vas a poner algo en ella, y lo haremos Nosotros vamos a hacer eso. Y vamos a usar la vista. ¿ Se cargó para inicializar eso. De acuerdo, Así que vista hizo carga se llama siempre. ¿ Qué? Siempre que se carga la vista, eso es bastante genial. Entonces después de que ocurra la inicialización, está bien, cuando las vistas se han cargado en la pantalla y esto aún puede suceder antes de visualmente en tu ojo, puedes éxtasis provoca que las computadoras el aire rápido. De acuerdo, Pero cuando se hayan cargado las vistas en la memoria, aquí es cuando se llamará a esta función. Está bien, Eso es lo que tenemos que hacer es primero, agarrar el camino del fuego cuando dices:
Oye, Oye, ¿dónde vive este archivo? En nuestro sistema de archivos. En el iPhone? Sí. Hagámoslo. Ahora, digamos que vamos camino. Vamos a hacer que sea un let porque no vamos a cambiar. Se va a mantener constante. K es igual a N s paquete. Ese paquete principal. De acuerdo, todos esos archivos ahí estaban en el paquete principal. Y así cuando quieres agarrar cosas como lo que estamos haciendo en este momento y está empaquetado paquete
principal es lo que quieres llamar ok dot path for resource. Entonces estamos consiguiendo el camino para un recurso y hay un camino especializado. Ni siquiera necesitas saber cómo se ve. Sólo tienes que saber que te está consiguiendo ese camino. De acuerdo, A nombre del archivo es belleza en de tipo W A V bastante simple. El nombre y su tipo su extensión al final. Está bien. Y así tenemos una ruta de cadena. Esto es sólo una cuerda. Y ahora lo que necesitamos dio el reproductor de audio requiere que sea un n s u r l Vale, un tipo especial de manzana. Tú crío, uh eres l que este reproductor de audio va a usar, Así que sigamos adelante y hagamos el Aurel ahora también. Entonces no vamos a cambiarlo así que es un sonido constante. Tú eres l igual. Y como Euro Ok, presentador y paréntesis de apertura. Está bien. Y lo que estamos buscando es este tipo de aquí mismo archivo. Estás enfermo de camino, y vamos a pasar por el camino, acuerdo. Y ah, se ve bien. Y veamos qué dice la advertencia. Nunca se está usando. ¿ Qué? Eso lo sabemos. Por lo que a veces esas advertencias o preventivas, no
necesitas preocuparte por ellas. Sabemos que lo vamos a usar. Entonces cállate, código
X. Bondad. Está bien. Entonces, no, hay algo que tenemos que hacer. Y necesitamos conseguir a este jugador. Um, necesitamos que este jugador se asigne a nuestro botón. Sonido que un reproductor de audio B. Está bien. Y, um, vamos a seguir adelante y hacer eso ahora. Entonces el sonido de botón equivale a un reproductor de audio V, y lo vamos a cargar con la chica. Este de aquí, Ok. Y, ah, eso va a ser un euro sonoro, y nos va a dar un aire. Hablemos de ello. Dice llamada puede lanzar, pero no está marcada con try y el aire no se maneja. De acuerdo, esto es realmente importante. Esta es una nueva
función swift 2.0, . Entonces antes y rápido un punto x. Por
supuesto, hicieron grandes cosas en hacer en ayudarte a tener un código muy robusto Eso no se bloquea . OK, bueno, han llevado eso hasta el siguiente nivel para ponerte en un lugar donde,
en esencia, en esencia, te
están obligando a no dejar que tu app se estrelle. Ah, y en realidad es algo realmente bueno. Es realmente que es algo realmente seguro de hacer. Entonces lo que básicamente están diciendo es un reproductor de audio B, podría romperse. Podríamos haber puesto un mal tú eres yo ahí dentro y algo podría romperse. Está bien. Y puede que no te dé lo que quieres. Y así nos van a obligar a no Van a obligarnos a probar esto primero, Ok, antes de que podamos usarlo. Por lo que necesitamos dio algo llamado do. Está bien, ponlo. Ah, llaves ahí. Voy a mandar a X que corte esto en el comando V para pegarlo. Entonces vamos a hacer esto. Significa realizado este bloque de código. Y lo que tenemos que hacer es poner una palabra clave frente a este intento de culto. OK, así que de ahora en adelante, cada vez que x code te grite sobre Hey, esto lanza algo como simplemente nos gritó. Dice esto. Tira algo. Sabemos que tenemos que ponerlo en un bloque do aquí. Hay otras formas en que podrías hacer esto, pero lo pones en un bloque do y luego pones la palabra clave try delante de ella. De acuerdo, vamos a probar esto y a ver si funciona. Y aquí está la llave aquí mismo. Está bien, atrapar. Entonces lo que estamos diciendo es intentar hacer esto, y si hay algún tipo de problema, vamos a atraparlo aquí mismo. De acuerdo, vamos a atrapar nuestro problema ahí mismo. Veré si se va el aire, acuerdo? Y veamos qué dice de nuevo este tipo. Nunca se ha usado. Eso está bien. De acuerdo, entonces hablemos de esto otra vez. Hazlo este bloque de código. Si hay algún problema, eso es lo que intenta probar. No está garantizado si hay algún problema yendo a aquí. Entonces digamos que esto sí cayó. No seríamos capaces de tocar nuestro sonido y daríamos resultados inesperados. Puede estar justo aquí. Queremos a Teoh. Recargarlo, reintentarlo. Poner en Nueva York ahí, quién sabe ahora mismo, todo lo que vamos a hacer es imprimir el punto de aire profundo Ah, descripción de
depuración. Y lo que las distribuciones de depuración van a dio es Ah, solo va a imprimir algo que sea legible para el cónsul. Si presiono a este tipo hacia abajo, este tipo de aquí arriba, esta cosa aparece, lo imprimirá justo ahí. ¿ Qué? El problema real para que pudiéramos saber resolverlo. De acuerdo, entonces todo lo que estamos haciendo es que estamos probando esto Si funciona, genial. Si no, imprimamos esto aquí. Va a funcionar porque,
um, um, nuestro camino es bueno y todo eso. Entonces de todos modos, característica
muy cool. Vamos a entrar en ello más tarde. Um y ah, tienes que hacerlo porque te hace hacerlo. Entonces, vamos a acostumbrarnos ahora. Y uh bien, así que tenemos lo que hemos hecho aquí es que ahora hemos asignado un reproductor de audio a nuestro botón. Entonces aquí está su variable. Y acabamos de poner el reproductor de audio y cargamos a la chica justo aquí. Está bien. Y lo que queremos dio es después de que cargue con éxito los reproductores de audio, adelante y solo, uh, llamada preparada para jugar. Es una función en el reproductor de audio A V. Y lo que va a hacer es que esto va a tener listo tu sonido Así que no hay tiempo de espera cuando
el usuario lo presiona. De acuerdo, Cosas
muy cool. Y así, um, sus reproductores de audio trabajando y ah, bueno, creo que eso es todo lo que necesitamos. Veamos si un número presionado si pudiéramos simplemente tocar un sonido. Entonces digo botón, suene ese plato. Debería poder reproducir ese sonido. Ahora. No hemos conectado nuestros botones. Esto yo sea perspectiva todavía. Entonces hagámoslo ahora y después Vamos a probar el sonido. De acuerdo, Así que de vuelta aquí en nuestro constructor de interfaces, nuestro storyboard. Y cuando digo constructor de interfaces y storyboard, estoy comiendo lo mismo. Ah, storyboards no siempre han existido antes de que tuvieras que usar ah, lo que se llama archivos zip y sigue siendo constructor de interfaces con storyboards. Ness es la conexión de múltiples Zip ex I B. Es como se llaman, y así seguimos usando Interface Builder, ¿de acuerdo? Y así tenemos nuestros botones aquí, y lo que necesitamos dio es solo conectarlos y hagámoslo justo aquí realmente fácil para que pueda bien? Haga clic en esto y Ah, retoque adentro. Voy a dejarlo caer en el controlador de vista y el número presionado. Lo pops justo ahí. Hagámoslo. Ah, número uno. Es para todos ellos. Está bien. Y ah, otra vez, ¿me vas a ver hacer todo esto? No me gusta saltarme estas cosas porque la repetición es increíblemente importante cuando estás aprendiendo programación o cualquier otra cosa. Pero sobre todo la programación es que la programación requiere mucho poder cerebral. Lo que pasa con la programación es ah, no es como cuando, ya
sabes, tienes un trabajo como,
uh, ya
sabes, ya
sabes, atrás cerca de los 16 trabajabas en Wal Mart. Ya sabes, podrías estar muerto cansado. No importa cuántas horas de sueño tengas. Esa es la equivocada. Ahí. Um, aún
podrías ponerte de pie y hacer lo que necesites hacer. No tan un programa. Necesitas descansar. Tienes que tener un cerebro que funcione. Ah, es un poco más difícil. OK, entonces es un poco más difícil. Entonces, um, así que la repetición es realmente importante. Entonces te voy a dar mucho,
y, y, uh, casi
estamos ahí. Ya casi estamos ahí. Eso es arrastrar hacia arriba el controlador de vista. Está bien. Um hizo más de cinco aquí Oh, creo que hicimos el número cinco. Está bien. Y déjame hacer el número cuatro. Sí. Está bien. Así que el número siete ahora y retocar dentro de ese poco haciendo todos estos aquí. Si metí la pata en estos, sólo avísame. Pero no puedo porque esto es una grabación y es probable que estés en el futuro. Y probablemente estoy en el pasado. Este es algún tipo de extraña paradoja. Tan reprimido. Un número más 90 ¿Qué acabo de hacer aquí? Eso es correcto. Haga clic en el controlador de vista. A ver lo que tenemos pasando. Entonces nos dieron botón botón botón, pero estos eran todos botones. OK, Eso sigue luciendo bien. Entonces déjame Ah, asegúrate de que siete esté bien. Todavía lo es. Asegurémonos de que el número ocho sea bueno Aún. Mira ese toque drag Ni siquiera me lo dijo. Chicos, vamos, retoquen. Dentro es lo que queríamos. ¿ De acuerdo? Y ah, ni nueve. Retoque por dentro para ver el controlador. Está bien, ahora sigamos adelante y guárdalo y ah, corralo. Creo que tenemos todo lo que necesitamos. A ver si funciona. Si estamos Si vamos a tener algún error, es muy posible Nunca sabes Siempre oigo al señor siempre cruzando los dedos cuando estás construyendo esperando que algo vaya a funcionar, lo cual trae un buen punto cuando estás desarrollando, debes probar las cosas tan a menudo como puedas comandar tres. Hacer estas pruebas más grandes suele ser lo que puedas,
porque cuanto más código escribas, más potencial de problemas vas a tener y dolores de cabeza. Y va a ser más difícil de arreglar. Por lo que la prueba a menudo lo ejecutan y se prueba con frecuencia. De acuerdo, veamos qué está pasando aquí. ¿ Todo bien? Ahora bien, si todos estos botones hacen un sonido, tenemos éxito. Entonces, vamos a ver. , éxito Éxito, éxito, éxito, éxito. ¿ Entendiste el punto? Creo que podemos llamarlo un éxito. Voy a detenerlo. Está bien. muy cool. Entonces tenemos botones tocando. ¿ Qué tan fácil fue eso? ¿ Qué tan fácil fue poner sonido en tu aplicación? Tan muy cool. Tenemos audio. De acuerdo, sigamos adelante y cerramos. El asistente de editor y vamos a seleccionar en el lado izquierdo nuestro controlador de vista que rápido . Está bien. Y aquí estamos en el código. Ahora pensemos en lo que tenemos que hacer. A veces visualizo esto a veces dibujo en papel. Piensa en lo que tenemos que hacer. Entonces si puedes fingir que estás usando la app de calculadora para iPhone y de hecho, si no lo has hecho frente a ti, ¿por qué no haces esto? ¿ Por qué no lo miras un video positivo y luego piensas a ti mismo ¿Cómo funciona esta calculadora ? Significa que si presiono cero y luego presiono el botón más y luego presiono algo más, ¿Qué va a ir? Prensa libre de cinco. Y luego una división, y luego un cinco y luego una división. ¿ Qué va a dio y simplemente familiarizarse de verdad con él? Está bien. Y asumiría que lo hiciste, y aún así voy a explicarlo. Entonces cuando tienes una calculadora y presionas, digamos el número cinco y luego presionas el botón más y luego presionas un seis. ¿ Qué pasa? Bueno, nada. Se acaba de ver los seis ahí. Pero si presionas igual
, dirá 11. O si presiona el siguiente operador. Está bien. Cuando vas a realizar otra op, tu operación, va adelante y realiza la operación de impreso en la pantalla. OK, entonces así es como funciona. Entonces una cosa que sabemos es Ah que cuando los usuarios escriben su primer número. De acuerdo, tenemos que mostrar en la pantalla. De acuerdo, Entonces si tipo de cuatro o cinco y un seis, siempre
es un show en la pantalla. Ahora bien, si iba a hacer un cuatro más, si fuera como, nota algo este cuatro más cinco más seis, no me va a dar 4 56 ¿verdad? No, me
va a dar ¿qué es eso? 9 10 11 12 13 14 15 Amy, 15 anoche. Queremos Entonces, ¿qué tipo de datos crees que deberíamos almacenar esto? Ah, número
corriendo en como los usuarios escribiendo. Si dijiste cadena de lo que estabas en lo correcto. Entonces sigamos adelante y hagamos eso, acuerdo? Var Voy a llamarlo número corriendo. Significa que se está ejecutando, es tu estaba escribiendo en él y va por defecto. Va a ser una cuerda vacía. Y solo tienes que saber que cuando tu APP se ejecute por primera vez, este código se llamará aquí mismo. Y lo que sea que inicializaras estas cosas va a pasar. Por lo que en tiempo de ejecución cuando esto comience, esto va a ser una cadena vacía. OK, entonces sabemos que vamos a necesitar un número corrido. Ahora pensemos en esto un poco más, acuerdo? Estamos tratando de pensar en qué tipo de datos necesitamos la tienda. Entonces si tengo un número corriendo, esos son los números que se están imprimiendo en la pantalla. OK, en algún momento, necesitamos hacer algo con esos números y el punto que necesitamos hacer eso es cuando el usuario presiona es, um, un operador. De acuerdo, Cuando presionan a un operador, significa que hey, estamos listos para empezar a escribir el siguiente número de carrera. Entonces probablemente necesitemos almacenar el primer número corriendo en algún lugar, porque si el primer número corrido fue cinco y seis y entonces alguien lo hace soy botón menos y luego empieza a escribir ese número corriendo necesita cambiar a lo nuevo a los nuevos textos. OK, entonces lo que vamos a hacer es tener un par de cuerdas más. De acuerdo, así que voy a decir barra izquierda Val, cadena igual y cadena vacía y muy derecha La cadena Val es igual a cadenas vacías. Nos vamos a un lado izquierdo y el lado derecho K como, ya
sabes, cinco veces 32 operadores diferentes. De acuerdo, Entonces eso suena bien. Um, no. Cuando un usuario presiona, digamos que presiono de cinco y presioné la división, pero y presiono seis. Bueno, en ese momento, nada ha pasado todavía, ¿
verdad? No ha realizado los cálculos. Simplemente sigue esperando en las seis. Y no hasta que presionemos un signo igual o hasta que se presione otro operador. ¿ En realidad hacemos el cálculo en la pantalla? Entonces lo que digo es que probablemente necesitamos un lugar para almacenar el operador que fue seleccionado bien , porque cuando esa persona entra de nuevo a ese segundo número, esas operaciones, no ese cálculo, es no pasando justo en ese momento y allá, OK, y si te estás confundiendo, juega con la app de iPhone bien con la app de calculadora y ve cómo funciona. ¿ Cuándo se imprimen las cosas en la pantalla como simplemente realmente cavar en ella como usuario? Desde una perspectiva del mundo real, ni siquiera
es revestimiento. Basta con mirarlo y mirar el orden de los eventos de cómo suceden las cosas, y luego podrías empezar a descomponerlo y construir algo aquí. Por lo que necesitamos almacenar la operación actual. Está bien, pero cuál es una buena manera de almacenarlo. Entonces esos operadores, ya
sabes cómo acabamos de hacerlo y siguen siendo etiquetas de reinicio de storyboard. De acuerdo, hacemos clic en el botón y dijimos una etiqueta en él. Al igual, um 12345 Lo que sea. Y ah, ese es Alfa. Aquí tienes una etiqueta. Bueno, las etiquetas son solo números, ¿verdad? Para que yo pudiera ir y decir, como, 10 11 12 13 14 en estos botones. Y podría decir, Hey, si esta etiqueta es 14 es divide, pero eso parece un poco tonto. Y además, solo
puedes poner números aquí, Así que no vamos a usar etiquetas esta vez para rastrear cómo funcionan estos botones. Esta vez crearemos algunas funciones diferentes. Acciones de Ivy para cada uno de esos botones del operador. OK, entonces hemos pensado algo en que sabes qué? De qué tenemos que hacer con nuestros datos aquí y luego sabemos que necesitamos rastrear de alguna manera cuándo estos oprimidos y almacenarlos. De acuerdo, entonces primero los rastreemos y luego hablaremos de almacenarlos. Estás conmigo hasta ahora. Te tomas un descanso. Ve a por un trago. Lo que sea que necesites dio quedarse conmigo aquí. Es, uh, estaban pasando por las aguas fangosas. Es un poco duro, pero saldremos en la cima. Entonces vamos a seguir adelante y hacer clic en esto. Y si recuerdas, bien, control, arrastra por aquí y voy a cambiar de una salida a la inacción y vamos a llamar a esto. Dividir prensado. Ahora, tal vez
estés pensando, Por qué no sólo acortarlo y llamarlo Dividir pensará en esto real con cuidado. ¿ Y si nuestra función misma la acción I b? ¿ Y si en realidad no está realizando división? De acuerdo, tal vez lo pasemos en otro lugar. Um, ya
sabes, o ¿por qué lo sabrías? A lo mejor no queremos llamarlo. Yo ser acción en nuestro propio código si necesitamos dividir algo. Por lo que me gusta mantener mis eventos y mi i b acción como realmente los eventos vencieron. decir, Oye, cuando esto esté presionado, entonces haz lo que quieras, ¿de acuerdo? Entonces por eso estoy llamando a Dividir Press porque aún no sé en qué va a entrar, y puede que ni siquiera se divida. Puedo pasarlo a otro lugar y en realidad lo estaré haciendo. Entonces en dividirse prensa es una acción de hiedra, y me voy a conectar, y me gusta seguir en mis acciones i V juntas para hacer una mirada agradable control, Draco por aquí y enseñarte la acción. Vamos a llamar a esto, multiplicar presionado, ¿de acuerdo? Y eso me queda bien. Y, ah, vamos a restar. De acuerdo, cambiado a inacción. Y vamos a llamar a esto en sub tracto prensado. Y por cierto, si no sabías esto ya, y si no te he martillado suficiente en tu cerebro, así es como codifico en la vida real. Soy muy metódico. Yo deletreo las cosas muy detalladas. Está bien. O sea, estoy siendo extra generoso en los detalles. Supongo que para que ayudes, te ayudes a aprender. Pero realmente codifico así porque si un programador puede mirar tu código y saber exactamente qué está pasando, tienes algún código realmente bueno. De acuerdo, en add press versus si tienes un montón de código que no puedes entender a menos que haya comentarios en todas partes. Ya sabes, si tengo que decir mi código, esta función hace esto y que probablemente sea la señal de que tienes algún código malo, y no es muy legible. Entonces, um, código
puro, en mi opinión y las opiniones de muchos otros es código que tiene la menor cantidad de comentario posible Y ese auto describiendo, Vale, auto describiendo por su nombre y futuros y lo que hace duran pero no menos importante en igual prensado. Y déjame cambiar esto por inacción. ¿ De acuerdo? Se ve muy bien luciendo realmente bien. Entonces ahora tenemos las acciones. De acuerdo, voy a seguir adelante y volver aquí. Apague el asistente de editor. Voy a hacer clic en mi controlador de vista para tener más espacio de código vino también, te darás cuenta de que el constructor de interfaces a veces ralentizará las cosas. Entonces es bueno no estar en ella si no tienes que estar. Está bien. Está bien. Entonces hablemos de estas acciones aquí. Entonces piénsalo otra vez. Juega con la calculadora de iPhone. Entonces adelante. Dividir prensado. De acuerdo, entonces cuando lo presiono, botón
dividir, podría pasar
una de dos cosas. ¿ Todo bien? Uno es que nada podría pasar. Entonces en esa calculadora, presionas divide, y no pasa nada. ¿ De acuerdo? Al menos visualmente al usuario. Y luego no pasó nada. Entonces empiezas a escribir el siguiente número, y luego está almacenado. De acuerdo, Ese es un escenario. El otro escenario es que alguien ya ha presionado a un primer operador como la primera vez, y esto ahora se está presionando una segunda vez. Entonces ahora necesitamos realmente hacer el cálculo y mostrar el signo igual. OK, entonces es muy obvio para mí que necesitamos almacenar al operador porque cuando los segundos operadores presionan, necesita saber sobre el 1er 1 para que pueda realizar el cálculo. De acuerdo, Y de nuevo, si estás confundido, AC en realidad me llevó unos minutos. Yo estaba sentado ahí fuera es, como, ¿cómo funciona este día y calcular el trabajo? En realidad nunca había roto una calculadora para ver cómo funcionaba. Y, uh, así que sí toma algo, solo juega con la app y te dices que averiguas lo que han hecho. Entonces voy a llamar a esta operación actual que significa la operación actual que se está
realizando . Está bien. Y es como,
Bueno, Bueno, ¿qué? ¿ Cuál debería ser esto? ¿ Debería ser esto una cuerda? ¿ Los guardo en un montón de nombres? Bueno, tengo una manera realmente buena de hacer esto. Sigamos adelante y creemos algo llamado y comamos. Um, está bien. E n u n corto de enumeración. Y vamos a Teoh decir en ellos y yo llamaría a esta operación y pensarlo así . A pesar de que estás poniendo una cuerda aquí al final, estás como definiendo tu propio tipo. ¿ De acuerdo? Es algo que puedes reutilizar que tiene múltiples opciones. Entonces es como hacer tu propio tipo como un inter string. OK, pero obviamente es una cadena, pero es un par, um, de tipo string. Entonces esa es la palabra clave en, um, pones el nombre de la misma delante de ella. Y típicamente en este caso, pones una letra mayúscula en el frente, está bien. Y luego le das su tipo. Y cuando lo haces, ¿dijiste caso? Está bien. Y luego le das un nombre. Voy a decir divide y quiero decir que es igual a esto ahora qué? En realidad, lo que
el valor está dentro de él ni siquiera importa realmente, OK, no
importa en absoluto. Yo sólo estoy explícitamente definido nosotros. Pude haber dicho bla y no importaría. Ah, sólo
necesitan ser únicos. Una de la otra. De acuerdo, alguien divide igual a que yo también podría decir dividir. Ya sabes, um, fue una división igual a ese caso. Quiero decir multiplicar igual ha puesto una estrella Ok. En el caso de truco culo restar igual. Se trata de un anuncio de caso pista igual al signo más. De acuerdo, Case es
igual, igual, igual. Ahí vamos. Un poco confuso, pero eso nos funciona. Está bien, eso se ve bien. Y vamos a sumar un estado más aquí. Orden llamado Vacío. De acuerdo, pensemos en esto. Entonces cuando estás cargando la calculadora por primera vez en algún momento del tiempo, supongo que al principio va a estar vacía. ¿ Mi significado? no se ha ingresado ningún operador. ¿ De acuerdo? Y así sólo queremos dar cuenta de eso ya que estamos haciendo nuestra lógica. Odio como algo ha pasado todavía? ¿ Es esta la primera vez que estamos corriendo por eso? De acuerdo, entonces ahora lo que puedo hacer Esto es lo realmente genial de la enumeración, cuevas, diferentes casos, diferentes opciones. De acuerdo, realidad
puedo convertirlo en un tipo, recuerda apretado cuando digo tipo, eso significa en cadena o en, um, en este caso, y así voy a guardar nuestra operación actual. Al igual que teníamos antes es de tipo operación. Ves, podrías convertirlo en un tipo, y vamos a inicializarlo con un valor predeterminado especie de Digamos que es igual a la operación punto vacío. Está bien. Y les diré que acceden elementos en ella. De acuerdo, operación punto vacío. Y así lo encuentra. Es un valor muy único. Y así vamos a decir, Hey, primero
cargamos la app. Está vacío porque recuerda estas cosas cuando primero cargan su inicializado a
lo que pongas aquí. De acuerdo, así que hemos hecho muchas cosas aquí. Tenemos un número corriendo para imprimir cosas mientras las estamos escribiendo, obtener una cadena de valor de la izquierda una cadena de valor derecha y luego la operación actual, pero que es, ya
sabes, cuando se presiona el botón. Está bien. Y así vamos a seguir adelante y manejar cómo funciona éste Primero, el número de carrera. Entonces cuando los usuarios escriben, Vale, la secuencia debería aparecer en la etiqueta de salida, ¿
verdad? Creo que debería. Y Ah, por cierto, ¿alguna vez conectamos esta etiqueta de salida? Tengo curiosidad. Abramos el asistente de editor y ah, voy a cambiar esto de manual a aquí a calculadora retro, dos storyboard principal. Y oye, ¿te
ves qué? Está de este lado esta vez. Esto es una locura. Puedes hacer cosas locas así. Iba a hacer clic derecho en él, y no parece que esté conectado a nada. Así que adelante y haga clic en su controlador de vista justo aquí arriba en la parte superior. Control arrastrado hasta tu etiqueta. Y ahí está la etiqueta de salida y ahora está conectada. Y cerraré el asistente de editor, y ahora está conectado. Se podía ver el pequeño punto justo ahí hay. Sabemos que está conectado. De acuerdo,
entonces, ¿cuándo deberíamos? De acuerdo, ¿ cuándo deberíamos, um, actualizar la etiqueta? Pensemos en cada vez que un usuario presiona un número un número solo deberíamos actualizarlo. De acuerdo, así que ya tengamos una función para. Eso es fantástico. De acuerdo, así que sigamos adelante y hagamos eso. Digamos, número de
ejecución más es igual, recuerda que taquigrafía para número de ejecución es igual a número de ejecución. Además, así que estamos fecha básicamente tomando el valor existente que hay en ella y agregando a ella más igual . Pongamos una
34. Ejercicio: mejora nuestra calculadora: Oye, Mark Price en dev pistas dot com Y solo vamos a repasar rápidamente el ejercicio para la calculadora retro. Lo que vas a hacer es ir a la pantalla de lanzamiento. ¿ De acuerdo? Este lanzamiento significó aquí años, parpadeamos. De acuerdo, esta es la pantalla que carga cuando estás al principio cargas. ¿ De acuerdo? Y lo que vas a dio es que vas a construir esta escena con estos activos de Marte. El planeta Marte. Está bien. Y hay un robot genial y un logotipo, y te voy a proporcionar estos gráficos. Estarán en El recurso es de este video y tú vas a construir esto. Puede usar vistas de pila, o puede usar restricciones de diseño automático. Está bien. Debería funcionar en todos estos diferentes tamaños de pantalla. App Maker, extra cool. Y esa es la parte fácil. La siguiente parte es que también tengo un gráfico para ti llamado Clear. Es un botón claro. Te das cuenta de cómo en nuestra calculadora no creamos una función clara? De lo que vas a dio es tener un botón que lo despeje y restablezca todo para que puedas empezar de nuevo. Será un poco más que sólo poner un botón ahí. Vas a tener que limpiar algunas cosas y resolver algunas cosas. El caso es que, sin embargo, no
estoy proporcionando el código fuente de este proyecto, así que vas a tener que resolver esto por tu cuenta. Y, ah, mira a Internet. Busca Google, busca ayuda en nuestros foros o en la sala de chat, y te ayudará a estirar. Y, ah, es un muy bueno un muy buen paso para entrenar tu cerebro para resolver las cosas. Entonces ese es el proyecto. Ese es el ejercicio. Entonces si no has construido una aplicación de calculadora, adelante y construirla. Podrás utilizar los gráficos, haber proporcionado u obtener tus propios gráficos. Y entonces este es el ejercicio. Pon en marcha la pantalla de lanzamiento y consigue que se implemente el botón claro de sangre con el código que realmente borra la calculadora y la restablece a cero. Entonces ahí está. Edificio feliz, ver más tarde
35. Diccionario Swift de Swift 2: Bienvenidos de nuevo, todos. Mark Pricey con dev pendientes dot com. Y hoy vamos a hablar de diccionarios veloces, que son otro tipo de recolección de datos, como a una matriz. Entonces voy a seguir adelante y abrir un nuevo patio de recreo. ¿ De acuerdo? Abrúdala aquí. Y ah, eso va a ser archivo nuevo patio de juegos. ¿ De acuerdo? Y vamos a seguir adelante y llamar a esto, uh, algunas cosas del diccionario. ¿ Por qué no? Puedes llamar a lo que quieras. Un pensamiento aquí en el escritorio, y Ah, correcto. Entonces ahí está. Vamos a seguir adelante y hacer esto más grande para que puedas verlo. Mary G
o.Se ve muy bien para todos ustedes en iPhone. Ahora lo puedes ver sin entrecerrar los ojos. OK, entonces ¿cuál es el diccionario? ¿ Qué? Hemos hablado de una matriz, y si recuerdas bien, una matriz se ve así. Mi matriz. Es solo que el nombre de la variable es igual a, um, uno. Estos aire, una matriz de cuerdas que tienen los números de palabra numérica. 123 Derecha. Esa es una serie de fortalezas. Por lo que hemos usado esos. Esa es una gran manera de recolectar tus datos. Pero y si queremos en cambio reunir nuestros datos por clave y valor. Y así pienso en un diccionario en la vida real. Piensa en el diccionario de Webster o cualquier diccionario con el que estés familiarizado. Como si estuviera buscando una palabra, podría estar buscando la palabra auto y tendría una definición, ¿
verdad? Por lo que un diccionario es en realidad bastante similar. De hecho, sigamos adelante y solo creemos un diccionario. Sólo lo estoy llamando Webster solo por diversión. Y esta es la sintaxis. De acuerdo, Lo que estamos diciendo es, queremos crear un nombre variable Webster de tipo string. Ahora, las diferencias antes con una matriz, se veía así. De acuerdo, bueno, un diccionario tiene el colon justo aquí, y luego tiene el tipo de valor. Entonces este es el tipo de clave. Este es el tipo de valor. Entonces esto también podría haber sido un int que o un? Bueno, si probablemente quieres mantenerlo a una cuerda intensa y no te metas con nada fuera de eso por ahora. Entonces tienes un ent y una cuerda, pero queremos seguir adelante y solo decir una cadena de cuerda. Queremos que las claves y los valores sean string. Y simulemos ese diccionario de la vida real del que te hablé. Entonces sigamos adelante. Y sobre todo una buena palabra, Kriel. ¿ Conoces esas cosas en el océano? Um, y busqué esto, Así que si crees que conozco la definición para esto de arriba de mi cabeza,
bueno, bueno, sé Si sí sabes lo que es un creel y la definición de fuera de la parte superior de tu cabeza ataca a usted. Está bien. Cualquiera de las pequeñas estaciones de corteza. Toda chica se ve bien. Entonces ese es krill. Hagamos otra llave. Um, fuego, esa es una buena definición y nombre clave. Y ah, una masa ardiente de materiales. Una de las definiciones para eso. Así que echa un vistazo a la sintaxis aquí. Entonces lo que hemos hecho es que hemos definido el nombre clave como una cadena ahora que no debe confundirse con una matriz. Esta vez no pusimos un común aquí. Si pusiéramos comentarios entre aquí, esto sería una carrera en impuestos. Pero en un diccionario pones el nombre de la clave y luego un colon después de ella. Y luego pones el valor de esa clave. De acuerdo, entonces y luego hay una coma. Después viene el cometa, por lo que el común separa las claves y los valores. Entonces, de nuevo, el valor
clave, la clave y el valor K tiene sentido. Por lo que también podríamos hacer algo diferente a nuestro otro, ya
sabes, diccionario. Y este podría ser un fin de con un valor de tipo string. Y entonces podríamos decir 54 44 podríamos decir mi número de favor, y luego podríamos decir 31. Hombre, odio este número 32 s así que puedes tener que ver el patrón ahí. Aquí tienes INT y cuerdas para tus claves y valores, ¿de acuerdo? Y la razón por la que estás viendo un aire es porque hice algo tonto. Yo lo pongo igual en lugar de un colon. Y ahí lo tienes. El aire se ha ido, y tenemos otro diccionario. Esto se está poniendo bastante emocionante. Entonces, ¿cómo se exceda de elementos de un diccionario? Esa es una buena pregunta. Entonces sigamos adelante y le demos una tienda. Voy a imprimir y vamos a decir Webster, Y recuerda cómo Honore podrías poner las llaves cuadradas y poner como un cero o algo
ahí dentro donde puedas realmente lo mismo en un diccionario excepto lo que tu exceso de ing es el clave. De acuerdo, La llave. Y así queremos exceso de krill. ¿ Y qué crees que nos va a devolver? Bueno, si movemos esto por aquí, allá vamos. Consigue un poco más de espacio aquí. Y dice cualquiera de los pequeños crustáceos, así que en realidad está agarrando el valor de la misma. Ahora bien, puede notar que está imprimiendo la palabra opcional. De acuerdo, bueno, un diccionario en Swift puede o no devolver un valor. Está bien. Puede o no devolver un valor. Entonces, um, esto nos va a dar algo si hay algo que dar. Está bien. Entonces una mejor forma de escribirlo es así. Decimos si dejamos y aún no nos hemos metido en las opciones, pero podríamos decir si dejamos a Webster Ok, lo
llamaremos,
uh, uh, real llámalo. Ah, Bueno, llámalo Kriel. Si deja que Kriel sea igual a Webster y dirán krill, está bien. Y entonces lo que haremos es que seguiremos adelante y solo imprimir, um, krill. Está bien. Y así otra vez, no
hemos repasado opcionales en detalles que me has escuchado probablemente decir esa frase
algunas veces . Todavía no hemos repasado esto, y probablemente estoy sonando como un disco roto, pero voy a explicar brevemente. Lo que estamos diciendo es, oye, agarra la llave krill o pon la llave krill aquí y agarra el valor de la misma y ponla aquí si existe. De acuerdo, Si existe, lo pondrá aquí en este código se llamará si esa clave no existe, esto no se llamará. Entonces digamos, en vez de krill,
pongo, uh, cara de
plátano, cara de
plátano, ¿de acuerdo? Y nota cómo no lo imprime, No lo pude encontrar. Por lo que este código nunca se ha ejecutado. Entonces en el futuro, vamos a estar usando estos. Si vamos mucho. Esta es una de las características más poderosas de swift que los otros idiomas no tienen. Lo que hace es que ayuda a prevenir bloqueos en tu programa, porque tú absolutamente no, tienes un valor aquí. Y si no lo
haces, puedes escribir código Teoh manejarlo. Entonces voy a deshacer eso. Sabemos que está funcionando, y por cierto, lo que pasa es que agarra el valor de este diccionario y lo pone en esta variable aquí mismo para que podamos usarlo. Por lo que esta variable es igual a cualquiera de los crustáceos pequeños. De acuerdo, así que eso es lo básico de los diccionarios. De verdad, verdad. Ya lo tienes todo hasta ahora. Es No está tan mal, demasiado gran colección. Cuando tienes una gran manera de almacenar datos, si quieres buscar las cosas por clave y valor y, uh, si quieres aclararlo, solo di Webster igual a eso Eso es simplemente no ser diferente si te gusta una matriz y lo hiciste que para despejarlo. Pero así es como despejas diccionario, OK, y, uh, ahí vamos luciendo genial. Tan cool. Así es como se aclara. No es mucho para ello. A ustedes les gusta lo que está pasando? Vamos a conseguir algo jugoso bien, Esta es una especie de diccionarios. No hay mucho para ello. Hay algunas cosas más, sin embargo. Algunas cosas más. Si Webster dot está vacío, puedes comprobar si un diccionarios está vacío. Vamos a imprimir. Nuestro diccionario es bastante el vacío que está mal inglés. Para aquellos de ustedes que no hablan inglés adecuado o tal vez fuera de Estados Unidos, eso es un mal inglés. No,
uh, uh, no vuelvas a hacerlo. No me cites como profesor de inglés ni a nadie como ejemplo. De acuerdo, así que eso es todo está vacío. No es gran cosa. bonitas, Cosasbonitas,
bastante simples, Ok. Y, ah, sigamos adelante y hagamos algo más que pueda parecerte más relevante para ti. Digamos que tienes un juego y necesitas una tienda puntuaciones altas adjuntas a un jugador para que pueda
decir string. Y así diccionario con claves de tipo string en un valor de tipo sugerencia y podríamos seguir adelante. Y, um, solo agrega algunas cosas aquí, así que diré,
Ah, Ah, Span Tak es la clave. Y consiguió un puntaje de 401. Qué gran puntuación. Está bien. Y luego, uh, ya
sabes, juega Ah, 21 porque no podía encontrar un nombre genial sin un número. Al final de ella igual a 200 no es tan grande de un jugador. Y entonces sigamos adelante y digamos,
um, um, la muerte por Bob Esponja. Eso es lo sabes así como los gamers están estos días poniendo todo tipo de cosas locas aquí. Y lamentablemente sí me golpeó. Yo estoy gastado acto por cierto. Si alguna vez ves algún juego cool con esa palabra, definitivamente soy yo. Y eso. Puntuación alta es un diccionario de Claves y valores con el nombre de los jugadores y luego el, uh, el valor de la misma. Y de nuevo, si quisieras conseguir, um, cualquiera de esas anotaciones, ya
sabes, podrías simplemente decir, Ah, ya
sabes, imprimir. Ah, imprimir, puntaje
alto. Y entonces podríamos, ya
sabes, decir imprimir,
gastar impuestos, puntuación
alta, puntuación
alta acuerdo? Y lo imprimiría. Se va a iniciar el opcional Vamos a estar bien por ahora mismo. Entonces, um, Sukhum impreso, claro. Y, uh, ya
sabes, ¿qué más queremos hacer? Por último, Um, sigamos adelante. Y es Una tasa a través de la cobranza. ¿ Sabes cómo usamos cuatro bucles para una matriz? Hicimos algunas versiones diferentes de cuatro labios. Bueno, hay un par de formas diferentes de iterar a través de un diccionario. En la mayoría de los casos, no
voy a ver en todos los casos. Pero en la mayoría de los casos, si continuamente estás iterando a través de un diccionario como un bucle de cuatro, si eso es lo que estás haciendo, probablemente no estés montando el mejor código. Probablemente haya mejores formas de Tal vez sus datos deberían estar en una matriz. A lo mejor deberías tener una matriz que tenga una clase con objetos específicos y luego
generas a través de ella. Si estás iterando mucho a través de una matriz, es muy posible que no seas tú. Disculpe. Si estás iterando mucho a través de un diccionario, es muy posible que no lo estés usando de la forma en que se pretendía. Entonces te voy a mostrar cómo generar a través de ella, sin embargo. Entonces lo que ves aquí es cómo operas a través de un diccionario y, ah, pensémoslo por un segundo para cada usuario y anotar. Entonces lo que está pasando es que estamos diciendo, Oye, pasa por este diccionario. Esta es la llave, acuerdo? Y este es el marcador, así que va a pasar, y te va a dar la clave y el valor para que utilices. Entonces si sigo adelante y digo imprimir y vamos a seguir adelante y usar nuestra sintaxis ah especial aquí para imprimir cadenas, sigamos adelante y digamos, User Colon. Y entonces digamos anotar. Está bien. Se imprimió tres veces como se esperaba, porque hay tres llaves y hielo y sigamos adelante y veamos los datos aquí. Simplemente hago clic en este pequeño botón en el momento adecuado. A click este icono de lista y lo suficientemente seguro, juega un 21 205 104 01 Así que eso es Eso es bastante cool. Eso es bastante guay. Ahora probablemente te estés preguntando, Bueno, ¿cómo agrego un nuevo elemento a un diccionario? Bueno, eso es tan sencillo como hacer esto. Añadamos una nueva ah, cosa
nueva a la puntuación más alta. Entonces todo lo que tengo que hacer es literalmente una puntuación alta, y podríamos simplemente poner lo que queramos escuchar. Entonces digamos, um j k matar un frijol. Está bien. Él consiguió un puntaje de a y, uh oops, eso no es yo quiero colgar tu like, ¿Qué está haciendo? Ya nos está dando en el Syntex adecuado cada go. Por lo que JK killer beans es igual a dos. Y ahora si yo solo copiara y pegara esto aquí mismo, ¿de acuerdo? Y yo también estaba entonces esto son cuatro veces. Obviamente parece que está funcionando, y seguro, está justo ahí. Entonces, para agregar un artículo, no
haces upend ni nada por el estilo. Hay algunas funciones de ayuda que puedes hacer, pero esto es lo suficientemente bueno aquí mismo. Simplemente sigue adelante y pon un nombre clave que quieras ahí dentro y luego establece el valor no tan mal . Entonces esto es realmente diccionarios. Es muy poderoso. Los uso frecuentemente en mi desarrollo profesional y, uh, prácticamente esto es todo lo que le toca. Por lo que las vas a utilizar a lo largo de este curso y aprenderás a usarlas. Un poco aburrido. Ese es el truco. No es la sintaxis de ninguna de estas cosas. Es saber cuándo usarlos. Y así lo haces por muchos ejercicios de práctica, ejercicios práctica, práctica y te estará dando un montón de esos. Ya has hecho muchos de esos. Entonces eso es todo. Eso es una envoltura. Vamos a cerrar esto y pasar al siguiente tema. Gracias por escuchar.
36. Programación y clases orientadas con objetos orientados y las clases: Bienvenidos de nuevo, todos. Mark Price aqui con dev pistas dot com Y antes de empezar, Alguien me dijo recientemente que tal vez mis niveles de emoción un poco demasiado alto para estos videos y un poco poco poco profesional, Así que voy a enseñar, como todos los otros lo hacen. Por lo que ahora vamos a abrir código X e ir a archivar nuevo patio de recreo. Y como puedes ver, la ventana surgió aquí y ah, esta es la gran ventana de proyecto nueva. ¿ Ustedes lo sienten? No lo estoy sintiendo. Ya sabes, todos son críticos, pero creo que voy a volver a mi voz muy feliz, emocionada, y vamos a hablar de algo súper importante, que son los objetos y las clases. Entonces sí creé un nuevo patio de recreo aquí yendo a archivar nuevo patio de recreo, y vamos a llamar a esto divertido con clases. De acuerdo, programación orientada a
objetos. Tú A lo mejor has oído hablar de ello. OK, tal vez seas un veterano, y estás como, no
puedo esperar a pasar por este video, pero tengo que aprender a hacerlo y veloz Bueno, intentemos que sea un emocionante e importante. A ver si puedo explicar de una manera que sea razonable. Por lo que recuerda de nuevo algunos videos. Estamos probando algunas variables y trabajando con, como, una cuenta bancaria. Por ejemplo, teníamos, como, saldo
var es igual a $100. Y entonces, ya
sabes, teníamos una función llamada, ya
sabes, uh, funk, ya
sabes, intento, intento, compra. Y, ah, entonces tenemos un precio de artículo, ¿de acuerdo? Y eso es de tipo fin. Y entonces decimos, Ya
sabes, si el precio del artículo es menor o igual para equilibrar a través de ese tipo de ahí, sigamos adelante y hagamos una compra. ¿ Verdad? Y entonces hicimos algunas otras funciones y cosas, y estas cosas no estaban realmente en el contexto de nada. ¿ De acuerdo? Ellos no lo eran. Ah, el doble aquí. No estaban en el contexto de Hey, esto es un banco, o esta es tu cuenta. Era sólo algunas funciones aleatorias y saldos aleatorios, y podría ponerse realmente desordenado muy rápido. ¿ Sabes qué? Si tuviéramos un montón de funciones aquí y variables que todos estamos relacionados con cuentas bancarias, ¿cómo costillas reutilizarían esto? ¿ Cómo podemos? Mejor módulo, ojos, módulo surgen estos rubros para ser, uh, independiente de cosas que no tienen nada que ver con cuentas bancarias. De acuerdo, o aquí hay un ejemplo. Imagina que tienes auto. A view ical. En realidad, tienes un vehículo y todos los vehículos tienen lo que todos los vehículos pueden Dr. Ya
sabes. Entonces tengo de nuestro vehículo. De acuerdo, el nombre del
vehículo tiene nombre, ¿verdad? Uh ah. Srx OK, eso todos los vehículos pueden conducir. ¿ Eso es lo que más pueden hacer? Cuentan con cuentakilómetros, cuentakilómetros,
cuentakilómetros . Está bien. Y eso es igual, ya
sabes, lo que sea igual. De acuerdo, entonces tenemos algunas cosas aquí y ah, que son específicas de un vehículo. Ahora que pasa si Bueno, es un lejano Ah, ya
sabes, um llantas, ya
sabes, igual a, ya
sabes, por cuatro llantas, ya
sabes, Pero, ¿qué pasa si tienes un camión que tiene, como, como un debidamente, ya
sabes, ruedas
dobles? Ah, ¿
O qué pasa si las cosas empiezan a cambiar en vehículos específicos? Ya sabes, como hago como manejo todo esto y lo hago de una manera que sea razonable. Y luego se convierte en programación orientada a objetos del dedo del pie. Entonces en lo que quiero que pienses son los objetos. Los objetos son la idea de tomar piezas lógicas de propiedades y funciones de código y
ponerlas juntas en una clase. Se llaman clases y Así, um, piensa en pensar en una y una clase Algo así como un plano. De acuerdo, digamos que tienes una fábrica y construye autos, así que tienes un plano para un auto, ¿de acuerdo? Y entonces lo que haces es crear un objeto a partir de él. Pero ese objeto podría ser ligeramente diferente en estos diferentes autos. Ya sabes, uno podría ser un camión cuando podría ser un auto, pero todos tienen algunas propiedades y valores basados, y pueden hacer cosas como dr y esas cosas. Y entonces lo que vamos a aprender es cómo tomar piezas lógicas de propiedades y
funciones de código y ponerlas en algo que utilizable, conocido como clases. De acuerdo, así que sigamos adelante y construyamos nuestra primera clase, y no son tan complejos. Si eres una persona visual, esto va a tener mucho sentido. De acuerdo, así que digamos que tenemos una clase llamada vehículo. Es así como declaraste clase y clase rápida. Y luego el nombre de la misma siempre quieres Oh, empiece con una letra mayúscula. Esa es la convención. Y luego pones los tirantes rizados. De acuerdo, entonces ahora tenemos podemos poner artículos podríamos poner propiedades y funciones dentro del contexto de una vista ical para que pudiera guardar nuestro motor equivale a cuatro cilindros. Está bien. Ah, podría salvar nuestro color igual a plata y cuentakilómetros de barra Odom Peter igual a cero también. Y estos valores por defecto de aire OK, que sólo queremos establecer a cualquier vehículo. Y entonces lo que debilita dio es que podemos crear una función Isar inicial. Está bien. También conocido como constructor aquí. Estamos pasando variables para inicializar esto y,
uh, uh, puede que aún no entiendas lo que estamos haciendo, pero te estaré mostrando al explicarlo. Y podría decir auto punto motor es igual a motor. Al igual, ¿qué está haciendo aquí? No entiendo. Está bien. Te lo voy a explicar en un segundo aquí. Entonces tenemos inicializar er, y tal vez tenemos otro er inicializado que no hace nada con esos valores ahí . Está bien. Y ah, y luego digamos, um, cuando un auto entra, estos suman millas, así que solo haremos algo un poco tonto, pero enrevesado. Pero está bien. Entrar millas pasarán en algunas millas, y luego lo que haremos es diremos cuentagotas más equivale a millas OK, así que ahora lo que tenemos aquí es una clase. ¿ De acuerdo? Esta es una clase rápida, y lo que hemos hecho es que hemos extraído datos y los hemos puesto en algo que podría convertirse en un objeto. De acuerdo, para que pueda escribir código aquí abajo bar, ¿sabes? Oye, ¿sabes qué pasa? Y ah, no
puedo decir que iguale motor. Ya sabes cómo antes sólo podíamos acceder a las variables que estuvieran por encima de ella. Bueno, ya no
puedo hacer eso, porque esas propiedades y funciones están dentro del alcance de una clase, ¿de acuerdo? Y así vamos a salir de la noción una idea en la práctica de simplemente lanzar código donde queramos. Todo lo que vamos a hacer en su mayor parte ahora se va a hacer con clases. Y no sé si lo sabes o no, Pero las cosas que ya has estado usando en estos proyectos y ejemplos han sido clases y objetos. Cuando fuimos a nuestra aplicación y fuimos a ver el controlador de vista, eso era una clase. Era un objeto. ¿ No nos caería cuando arrastramos y soltamos una imagen de U. S tú en el constructor de interfaces o un botón esos aire, todas las clases y objetos también. Y todos tienen sus propiedades y funciones. ¿ Recuerdas cómo hicimos algo así como mi texto texto texto de punto de campo? Texto de punto bien era una propiedad del campo de texto no a diferencia de esta propiedad aquí. De acuerdo, entonces, uh, todo lo que haces en IOS son objetos y clases. Es fantástico. Y en realidad no consigues esto en desarrollo web en algunas plataformas, como el script Java, Uh, es ah notorio por, ya
sabes, no tener un gran sistema de clase. Esta es una característica de programación muy potente, orientada a
objetos, Um, y fundacional. Entonces, ¿cómo trabajamos con clases? Bueno, es bastante simple. Lo que haces es que tenemos el plano, Así que finge que este es el plano. Está bien, Blueprint. Y ahora lo que vamos a hacer es ir a la fábrica y hacer una nueva. Entonces voy a decir de nuestro digamos, esto es un SRX K, y vamos a decir que es igual a vehículo. Y los paréntesis de apertura van a llamar a una de estas funciones iniciales de Isar. Te das cuenta de cómo hay dos. Hay una que no tiene propiedades, y otra que sí si llamo a la que no tiene propiedades, vale, solo va a dejar estos valores por defecto aquí por robar su plata, ya
sabes, todo arranque de auto. Fue un cilindro de cuatro y plata. Ya sabes, nada. Nada súper genial. Um, pero vayamos a este SRX. Adelante y pongamos seis cilindros. Entonces lo que pasa es cuando tú y el color van a ser,
Ah, azul
real, azul
real, tu C Esos SRX están en todas partes Azul real con llantas doradas como si fuera como si los chicos
averiguaran una nueva forma de darle estilo a tu auto. No tienes que parecerte a cualquier otro SRX en la carretera. Y si eres de esas personas que tiene un azul son sexo con llantas de oro, quiero decir, sin ofender. Vale, entonces, um vale, tenemos un auto aquí y ah, le
hemos dado un color. Eso es bastante guay. Digamos que var Volvo ahora es igual a vehículo. Y esta vez solo haremos el default, acuerdo? Y así sigamos adelante e imprimamos ambos y veamos qué pasa. Entonces si imprimo srx dot color, así es como se accede a las propiedades de una clase por los puntos y los impuestos. Recuerda campo de texto ese texto, y eso es imprimir el color de punto Volvo Volvo bien. Y como se pudo ver en el lado derecho Azul real para el SRX y plata para el Volvo . Bastante cool. Entonces lo que hicimos fue en el SRX. Creamos un nuevo objeto. Así es como se crea un nuevo objeto es llamando al nombre de la clase justo aquí exactamente idéntico a la forma en que se deletreó aquí. Y entonces llamamos a esta función inicial de Isar. Este constructor está bien. Ah, Y pasamos en un nuevo estilo de motor, un nuevo tamaño de motor, y pasamos en un color. Y entonces lo que hicimos fue asignarlos aquí mismo. Entonces en la inicialización, esta función Isar inicial actualiza estos valores con los nuevos valores,
OK, OK, y la razón por la que utilicé la palabra clave auto aquí es porque self se refiere a las propiedades de la clase. De acuerdo, si me quito el motor de palabras, está bien, tenemos un problema. De acuerdo, Entonces el nombre del parámetro se llama motor, que es el mismo nombre está aquí. Es idéntico, pero cuando lo llamas aquí mismo, se está refiriendo a éste porque ese es el alcance de esta variable. De acuerdo, el alcance de estas variables por aquí así que no sabe cómo conseguir eso. Entonces si nos llamamos yo en su sabe Hey, esto es parte de nuestra clase, no parte de esta función. Ahora, si me quité esto y luego cambio esto al tamaño del motor, Ok, entonces el problema desaparece. Entonces puedo decir que el motor es igual a tamaño del motor y va a funcionar. Um, y así la razón por la que te auto en ese caso específico fue porque tenían exactamente el mismo nombre. Y eso es muy común. Muy, muy común nombrar que son parámetros constructores. mismo que lo que está pasando en sus variables de clase aquí en su Isar inicial y digo inicializar er y constructor constructor sinónimo e como si lo mismo que son. Eso es justo lo que son. Entonces solo sepan que eso es lo que es. Y así por aquí no llamamos a éste. Llamamos a este Isar inicial, y por supuesto, no
hizo nada por nosotros excepto crear la clase misma. De acuerdo, ¿qué? Esto hace este método inicializado Llama. Um, esta es una palabra clave rápida aquí, y así es como lo que usa swift para crear objetos reales en la memoria. Por lo que esta clase aquí no vive en la memoria en tu aplicación hasta que realmente la llames y creas. Y lo haces poniendo aquí estos paréntesis. OK? Al igual que llamarías a una función similar a llamar a crear una nueva clase. Una nueva instancia de una clase. De acuerdo, entonces esta es tu clase, y no se convierte en un objeto. ¿ En serio? Hasta que tú en Stan, ella se lo comió, que es lo que estamos haciendo aquí mismo. Entonces nosotros en Stan, ella lo odiaba. Y nosotros en Stan. Ella lo odiaba. Ahora, estos dos están viviendo en la memoria, y los hemos almacenado en una variable. Y puedes acceder a sus propiedades usando este punto Sintaxis aquí mismo. Está bien. ¿ Estás conmigo? ¿ Hasta ahora? Espero que puedan ver el valor de agrupar elementos de datos y funciones juntos. Tiene tanto sentido porque si te das cuenta aquí, podemos almacenarlo en una variable. Eso es bastante guay. Y mira esto. Mira esto. Si queríamos tener una variedad de autos, vamos a hacer uno nuevo para ahorrar. Uh, bar, um, Silverado OK es igual a vehículo, y sólo vamos a hacer eso. Y luego qué? Debilitar dio hace mover un poco hacia abajo. aquí. Vamos a crear una matriz. Simplemente llamaremos a esto vehículos y esto va a ser una matriz de tipo. Aquí está la parte cool se puede realmente, en lugar de sólo hacer esta cuerda y se puede hacer un aumento de un tipo de clase y así puedo decir de nuestros vehículos iguala vista ical y yo solo puedo seguir adelante. Y en realidad sólo puedo seguir adelante y despegar este colon aquí y podemos simplemente Podemos hacer una matriz vacía. De acuerdo, así que hay tarifa vacía, y entonces esto es realmente genial. Entonces obviamente no puedo hacer nada como esto. No puedo decir ver el punto de Hit Cole un bolígrafo Y no puedo decir que no puedo decir, um, Beetle, cierto. No puedo hacer eso. Eso es una cuerda. Y es como, ¿Qué estás haciendo? Al igual que no se puede invocar un bolígrafo era una lista de argumentos de tipo string no quiere cadena. Se, quiere un vehículo. Pero lo que puedo agregar es mi clase de vehículo, así puedo agregar un Volvo, el objeto que acabo de crear. Podría hacerlo de nuevo con el Silverado, y podría hacerlo de nuevo con el ah SRX. Está bien, ponte. Vamos y podemos agregarle el SRX así como así. Y ahora tenemos una matriz de vehículo. Entonces aquí está el poder. ¿ Recuerdas cómo tenemos la cuenta bancaria antes? Y los datos apenas estaban dispersos por todo el lugar. Ahora podemos tener una matriz de ukeleles que va a ser una matriz de cuentas bancarias. Podría ser una matriz de cualquier cosa. Estamos empezando a ver el poder de trabajar con objetos agrupando datos. Um, y las vas a estar usando por el resto de tu vida como programador y sobre todo en IOS. Entonces esto es realmente genial. Y por supuesto, uh, recuerda como dije Puedes acceder a propiedades y con los puntos intactos, también
puedes hacer lo mismo con la función para que pueda llamar a una función así puedo decir srx dot ah, inter miles. Y digamos que queremos sumar 10,400 millas y vamos a imprimir Imprimamos las millas en él antemano, así que srx dot odómetro, sólo
vamos a imprimir eso. Y luego vamos a imprimirlo después de entrar a las millas solo para asegurarnos de que funcionara. Histérica odómetro. Por lo que empieza cero. Agregamos las millas en la función y miramos eso. Llamamos a esta función y modificó la propiedad y la imprimimos. Y ahí está waas bien. Y estas cosas ni siquiera afectan a tu Silverado ni a tu móvil. Sólo su SRX. Esto es realmente genial. ¿ De acuerdo? Estamos agrupando. Estamos agrupando datos. De verdad, realmente genial. De acuerdo, así que eso es realmente genial. Y quiero hablar de una cosa más. Por lo que no siempre es una buena idea simplemente acceder a cosas como esta. Entonces aquí mismo, tenemos un mal problema. Y este es el problema. OK, entonces puedo decir que srx dot odómetro es igual a, um ya sabes, uh, 400 ¿verdad? Entonces solo cambio el valor. De acuerdo, ahora, piensa en eso. No sé cómo es en otros países, pero al menos en Estados Unidos, si vendes un auto y modificas el cuentakilómetros para que parezca que tiene menos, podrías
meterte en grandes problemas, ve al gel. Aun así, no
quieres meterte con tu cuentakilómetros. Pero sólo permitimos que un programador y usuario hiciera eso. Eso no es muy bueno. Y así lo que necesitamos en realidad dio es algo llamado ocultamiento de datos o también conocido como
encapsulación de datos . Está bien. Y entonces qué vamos a hacer? Voy a seguir adelante y comentar estos aquí afuera. Acabo de sostener el mando y presioné a Ford Slash y vamos a seguir adelante y hacer que estas privadas bien. Privados privados y privados. De acuerdo, entonces lo que hemos hecho es que hemos hecho privadas estas variables. Lo que significa es que nadie fuera de esta clase puede acceder a ella. Ahora, sí
quiero decir que aquí en el patio de recreo, eso no es tan cierto. Cómo funciona es que típicamente creas nuevas clases y IOS Ok, uh, o nuevas clases en sus propios archivos para IOS. Normalmente no lo haces aquí en el patio de recreo. Y luego, um y luego puedes Ah, no
puedes acceder a ellos. Pero cualquier cosa que esté en el mismo archivo tiene acceso a él. Pero típicamente no pones las cosas en el mismo otoño, pero vamos a seguir adelante y sólo probarlo aquí. Voy a seguir adelante y abrir archivo Nuevo proyecto. Solo vamos a hacer una sencilla aplicación de IOS, así que puedo así poder mostrarte cómo lo pones en su propia clase. De acuerdo, Así que vista única, aplicación y solo voy a llamar a esta prueba de clase. Quemadme después de que terminemos. Está bien. Muy cool. Y poner en el escritorio aquí. Y lo llamé así porque mi escritorio se está acumulando con cosas, y quiero asegurarme de que recuerdo deshacerme de él. Entonces por aquí, voy a seguir adelante y solo haga clic derecho en esta carpeta, y voy a ir al nuevo archivo. Y por alguna razón, Alice en mi computadora, siempre me está llevando al OS X.
Vale,
el Mac, Mac, donde este revestimiento haga clic en IOS y haga clic en Swift File Click Next. Y solo llamemos a esta vista ical su propio archivo y presione enter. Y ahora mismo no está haciendo mucho. Simplemente vacía. De acuerdo, entonces clase dice ver ical ahora acabo de pegar en el comando de código V Muy bien, así que tenemos una clase llamada vehículo. Esto es realmente genial. Entonces ahora nota cómo hemos hecho estas cosas privadas aquí. Muy bien, Así que si voy a mi controlador de vista y en mi opinión, ¿las cargas se deshicieron de este comentario en esta chatarra aquí, en mi opinión, sí cargó Vamos a crear un vehículo nuevo. Entonces vamos a salvar nuestro y diremos, Ah B m w igual a vehículo. Está bien, eso es genial. Y sólo nos está gritando porque aún no lo estamos usando. Eso está bien. Entonces digamos que si hago b m w 0.0, Dom ITER es igual a 100. De acuerdo, me
da un vehículo aéreo. No tiene un miembro llamado iba a esperar un minuto. Está ahí. Escribí el código danés porque sé que está ahí. Bueno, lo que hicimos fue hacerlo privado. Algunos que nadie más puede conseguir. Conjugarlo bien. Y así puede ser tu pensamiento. Bueno, si no puedo conseguirlo, entonces ¿cuál es el punto? Bueno, sí
queremos que la gente tenga acceso al odómetro, pero no queremos que a ah, para que sea lo que quieran. De acuerdo, Entonces, por ejemplo, vamos Ah, hablemos de cómo realmente resolveríamos este problema. Esto es lo que podrías hacer si realmente estás construyendo algún tipo de aplicación de auto. Entonces lo que podemos hacer es lo que me gusta hacer yo mismo es poner un subrayado bajo estos. Es sólo un nombre diferente. Pude haberlo llamado un o lo que sea. A mí sólo me gusta poner subrayado debajo delante de él. Y lo que digo es, oye, esta es la propiedad inmobiliaria. Pero vamos a crear lo que se llama getter, ¿de acuerdo? Y un centro. De acuerdo, A estos también se les llama exceso de llagas y ah, muta minerales. Eso suena un poco más fresco, amable como los hombres X o algo así. Pero básicamente, estamos diciendo, uh, puedes establecer u obtener estos ah, parámetros o inician estas variables. Pero nosotros sí. En nuestros propios términos, no
dejamos que nadie lo cambie. Entonces aquí hay un ejemplo. Por lo que puedo decir var odómetro Recuerda a este público porque no tiene la palabra clave privada frente a ella. Entonces odómetro y puedo decir que es de tipo int. Está bien. Y lo que puedo dio es que puedo decir get y esto regresará cuentakilómetros. Entonces siempre que alguien haga los puntos en el impuesto para
conseguirlo, sólo va a regresar. Sean cuales sean los odómetros actuales, va a devolver este valor. Ahora. A lo mejor aún no estás viendo el valor en el valor al hacer esto. Al igual, ¿por qué seguiríamos haciendo esto? Pude habernos llamado. Bueno, eso es cierto. Sólo estaban devolviendo el valor, pero aquí es donde se vuelve realmente importante. Tenemos otro llamado set, ¿de acuerdo? Y cada vez que alguien intenta asignarle algo, esto es lo que se llama. Ahora digamos que el odómetro actualmente es de 500 ahora. Sería ético o legal que cambiáramos el cuentakilómetros por algo menos así que si fuera
público y alguien dijera :
Hey, Hey, cambiemos el cuentakilómetros a 100 para retroceder Eso es malo. No queremos hacer eso. Eso es que va en contra de la ley. Entonces lo que queremos hacer aquí es esto. Entonces vamos a establecer, íbamos a decir es si el valor nuevo Keanu valor es el valor que está entrando y va a ser del mismo tipo que lo que pongas aquí mismo. Por lo que este nuevo valor va a ser un fin. De acuerdo, esa es una palabra clave. Yo no me lo maquillé. Nuevo valor es una palabra clave. ¿ Recuerdas eso? Entonces si el nuevo valor que está entrando bien está menos que bien, 500 no hacen nada, acuerdo? Esa probablemente no sea la mejor manera de escribirla. Entonces en otros términos donde podríamos decir está encendido, Lee lo dijo. Si es así, si el valor nuevo es mayor que el cuentakilómetros. Entonces podemos decir que el odómetro es igual a nuevo valor. ¿ Quién? Esto es realmente interesante. OK, así que lo conseguimos así, igual que podríamos haber hecho antes. De acuerdo, Esta es propiedad propia, y está trabajando con esta propiedad aquí. Por cierto, esto se denomina propiedad computada de propiedad computada. ¿ Recuerdas eso? Y veloz en propiedad computada. Y así es como se trabaja con getters y centros. Y entonces lo que estamos diciendo es,
oye, oye, regresa aquí el cuentakilómetros. Bien. Tiene sentido. Tenemos que conseguirlo en cualquier momento. Pero aquí, si alguien está tratando de
modificarlo, vale, tiene que ser mayor que el odómetro existente. Entonces ahora aquí está Aquí está lo que es realmente interesante. Entonces volvamos aquí. Y ahora esto debería funcionar porque creamos esa propiedad. Pero lo que es interesante es nuestro cuentakilómetros aquí es que 500 correcto? Entonces echemos un vistazo a lo que acabamos de hacer. Entonces si digo imprimir BMW dot odómetro Ok, Si imprimo eso y luego ah, digamos impreso aquí otra vez BMW dot odómetro. Ahora, tal vez aquí en este código de aquí, podrías estar pensando, Oh, esto va a cambiar. Puede. A lo mejor así voy a abrir mi cónsul aquí, ¿de acuerdo? Y vamos a seguir adelante y sólo ejecutar esto, ¿de acuerdo? Vamos Popped up, moviéndonos por aquí muy rápido. Está bien, mira esto. Por lo que lo imprimimos antes de que fueran 500 lo imprimimos después, y eran 500. Aún
así, Entonces eso significa que nuestro código funcionó. Acabamos de impedir que alguien violara la ley. Por lo que felicitaciones. Gracias por ser un gran ciudadano, y acabamos de hacer algo genial. Entonces lo que hicimos fue que escribimos un centro que, um que evita que los datos malos entren aquí. Esto es tan importante. Entonces esto es algo, por cierto, que nadie enseña a gente nueva. Es tan importante. OK, todas tus variables deben ser privadas en la mayoría de los casos, pero todas deben ser privadas. Y lo que debes hacer es tener getters y centros. Por lo que determinas cuándo estás creando tu clase, determinas cómo se va a cambiar y manipular. Y eso es lo que hicimos. Dijimos:
Oye, Oye, nadie se le permite meterse con este cuentakilómetros. Está justo aquí en nuestro código. Entonces veámoslo en acción. Entonces, ¿qué pasa si en cambio digo cuentakilómetros ahora es igual, um 700. Acabamos de subirlo, Ok. Y lo vuelvo a ejecutar. ¿ Qué crees que va a decir? ¿ 500? 700? Nuestro código está funcionando. Por lo que acabas de aprender un principio muy valioso. Se llama ocultación de datos o encapsulación de datos. Y usaste getters y centros para hacer eso. Está bien. Y así es lo básico de las clases. Esto son clases. Esto es súper poderoso. Ahora estamos gestionando nuestros datos. Estamos haciendo lo que queremos con él. Lo estamos manteniendo a salvo, y estamos creando algo que es reutilizable. ¿ Qué tan guay es eso? Sin tener Recordar antes. Ya sabes cómo si quisiéramos tener múltiples cuentas bancarias, guardaría nuestra cuenta bancaria. Uno es igual, ya
sabes, 1000 bar cuenta bancaria a eso es Esa es una forma tonta de hacer las cosas. De acuerdo, lo que quisiéramos son clases. Entonces, ya
sabes, tengo mi BMW. Tengo mi Ford Pinto, um, todo tipo de cosas. Y todos estos manejan su propio estado en sus propias propiedades. Y cosas realmente geniales. Entonces se trata de objetos y clases. Esta es una visión general. Estarás usando estas cosas para la clase de descanso para el resto de tu carrera de programación. Cosas tan emocionantes. Me encanta la programación orientada a objetos. Es fantástico. Y si tienes alguna pregunta, siéntete libre de preguntar en la sala de chat o en los formularios, y vamos a cerrar sesión aquí y seguir adelante.
37. Herencia: aquí estamos juntos otra vez. Este hermoso día o noche, dependiendo de donde vivas. Mark Price here with death pistas dot com ¿Alguna vez habéis ido a leer reseñas sobre, como, la tienda de aplicaciones, IOS o Android? Algunas personas son bastante brutales. Yo sólo estaba mirando a uno justo aquí. Mira esto. Esta app se estrelló dos veces en mí. A los desarrolladores se les debe disparar, y quiero mi tiempo de regreso. Esta es una app gratuita. Hmm. Vas a sentir el dolor de eso. Cuando empieces a sacar tu APS, vas a conseguir tu primera crítica de 1 estrella casi como, Oh, pero un crimen. Y la gente es brutal, como si no fueras a remolque. McDonald's como tú compras una hamburguesa de 99 centavos y luego, como, sabía a basura. Cual hamburguesa de 99 centavos va a saborear como nuestra pero no te gusta, Tómala y tírala en las caras de los empleados. Quiero que mi dólar de vuelta tienda APP gaste $50,000 construyendo una app, y así querría que te fusilaran. De todos modos, bienvenido al mundo del desarrollo de aplicaciones, Uh, solo dándote un vistazo a la emoción de la misma. Y, uh, supongo que ustedes chicos están revisando también estos cursos y revisándome. Y si aún no me has dado una crítica de cinco estrellas, ahora sería un buen momento para hacerlo. Y si no eres feliz, sólo habla conmigo, y haré lo que pueda para hacerte feliz. Entonces hablemos de otro principio importante hoy llamado herencia. De acuerdo, Debiste haber mirado el de las clases y los objetos. Y la herencia es un principio muy básico e importante a la programación orientada a objetos. Entonces voy a seguir adelante y crear un nuevo patio de recreo, ¿de acuerdo? Y aquí vamos. Fui a archivar nuevo patio de recreo, y llamemos a esto que quiero y herencia bien. Y poner en el escritorio. Y ahí vamos. Ahora bien, ¿
recuerdas cómo la última vez que trabajamos con vehículos y trabajamos de clases se metió en
lo mismo aquí? ¿ Qué? A lo mejor nos meteremos con él un poco diferente, así que voy a conseguir una clase llamada persona, Ok. Una especie de clase base. Está bien. Vas a empezar a escuchar eso mucho, sobre todo cuando comienzas a trabajar con la herencia. Entonces siempre que alguien diga cuál es la clase base o agarra la clase base. Lo que significa es que es la clase más baja,
la clase más baja comprada. De acuerdo, entonces hablemos de una persona que tiene una persona. Ah, mi color. ¿ Verdad? Yo color igual a Blue Anvar nombre y diré que es de tipo string. Y no estamos inicializando éste fuera del bate porque no hay nombre por defecto. Te dan una persona, supongo que si acabas de nacer, tal vez aún no tengas nombre. Algunos lindos. No nombramos a sus hijos por un tiempo. Y, uh, Speed. Ah, como en la velocidad de carrera. Está bien. Sólo derechos aleatorios y 10 millas por hora. Bastante rápido, uh, todavía se come por un guepardo, pero 10 sigue siendo bastante rápido. Y ah, press de banca. ¿ Cuánto puedes presionar? Ah, 200 libras. Bueno, si fuera yo para ser más así, pero va Ah,
bueno, bueno, adivina bien. Bonito promedio aquí. Entonces está bien. 200 libras o, uh, y lo que sea país y eso podría ser kilos, tal vez no sepas cuál es el equivalente, pero sólo
sé, estoy pensando en ti y vamos a hacer un Isar inicial, bien? Vamos a tener inicializar o donde puedas inicializar el nombre, ¿de acuerdo? Y diremos auto nombre de punto igual nombre. Entonces, por cierto, sólo
eliminemos eso realmente rápido. Aquí hay un aire, retorno de inicializar er sin inicializar todas las propiedades almacenadas. No puedes tener una propiedad como esta a menos que la inicialices en tu Isar inicial. De acuerdo, entonces no hay signo de exclamación al final. No hay duda, Mark al final, estamos diciendo que tiene que haber un valor aquí. Tiene que haber absolutamente tiene que haber. Y la única forma en que puedes salirte con la tuya es si lo inicializas en tu Isar inicial. ¿ De acuerdo? De lo contrario, tendría que decir, sé que va a haber un valor en ello. Todavía no hay uno o se puede decir que realmente no sé si va a haber un valor en absoluto, pero eso lo sabemos. Bueno, lo que estamos diciendo es, Hey, ni siquiera
puedes crear una nueva persona a menos que pases por el nombre. ¿ De acuerdo? No ibas a dejar que hagas eso, Así que sigamos adelante y digamos auto nombre de punto porque todos necesitan nombre igual nombre. De acuerdo, vamos a decir este nombre aquí mismo es igual a este nombre cuando estás creando una nueva persona. ¿ Todo bien? Y, ah, digamos esto. Esta persona tiene un Catchphrase predeterminado como este es Esta es la frase clave que cada persona va a guardar por defecto. Va a ser una función que devuelva una cadena, y vamos a decir Retorno alto. Soy una persona promedio. De acuerdo, entonces hay una frase de captura justo el valor predeterminado. Aquí hay una persona, ¿verdad? Y si te acuerdas de la última clase, puedo salvar a nuestro Um, solo diría que John es igual a persona como esta de aquí, y pasaré a nombre de John. De acuerdo, así que ahí está Johnny es una persona. Eso es genial. Ahora aún no has presenciado la herencia. La herencia es realmente herencia. Estás heredando algo de otra cosa. Entonces lo que debilita a Dio es que podemos decir que quiero una nueva clase. Ustedes alguna vez recuerdan ese show hace mucho tiempo como Anna morphs. A lo mejor fue un libro de Siri que no puedo recordar. Pero como les gustaría a estos chicos adolescentes, se conviertan en ah, conviertan en animales. De hecho, probablemente
estés familiarizado con el crepúsculo. Ya sabes, se convierten en se convierten en
lobos y cosas así de todos modos,
así quehagamos una clase llamada animal si la idea de que una persona es como una persona,
pero no un poco diferente, lobos y cosas así de todos modos,
así que hagamos una clase llamada animal si la idea de que una persona es como una persona, pero no un poco diferente, pero aún queremos los atributos de base porque, uh, este animal, si esta persona ya conoces, sí
tiene ojos en el nombre y velocidad en el press de banca, Pero también tiene algún otro personaje o seis para gustarle el tipo de animal en el que podría convertirse. Por lo que incluso podríamos hacer eso. Ahora, podría salvar a nuestro tipo animal animal, OK, Y, uh, por defecto, sólo puede ser, um Bueno, ¿cuál sería un buen animal por defecto? Algo aburrido a un perro. Bassett default. Um, y así hay un perro que es del tipo predeterminado. Pero lo que puedo hacer es que puedo ah, puedo anular eso. Está bien. Entonces podría seguir adelante y decir, ya
sabes, en ella, y podríamos decir tipo, y esto va a ser de tipo string. Y lo que podemos hacer es decir caderas tipo animal, tipo
animal igual a tipo. Ahora no podemos tener un problema aquí. De acuerdo, El problema es, este izer inicial nunca se está llamando a esta clase base porque acabamos de crear
uno nuevo . De acuerdo, entonces lo que necesitamos hacer realmente aquí es que vamos a decir una especie conveniente de estado. Vamos a hacer esta conveniencia como vamos a agregarle algo para que se aplique a esta clase específica, ¿de acuerdo? Y entonces sigamos adelante y llamemos a la que ya tenemos. Entonces digamos auto punto en él Y de hecho, como segundo parámetro, vamos a darle a este tipo y nombre bien, o a la chica que va a amarrar Y lo que puedo dio es que yo podría decir duda de sí mismo en él y
podríamos pasar en el nombre. De acuerdo, creo que eso debería funcionar ampliado un poco aquí. Veamos qué aire está dando esto aquí. Um oh, me olvidé de decir, uh, lo siento. Aquí es donde va. Va tras el Isar inicial aquí, tu conveniencia inicializada cuando te esto yace esas propiedades, al usar tu conveniencia en esto en él va por debajo. Entonces si esto es confuso, déjame explicarlo de nuevo. Entonces este anamórfico hereda de persona, ¿verdad? Pero lo que también queremos dio es cuando se crea un animal o si queremos establecer el
tipo de animal además del nombre. Por lo que hemos creado una nueva inicialización er Ok. Todavía tenemos que llamar a este porque esto se requiere en la clase base. Entonces lo que hacemos para decir, Hey, esto es solo una conveniencia inicializar er no es la principal. Es sólo una secundaria. Pero es lo que vamos a llamar a los animales, y vamos a pasar en el tipo de animal y el nombre, y luego vamos a llamar al er de inicialización en la clase de padres, que se requiere ahí mismo. Eso es todo lo que está pasando. Es, como, secundaria. Y solo estamos llamando a la primaria y luego agregando algunas cosas extra aquí. No tan mal. Um bien, así que acabamos de crear ese er inicializar, y está llamando a ese ahí mismo. Y, uh, esto es realmente genial. Ahora tenemos una persona, ¿verdad? Y así aquí hay algo interesante. ¿ Y si digo, eh, para que sepas cómo tenemos a John aquí arriba? Está bien. Correcto. ¿ Y si solo le imprimimos el color de sus ojos? Por lo que acabo de guardar print john dot I color. Está bien. Está bien. Entonces estamos imprimiendo el color de los ojos y es azul, ¿
verdad? Y vamos a crear un animal por ahora de nuestro vamos a decir que delfín es igual a Annette un animal y le daremos aviso ¿cómo? Mira, podemos llamar al er de inicialización en la clase padre. Como eres, Espera, este animal, No tiene este Isar inicial con solo uno. Bueno, no
lo hace, pero su clase padre sí recuerda, hereda. Es como un subconjunto. Por lo que aún puedes llamar a eso inicializar en la clase padre. Pero queremos el de conveniencia porque queremos establecer el tipo animal. Y así una vez un delfín y el nombre va a ser un gato. De acuerdo, ahora, eso es interesante. Por lo que quiero que prestes una atención cuidadosa. No hay propiedad en el animal del llamado color de ojos, pero sí en la persona. Entonces, ¿qué? Pero acabo de crear un animal. ¿ Podré usar el color de ojos? Entonces démosle un tiro print delfín dot i corps. Y bastante seguro, está ahí. Entonces debido a que hereda de la clase superior, vale, la clase de persona, podemos acceder a sus propiedades. Eso es realmente genial. ¿ Y qué pasa con la frase? Ahora mismo, la frase en ambos es Hola, soy una persona promedio. ¿ Verdad? Entonces si imprimo la frase catchphrase de John dot catch phrase, imprimo eso, Vale, va a decir Hola, soy una persona promedio. Ahora si hago eso ahora mismo con el delfín, Vale, Si digo delfín punto catchphrase, va a imprimir exactamente lo mismo. Hola, soy una persona promedio. Eso es interesante. Bueno, eso no es muy útil porque un animal definitivamente necesita una frase diferente a la de un ser humano
normal. Entonces aquí es donde la herencia también se vuelve realmente poderosa es que puedo anular
las funciones y propiedades de clase basadas y así puedo guardar funk catchphrase, y simplemente lo anulé. Y ahora puedo hacer un diferente cuando podría decir que puedo convertirme en un animal fresco. Esa es mi frase. Entonces simplemente lo anulé. Y ahora mira por aquí. Cambió. Entonces antes de que esta imprimiendo, soy una persona promedio. Ahora está imprimiendo. Yo puedo convertirme en unos animales frescos, así que eso es interesante. Se pueden anular funciones de una clase base. Entonces, ¿eso no tiene sentido? No quiero Oh, no
quiero reescribir este código, ¿
verdad? No quiero tenerlo animal para tener que copiar y pegar todo este código porque lo necesito. No, vamos solo La idea es mantener las cosas que son similares entre todas las cosas, por lo que tu clase base debería ser un despojado hacia abajo. Es posible. Significándolo en. Lee tiene cosas que van a ser comunes entre todas las subclases. De acuerdo, déjame decir eso otra vez. Estás clase basada debe ser despojado del dedo del pie en Lee tienen cosas que van a ser comunes entre todas las clases basadas. Brazos. Disculpe. Toda la subclase está bien. Y así es lo que hicimos. Todavía queremos el nombre del color de los ojos y todas esas cosas, pero aquí, queremos que Teoh cambie las cosas. Y, por
supuesto, si estamos haciendo animal, podríamos, por
supuesto, modificar propiedades. Entonces podría decir yo mismo esa velocidad si tu delfín, no
sé qué tan rápido pueden ir, pero estoy seguro que es más rápido que 10 millas por hora en el agua. Entonces, ya
sabes, podría
decir, ya
sabes, 25 25 mph o, um, ¿qué sería eso en tu país? Probablemente sea Kilómetros. ¿ Te gustan los estadounidenses tontos? ¡ Ah, ja! Fácil MPH. El resto del mundo utiliza el sistema métrico. Está bien. No me preguntes. No lo sé. Yo no creé el sistema. Yo sólo lo uso. Y así aquí vamos. Podemos actualizar cosas así
también, y acabamos de anular una función de la clase base y podemos hacer algo más. Eso es realmente, realmente genial. Y luego ver el ejemplo de la herencia una vez más con perfecta claridad. Vamos a hacer otra clase llamada superhéroe, y eso también va a heredar de persona. Entonces un superhéroe en un animal que son dos películas diferentes, dos libros diferentes, algo completamente diferente. No obstante, están ligeramente relacionados, ¿de acuerdo? Y hay cosas que podemos usar, um, en ambos para que pueda volver a hacer lo mismo. Ese superhéroe lo hace. Tiene todas las demás cosas que tiene una persona. Pero no es un animal, así que no tiene un tipo animal. Pero qué super Pierre. Lo que sí tiene un superhéroe, por
supuesto, es un poder especial, que se expresa una visión en este caso. Y, uh, tiene una historia de espalda. Todo el mundo tiene una historia de espalda, sin historia de atrás, probablemente algún camión chocó con algún limo que tenía químicos. Y ahora soy super impresionante. De vuelta atrás historia alguna vez, ya
sabes, pero una persona persona aburrida no tiene una historia de fondo, solo dice que voy a mi trabajo todos los días y llego a casa y veo, , ya
sabes, películas y sangre verdadera. Ah, juego de Tronos. Ya sabes, ese es el juego humano promedio de Thrones, ¿
verdad? Ya lo sabes. OK, entonces backstory. Y entonces otra vez, podemos ah, conveniencia en ella. Y podemos seguir adelante y poner un nombre aquí y ah, tal vez en este caso, el que queremos cambiar el press de banca, OK, sólo por diversión. Y ah, así que hagámoslo tú mismo llamarás auto punto en él y pasará en el nombre. De acuerdo, eso viene de ahí mismo. Y luego press de banca, aunque vamos a decir igual prensa. Entonces vamos a actualizar de nuevo el press de banca. Um, sólo
estamos usando el poder de la herencia. Eso es realmente genial. Y luego, por
supuesto, para crear un superhéroe. No es tan difícil. Podemos decir de nuestro, um ¿cuál es el buen vomito de superhéroe, hombre? Al igual
que, consiguió algún vómito tóxico. Y ahora cada vez que vomita, vierte ácido. Uh, es un terrible superhéroe. Oh, cosas
raras que salen de mi cerebro. De acuerdo, entonces démosle un nombre. Vamos a llamar a este hombre de vómito y su press de banca es de 5000 libras. De acuerdo, 5000 libras. Eso es mucho. De acuerdo, eso es mucho en kilos o libras. De acuerdo, Así que el hombre vomita es un tipo bastante guay, y Ah, ahí vamos. Adelante. Y, uh oh. No se puede olvidar la frase pegajosa. Analicemos la frase pegajosa. De acuerdo, así que digamos funk catchphrase y sigamos adelante. ¿ Y cuál es una buena frase de superhéroe? Um, con gran poder viene genial. Ahora es un gran poder. Hacer o no al infinito y más allá mezclado algunos de ellos hay obras. Entonces ahí está nuestra frase. Y por supuesto, si imprimo vomito hombre que atrapan frase y luego imprimo catchphrase de punto de delfín. Y si imprimo john dot catchphrase, deberíamos esperar tres resultados diferentes porque los anulamos y las todas las
cosas diferentes . Y lo bastante seguro que sí. Ese es el poder de la herencia. De acuerdo, esto es tan poderoso. Um, como si pudiera ser cualquier cosa que realmente le pudiera gustar, imagina una cuenta bancaria. Um, ya
sabes, tienes una cuenta bancaria por defecto, pero tal vez hay un tipo de cuenta make diferente como, um, como cuenta bancaria offshore. Ya sabes dónde tienes que hacer cosas sombrías, transferencias de
dedo del pie y cosas así porque probablemente sea algún traficante de drogas y ah, ya
sabes. Entonces tal vez tienes dos cosas diferentes. Puede haber una segunda subclase llamada como, um, ya
sabes, cuenta de
oportunidad. Ya sabes, cuando el banco como tú no tiene ningún buen crédito ni cosas así, el banco te da como una de esas cuentas cojas donde solo puedes gastar, como 101 100 dólares al mes o lo que sea. Ya sabes, podría tener diferentes características. Todo necesita características basadas como el equilibrio y esas cosas. Pero ya sabes, tiene sus propias sub características. tan geniales. Empieza a pensar en términos de objetos y clases cuando estás construyendo sobre aplicaciones, sea lo que sea que se empiece a pensar. ¿ Cómo puedo poner esto en un objeto, visualizar algo en la vida real, ponerlo en un objeto y luego despojarlo en el nivel base tanto como sea posible. Y luego cuando necesites una nueva característica,
piénsalo tú mismo. ¿ Podría poner esto en una subclase? De acuerdo, ¿esta subclase 22 es lo que tiene más sentido y luego empezar a romper las cosas muy poderosas. Vas a usar esto todo el tiempo. Y por supuesto, en IOS, herencia es algo muy aparente como, por ejemplo, tu imagen tú, tú y
tú, eres tú botón yo. No sé si lo sabes. Creo que lo he mencionado, pero todos esos controles en realidad heredan Todos heredan de ti. Te tengo bien, eso es interesante. Entonces Ah, tienes u K es la clase base ahí. Y tú imagino vista es una, um es una subclase y luego Ah, te tienes también yo botón es una subclase. Lo que realmente te etiqueto es una subclase. Todos esos heredan de ti. Yo veo estos todos tienen características basadas, como un marco y un centro, Ya
sabes, el posicionamiento y otras cosas, y luego éstas lo bajan un paso más allá. Eso son cosas realmente geniales. Nos meteremos en eso más tarde. Pero, ¿cómo te sientes, todo el mundo? Esto es genial. Esto es herencias es muy poderoso. Espero que te haya gustado. Nos vamos a sumergir justo en el siguiente curso y estar usando esto de inmediato del bate, tan familiarizados con él. Y eso es una envoltura
38. Polimorfismo: Hey, todos, Mark Price Escuchar con jabones sordos dot com Y hoy vamos a hablar de polimorfismo, ¿de acuerdo? Y si esto es lo primero que te vino a la mente cuando dije polimorfismo, eso es bastante genial. Pero eso no tiene absolutamente nada que ver con lo que estamos hablando. Pero por cierto, ¿
recuerdas cómo todos tenían un enamoramiento de su espalda en el día? Sé que fuiste tú si tu chica probablemente me enseñan a mí o a alguien más pero Power Rangers, otro paseo por el carril de la memoria y voy a seguir adelante y abrir un archivo. Nuevo patio de juegos. Ustedes son como, ¿De dónde sacan todas estas cosas? ¿ Me gusta? Bueno, solo
estás echando un vistazo a mi cerebro e historia y pasado, ya
sabes, como cosas que ahora se consideran retro. Enfriar. Y esa fue mi historia. Es decir, los días retro. Y así soy un tipo de chico retro y ah, vamos adelante y llámenos Poly Morph. ¿ Qué? Polly? Más para qué? Polimorfismo. De acuerdo, es un principio de programación orientado a objetos, y acabo de poner eso en el escritorio ahí. De acuerdo, entonces vamos a deshacernos de esta basura. polimorfismo es un principio muy sencillo. Este no será un video muy largo porque no es tan malo de un principio. No obstante, se
te preguntará esto en muchas entrevistas de trabajo. Me preguntaron esto una vez y ¿sabes qué? En realidad conozco este principio dentro y fuera. Pero hice un trabajo terrible explicando en una de estas entrevistas, y pensaron que no tenía ni idea de lo que estaba hablando. Por lo que es importante saber lo que estás haciendo y poder presentarte de buena manera en una entrevista. Entonces a pesar de que este principio tan simple, es como si yo conociera el polimorfismo y fue como, Wow, eres tan inteligente. Sí, voy a conseguir una clase llamada forma. De acuerdo, una clase basada por defecto está bien, a
menos que quieran calcular el área. Y por cierto, este es un ejemplo muy común para demostrar polimorfismo. Yo no invento esto. Simplemente Es realmente simple. Entonces y las formas tienen un área derecha, y esta área va a ser un tipo doble. Sólo digo,
Hey, Hey, tal vez podamos o no poner un valor aquí, así que es opcional. ¿ De acuerdo? Y vamos a crear una función llamada talco. Se atrasa zona Muy bien. Entonces, ¿cómo podemos calcular el área de una forma si no sabemos qué tipo de forma es? ¿ Se calculan todas las formas? Lo mismo en lo que respecta a la zona. La respuesta es no. Los círculos son diferentes de los triángulos son diferentes de los rectángulos, por lo que en realidad no podemos escribir código aquí. Es como, ¿Qué hacemos? ¿ Qué nos dio? Bueno, nunca temáis un polimorfismo y herencia al rescate. De acuerdo, así que voy a decir área de impresión funk, vale. Y luego vamos a seguir adelante e imprimir El área está bien. Y, ah, ponte un colon aquí, entonces somos un poco de paréntesis especiales, y vamos a imprimir el área. Está bien. Y, uh asi Ok, imprimir. Olvidé cerrar paréntesis ahí. De acuerdo, entonces estamos imprimiendo el área, y Ah, ahora mismo, no
hay nada en ella. ¿ De acuerdo? Y pero en algún momento, habrá. Entonces lo que acabamos de hacer es despojarnos de una Z mejor que podamos hasta los huesos desnudos, y así podemos tener algunas de las que heredar. Entonces esta es una buena práctica, en realidad. Y así hablemos de un rectángulo por lo que el rectángulo debe heredar de la forma. Eso es correcto. Buena respuesta. John y ah con Bueno, solo dale un valor por defecto por ahora. 1.0 y altura de barra es igual a 1.0. Entonces, solo estableciendo algunos valores por defecto, eso es todo. Y cuando creas en clase, puedes pasar en el con bien? Y puedes pasar en la altura, bien. Y ah, ahí vamos con y la altura se ve bien. Y lo que haremos es un autodidacta con igual con y diremos yo mismo, la altura es igual a altura. Y de nuevo, si estás confundido en absoluto, el yo está refiriendo a Teoh las propiedades de la clase. Y esto se refiere al parámetro K. Esto se llama ámbito local. A esto se le llama alcance global. Se puede enfurecir dos tipos diferentes de alcance aquí. Está bien. Y entonces sigamos adelante y ah, pongamos en acción el polimorfismo. Anulemos funk calcular el área. Entonces al igual que lo hicimos antes, vamos a anular la función de cálculo del área Ahora. Esta vez, sin embargo, vamos a darle un comportamiento específico. De hecho, probablemente
estés pensando, ¿qué ya demostramos? Polimorfismo? Bueno, como que lo hicimos en realidad, Así que área es igual con tiempos altura, por lo que el área es igual al con veces la altura papá tiene sentido completo porque es un rectángulo. Está bien. Y, uh, sigamos adelante y vayamos al círculo de clase que también debería heredar de la forma. Ahí vamos. ¿ Alguien recuerda cómo calcular el área de una forma? Bueno, necesitamos un radio 1.0 y sigamos adelante. Inicializarlo con un radio de tipo doble y, ah, vamos a terminar un radio de punto auto igual a radio. ¿ De acuerdo? Y por supuesto, ¿qué queremos dio anular la función o decir, calcular área? ¿ Y cómo hacemos eso? Bueno, el área es igual a 3.14 veces los tiempos de radio. Eso es ampersand. Los tiempos son radio, y eso se ve bastante bien. Eso se ve bastante bien. Entonces eso vamos a ver estos en acción. De acuerdo, Así que si voy adelante y salvo nuestro círculo igual círculo y paso en un radio de digamos cinco y dije 5.0 y vamos a salvar nuestro rectángulo Andi rectángulo igual a ah rectángulo, y vamos a pasar en un con de 20 y una altura de cinco . De acuerdo, y entonces vamos a seguir adelante y en cada uno de estos. Era un círculo, ningún círculo equivocado. Por lo que te diste cuenta de la diferencia Capital ni caso que puedas tropezar con problemas eran como, ¿Por qué esto no funciona? Bueno, eso es porque haces clic en el equivocado en los auto completos,
los de clase, la instancia del círculo de clase igual o lo siento en círculo calcular el área. Y luego diremos, un rectángulo rectángulo punto calcular el área. Y entonces lo que haremos es simplemente imprimir área de punto círculo e imprimiremos área de
punto rectángulo y veamos qué pasó. Esto nos dio 78.5 en el círculo y 100 en el rectángulo. Bueno, eso me parece bastante bien. Por lo que en realidad funciona. Entonces eso es el polimorfismo en su forma básica más absoluta. Um, no
se pone mucho más que eso. De verdad. Um, es la idea de tener funciones que puedes anular que realizan comportamientos diferentes. Entonces a pesar de que estamos llamando a la misma función en estas sub gafas, están haciendo algo diferente. Y esa es otra de las poderosas características de la programación orientada a objetos. De acuerdo, y ,
ah, hagamos un ejemplo más sólo para sellar el trato. Digamos que tenemos una clase llamada enemiga. De acuerdo, este es un juego de algún tipo, cierto, y bar h p equivale a 100 de nuestro ataque. El poder es igual a 10. Vamos a seguir adelante y darle un HP Isar inicial y diremos que es de tipo extremo, y ataque es de tipo tía, y vamos a inicializar estos valores auto. Ese h p es igual a hp y auto punto El poder de ataque es igual al poder de ataque y no al poder de ataque. Eso es lo que no atacaremos. Y ah, OK, eso se ve bien. Tenemos a nuestro Isar inicial ahí y ah, vamos a tener una función llamada Defender Attack. Entonces, cuando te están atacando, vas a ser el defensor, ¿de acuerdo? Y así vas a pasar. Alguien va a pasar en el ataque Poder Los poderes entrantes se debilitaron. Probablemente podamos decir entrante A T T poder para ataque entrante El poder dirá int, Y lo que haremos es diremos que HP menos equivale a,
um,
los um, poderes de ataque entrantes. Lo que estamos diciendo es, oye, vamos a seguir adelante y tomar ese poder de ataque entrante y restar del HP y
asignarlo de nuevo a HP. Por lo que si el fuego de ataque fuera de cinco, HP ahora bajaría a 95. Entonces estamos defendiendo el ataque. Vale, Ahora digamos que tenemos un tipo específico de troll enojado de clase enemiga, y él hereda él o ella Nosotros no vamos a estereotipo de género en un troll enojado. Una mujer podría ser igual de trol como un hombre. Gracias. Está bien. Y tan enojado troll hereda a un enemigo. Entonces vamos a decir si Está bien, entonces vamos a echar un vistazo a qué estamos tratando de hacer aquí? En realidad, pensemos en esto. Por lo que queremos que el troll enojado haga algo diferente a lo que viene el enemigo ganando
ataque entrante . Tiene un poder especial. Entonces digamos que estamos enojados. Troll en realidad tiene una inmunidad igual a 10. Lo que esto significa es, oye, si entra un ataque, eso es menos de 10. Es inmune a ello. De acuerdo, no sólo eso, él consigue un punto extra a su vida, ¿sabes? Por lo que solo podrías atacar a este troll enojado si tienes más de 10 poder de ataque. Entonces lo vamos a hacer es decir, anular funk, defender ataque, y sólo estamos anulando el predeterminado. ¿ Verdad? Entonces estamos anulando esto, ¿de acuerdo? Y lo que vamos a dar es que vamos a decir si el poder si,
uh, uh, poder de ataque
entrante es menor o igual a la inmunidad. Entonces si es menor o igual a la inmunidad, Um, no
vamos a quitarle ese daño, y vamos a decir HP plus. De acuerdo, así que piensa en esto. Si hacemos esto aquí mismo, si lo anulamos, nunca se va a llamar a
esta función. ¿ De acuerdo? Nunca va a quitarle el poder de ataque aquí porque lo hemos escrito sobre. Pero ¿sabías que aún puedes llamarlo si quieres. ¿ Qué? Sí. Entonces si sí atacaron con algo más de 10 solo podemos seguir adelante y llamar a super punto defender ataque y podemos pasar en el poder de ataque entrante. Por lo que super significa llamar a la super clase. De acuerdo, entonces tienes clases para padres e hijos, o, en otras palabras, tienes una súper clase y una clase base. Entonces lo que estamos diciendo es, oye, si los ataques están bien, si es mayor a 10 adelante y llama a la función regular como normal. Por lo que los ataques super dot defender en realidad estaban llamando a esta función aquí, y estamos pasando en el poder de ataque. Eso es realmente genial. Um, y así es otra forma en que funciona la herencia. Se puede utilizar para trabajar con los datos como le parezca conveniente y, por
supuesto, defender ataque a su nivel base. Esta vez no está vacía. Tiene algo que hace. Podemos optar por usarlo, o podemos optar por no usarlo. Entonces y esto es herencia mezclada con polimorfismo mezclado con buen diseño de
programación orientado a objetos . Espero que eso tenga mucho sentido. Si no, estarás usando mucho de esto a lo largo del curso y lo bajarás. De hecho, puedes ir a una entrevista de trabajo para Olvídate de todas estas cosas y ya sabes las cosas dentro y fuera. Alguien como, ¿Qué es el polimorfismo en tu logo? No puede recordar. Y entonces alguien está como, Bueno, aquí hay un ejemplo. Ah, lo
hago todos los días. Entonces no te preocupes por ello. Vas a dominar esto aunque no lo sepas. Pero se llama a no confundirse, Power Rangers, y gracias por afinarse. Todo el mundo piensa es Mark Price de la muerte jabones, y te veré la próxima vez
39. Opciones de Swift 2 parte 1: todos Marcar Precio aquí en la muerte jabones punto com y estado. Vamos a cubrirlo. La parte más importante y fundamental de Swift. Bueno, quizá el tema más importante, pero muy fundamental. Y son opcionales. vas a usar todo el tiempo. Y las opciones son una especie de las cosas que separan,
Um, Um, buen código del mal código que ayudó a prevenir los bloqueos. Entonces voy a seguir adelante y crear un nuevo patio de recreo, ve a tu código ex y archiva nuevo patio de juegos. ¿ De acuerdo? A pesar de que este no es un archivo de juegos infantiles. Nuevo patio de juegos. Ahí vamos. Y adelante y llama a esto como quieras. Voy a llamar a mis opcionales y pero un año en el escritorio. De acuerdo, Así que opcionales, tantos lenguajes de programación te permiten escribir código que puede bloquearse. La idea detrás de las opciones es que si las usas, tu base de código podría ser prácticamente irrompible. Um, eso nunca es cierto. Pero al menos su código, nosotros mucho, mucho mejor. Y así hablemos de lo que es un ist opcional. Entonces si guardo nuestras ganancias de lotería de tipo y pongo un signo de interrogación al final Ahora el interrogación es lo que define algo como opcional. De acuerdo, lo que estás diciendo cuando pones un signo de interrogación en un tipo de variable, estás diciendo que esta variable puede o no tener un valor. De acuerdo, entonces si en algún momento de tu programa no sabes si va a haber un valor ahí o no , um, entonces nuevo mercado como opcional. Entonces, por ejemplo, las ganancias de
lotería. Si tienes una aplicación donde vas a revisar para ver si has ganado la lotería, puedes o no tener un valor ahí dentro, y probablemente no va a tener valor ahí dentro, solo para que lo sepas. Ah, y así básicamente lo que estás diciendo es, Hey, necesitas revisar este valor como programa y necesitas revisar esta variable y asegurarte no
se arrodille. Aviso en el lado derecho, por aquí. Es Neil. Y así eres como,
Bueno, Bueno, ¿por qué? ¿ Por qué por qué? ¿ Por qué importa? Entonces, vamos a averiguar eso. Si digo imprimir ganancias de lotería, ¿de acuerdo? Y pongo un signo de exclamación al final para desenvolver el valor. De acuerdo, acabamos de tener un accidente. Entonces el signo de exclamación es lo que se llama desenvolver. Entonces es que lo tomas opcional y dices dame el valor fuera de e intentas usarlo. Pero si haces esto y no hay valor en su, tu programa se va a estrellar. OK? Un montón de programadores nuevos están dando vueltas por todas partes y veloces haciendo esto, y sus programas se están estrellando, y a veces no se están estrellando porque hay valores en él. Pero en algún momento en el futuro, ese valor no viene y la aplicación se bloquea y la persona le dará a la aplicación una
revisión de una estrella . No es bueno. Ahora, con eso en mente, si yo aquí mismo en la siguiente línea hacia abajo, dichas ganancias de lotería equivalen a 500. Observe cómo linemates no chocar como. De acuerdo, bueno, yo resuelvo el problema para establecer un valor. Bueno, sí resuelve el problema, pero realmente no resuelve el problema inherente, que es tu tú. Ah, estás abusando de esta opcional. De acuerdo, tuvimos suerte. Pero qué pasa con los tiempos en que no tenemos suerte y no hay valor, así que no primero. Entonces primera regla La primera regla sobre opcionales es que no hablamos de opcionales. No, esa no es la primera regla. La primera regla es que nunca, nunca
nunca jamás, nunca,
nunca ,
nunca implícitamente desenvuelvas algo o discúlpame, desenvuelvas algo como lo estamos haciendo aquí, ¿de acuerdo? Nunca hagas esto malo, Malo, así malo, Malo. Muy mala práctica. Si lo haces, voy a venir a tu casa. Te voy a vencer. Yo sé dónde vives, así que sólo sepas eso. Entonces esto no es bueno. Esto es muy, muy malo. De acuerdo, Muy, muy, muy mal. Entonces nos dio un choque, ¿verdad? Entonces, ¿qué debemos dio? Bueno, definitivamente sí queremos el signo de interrogación aquí porque realmente no sabemos si va a tener un valor o no. cualquier momento otra vez, cualquier momento que no sepas si va a tener valor, Ponle el signo de interrogación. De acuerdo, Um y, ah, si de verdad queremos trabajar con esto, todo lo que necesitamos hacer es una de dos cosas. Si las ganancias de lotería no son iguales a arrodillarse, adelante e imprima las ganancias de lotería. Ahora podemos ponerle la exclamación. ¿ Y te gusta qué? Me acabas de decir que no hiciera eso. Bueno, hay un tiempo y un lugar para todo. Pensemos en lo que está pasando en línea. Siete decían:
Oye, Oye, si las ganancias de lotería no son Neil, aquí
es Neil. Si no es ahora, entonces puedes imprimirlo. Entonces si tienes esto, si bloqueas y luego lo desenvuelves, tu garantía absoluta para tener un valor. ¿ Por qué? Porque este código nunca se llamará a menos que las ganancias de lotería tengan un valor en él. Entonces note cómo nada va bien la impresión? No obstante, si digo que las ganancias de lotería equivalen a 10 bien y ahora impresas porque hay un valor en ella. Entonces esto es lo que haces cuando trabajas con opcionales. Siempre revisa y asegúrate de que haya un valor en. Al principio eres como, Bueno, eso solo significa más código. Bueno, la razón por la que agregó esto y Swift porque otros idiomas no tienen otros idiomas, deja abusar de las cosas, y luego tienes que preocuparte por tus propios choques. Entonces, ¿qué? Aquí está el punto de quitarte lo que Apple y Swift están tratando de decirte que hagas es hey, si no lo sabes, se va a valorar en para shore, pero un signo de interrogación en él. De esa manera podrías saber para comprobarlo todo. La pregunta que Mark está diciendo es, Hey, mírame después para asegurarme de que no estoy vacía porque puede que no tenga un valor en ella. Eso es todo lo que dice. Y eso es lo que hicimos aquí mismo. La otra forma de hacerlo se llama es usar lo que se llama si let sintaxis K. Así que si let win equivale a ganancias de lotería y entonces podríamos decir ganancias de impresión. Ahora bien, esto es interesante. Entonces cómo si dejar funciona es sacamos el valor de esto, agregamos ganancias de lotería, y si existe, lo
ponemos en una nueva variable, una nueva constante. De acuerdo, entonces si esto tiene un valor en
, entra en la nueva constante. Y así si no se arrodilla y hay un valor, entonces se llama a este código y esta es la forma preferida de hacerlo si se puede. A veces se llega a hacerlo de esta manera, por la mayoría de los casos, hacerlo de esta manera. Entonces básicamente eran la sintaxis, es si vamos así estás diciendo si y entonces estás haciendo una, um, una constante con el nombre y luego estás asignando el valor en ella. Entonces si hay un valor, se va a almacenar en ganancias. Ahora, aún se podría decir ganancias de lotería impresa, pero tendrías que ponerle un signo de exclamación para desenvolverlo, y no queremos hacer eso. Entonces, ¿por qué no solo usas la nueva variable que acaba de entrar, y entonces no tienes que poner un signo de exclamación. Simplemente imprime para ti y nota cómo, claro que no es imprimiendo. Entonces si decimos que las ganancias de lotería equivalen a 100 Vale, así que aquí no existía. Todavía estaba arrodillado en este punto, pero ahora tiene un valor, y llegamos a esto. Entonces si let es la sintaxis deseada, básicamente todo lo que estás haciendo es tomar el valor, lanzándolo en una nueva variable si existe. Si no es
arrodillarse, entonces sabes que está ahí. Y eso es lo que haces. cualquier momento que tengas un signo de interrogación, usa si dejas antes de intentar usar ese valor. Lo tengo. Cualquier momento de variable tiene una pregunta. Mark es un opcional siempre usando si se deja primero para asegurarse de que no es Neil. De acuerdo, esa es la ley. De acuerdo, si hay algo que puedas quitarle hoy de esta lección, es que eso es lo más importante. De acuerdo, así que repasemos algunos ejemplos más de, um de opcional. Entonces vamos a tener una clase llamada Khar. Está bien. Y tenemos un muy contundente llamado el modelo porque es el modelo del auto, ¿de acuerdo? Y así no sabemos si el modelo va a tener un valor. Tiene sentido. Ah, podría tener un valor. Puede que no. Y entonces lo que vamos a dio es ah, vamos a hacer una línea múltiple si se deja Entonces lo que vamos a hacer es crear un auto tan lejos de nuestro vehículo de tipo auto, y es un significado opcional. Oye, en algún momento del futuro, este vehículo tendrá valor. Todavía no lo hace. Entonces tenemos una clase o una declaración de objeto de una clase, eso es opcional. Y entonces esta clase misma tiene una opción de valor dentro de ella. Entonces, ¿y si queremos conseguir el modelo del auto? De acuerdo, bueno, una cosa que podríamos hacer es que podríamos decir si dejamos, um v para vehículo. De acuerdo, esta es solo una llamada muy, muy edificable. Lo que sea. Si deja v igual a ver ical, está bien. Y entonces lo que podemos hacer es que podemos decir si dejar modelo o m para modelo es igual a v modelo punto, Así que podríamos hacer a si vamos a la derecha. Y entonces lo que podríamos hacer es que podríamos imprimir. Um podríamos imprimir, uh, m para el modelo. ¿ Verdad? Y ahora mismo, no
va a imprimir porque no hay nada. No lo creamos. Correcto. Um, sin embargo, hay una mejor manera. Y esta es una sola línea. Si lo dejamos lo que podríamos hacer en lugar de decir, si let v igual ver Hickel y dejar m igual modelo Vida. Ah, eso es interesante. Entonces cómo funciona se equipara primero el lado izquierdo, y luego el siguiente, el siguiente, el siguiente, el siguiente en ese orden. Entonces si hay una vista ical bien, entonces
se va a hacer esto aquí mismo y agarrar. Se va a usar la variable V porque existe. Ahora está encendido para agarrar el modelo de la misma. Y si llegamos aquí, Vale, um, significa que hay un modelo ahora mismo. No hay. Entonces, ¿qué tendríamos que hacer para que esto funcione? Bueno, esta es una simple vista de ensayo. Ic es igual a auto. OK, así que acabamos de crear una nueva clase de auto, una instancia de ese objeto, y todavía no está imprimiendo aquí porque Todavía no hay modelo. Entonces lo que hacemos es salvarte modelo de punto ical Ese modelo es igual a, uh, escucha, solo
llamaremos a esto Bronco, ¿de acuerdo? Y ah, Ahora si notan por aquí en el lado derecho, imprime Bronco. Eso es bastante guay. Entonces, uh, otra vez, nos
salvamos de un choque justo haciendo esto si se deja Ok, obviamente, si intenté, ya
sabes, imprimir Si traté de hacer esto arriba aquí antes de inicializar que mi orgullo trate de salvarte ical , si lo intenté es una vista ical, um modelo de punto. Está bien, se va a estrellar. De acuerdo, Así que cosas bastante cool. Um, tal vez te estés preguntando Oye, ¿qué significa esto aquí mismo? ¿ Por qué? ¿ Por qué hay un signo de interrogación frente a él? Bueno, ese es el Syntex opcional cuando usas un opcional con un signo de interrogación. OK, cualquier momento que vayas a usar, como el punto a una propiedad excesiva o algo así, tienes que poner un signo de interrogación frente a ella diciendo, Hey, esto es un opcional y no sé si va a ser tener un valor o no. Eso es todo lo que estamos diciendo. El vehículo es un opcional y no sabemos si va a tener un modelo delante. Y entonces lo que está bien es, um si yo fuera a hacerlo aquí mismo. Si fuera a decir print view vehicle, um, y sabe cómo me lo va a poner automáticamente. De acuerdo, Ahora nota cómo no se está estrellando. Como esperar un minuto. ¿ Por qué esto no se está estrellando? Bueno, lo que estás diciendo es, oye, sabemos que esto es un opcional. Esto es lo que está diciendo. Sabemos que vehículos y opciones, Así que si hay un valor, imprímalo, vale, um, lo contrario no va a hacer nada. Por lo que también puedes hacer esto. Lo que no quieres dar a la cosa traviesa que hacer sería así de bien, Porque acabas de romper tu programa. Acabas de estrellarte al usuario porque lo que estás diciendo es desenvuelto este Usa este valor en este
momento y simplemente bloqueas tu programa. Entonces al dejar ahí el signo de interrogación, estás diciendo: Oye, no
sé si hay un valor o no, pero imprímalo si lo necesitamos. Pero por cierto, si haces esto qué, también
estás diciendo esto no me importa si funciona o no. OK porque puede funcionar. Puede que no funcione, y tu programa aún necesita seguir funcionando, aunque no funcione. Entonces solo sepas que si usas esto, esta pregunta marca en impuestos. Cuando estás imprimiendo o en exceso algo que estás diciendo, realmente no
me importa su valor en ella o no. Si tienes código que es absolutamente dependiente de saber si es evaluar o no, tienes que hacer. Y si dejemos así aquí mismo, porque digamos que tu programa no puede continuar a menos que haya un vehículo. Entonces si no tienes un vehículo quieres crear uno primero, entonces utilizarías si vamos en impuestos, porque te obliga a manejar la situación. Esto no te obliga a manejar la situación. Esto sólo imprime si Prince, si está ahí o lo hace o no. Y así, si esperas un valor ahí, solo hazlo. Sólo tienes que saber que esta sintaxis opcional aquí mismo significa que puede o no
darte lo que estás buscando. Entonces hay algunas cosas realmente geniales, y si algo de esto es confuso para ti, eso está bien por ahora mismo vamos a usar esto a lo largo del curso en cosas diferentes . Y explico esto una y otra vez. Vas a oírme hablar tanto de ello, y te va a gustar que este tipo nunca se calla de las opciones. Bueno, la razón por la que nunca me callé de opcionales es porque te ayuda. Te ayuda a crear programas muy robustos. Entonces hablemos de algunas otras cosas que debilitan a Dio. Así que digamos que tenemos una matriz de nuestros autos, una matriz de autos, y es de tipo opcional, lo que
significa que puede en algún momento en el tiempo, tener un valor, y ayuda a despegar la S aquí, y puede que no vuelva a hacerlo. Esto es sólo una matriz de autos, y es opcional. ¿ De acuerdo? Y así digamos en este punto aquí, ahora dijimos autos. Ahora realmente creamos array, lo inicializamos. Nosotros acreditamos con una matriz vacía. Y entonces lo que queremos Dio no es solo chequear a su Neil, bien, porque podría estar vacío. Pero realmente no podemos usar una serie de autos a menos que en realidad haya autos en él. ¿ Verdad? Por lo que primero haríamos esto. Al igual, si dejar auto auto son para auto A igual a autos, ¿
verdad? Y entonces si hay un valor en los autos, vamos a entrar aquí, y actualmente hay porque acabamos de hacerlo aquí mismo. Pero realmente no nos importa esto, verdad, porque lo necesitamos. Tenemos que saber si hay algo en ella. Entonces lo que también podríamos hacer, claro, es si Si entramos ahí, sabemos que hay en una carrera, porque si auto son conteo de puntos es mayor que cero. Entonces si hay más de uno, hay al menos un elemento. Entonces adelante y ejecuta código. Pero eso son dos líneas de código. Es un poco desagradable. Hay una mejor manera. Entonces dentro, si vamos en texto, realidad se
puede hacer el let y luego se podría hacer una condición después para que realmente podamos decir dónde. ¿ Dónde está la palabra clave Coche? El recuento de puntos R es mayor que cero. Entonces lo que estamos diciendo es Ok, lo que estamos diciendo es, si ,
uh, me estaba gritando es un cierre sin usar. De acuerdo, detente. De acuerdo, así que sólo estaba enloqueciendo. Simplemente construye. Si alguna vez ves eso, solo construirlo. A veces se enloquece. No sé por qué si dejar que el auto R iguale auto. Entonces lo estamos haciendo es decir, Hey, si no es arrodillarlo, mete en esta variable aquí esta constante entonces estamos diciendo, pero también donde el conteo es mayor que cero. Entonces Onley sigue, Lee, ejecuta este código. Entonces en Lee ejecutar si no arrodillarse y si más de cero elementos Así que eso es realmente genial. Podemos hacer lo podemos hacer. Y si deja así como una condición en la misma línea para correr un bloque de abrigos en nuestros códigos, va a estar haciéndose aún más pequeño en ese entonces. Entonces, por ejemplo, si no tuvieras una matriz de autos o no tuvieras más de un elemento, entonces podrías manejarlo, ¿
verdad? Se podría decir otra cosa y luego se podría decir que los autos puntan escritos. Y luego podrías crear un auto nuevo como así um pasó un auto nuevo ahí dentro, y luego lo estarías agregando y ah, eso es realmente genial. ¿ Verdad? Y de nuevo, estás viendo estos signos de interrogación en impuestos, Escucha lo que estamos diciendo aquí es Oye, si los autos, um si los autos tienen un valor en ello, vale, solo adelante y alícalo. Entonces ahora mismo es que en realidad va a funcionar. Pero si me quité esto, OK, bueno, aquí hay un buen ejemplo. Entonces en realidad podría imprimir el trapo de conteo. Podría imprimir autos conteo de puntos. Entonces en este caso de aquí, nos
va a dar un recuento de uno. ¿ Verdad? Y entonces ah, pero ten en cuenta cómo dice uno opcional es porque estamos usando la sintaxis opcional justo aquí. Está bien. S estaba diciendo:
Hey, Hey, imprímalo. Si está ahí y es opcional, está bien. Si no existiera, esto nunca se imprimiría. De acuerdo, Um, ver cómo no es. La impresión no es hacer nada. Entonces, um, todos modos, cosas
realmente geniales. De lo que acabamos de hablar fue hacer en un piso en estado consciente. Y si alguno de estos cayera, deberías manejarlo. Y eso es lo que vas a la mayoría de tus casos aquí vas a manejar, um, la condición donde no hay valor en ella, para que tu programa pueda avanzar. Y esto es lo correcto Syntex, vas a usar este modelo aquí mismo, menos menos. Va a ser menos común usar este modelo donde estás usando los signos de interrogación en impuestos para
llamar a las cosas. Eso se debe a que si no funciona si no sale verdad, como si no hubiera valor en ello. Simplemente no va a funcionar en tu programa va a seguir adelante. Y entonces lo que estás diciendo cuando haces esto es que no me importa si funciona o no. En la mayoría de los casos, sí
te importa. Te importa si hay un valor o no, por lo que puedes manejar el caso. O puedes inicializar las cosas del objeto así. Entonces, um, cosas
realmente geniales. Hablemos de otra cosa. Vamos a hablar de lo que se llama un opcional implícitamente desenvuelto, y tú estás como, ¿Qué? ¿ Eso también es complicado? Bueno, no está tan mal. Entonces conseguimos una clase de persona. Vamos a tener una función aquí donde se puede fijar la edad. Dices que la autoedad es igual a la nueva era. Um, así que aquí está el trato. Tienes una clase aquí que tiene una propiedad, y ahora hay un signo de exclamación en ella, aquí, como, ¿qué significa eso? Bueno, ¿qué significa aún no hay valor en ella? De hecho, es exactamente lo mismo que un opcional. De acuerdo, pero la diferencia es la diferencia es que no va a gritar, ¿sabes? De acuerdo, cuando intentes acceder a propiedades. Entonces si trato de decir,
um, um, si trato de salvar a nuestro,
um, um, jack es igual a persona, ¿de acuerdo? No me va a gritar si trato de hacer esto y digo print jack dot age, Me va a dejar hacerlo. ¿ Verdad? Pero mira lo que va a pasar, ¿de acuerdo? Tiene un Valor Neil en ella, ¿de acuerdo? Y ah, eso es malo. De hecho, esto podría estrellarse su programa. Eso no es lo que queremos hacer. No queremos chocar nuestro programa. De acuerdo, entonces ,
um, lo que estamos diciendo aquí es que voy a dar esto de valor en algún momento, y lo estoy garantizando. Soy absoluta, Gary, absolutamente garantizando que aquí va a haber un valor. Entonces lo que estás diciendo es, oye, deshazte de una pregunta, mark, porque no quiero escuchar la advertencia. Um, porque definitivamente voy a poner un valor aquí, pero aquí está la cosa. Esto podría ser muy malo. Lo vas a ver en programas, y lo vamos a hacer aquí. Pero esto podría ser muy malo si no sabes lo que estás haciendo y ¿por qué? Porque tienes que asegurarte de inicializarlo. Entonces en este momento no estamos siendo un bien no estábamos siendo un buen desarrollador porque nunca se está inicializando de inmediato del bate. Entonces cuando hago esto aquí mismo, todavía no
es válido. Y así cuando lo acceda, no
hay nada en ella y nuestro programa puede estrellarse. Y así, um, pesar de que tenemos una edad establecida años función así que si digo Jack, eso dijo envejecido, sí, eso es genial. Podría darle una edad ahora, pero el problema es, ¿y si esta funciones nunca llamó o si se llama más tarde donde alguien intenta acceder a la edad? Antes de que hagas esto, va a ser Neil, y va a estrellar tu programa. Por lo que necesitamos tomar precauciones cuando estamos usando esto. Si vas a usar un opcional implícitamente desenvuelto, necesitas inicializarlo,
um, um, alguna
manera o forma. Y entonces, uh, entonces lo que en realidad recomendaría es, en lugar de usar realmente el opcional implícitamente desenvuelto como entonces ¿por qué no simplemente inicializarlo para que me guste un predeterminado inicializa er like? Entonces eso ahorrará que tu programa se estrelle otra forma de hacerlo. De acuerdo, si no quieres inicializar, lo es, podrías decir, Vale, podrías decir, Ah, hagamos esto aquí. Hagamos esto privado y vamos Ah, vamos a cambiar el nombre. Solo estoy poniendo guión bajo no significa nada. Es sólo que es sólo el nombre. Y entonces lo que puedo dio es que Aiken diga, ah, lejana edad de tipo int, y en realidad puedo, um, inicializarlo en un getter. Entonces lo que voy a hacer es que voy a decir si la edad es igual a Neil que la edad es igual a cero, puedes establecer algún valor por defecto, y entonces podemos devolver la edad, Entonces esto es realmente interesante. Entonces lo que estamos haciendo aquí es que me permita deshacerme de esta función aquí. Um, aquí vamos. Um, lo que podemos hacer aquí es hacer son variables privadas, la que tiene el signo de exclamación en él. Y nadie más puede acceder a esto porque es privado. Pero lo que hacemos es crear un conseguirla. A esto se le llama ocultación de datos. De acuerdo, creamos un getter, y lo que hace es cuando digo que la traigan, esto es de prisa. Se llama propiedad computada. Estamos creando una propiedad computada, y lo que haremos es darle un valor predeterminado. Entonces si la edad, si esta variable es Neil. De acuerdo, vamos a seguir adelante y darle un valor por defecto de edad cero ahora es igual a cero y luego devolver la edad y cero Lame. Vamos a darle, como, 15 K Así que esto es realmente interesante. Entonces acabo de crear una nueva persona, ¿verdad? Y ah, ahora mismo la edad no es nada. Es Neil, ¿verdad? Entonces, um, de hecho, si me quito el privado real rapido solo para que veas si hago esto si digo print jack dot underscore age Ok, es nulo. Interesante. Pero, ¿qué pasa si imprimo jack dot edad sin el subrayado 15? Eres como, ¿qué? Hablemos de lo que pasó otra vez. Entonces creamos esta variable aquí, y debería ser privada. Solo te estoy mostrando para demostraciones que no es Así que es Es reunión privada. Sólo la persona de mi clase puede acceder a ella. Y entonces lo que estamos diciendo es a la que todos los demás pueden acceder se llama edad. Es una propiedad informática, y lo que va a hacer es que va a ejecutar este código. Si esto envejece a Neil, pongámoslo a una edad por defecto, y entonces bueno, entonces vamos a seguir adelante y devolverlo. Entonces, ¿qué? Puedes dio si tienes, Ya
sabes Así que en lugar de acceder directamente a estos y revisarlos en otras clases, puedes crear propiedades como esta aquí, esta propiedad de la computadora, puedes hacer el cheque y luego puedes devolver y valor inicializado. Entonces eso es otra cosa que puedes hacer solo tener mucho cuidado al usar estos. Yo lo haría Si vas a usar estos, definitivamente tendría algún tipo de propiedad ah informática que inicializar es o
si no sabes si va a haber valor en ella. Entonces esto es otra vez. Entonces eso es lo que estás diciendo. Estás diciendo que estoy garantizando un valor en ella, así que tienes que tener un valor pase lo que pase, Mejor manejarlo si pones ahí el signo de exclamación porque estás garantizando un valor. Si no quieres garantizar valor, entonces usa un signo de interrogación porque entonces la clase externa condone si deja y ve si tiene un valor en él. Entonces, um, cosas
muy importantes por saber. De acuerdo, si estás confundido, vuelve a
ver este video. Esto es tan importante, y vamos a hacer esto mucho. Yo lo hacemos todo el tiempo en todas nuestras aplicaciones. Entonces te estoy enseñando mejor práctica mucho de esos otros cursos. Simplemente pondrán al frente los puntos de exclamación. Todo lo que dicen, No te preocupes, va a funcionar y funciona en ese caso. Pero entonces cuando vas y construyes tu propio programa, se está estrellando tu como no sé qué todo así que solo te agradezco que estés aprendiendo esto. Es un poco complicado, pero lo bajarás. Entonces, ¿conseguimos un perro? ¿ De acuerdo? Y tiene una propiedad llamada Especies. Ahora su Aquí hay algo que es interesante. ¿ Y si no quiero usar un signo de interrogación o un chico de exclamación? Yo sólo quería tener un valor, pero no quiero decir que especies por defecto es igual a pug. No hagas eso porque esa tontería no va a No va a aplicarse a todos, ¿
verdad? Entonces lo que quiero dio es que quiero decir especie es de tipo string y luego me usaríamos en el constructor. Este es nuestro constructor K. Pasas en la especie que deseas y lo que puedes dio ya que puedes inicializarlo en tu instructor, tu constructor. Entonces Aquí hay algo interesante. Esto no tiene signo de exclamación y no tiene signo de interrogación. Lo que estamos diciendo aquí es que no sólo somos garantía va a tener valor, absolutamente va a tener un valor justo cuando cargamos. Entonces en un Isar inicial. De acuerdo, Si inicializas toda tu propiedad, ¿
has inicializado propiedades? Y en un er de inicialización en un constructor aquí, esto se llama constructor. Si inicializas tus propiedades en un constructor, entonces no tiene que tener el signo de interrogación o el signo de exclamación. Y si eso lo confunde todo, solo mira cómo funciona. Entonces si guardo nuestro, um, llamaremos a este laboratorio igual a perro y notaremos cómo quiere la especie. Entonces pongo en laboratorio negro porque son mucho más frías que los otros laboratorios. Uh, y ahora si pongo eso ahí y luego imprimo las especies de punto de laboratorio, va a imprimir laboratorio negro porque lo que pasó fue correcto cuando creamos el objeto, inicializamos que llamamos al constructor e inicializamos bien la especie aquí. Entonces ese es un caso cuando no tienes que tener un signo de exclamación o signo de interrogación es cuando estás inicializando cosas en el constructor. Um, así que eso es realmente genial. Eso es realmente, realmente genial. Entonces, um, esto es una especie de opciones aquí mismo. Se trata de opcionales e implícitamente desenvueltos opcionales Osh. Las lecciones que quiero que te quites de esto son, uh, tú como programador. Si no sabes dónde está si va a haber un valor o no,
Si no sabes eso y no puedes garantizarlo, usa un signo de interrogación. De acuerdo, usando opcional. Si absolutamente garantizan
absolutamente que sus valores van a tener un, uh o sus variables van a tener un valor en él. Pero a lo mejor no estás listo para dárselo al usuario, o tal vez lo obtengan en un momento posterior en el tiempo. Pero estás garantizando que lo hará usar el signo de exclamación. Pero con la advertencia de que si usas el signo de exclamación, mejor asegúrate de tener algún código de seguridad como este. Este getter aquí, esta propiedad de la computadora, mejor asegúrate de tener código de seguridad para inicializarlo. Porque si no lo haces, alguien va a acceder a él y tu programa se va a estrellar. OK, al
menos el opcional te dice que utilices. Y si dejas esto ni siquiera sabes. No sabes si debes si lo dejas o no. No sabes si está inicializado, Así que depende de ti como programador asegurarte de que esto tenga un valor cuando alguien quiera usarlo. De acuerdo, también aprendimos que no tiene que tener una exclamación o un,
uh, uh, interrogación y opcional o implícitamente desenvuelto opcional. Si lo inicializas en el constructor porque eso es solo decir justo en tiempo de ejecución cuando se crea por
primera vez, va a tener un valor en él. También aprendimos que se puede. Puedes usar el signo de interrogación en las opciones para realizar los comandos regulares, como si fuera algo regular como este auto stop hand,
um, um, o los autos que cuentan los signos de interrogación en él básicamente dicen, Hey, si no es Neil, adelante y corre. Pero si es Neil, no
vamos a hacer nada así y está bien usar estos para seguir adelante y tratar de hacer cosas , pero tú solo probablemente vas a hacer esas cuando no te importa si funcionan o no , porque, um, puede o no funcionar y ah, si sí te importa lo que pasa si hay un valor en él que hacer esto de otra manera hacer eso, entonces lo que necesitas dio es usar el if,
vamos a impuestos como así De acuerdo, entonces si te importa lo que va a pasar, usa si deja si no te importa si funciona o no, puedes usar el modelo de interrogación ahí mismo. Entonces eso son opcionales. Eso es desenvolver las opciones. Ya has visto chocar el programa. Tienes que ser un codificador seguro, y vamos a usar esto a lo largo del curso, así
que si no lo entiendes, está bien. Pero sí ver este video una y otra vez. Y a medida que pases por los cursos, te pondrás realmente bueno en esto, y sólo te voy a enseñar lo correcto. No voy a ella y hacer cosas para vencer al sistema. Vas a ver el revestimiento del mundo riel. Por lo que estos son muy, muy importantes otra vez. Si hay algo más, me estresan sobre este curso ya que te estás convirtiendo en programador, y con este lenguaje de programación, son opcionales. Conviértete en un maestro de esto y tendrás una app que no tiene estrellarse. Por lo que Mark Price aquí desktops dot com firmando. Es bueno trabajar contigo. Hagámoslo otra vez en algún momento
40. Introducción a la aplicación de iOS 9 App: todos de nuevo en la silla de montar. Mark Price aquí con Deb detiene dot com Vamos a hablar rápidamente de la app que
vamos a construir hoy. Esta app es una app más pequeña, y básicamente, vas a estar aprendiendo los principios de las clases. De acuerdo, Una programación orientada a objetos. Entonces los iconos visuales bastante cool aquí y todo ese jazz que ponemos en esto esto fue sólo por diversión El verdadero trabajo está ocurriendo en realidad bajo las escenas. . Simplemente no quería construir una siesta. Eso fue aburrido. No estaba haciendo nada más que imprimir a la pantalla. Ah, así que de todos
modos, no soporto eso. Entonces todo lo que hace aquí es que haga clic en ataque. OK, Se quita sus puntos de golpe por aquí y ah, el mago del diablo va a morir. Él muere, puedes recoger el tesoro y te da un botín al azar. Y luego aparece otro tipo malo. Esta vez es un Kimera salvaje. Está aleatorizado. Tiene está en HP. No está atacando ni nada por el estilo. Esto es realmente sencillo. Pero bajo el capó es donde realmente vamos a empezar a experimentar y explorar. Esto es material fundamental. Tienes que construir esto pasa por esta app aquí y así que sigamos adelante y empecemos. Va a ser divertido. Y por cierto, después de esta asignación, tengo un ejercicio realmente genial que te permite expandirte y hacer cosas como agregar
efectos de sonido y realmente llevarlo al límite aquí. Si quieres continuar con esta idea. Por lo que estos gráficos aquí son proporcionados por cartoon smart dot com. Donde tengo los otros gráficos han mostrado en videos anteriores. Tendrás que comprar estos gráficos si quieres usar esto comercialmente. De acuerdo, podrías usar esto para el tutorial porque yo compro estos, pero quieres usarlo y hacer tus propias siestas en el después. Adelante y compra estos gráficos a socio mark dot com. Adelante y empecemos. Ver en el código.
41. Aplicación de iOS 9: construir una APP simple con OOP: Oigan, todo el mundo. Mark Precio aquí con Deb pistas dot com Me alegro de ver de nuevo desgaste voy a bucear justo en y construir un RPG de programación orientado a objetos simples. Y voy a seguir adelante y abrir mi ex código. Haga clic allí e iré a presentar un nuevo proyecto. De acuerdo, lo
tiraré aquí para que lo veas. Perfecto. Por lo que fui Teoh archivo Nuevo proyecto. De acuerdo, aplicación de
una sola vista está bien. ¿ Y cómo debemos llamar a esto? ¿ Qué tal r p g o p. Son grupo? mí me queda bien y dispositivos universales. Eso está bien. Es click siguiente y lo guardaré en su parada. Impresionante. De acuerdo, así que algunas cosas es que esto va a ser una aplicación única de paisaje. Entonces sigamos adelante y hagamos eso. Y por supuesto, como tú me conoces, primero
vamos a hacer las cosas divertidas, sacar todas las cosas divertidas del camino, hacer algunos gráficos y esas cosas. Y la razón por la que ah, estamos haciendo algunos efectos visuales aquí es porque APS son mucho más divertidos cuando son visuales. OK, muchos cursos y a la gente les gusta enseñar en pizarras y en consolas. Y tú solo ves Wide y Black Tex y solo dispárame Ahora dispárame Ahora vamos a hacer algunas cosas realmente geniales. Entonces tenemos nuestro controlador de vista aquí, y ah, sabemos que estamos apoyando el paisaje. Um, sólo, pero eso no debería importar. Aquí. Voy a seguir adelante y encontrar aquí el arte para el proyecto. Voy a subirlo un segundo. Ahí vamos. Estas obras de arte aquí. Seguí adelante y ah, re factorizado y cambio algunas cosas alrededor. Es del paquete inteligente de dibujos animados del que hemos hablado antes. Si quieres vender esta app o usarla comercialmente o lanzada algo vas a querer
ir a comprar esto. Ah, este arte lleno. Pero puedes usarlo para este tutorial simplemente bien o para tus propios propósitos de aprendizaje. De acuerdo, entonces tenemos todo este arte. Simplemente lo voy a destacar todo. Todo excepto el archivo Photoshopped. Bueno, no
te necesitas y haz clic en la carpeta Activos, y solo voy a dar clic y arrastrarla. Vale, Así que recuerda la idea detrás de esta app es que tienes un personaje en el personaje
izquierdo la derecha, y realmente el único personaje de izquierda, que eres tú el jugador te está atacando. Haga clic en el botón de ataque y le quita vida al personaje. Cuando su vida se ha ido, muere, puedes hacer clic en un cofre del tesoro y está lleno de botín y el proceso se repite. Y el punto de esto es realmente empezar a bajar la programación orientada a objetos. Entonces vamos a estar construyendo clases no iban a estar haciendo todas estas cosas en el
controlador de vista , no todo. Vamos a estar usando clases como deberían ser usadas. Y me parece que los juegos en realidad son una de las mejores maneras de aprender a programar porque las cosas estaban muy orientadas a objetos que se puede pensar en términos de objetos una caja, un enemigo, un jugador, muy, muy muy objetos. Entonces si eso tiene algún sentido, así que sigamos adelante y buceemos aquí. Um, pensemos en que necesitamos a Necesitamos una clase de jugador y también necesitamos una clase enemiga. De acuerdo, tenemos jugadores y enemigos. Entonces la pregunta que nos ocupa es, ¿hay algún rasgo o atributos de un enemigo o de un jugador que deba compartirse? ¿ A lo mejor en una clase de padres? Bueno, ataque
de salud, poder. Probablemente haya algunas cosas eso estoy pensando que necesitamos crear una clase de padres, así que sigamos adelante y hagamos eso. Haga clic en su carpeta aquí y haga clic derecho y vaya al nuevo archivo. O puede hacer clic en su carpeta e ir por aquí e ir a archivo nuevo archivo archivo nuevo y voy a Click source y Click Swift File. Y vamos a llamar a este personaje. ¿ De acuerdo? No sabemos si es un enemigo o para dos jugadores, pero es un personaje,
y crear una clase es un simple s diciendo personaje de clase, no es gran cosa. Y sigamos adelante y creemos algunas variables. Entonces sabemos que hablamos de que van a necesitar puntos de salud, ¿
verdad? Tan privado, lejos el tipo HP, y sólo lo vamos a por defecto a 100. Y si has olvidado por qué estamos usando la palabra clave privada, es porque queremos emplear un buen comportamiento de los desarrolladores, que se llama ocultación de datos o encapsulación de datos, y no queremos simplemente exponer nada de tan otras clases y las cosas lo pueden arruinar. Queremos proteger cuidadosamente nuestros datos, y vamos a diseñar funciones son propiedades computadas para darnos exactamente lo que estamos
buscando . Entonces ataque, poder y la razón por la que estoy poniendo los subrayados ahí es porque vamos a hacer justamente eso. Vamos a crear esas propiedades computadas que hagan lo que queremos hacer. Entonces, por ejemplar, poder de
ataque. Nadie más debería poder modificar eso. Eso voy a salvar nuestro poder de ataque de tipo Y está bien, esta es una propiedad computada, y sólo vamos a devolver el poder de ataque. Entonces, siempre que alguien llame, esto sólo va a devolver el poder de ataque. También podríamos haber dicho que lo hizo de esta manera. Pónganse, entonces. Podríamos haber dicho ataque de retorno, poder. Eso fue taquigrafía, sin embargo. Entonces, uh tan muy bueno. Ahí hay poder de ataque y esos van a hp var hp de tipo int y haremos lo mismo Dirá retorno hp. Entonces si estás accediendo directamente a la propiedad, todo lo que puedes hacer es obtenerla. No se puede modificar. Se encargará de eso nosotros mismos. Entonces tenemos HP. Tenemos poder atacado. Um, probablemente
necesitaría algunos métodos iniciales de Isar. Entonces digamos en él y vamos a darle al usuario que es usted el programador, La capacidad Teoh establecer este hp inicial. Entonces hagámoslo ahí. Y vamos a darle al usuario la capacidad de establecer el poder de ataque para que se pueda cambiar Si lo
pasas a través de inicializar er y así dirás auto punto h p igual a hp inicial y auto punto Subrayar poder de ataque, uno mismo subrayado El poder de ataque vuelve a ser igual al poder de ataque. Recuerde, yo se está refiriendo a la versión global y esto se refiere a la versión local el alcance
local. OK, para que puedas inicializar el poder de ataque predeterminado. Eso es genial. ¿ Qué más puede pasar? Bueno, alguien puede atacar a un personaje ya sea enemigo o jugador. Y si eso sucede, la salud debería bajar para que podamos construir una función para eso. Sabemos que eso va a ser compartido Intento, ataque. Y lo vamos a llamar Poder de Ataque, donde el atacante pasará en el poder que están empujando aquí. Y, ah, voy a decir bullying que vamos a regresar porque no sabemos si el
ataque del usuario va a ser exitoso. Al igual que lo que pasa si hay inmunidad O, ya
sabes, si estás atacando a una criatura de roca con un rayo, puede o no funcionar. No hemos escrito código para nada de eso, pero,
uh, uh, mayor red May. Entonces cuando regresamos un booleano si fue exitoso. Y en este caso de a nivel de padres, clase de
padres, siempre
volveré verdadero. Está bien. Y, uh, ¿qué más? ¿ Qué? Deberíamos poder comprobar si los personajes están vivos. Está bien. Necesitamos saber si está muerto o no. Bueno, ¿cómo hacemos eso? Bueno, si HP es menor o igual a cero, sabemos que está muerto. Entonces, ¿por qué no diríamos si h p es igual a cero? Bueno, ¿qué pasaría si un ataque tomara más que, ah vida de la que tenía la persona, y bajara incluso por debajo de él? Tenemos que dar cuenta de eso. Entonces hagamos una propiedad computada, ¿de acuerdo? Se va a llamar es vida. Recuerde las propiedades de la computadora o simplemente las propiedades que tienen un cálculo en ellas antes de que
devuelvan o establezcan un valor. Entonces vamos a decir que te pongas bien. Y, uh, así que va a devolver un booleano. Y si HP es menor o igual a cero devuelve falso. Ahí. El personaje no es una vida de otra manera retorno. Es cierto, porque el personaje es una vida. Y así, nuevo, se
trata de una propiedad informática. Por lo tanto podrá decir, ya
sabes, carácter punto está vivo y realizará este cómputo y nos devolverá el valor adecuado . Esto se ve realmente bien. Entonces tenemos una clase de personajes y sigamos adelante y pasemos a la clase de jugadores, que sabemos que vamos a necesitar porque tú eres el jugador. Y, uh, necesitamos definir lo que el jugador puede hacer. Entonces jugador punto Swift y, ah, misma cosa exacta aquí Dirá, jugador de
clase, minúscula l Y, uh, ¿qué más? Entonces cuestiona a un jugador, ¿verdad? Esto es realmente genial. Esto es todo lo que tienes que hacer Hay que pensar en términos de objetos. Al igual que, literalmente, ¿qué es la cuenta bancaria? Haz lo que es un cardio. Y luego simplemente comienzas a construir las propiedades y funciones los atributos en acción al
igual que en un ser humano. Atributos tal vez ojos, altura ,
peso ,
piel ,
tono, funk en las funciones de los métodos serían Ah, correr, caminar, saltar, maldición. Ya sabes, lo que sea que quieras, así que atributos. Y así los jugadores deben tener un nombre. ¿ Verdad? Uh, ya
sabes, cuando cargas un juego como la fantasía final o algo que diga:
Oye, Oye, ¿cuál es tu nombre? Oh, valiente guerrero. Y, uh, por defecto, va a llamar jugador tiene sentido en nombre de bar va a ser una propiedad de computadora. Por supuesto. ¿ Por qué? Porque no vamos a manipular datos importantes directamente. Nos vamos a asegurar que nuestra clase se encargue de eso. Entonces vamos a seguir adelante y devolverle el nombre. Está bien. Esto para Texas nos mantiene a salvo. Alguna buena programación, uh, lógica ahí. Y ah, jugador también debe tener un inventario. Un enemigo probablemente no tenga inventario, pero un jugador sí. Cosas que has recogido en el camino ¿Estás empezando a ver el valor de la
programación orientada a objetos y la herencia? Estamos heredando cosas que son una placa aplicable a todo. Pero estamos agregando cosas que son específicas de esa clase. Y eso es importante porque no queremos duplicar el código una y otra vez en cada clase. Ya sabes, queremos que nuestro código esté bien escrito y probado y no nos aseguramos de que no esté roto. Y cuanto más código tenga que escribir, aquí hay un principio importante. Cuanto más código te acerques, más posibilidades de errores y errores. Y es por eso que el principio seco no te repitas es tan importante. Y como eso también es privado, es Ah, es una lista, ¿no? Una matriz. Vamos a hacer una,
uh, uh, una propiedad de computadora para eso juntos. También conocida como acceso, o aún accesorios y mutar, er's Pero conseguirla es mucho más fácil. Inventar
Ory, y eso va a ser de tipo string. Entonces una matriz de tipo string, y solo va a devolver inventario. Entonces no tan mal. Um, excepto que lo deletreé mal. Ahí vamos. Y ah, una cosa más. Necesitamos una inicializada ahora. Ya podríamos usar los padres inicializar er, pero creo que un jugador debería tener la capacidad de tener su nombre ingresado para poder decir conveniencia en ella. Y vamos a pasar en el nombre, de
acuerdo, acuerdo, las clases aparentes y tener un campo de nombre. Pero éste sí pasa en el HP y el poder de ataque, tal como se hace en la clase de padres. De acuerdo, así que aún capturaremos esos datos. Y entonces lo que haremos es diremos, uh, solo
diremos auto punto en él, y en realidad llamaremos No es auto completar para mí. Creo que esto puede ser algo veloz, pero tengo que caracter. Esto es lo que queremos. Aquí mismo, ¿verdad? por lo que sólo copiaré eso. No es auto completar. Desobedeciéndome. Eso Vamos y solo eliminemos este pasado esto aquí y en vez de
decir y diremos ,
um, um, HP porque vamos a agarrar este hp y aquí mismo vamos a decir Poder de ataque, poder de
ataque Porque vamos a agarrar este poder de ataque aquí mismo. Entonces lo vamos a pasar,
y lo último que tenemos que hacer es simplemente asignar los nombres, por lo que nombre es igual a nombre que significa que este nombre aquí mismo es igual a este nombre aquí mismo. De acuerdo, entonces nos está dando aire. Aguanta. A lo mejor hice algo travieso. No se puede invocar el punto jugador en él con esa lista de argumentos del mismo. Parece que mis argumentos pueden ser incorrectos. Vamos, uh sigamos adelante y echemos un vistazo aquí. Poder de Ataque. Es poder de ataque. A mí me parece bastante bien. No sé de qué está molesto. Vamos a volver a comprobarlo de nuevo. Entonces, arrancando poder de ataque HP. Um, me
parece bien, para ser honesto. Déjame, uh déjame salvarlo y construirlo y ver si aún me da ahí dentro. Ahora todavía me está dando un heredero. A ver qué está pasando. Kenna invocó jugador dot en él con una lista de argumentos de Dame los detalles completos aquí. Ahí vamos. Empezando HP e int y ah, ¡
ataque! Poder de tipo y ataque. Ataque de poder ahí. Esto debería ser bueno Estaba pasando aquí Parcial, Parcial, Parcialmente enumerado Dice, um bien, creo que sé lo que hicimos mal. Entonces nos olvidamos de heredar de,
Ah, Ah, el carácter del corazón. Por eso puedo encontrar no puedo encontrar el ah, estos Isar inicial aquí. Adelante y reconstruyamos esto. Vamos, nena, deshazte de ese rojo y está construyendo y se ve bien. Entonces lo que hicimos aquí fue recrear una conveniencia inicializar er significado Hey, vamos a añadir un campo extra aquí y va a llamar al otro Isar inicial, que se requiere. De acuerdo, Y entonces pongamos el nombre para conveniencia. Los láseres iniciales son ideales para las subclases cuando se quiere agregar campos que no necesariamente están en la clase padre. Pero aún puedes llamar a la clase padre y pasar los datos importantes que requiere. Por lo que ahora tenemos una clase de jugador. Tiene un inventario. Él o ella, y eso se ve muy bien. Ahora tenemos que hacer enemigo. Vayamos al archivo. ¿ Tienes razón? Haga clic en el archivo la carpeta allí y haga clic en Nuevo archivo y haré un archivo swift. Está bien. Y sigamos adelante y llamemos a este enemigo y no me haga clic en crear y hagamos
lo mismo aquí. Clase, enemigo ¿Y qué debe meterse en un enemigo? ¿ Qué? ¿ En qué hay de diferente enemigo? Bueno, um, y el enemigo en realidad puede tener botín. Entonces, ya
sabes, cuando matas a un enemigo y cae, ya
sabes, como, uh, calamar yo la cárcel, ya
sabes, te
da, como, tres de esos por alguna razón, pesar de que tenía un ojo no tiene sentido que los RPGs y eso hagamos botín hasta ahora, botín de tipo string. Está bien. Y esta es una, um, propiedad
computada, y sólo vamos a seguir adelante y regresar. Oxidada, daga
oxidada. ¿ Qué más sería como un botín por defecto? Uh, Buckler
agrietado. Correcto, Buckler. Ahí vamos. Eso es lo que suele bajar de los chicos de bajo nivel. Entonces esa es nuestra diluida que estará regresando. Y, um, veamos aquí. Ah, un enemigo probablemente pueda tener un tipo como ¿Qué clase de enemigo soy? Como un nombre como una Camara o, ya
sabes, un malvado rey lagarto. Entonces voy a guardar nuestra cadena tipo, Y podemos simplemente ponerla en un valor predeterminado por ahora porque creo que lo que vamos a hacer es vamos a tener algunas subclases más enemigas que anulen estas cosas y las sientan a diferentes valores. Entonces tenemos un tipo y como lo vamos a llamar, lo llamaremos,
eh, eh, gruñón. Ya sabes, es genérico. Esos tipos eran fáciles de matar. Es el valor por defecto. Y, uh bien, así que pensemos en esto por un segundo. Cuando un enemigo muere en nuestro juego, al
menos va a poder soltar botín. De acuerdo, así que hagámoslo. Hagamos una función llamada drop looped. Está bien. Y, uh, va a devolver cadena el nombre del botín. Y, um, ¿cuándo deberíamos dejar caer el botín? Bueno, sobre Lee, Si el enemigo está muerto bien, eso es sólo ganar. Entonces si no, es mucho. Um Oh, está bien. Otro problema. O sea, sí
heredó del personaje. ¿ En qué estoy pensando? Ahí vamos. Entonces ahora si decimos si no, es una mirada en vivo a eso. Estamos llamando a las clases de padres es una propiedad de la vida. Entonces si no está vivo,
Vale, Vale, entonces sigamos adelante y dejemos caer un botín al azar. Entonces Irán va a igualar, y diremos arco por uniforme aleatorio, y vamos a decir, um, déjame escribir esto Aquí, terminas. Vamos. Tú en 32. Ese es el tipo que requiere. Auto completo. Me estás matando. Ahí vamos. Y fue un recuento de puntos de laúd. Está bien. Y, uh, cierra eso. Se cerrará eso. Hablemos de lo que está pasando aquí. Seguramente eres, como camino. ¿ Qué pasaba? Ya he visto lo aleatorio, pero ¿qué más? OK, también lo eres por uniforme aleatorio. Requiere que pasaras en un tú a 32. De acuerdo, bueno, el recuento de nuestros elementos de matriz bien, es que nos devuelve un entero esa propiedad de conteo de puntos. Entonces, ¿qué? Lo único que estoy haciendo es decir,
Hey, Hey, quiero hacer un número aleatorio entre cero y la longitud de esta matriz para que podamos sacar de ella elementos
aleatorios. Y así, uh, esto devuelve un entero, así que primero tengo que convertirlo en una U N 32. Entonces eso es lo que es esto. Esto es casting fueron lanzando un entero en un tú en 32. Muy bien, lo
estamos lanzando en un entero o discúlpame en una U int, y luego estamos obteniendo el número aleatorio. Pero claro, este número aleatorio nos devuelve una u N 32 y, uh, sólo
queremos sólo queremos un indígena. Entonces lo volvemos a convertir en un entero para que podamos usarlo de nuevo. Vas a estar haciendo mucho casting,
básicamente, básicamente, solo piénsalo de esta manera. Cuando el swift está requiriendo cierto tipo de datos, posible que tenga que convertir su tipo de datos existente en ese tipo de datos, ya sea un doble a un ent o en un doble. Puede que estés haciendo eso que se llama casting, y vamos a devolver botín corrió. Entonces lo que va a hacer es que va a agarrar el número que sea este. Esto es en este caso, estaría entre cero y uno. Se va a agarrar botín cero o uno para que ese artículo fuera de él y va a devolver esa cuerda si están vivos. De lo contrario, acuerdo, lo contrario, no
devolvamos nada. Regresemos Neil. Y así si quiero regresar Neil, tengo que poner un signo de interrogación al final de esta reunión. Oye, esta función podría devolver algo, pero tal vez no. Y para que eso mantenga seguros nuestros abrigos. Nos impide hacer cosas traviesas, como conseguir botín cada vez. Eso sería un hackeo. Y no vamos a hacer eso. Vamos a serlo Vamos a ser jugador justo. Entonces tenemos un enemigo, y lo que también quiero hacer es crear dos subtipos de enemigos. Um, y esto es realmente sólo para demostrar los puntos de herencia de la
programación orientada a objetos . Entonces vamos a crear un nuevo enemigo y, uh, vamos adelante y creamos. Yo hice clic. Doy clic derecho en esto. Hice nuevo archivo. Fui al archivo fuente y swift. Y llamemos a esto Kim Mara. Está bien. Suena como un nombre de enemigo genial. Y, uh, para aquellos que fanáticos de la fantasía final, probablemente
te guste, Sí, conozco esa referencia. Y si no lo haces, está bien. Es un enemigo oscuro, y simplemente suena genial. Y va a heredar del enemigo. De acuerdo, Entonces el enemigo hereda del carácter y la clave. Mara heredar algún enemigo ¿sabías que podrías seguir heredando tanto como quieras. Eso es bastante guay. Podrías ir tan lejos por el hoyo del conejo como quieras. Entonces este es un personaje interesante. Entonces en su caso, acuerdo, lo que va a pasar es que tiene una inmunidad que significa cualquier ataque que entre, eso es, uh, menos de 15 o 15 o menos. No le hará ningún daño. Y no sólo
eso, sumará uno a su vida. Por lo que tienes que asegurarte de atacar a esta Camara con un personaje extra poderoso. Entonces lo que voy a hacer es crédito. Estimación constante llamada inmune Max. Significado Oye, si está bajo este inmune, no hagas nada. Si se acabó, entonces haremos el daño, ¿ acuerdo? Y la Camara? Es un enemigo más duro. El enemigo por defecto cosas como Daga Rusty y agrietado Buckler. Ese no es muy buen botín. Pero cuando matas a una Camara, va a dejar caer cosas mucho mejores. Entonces, ¿qué debemos hacer? Bueno, bastante
fácil. En lugar de reescribir código, en realidad
podemos anular la propiedad informática de botín de nuestra aparente clase. Entonces ahora estamos anulando esto, lo que significa que en cualquier momento que se acceda al saludo de Camara, no
va a dar estas cosas. Entonces cuando se llamaron estas funciones, pesar de que esta función está escrita en el enemigo a pesar de que estas funciones escritas en el enemigo, cada vez que se llame a esto cuando llamo a Camarda drop boot, no
va a devolver esto botín. Va a devolver este botín. Y eso, amigos
míos, es que el polimorfismo poder usar, uh, funciones
definidas de diferentes maneras y poder tener una clase de padres que defina esas funciones Cosas muy cool. Entonces en este caso, vamos a regresar Escondite duro. Um, que Mara veneno Muy bueno para sumergir tus lanzas y un tridente raro , Ya
sabes, uno de esos raros que brillan y oro y podrías venderlo por mucho dinero. Entonces tenemos algún botín diferente que va a hacer el mañana. Y, uh, voy a seguir adelante y anular también al tipo. Vamos a darle un nombre,
y, y, uh, sólo le
llamaremos llave Mara. Entonces de esa manera, cada vez que agarremos el tipo para imprimir a la pantalla, um, nos
va a dar la propiedad. Entonces anulamos el gruñido predeterminado, y ahora es Camara muy cool Ahora, ya que tenemos este código especial aquí. Siempre que te atacan, tiene
que ser mayor de 15. Probablemente necesitamos anular nuestro intento atacado, intento, código de
ataque y escribir alguna lógica diferente. Por lo que anula intento de funk, ataque. De acuerdo, ahora piensa en esto. ¿ Qué? Ya sabes, aparte de la lógica, vamos a estar anulando la disfunción, lo que significa aquí en personaje, esto nunca se llamará correcto, así que nunca perderá HP. Entonces, ¿cómo resolvemos eso? ¿ De verdad queremos reescribir este código? ¿ Y si esto fuera 50 líneas de código? Queremos reescribir todo eso y potencialmente tener errores. Y ahí está la respuesta, mi amigo es No, nosotros no. Lo que podemos dio es tu lógica. Si el poder de ataque está bien es mayor que o igual al inmune Max, entonces lo que haremos es regresar Super intento de ataque. Entonces en realidad vamos a llamar a la función de los padres pasando poder de ataque. Entonces vamos a llamar a la función de los padres aquí mismo. Este tipo de aquí. Entonces, ¿vamos a llamar a esto? ¿ Sabías que puedes llamar a funciones de un padre para que puedas anularlo para que lo tome, se llama primero, y luego puedes llamarlo tú mismo, que es lo que estamos haciendo aquí mismo. Entonces vamos a llamar, Y así si te atacan, daño es mayor de 15. Simplemente corriendo tan normal como como conductista por defecto. Y no tenemos que reescribir ningún abrigo de lo contrario devuelto. Falso significa que el ataque no tuvo éxito. De acuerdo, entonces estamos regresando la clase de padres aquí. De lo contrario, estamos regresando éste aquí mismo. Así que realmente genial. Acabamos de anular el intento de ataque. Tenemos un enemigo, y creo que necesitamos hacer un enemigo más,
y Ah, y entonces podemos empezar a escribir la lógica del juego. Entonces voy a subir aquí otra vez, el archivo nuevo archivo, archivo nuevo e ir al archivo source swift. Y llamemos a este mago del diablo. Está bien. A mí me gusta. Suena bastante guay. Diablo de clase. Mecheras mago erraron de tipo enemigo. De acuerdo, me gusta. A mí me gusta que vayamos con esto, y él no va a hacer demasiado diferente excepto tener su propio botín que queremos anular. Entonces voy a decir anular barra, tal vez su nombre para anular nuestro botín de tipo cuerda de cuerda. Ahí vamos. Está bien. Y se ve bien hasta ahora y nosotros regresamos algún botín único. Un mago
del diablo , por supuesto, tendría una varita mágica y una oscura anual porque es un mago del diablo. Y, uh, cerdo
salado. El diablo Wizards tiene que comer. Um, así que sí, Y luego, uh, anular var tipo string y,
uh, este retorno, este retorno, Devil Wizard, Este es el tipo a su nombre es Devil Wizard. Está bien, genial. Entonces lo que hemos hecho es que hemos definido el modelo para nuestra clase, y por ahora probablemente te estés preguntando Oye, espera un minuto. ¿ No dijiste que íbamos a hacer las cosas divertidas primero? Sí, lo olvidé. Hicimos el código en su lugar. Pero eso está bien. Nosotros sólo para encontrar el modelo. Y en realidad, a veces sí creo primero el modelo. De hecho, a veces antes incluso de crear una app, me digo a mí mismo, ¿qué datos voy a necesitar? Y dibujo las clases en las casitas sobre un trozo de papel. Qué tipo de características y propiedades y funciones y propiedades van a tener. Entonces ah, forma
muy común de diseñar tu programa es empezando con los datos. Por supuesto, podrías hacer las cosas divertidas que hacer. ¿ Sabes cómo se va a ver? Así que seguí adelante y haga clic en Guión principal aquí. Hagamos las cosas divertidas ahora, si te parece bien si no estás demasiado ofendido, entraremos enseguida y moveremos esto. Probablemente rápido especie del video y ya lo hiciste. Entonces Ah, tenemos este genial lienzo en blanco. Entonces sigamos adelante y tiremos sobre un fondo. Lo cual, por
supuesto, en nuestro caso va a ser una vista de imagen. Estoy escribiendo en la esquina inferior derecha aquí en nuestro objeto, nuestro objeto. De qué se llama Biblioteca de Objetos. Y vamos a seguir adelante y estirar esto a pantalla completa y voy a hacer que se vaya a la cima , despegue los márgenes porque queremos constreñir a todos los lados. Por lo que se estira y la imagen y el Eso es la clase. Vamos a dar clic a este tipo aquí y luego vamos a cambiar la imagen para ser G. Y eso se ve bastante bien. Pero sigamos adelante y hagamos sentir aspecto para que no lo estemos estirando. Onda, uh, se ve bien. Se ve realmente bien. Ahora sabemos que necesitamos poner el terreno para poder hacer eso. Ahora sólo vamos a hacer otro tú mi imagen de ti, aquí mismo. Lo arrastraré a la esquina, lo
arrastraré hacia un lado, y lo tiraremos hacia abajo y sigamos adelante y alfilaremos. Esto está bien para apagar los márgenes, izquierda abajo derecha. Y vamos a darle una altura de 67 sumar cuatro restricciones. Yo también voy a seleccionar la imagen
aquí . Terreno. Eso es algo genial. Parece que está estirado. Vamos a seguir adelante y aspecto sentir e um, no le gusta mucho. Um, vamos a tener que subir esto un poco. Wow. Es realmente grande. Um, ya
sabes, un poco demasiado alto para mi gusto. En realidad no. En realidad no sintiendo eso. Entonces lo que voy a hacer en realidad es que voy a tirar esto hacia arriba como, No, te
voy a tirar aquí, y sólo voy a arrastrarlo hacia abajo así fuera de la pantalla sólo para
que se vea más así . Ahí vamos, y voy a ir a mis restricciones sobre el gobernante. Aquí, haz clic en la regla mientras tu suelo está seleccionado y sigue adelante y solo despeguemos la altura solo para estar seguros. Uh, va a hacer lo que queramos. Vamos a despegar el espacio de fondo. Y ahora vamos a dar click al pin pero aquí y vamos a hacer Um uh, ver aquí. Sí, vamos a seguir adelante y fijarlo al fondo. Dice 74 es Es camino allá abajo. Está fuera. Está fuera de donde queremos que esté. Pero eso está bien. Yo quería lucir bien, y eso es lo importante. Voy a fijar una altura de 1 43 Vale. Y, uh, obviamente va a aparecer ahí arriba. Eso no es lo que queríamos Comandos. Déjame hacer clic en este comando Z para deshacer eso. Aquí, vamos a seguir adelante. ¿ Y sabes qué? Vamos a cambiarlo de nuevo a la imagen de estiramiento. No pierdo el tiempo con esto, Uh, muy listo. Um, podríamos hacer ajuste de aspecto, pero mira lo que está haciendo. Y tan bien, esto es lo que podríamos dio yo sé que va a ser Perfección está aquí, Entonces lo que realmente podemos hacer es asegurarnos de que las restricciones se hayan ido. Deshacernos del espacio trailing y líder. Y como este es en realidad el tamaño aquí con ajuste de aspecto, lo que podemos dio es simplemente reducirlo a una talla que nos gustó mucho, como esta de aquí. De acuerdo, Y luego qué? Podemos hacer es, uh, debilitarnos. Duplicarlo. Por lo que el comando G y yo podría moverlo tasa aquí. ¿ De acuerdo? Y entonces, um, ya
sabes, podemos sólo ah, en este tipo de aquí. Entonces lo gira a la izquierda y al fondo y le da un hecho de altura incluso te da este, Um, un con Ok. Y, ah, este tipo de aquí, sigamos adelante y hagamos lo mismo. Vamos a fijarlo aquí, y vamos a seguir adelante y darle un con y un alto también. Píngala al fondo. Y, uh, ahí vamos. Vamos a ver cómo se ve en modo bonito. No me preocupa mucho lidiar con esto. No quiero pasar mucho tiempo en la U. Creo que,
uh, uh, esto no fue por ti. Por qué, se trata de crear. Ah, se trata de crear. Ah, algún código orientado a objetos. Realmente hemos hecho esto un poco, tiempo de
Gillian, que puedas perfeccionarlo por tu cuenta. Eres feliz. Bienvenidos a hacer eso. Ahí vamos. Se ve bien. Así que OK, así previsualizaciones Se ve bien. Hagamos esto más grande aquí y pasemos esto. De acuerdo, así que tenemos el Tenemos el fondo, tenemos el terreno y, uh, ya
sabes, hay muchas maneras en que podríamos haber arreglado ese terreno. Podríamos haber puesto cosas a esos dos elementos en una vista de pila. Yo lo hice igualmente espacio. Hay un montón de formas de hacerlo, pero se ve bien en este momento. Recuerda, el resultado final es lo que nos importa aquí. Entonces ahora necesitamos a los personajes, personaje, uno y personaje para arrastrarlos. Aquí están imágenes, por lo que seleccionaré. Arrastré una imagen sobre él rebanando imagen por aquí y sigamos adelante y seleccionemos
jugadores de jugador en el lado izquierdo y absolutamente debes estar en forma de aspecto. Y ahí vamos. Vamos a hacer que estés ahí mismo, bajarte unos píxeles, luciendo realmente bien. De acuerdo, entonces él es bueno. Y vamos a darle sólo un ancho y una altura la forzará y luego me apagaré, limitaré los márgenes y diremos 14 de la izquierda y 82 de abajo está
bien Por ahora mismo, no
va a ningún lado excepto a donde queremos él. Maravilloso. Y vamos a seguir adelante y duplicar este jugador Comando D Seleccioné al jugador y sí
comandaba E. Y, uh, puede
que nos esté estrellando aquí. Y bastante seguro, Exco sí chocó conmigo. Y así vamos a esta vez dar click a nuestro pequeño jugador. Reabrí X Code, por cierto y click, Editar copiar y editar pegar. Ahí vamos. Haremos a la antigua manera y sigamos adelante y lo hagamos enemigo. Lo voy a arrastrar hasta aquí. Está flotando un poco del suelo. No me gusta eso. Ahí vamos. Se ve bonita mosca. Veamos qué atributos arrastrados para mis restricciones. Le dimos una dentro de una altura, lo cual está bien. Adelante y Pan am a la derecha. Apague los márgenes aquí y fíjelo al fondo. Y ahí está nuestro malo. Hay buen tipo que se ve bastante bien. Sólo tenemos que seguir adelante y poner una etiqueta aquí, ¿de acuerdo? Y así necesitamos una etiqueta y necesitábamos otra imagen. Tú por el fondo para el fondo del texto, ¿no? Entonces hagámoslo primero. Pon el fondo aquí y se llama Imprimir. Esto es lo que se llama. Nada. Nada único aquí, y cada va, tira todo el camino a través de la pantalla. Yo sí encaja de aspecto, por cierto, si no viste lo que hice aquí. Ajuste de aspecto. A mí me gusta que las palabras vayan. Yo lo quiero centro. Entonces voy a hacer clic en el menú de alineación, y estoy un siglo en el contenedor horizontalmente. Y luego voy a poner un con y una altura,
y voy a fijarlo desde la parte superior, que lo pondrá justo ahí justo bien. Está por encima de su cosita emplumada ahí. Entonces voy a mover esta capa todo el camino de vuelta por encima del suelo, pero la pequeña d detrás de los personajes. De acuerdo, Entonces, luciendo bien, En realidad
es un poco genial. Le suma un poco de profundidad, y vamos a necesitar una etiqueta. De acuerdo, Así que tú etiqueto aquí abajo, ¿de acuerdo? Y vamos a seguir adelante y arrastrarlo por todo el camino hasta los bordes. Aquí. Yo lo voy a centrar. Voy a cambiar el color a amarillo. Voy a cambiarlo a la costumbre. Y entonces Helvet
42. Introducción a la aplicación de iOS 9 App: Bienvenidos de nuevo, todos. Aquí estamos de nuevo juntos. Por fin, vamos a construir algo frickin pool en los próximos videos. Y aquí está el adelanto de la misma. Entonces sigamos adelante y corramos y lo tiraré hacia arriba en el arroyo. Nuestro pequeño Gholam aquí, todo solitario, quiere tener afecto. Way no lo logró a tiempo o podemos darle de comer. Es aleatorio. Ahí vamos. Uh, ten unos segundos vamos a darle de comer o a cuidar de ellos. Y si no lo hacemos? Ah, perdimos otra vida. Pobre pequeñito. Y entonces Sí, eso es bastante guay. Um, así que esa es la aplicación, y va a ser muy divertido. Vas a aprender muchas cosas,
¿de acuerdo? Vas a aprender sobre tocar arrastrar y soltar. Vas a aprender sobre animaciones, y tal vez te estés preguntando, Estamos usando kit Sprite? Porque realmente no lo esperaba. O tal vez no querías aprenderlo. Bueno, esto no tiene nada que ver con Spike ella. En realidad todos están haciendo esto en ti me gusta por completo. Y estamos utilizando prácticas profesionales de desarrollo del mundo real. De acuerdo, para hacer esto y ah, como? Ah, usando vistas e imágenes y objetos y clases y subclase ing te imagen. Usa todo tipo de cosas geniales que sean súper aplicables al mundo real. Y es mucha diversión. Consiguió efectos de sonido y todo tipo de cosas. Entonces solo quiero sacar un sitio web genial aquí donde me dieron algunos de los sonidos de Okay, aquí mismo en Ah eric skiff dot com forward slash movie music. Ha regalado su disco de forma gratuita a cualquiera que quiera usarlo alguna gran música de ocho bits . Estamos usando esto para el principal,
uh, uh, tema de la música del
juego y todos los demás efectos de sonido en realidad, son creados a partir de trabajos anteriores que he hecho, ya sea que le pagué a alguien o lo hice yo mismo para que puedas usar esos como desees. Esto es un oleaje. Y, um, lo siguiente que quiero mostrarte muy rápido, súbalo aquí mismo. Aquí está el arte de dibujos animados smart dot com para su último sprite. Subrayar bundle dot PHP cinco. Seguí adelante y compré esto yo mismo. Eran 40 dólares. No podrás usar este arte comercialmente, así que siéntete libre de usarlo para este tutorial. Pero si quieres lanzar una app a la tienda APP. Gana dinero con ello. Vas a necesitar comprar el paquete Super Sprite de esta página web. Aquí es lo que estamos usando en la app. Y así esa es nuestra app. Va a ser muy divertido. Vas a aprender muchas cosas y yo estoy emocionado. Salta a la derecha. Entonces sigamos adelante y lo hagámoslo.
43. Aplicación de iOS 9: mi pequeño monstruo parte 1: tienes que parar. No olvides tu espalda hambrienta. Dino, no
hagas que quieras hacerte más grande Tu bebé quiere jugar. Te sale efectivo de Sabrina la adolescente Yo tenía un tigre que no tienes por separado. Mira, no te olvides de tu mascota giga. ¿ Qué pasa, todos? Mark Price, Escucha con laderas sordas dot com Un paseo por carril de la memoria Para aquellos de ustedes que son tan viejos como yo Para aquellos de ustedes que son más jóvenes, probablemente nunca escucharon hablar de una Mascota Giga. Pero vamos a estar construyendo uno de todos modos y simplemente estamos bastante haciendo cool. Ya has visto el avance de cómo va a quedar. Entonces solo vamos a sumergirnos y empezar a construirlo. Así que adelante y ve a tu código ex por ahí en el lado derecho o en la parte inferior o donde decidas ponerlo. Y vamos a ir a presentar nuevo proyecto, acuerdo. Tirando aquí arriba, archivo nuevo proyecto. De acuerdo, vamos a hacer una aplicación de una sola vista y vamos a seguir adelante y llamarlo mi pequeño monstruo. O puedes llamar a la tuya como quieras. Ahora la nuestra no va a tener todas las características de una mascota giga. No haga clic. Crear. Ah, mal. Lugar equivocado para ponerlo arriba. Ponlo aquí en mis documentos, cada GOP. De acuerdo, así que cosas realmente geniales. Adelante y pongámonos boca abajo. No sé por qué siempre apagan eso por defecto, pero sí queremos universal porque queríamos trabajar en iPhone y iPad. Ahora, tal vez lo miraste y dijiste: ¿
Es esto un juego y mi va a estar aprendiendo? Spike it. Bueno, la respuesta es sí, es un juego. Pero no, no
se va a construir con Spike it. De hecho, todos los enfriadores y componentes estarán usando para construir. Esto, uh, viene de ti
, como así, como puedes ver ahí mismo. Y vamos a seguir adelante y hacer nuestra pantalla un poco más grande. Voy a manguear esto sólo porque no me gusta el código extra cuando no es necesario. Y me gusta deshacerme de los comentarios, así que sí, lo
estaremos construyendo a partir de ti. Yo bromeo controles estándar porque el punto aquí es que vamos a aprender principios que vas a usar en el trabajo todos los días. Y así vamos a construir este juego usando controles estándar de iPhone, lo cual es realmente genial. Y no hay nada de malo en eso en absoluto. De hecho, a veces Ah, Spike, es un poco exagerado para las cosas simples. Entonces esto es realmente genial. Entonces voy a ir aquí a la principal, no a storyboard. ¿ De acuerdo? Para hacer esto más grande aquí y otra vez, sólo
vamos a divertirnos como de costumbre y construir primero la interfaz. Entonces voy a hacer clic en la carpeta Activos, y tengo algunos activos que quiero traer. De acuerdo, lo
tiraré aquí, y algunos de ellos ya he exportado, y ah, está bien. Por lo que necesitamos un fondo. Arrastremos el fondo. Necesitamos algo de comida. Necesitamos un corazón. ¿ Qué más? ¿ Necesitamos? O el suelo? Sé genial. Y, oh, el cráneo. No olvides la escuela, Giga. Las mascotas pueden morir el panel de vidas y voy a agarrar una animación aquí. Ídolo 2123 y cuatro. Porque en breve estaremos usando esos. Entonces bien, tengo algunos gráficos y ah, vas a saber de dónde sacamos estas cosas. Y eso compré estos y tú eres libre de hacer lo mismo. Si quieres lanzar esto comercialmente, no
puedes usar estos gráficos o te metes en problemas. Pero debes comprarlo si quieres usarlo y ganar dinero con él. De acuerdo, entonces tenemos sus cosas y aquí está nuestro storyboard. Entonces lleguemos a ello. Voy a lanzar una imagen, Tú en la parte de atrás Aquí y otra vez estamos construyendo una mascota giga. Entonces ahí está. Tardó un minuto en cargar. Y así, ya
sabes, mascotas
giga pueden deletrearlo mal. U i u Me imaginé a cada chica, uh, mascotas de
Giga pueden, por
supuesto, ser alimentadas. Podrías hacer cosas diferentes de ellos. Puedes acariciarlos. En nuestro caso, nuestro pequeñito, va a querer comer o va a querer amor, cariño. Y si no le das a ninguno de esos, va a
haber un temporizador. Y si no se lo das en unos cinco segundos, o en cualquier momento que fijemos, va a perder una vida. Eventualmente. Si pierde las tres vidas,
va a morir. Y ah, así es como funciona el juego. Entonces ahí está nuestra vista de imagen y vamos a seguir adelante y fijarla sé que voy a necesitar dependiente porque va a necesitar ir en la, ah, esquina a esquina. Entonces apagemos los márgenes independientes a la izquierda, de arriba a abajo, a la derecha. Y no necesito establecer el ancho y la altura, por
supuesto, porque como lo he fijado a los bordes, significa
que se va a estirar y crecer a todo el tamaño del anuncio de pantalla por restricciones . Y sigamos adelante y cambiemos la imagen de aquí a BG para el fondo. Y se ve bastante bien. Pero dice escala para sentir, y nunca se puede confiar en eso, aunque se vea bien, porque estirará tus gráficos. Entonces queremos aspecto, Phil. Ahora bien, ¿por qué no elegiríamos el ajuste de aspecto? Bueno, si fuera un tamaño de pantalla realmente grande, uh o pequeño en contra, podría ser de cualquier tamaño de pantalla. Puede que no cubra toda la pantalla. Puede que solo cubra parte de ella, siempre y cuando todo quepa en el costado de la vista. Pero queremos que el nuestro se sienta como si fuera un fondo, y así hay un trasfondo y como que me gusta, y necesitamos un terreno ahora. Ahora bien, no
hemos usado ninguna pila. Úsalo porque realmente no creo que un uso de pila sea apropiado en este caso porque estas cosas estaban ancladas a los bordes de la pantalla y no están realmente apiladas. Entonces este va a ser nuestro terreno aquí. Voy a apagar de nuevo los márgenes y vamos a hacer izquierda abajo y derecha, Y sí necesitamos establecer una altura. Si no ponemos una altura aquí, aplastará nuestra imagen o la estirará. Por lo que sí necesitamos establecer una altura, y esto asegura que se mantenga igual. Y sigamos adelante y seleccionemos una imagen. El suelo se ve un poco bonito. A ver cómo se ve. Un aspecto Ah, si ve cómo en los bordes ahí, perdimos parte de él fuera de la pantalla. No queremos que eso es lo que queremos aspecto. Siéntete muy adelante. Está bien si lo corta siempre y cuando no estemos estirando ni aplastando su imagen. Porque sabes que eso es algo muy malo para Dio. Entonces me gusta. Se ve genial. Ahora, ¿qué más necesitamos? Tenemos que tirar un personaje aquí y también necesitamos el panel de la vida y necesitamos a los calaveritos para las muertes. Eso Vamos a seguir adelante y ponernos. Ponga esos también a. Y así aquí vamos. Adelante y hagamos el panel trasero. Esto se va a llamar panel Vidas. Por supuesto, se estira por defecto. En este caso, haremos ajuste de aspecto. ¿ Tiene sentido tener esta cosa cortada si necesita ser No necesita dedo del pie todo caber en la pantalla y ahí vamos y solo voy a mover esto hacia arriba, limpiar un poco aquí y se ve realmente bien. Voy a fijarlo Teoh la parte superior. Entonces cero desde el margen superior. Si lo apago, sería,
Ah, Ah, no en el margen. Entonces, um, eso se ve bien. Y sigamos adelante y mantengamos el ancho y la altura igual. Está bien. Más bien, fijemos esos a sus tamaños específicos. Es decir, y vamos a hacer clic aquí en el botón de alinear y alinearlo horizontalmente en el contenedor. Está bien, ahora
se ve bien. Normalmente, podría mirar esto en modo de vista previa, pero he hecho esto suficientes veces para saber que lo que he hecho es correcto. Va a funcionar. Entonces sigamos jugando aquí con él. Los vamos a ver. Mira el modo de vista previa en un minuto aquí, sigamos adelante y arrojemos las escuelas aquí arriba. Um, creo que son una imagen cuadrada, así que solo voy a seguir adelante y hacer clic en la regla y cambiar esto a un cuadrado. Digamos que 50 por 50 por ahora, podemos hacerlo más grande en tan solo un momento. Voy a dar clic a este tipo de aquí y cambiar la imagen a ah, escuela. Ahí lo tienes. Y otra vez para estar seguro, ajuste de
aspecto. No queremos cortar la escuela. Por lo que ningún aspecto se siente. Vamos a ver cómo se ve. ¿ Sabes qué? No está tan mal. Eso no está tan mal en absoluto. Adelante y hagamos algo de trabajo aquí sobre él primero antes de duplicarlo. Entonces démosle sólo un ancho y una altura. Eso no cambia porque nuestro panel trasero no va a cambiar, así que esto no necesita cambiar. De lo contrario, las cosas no se verán correctas. Voy a sumar restricciones y tú estás como, Espera un minuto, ¿por qué lo estamos fijando? Hazlo como centrarlo o algo así. Bueno, creo que lo que deberíamos hacer es probablemente usar una vista de pila. Entonces voy a seleccionar a este tipo y mantener pulsado el comando D y ah, arrastrarlo y luego volver a mandar d. Arrástrelo sobre. ¿ Y cómo hacemos una pila para ti otra vez? Aguanta, Comandante Shift. Oh, vamos. Ahí vamos y seleccionamos cada elemento y luego bajamos aquí hasta abajo y hacemos clic en este pequeño botón cuadrado con la flecha. Y ahora es una vista de pila. Y esto va a ser realmente agradable, porque no tenemos que centrar manualmente estas cosas. De acuerdo con el panel posterior, Podemos simplemente ponerlo aquí y distribución en el lado derecho de la vista de pila. Yo quiero sentirme igual. Y entonces pongamos un poco de espaciado entre cada uno. Probemos con seis. Oh, no
es suficiente. Ocho. Todavía es suficiente. Probemos 15 Acercándonos. Probemos 16. Haga clic fuera de él aquí para que pueda ver qué está pasando. Y ah, eso no está nada mal, En serio. Vamos a seguir adelante y haga clic en el panel de pila por aquí la vista de pila y haga clic en el panel de vidas ¿
Y cómo crees que deberíamos alinearlos? Estoy pensando que deberían estar alineados probablemente igual. Entonces esto es lo que tenemos. Lo mismo, en realidad. Entonces eso es interesante. Por lo que el panel posterior ya nos alineamos con la vista principal, por lo que no va a ningún lado. Entonces todo lo que tenemos que hacer, digamos, centros
horizontales y centros verticales, decir, Vamos a juntar estos dos átomos ¿Y tú? Te apilé con los calaveras en ella se alineará justo donde necesita estar en el panel. Creo que podría equivocarme. Vamos a comprobarlo. Voy a hacer clic en el botón de vista previa por aquí en el lado derecho y ah, eso no es una vista previa. Eso es código. Y ahí está la vista previa. ¿ Y sabes qué? Eso no está mal para el primer intento. Simplemente funcionó para nosotros. Um, es un poco genial, en realidad. Pantalla más grande. Se ve bastante bien. ¿ Qué opinas? Sí, está
bien. Muy bien. Entonces, ¿sabemos qué? Que vamos a necesitar dos imágenes. Uno que el corazón y otro que es comida. Porque a veces quiere comida. A veces quiere amor y afecto. Quién sabe por qué es sólo una roca Gholam. Nunca se sabe lo que están pensando. Entonces sigamos adelante. Y hay otra imagen Tú por aquí y creo que estas plazas aéreas también podría estar equivocada, pero solo para hacer un bonito y limpio lo haré 80 por 80 voy a dar clic al
inspector de atributos y cambiar la imagen al corazón. Y de nuevo, tal
vez pienses que se ve bien, pero te encaja de aspecto solo para estar seguro. Y sí notaste que está encogido un poco por los lados y con y,
uh, uh, eso se ve muy bien. Voy a mandar d. No tengo que pinchar en ella a veces. Ex entrenador toque sobre eso. Incluso si está seleccionado, saca un clic de él y vuelve a hacer clic en él. Entonces acabo de mandar d Teoh duplicarlo y ah, sigamos adelante y hagamos la comida ahí mismo. De acuerdo, el ajuste de
aspecto se ve bien. A lo mejor alguien si te preguntas, ¿por qué estamos haciendo las calaveras en lugar de las del corazón? Bueno, porque las escuelas son mucho más frías que los corazones y ah, yo estaba un poco vacilante. Incluso Teoh, ya
sabes, dale a este tipo amor y afecto. Estaba pensando que tal vez podrías deslizar para ganarle, ya
sabes, era malo o algo así. Pero, ya
sabes, video niños viendo. Hay que darle afecto a nuestro Golán aquí. Entonces sigamos adelante y,
um, um, averigüemos dónde vamos a poner estas cosas. De verdad no lo hago. No lo sé. A lo mejor. Oh, tal vez están ahí dentro. Entonces las ideas, en un momento dado, una de estas será desactivada, y luego la otra es la que tienes que darle al Gholam y al Dragón Marino sobre él, y luego se la come, y luego esta uno obtiene su afecto. Y si no haces esas cosas, claro, uh, consigues una escuela. Está bien. Uh, ¿crees que esto debería estar en un panel de pila? Sí. Alguien dijo que sí, yo estaría de acuerdo. Entonces haga clic en ambos de los que hay. Mantenga pulsado, cambie y haga clic en el botón del panel de pila en la parte inferior de la pantalla. Oh, mira lo amables que son. Ahora. Realmente me gustan estos paneles de pila porque ahora, por cierto, eso habría sido un dedo del pie de pesadilla como auto size y cosas estas cosas en el pasado. Pero ahora mismo, es bastante jodidamente genial. Um, así que sigamos adelante y pongamos el espaciado a voluntad. Diga 10. No, eso es ridículo. Digamos 30. Voy a conseguir un 50. El que vaya. ¿ Qué tal un 70? De verdad me está gustando este 100. ¿ De acuerdo? No. Y vamos a hacer algunas o cosas Voy a volver a hacer clic y vamos a seguir adelante y cambiar la distribución para sentirnos igualmente bien. Y luego cuando lo haces XYZ se mueven panel apilados justo ahí. Oye, mira eso. No está tan mal. No está mal en absoluto. Está bien, así que se ve bien. Adelante y ah, centralo en el contenedor haciendo clic en el icono de alineación y, uh, ahí está horizontalmente. Céntrela y se ve bien. Creo que me quité de ella. Mis elementos de menú desaparecieron. Volvamos a hacer clic en él. Y ahora haga clic en una línea Y ahí vamos horizontalmente en contenedor. Añada una restricción. Ahora, obviamente, no lo
hemos fijado en ningún otro lugar, así que va a subir y bajar. Nosotros lo queremos justo por ahí. Entonces sigamos adelante y fijémoslo al top 16. Digamos que 15. ¿ Es ese un número mejor? Por supuesto. Y así va a ir a 15 píxeles desde el panel escolar allá arriba. Agrega una restricción y está empezando a parecer bastante guay ahora. No se puede olvidar la estrella de nuestro espectáculo, nuestro pequeño monstruo, la roca va. Y así sigamos adelante y pongamos esta imagen. Tú aquí y no sé de qué talla es. Adelante y echemos un vistazo aquí. Creo que están fuera de tamaño porque animaciones y cosas eso solo vamos a seguir adelante. Y en primer lugar, renombrados estos voy a llamar a uno inactivo. ¿ Sientes que algo anda mal con ese ícono de ahí? Bueno, vuelve por ¿Tiene algún problema? Ídolo, también? Sólo estoy presionando Enter, por cierto,
Me gusta la vivienda renombrando esto Solo presionando. Entra al estándar, Mac, uh, en el comando para cambiar el nombre de algo a los tres y inactivo cuatro. Y tenemos cuatro imágenes porque cada una está haciendo algo diferente, y así es como vamos a hacer nuestra animación. Entonces, uh, volvamos al storyboard de punto principal y voy a seleccionar la vista de imagen, tomar la imagen aquí y seleccionar una inactiva. Ahora no se ve bien. Entonces hagamos ajuste de aspecto, y tú eres como, Bueno, él es un poco pequeño, ¿
no crees que fue un chiquito? ¿ Es una chica? Realmente grande en este momento, aunque luciendo bastante sentido y cool. En realidad no es malo. Él es Es cálido y borroso por dentro. Es solo
que, ya sabes, es como resultó. Y, ya
sabes, no
puedes juzgar por las apariencias y, ah, así que ahora mismo está ahí. No estoy seguro de lo que va a dar cuando yo me fije esto. Y así vamos a ver dónde va a ver cómo se ve ahora mismo sin hacer ningún anclaje . De acuerdo, entonces obviamente está haciendo lo que quiera en estas diferentes cepas. Es un gholam desobediente, así que necesitamos que Teoh lo encienda. Entonces solo les hago clic aquí, y me gusta donde está en la pantalla, en el lado izquierdo. Entonces vamos a ver si podemos conseguir que eso funcione ahí. Entonces lo voy a acaparar. Veamos 49 desde abajo. Eso está bien. Podemos simplemente pintarlo directamente al fondo aquí. De verdad no me importa si es si está arreglado. A pesar de que está flotando, eso es que no tiene sentido. Va a usar los poderes de levitación. Vamos. De acuerdo, entonces ahí vamos. A mí me gusta. Vamos a arrepentirnos ahora. 41 desde abajo. ¿ Y qué sabemos? Um, bueno, sabemos que ahora mismo tiene una buena altura. No estoy seguro si quiero cambiar sus alturas. Vamos a seguir adelante y que sea igual. Por lo que está anclado desde abajo. Ahora tiene la misma altura. Eso no posiciona los dictadores de izquierda a derecha, sin embargo. Y entonces lo que estoy pensando que podríamos Dio es simplemente dar click a la izquierda por aquí. Dice cero, pero eso es porque hay mucho espacio en blanco en esta imagen. Está vacío. No lo puedes ver, pero ve cómo esto ve cómo esta ah es parte de su imagen ahí mismo. Se alina justo en el margen. Lo que va a decir es, Hey, vamos a hacer que lo obliguen a estar al margen cada vez y lo obliguen a estar así y esconderse, y creo que eso debería mantenerlo donde necesita estar. Hay muchas maneras diferentes en las que podríamos haber hecho esto, pero creo, um, que es una acción, no del todo donde lo queremos. Y es por eso que la vista previa es importante porque no está haciendo lo que queríamos dio. Entonces volvamos a hacer clic en él y, ah, podemos hacer algunas cosas que podemos dejar que podamos dejar esa línea significada ahí y simplemente cambiar la constante en ella. Entonces si voy a liderar el espacio a super vista, digamos que digo que esto es 22 pasa Así que va por el camino equivocado Si hago 20 o como
acabo de hacer. Oh, sólo para digamos que Negativo 20 se está
moviendo, moviéndose un poco hacia donde lo queremos Y, uh, ya
sabes, está bien, Toe hacer este tipo de posicionamiento, ¿ En serio? Al final, solo
quieres que tu app se vea de la manera en que querías lucir. No hay nada de malo en poner estos números negativos aquí. Um, y, ya
sabes, nosotros es una especie de juego de todos modos. Sólo quiero cosas en ciertos puntos. Y, uh, me estoy empezando a gustar de verdad dónde está ahora mismo. Ahora probablemente estés pensando, ¿por qué? ¿ Por qué es eso, um, en estas pantallas? Está por aquí y en esta pantalla, Está por aquí. Bueno, en este caso específico, probablemente no tenga una buena respuesta para ti. A veces suceden cosas como esta. Tiene esta gran imagen aquí, y está clavado donde yo quería estar, Um, pero claramente lo está moviendo un poco de donde yo quería estar. Por lo que siempre puedes estar seguro de que puedes confiar en tu vista previa por aquí. Y eso es en última instancia, eso es en última instancia lo que más importa es tu adelanto. ¿ De acuerdo? Y, uh, estoy bien con ello. Yo estoy de acuerdo con ello. Como si estuviera justo aquí. No está tan mal. Y, ah, ten en cuenta que la imagen tiene mucho espacio en blanco. Es por la animación. No lo recorté ni nada. Yo quería mantenerlo igual que lo guardaban los diseñadores y artistas. Por lo que a veces es un desarrollador. Tienes que lidiar con cosas así. Este espacio extra en blanco Hasnat alineándose en la pantalla. Me está volviendo loco. Vas a tener que trabajar alrededor de los diseñadores algún día para resolver este tipo de problemas, como lo hicimos tan bien por mí. Por ahora, si quieres jugar con él por tu cuenta y hacerlo un poco más perfecto, eres bienvenido para hacerlo. Ya sabes cómo hacerlo, al
menos para jugar con las cosas. No está tan mal. Entonces lo está haciendo. Lo suyo es sentarse ahí flotando. A mí me gusta. A mí me gusta. A mí me encanta. De acuerdo, entonces se está juntando muy bien. Y entonces lo que quiero dio es Ah, en esta primera parte del video, solo
quiero que se anime. Ya sabes, eso le parece algo muy divertido a Dio. Entonces hagámoslo. Sigamos adelante y, ah, todos juntos solo
entraremos en nuestro controlador de vista y sabemos que es una vista de imagen. Está bien, así que diría que sería barra de Outlet Week y lo vamos a llamar una imagen de monstruo del tipo tú me imagino de ti. Ahí vamos, exclamación al final. Eso es lo que haces en estos. Yo soy puntos de venta, y eso se ve muy bien, ¿de acuerdo? Y entonces, ¿qué tenemos que hacer? Bueno, necesitamos conseguir esta imagen que animas y hay algunos comandos con la imagen tú
que podrías hacer para realmente animar la vista de imagen tiene funciones que te permiten dio
secuencias PNG o diferentes secuencias de imagen. En el caso de cualquier formato de archivo, creo para que puedas tener cosas viviendo y respirando en la pantalla, y eso es lo que vamos a hacer. So au Image View tiene una propiedad llamada imágenes de animación. Creo imágenes de animación, Airness. Y si miras ahí, está buscando es una matriz de tipo que imaginas y el trabajo de preguntas significa
que no tiene que haber algo aquí. No tienes que tener imágenes de animación, así que tienes que tener cuidado y trabajar con estas opciones. Eso es lo que es un signo de interrogación. Es un opcional. Tienes que tener cuidado con cómo trabajas con ellos porque puede causar bloqueos en tu programa. Y, ah, en realidad
es una característica de seguridad para ayudar a evitar que se produzcan choques. Para que sepas que podría estar vacío, por lo que puedes comprobar por eso. Por lo que imágenes de animación monstruo, quiere una matriz de ustedes me imaginas. De acuerdo, tu vista de imagen es una vista que hace cosas diferentes con imágenes, pero en realidad tiene dentro de ella un tú me imaginas otra clase que ah, um, real almacena la imagen misma. Entonces lo que tenemos que hacer es cargar nuestras imágenes de nuestros activos. Ahora, ¿qué? Podría hacer algo como esta imagen lejana uno igual, um acabas de ver un vislumbre de objetivo Ver, creo que imaginas y ah, lo
llamaremos, um o se llama la imagen? Ahí vamos. Y entonces podríamos decir, um, ya
sabes, yo creo que estaba inactivo que PNG Podríamos hacer esto y luego podríamos hacer esto. La imagen dos es igual a esto. Podríamos hacer eso. Y podríamos hacer eso cuatro veces diferentes. ¿ O son cinco tiempos diferentes? ¿ Cuántos teníamos? 41234 De acuerdo, entonces hay cuatro de esos ahí, ¿de acuerdo? Y, uh, podríamos hacer esto, pero probablemente estás pensando que no te repitas, hombre. Usa un bucle for. Y si eso es lo que estabas pensando bien para ti, porque eso es lo que tenemos que hacer. Entonces voy a crear un rayo temporal llamado imágenes, y va a ser una matriz de tipo tú imagen blanca. Tú. Yo imagino no tu imagen. Tú Vamos a hacer una matriz vacía de tipo que imaginas igual que la que vimos en el , um la ayuda emergente. Y por supuesto, nos
está dando la advertencia porque es como, Hey, ni siquiera
estás usando esto. ¿ Qué está pasando? Entonces lo vamos a usar, Entonces vamos a decir para var X igual a cero X es menor que enviar qué? Cuando sabemos que hay cuatro imágenes. Entonces, en realidad, ¿queremos hacer cero? Bueno, lo
mejor nos dimos un look de cuatro por sentado porque en realidad no queremos. Tú cero Queremos decir uno. Entonces X es igual a uno porque ese es el nombre de la imagen. Y entonces vamos a decir mientras X es menor o igual a cuatro x plus porque lo que queremos hacer es obtener el nombre real de la imagen. Porque cada imagen tiene un +1234 después de la palabra, derecha. Entonces si guardo nuestro soy G igual a ti, me imagino y le damos una imagen llamada Muy bien, así que recuerda cómo podría solo dio ya sabes, ídolo un punto PNG Probablemente estás pensando, Oh, yo soy creo que yo saber lo que pienso. Sé lo que Mark va a hacer aquí. Estoy aprendiendo en un código. Esto es tan guay. Bueno, echemos un vistazo. Si hago eso, recuerda, puedes insertar variables ahí dentro. Puedo poner a X que bastante cool. Entonces lo que va a hacer es que va a crear una nueva imagen. Va a encontrar uno llamado Idol x dot PNG y luego lo va a meter aquí. Eso es bastante guay. Um, eso es realmente genial, en realidad. Y ah, entonces lo que debilita Dio es sólo decir matriz de imagen upend añadió. De acuerdo, ahora esta imagen de aquí, esta imagen es opcional. OK, lo
que significa que puede o no tener valor en él, pero nuestra matriz está exigiendo algo que no es opcional Bueno, sé que estos sé que esto va a funcionar porque mis, um mis imágenes existen, OK? Y esto es algo que haces como programador en tiempo de compilación. Está bien, así que por ejemplo, podría poner y puedo poner un signo de exclamación aquí como programador ahora mismo, lo
que va a forzar que va a forzar desenvolver este dicho, sé que hay un valor aquí dentro, bien? Y va a forzarlo y envolverlo, pero puedo hacerlo como programador porque digamos que esto se estrelló. Lo que me va a estrellar probablemente en las pruebas porque no es encontrar las imágenes así es nada que un usuario haría como tus imágenes no eliminarían mágicamente de tu
paquete de código . Por lo que siempre y cuando consigas bien estas imágenes, puedes arreglarlo, modificarlo hasta que funcione, y puedes estar seguro de que ahí hay un valor. Esto es algo en lo que puedes confiar en este caso específico. No en todos los casos, pero ah, deberías poder captar esto en tiempo de compilar y nos trata porque no hemos modificado la imagen. Entonces sigamos adelante y lo volvamos a una constante. De acuerdo, empezaría primero con el bar y luego la cambiaría como me grita. Tiene sentido bastante fácil. Entonces tenemos imagen de Creighton y yo fui un pendiente al rojo. Entonces lo que hemos hecho es que hemos creado cuatro imágenes y la hemos puesto en la matriz para que podamos usarla en nuestra imagen tuya. Por lo que ahora puedo decir imagen de monstruo. Las imágenes de animación equivalen a imagen, ¿verdad? Entonces tenemos una matriz de imágenes y solo lo estamos configurando. Eso es todo lo que estamos haciendo. Lo siguiente es, cuánto tiempo debe reproducirse la animación antes de que repita los acabados de informe. Entonces llegamos a darle un tiempo y ah, imagen de
monstruo punto duración de animación. Está bien. Y pruebo esto antes, y 0.8 es un momento muy agradable. Muy bonito. Se puede jugar con él. Um, ya
sabes, probar las cosas, y luego conteo de repetición de animación. De acuerdo, ¿cuántas veces quieres repetir? Bueno, está ralentí, está respirando, y no queremos que deje de respirar. Cuando hay aire aquí, la historia es igual. Firma ahí. No queremos dejar de respirar, así que si lo pones a cero, significa
que lo va a hacer infinitamente. Y lo último que necesitamos dio es en realidad iniciar la imagen de monstruo de animación que inicia, empieza a animar. De acuerdo, ahora ya casi estamos listos para irnos. Lo único que necesito dio es conseguir que este tipo trabaje aquí mismo. ¿ De acuerdo? Este, uh,
um, um, outlet para que pueda dar clic en la vista previa son el asistente de editor. O sea, no la vista previa. Y ah, en este caso, sólo por diversión, realidad
podría seleccionar manual y seleccionar may storyboard, Y podría hacerlo en el lado derecho. Esta vez que estás haciendo ¿qué? ¿ Qué está pasando? En realidad, me gustaría saber que yo mismo, porque no está tirando hacia arriba. Estaba buscando la vista previa. Uh, usuario Murray, vamos, no seas así. Está bien, bueno, demuéstrame mal, colgado como, Ah, este tipo es un idiota. OK, así que hagámoslo de esta manera. Vamos a hacer clic en nuestro story board principal aquí y luego intentarlo de nuevo de la forma en que estamos acostumbrados a hacerlo. Y ahí vamos. Y, ah, vamos a nuestro, um, código. Dame el día y código área. Uh, vale, Así que aquí está nuestro monstruo justo aquí. Aquí está tu monstruo justo aquí. Vamos a seguir adelante y, um, arrástrelo así. Es un gran monstruo. Es hasta estas imágenes incluso cubriendo estas cosas. Um, está
bien, así que ahora está conectado. Y, ah, si todo corrió bien lo que había pasado está a la vista ¿Cargar, que sucederá en todos estos puntos de vista? Cargar. Empezará a animar. Nosotros cargamos las imágenes, y él sólo debería empezar a animar. Y si no funciona, lo
resolveremos juntos. De acuerdo, sigamos adelante y construyamos y ejecutámoslo. Aquí. Se está acercando. Ahí vamos. Ah, se ve bien. Ahora de nuevo, está un poco fuera de centro, pero realmente no me importa ahora mismo. Ya sabes, es algo que podemos retocar más tarde en algo que puedes retocar. A lo mejor es artístico Tal vez se ve bien, pero ¿qué opinas? Tenemos un personaje animado y así algunos principios que aprendiste antes de cerrar este video aquí es que aprendiste a trabajar contigo vistas de imágenes y tú imágenes y a utilizar una secuencia de imágenes y repetirlas en animación. Y eso es realmente poderoso. Se pueden hacer muchas cosas con eso. Hay un montón de imágenes animadas fuera en Internet, Así que si querías cargar spinners o lo que quieras, pesar de que yo era tiene su propio spinner de carga, podrías tener unos personalizados. Puedes hacer muchas cosas con estas imágenes animadas y solo por diversión. No sé cómo se va a ver. Vamos a rotarlo. Ya sabes, no está tan mal. En realidad no está tan mal. En realidad podríamos cambiar algunas cosas más adelante. Podríamos, como, mover la comida por aquí al lado derecho para el modo paisaje y hacerla más utilizable. Eso es bastante guay, en realidad. Se ve un poco más divertido en modo paisaje. Entonces ahí lo tienes. Fuimos adelante e hicimos algunas cosas realmente cool aquí fuera del bate y esto me va a conseguir un video más largo porque es una app más grande y ver una próxima vez.
44. Aplicación de iOS 9: mi pequeño monstruo parte 2: Señoras y señores, bienvenidos de nuevo para otro emocionante día de desarrollo, Mark Price aquí con regreso a casa. Y vamos a continuar nuestra mascota de Giga si recuerdas del show de ayer, si así es como lo estamos llamando ahora construimos un monstruo de rock gholam que oció. Y si sigo adelante y construyo y ejecuto
esto, me va a mostrar lo que hicimos. Aquí viene. Aquí viene. Y ahí está. Se está animando buscando justus. Bueno como lo dejamos, menos algunas características del paisaje que deberíamos cuidar Y creo que deberíamos ocuparnos de esos ahora mismo. ¿ Por qué no aprender un poco sobre las clases de tamaño de Iowa? Bueno, ¿qué es una clase de talla, dices? Bueno, estaré encantado de decirles que una clase de tamaño es una clase basada en clase es un sistema de restricción y
diseño basado en tamaño . Está bien. Lo que significa es que puedes establecer diferentes restricciones y diseños para diferentes pantallas de dispositivos . De acuerdo, entonces actualmente, note cómo todas las cosas que hemos configurado en nuestras restricciones se están aplicando aquí al fondo de la pantalla aquí. Dice cualquier cualquiera dentro de cualquier altura con la W en la H significa Así que lo que estamos diciendo es,
oye, oye, estas restricciones son las mismas para todos los tamaños de pantalla. OK, pero claro, en nuestro modo paisaje, el corazón y la comida que queremos del lado derecho y queremos esas cosas verticales. Ahora, cuando cambiemos tu clase de ciencias aquí, todas las restricciones existentes van a seguir igual. No se van a arruinar ni nada. Pero lo que sí quiero dio es que quiero seguir adelante y despegar este alineamiento en nuestra pila . Estás aquí. Se está centrando en el medio, y vamos a volver a poner esto. Pero por ahora, vamos a seguir adelante y deshacernos del alinear Centro X. Y también vamos a deshacernos del espacio superior al panel Vidas. Y te mostraré por qué vamos a seguir adelante y cambiar a dónde hacer clic en este botón
aquí abajo , ¿de acuerdo? Y vamos a cambiar a y te dirá que las diferentes clases de tamaño que estás apoyando con estas diferentes opciones aquí, vamos a cambiar a altura compacta con el regular con, Así que voy a hacer clic en eso y notaré cómo esto ahora y azul aquí abajo está. Oye, estás en una clase de talla. Ten cuidado con lo que estás haciendo, porque lo que hagas va a funcionar para ese tamaño de teléfono y nota cómo Aquí realmente
hizo que el lienzo de arte girara en, ah, modo
paisaje. Entonces esto se trata de lo que parece cuando teníamos en el paisaje. Entonces sigamos adelante y hagamos algunos cambios. Tengo el personal que seleccionaste. Voy a ir al lado derecho y vamos a dar click a este pequeño botón aquí mismo . Ver este signo más, voy a hacer clic en él, y voy a decir cualquiera con compacto apretado, la misma clase de tamaño en la que estamos. Voy a ponerlo justo ahí. Y así cualquiera con compacto apretado. Por lo que es un compacto apretado. Eso está bien. Entonces lo que queremos hacer es decir, en ese modo, hagámoslo vertical como, Wow, ya está funcionando. Eso no está tan mal. Ahora es bastante fácil. Observe cómo si trato de agarrar mi vista de pila, se agarra el Goldman dijo que eso es porque está frente a ella. Simplemente voy a mover la vista de pila frente a él, y luego me voy a Teoh y podría ser una ella. Perdón, no tratar de ser sesgo de género. Esto podría muy bien ser una roca femenina. Golam. Um, sí. Entonces vamos a moverlo por aquí, ¿de acuerdo? Y eso es genial. Está en el lado derecho, Así que sigamos adelante y pongámonos en el lado derecho. Cero. Ponlo a los márgenes ahí, y vamos a fijarlo a la parte superior es, bueno, ocho de arriba. mí me suena bien. Y hay una cosa más que quiero dio y ah, que es hacer que el espaciado sea un poco menos. Y así déjame criar mi pantalla Aquí está a la ligera. Vea cómo el espaciado es de 100. Sólo hagámoslo 50. Me gusta eso. Y, uh, algo. Deshacer eso, en realidad, Vamos a ponerlo, Vamos a poner una clase de tamaño en él cuando estés trabajando con vistas de pila. Tienen estos botones plus junto a ellos, que permiten establecer las clases de tamaño aquí mismo. Y, uh, ahora la razón por la que cambié la clasificación del tamaño aquí abajo está bien, es así que la pintura y la alineación se aplicarían a esa clase de tamaño específico. Por lo que por aquí podríamos haber hecho estas presiones más botones, incluso sin haber cambiado el segado aquí abajo. Pero como ya estamos aquí, hagámoslo. Y escucha, agrega una restricción de tamaño para este espaciado. Entonces vamos a decir cualquiera con compacto apretado que se ve realmente bien y ahora dirá 50 y notará cómo la altura no cambió en los de aquí. Porque esto está en modo retrato y vamos a rotarlo, Sólo a ver cómo se ve. Oye, mira así. Consiguió un adelanto de la vida real de cómo se va a ver. Obviamente, ese espaciado es ah, demasiado quieto. Oye, mira eso. Eso se ve bonita mosca. Si lo digo yo mismo, así que eso es bastante guay. A mí me gusta mucho, en realidad. Y ahora volvamos a nuestro regular. Vayamos a cualquiera en cualquiera, Vale, esto es sólo el diseño base Ahora. Ahora volvamos atrás y hagamos lo que hacíamos antes. Nosotros lo haremos. Tengo seleccionada la vista de pila. Lo fijaremos desde arriba por 16. En realidad, LSU 15 otra vez. Es mejor número. Pínsalo desde arriba y eso está bien. Y luego vamos a seguir adelante y horizontalmente y contenedor se centrará y está bien, nota cómo acaba de ir todo feo en una plata aquí, se estiró. Eso es porque nos olvidamos de realmente fijar un tamaño el con en, um, en nuestra clase de talla. Volvamos en realidad a nuestra clase de tamaño a nuestra altura compacta regular con aquí, y tengo la vista de pila seleccionada y en la vista de pila real, solo
voy a seguir adelante y establecer un con aquí en este modo en Lee. OK, y los cinco sesenta demasiado. Sé que son 96. Simplemente lo miraron. Por lo que establecí el con en 96 agregar la restricción. Ahí vamos ahora. Ahora se ve muy bonito. Ambos modos de pantalla se ven realmente bonitos y sigamos adelante y solo construyamos y ejecutamos esto para asegurarnos de que esté funcionando en la vida real. Y ahí está. Vamos a rotarlo y oh Dios mío, tenemos que arreglarlo. Creo que la razón por la que tenemos este problema es porque todavía tenemos a ese senador electo, Senador Online X por aquí por el lado derecho. Y como no lo hice ya que en realidad dijimos en cualquiera, realidad se
heredó en el con. Entonces arreglemos eso ahora. Vamos a hacer clic en él y eliminarlo. ¿ De acuerdo? Y lo que vamos realmente dio es ir a nuestra clase de talla aquí y vamos a cambiar de Teoh, creo que compacto con él dice para todos compactos con diseños 3.54 punto pulgada fuerza 0.7 pulgadas. Creo que esto es lo que queremos. Y por todo esto es para todos los iPhones y retrato. En realidad, esto es sólo para todos los iPhones y retrato. Esto es lo que queremos. Y así para todos los iPhones en Portrait. Ahora, queremos, um queremos tomar la pila si hace clic en ella, y queremos alinearla horizontalmente en el contenedor. De acuerdo, Ahora vamos a volver a ejecutarlo y a ver si eso solucionó nuestro problema. Entonces que el Centro X estaba aplicando a ambas rotaciones, y sólo queríamos que se aplicara al retrato. Y, uh hey, creo que estamos avanzando. Oye, mira eso. Lo hicimos realmente genial para que sus clases de tamaño, no está tan mal. Simplemente seleccionas una clase de tamaño y luego estableces las restricciones y ah, una cosa que aprendiste también y que me acaban de recordar es cuando tienes alguna en cualquiera que esté justo aquí. ¿ De acuerdo? Por todos los outs, si agregas restricciones que se lo va a agregar a todos ellos. Entonces si tienes que hacer algo como lo hicimos ahora mismo, donde necesitamos una posición, algo en un lugar en un modo y otro en otro modo. De acuerdo, Um ,
entonces Ah, tienes que establecer las restricciones específicas. Ahora, no
estoy seguro de que esto vaya a funcionar en el iPad todavía, porque hay más restricciones que tendremos que hacer. Pero hasta ahora en estos Ah, en aquí. Se ve realmente bien. Creo que se ve genial, en realidad. Y es importante hacer esto para tus partidarios de APS. Muchos tamaños de pantalla como puedas. Entonces eso se ve realmente genial. Estamos avanzando. Sigamos adelante y miremos nuestro código y veamos dónde estamos. De acuerdo, voy a cerrar el asistente de editor aquí, y no tenemos mucho que hacer aquí. Claramente, Um, está bien. Y así pensemos en lo que queremos hacer a continuación. Tenemos el corazón y tenemos la comida, y queremos poder arrastrarlos por ahí. De acuerdo, aquí está la cosa realmente genial arrastrando las cosas por ahí. Creo que eso será divertido. Um, es un iPhone, por
supuesto, en famoso por, um, innovador,
intimatante ábside
innovador,
intimatantedonde puedes arrastrar en contacto y deslizar cosas. Entonces hagámoslo. Entonces ahora mismo tenemos nuestra animación está pasando aquí. Eso está bien. Bueno, ¿qué? Probablemente necesitamos ver mi ser puntos de venta para la comida y para el corazón. Por lo que en I b outlet. Y tal vez ustedes se preguntan como, uh, ¿por qué escribieron tanto esta casa? ¿ No podías simplemente conectar las cosas bien desde el editor? Sí, eso es cierto. Llevo mucho tiempo codificando, y a veces es un dolor ir y venir. O a veces también es dedo del pie lento. Ten abierto tu constructor de interfaces. Puede comenzar a ralentizar su sistema porque su gráfica y, uh así trato de no tanto como sea posible tener la pantalla dividida abierta para
fines de demostración . Sí, pero realmente me gusta hacer las cosas así. Entonces sé exactamente lo que está pasando. Entonces imagen de monstruo, comida, imagen, tu vista de imagen, Ok. Y, uh, hacer otro son y dirá imagen de corazón. Tú. Yo imagen vista. De acuerdo, ahora hablemos de esto. ¿ Cómo hacemos algo movible? Bueno, una cosa que podemos dio es que Iowa proporciona thes clases de anulación agradables aquí, um, o clases que puedes anular llamadas toques. Empezó toques cancelados, toques en toques. Muévete. Si presioné entrar aquí. Uh, es una función. Y lo que sucederá es en cualquier momento que toque la pantalla, esto será tocado o esto se encenderá. Entonces si digo imprimir y digo que acabo de tocar la pantalla primera pestaña Vale, acabo de tocar. Eso es un poco incompleto y extraño. Acabo de tocar la pantalla. De acuerdo, sigamos adelante y construyamos y ejecutemos y veamos qué pasa. ¿ De acuerdo? Y sólo toquemos la pantalla para allá en el lado derecho en el cabildo. Estoy tocando la pantalla y está encendiendo eso, así que eso es realmente genial. Entonces cómo funciona en IOS es que hay algo llamado U respondo, Ok. Y lo que pasa es que cuando tocas la pantalla en el nivel muy alto, se la pasa a tu clase, son la clase de nivel superior, y esto es Hey, quieres
hacer cualquier cosa con este toque y luego baja a la siguiente. ¿ Quieres hacer algo con este grifo? ¿ Quieres hacer algo con este grifo todo el camino abajo por aquí donde es como un ¿ Quieres hacer algo con este grifo? Por lo que el grifo que en realidad están en la pantalla se reenvía de clase a clase, la clase clásica todo el camino hasta aquí. Y cuando digo cuatro para pensar, piensa en esto. Imagina, Ya
sabes cómo cuando tienes Ah,
um, um, una app para iPhone que tiene una vista en la barra de navegación en la parte superior donde tiene, como, el botón trasero trasero a la izquierda. O puedes entrar en una nueva pantalla, aparece en una nueva pantalla y puedes navegar bien, esos controles nuestros primero van a interceptar, y luego las pantallas debajo van a interceptar los controles. Y así que eso es realmente genial. Debilitar, debilitar, detectar toques. Podríamos mover las cosas, pero no queremos hacerlo aquí en este controlador de vista porque no estamos moviendo el
controlador de vista , acuerdo? Queremos hacer en la imagen misma, y podría escribir algún código complejo para manejarlo todo aquí en el controlador de vista, pero en realidad no tiene sentido. Y creo que hay una manera mucho más sencilla. Y eso es por sub clasificar, um, el ah que imaginas. Se debilita la subclase y hablamos de esto. Entonces esto es programación orientada a objetos 101 que vas a usar este tipo de cosas todo el tiempo. Adelante. Hacer un nuevo archivo. Nuevo archivo. Nuevo archivo Eso tiene sentido. IOS. Vamos a seguir adelante y haga clic en fuente y haga clic en Swift File. Haga clic en siguiente y sigamos adelante y llamemos a esta arrastrar imagen como en arrastrar cosas alrededor, No al otro tipo de arrastre, si eso es lo que estabas pensando, crear perfecta ahora importar fundación. Esa es la base. Clases rápidas, etcétera. Pero también necesitamos importar u pateo causa eso es lo que contiene información sobre ti. Te imagino y todo el control IOS así que te importo kit y luego todo lo que necesitamos hacer, digamos, clase drag image. Observe cómo de forma rápida el nombre del archivo no necesariamente corresponde con el nombre de la clase. Lo que hay dentro de él es más importante. Entonces clase y se va a extender desde tu vista de imagen. Lo que significa es que va a heredar toda tu imagen. Usa las características para que podamos usarlas. Y hay algunas cosas que tenemos que hacer para que esto funcione. Necesitamos anular dedo del pie algunos de inicializar er's, uh, si vas a usar una clase te gusta. Está bien. ¿ Alguna clase veloz es realmente? Um, requieren
algunas de las er de inicialización, ¿de acuerdo? Y así te va a obligar. Te va a obligar a usarlos, y eso es lo que vamos a hacer aquí mismo. Sólo estamos poniendo en el boilerplate inicializar er de que está requiriendo. Y luego tiene una inicialización requerida. Er, um, si quiere auto completo primero, eso estaría bien ahí hace. Codiciar un decodificador. Y esto va a ser super punto en ella. Y todo lo que hacemos es dejar pasar el, um vamos super en él y codificador. Y en el pasado, un decodificador. Todo lo que vamos a hacer es pasarlo, um, hasta el super super que hay en él. Entonces básicamente, tú mi imagen de ti tiene su propia er de inicialización y así lo estamos anulando y haciendo
lo nuestro . Pero también tenemos que llamar a uno de los padres, porque ah, tú Mi imagen de ti estaba haciendo cosas que necesitamos que haga. Y si no llamamos al padre inicializar er bien, vamos a tener problemas. Entonces esto se ve realmente bien. Esto se ve realmente bien, en realidad. Entonces sigamos adelante e implementemos algunos de esos métodos táctiles como comenzaron los toques. Está bien. ¿ Y qué más? No atraemos toques movidos. Siempre que te muevas, queremos mover el objeto y,
ah, ah, toques terminados. Necesitamos saber cuándo terminaron los objetos y la razón por la que necesitamos saber dónde terminó es Ah, porque cuando tú cuando te dejas caer la vista, Vale, um cuando sabes, si lo dejó caer en el carácter o no. Por lo que necesitamos que podamos detectar eso. Entonces eso se ve bien. Por lo que tenemos nuestras funciones de anulación que detectarán cuándo han comenzado los toques o se
han movido los toques o los toques han terminado y notamos cómo los hemos configurado en una imagen de U. Tú Lo que vamos a dio es en lugar de usar el regular you image view, vamos a usar estos estos esta drag image te veo tu imagen. Tú para que podamos escribir algunas cosas personalizadas. Entonces lo que vamos a dio es cuando comenzaron los toques. De acuerdo, necesitamos detectar dónde lo que necesitamos para almacenar, um, donde está la posición central. Entonces significando como, digamos que lo arrastro, pero no lo arrastro sobre el personaje. Necesitamos saber a qué posición devolver el objeto si no es un buen arrastre. Entonces lo que tenemos que hacer es crear un dedo del pie variable. Sostenga nuestro ah, punto de
inicio alguien guardar nuestra posición original de tipo C punto G. Está bien. Y nombrar tiene Nexen una y coordine. Eso es lo que es un punto c G. Está bien. Y así cuando comenzaron los toques, cada vez que empieza Vale, voy a decir posición original igual y ah, vamos a ver aquí. Quieres decir auto punto centro. De acuerdo, hablemos de esto aquí mismo. Así auto centro holandés. Entonces lo que estamos diciendo sí mismo cuando decimos yo estaba diciendo la vista de imagen. Consigamos su centro. Es X e Y Cordon. Si vas a mirar por aquí en el lado derecho centro es STG point y es es es su punto
central en el sistema de coordenadas Así que vamos a agarrar ese punto central ahí. Ahora. Yo no lo sabías, tal vez estás pensando. Bueno, ¿por qué no lo pusiste aquí en la función de inicialización? Bueno, el problema son estos métodos inicializados, ¿de acuerdo? Se llaman antes,
um, um, los diseños están dispuestos en la pantalla real, así que no podemos garantizar que el centro va a estar correcto Ella y tal vez Nolan pueda estar vacío . No podemos garantizarlo. Entonces lo que tenemos que hacer es ponerlo en algún lugar donde podamos garantizar que ya hay un centro, y no hay vista Lo cargó en un sobre una vista. De acuerdo, Así comenzaron los toques. Es un lugar bien para decir, Oye, cuanto hagas un toque, primero
vamos a ahorrar donde empezamos. ¿ De acuerdo? A mí me gusta. Ahora, hablemos de toques movidos. Está bien. Siempre que esto se llame, pasa en un conjunto. Está bien. Un conjunto de toques. Está bien. Set es una recopilación de datos, como una matriz o un diccionario, y nos está dando algunos toques. Y por supuesto, sólo
hemos hecho un toque. Entonces lo que voy a hacer, digamos, si dejar tocar igual toca eso primero. De acuerdo, ¿y qué? Lo que esto está haciendo es decir agarrar tocar el agarrar. El primer objeto en el conjunto de toques. Entonces este es el set solo estaban diciendo Agarra el primer objeto fuera de él. Eso es todo lo que estamos haciendo y no está garantizado. Si miras por aquí, hay un signo de interrogación al final de los medios, podría ser opcional. Entonces de nuevo, estamos haciendo el If Let's in tax estaban diciendo, si esto existe, entonces vamos a usarlo aquí. Esto es bueno. ¿ Qué va a prevenir los choques mediante el uso de estos? Si vamos bien. Y por supuesto, cuando lo haces un let se vuelve inmutable, no
puedes cambiarlo. Entonces si entramos aquí, sabemos que estamos a salvo. De acuerdo, Entonces lo que vamos a decir es, dejar que la posición sea igual, tocó la ubicación a la vista, auto super vista. De acuerdo, algunas cosas más de las que hablar. Entonces estamos agarrando una posición. Entonces y estamos diciendo touch, dot location y view. Entonces lo que estamos haciendo es decir,
Hey, agarra, agarra la posición de la mirada Grabill una posición o la ubicación en la vista. De acuerdo, entonces y luego eliges la vista que quieres, Así que estamos diciendo, Oye, quiero saber dónde están la posición las coordenadas X e Y de este toque en la super vista, el vista que tiene nuestro gholam y que tiene la U. Y y esas cosas. Lo que estamos diciendo es que queremos saber dónde está esa posición, dónde se tocaron ellos o su dedo. Consigamos esa ubicación ahí mismo. ¿ De acuerdo? Y ah, entonces lo que vamos a hacer es decir auto punto centro es igual a C punto G. Hacer posición punto Exe y posición punto y. bien, así que estás diciendo Vamos a agarrar el primer toque, Vamos a obtener su posición y su vista padre. Veamos dónde los usuarios tocaron el dedo sobre el en la vista por encima de él. Y entonces todo lo que necesitamos hacer es mover nuestro centro siendo la imagen. Se mueve nuestro centro a esta nueva posición y CG Point hacer. Crea un punto CD. OK, eso es lo que hace. Crea un CD. Los puntos estaban creando uno a partir de la coordenada de Posiciones X y la amplia
coordenada de la posición . En esencia, lo que esto está diciendo es, dondequiera que tus dedos arrastren, sigamos adelante y movamos el objeto, ¿de acuerdo? Y esto puede funcionar justo fuera de la caja. Mamá es una cosa más que necesitamos dio, creo Dos cosas, en realidad. Entonces ahora estamos usando una clase personalizada. Lo que tenemos que hacer es ir a nuestro storyboard de puntos principales. Haga clic en su corazón. Está bien. Y por aquí en el lado derecho, hay esta cajita aquí en la que realmente no hemos hecho clic todavía. Es el inspector de identidad. De acuerdo, haz clic en él. Y por defecto a ti imagen de ti. Pero sabemos que hemos creado una subclase ahora llamada drag image. Y mira, sólo
va a poner artículos aquí que en realidad funcionarán para este objeto y así arrastrar imagen . Es necesario seleccionar eso. Tenemos que decirle a este objeto que Hey, eres la clase personalizada, no la clase predeterminada. Y yo haría lo mismo con la comida, la cambiaría para arrastrar imagen, y luego voy a dar clic aquí en el editor asistente y vamos a seguir adelante y mirar nuestro código . Um, en realidad, quería a alguien cuando quería codificar Por aquí. Aquí vamos. Um Está bien, así que vamos a ver. En realidad, eso no es lo que quiero. Yo quiero esto aquí mismo, y quiero mi código aquí mismo. Ahí vas. Trabaja mágicamente para nosotros. Mira, él juega con suficientes cosas y las cosas funcionan mágicamente. De acuerdo, así que nota cómo tenemos una imagen de comida y una imagen de corazón Necesitamos cambiar. Estos aquí está bien, también, ya que una imagen de arrastre y arrastre. De acuerdo, tenemos que ponerlos a la clase personalizada, y no necesito hacer es hacer clic en esto y arrástrelo a la comida y haga clic en esto y
arrástrelo hasta el corazón. Ahora bien, si esto funcionara, lo que debería pasar es que deberíamos poder arrastrar estos elementos a cualquier parte de la pantalla. Entonces sigamos adelante y veamos si funcionó. Momento de verdad y no está funcionando. Y creo que sé por qué. De forma predeterminada, uso de la imagen no habilita la interacción del usuario. Entonces vamos a detenerlo. Bueno y haga clic en su corazón y en el lado derecho para hacer clic en este icono por aquí, el inspector de atributos y activar la interacción del usuario habilitada y hacer lo mismo para la interacción del usuario de
alimentos habilitada. Vamos a seguir adelante y a correr de nuevo. El nuevo momento de la verdad. Oh, mira eso. Está rodando por todo lo que está tan feliz. Mm. Por lo que se mueve. Eso es super cool. Um, empieza a dejarnos volver a hacerlo, como puedes decir. Pero eso está bien por ahora mismo. Y Ah, bastante guay, ¿eh? Y creo que sé por qué. No nos está dejando rodar. Es porque creo,
um, um, esto sus imágenes en el camino aquí. Entonces creo que eso es lo que está pasando. Está bien, muy guay. Entonces lo que tenemos que hacer ahora es, digamos, que un usuario lo suelte y no lo suelte al monstruo. Tenemos que restablecer a dónde va. Entonces hagámoslo. Vayamos a nuestra imagen de arrastre. Subclase aquí y en toques terminó. Vamos a tener que escribir algún código único. Entonces digamos que si dejamos tocar, ir a lo mismo, agarraría el toque, igual a toques. Si deja tocar, igual toca eso primero, ¿de acuerdo? Y ah, eso se ve bien. Lo que podemos hacer es decir, um en realidad, no termines. Ni siquiera sé si necesitamos hacer algo de esto ahora mismo. Es solo que hagamos una prueba rápida para asegurarnos de que podríamos enviarlo de vuelta a donde necesita ir auto. Ese centro es igual a posición original, por lo que guardamos esa posición regional. Digamos que cada vez que te sueltas, se remonta a donde empezamos. Esto se ejecuta esa prueba primero yo estaba probando de manera incremental porque te permite saber cuando algo está funcionando con algo que no está funcionando versus escribir mucho código y preguntándome dónde está tu problema. Entonces estoy dando click. Soy juego seco. A mí me alegra arrastrar aquí y dejarlo ir. ¿ Funcionó? Esa es la cuestión del día. Creo que la respuesta es definitivamente un Sí,
sí funcionó. Ahora, por
supuesto, la siguiente característica es cuando la arrastramos aquí, sabes, ya
sabes,
o lo alimenta o le da salud. ¿ De acuerdo? Y creo que deberíamos escribir alguna lógica para eso. En primer lugar, sin embargo, antes de empezar a hacer desaparecer estas cosas. Por lo que nos vemos tan bien hasta ahora. Creo que deberíamos llamar a eso un rap por el video número dos. Aquí tomamos un descanso ponernos al día y luego pasaremos a la ranura número tres. Gracias por acompañarnos hoy y nos vemos muy pronto.
45. Aplicación de iOS 9: mi pequeño monstruo parte 3: Hey, todos, Mark Price aquí con Dev pistas dot com Y aquí estamos juntos para el final de My Little Monster, Part Three y echemos un vistazo a lo que ya hemos hecho previamente en My Little Monster Ahí está nuestro código. Vamos a ejecutar la app, tirarla aquí arriba y ahí está nuestro feliz Golam. Es feliz y el corazón lo puedes arrastrar y puedes arrastrar la comida, y eso es todo lo que ha pasado. Sí conseguimos las clases de tamaño en su lugar, lo cual es super cool. Estás aprendiendo cosas que otras clases ni siquiera enseñan, lo cual es realmente genial. Conozco a muchos desarrolladores avanzados de IOS que ni siquiera saben hacer esto. Entonces estás por delante del juego y él está animando, y eso es todo. Tenemos algunos tú yo en su lugar y ah, eso es lo que tenemos. Entonces vamos a terminar esto. Hagamos que suceda algo de magia. Vamos a darles vida. Entonces pensemos en lo que queremos hacer. Bueno, primer lugar, tenemos animaciones corriendo dentro de nuestra revisión sí cargó. Ese no es un buen lugar. Estoy sintiendo que un código olía algo malo aquí, y se parece a mi código porque esto no es reutilizable. ¿ Qué pasa si muere? Si quiero volver a reproducir la animación Así que quiero una copia y pega código. No, claro que no. Y así creo que nuestro monstruo merece su propia subclase. OK, ya
hablamos de clases. Esto no es gran cosa. Vamos a seguir adelante y hacer clic en el monstruo en la parte superior izquierda por ahí, Esa carpeta mi pequeño monstruo Y vamos a nuevo archivo y voy a hacer clic en fuente, aparecer en la sección Iowa y hacer clic en Archivo Swift Y voy a llamar a este monstruo. Yo soy G que significa imagen de monstruo. Ahora sabemos que si queremos una imagen au de subclase, tenemos que importarte, igual
, , De lo contrario no lo hará. Swift no sabrá lo que estamos haciendo. Entonces voy a decir monstruo de clase soy g hereda de ti. Yo imagen vista. Impresionante. Entonces aquí está nuestra clase y se ve bonita. Entonces lo que primero necesitamos hacer es crear nuestros er's de inicialización aquí. Yo sólo voy a anular el predeterminado inicializar er frame CG naufragado y se va a decir super punto en él, vamos a llamar al Super One. Solo estamos poniendo estos aquí para satisfacer los problemas potenciales que nos va a dar. Le gusta tener estos inicializar eer's aquí. Entonces vamos a poner requerido en ella. Este realmente se requiere. Se trata de Coder a Deke Co. Vamos. Es que quería auto completarme, escribir esta cosa en lo que hace presionar entrar bondad bien bien. Y vamos a llamar a super punto en él y vamos a llamar uno al codificador, y vamos a volver a pasar un decodificador. Estamos poco más de subiendo inicializar er's y llamando al super uno. Entonces todo funciona como esperábamos porque necesitamos a Teoh. Necesitamos inicializar el código aquí. Y así si no tuviéramos estos aquí, no
podríamos hacer alguna inicialización,
y, uh, uh, aún no
hemos escrito el código para eso, Pero eso está bien, así que pensemos en qué queremos hacer ahora mismo. Eso dijimos. Oye, ¿por qué estamos animando la imagen entrevistada? Una carga que no parece el mejor lugar para tal vez los monstruos deberían estar
animándose , y creo que debería. Entonces lo que voy a hacer es resaltar todo esto y Comando X para cortarlo, y luego vamos a pasar a nuestros meses o imagen. Y voy a crear una función cuando llames a este funk play Idol Animation. Eso parece un gran nombre y un gran lugar para poner esto. Ahora también tenemos una animación de muerte que tenemos que cuidar a Y ah, Así que primero, vamos a hacer que esto funcione y luego entraremos en el de la muerte. Tan imagen de monstruo. Entonces ahora no estamos haciendo referencia a la imagen. Nosotros somos la imagen de la mente soplada. De acuerdo, Así que tenemos que hacer en lugar de sí mismo. De acuerdo, Porque recuerda, de nuestras anteriores conferencias ¿quién da clases? Eso suena aburrido. Nuestros videos impresionantes y
emocionantes anteriores . Heredamos cosas. Y así queremos llamarnos a sí mismo para agarrar esas cosas. Por lo que sabemos que imaginas. Tienes todas estas propiedades, por lo que solo necesitamos llamar a auto para poder utilizarlas. De acuerdo, Conferencias. Oh, Dios
mío,
chicos, chicos, deténganme ahora. Estas no son conferencias. Y si empiezan a sonar como conferencias, alguien me dispare. De acuerdo, así que sigamos adelante y ah, hacer jugar animación de la muerte. Me refiero a la derecha. Ustedes han estado en grandes campus universitarios. Te sientas ahí con 100 estudiantes y a los profesores les gusta la historia fuera de América al igual que, Oh, Dios
mío. Y simplemente ni siquiera vas a la clase. Tienes a alguien que tome notas por ti, y luego solo estudias por tu cuenta y pasas la clase de todos modos, sistemas
universitarios, un
poco rotos. Está bien, juega a la muerte. Y lo que queremos dio es ¿Ya tenemos aquí las animaciones de muerte? Tenemos el ídolo. No tenemos las animaciones de muerte, y creo que queremos agarrar esas. Entonces voy a seguir adelante y encontrarlo aquí. Mi sistema de archivos. Y aquí ya están pre preparados para que nos vayamos. Listo para ir por nosotros. Muerto. Un muerto, dos muertos, tres muertos por y muertos cinco, estos aire cinco fotogramas para la animación. Y solo voy a dar clic y arrastrarlos hasta aquí. De acuerdo, a mí me
parece bien, y volveremos a la imagen de monstruo. Y en
realidad, es algo así aquí. Para ser honestos ahora, probablemente
podríamos crear una forma un poco más elegante en lugar de copiar y pegar. A lo mejor me miras como ¿De verdad te dan una copia y pegan. Vas a ser un hipócrita y romper el principio seco. Bueno, las cosas van a cambiar un poco. Um, lo
mejor no tiene mucho sentido cambiar. Probablemente podrías descifrar de alguna manera, pero sabemos que hay cinco imágenes, así que voy a cambiar eso. Y sé que se llama muerto, creo. No la muerte, ¿verdad? Sí. Muerto ahí uno muerto. Cinco. Eso está bien. Y,
um, um, animación Repetir conteo. Queríamos jugar una vez. No queremos que sea infinito. ¿ Y qué más realmente necesitamos aquí? Está bien, esto se ve bien, pero pensémoslo aquí. Si yo y estos ustedes imágenes vistas, tienen ah, imagen
por defecto. Correcto. Entonces si mi animación se detiene, ¿qué imagen va a mostrar? Probablemente necesitamos establecer eso aquí en la animación de la muerte, porque no quisiéramos que el dedo del pie y la animación se completaran y que él volviera a enmarcar uno donde todavía está parado. Entonces lo que voy a hacer es establecer aquí una imagen por defecto. Diga imagen auto punto. Está bien. Mi imagen predeterminada te iguala. Me imagino llamado, y sólo vamos a llamar a este muerto cinco. Por lo que la imagen por defecto aquí, cuando se realizan las animaciones, es el último fotograma. Para que así se quede muerto, OK, no
queremos mágicamente pop de nuevo al primer fotograma. Y entonces también, voy a decir
yo mismo que las imágenes de animación, animación, animación de imágenes equivalen a Neil. Voy a vaciar eso. Piénsalo. Si quería reiniciar mi juego, ¿de acuerdo? Y yo y yo teníamos estas imágenes de animación, no
quiero que se intercambien con la muerte y un ídolo. Ahora, nuevo, estamos reasignando aquí, que tipo de hace algo similar. Pero piensa en esto. Si tuviera imágenes de animación, estaba lleno de, ya
sabes, las animaciones ociosas, ya
sabes, sería un pendiente, ya
sabes, imágenes a podría ser potencialmente un imágenes pendientes solo podrían darnos resultados inesperados. Está bien aclarar las cosas. Adelante y tira a Neil ahí dentro. Eso vaciará todo. OK, eso está bien. Por lo que imágenes de animación. Esto se ve realmente bien para la muerte. Vamos a seguir adelante y hacer algo similar para nuestra animación ídolo. De acuerdo, vamos a establecer una imagen por defecto. Entonces tenemos una imagen base cuando no es animadora. Y, uh, tú, cuando juegas con estas cosas estabas simplemente o simplemente siendo extra seguro aquí Cuando juegas con estas cosas, encontrarás estos matices. A lo mejor, como necesito cambiar eso. Y así es como lo haces. De acuerdo, entonces arreglas esos pequeños problemas aquí y allá y nos diremos que
las imágenes de animación son iguales a arrodillarse otra vez. A lo mejor podríamos re factorizar esto a B'more reutilizable, tal vez crear una función y pasar el tipo de animación y cosas así. Pero es un poco más de trabajo del que creo que vale la pena el esfuerzo en este momento. Entonces ahí vamos. Tenemos a las animaciones aquí. Y qué tal lo que hacemos es simplemente seguir adelante y ah adelante y esta inicialización dirá jugar animaciones ociosas. Entonces cuando la APP se cargue por primera vez, juguemos la animación del ídolo y empecemos eso, ¿de acuerdo? Y volveremos a la muerte más tarde y probaremos y veremos si funciona. Um, pero primero, no va a funcionar para nosotros todavía. Si volvemos a nuestro controlador de vista, observa cómo nuestra imagen de monstruo es de tipo tú y vista de imagen, pero ya no queremos que sea de tipo. Te imaginas. Queremos que sea de tipo monstruo imagen. Entonces, ¿cuándo cambió eso? ¿ Aquí a imagen de monstruo? Esa es la clase que queremos usar. Y luego sigamos adelante y entramos en tu storyboard de puntos principales. Hay una cosa más que necesitamos dio click tu Abrimos esto aquí arriba. No desaparezcan. Vamos a hacer clic en tus zonas de monstruos seleccionadas y lo que vas a hacer es ir por aquí a esta pequeña caja cuadrada en el lado derecho llamada Mostrar el Inspector de Identidad. Haga clic en él y observe cómo la clase es usted. Yo imagen vista. Eso no es lo que queremos. Tenemos que cambiarlo a imagen de monstruo y notar aquí que solo nos permite escoger clases que sean aceptables en clases de Onley que heredan de tu imagen. Tú porque eso es lo que ISS. Y así nos deja recogerlo. Y ahora todos estamos conectados y listos para salir. Entonces si todo funcionaba correctamente solía no ver ningún cambio, solo debería tenerlo animando desde el principio. Acabo de seguir adelante y hacer clic en el botón de correr en la parte superior izquierda por aquí. De acuerdo, Build tuvo éxito. Vamos a tirarlo aquí y él está animando. Parece que está ralentí. Está repitiendo Todo es igual, lo cual es bueno. Significa que nuestro código no está roto. ¿ Qué ojos? Bien. Ahora, podrías haber seguido asumiendo que era bueno. A mí me gusta probar tantas cosas como sea posible. E incluso probaría ahora mismo la animación de la muerte, sin embargo, tendríamos que escribir código personalizado que luego tiraríamos para probar eso para obtener esa advertencia porque tenemos que llamarla y ah, no
quiero lidiar con eso ahora mismo. Entonces tenemos eso trabajando para nosotros. Por lo que las animaciones se airean en esta luciendo bien. Entonces lo siguiente de lo que queremos hablar es arrastrar esas imágenes. ¿ Recuerdas cómo creamos esta clase drag image? Podrías moverlos por ahí, y luego cuando lo dejaste caer, lo volvió a poner a la posición original. Pero, ¿qué queremos realmente que suceda cuando lo que queremos que suceda es cuando
lo dejas caer en el lugar correcto, que hace algún tipo de evento? Está bien, vamos a dejar que alguien sepa que Hey, se
le cayó al personaje. Haz algo con él. De acuerdo, entonces creo que necesitamos escribir algunas modificaciones a nuestro código para que esto funcione. Entonces lo que queremos hacer es cuando creamos una de estas imágenes de arrastre en el código, queremos pasar en el objetivo como, Hey, estás arrastrando esto. Y si está por encima de este objetivo, hagamos algo. Entonces hagámoslo. Ahora Salvemos nuestro objetivo de caída. Vamos a hacer esto de tipo que vives. Te acuerdas como dije todos los controles, como botones y todas esas cosas e imágenes que todos heredan de ti, veo. Entonces, en realidad solo estoy poniendo aquí una clase base. Sé que es una imagen, ¿verdad? Sé que es una imagen, ¿de acuerdo? Y eso
también funcionaría . Pero imagina si quisiéramos reutilizar esta clase, esta clase de imagen de arrastre. Y si lo dejas caer sobre un botón o una vista, hace
lo mismo. ¿ Por qué limitarse a justificar imágenes? Este es un pensamiento inteligente. Esto es Esto es pensar para el futuro, que es lo que objeto o programación innata se trata todo de pensar para el futuro. Entonces la idea es cuando lo dejas caer y dejas ir los toques terminaron. Ya vemos si lo dejó caer encima de la vista objetivo. De acuerdo, Entonces si dejamos caer la comida o el corazón encima del personaje, eso es lo que queremos comprobar. Entonces, ¿qué sabemos hasta ahora? Estamos agarrando el toque o agarrando su posición en la super vista. Eso se ve genial. Está bien. Y entonces estamos diciendo yo mismo que el senador igual a Steve. Caray, punto, haz posición X. Así que Ok, así que esto es toca mover. Estaban en el lugar equivocado donde necesitas estar intacto terminó Aquí. Entonces, ¿qué está pasando aquí y toca final? Lo es. Todo lo que estamos haciendo es que lo estamos enviando de vuelta a la posición original, ¿de acuerdo? Y sí queremos hacer eso sin importar qué dejemos eso aquí. Pero, ¿qué más queremos hacer? Queremos comprobar si lo hemos dejado caer encima de nuestro objetivo. Entonces sigamos adelante y hagamos eso ahora, al
igual que la coda. Pero vamos a decir que si dejar tocar igual toca eso primero, Ok. Y lo que vamos a hacer también es que vamos a decir dejar objetivo igual objetivo caído. Entonces esto es también si vamos en la misma línea. Y básicamente lo que estamos diciendo es si hay un valor aquí, y si hay un valor aquí, entonces entra al abrigo. Entonces si hay un toque, esto es bueno. Necesitamos este código aquí si el toque es preciso y entonces lo que estamos diciendo es, Hey, si hay un significado objetivo, note cómo esto es un usuario opcional puede no haber puesto esto aquí. Puede que no hayan puesto un objetivo de gota, y solo querían arrastrar la imagen por ahí, pero no quieren dejarla caer, por lo que está vacío. Por lo que queremos asegurarnos de que no esté vacío antes de intentar usar el de lo contrario nuestro programa o choque
real. Esta es perfecta práctica de desarrollo rápido de IOS para no toot a mi manera. Entonces solo te estoy haciendo saber que así es como deberías estar construyendo tu APS con este estilo con estos. Si no vamos por ahí poniendo letreros de libra en todo lo que consiga, iré allá y seré verdad si lo estás haciendo porque estás escribiendo mal abrigo . Y no te enseñé eso. Entonces si hay un toque, eso es genial,
Um, Um, y entonces lo que tenemos que hacer es otra vez, como arriba agarró la posición de ese toque y super vista por lo que la posición es igual a tocar esa ubicación a la vista. Y esto va a ser yo esa super vista. Lo mismo que antes, lo cual está completamente bien. Y así vamos a agarrar la posición y luego lo que vamos a dar y, ya
sabes, usualmente solo ignoro esas advertencias y lo digo abajo con mi código. Y si siguen ahí, vuelvo
y los arreglé. Entonces cuando tenemos que hacer es el código donde vemos si la imagen que arrastramos si está en la
parte superior,en parte superior, cualquier lugar del marco del personaje, decir si está aterrizado sobre él en absoluto, bien, o ella podría ser un Golam femenino y ah, CG directo contiene punto. Está bien. Es una función que básicamente te deja pasar en un rectángulo y nombrar, um, Teoh para ver si es Ah, presidente ahí. Entonces lo que vamos a hacer es decir,
oye, oye, ¿este rectángulo contiene este punto? ¿ Y qué rectángulo queremos comprobar? ¿ Qué? Queremos revisar la marca. El monstruo, que es el objetivo, por lo que el marco de punto objetivo. Está bien. Nosotros queremos decir, Hey, hizo tu toque aterrizó ahí y luego nos dieron un pase en el toque, que se va a posicionar. De acuerdo, Entonces lo que estamos diciendo es, oye, si la posición en la que golpeaste está en cualquier parte dentro de este marco en cualquier parte dentro de los monstruos que imaginas, enmarcas bien? Si está en algún lugar dentro de ahí, eso significa que lo dejaste caer sobre el monstruo, ¿de acuerdo? Y eso es genial. Eso es exactamente lo que queríamos hacer. Ahora aprendamos un nuevo director. No te des cuenta. Cosas muy cool vamos a aprender ahora mismo. Entonces hay un sistema, un servicio a los ojos de Iowa llamado centro de notificación ns. Y permite publicar notificaciones y tener observador de observadores de notificaciones para
luego actuar en consecuencia. Entonces lo que puedo hacer es, podría decir, Ennis Notification Center, ese centro predeterminado describió el centro de notificación principal. Puedes crear otros puntos post notificación, y vamos a crear uno justo aquí. Yo quiero decir notificación Ennis, Ok. Y lo que vamos a hacer es que le vamos a dar un nombre aquí mismo. En realidad, esto es perfecto. Y así vamos a llamar a esto, um en objetivo caído bien. En objetivo caído, y luego voy a decir objeto. ¿ Neil está bien? Y entonces qué? Estamos haciendo aquí es Veamos esto con cuidado. Estaban llamando a un servicio llamado y es centro de notificaciones. Estamos agarrando el centro predeterminado y estaban publicando una notificación, y el parámetro que toma es una notificación. Entonces aquí mismo en la línea estaban creando en realidad una nueva notificación. Esto no sería diferente a mí diciendo, um viene aquí var nota si es igual y su notificación dándole un nombre que estaba en blanco cayó. Está bien. Y, uh, diciendo Neil por el objeto, OK, no
queremos pasar un objeto con eso. Eso es lo mismo. Simplemente lo estamos haciendo en línea para ahorrar espacio y hacerlo más rápido. Además, otra cosa a notar es Ah, el nombre. Um lo hice por accidente. El curso de nombre corresponde al nombre que estás dando la notificación. Entonces tus observadores van a querer escuchar ese nombre también. Entonces lo que estamos diciendo es, oye, si hubiera dejado caer el ítem en el objetivo, digamos notificación diciendo que con éxito dejas caer el ítem en el objetivo. Eso es todo hacer notificaciones. Por lo que nuestro controlador de vista puede saber qué hacer a continuación. Y ah, voy a copiar esto. Podemos añadir un observador, pero eso me queda bastante bien. Y luego, Ah, en cualquiera de los dos casos, estamos enviando el artículo de vuelta a su posición original. Y tú estás como, ¿Por qué no necesitas una notificación? Bueno, hay algunas cosas que tenemos que hacer, ¿ verdad? Si lo alimentas, necesitamos asegurarnos de que no te demos cráneo. Ya sabes, fue una vida y y tenemos que hacer Necesitamos asegurarnos de pasar a la siguiente. A lo siguiente que necesitamos dio tenemos que correr alguna lógica. Entonces por eso necesitamos la notificación y sigamos adelante y volvamos a nuestro
controlador de vista , y se ve bastante vacío en este momento, pero eso está bien. Se va a hacer mucho más grande rápidamente y ah, sigamos adelante y hablemos de cómo convertirnos en observador. Entonces este es el controlador, la clase que necesita escuchar esa notificación. Por lo que N s centro de notificación punto por defecto centro punto Añadir observador. Está bien. Y el desierto es autosignificado. Oye, esta clase lo va a escuchar. ¿ De acuerdo? Selector es la función que vas a llamar. Así es como lo haces. ¿ De acuerdo? Simplemente lo pones entre comillas. Eso es lo que tienes que hacer. No es tan malo. Entonces vamos a decir, Item cayó sobre personaje y voy a poner un colon aquí al final. Lo que eso significa es que hay uno o más parámetros, y si no lo pones ahí, no funcionará. Se va a buscar una función que no tenga parámetros, por lo que sabemos por experiencia. Al menos eso lo sé y eso son notificaciones. Pasan en un objeto de notificación como parámetro, por lo que debes poner ahí los dos puntos o no se llamará a tu función. Es un error común de cometer ya que estás aprendiendo IOS no lo conviertas en el nombre del de la notificación en sí, que es el nombre que le dimos antes, en Target cayó. Un objeto es Neil. No hay objeto del que tengamos que preocuparnos con esto ahora mismo, así que solo nos estamos agregando como observador, y ahora no hemos creado esta función aún, por lo que posiblemente podríamos tener un problema si esta notificación se apaga. Entonces, sigamos adelante y agreguemos esa función ahora. Y si recuerdas bien, tiene que
haber un parámetro aquí llamado notificación y solo voy a llamar a cualquier objeto. Uh, quién sabe qué objetos van a pasar a ella. Es una notificación de Ennis, pero sólo voy a llamarla cualquier objeto. Eso significa que podría ser cualquier tipo de objetos. Esto solo dice, oye, pasando un parámetro aquí y lo que sea que me des, lo que sea que le des, no lo vamos a usar. Entonces no me voy a preocupar por su tipo específico. ¿ De acuerdo? Por lo que sabemos cuando el elemento ha sido arrastrado al personaje. De acuerdo, así que sigamos adelante y veamos si esto funcionó. Solo voy a imprimir artículo caído sobre personaje, ¿de acuerdo? Ya veremos si funcionó. Voy a seguir adelante y abrir mi cónsul aquí abajo para que lo veas y estaba corriendo. Entonces la prueba es cuando suelto el artículo. ¿ El éxito de la notificación detectó que sí lo dejaste caer sobre el monstruo? Y también funciona la notificación? Esa es una segunda prueba. ¿ Y es la función que se va a llamar cuando se llame a la notificación? ¿ Eso se llama sal? Es Estamos probando tres cosas aquí. Y así vamos primero,
arrástrelo a cualquier otro lugar. Por lo que notan que aquí no va a pasar nada. Ahora es seguro. Lo arrastramos sobre él y aún no pasa nada. Entonces definitivamente tenemos un problema aquí. Sabe cómo no pasa nada aquí. Y ah, vamos a arrastrar por aquí. Entonces no pasa nada en absoluto. Entonces definitivamente tenemos un problema. ¿ Y sabes cuál es el problema? Creo que sé lo que es. Entonces lo que necesitamos a Dio es aquí mismo, en nuestra opinión, sí cargó. Tenemos que fijar el objetivo de estas imágenes. ¿ Te acuerdas? Todavía no hemos hecho eso, Recuerda, es opcional. Está bien. ¿ Dónde está? Aquí. Arrastrar imagen. Es opcional. Aparecen en la parte superior. Puede haber un blanco. Puede que no haya blanco. Por lo que funcionó nuestro código. Nada se estrelló porque tenemos buen manejo de aire. Enhorabuena por escribir algún buen código que no chocó nuestro programa. Entonces todo lo que necesitamos hacer aquí está a la vista. ¿ La carga dijo conducto de imagen de comida? Uh, drop target. Eso es lo que llamamos Es igual a imagen de monstruo. Este de aquí arriba, sólo
estamos pasando la imagen allá. Y lo mismo para el corazón. Imagen de corazón que cayó objetivo equivale a meses. Su imagen. De acuerdo, vamos a darle otra oportunidad. alguna solución rápida de problemas. A ver si solucionamos el problema. Entonces lo estoy arrastrando. No hay nada. Yo lo arrastro sobre él y tiene un choque. Oh, no. Bien. A ver qué dice. El selector no reconocido enviado al instante. Por lo que el elemento caído en el personaje es incorrecto, y creo que puede que lo haya escrito mal. Este es un choque común. Entonces voy a hacer clic en el botón Atrás aquí arriba y vamos a ver si lo deletreé. Entonces aquí hay una ortografía. Está bien. Y ah. Oh, hice esto mal. Tan buena captura. Aquí. Buen venir. Error. Qué bueno que veas. Entonces lo que hice fue decir,
oye, oye, esta es la función a la que quiero llamar. Pero accidentalmente lo llamé así. Yo lo llamé el nombre de la notificación, y así en realidad necesita ser esto. Esta es la función que va a llamar. Ustedes probablemente han estado sentados ahí afuera mirando, como si fueras un idiota. Cámbialo. Pero puedes oírme y estás gritando a tu pantalla. Y, uh, bueno, eso es lo que obtienes por no estar en una de mis clases de vida riel. Entonces, um, consigues al vigilante, comete errores así que me dejan caer sobre el personaje. Está justo ahí. Y no me gusta la minúscula. Ves, eso me está molestando. Entonces lo voy a cambiar en ambos. Y ahora vamos a darle un tiro. Adelante y corramos y veamos si nuestro choque está arreglado. Despeja esta basura de la pantalla. De acuerdo, aquí vamos. Intento número tres de arrastre. No pasa nada. Lo arrastro sobre ti y el elemento se dejó caer sobre el personaje. Ahí vamos. Definitivamente está funcionando. ¿ Deberíamos probarlo con el corazón? Yo creo que sí. Vamos a tirar de nuestro simulador de vuelta aquí arriba y probado con el corazón. Y bastante seguro, el corazón
también está funcionando . Por lo que acabamos de hacer algo muy cool. Estamos arrastrando y soltando, detectando en qué artículo aterriza. Y luego estamos enviando una notificación. Y luego estamos escuchando notificación, llamando a una función cuando esa notificación es golpeada y manejando lógica justo después. Entonces eso fueron bastantes cosas que hicimos y nosotros cosas bastante cool. Entonces, ahora averiglemos qué queremos hacer a continuación. Entonces pensemos en el problema que estamos tratando de resolver. Entonces si el jugador así lo que va a pasar es que hay una necesidad que tiene el monstruo, si necesita afecto o necesita comida. De acuerdo, igual que cualquier hombre. Y él si no consigue que esa necesidad se cuide dentro de un cierto periodo de tiempo, pierde una vida. Y si da tres vidas perdidas, muere. De acuerdo, así que sigamos adelante y centrémonos en la muerte en la primera de la escuela. Entonces sabemos que hay tres vidas y sabemos que tiene que haber un temporizador, como cada tres segundos. Y va a perder una vida si no se está ocupando, y luego muere. Hagamos que eso funcione primero. Voy a abrir el asistente de editor aquí, ¿de acuerdo? Y, ah, cambiemos esto a nuestro tablón principal de cuentos. Ahí vamos. Y, OK, entonces tenemos nuestras escuelas aquí, pero no estamos referenciándolas en nuestro código. Y así voy a seguir adelante y me mudé ligeramente aquí. De acuerdo, así que sigamos adelante y seleccionemos la cada escuela aquí. Este es el número uno. Entonces voy a decir que esto se llama, um ¿Cómo quieres llamarnos? Llamaremos a su penalización. Esto es penal una imagen. Está bien. Este es obviamente penalti número dos. Entonces, uh, penalización a imagen. Y obviamente tenemos una más. Vamos. Pero en el lugar correcto, no está obedeciendo. Espere. Casi lo tengo bien. Podría haber un dolor. Por eso Hazlo en código a veces. De acuerdo, entonces y vamos a llamar a esta penalización tres imagen. Y ahí están. Tenemos que yo sea outlet ahora. De acuerdo, veamos algo de limpieza. De acuerdo, tenemos un tres. Yo estoy fuera. Volvamos al código. Entonces no está tan aplastado aquí, y voy a hacer clic en la carpeta de aquí en el lado izquierdo y hacer clic en ver controlador. De acuerdo, entonces tenemos nuestras imágenes penales y lo que queremos hacer. Bueno, lo que queremos es tal vez por defecto, tienen, um son como que casi se ven a través. Y entonces lo que hacemos es cada vez que pierdes una vida simplemente la haría totalmente visible. Entonces vamos a modificar lo que se llama el Canal Alfa del, uh, de la imagen misma, la opacidad. Y entonces lo que voy a hacer es justo aquí en carga vista. Vamos a seguir adelante y darle una opacidad baja y bueno, probablemente
deberíamos almacenar algunas variables a alguna constante. Entonces digamos que tengáis a Alfa. Por lo que el Alfa gana es dim va a estar 0.2 bien en gráficos y cualquier cosa, 1.0 está lleno. Está bien. Y, uh, cualquier cosa menos que eso está, um, no lleno. No es opaco. Entonces tienes opaco y luego tienes, ah, menos que opaco, supongo. Y, uh, antes de que me olvide, conozco la propiedad Alfa porque tengo experiencia con esto es un flujo de CD. En realidad no es un flotador CG doble es un cierto tipo de,
ah, ah, flotador que se utiliza en el cacao, que es el marco subyacente de IOS. Entonces sé que es un flotador de CD es el tipo, y voy a decir let opaco igual a serc G float igual a 1.0. Y la razón por la que estoy poniendo estos en todos los gorros es porque permite al usuario, que es el programa o no, que esto es una constante. De acuerdo, significa que no va a cambiar. Es que realmente es una constante. Es decir, um, eso va a ser usado para todos. Um, vale, así que sabemos que, um, que también tenemos una cantidad máxima de sanciones que son tres así que voy a almacenar variable para eso
también, también. Entonces, básicamente, cualquier momento que te den una muerte, vamos a revisar cheque contra las penas máximas para ver si quieres perder el juego o si debe
morir o no. Por lo que los tés de Penhall equivalen a tres, y entonces probablemente necesitemos hacer un seguimiento de las sanciones actuales. Eso no va a ser un let eso va a ser un bar. Por lo que las sanciones equivalen a cero. Y si te preguntas, como, ¿cómo se me ocurre estas cosas de la cabeza? Bueno, sólo
nos sentamos a discutir el problema. Sabemos que algunas de estas imágenes necesitan estar aquí, y sabemos que cada pocos segundos va a perder una vida si no lo cuidamos. Y así, uh, cuando cuando nosotros cuando perdemos una vida, necesitamos a Teoh, que sea opaca, que sea totalmente visible. De lo contrario, necesitábamos dim y hay unas penas máximas y necesitamos hacer un seguimiento de las
sanciones actuales que tienes actualmente. Eso tiene sentido, y eso penalizaciones igual a cero. Y así aquí vamos entrevistado carga como Isar inicial. Adelante y solo pongamos esas imágenes penales Alphas justo aquí para atenuar porque estamos empezando. Tiene vida plena. Entonces digamos penalti imagen punto Alfa Eso sí y ver ese flujo de CG del que te estaba hablando . Esa es la propiedad. No es un doble. Se trata de un flotador CG y penal imaginado Alfa igual a dim Alfa. No tan mal. Y penal imagen a punto Alfa igual a dem Alfa y penalización imagen tres Die Alfa les iguala . Entonces para todas las imágenes, solo
hagamos que se vea un poco a través. Por lo que parece que actualmente no está en vigor, y eso se ve realmente bien. De acuerdo, eso se ve genial y lo que tenemos que hacer a continuación. Vale, entonces necesitamos un temporizador que se apague, y cada tres segundos va a, um va a llamar a una función. Supongo que sí. Pensemos en eso por un segundo. Necesitamos usar algo llamado temporizador N s. Y así voy a seguir adelante y ponerlo aquí arriba. Simplemente lo vamos a llamar temporizador hasta el momento, temporizador de tipo N s timer. Y, um, sabemos que lo vamos a usar, así que voy a seguir adelante y ponerle un signo de exclamación. Esto es decir, Hey, sabemos que vamos a tener uno de estos seguro. Entonces sigamos adelante y simplemente desenvolverlo implícitamente aquí mismo. Y si no había valor en, se estrellaría. Entonces tienes que tener mucho cuidado con estas cosas. De acuerdo, Siempre que hagas eso, debes asegurarte de que absolutamente le asignes valor. De lo contrario tienes un choque. Entonces eso es genial. Función llamada temporizador de inicio. Arranca un temporizador. Y lo que debe hacer es que se inicie el temporizador y ah, y luego se repite cada tres segundos. Y sólo vamos a poner eso en marcha primero como prueba. Entonces lo que voy a hacer es que voy a decir si timer no es igual a Neil, vamos a decir timer dot invalidar. Ahora, recuerda, um, vamos a esta vez va a empezar en diferentes puntos en el tiempo. Entonces todo lo que digo es, oye, si hay un temporizador existente antes de que
empecemos uno nuevo, solo detengamos el existente. Es solo que es una medida de seguridad, ¿de acuerdo? Y quieren decir timer equivale a N s timer dot temporizador programado con intervalo de tiempo. Y vamos a decir que este primer parámetro es el tiempo entre llamadas. Entonces quiero decir 3.0 segundos. La invocación va a ser yo. Vamos a llamar al Really, creo que hice el equivocado aquí. Perdón. Volvamos atrás. Y esta vez no estamos programados. Creo que es el aire. Hace el 2do 1 que queremos ahí en esa lista ahí. Ahora haremos tres segundos. El objetivo es auto bien. Similar a nuestra notificación. El selector al que queremos llamar es ah, cambiar Game State es una función que aún no hemos creado. Vamos a decir básicamente llamar a esta función cada vez No se necesita información de usuario repeticiones
va a ser tregua cada tres segundos. Va a disparar esta función aquí mismo, y va a llamar a esta función cada tres segundos, y esa función no existe. Entonces vamos a seguir adelante y crearlo. Cambiar estado de juego bien, Y note cómo no pusimos un colon para escuchar esta vez. Eso se debe a que nuestra función no tiene parámetros, lo cual está bien por ahora mismo. Entonces lo que podemos hacer ahora es empezar a dar rampa de rampa de penaltis a nuestro jugador. Entonces hagámoslo ahora. esto es sólo una prueba. No siempre va a tener sanciones. Pero ahora mismo, sólo
vamos a forzar sanciones. Entonces las sanciones van a ser más plus Así que básicamente, estamos diciendo a un penal, y luego lo
que vamos a hacer es diremos, Así es. Algún código aquí, algunos ifs Y la lógica Elson dirá Si penaltis es igual a uno, entonces lo que queremos hacer Bueno, voy a decir penalización un punto Imagen ahora es igual a Alfa ahora igual a opaco Así que ahora está totalmente visible . Y lo que también queremos dio es, um asegurarnos de que solo vamos a hacer un poco de limpieza, así que vamos a decir penalización para morir imaginado Alfa. Sólo vamos a asegurarnos de que el 2do 1 se mantenga tenue, sólo para forzarlo sólo para asegurarnos de que el siguiente en la fila si fuera si, um si ya estaba sin atenuar, sabes que es ahora, um, atenuado es que nunca va a decir si penaltis es igual a Ok, ¿qué crees que deberíamos dio rescatar algo parecido? Penalización de dos puntos imagen punto alfa equivale a opaco. Queremos invisible. Y sólo asegurémonos de que penal tres aún se mantenga tenue. Está bien, hay una medida de seguridad, eso es todo. Y, ah, eso se ve bien. Y digamos si de lo contrario si penales bien otra cosa de penales es mayor o igual a tres en el caso de que alguna vez ADM o Ok,
sigamos adelante y digamos Penalización tres imagen punto Alfa igual opaco y probablemente necesitemos uno más. Si ninguno de esos e
46. Aplicación de iOS 9: mi pequeño monstruo parte 4: Mark Price Escucha con pendientes sordos dot com Bienvenido de nuevo para la cuarta y última porción de mi pequeño monstruo y sigamos adelante y empecemos. El código está listo para salir y solo recapitulemos dónde rematamos. Entonces voy a construir esto. Por lo que la última vez nuestra pequeña criatura, Si no lo cuidáramos cada pocos segundos, perdería una vida. Por supuesto, nunca
escribimos el código para cuidarlo con el corazón o con la comida, sin afecto ni comida para este tipo, y así simplemente moriría. Pero sí probamos que la muerte sí, de hecho trabajo. De acuerdo, Cada tres segundos actualmente, aparece
una nueva escuela, Y en el tercer cráneo morirá, y así es más o menos como funciona. También hicimos pruebas de que podíamos arrastrar cosas por ahí, ¿de acuerdo? Y volverían al lugar en el que necesitan estar. Y también probamos que cuando lo arrastramos al personaje que el registro decía que sí, funcionó. Detectamos cuando cayó sobre él. Entonces lo que queda por hacer es básicamente, cada vez que le arrastras el corazón o la comida. Deberíamos reiniciar el temporizador para que no reciba una penalización para que pueda vivir un poco más. Entonces, básicamente, cada vez que lo alimentes, va a vivir un poco más. Y si no lo alimentas dentro de ese tiempo, que actualmente es de tres segundos, puedes cambiarlo por lo que quieras. Perderá una vida. Y cuando pierde tres vidas, muere, como se ve al mismo tiempo, así que no queda mucho por hacer. Estamos haciendo grandes avances. Voy a seguir adelante y detener esto y echemos un vistazo a su código aquí. Por lo que tenemos un elemento vacío caído función de carácter de la ONU. Entonces sabemos que vamos a necesitar hacer algo aquí. Básicamente, cuando dejas caer un elemento en el personaje, necesitamos restablecer el temporizador y ah, eso hace que eso tenga todo sentido, en realidad. Y ah, entonces ¿qué más tenemos que hacer? Tenemos que asegurarnos de que cambiemos entre la comida y la y el corazón. Voy a tener algún código para eso. Y así, um, sí, creo que nos quedan sólo unas cuantas cosas por hacer. De verdad. um Y así vamos a seguir adelante y ocuparnos de eso aquí. Entonces, actualmente, cada vez que los temporizadores dispararon, cambiamos el estado del juego. De acuerdo, entonces cada tres segundos, se llamará a
esto y necesitamos hacer algunas cosas. Una es el cambio, el tipo de necesidad que tiene. O un corazón o la comida. Y entonces, ah, si no le han atendido en los últimos tres segundos, entonces tenemos que darle una penalización. Por lo que necesitamos escribir código para eso. Entonces sigamos adelante y empecemos con esa parte. Entonces voy a desplazarme hasta la parte superior aquí y crear una nueva variable llamada Var Monster. Feliz igual a False lo inicializará a falso. Básicamente, lo que es Will Dio haremos un cheque y veremos si está contento. Vale, Cada vez que alimentas al monstruo, él se vuelve feliz cada vez que no alimentas al monstruo y luego llegamos al cambio estado
Game. De acuerdo, um, va a perder una vida, así que vamos adelante y terminemos el código por aquí. Entonces en primer lugar, cuando el siempre que estamos cambiando el estado del juego. De acuerdo, vamos a envolver esto en condición aquí, Así que si no monstruo feliz. Entonces si el monstruo no está contento, sigamos adelante y corremos este abrigo. Y por supuesto, este es el código de sanciones. De acuerdo, así que sigamos adelante y solo movemos todo este Comando X para cortar. Vamos a moverlo aquí mismo a la declaración if aquí. Entonces si los monstruos no están contentos, vamos a seguir adelante y darle algunos penaltis a este tipo. De lo contrario, sigamos adelante y ejecutemos algún código para darle Ah, necesidad
aleatoria. Y cuando digo necesidad, o
quiero decir afecto o comida. Entonces dejemos despotricar. Voy a crear una variable,
y, uh, uh, vamos a llamar a algo llamado Arc para uniforme subrayado al azar, ¿de acuerdo? Y no confundirte con un uniforme que podrías usar como policía o algo más . Lo que está diciendo es, vamos a conseguir un número aleatorio uniforme, el mejor número aleatorio que podemos averiguar, y es una especie de rango. Entonces lo que estamos diciendo es, oye, quiero que me des una despotricación. Un rango aleatorio, ya
sabes, dos números. Está bien. Y así va a empezar en cero e ir del dedo uno. Entonces los únicos dos números que puedes obtener de esta bien, son cero o uno. ¿ Eso tiene sentido? Entonces, ¿estás metiendo un a ahí? Está diciendo:
Oye, Oye, dame un azar. Difería entre dos números. Entonces cero o uno, porque empieza en cero. Obviamente no incluye a los dos. De acuerdo, si quisieras que incluyera a los dos, um, ya
sabes, podrías hacer algo. Podrías hacer algo así, pero no queremos que incluya eso. Sólo queríamos ser cero o uno. ¿ De acuerdo? Y lo que vamos a hacer es decir, si Rand es igual a cero. De acuerdo, Si son huevos de opción, sólo
tenemos dos opciones. Comida o corazón. Sigamos adelante y solo ajustemos algunos de los ajustes visuales en estos elementos. Por lo que la imagen de comida punto Alfa es igual a dim Alfa. Entonces lo que vamos a decir es que este es el corazón. El cero es el corazón. Entonces sigamos adelante y tengemos. El alimento. interacción de usuario de punto de imagen de alimentos habilitada es igual a falso. No queremos que el usuario pueda arrastrarlo más por ahí. De acuerdo, de lo contrario. Ah, y una cosa más. Me olvidé, en realidad, sigamos adelante y asegurémonos de que el corazón esté tan activo. Punto de imagen Alfa es opaco. ¿ Verdad? Queremos ser totalmente visibles, y la interacción del usuario de punto de imagen del corazón habilitada es igual a true. Entonces por aquí, podemos revertirlo, ¿verdad? Podemos decir que la imagen del corazón punto Alfa es igual a dim porque esta es la imagen de alimento y corazón que interacción
del usuario es igual a falsa. Y luego la imagen de comida punto Alfa es igual a la interacción del usuario opaca y la imagen de los alimentos punto. Ahabilitado es igual a verdadero. Entonces haz que la comida esté activa, ¿de acuerdo? Y lo que haremos está bien. Creo que vamos a necesitar otra variable, realidad, mirando esto aquí, um, necesitamos poder almacenar cuál es el elemento actual. Entonces básicamente, lo
pondré aquí arriba como grupos variables de nuestro ítem actual y vamos a decir ah igual sólo lo hará igual a cero por defecto. Simplemente vamos a almacenar el artículo actual. Y ah, necesito realmente hacer esto, um, que sea de tipo que int 32. Es ah, es un entero de 32 bits entero. Puede contener más valores. Eso es todo lo que dice. Simplemente, uh, contiene más valores enteros sin signo que un int estándar, lo cual está bien. Vamos a seguir adelante e inicializar ese 20 y volvamos aquí abajo para que se cambien. Estado de juego, ¿
y qué más tenemos que hacer? Entonces lo que estamos haciendo es que estamos diciendo, si rand es igual a cero, sigamos adelante y hagamos el, um el corazón activo y de lo contrario, sigamos adelante y hagamos de la comida la opción activa. Eso se ve genial. Y así, cito lo que haremos es decir que el ítem actual es igual a rand. Por lo que solo almacenaremos el artículo actual que se seleccionó aquí, y luego vamos a decir monstruo feliz es verdadero. De acuerdo, así que mira esto aquí. Entonces estamos diciendo es que si el monstruo no está contento, vamos a entrar en esto. Entonces, básicamente, si no has alimentado al monstruo en tres segundos, OK, no
va a ser feliz. Y te vamos a dar una penalización. De lo contrario, de
acuerdo, esto nunca se llamará. De lo contrario, seguiremos adelante y cambiaremos el Cambiaremos los artículos de comida por el artículo del corazón o
viceversa , y seguiremos adelante y adelante, um eso esperanzas y se supone que esto es falso. Entonces, básicamente, cada vez que golpeamos este bloque de código, lo
restablecemos a falso porque hay que hacerlo feliz cada vez. ¿ Eso tiene sentido? Cada tres segundos. Tienes un objeto de dragón para hacerlo feliz. Y, por
supuesto, cuando lleguemos aquí, um, vamos a restablecerlo a falso, y luego tienes que volverlo a hacer feliz. Entonces solo estamos especie de Estamos repitiendo la repetición del código aquí, Así que eso se ve muy bien. Ah, lo
siguiente que tenemos que hacer es manejar el elemento caído en el personaje. Aquí hay algunas cosas que tenemos que hacer. Entonces si le dejamos caer un artículo a un personaje, claro que va a volver a ser feliz. ¿ Verdad? Tiene sentido. Significa que has estado haciendo tu trabajo. Ahora lo siguiente que necesitamos dio es ah, queremos darle al jugador un bono cada vez que lo hagan feliz. Entonces necesitamos volver a arrancar el temporizador, ya
sabes, solo dijo que lo volvió a decir. Uh, para que no reciba un penalti justo después de que lo hayas alimentado. Así que sigamos adelante y digamos, uh, iniciar el temporizador justo ahí, y está justo debajo de nosotros aquí. Esta función, solo
estamos llamando a la función. Y si estamos invalidando, invalidando el temporizador existente, ¿
recuerdas cómo configuramos esto antes? Y tal vez no lo entendiste en su momento. Pero ahora yo tal vez te dio porque tenemos que seguir llamando a esta función y tenemos que evitar que el temporizador anterior se dispare. Y entonces simplemente reiniciamos de nuevo aquí mismo, OK, No es gran cosa. Y así estamos iniciando el temporizador que se ve muy bien. Y luego hagamos un poco de Ah, hagamos algo de limpieza aquí. Esa es una imagen de comida punto Alfa igual a dim Alfa. Entonces básicamente, cada vez que cada vez que te caigas en el ítem sobre él, queremos solo queremos volver a ajustar esos ítems al valor predeterminado, ya
sabes, tipo de darle al jugador un descanso de tener el feed el personaje, ya
sabes, es así que vamos a deshabilitar ambas abejas, en realidad. Por lo que el punto de imagen del corazón Alfa es igual a dim Alfa y corazón imagen punto interacción del usuario habilitada es igual falso. De acuerdo, esto se ve realmente bien, excepto por el hecho de que me falta un signo de igual. Entonces echemos un vistazo a nuestro código aquí. Eso es lo que me gusta hacer es una especie de mapear lo que va a pasar en orden de eventos desde una perspectiva de
usuario. Entonces cuando sabemos que tenemos el código funcionando, cuando sueltas el ítem, sabemos que aquí llama a esto. De acuerdo, entonces ahora hemos dejado caer un artículo. Entonces los monstruos ahora felices reiniciamos el temporizador. OK, dale al jugador tres segundos extra. Vamos a atenuar el corazón y la comida. Di:
Oye, Oye, no
necesitas arrastrar nada sobre él. Está contento por al menos tres segundos. A lo mejor en un juego de verdad, Esto podría ser unos minutos, ya
sabes, Ya sabes como son. Como si alguna vez jugaras esto como si fueras clase y esa maldita paga giga sería , como molestar, como cada minuto quiere comida, o va a morir. Y a los chicos les gusta tener un bebé. ¿ Por qué comprarías un juguete? Eso es como tener un bebé. He tenido bebés, por cierto, al
menos mi esposa lo ha hecho, y sé cómo es. Y están bastante necesitados. De hecho, ni
siquiera sé por qué. Reconstruyendo esto. ¿ Por qué construirías algo que es súper necesitado de todos modos, a un lado el punto. Entonces es necesario. Puedes cambiar el tiempo si quieres,
y Ok, y Ok, así que hemos desactivado los Eso se ve realmente genial. Y, um, OK, eso suena genial. Y, uh, tal vez te estés preguntando por qué, um, estamos almacenando el artículo actual porque realmente no estamos usando en ninguna parte. Te voy a explicar eso en un minuto, pero básicamente, es así cuando sueltas el artículo aquí, Ok. Ah, es para que lo sepamos. Um, entonces sabemos qué efecto de sonido tocar cuando ponemos los sonidos y en qué vas a poner Sonidos? Sí, vamos a poner sonidos en semi cool. Entonces es así que sabemos qué efecto de sonido tocar, Así que OK, así que no dejo caer a ese personaje. Eso es genial. Realmente iniciamos el temporizador. Y si no hacemos eso, él recibe las sanciones. Esto puede muy bien funcionar. Vamos a seguir adelante y ejecutarlo y ver si esas pocas líneas de código nos llevan a donde necesitamos estar. De acuerdo, aquí vamos. Aquí vamos. Está bien. Entonces si lo arrastro aquí, dos
están tenues. Eso es genial. De acuerdo, pasan
tres segundos. Eso es genial. Todavía está feliz. Dale de comer otra vez. Todavía no veo ninguna escuela. Esa es una buena señal, porque ahora lo estoy alimentando. No hagamos nada. Esperaremos al de éstos el pop up y esperemos otros tres segundos y
veamos si nos dan un cráneo, que deberíamos otros tres segundos para ver si conseguimos una escuela y esto le debe dar de comer ahora, deberíamos no conseguir una escuela que las cosas debieran volver a la vida. Está bien, eso se ve genial. Voy a dejar que vuelva otra vez y luego esperar tres segundos y debería conseguir una escuela y morir. Y creo que nuestro código está funcionando. Eso es bastante jodidamente genial. Entonces creo que lo último que necesitamos hacer es agregar algunos efectos de sonido. Ahora, esta es la parte divertida. Uh, me encanta me encanta hacer esto. Y, ah, me encanta poner efectos de sonido y tantos AP como pueda. Hay algo al respecto, por cierto, que aporta una mejor experiencia de usuario a las personas. No cuando exageres,
sino incluso en APS regulares. No sé si alguna vez has jugado con la app de Facebook, pero recientemente han añadido, como algunos whizzes y pops sonido menor cuando estás haciendo cosas. Pero como que agrega algo de vida en valor a tu código. Um y, uh, las generaciones que el aire viene, la generación millennial especialmente, y usted puede ser parte de esos ojos especialmente interesados en juegos y cosas que son emocionantes y aventurero. Y así es que es bueno traer tanta vida y emoción a tu APS es posible porque esas son las audiencias que están gastando dinero en tu app. Por lo tanto, ten eso en cuenta. De acuerdo, así que sigamos adelante y creemos algo de sonido. Ya lo hemos hecho una vez antes. Simplemente lo volveremos a hacer esta vez. Entonces queremos tener música tocando de fondo. También queremos tener algunos efectos de sonido cuando muerde cuando le has dado el corazón cuando
muere . Y luego el sonido del cráneo cuando, uh cuando básicamente Ah, él está ah, perdiendo la vida. Entonces voy a seguir adelante y encontrar mis archivos de sonido aquí, subirlo aquí mismo. Y ahí vamos. Entonces tenemos algo de música cueva y luego tenemos estas olas aquí abajo estos archivos de onda de puntos , acuerdo? Y, ah, voy a seguir adelante y simplemente arrastrarlos al proyecto. Esto así ahí están en el proyecto luciendo muy bien. Entonces ahora lo que vamos a dio es crear algunos reproductores de música. De acuerdo, Hasta ahora, Reproductor de
música, audio
A V, vamos a crear algunos reproductores, no todos reproductores de música. Algunos de ellos van a tocar efectos de sonido. ¿ De acuerdo? Y creo que me estoy olvidando importar importar una fundación V. Recuerda, tenemos que importar el,
uh, uh, el código que en realidad tiene el reproductor de audio para que podamos usarlo. Y ahí está. Se ve bien. Sue Los efectos de sonido ahora Así sonaba fijo, por cierto. A veces me gusta dar cosas,
nombres, nombres, viceversa en vez de decir, ya
sabes, efecto de sonido
mordido, que podría tener más sentido en el idioma inglés. Pero piensa en esto. ¿ Y si tuviéramos una imagen de mordida, un controlador de mordida? Si acabamos de poner sonido arreglado por todo lo que tenemos que hacer cuando buscamos auto completo es tipo en S F X, y sólo va a tirar hacia arriba todo nuestro efecto de sonido para que podamos agarrarlo rápidamente. Entonces me gusta prefijar las cosas, um, por lo que son. Por lo que son fácilmente referencia Herbal Hvar s F X corazón y estamos poniendo los
puntos de exclamación al final de la misma porque vamos a garantizar que hay un valor en estos en estos jugadores aquí. Vale, Muerte
del corazón cuando muere, Tal vez reproductor de audio y ah, escuela derecha como efectos escuela un reproductor de audio B. 1234 Eso me queda bastante bien. Uh, y si recuerdas, tenemos que inicializar estos, ¿
verdad? Ah, y recuerda, tampoco
podemos garantizar que vaya a funcionar. Por supuesto, lo
garantizaremos, pero, um, estos archivos, si cargamos un archivo del recurso es que puede no devolver nada. Eso sí necesitamos dedo del pie ¿Hacer qué? A hacer un bloque aquí, recuerda, Porque tenemos que usar la palabra clave try frente a estos jugadores aquí, de lo contrario no funcionará. Entonces un V impar oops equivale a reproductores de audio a V. Entonces sólo vamos a ir a Stan. Ella se lo comió aquí. Y, um, contenidos de tu Ellis. Bien. Y así vamos a crear un nuevo paréntesis abiertos de conde NSC, y vamos a dio ah, archivo Ural con camino creo que es lo que queremos. Y esto va a ser N s bundle esa ruta de punto del paquete principal para el recurso. Y eso se ve bien. Y vamos a llamar a esta cueva dash music dot M Legos y todo. Este es el MP tres, y eso se ve bien y va a exigir un signo de exclamación ahí mismo. Y eso si esto es confuso en absoluto estamos creando reproductor de audio. Este es el método inicial de Isar. Quiere una URL en Mosul. Podríamos haber bloqueado esto. Podríamos haber puesto esto por sí mismo en su propia variable ante él. Pero sólo tenía sentido hacerlo aquí dentro como parámetro. Um, y luego, ah, así que estamos creando un tema rural, y quiere archivar ruta. Entonces llamamos a otra función, y es agrupar ese hueso principal de ese camino para recurso. Entonces otra vez, podría haber hecho esto. Podría haber dicho de nuestra tu l igual. Y entonces podría en realidad um Ah, en realidad, lo
primero que podría hacer es realmente decir, uh, ruta de
recursos hizo primero la más íntima, que es ésta de aquí. Está bien. Entonces podría hacer eso ahí, y entonces podría decir de nuestro u r l igual. Y entonces lo que podría hacer es que pudiera agarrar este año y ah, esto es con fines de demostración. Entonces lo ves en ambos sentidos. Y así está el camino de recursos K y los de en este caso se deben dejar porque no
vamos a modificarlos. Vamos a dejar bien y luego al final aquí, ahora podemos Ah, ahora puedes decir que estás enfermo. Entonces pasó lo mismo aquí excepto de manera más explícita. Se lo llevó de una línea de código a tres. Eso es al revés. Pero sólo para que veas que eso es lo que puedes dio Y OK, así que intentamos eso. Y, por
supuesto, en un try block, vamos a necesitar una tribu do también van a coger. Y si recuerdas de la última vez, vamos a tratar de atrapar el error. Por lo que esto se poblará automáticamente si existe. Poniendo esta descripción de depuración de punto de aire de impresión. Ojalá este pequeño signo de exclamación rojo se vaya. Muy bien. De acuerdo, entonces ahí vamos. Acabamos de crear nuestro primer reproductor de audio. Ahora, no
quiero hacer tres líneas de código para todos estos, así que voy a solidificar las otras en una. Entonces voy a seguir adelante y básicamente tipo de hacer lo mismo en todos estos de aquí. Entonces vamos a decir try SFX bite equivale a un audio V, tal vez el contenido del reproductor de audio de tu l y esto va a ser NSC Earl Europhile Path y Ennis Bundle ese paquete principal ruta de punto para recurso. Y esta va a ser mordida de tipo ola y poner ahí un signo de exclamación. Y ahora solo voy a copiar esto otras tres veces. Eres como,
Oh, por favor, Mark, Mark, por favor no lo escriba a través de esto. No quiero verlo. Bueno, por
suerte para ti, tienes video. Puedes saltarte cosas. ¿ Alguna vez te aburres? Simplemente salta cosas. Eso es lo que haría yo. Te aburres. Escúchame para saltar. Está bien, ahí vamos. Obviamente, son los mismos nombres. Vamos a cambiar las cosas. Este va a ser efecto de sonido. Corazón. Esto va a ser sonido f X La muerte va a sonar f X cráneo. Muy bien. Y estos, por
supuesto, cambiarán también a Will. Entonces esto va a ser corazón. A lo mejor estos son los nombres de los archivos, y todos tienen nombre. Creo que lo mismo en esa mordida hace su muerte. Y entonces este es craneal mordedura corazón muerte cráneo ola. Ah, hay facilidad en esto. Lo pillé mal tipo de ola, hombre. Está bien, uh, así que eso está bien. La música cueva no es MP tres. Como se podía ver por aquí en la mano izquierda, lado. Entonces tenemos algún avión de audio. Esto es realmente genial. Y, ah, si todo esto funciona, sigamos adelante y solo prepárate para jugarlos. Entonces, um reproductor de música punto prepararse para tocar Y el reproductor de música. Podemos empezar de inmediato porque esto es música de vapor, así que solo tocaremos después de que esté lista para tocar y luego sonar f X muerde. Prepárate para reproducir sonido FX Efectos de sonido heart dot Prepárate para reproducir efectos de sonido death dot prepárate para tocar y por último, efectos de
sonido. Skoll que se preparó para jugar bien. Y, ah, tenemos nuestro audio configurado muy fácil. Por cierto, esta no es la única forma de reproducir audio. No hay nada malo en hacerlo de esta manera. Esto está absolutamente bien. Es agradable tener tus propios reproductores de audio tan muy buenos. Tenemos algo de audio yendo aquí y pensemos en cuándo queremos reproducir el audio. De acuerdo, entonces cada vez que dejamos caer un elemento sobre el personaje como un corazón o, uh ,
comida, necesitamos reproducir audio, ¿
verdad? Pero necesitan ser sonidos diferentes. Entonces lo que tenemos que hacer es decir, si el ítem actual es igual, recuerda que ponemos aquí un cero o uno en estos valores. Entonces cero era ah, corazón y uno era comida. Entonces si es cero, vamos a tocar el um a pesar del efecto de sonido para el corazón científico hoops dot play, eso es bastante fácil. Mira lo sencillo que fui yo. Sólo asegúrate. Sí, eso se ve bien. Eso de lo contrario, si no fueron los efectos de sonido despiadados un bit play. Está bien, y eso se ve bien. ¿ Qué más? Cuando juegas siempre que haya un penalti, correcto. Entonces siempre que los penaltis más plus sea vamos adelante y ah, digamos s f x cráneo punto play. ¿ Nos falta algún otro efecto de sonido? La muerte? Eso es correcto. Así que se acabó el juego. Entonces en el juego terminado, vamos a jugar la animación de la muerte, y vamos, por
supuesto, a jugar efectos de sonido death dot play Eso tiene todo sentido. Y ah, ¿qué más necesitamos dio um, en todos los spots? Vamos a darle una oportunidad. Puede que no puedas escuchar los sonidos a través de mi grabación aquí, pero te diré si están trabajando y deberían estar trabajando en tu extremo. Entonces vamos a darle una oportunidad aquí. Definitivamente está tocando la música. Es por sonar en mis oídos. También lo son los calaveras. También lo es el corazón. Eso fue realmente ruidoso. Ahí está el corazón otra vez. Vamos, dame algo de comida. Vamos, vamos, vamos, vamos. Es aleatorio. Dice que es aleatorio, pero no es diferente a voltear 1/4. ¿ Verdad? Podrías tener 20 cabezas y una cuenta. Ahí vamos. Definitivamente la comida está funcionando. Veamos si la muerte juega correctamente y la llamaremos buena. Ahí está la muerte o la escuela. Al menos la muerte está trabajando en las escuelas trabajando. Muy bien. Está bien, está bien. Está bien. Está bien. Está funcionando. Creo que estamos todos terminados. Creo que hemos terminado aquí. Um, no tan mal. Tocamos algunos efectos de sonido. Trajo algo de lógica de juego. En realidad no es tanto código. Literalmente. 151 líneas de código. Y tenemos algunas cosas bastante geniales pasando aquí. Algunas cosas que tal vez quieras hacer para mejorar esto es que sea como una verdadera mascota giga. Ya sabes, agrega algunas otras características. A lo mejor algunas animaciones más pasan por este conjunto de arte de la caricatura inteligente, donde lo conseguí y le agrego algunas cosas extra. Construye tu propio juego sobre el menú. Empezar de nuevo. A lo mejor en algunos personajes nuevos donde puedas escoger qué personaje quieres elevar. De acuerdo, um, y fuera un montón de las características a ella. Todo esto está en ti. Yo crío, como se puede ver aquí mismo. Sin kit Sprite. Hicimos un montón de cosas realmente geniales, acuerdo? Cosas que ah son súper aplicables al mundo real. Entonces, recapitulemos lo que hemos hecho en este proyecto. Por lo que hemos escrito una imagen personalizada de uso. Como puedes ver aquí mismo una imagen personalizada de ti usando herencia y clases. Hemos, ah hablado de cómo arrastrar las cosas, golpearlo, arrastrarlo. Qué sucede cuando sueltas y también detectas cuando lo dejas caer en otra vista detectando si está dentro de esos límites. También nos adelantamos y nos enteramos de las notificaciones. Cómo dedo del pie crear notificaciones como así y luego cómo escucharlas como observador, como hicimos aquí mismo. Y llama a una función Así las notificaciones pasan por aire a lo largo de toda tu aplicación. En las clases sólo hay que escucharlas cosas súper cool. ¿ Qué más hicimos dio imágenes. Por lo que las imágenes de animación en julio vistas de imágenes y nos re factorizado este material para estar en sus propias funciones en una subclase sobre tu imagen. Cosas muy poderosas. Nosotros Ah, claro, ese auto layout en este story board. Y, uh, yo sería puntos de venta arrastrando cosas, moviendo cosas alrededor que probamos. Además, recuerda cómo probamos clases de tamaño e hicimos este modo de paisaje de soporte. Eso fue un montón de diversión, Realmente cool. Y nadie más que yo sepa realmente va en profundidad a eso tan bueno como hicimos cosas tan importantes. Aprendes sobre temporizadores y s timer cómo hacer un temporizador de repetición. Has aprendido un poco más sobre el reproductor de audio, y ah, wow. Hemos aprendido algunas cosas grandiosas aquí cómo hacer constantes aquí cuando quieres cosas que se
van a quedar igual y las vas a reutilizar. Ponlo em todo en mayúsculas. Hemos aprendido muchas cosas. Ah, estás bien en camino de convertirte en un desarrollador profesional de IOS. Así que acariciate en la espalda. Este fue, ah, proyecto de
gran tamaño. Sólo se van a hacer más grandes a partir de aquí. Pero eso está bien. Deberías estar gastando mucho tiempo en esto. Este curso no está destinado a ser un video rápido, ya
sabes, ya
sabes,de
10 minutos de entrada y salida. Yo quiero que retengan estas cosas. Y estoy seguro de que si haces estas cosas y pasas mucho tiempo con ellas, podrás conseguir un trabajo. Lo que hago todos los días en tu vida tan bien en el camino. Enhorabuena. Ya terminé de hablar. Ten un gran día o noche dondequiera que estés en fichar aquí. Nos vemos la próxima vez.
47. Controlador de visión de modelo (MVC): Oigan, ¿qué pasa, todos? Premio Mark aquí. Eso ralentiza dot com Y hoy vamos a hablar de un
principio fundacional de programación core y quería que IOS se construya y se llama controlador de vista modelo va a tirar arriba en mi tienda de fotos aquí porque vamos a estar dibujando un poco hoy. Y te voy a mostrar un poco de abrigo hoy también a así modelar view controller. ¿ Qué es? Se escucha la frase M V c con bastante frecuencia y el controlador de vista modelo es la idea de que
te tienes . Lógicamente separa su aplicación o su producto en tres niveles y ah, por lo que el modelo. De acuerdo, el modelo modelo. Es una escritura terrible. ¿ Ellos quiénes son tus datos? OK? Los datos deben administrarse por sí mismos. Entonces si tienes una aplicación donde estás almacenando una lista de personas y tal vez puedas mostrar sus imágenes e interactivos enviar mensajes a esas personas, bueno, datos que el modelo podría ser una clase que es una persona y podría ser de la persona nombre apellido en. A lo mejor tiene una función en ella llamada imprimir nombre completo. Y así agarra un nombre completo. Y así la idea es que los datos estén separados y se administre por sí mismos versus ponerlos en un controlador de
vista y administrarlos ahí. Entonces tus modelos, los datos, tu vista es tu vista. Es lo que realmente ve el usuario. Entonces la interfaz de usuario K ahora, en
realidad debería ser solo la vista. No deberías tener lógica compleja aquí. No deberías estar haciendo cálculos aquí. La vista solo debe estar mostrando usuario a los datos. Entonces eso son clases diseñadas a medida. Entonces si quieres hacer una clase personalizada que tenga,
como, como, esquinas
redondeadas, cosas así, debes manejar eso todo en tu vista, capa. De acuerdo, no
harías eso en tu opinión, controlador. Y les mostraré algunos ejemplos de qué no hacer y qué hacer. Vista del modelo en el controlador. De acuerdo, tu mando es como el pegamento. De acuerdo, El pegamento, la encuadernación. Es lo que toma los datos e inyecta en la vista es como el conector. Y vas a tener algo más de pensar aquí y respecto a simplemente agarrar cosas y ponerlas donde necesita estar. Por lo que tu controlador mira como la red que tira las cosas y las pone donde necesita estar. Y así, um, realmente míralo así. Entonces tienes Tienes tus datos aquí, K. Así que esta es tu M para modelo? Estos son tus datos. Está bien. Y luego aquí abajo, tienes tu punto de vista. Esa es la vista. ¿ De acuerdo? Tiene tu interfaz de usuario. Y entonces lo que pasa es que tienes tu controlador. OK, entonces el controlador va a agarrar datos del modelo, ¿de acuerdo? Y luego va a pasar esos datos a la vista. Así funciona. Y tu controlador también. Entonces digamos que la vista manipula datos. Digamos que cambia el valor que va a enviarlo de vuelta al controlador, y luego el controlador está ahí, luego va a actualizar el, uh, el modelo, por
supuesto, y recuperar datos del modelo. Entonces no es el corazón de, ah principio. absoluto, En realidad, realidad
es bastante simple, pero hay que saber usar porque es muy común que los desarrolladores
cometan errores tontos porque no saben que no entienden cantidad de ti controlador. Y si realmente quieres impresionar a un empleador o escribir una buena aplicación, vas a querer usar el controlador de vista del modelo en su forma más pura. Entonces sigamos adelante y cerremos en una tienda de fotos aquí y voy a abrir código X. Déjame sólo hacer esto aquí. X código Beta. Todavía estamos en la versión beta en este punto del tiempo actualmente, Beta seis. Y vamos a crear un nuevo proyecto de Código X. Aplicación de una sola vista está bien. Y vamos a llamar a esta prueba M V C. Y no necesito conseguir repositorio en este aquí,
y OK, y OK, así que este es tu proyecto estándar de IOS que hemos hecho en el pasado y nota Tenemos un controlador de
vista. Entonces este es nuestro controlador, ¿verdad? Este es el controlador aquí. Hagamos esto un poco más grande para tu para ti. Este es tu controlador. Y si vas a tu storyboard principal, Ok. Esta es tu vista ahora estás como, Espera un minuto. Este es el controlador de vista dice. Bueno, lo que tienes aquí mismo es que tienes una vista, ¿no? Está bien. Y un controlador de vista, Gerentes de ustedes. Entonces ahí está el director solo te estaba enseñando. El controlador administra la vista, agarra datos, los pone en ella, y si la vista manipulada, envía de vuelta al controlador. Y eso actualiza los datos Así que si haces clic derecho en tu controlador de vista Ahora en el guión gráfico , sí
tenemos sus do te salvan controladores representación visual de tu abrigo. Pero la clave aquí es la vista. De acuerdo, en tu tablón de cuentos. Ah, De hecho, todo
tu guión gráfico podría considerarse una capa de administración de vistas. Por lo que derecho Haga clic en el controlador de vista. Observe cómo cada controlador de vista tiene una vista asociada que funciona con
cosas tan geniales . Entonces tienes una vista aquí. Ahora hablemos. Entonces, ¿hablemos de qué? Una instancia en la que podría haber usado el controlador de vista del modelo o cómo usarlo mejor s oh, aquí
mismo en la carpeta de su proyecto aquí. Haga clic derecho y vaya a nuevo Grupo. Lo que me gusta hacer mis aplicaciones es realmente crear carpetas para cada uno de esos grupos para separarlos
lógicamente. Entonces sé que estoy poniendo las cosas donde necesitan estar. Entonces, uh, dice vista. Entonces estoy haciendo vista de controlador, ¿verdad? Click, nuevo grupo y modelo. De acuerdo, así que en primer lugar, sigamos adelante y arrastramos el controlador de vista al campo del controlador aquí en el control de carpeta. Ahora no me gusta Teoh. Incluso esos storyboard es probablemente categorizar como de ti. Es posible que no quieras mover estos por ahí porque la película entra en la carpeta a la vista solo porque tus proyectos hacen referencia a ellos. Y si los mueves, tendrás que reconectar caminos y será un poco de dolor. Por lo que yo sólo dejaría eso ahí por ahora. Um, y algunas otras cosas que me gusta hacer eso. Algunas cosas que normalmente no caen en el controlador de vista del modelo son cosas como recurso es, Tal vez tienes algunos pensamientos personalizados que quieres arrastrar ahí. Stenson's tienen un recurso es carpeta. En ocasiones también tengo un util fuller para util como utilidades de terceros que hacen ciertas cosas que tal vez no necesariamente caen en el controlador de vista del modelo. Pero en general, todos
van a caer en tu controlador de vista de modelo aquí. Y así eres como, Bueno, ¿qué significa eso exactamente? Bueno, hablemos de ello. Por lo tanto carpeta Intermodal. Digamos en nuestro ejemplo de la de la app donde estás gestionando personas, tal vez sea una app de redes sociales. De acuerdo, así que hago clic derecho en mi carpeta modelo y hago un nuevo archivo, y este va a ser un archivo rápido. Y de nuevo, recuerda, en la mayoría de los casos, tu modelo no debería necesitar referirte como solo debería ser tus clases. Tus datos, en la mayoría de los casos, no todos los casos, pero en la mayoría de los casos. Entonces llamaremos a esta persona. Y lo que vamos a hacer es simplemente crear una clase llamada persona. ¿ De acuerdo? Persona de clase y ah, Bar
privado. Nombre. Igual que estamos hablando, ¿verdad? Un bar privado. Apellido. Está bien. Y luego s
o.Esas son variables privadas. Por supuesto, necesitamos los públicos también a algunos de nuestro nombre de pila de tipo string. Y va a devolver la variable de nombre de subrayado. Es sólo subrayados sólo el nombre de la misma. No significa nada más que el nombre. Está bien. Y luego bar apellido de tipo string va a devolver apellido. Y luego digamos que queremos una propiedad computada, eso like, bar nombre completo, y va a devolver una cadena. Y esto sólo va a regresar. Ah, bueno, di primer nombre realmente compite en el formato especial de cuerdas aquí, así que deberías estar familiarizado con eso, ¿
verdad? Entonces podríamos justo lo que podemos hacer es decir nombre y luego otro aquí y llamado apellido acaba de agarrar las variables y acabamos de poner un espacio entre ellas. Entonces eso sólo va a crear una cadena especial que imprime todo el nombre completo. Entonces tenemos una clase aquí. Aquí están nuestros datos. Um, y así es aquí donde debe vivir el nombre completo. OK, entonces eres como, Bueno, ¿qué significa eso? Bueno, probemos algo aquí afuera. Vamos a quitarnos este nombre completo. Esta propiedad de esta computadora, ¿verdad? Lo que harán los nuevos programadores es que van a entrar en su controlador aquí. Um, en realidad, hagamos algo más de contexto. Digamos que queremos imprimir el nombre completo. ¿ De acuerdo? Queremos imprimir el nombre completo en la pantalla. Vamos a darle un contexto completo, completamente perfecto aquí. Por lo que queremos imprimir el nombre completo aquí en la pantalla. Esta es nuestra etiqueta de nombre completo. Está bien. Voy a fijarlo. Um, en realidad, sólo
vamos a fijarlo 66 de arriba. Dale un con una altura y en el menú de alineación aquí, vamos sólo horizontalmente en contenedor, así que está en nuestra pantalla. Está bien. Voy a abrir el asistente de editor, y voy a hacer un arrastre de control de Ivy Outlet desde tu etiqueta aquí y esto es IBL, y sólo vamos a llamar a este nombre completo. De acuerdo, cierra el asistente de editor. Entonces esa es nuestra etiqueta de nombre completo. Está conectado. Volvamos al controlador de vista. Está bien, así que digamos aquí mismo. Vayamos a trabajar. Volvamos fuera de nuestra vista. Control. Vayamos con nuestra persona, No Swift. Y vamos a darle un Isar inicial. Una cosa más, eres como si estuviera saltando por todo el lugar. Bueno, solo síguelo. Uh, esto esto lo hace sólo tiene sentido más a medida que pasamos por aquí. Entonces tenemos nuestro Isar inicial, ¿verdad? Entonces, um, así en él. Y vamos a decir, primero de tipo string último de cadenas de tipo. Cuando se crea una nueva persona, tiene
que tener un nombre de pila. Tan yo. El primer nombre fue primero y yo. El apellido de subrayado es igual a último. De acuerdo, así que acabamos de crear un Isar inicial un constructor. Y cuando creas una nueva persona y queremos pasar eso en OK. Y actualmente hemos comentado el nombre completo propiedades computadas. Ahora vuelve a ver controlador, acuerdo? Y en tu opinión, sí cargó justo aquí. Vamos a crear una nueva persona de nuestra persona igual y diremos persona y pasará en el nombre de
pila. Último sensato. Diga, uh, John Hancock. Ahí vas. Entonces, ¿acabamos de crear una persona ahora mismo? Bueno, para convertirlo en un vamos lo que no nos grita. De acuerdo, entonces tenemos esa etiqueta de nombre completo, ¿verdad? Entonces lo que un nuevo programador dará dio es algo como esto. Dirán nombre completo texto punto igual a persona. Bueno, haremos la sintaxis de cadena especial, ¿verdad? Harán esto y dirán un punto de nombre de persona. Muy bien, Entonces lo volveremos a hacer con espacio entre persona, no apellido. Y si ejecuto esto solo para asegurarme de que está funcionando así que bajo visto carga, estamos creando una nueva persona. Y luego, uh, pasamos con el apellido de pila, y estaban tratando de imprimir el nombre completo. De acuerdo, prueba diferente nombre completo a la pantalla. Deshazte de esto. No lo hizo. Aquí viene cargando, cargando. Estamos llegando hasta allí casi. Y vamos su hace. Entonces se ve ahí mismo, correcto. Acabamos de imprimir un nombre completo. Esto es lo que hará un nuevo programador igual que hicimos aquí mismo. Y tal vez estás pensando, ¿Qué hay de malo en eso? Bueno, aquí está el problema. Lo que acabas de hacer fue escribir lógica de capa modelo en tu vista, Controller. Lo que hiciste fue manipular datos para mostrarlos en la vista. Eso es muy malo. No se quiere manipular datos. No quieres hacer nada así aquí en el controlador de vista, acuerdo? Porque lo que pasa es digamos que tienes 10 controladores de vista y necesitas obtener el nombre de
pila en los 10. Vas a estar haciendo esto 10 veces diferentes. ¿ Crees que podrías tropezar con un problema? Podría tener un accidente, hacer algo mal u otro programador podría. Sí, es muy posible. Entonces, ya
sabes, has introducido bugs en tu código. A lo mejor alguien lo hizo tal vez tan casi escribiendo tan rápido. Y dijeron, nombre,
nombre, nombre, ¿verdad? Entonces, de repente, en 10 lugares diferentes, has escrito código, y no es comprobable, y tienes tu aire propenso. Entonces lo que es mejor es hacer lo que teníamos antes de que vuelva a tu clase de persona aquí, vale. Y poco común. Esto de aquí. Entonces ahora tenemos una propiedad informática llamada nombre completo. Es manipular datos. Ahí es donde debe vivir en tu clase de persona en tu modelo. Y luego por aquí, todo lo que tienes que dio en lugar de hacer todo eso, solo
dices persona, no nombre completo. Y luego te va a dar exactamente el mismo resultado. Hecho. Si construyo y corro, nos
va a dar exactamente el mismo resultado. Pero el punto es, hemos extraído el modelo, la manipulación de datos fuera del controlador. Entonces solo te mostré un ejemplo de su trabajo ahí mismo de qué? No a dio Está bien con lo que no hay que hacer En tu opinión. Controladores. No se quiere manipular datos. Aquí te dejamos otro ejemplo de lo que no hay que hacer, y luego te mostraré el camino correcto. Entonces digamos aquí que tenemos una,
um, um, digamos que tenemos una imagen, ¿de acuerdo? Ha sido una imagen aquí,
y, uh, uh, ¿
y qué? Algo completamente aleatorio que podemos agarrar de Internet Aquí, Vamos a ver algo completamente aleatorio. Digamos, uh, mundo de
Bobby, porque estaban viendo ese show. Howie Mandel Cosas bastante cool. Muy bien, así que digamos que aquí queremos mostrar la imagen mundial de Bobby. Simplemente voy a tomar esto de Internet, arrastrarlo a mi escritorio. OK, cambiemos el nombre que se llama. Uh, es un regalo que no quiero dar. Aguanta. Aguanta Aquí, vamos a,
um, um, Hagamos a este tipo de aquí. Ahí vamos. PNG, Bobby. Encuentro que hay problemas cuando a veces al usar regalos, regalos, sin embargo lo pronuncias con IOS no quieres. De todos modos no es un buen tipo de archivo. Resoluciones lentas, nada Grande. De acuerdo, entonces tenemos a Bobby. Adelante y tirémoslo en nuestra carpeta Activos aquí, y ,
uh, se ve feliz. No va a estar contento porque vamos a hacer esto de la manera equivocada primero. Entonces será feliz. Entonces cambiémoslo a Bobby. La imagen aquí que me permite seleccionarla. Hagamos ajuste de aspecto. Ahí vamos, y voy a seguir adelante y darle un dentro de la altura. Y fue banderín desde 93 desde la etiqueta superior hasta el vecino más cercano, y luego vamos a seguir adelante y horizontal en un contenedor en el menú de alineación aquí. Entonces ahora tenemos bien a Bobby, y esto es lo que queremos hacer. Yo lo voy a ejecutar aquí. Pero lo que queremos hacer es que queremos alrededor de los rincones de esta vista, ¿no? Porque tal vez bueno, creo imágenes cuadradas de todos modos, Poco tipo de duro. No son muy atrayentes para un usuario. No son la mayor experiencia que queremos por las esquinas Un poco. Um ¿Y entonces qué? Un nuevo programador. Bueno, dio es algo así. Tomarán un tomacorriente I B. ¿ De acuerdo? Y ahora y consiguen todo lo que están haciendo es redondear las esquinas. Ni siquiera están manipulando. Ni siquiera cambies la imagen que está manipulando los rincones de la vista. Entonces qué nuevo programa hará algo así. Harán una imagen, Vas a decir, imagen de
Bobby. Cerraré aquí el editor asistente y volveré al controlador de vista y a la vista, sí cargó. Un nuevo programador dirá,
Oh, Oh, bobby, image dot Uh, radio de esquina de punto
guarida equivale a 5.0 y no queremos que la imagen salga fuera de esas esquinas. Digamos, uh, Bobby imagen dot clip para equilibrar es verdadero. Queremos cortar las esquinas de la imagen para que no pase el radio ahí. Entonces lo voy a ejecutar aquí ahora, y, uh, deberíamos ver una imagen de identificación muy agradable en algún momento en el tiempo. Está bien. Y, uh oops. Aguanta aquí. Al igual que este tipo apesta. No lo es. Ni siquiera está funcionando. Bueno, aquí está el problema. Entonces, um, todo
esto está funcionando aquí, pero en nuestro tablero principal de cuentos aquí, hicimos ajuste de aspecto así que no podemos ver los rincones de la vista. Entonces cambiemos realmente el aspecto. Siéntase por ahora solo por diversión y vuelva a ejecutarlo aquí. Así que sólo así sólo ve a los bordes de ti. Sólo estoy tratando de demostrar que podemos dar la vuelta a las esquinas. Entonces ahí lo tienes. Ves las esquinas alrededor, ¿verdad? Entonces Entonces el nuevo programador lo hará aquí mismo en el controlador de vista. Pero esto es malo. El motivo por el que no es reutilizable. No es comprobable. Cuanto más código tienes que escribir en diferentes lugares. Digamos que queremos poner esta imagen en otros lugares como vamos a reescribir código. Esto es malo. Al igual que lo otro que hicimos fueron apuestas. Lo que queremos hacer es deshacernos de este Comando X para cortarlo. Ni siquiera necesitamos el outlet de Ivy. Ni siquiera necesito eso y dijo Lo que queremos Dio está en nuestra carpeta de vista aquí. Tiene un nuevo archivo y hacer una fuente de camarilla clase cacao en clase de cacao split Iowa y
vamos a seguir adelante y cambiar la subclase aquí o la clase de padres a ti. Yo imagino vista y argollos de clase. Um, clase va a ser Sólo lo llamaremos vista de imagen redondeada. ¿ De acuerdo? Y lo que es Will Dio de hecho, en realidad, lo que me gusta hacer es si sé que voy a tener muchas imágenes rodeadas, podría simplemente llamar a esta imagen base o algo así. Pero justo por ahora, se llama Rodeada alrededor de la vista de imagen. Muy bien, y, uh fue creado aquí. Y luego qué se dio Así que ahora que aquí está la clase, verdad, la clase personalizada, ¿qué Will Dio está despierto de NIB? Llamaremos a esta función y vamos a seguir adelante en lugar de decir que Bobby sólo dirá sí mismo bien
,es
decir , , refiriéndose a sí mismo porque es una vista de imagen. Simplemente pondremos el código despierto de plumín o zib. No obstante quieres pronunciarlo y volver a tu storyboard principal y esta vez cambió la clase de imagen en el inspector de identidad. Cámbialo, Teoh vista de imagen redondeada. Ahora no deberíamos ver ningún cambio en la pantalla. Todavía debe ser redondeado y trabajar fuera de la caja. 01 cosa que tenemos que hacer solo te voy a enseñar algo realmente poderoso. Ya sabes, es como acabamos de tener un accidente. Recuerda cómo en nuestra opinión, controlador, eliminé el outlet de Ivy aquí mismo. Está bien. Algo que probablemente sigue ocurriendo. Es a veces Exco lo hace, a veces no lo hace. Pero si sigue sosteniendo una referencia a ello en nuestro guión gráfico. Entonces si haces clic derecho en tu controlador de vista, mira cómo hay una cosita aquí di, Oye, ¿dónde está mi bl it? Te has deshecho de él. Esto sucede a veces no todo el tiempo. Y así si consigues ese choque, vale, solo haz clic fuera de eso y ese choque desaparecerá. Y aquí vamos corriendo de nuevo. Y ahí está. Es redondeado. Entonces, ¿cuál es la lección que aprendimos aquí? De acuerdo, es que no quieres manipular los datos desde aquí, pero tampoco quieres manipular las vistas desde tu controlador de vista solo
debería estar haciendo cosas como esta, agarrando tu yo sea puntos de venta y poniendo datos en ellos. O si, como, digamos, digamos que, um, tenemos un, uh vamos a mostrar el ejemplo de un controlador de vista. Digamos que queremos tener un campo de texto. Entonces un campo de texto aquí y lo que este campo de texto va a dio es que va Teoh. Es estúpido, pero vamos a darle un nuevo Ah, un nuevo nombre. A la persona no le gusta el nombre. Van a cambiarlo. Entonces estoy poniendo un campo de texto U I. Lo voy a fijar con un ancho y una altura. Eso está bien. Y vamos a fijarlo 31 de la etiqueta de ahí arriba y vamos a seguir adelante y alinearlo en el medio horizontalmente del contenedor. De acuerdo, me voy. Teoh, haz un, uh, abro el asistente de editor. Voy a hacer un ibl para esto. Um, vamos, naufragio
controlado. Ahí vamos. Llamemos a esto,
uh, uh, renombrar llenado. Y también lo que quiero es un botón llamado Poner un Botón aquí llamado Renombrar. Por lo que en realidad inicia la acción. Entonces vamos a renombrar y vamos a seguir adelante y darle a este tipo con y una altura. Ponlo uno de seis de arriba. Y alinemos esto en el centro aquí y por aquí en el lado derecho, controlemos drag y hagamos una acción I b. De acuerdo, solo
vamos a llamar a esto renombrar presionado cerrar el asistente de editor aquí. Y así básicamente, lo que va a pasar es que pondré un marcador de posición aquí texto de marcador de posición, introduzca un nuevo nombre. Lo que va a pasar aquí es que un usuario desde la vista quiere cambiar el nombre de una persona . ¿ De acuerdo? Y luego queremos actualizarlo a través del controlador en el modelo. De acuerdo, entonces lo que vamos a dio es que vamos a ir aquí a nuestro controlador de vista, acuerdo? Y, uh, veamos Realmente impresionado. Ah, dame un tomacorriente I B en lugar de ah, en lugar de una acción I b aquí. Aguanta. Vamos a arreglar eso. Aquí. Ustedes eran como yo me di cuenta de eso. ¿ En qué estás pensando? Perdón. Desperdiciando mi tiempo. Ah, todo es bueno. Muy bien, intentemos esto otra vez. Control de arrastre. Cámbialo a una acción. Ahí vamos. Llamemos a esto, pero en prensa sólo para análisis cierra este netter. Vamos a asegurarnos de que no tenemos ningún Alex roto, nos dio vamos a hacer click en eso. Deshazte de él. Y usted, Contralor. De acuerdo, Entonces botón Pulsar va a agarrar el texto del campo de cambio de nombre y va a renombrar a la persona, ¿
verdad? Eso es todo lo que tiene que pasar. Entonces primero que tenemos que hacer es entrar a nuestra persona aquí y necesitamos crear a Corey un centro para los nombres de pila en lugar de regresar. Nombre trae a decir get y va a devolver nombre, y luego también vamos a tener un set, ¿de acuerdo? Y entonces lo que podemos hacer es decir si el nuevo valor no es igual a esto. OK, si no es igual a vacío y excelencia, Escucha, Neil primero Y si nuevo valor no es igual a vacío Así Onley establece el primer nombre con el nuevo nombre si es válido. Está bien. Um y así va dio es Bueno, no le gusta lo que hice aquí. No es igual, Teoh. Vamos a decir nombre de pila igual ¡Quítate, bájate! El nombre es igual al nuevo valor. Está bien. Ah, y la razón por la que tenemos un problema aquí es porque está garantizando una cuerda. Pero no estamos garantizando eso ahora mismo. Algunos poniendo ahí un signo de exclamación diciendo Hey, podría ser que podría ser Neil. Podría ser opcional. Um, y entonces ¿en qué estamos haciendo esto? Oye, si es Neil, o si está vacío,
no lo pongas, ¿de acuerdo? No lo pongas en absoluto. Um, en realidad, ni siquiera
necesitamos eso. Podríamos sólo porque si dejamos esto aquí es una cadena sin el opcional. Significa que obliga al usuario a no tener a Teoh para no tener que hacer esto Check here. Entonces todo lo que tenemos que hacer es en el set. Valor se acaba de decir que Nombre es igual a nuevo valor. De acuerdo, aquí vamos. Entonces acabamos de hacer un centro en nuestro en nuestros datos aquí, y todo lo que tenemos que hacer ahora es en nuestra opinión, controlador, ¿
OK? Todo lo que tenemos que hacer es decir, uh si dejar que el texto de punto de campo renombrado, pongamos en realidad t x t es igual. Vamos a sacar el impuesto de él. Y si existe, lo que vamos a dio va a cambiar el nombre de esta persona. Entonces lo que tenemos que hacer es mover a la persona. Vamos a seguir adelante y mover a la persona arriba en objeto global aquí arriba. De acuerdo, entonces hagámosla una variable global constante global. Y entonces qué es Will dio? Bueno decir persona dot nombre de pila bien es igual a txt. Está bien. Y entonces lo que podemos dio es que podemos imprimir el nombre completo a la pantalla Ahora. Nombre completo texto punto igual persona punto nombre completo. Lo reimprimiremos a la pantalla. De acuerdo, vamos a seguir adelante y darle una oportunidad a esto. Vamos a explicarlo un poco más, y entonces estamos a punto de terminar aquí. Solo unos pocos ejemplos de cómo el controlador de vista del modelo realmente se aplica en el desarrollo de Iowa lugar de que alguien simplemente diga así es como lo haces el controlador de vista del modelo. Así es realmente como se utiliza la vista modelo. Controlador hace explicar la práctica del mundo real aquí. Entonces, John Hancock, um y vamos, um cambiemos el nombre a Stephen Hancock. Doy click renombrar. De acuerdo, Entonces lo que pasó fue que agarramos el botón estaba presionado. De acuerdo, entonces agarramos la fecha los datos del campo de texto, y actualizamos el nombre de la persona, ¿de acuerdo? Y, uh, y luego lo reimprimimos a la pantalla. Entonces lo que pasó fue que usamos la modelo, Así que persona ese nombre de pila. Cambiamos el nombre en él. Y eso está bien. Haciéndolo desde aquí desde el controlador. Porque eso es lo que hace la contraloría. Recuerda Hablaba con los datos y le envía nuevos datos. Entonces nuestra modelo aquí arriba, tiene un getter en un centro. Está bien para manejar eso. Observe cómo no hicimos nada como esto en nuestro controlador. No lo hicimos Realmente no dijimos, um uh, ya
sabes, no
hicimos nada como formatear texto, supongo, es lo que estoy diciendo. No lo hicimos, como, capitalizarlo. No lo hicimos No nos aseguramos de que tenga ciertos personajes. No es que se deba manejar en el modelo. O todo lo que hicimos realmente fue decir, Hey, um, tomemos este texto que nos acabas de dar y vamos a actualizarlo en la capa del modelo. ¿ De acuerdo? Y entonces eso es todo. Ese es un controlador de vista de modelo. De acuerdo, lo que hemos hecho es que hemos extraído nuestro modelo al aire del modelo. Tenemos una propiedad de computadora aquí para hacer operaciones sobre esos datos. No hagas eso desde el controlador. No hagas esto desde el controlador. Enviando con lógica vista. No modifique su vista. Al igual que su aspecto y cómo le aparece al usuario. Cualquier cosa que aparezca al usuario que necesite personalizarse debe estar en
clases de vista personalizadas en la capa de vista. De acuerdo, Um, igual que lo hicimos aquí despierto de NIB en esta subclase de vista de imagen en el controlador. Simplemente úsalo funciona con la IBL. Se trata de un I V acciones para pasar datos de ida y vuelta. Entonces de todos modos, la regla Aquí está la ley. Si quieres personalizar tus vistas, no lo hagas. Entrevista, Controller dude y clases de vista personalizada. Si quieres un personalizador lío con tus datos o formatearlos,
Vale , deberías hacerlo dentro de tu modelo de aire. OK, Lo que no quieres hacer es algo como esto. No quieres decir clase alguna persona. No quieres poner esto aquí en tu vista, controlador y y y hacer todo tipo de cosas desagradables. Veo a muchos programadores Java haciendo cosas como esta y tal vez eso está bien por ahí, pero desarrollo de IOS
No, no, no, no, no. Está bien. Modelo aire vive en el modelo. Todas tus clases van por aquí. Todas tus vistas, que son, es lo que se muestra al usuario en realidad. Lo que hay en la pantalla va aquí, y el enlace que encuentra desde la vista al modelo sucedió aquí en el controlador de vista, es
decir
,el controlador , de vista de modelo. Um y acabas de hacer muy feliz a Bobby porque ahora estás siendo un buen programador, feliz. Y si programan de esta manera, les
prometo que la gente va a quedar impresionada si codifican el camino al revés. Acabo de mostrarte dónde estamos haciendo cosas aquí. Eres un empleador veterano que te está mirando en una entrevista de trabajo. Habría como, Este tipo es nuevo. Está poniendo todo este código en el controlador de vista, y cada otro curso por ahí te enseña a hacerlo de esa manera. Te estoy enseñando a hacerlo de la manera correcta. Entonces hazlo de la manera correcta. Consigue un trabajo, unos mapas increíbles. Eso es todo. Controlador de vista modelo MBC. Ya lo tienes abajo. Sigamos adelante y sigamos adelante
48. UIViewController: Hey, todo el mundo, Mark Price Aquí la muerte pendientes punto com Hoy vamos a hablar de ti. Volé el controlador, y así voy a seguir adelante y tirar hacia arriba en un nuevo proyecto yendo a archivar nuevo proyecto y lo
tiramos en la pantalla. Aquí. Ahí está. Presentar nuevo proyecto ahí mismo. Está bien. Y hablemos de controladores de vista. Aplicación de una sola vista está bien. Ver ejemplo de controlador Ahora los has estado usando ya haciendo clic en siguiente pero en el escritorio . Toda aplicación que construimos hasta ahora, de hecho, ha utilizado un controlador de vista. Pero, ¿qué es? Bueno, es una clase. De acuerdo, en este caso, este nombre de esto lo acabamos de llamar controlador de vista. Esto podría llamarse cualquier cosa, pero hereda de lo que se llama controlador U I. View. Esta es una clase proporcionada por apple, y lo que hace es que maneja de ti. Por lo que en el controlador de vista
del modelo, el patrón M V C tu modelo tiene su propia área de vida. Tu vista son las vistas reales mismas. Recuerda cómo subclasificamos vistas, como crear
imágenes personalizadas, uh, uh,
lo que sea, lo que sea, tal vez con sus propios puntos de venta y código propio. Por lo que subclase vista para que las vistas pudieran operar en y por sí mismas. Pero tener que controlador es lo que toma y pega los datos a las vistas reales. Es una especie de pensador que hace. Todas las diferentes operaciones es jalar las cosas, ponerlas donde necesitan estar, y así de ti. Contralor es una especie de la base central de la gestión de puntos de vista. No puedes No puedes poner vistas en la pantalla sin algún tipo de controlador de vista. OK, vamos a echarle un vistazo. Adelante y mantenga pulsado el comando en el teclado y haga clic en este tipo aquí y se va a abrir las manzanas del dedo del pie, las manzanas código aquí. Entonces, ¿qué? La clase pública, Um y uh, hereda de ti. Yo respondo. Er tiene algunos otros protocolos que acata. Y así es una clase que construyeron, y puedes mirar todas las funciones y cosas que proporciona. Hace mucho. No vamos a entrar aquí, pero solo debes saber que esta es una gran manera para que veas lo que puede hacer. OK, parece que tienen una extensión, ADM o características y funcionalidad a la misma. Y maneja todo desde rotaciones. Tio de uso. Ah, un montón de cosas. Voy a seguir adelante y deshacerme de esto. ¿ Recibió advertencia de memoria. Y así no son demasiado complejos. Soas faras. Es necesario saber para un uso de ellos. Simplemente sepa que cada controlador de vista tiene una propiedad de vista. Entonces si digo yo mismo esa vista, va a estar justo aquí. Observe cómo hay una vista. De acuerdo, Uh, lo está esperando. Te refieres en tus códigos, esperando que esté ahí. Y así, eh, vamos a hacer un ejemplo aquí. Primero, sigamos adelante y ejecutemos este programa, ¿de acuerdo? Y va a cargar la app aquí en el comando presidente tres para hacerla un poco más pequeña . Ahí vamos, y se va a cargar y tener un fondo blanco. De acuerdo, ¿y si digo auto vista, acuerdo? En realidad se necesita a sí misma. Podría simplemente salvarte el color de fondo de punto. Está bien. Y puedo decir igual a u y color dirá color verde. De acuerdo, lo
voy a ejecutar aquí. Entonces solo quiero mostrarles que el controlador de vista tiene una vista fría de propiedad. Y ahí está. Ya está conectado para ti, ¿ verdad? Cuando lo construyes bien Cuando construyes una siesta. Entonces todo lo que necesitas saber es un controlador de vista maneja un montón de cosas para ti. Ah, la vista es una de ellas y probablemente lo más importante. Y son segmentos lógicos de código en tu aplicación. Por lo que en la mayoría de los casos, diferentes pantallas o por cada pantalla que tengas en tu app, va a tener su propio controlador de vista. OK, así que no tan grande de un trato. Ya las has estado usando. Sigamos adelante y veamos cómo trabajan juntos. De acuerdo, Entonces si voy al tablero principal de cuentos aquí, ya
sabes, podría hacer doble clic. Y ya sabes, no
hay nada más aquí. Esta pequeña era aquí representa que este es el controlador de vista inicial. Puedo tener múltiples controladores de vista. Sabes que todos estos podrían ser sus propios puntos de vista. Y ya sabes, cada uno solo estoy controlando arrastrando. Cada uno podría conectar cada uno. Sólo estoy dando click en show. Entonces de alguna manera o forma estaban diciendo Hey, esto va a este. Éste va a éste. Este va a éste o éste podría ir aquí está bien demasiado eso muchas
cosas diferentes que podrías dio Y, uh Así que así es como te mueves y ves a los controladores. Es principio realmente simple, Teoh, ¿ entiendes? Es sólo un montón de código. Sólo tienes que saber que me ven Cargar. De acuerdo, ahí es cuando, uh, cargaron
todas las vistas. Por lo que se llama cuando todas las vistas han aparecido en la pantalla. También hay otra que puedes anular llamada vista aparecerá. Esto es antes de que las vistas se hayan cargado justo antes de que estén a punto de aparecer. Y vas a querer asegurarte de que llames súper a todos estos para asegurarte de que solo estoy de
paso. Qué, viniendo aquí al pasar esto a aquí. Entonces básicamente, estoy llamando a la implementación de las clases de padres solo para que no se rompa nada. De acuerdo, entonces hace lo que tiene que hacer porque lo estamos anulando. Estamos tomando el control y así aparece el combustible. Por lo que esto se llama justo antes de que las vistas aparezcan en pantalla. Y, uh, esto en realidad se llama cada vez. Entonces lo que quiero decir es, y digamos que aquí creo mi punto de vista. Este controlador de vista carga y luego vamos a otra vista, y luego regresamos. Bueno, esto se va a llamar de nuevo cada vez que estoy a punto de aparecer visualmente. Lo interesante se ve Load on Lee llamó una vez cuando se cargó por primera vez en la memoria hazlo Error muy común de hacernos que los programadores vayan aquí. Y cada vez que aparece esta vista en la pantalla, escriben código aquí, ya
sabes, así que quieren refrescarse, ya
sabes, si quieren refrescarse, ya
sabes, una mesa o algo así, Lo
hacen ahí mismo. Bueno, eso sólo va a ser llamado, probablemente una vez. Y ahí es cuando las cargas de memoria así la vista será aquí arriba. Probablemente es donde quieras hacerlo cada vez que realmente aparezca de nuevo en la pantalla. Ya sabes, podrías refrescar tu mesa mucho mejor lugar para ponerla. Entonces, um, si vas a aparecer es ah, um algo que usarás frecuentemente vista hizo diseñar sub use ok. Llamado para notificar al controlador de vista que su vista acaba de presentar su sub uso. Um, a veces cuando estás cambiando la apariencia visual de la pantalla que puede que no actualice. Y así si no lo hace, este es un gran lugar para poner código eso poner código que modifique el diseño de la vista. De acuerdo, um, si la vista aparecerá no funciona. OK, uh, mirando la cosa aquí dice llamada para notificar al controlador de vista que sus espectadores acaban disponer a sub uso cuando el cambio de balance para un controlador de vista ver la vista de solo las posiciones de su sub uso y luego el sistema llama a este método. No obstante, este método que se llama no indica que se
hayan ajustado los diseños individuales del sub uso de vistas . Entonces, um, todos modos, puedes leer la documentación aquí siempre que haya ah cambio visual, va a llamar a este método para que otra cosa más a la que puedes llamar para ser funcional aquí, Um, así que esas son algunas cosas que vas a usar mucho. Por supuesto, sí
viste al principio a cada uno, el sí recibió una advertencia de memoria. Entonces si hay si estás recibiendo tu advertencia de memoria, puedes descargar algo, fortalecer las cosas, hacer una mejor experiencia para el usuario. Um y así que eso es un controlador de vista. Si quieres crear el tuyo propio, OK, lo
hemos hecho bien. ¿ Hemos hecho esto? No estoy seguro de que hayamos hecho esto o no. Pero ustedes chicos a la derecha, hagan
clic en esta carpeta y vayan a un nuevo archivo y vayan a clase de toque fuente y cacao. Está bien. Y, uh, vamos a llamar a esto,
uh, uh, 2do 2do VC para controlador de vista. Y asegúrate de que hereda de ti. Yo veo controlador y Swift está bien. Haga clic en Siguiente. Y está bien, ahora tenemos un 2do 1 Tengo algún código calderero aquí. Y así si vamos a quedarnos así pecamos otro controlador de vista, eso es todo. Si vamos a nuestro storyboard de puntos principales ahora, puedo hacer clic a este tipo aquí mismo. ¿ De acuerdo? Se me hace clic en él. Puedo dar click a esta casita cuadrada la parte superior, derecha. Y no pude cambiar su clase a segunda VC. Entonces ahora lo que estamos diciendo es que este es mi abrigo. Este es mi controlador de vista, y está conectado a tu abrigo por aquí. Entonces lo que sea que haga aquí va a pasar por allá. Entonces, um, si solo por diversión, si tomamos esto, saquemos el Segway por aquí. Elimina eso, y arrastremos nuestra flecha de punto de entrada por aquí a nuestro segundo tú controlador. Es solo decirle a nuestra aplicación que este es el controlador de vista inicial, pesar de que dice controlador de segunda vista. De acuerdo, vamos a nuestro código ahora. Um, así para fines de demostración. Este es el código para los primeros controladores. Recuerda, ¿cómo lo cambiaría a verde? Vayamos a hacerlo de nuevo. Tan visto color de fondo te iguala color de ojos color verde punto. Entonces cambiemos ese fondo a verde solo para demostrar que no va a aparecer. Y en el segundo controlador de vista, vamos a cambiarlo para leer tan bien, digamos visto arriba color de fondo igual a usted color de ojo punto color rojo. Y cuando ejecutamos esto, deberíamos ver un controlador Red View en la pantalla o vista en la pantalla. Porque designamos a nuestro segundo controlador de vista como el controlador para nuestra aplicación, y también especificamos ahí está. También especificamos esto es realmente importante. OK, que esta es la clase aquí mismo. Segundo VC. Imagínese si nos quitáramos esto. Ooh, vamos a cambiártelo de nuevo. Yo veo controlador. Vamos a quitárselo, ponerlo de nuevo a su clase predeterminada y simplemente ejecutar el programa y ver qué pasa. De acuerdo, nota Nada está pasando, ¿de acuerdo? Es porque nuestros códigos no se están ejecutando. Es solo vomitar un controlador de vista aleatorio ahí. Tan muy importante es cuando estás trabajando contigo Controladores, asegúrate de establecer la clase del archivo en el que estás trabajando aquí mismo. De acuerdo, así que eso es controladores de vista en general como un todo, los
vas a usar en tu proyecto. Hay algunas variaciones diferentes del mismo, como un controlador de vista de tabla, que es, ah, vista de
tabla que hereda de ti. Yo veo controlador. De hecho, podemos hacer eso aquí mismo. Vayamos a nuevo archivo y ah, clase táctil de
Kobo. Esta vez en su lugar vamos a hacer esto. Se llama Tabla V. C y vamos a seguir adelante y hacer clic yo tabla view controlador y agregado basura en él no le pidió
que hiciera eso y crear bien. Y así lo que hizo fue que me creó otro tipo de ustedes controladores que este es usted controlador de vista de tabla
blanca proporcionado por Apple y acaba de configurar para una mesa, se pone todo un montón de cosas por defecto aquí para usted. Y si mando haga clic en él. De acuerdo, observe que en realidad hereda del regular. Tienes tu controlador. Entonces solo le están quitando todo esto y agregándole algunas cosas más, y por cierto. Normalmente no uso su controlador de vista de tabla. Normalmente en realidad creo un controlador de vista regular y lo hago Esto aquí mismo. Esta cosa exacta que ves justo aquí Bueno, tal vez no el pergamino de ti delegado, Pero esta tabla vista fuente de datos y este delegado de vista de tabla, suelo implementarlos yo mismo. Entonces sé exactamente lo que está pasando. Controlador de vista de tabla. Puede que quiera o no algunas de las cosas que te ofrece. Siempre soy más minimalista queriendo cosas que solo quiero. Entonces, uh, ahí lo tienes. Uh, y, uh, esos son sus controladores de vista. Vamos a hablar de cómo intercambiar entre ellos en otro video, Pero sólo tienes que saber que hay funciones debajo de él y lo que te animaría a dio es hacer clic en el controlador View y por aquí en el lado derecho, sólo tienes que ir a una referencia de clase, ¿de acuerdo? Y puedes mirar todos los diferentes detalles de lo que proporciona, cómo funciona así. Tiene un montón de cosas manejando rotaciones de vista. Cómo dedo del pie, um, implementar un controlador de vista de contenedor, configurar un controlador usando archivos nip que en realidad iban a hablar de eso también a y en el siguiente video, y solo todo el diferentes propiedades y cosas que puedes hacer con él. Entonces, uh, nuevo, deberías estar pasando mucho tiempo en esta documentación aprendiendo tanto como sea posible y cosas
muy cool. Eso es una envoltura para la vista. Controladores. Yo solo quiero darte dentro de ella. Es más que algo que estás usando. Hay extra algún propósito detrás de él. Y sólo recuerda, realmente no se
puede tener ninguna vista en la pantalla y hacer nada sin un control de control. Esto es todo. Ya estoy hecho nuestro precio, miedo a la muerte. Así que detente, Ven a verte pronto.
49. Clases de tamaño (diferentes diseños para los tamices de pantalla): Yo, ¿Qué pasa, todos? Mark Crazier Deb pendientes dot com Y hoy vamos a perro sobre gafas de tamaño, Así que adelante y abre un nuevo proyecto de Código X. Way escribirá uno nuevo, y una aplicación de una sola vista está bien. Llamemos a esto dimensionándolo. Llámalo como quieras. Asegúrese de que Universal haya seleccionado. Entonces hablemos de la filosofía de diseño como faras IOS se refiere. De acuerdo, si lo que Apple quiere y recomienda es que si no vas a poner esfuerzo real o poder cerebral en, digamos, apoyar el iPad, además del iPhone, preferiría no hacerlo apoyarlo y apoyarlo, Um, una
manera que sea menos que la mejor experiencia de la historia. Entonces lo que harán muchas empresas es que queremos un iPad, y así solo lanzan una versión apenas funcionando, y está bien, pero es funcional y realmente lo que recomiendan es usar clases de tamaño para hacer su aplicación se ve hermosa en todos los tamaños de pantalla. Ahora, con la llegada de las vistas del personal, soportar múltiples tamaños de pantalla es aún más fácil porque las vistas de pila cambian de tamaño y son fantásticas, simplemente absolutamente fantásticas. Pero salgamos y hablemos de la clase básica de suspiros. Entonces vayamos a nuestro tablón principal de cuentos. ¿ De acuerdo? Y, ah, para este proyecto, vamos a usar una imagen aquí. En realidad, vayamos primero a la carpeta de activos. Y yo voy Teoh drag en el propio señor Dwayne el Rock Johnson. Ah, sí. Está bien. Y volvamos al storyboard. Lo que vamos a hacer es fingir que estamos construyendo una aplicación muy simple, como una aplicación de biografía sobre individuo, que resulta que es la roca. Y queríamos lucir bien en todos los tamaños de pantalla. De acuerdo, así que estoy haciendo esta pantalla completa aquí. Voy a apagar el lado izquierdo para sólo tener más espacio de pantalla aquí. Lo que vamos a dio es que vamos a abrir el avance aquí, ¿de acuerdo? Y cambia de automático a previsualización. Por lo que hago clic en el editor asistente y luego cambié para previsualizar aquí. Está bien. Y así aquí está nuestra pantalla. Eso es lo que queremos hacer es que esto se vea bien en iPhones en retrato paisaje y iPad. De acuerdo, entonces hablemos de cómo funcionan las clases de tamaño. Por lo que estás acostumbrado a hacer este acaparamiento. Digamos que tú y imagen de ti. Está bien. Ponerlo aquí y luego poner restricciones justo aquí, ¿verdad? Eso es lo que solía hacer. Y eso está bien. Y pero nota aquí en la parte inferior, dice, w any h cualquiera que signifique cualquiera con cualquier altura. Si hace clic en esto, observe cómo está cubriendo esta sección central justo aquí. Entonces esto es cualquiera con cualquier altura, básicamente, estas tus clases de tamaño. De acuerdo, acabo de cambiarlo por accidente. Entonces estas son tus clases de tamaño. Y lo que estamos diciendo es, um queremos escoger un modo que sean restricciones y a los esfuerzos de storyboard se van a aplicar. Entonces, por ejemplo, está
bien ahora, vuelta en el cualquiera Y eso significa que cuando ponga restricciones aquí, se va a aplicar a cualquiera. Vamos,
Vamos a mostrarte lo que quiero decir. Entonces cambiémoslo a aspecto. ¿ Te sientes bien? Y vamos a seguir adelante y fijarlo desde arriba, dado dentro de una altura. Y sigamos adelante y lo alineemos en el centro. De acuerdo, entonces si ejecuto esto, ¿por qué no necesité ejecutarlo? Se podía ver en el lado derecho. Entonces aquí está el retrato. Sigamos adelante y lo sumamos en paisaje a otras cuatro pulgadas, así que hay sello paisajístico. Mismas restricciones a la derecha, 14 de arriba y derecha en el centro. Mismas restricciones exactas. Si lo
hago, almohadilla va a ser las mismas restricciones exactas para todos estos. Ahora, por
supuesto, los iPads una pantalla enorme. No lo queremos en medio aquí en esta pantalla porque es paisaje,
Así que las cosas están apagadas, ¿de acuerdo? No son de la manera en que los queremos. Pero actualmente nuestras limitaciones se están aplicando todo. Entonces ahí es donde vienen las clases de tamaño. Ahora, lo que haces para activar clases de tamaño son cambios a un modo determinado, y esto es muy, muy importante. ¿ Presta atención a qué? Motor en muy, muy importante. Fácil de olvidar. Y te mostraré por qué. Entonces ya sabes cómo a través de una imagen aquí en cualquiera? Vale, eso significa que va a estar en todos los tamaños de pantalla Ahora, aquí está el trato. Tienes que asegurarte de que los controles que quieres que todas las pantallas tengan que ponerse en cualquier modo como Wait. ¿ A qué te refieres? De acuerdo, piensa en esto. Cuando estás construyendo aquí tu story board, todo lo que quieres estar en todas las pantallas. No estoy hablando de dispensar cómo se ve, pero sólo esos controles que quieres en todas las pantallas hay que poner aquí en cualquiera y para mostrarte por qué. Vamos a despegar la roca. De acuerdo, entonces ya estamos en cualquiera. Pero ahora cambiemos esto para compactar con altura regular. Y esto va a ser todo, en realidad, Nieve Niños. Vayamos a, uh, altura
compacta. Se trata de iPhones. Esto es todo iPhones y paisaje OK, todos los iPhones y aviso paisajístico. Cuando hago clic que mi lienzo cambia. Ahora vamos a arrastrar la vista de imagen en ok? Y vamos a seguir adelante y, uh, hacer aspecto sentir Cambiemos a la roca y sigamos adelante y pintarlo desde arriba y darle un realzado con y alinearlos en el centro. Entonces es genial, ¿verdad? ¿ Por qué no está aquí en la pantalla extranjera? Will es el único paisaje estaba en lo sabio del paisaje. Él no en el guión extranjero. Bueno, la razón por la que se agrega la vista. De acuerdo, Mientras estás en un foso, cualquier cosa que hagas mientras estás en un motivo Onley va a aplicar a ese modo. Entonces es muy importante que pongas todas las cosas que quieres en esta pantalla en cualquier cualquiera
con cualquier altura Y luego cuando quieres restricciones específicas, las dispones porque la idea es que si no quieres que las cosas sean visibles en el iPhone, pero lo haces en iPad, o viceversa. Así es como puedes hacerlo. Puedes agregar cosas y cambiar cosas en función del modo en el que estés. Entonces ahora mismo no está en retrato, y eso no es eso no es lo que queremos. Queremos que esté disponible en todas las clases de tamaño, así que solo queremos cambiar cómo se ven las cosas. Voy a borrarlo, volver a cualquiera. Entonces vamos a ponerlo de nuevo. Por lo que está disponible en todos los tamaños de pantalla. De acuerdo, entonces él está ahí, y eso está bien. Entonces, ¿alguna configuración? Aquí está la regla. Esta es la regla. Cualquier configuración que quieras aplicar a todo en cada modo haciendo cualquiera. Entonces si quieres cambiar de color, quieres cambiar con alta tecnología, dimensionarlo en eso, hazlo en cualquiera. De acuerdo, um, algunas cosas no importan que se aplican a todas ellas. Pero algunas cosas que te hacen nunca Seguro, Así que asegúrate de que solo cualquier cambio que quieras globalmente fronteras, colores, lo que sea que lo hagas en cualquiera con cualquier altura. De acuerdo, entonces hablemos de esto ahora. Por lo que queremos apoyar retrato curso. Disculpe. Teléfonos de
retrato, retrato paisaje. También queremos apoyar el IPAD. De acuerdo, tenemos tres tamaños de pantalla aquí que queremos apoyar. Um, y así veamos cómo podríamos hacer eso. Lo que queremos es, uh lo que era Simplemente lo haremos como vamos por aquí. Entonces veamos las diferentes opciones que tenemos. Por lo que el cuadrado sencillo es compacto con cometa compacta, y eso dice que esto es para iPhones de 3.5 pulgadas para pulgadas y 4.7 pulgadas en paisaje. Te dice exactamente a qué se va a aplicar por lo que se va a aplicar al iPhone. El iPhone de 3.5 pulgadas foráneo para s cuatro pulgadas, iPhone. Um, ya
sabes, iPhone cinco. Y la 4.7 pulgadas es el iPhone seis. Entonces OK, entonces sabemos exactamente lo que esto va a aplicar a los teléfonos en esos paisajes en Lee. ¿ Qué pasa con esto? Esto es para todas las alturas compactas y todos los outs. Entonces todos los iPhones en paisaje, ¿recuerdas? Estás pensando. ¿ Son todos ellos? Bueno, mira esto. iPhones de 5.5 pulgadas en paisaje El iPhone six plus es. En realidad, es cosa propia Puede tener. Ah, no
sé si lo sabes, pero el iPhone six plus puede tener diseños de vista dividida. Es como que puede funcionar como un iPad porque es tan grande. Entonces es un teléfono más grande. Y así se maneja de manera diferente. Por lo que tiene su propia clase de tamaño. De acuerdo, así son todos los diseños de altura compactos. Um, esto es iPhones y paisaje. ¿ Esto es alguno? Por supuesto. Vayamos todo el camino hacia abajo Este camino. Esto es todo iPhones en retrato. De acuerdo, esto es todo diseños de altura regular, iPhones y retrato y iPads y retrato u paisaje. Esto es s Así que esto es ah, todo diseño de altura regular. Entonces los diseños que tienen una altura de tipo regular, um y esto es exactamente justo aquí. iPhones en retrato iPads en retrato u paisaje. Y entonces esto es para iPads en retrato o paisaje. Entonces, ¿esto es correcto? Aquí están los iPads en Lee. OK, iPads solo están ahí, y en realidad no separa los iPads con retrato u paisaje. El motivo de ser es porque hay tanto espacio de gritos que realmente no importa en mayoría de los casos, pero puedes directamente aplicar cosas directamente al modo paisaje. Es solo que lo pensamos cuando tienes y aboga por el odio cuando tienes una pantalla que es tan grande, sabes que puedes poner cosas en cualquier lugar. ¿ En serio? Entonces, ¿se trata de iPads en retrato o paisaje? Um, otra vez, Um, eso es interesante. En realidad no hay. En realidad no es muy diferente. Aquí hay diferencia aquí, ¿no? Esto es solo regular dentro. Esto es regular con y altura regular. Um, está bien, y entonces ese es el iPhone seis plus. Entonces lo que queremos hacer es que esto se vea genial y todo el diseño, Así que lo primero que vamos a hacer es que vamos a apoyar. Queremos apoyar iPhones y retrato y iPads en Portrait. Entonces los vamos a hacer juntos. Por lo que todos los diseños de altura regular, iPhones y retrato y iPads y retrato u paisaje. OK, entonces aquí hay algo muy importante. Recuerda, una vez que apoyas una clase de talla, debes asegurarte de apoyar todas las clases de tamaño. De lo contrario, es que no se va a ver bien, Y algunos de ellos están bien, no solo
funciona mágicamente si apoyas una, porque estos ajustes solo se van a aplicar a una clase de tamaño específico. De acuerdo, entonces lo que queremos es en modo retrato. Digamos que queremos que esta imagen vaya desde los márgenes. ¿ De acuerdo? Al igual que así hagámoslo un poco más grande. Y, uh, eso decía la imagen aquí y vamos a seguir adelante y decir aspecto todavía. Y probablemente debería haber hecho esto en cualquier modo. Ajuste de aspecto sin feckless. Ahí vas. Um, bueno, uh, sólo hacer aspecto. Siento que me gusta más aunque le corten. Eso está bien. Es artístico. De acuerdo, así que vamos a conseguir algunas restricciones aquí. Entonces somos un desde el cero superior desde la izquierda es tu desde la derecha, Estos en los márgenes, y vamos a seguir adelante y darle una altura fija. De acuerdo, Así que nota cómo está roto y paisaje porque aún no hemos establecido esas restricciones. Eso es lo que te estoy diciendo. Una vez que actives las restricciones, tienes que admitir todos los tamaños de pantalla. Ahora, um uh, y algunos. Por supuesto, algunas preocupaciones funcionan. Tamaños de pantalla cruzada simplemente bien. Entonces se ve justo aquí, y el iPhone cuatro en el iPad. Es genial, ya
sabes, es una especie de corte. Eso está bien. Uh, vamos adelante. Eso se ve bien, así que sigamos adelante y volvamos a cualquiera. De acuerdo, entonces doy clic ahí abajo. Tiene alguna porque quiero agregar un nuevo control y lo que quiero agregar es, quiero agregar una etiqueta para Tiene una descripción sobre las rocas? Solo tecleemos el rock. Son la biografía de Dwayne Johnson. Vamos a ir a agarrar algunos textos aleatorios, OK, no
quería quitárselo. Wikipedia simplemente no quería lidiar con todos los enlaces. Ahí vamos. Adelante y agarremos su temprana vida sólo por diversión, porque es genial. Y mira lo increíble que es. Simplemente guapa, chico
buff. Sólo quiero darle un puñetazo a alguien esa cara Yo quiero ser como la roca. De acuerdo, vamos a ver aquí. Entonces queremos etiquetar, ¿verdad? Entonces recuerda, estamos en cualquier modo. ¿ De acuerdo? Si quieres agregar algo nuevo haciendo cualquiera, así que es aplicable en todos los tamaños de pantalla, y lo que haremos es que solo sigamos adelante y la talla no importa demasiado en este momento, porque vamos a cambiar eso nosotros mismos. Pero sí quiero poner aquí el texano, así que cambiemos las líneas de esta etiqueta aquí a 15 del lado derecho. Y vamos a seguir adelante y paseamos en su descripción allí. De acuerdo, así que un par de cosas, uh, una es no importa que se corte ahora mismo porque no queremos establecer la altura ni nada por el estilo En este momento, queremos hacer eso en el tamaño específico clases. Además, quería mostrarte algo más. Siempre que veas aquí un signo más, eso significa que es aplicable como clase de talla. Eso significa que en realidad puedes establecer el tamaño de fuente. Entonces te lo estaba diciendo. De acuerdo, en realidad
puedes establecer tamaños de fuente, cosas así a clases específicas. Por lo que algunas de estas cosas funcionarán sin importar en qué clase de tamaño te encuentres. Um, se aplicarán en toda la pizarra. Pero algunas de estas cosas donde se ven estas ventosas pueden tener valores específicos para un
tamaño específico . Las clases no iban a jugar ahora mismo puedes jugar con él por tu cuenta. Es realmente fácil. Y lo hemos hecho un par de veces con, uh, stack usando en algunas de las lecciones de este curso. Entonces no es gran cosa. Así que juega alrededor de eso es importante que aprendas a jugar con las cosas y familiarizarte con los resultados. ¿ Estás aprendiendo más rápido de esa manera. Entonces estamos en cualquier modo. Tengo mi etiqueta. Eso está bien. No me gusta el color. Vamos dio gris oscuro. Y, uh, vamos a cambiar esto. ¿ Quieres noticias Helvetica? Bien. O digamos,
uh, ¿ hay,
como, como, una gran Sólo una noche, Alec, Tal vez decir. Ahí vamos. Sólo por diversión. De acuerdo, así que vamos a hacer ahora es volver atrás, cambiar de cualquiera y volver a la altura regular. De acuerdo, entonces sabemos que está donde tiene que estar, pero esto no es así lo que queremos dio es moverlo hacia abajo justo por ahí. Voy a mover esto por aquí. Voy a mover esto por aquí, ¿de acuerdo? Y sólo vamos a seguir adelante y fijarlo desde arriba y desde la izquierda y desde la derecha, y ah, no
estoy seguro de querer poner un máximo todavía. Ya veremos qué pasa. De acuerdo, así que aquí mismo en este modo, se ve muy bien por aquí. Está bien. No tenemos suficiente contenido para cubrir toda la pantalla, así que, ya
sabes, ¿Qué? A lo mejor quiero decir, tal vez quieras establecer como, una fuente más grande en este tamaño de pantalla por aquí. A lo mejor no. No vamos a meternos con ello, pero eso podría ser algo que quieras considerar. De acuerdo, entonces se ve bien aquí. Se ve bien para escuchar. Hablemos de este diseño de cuatro pulgadas. Aquí. Vamos a nuestra clase de tallas y digamos Ah, para diseños de altura compactos para todos los iPhones y paisajismo perfecto. De acuerdo, así que ten en cuenta cómo no hay restricciones. Si hago clic en la regla, ahí no hay nada. ¿ De acuerdo? Correcto. Nada. Entonces lo que quiero dio es poner algunas restricciones. A qué queremos lucir en Alaska. Bueno, tal vez en el paisaje, queremos la imagen por aquí. Queríamos más de una plaza. Entonces,
uh, uh, tal vez hagamos algo como esto. ¿ De acuerdo? Y sigamos adelante y lo pinchamos de nuevo. Estamos en cualquiera dentro de cualquier altura compacta pendiente desde cero desde la izquierda, cero desde la parte superior. Vamos a darle un dentro de una altura. OK, noten que al instante cambió por aquí. Bastante cool. Y en el texto, Vamos a moverlo aquí. Vamos a mover esto al filo y hagamos un gol que Hagamos que vaya todo el camino hasta el fondo. Al igual que eso y sí, eso me queda bien. Entonces vamos a seguir adelante y fijar esto a la parte superior y fijarlo a la izquierda. 19 de la izquierda, cero de la derecha. A menos que su banderín 20 de abajo. Aquí. De esa manera, solo
se siente toda la zona y mira eso. Por lo que en modo retrato, se ve bien en modo paisaje. Se ve bien aquí dentro. Se ve bien. No tenemos suficiente contenido. Uh, aquí es donde en este modo, posible que desee
agregarle algunas cosas más. Hazlo parecer más fresco. Um, OK, así que se ve bien en múltiples tamaños de pantalla. Así es como lo haces. ¿ Así es como soportas múltiples dispositivos? Um, así que sigamos adelante y solo corramos aquí. Voy a cambiarlo. Teoh iPhone, cinco c Cómo se ve eso. De acuerdo, así que ahí está. Este es Retrato. Eso es lo que parece un paisaje. Oye, mira eso. Hice lo suyo. Ahora no es perfecto, y nunca,
nunca va a ser perfecto. A ver cómo tipo de perdimos algunos bordes aquí, aquí y aquí todavía por jugar. Nunca es perfecto. Está bastante cerca, sin embargo. La mayor parte del tiempo. Por lo que se ve bien. Se ve bien en retrato. Se ve bien paisaje. Y viste lo que pasó. Primero lo corrimos, ¿verdad? Simplemente no funcionó. decir, Esdecir,hizo esto las mismas restricciones y todas ellas tan claramente son diferentes. Las restricciones están funcionando en diferentes puntos de vista. Entonces no hay nada más que eso. Todos tus controles y cosas así solo les ponen restricciones en las diferentes
clases de tamaño que quieres apoyar, que quieres apoyar donde quieras moverlo, cosas así. Podrías hacer cualquier altura con cualquier cosa. Puedes cambiarlo por todas partes. Sólo recuerda que si agregas un control en un modo determinado, sólo
va a estar en ese modo. Entonces si quieres agregar controles que estén en cada clase de tamaño, tienes que hacerlo en el cualquiera con en cualquier altura. Entonces, ¿alguna pregunta? Bueno, ya que no hay preguntas, vamos a seguir adelante y llamar a este video hecho, empezar a usar clases de tamaño y empezar a hacer unas aplicaciones hermosas. Um, diré que trabajé con desarrolladores profesionales todo el tiempo y la mayoría de los desarrolladores con los que
trabajo, no
saben cómo hacer esto, verdad? Como si fueran realmente como yo sé codificar. Podría hacer todo tipo de algoritmos locos y cosas así, pero no saben como soportar múltiples dispositivos,
así que empiezan a hacer cosas realmente tontas, Como tener múltiples, uh, archivos
zip para múltiples diseños de pantalla. No hace falta que nunca hagas eso. Qué dolor. El doble del código. El doble del trabajo a veces. Entonces apoyaste todo lo que le dicen a su jefe. Ah, no
podemos apoyar el iPad. Es el doble de trabajo. Bueno, ¿
fue realmente el doble de trabajo? Probablemente no. Simplemente no sabes lo que estás haciendo. Entonces sabes algo muy valioso. Empieza a usarlo de inmediato. Y si comienzas a trabajar en un trabajo o proyecto que no tiene estos, empieza a implementarlos. Es una muy buena práctica recomendada por Apple. Ahora estás por delante del juego, así que felicitaciones
50. UITabBarController: Hey, todos, Mark Price aquí, Deb jabones dot com. Y hoy vamos a hablar de tener barras, Te vas al lado derecho para el fondo. ¿ Dónde guardas tu código ex y recortas tu código ex o Exco? Beta lo frenó Lo vamos a hacer es crear un nuevo proyecto. Y hasta ahora, la
mayoría de las cosas que hemos estado haciendo han sido solteras las aplicaciones. Pero ahora nota que has estado queriendo hacer click en esto, y ahora lo has hecho. Ya lo has visto ahí. Algunos de ustedes han estado realmente queriendo hacer clic en esto. Yo también. Pero no vamos a tabular aplicación, ¿de acuerdo? Y a esto se le llama esta prueba de tabulación. Esto es realmente súper súper simple. De acuerdo, solo crealo. Ponlo donde quiera. Por lo que esta es una aplicación con pestañas. Eso es todo. No es gran cosa. Entonces ve a tu storyboard principal. ¿ De acuerdo? Está bien. Por lo que noto que tienes una ficha. Nuestro controlador aquí y tiene los primeros en un segundo. Ya sabes, estos controladores de vista aérea. De acuerdo, así que todo tiene barra hace todo lo que hace se administra diferentes controladores de vista. Ahora, en la mayoría de los casos, no
vas a tener más de cinco, acuerdo? No vas a tener más de cinco pestañas en una pestaña están bien, Um, simplemente no
es buena práctica de ninguna manera. Eso lo usa cuando tiene sentido. Muchas aplicaciones aún usan esto como la tienda de aplicaciones de Apple. Uh, ya
sabes, Tab son cosas así. Por lo que una buena experiencia de usuario no es más de cinco. OK, entonces esto es un tabulador o no es mucho para ello. De hecho, incluso
podemos construir y ejecutar esto ahora mismo. Vayamos a nuestra primera vista aquí y solo cambiemos el color de la vista. Vamos a cambiarlo. Estoy haciendo clic en este botón aquí mismo. Esto es cambiarlo a azul y vamos a cambiar éste también. Leer. Vamos a ejecutarlo. Ahí vamos. Y así ahí está. Por lo que el primer controlador pocos se carga justo aquí y los rojos el segundo
controlador de vista . Y si hago clic en las pestañas, solo cambia de ida y vuelta. Quiero decir, eso es literalmente. Al igual que danos código para que primero. Pocos controlan nuestro segundo controlador de vista. Eso es todo lo que se hace. Es solo que nos acaba de dar múltiples vistas en contexto para trabajar con Um, así que ahora con eso dicho, sabes la diferencia entre usar esto puede ser un controlador de navegación es que no estamos haciendo estallar una vista sobre la otra después de la otra después de la otra. Cada sección en la pestaña, tu controlador gestiona su propio estado. Entonces, ya
sabes, si tengo este rojo aquí y tengo tres controladores de vista debajo de él, esos están todos en ese estado. Y si tengo tres controles de vista en el azul y perdedor todos bajo ese estado y se va
a tratar de mantener estos en la memoria lo mejor que pueda, Así que cuando cambies de ida y vuelta tiene carga muy rápida. Pero claro, si empiezas a usar demasiada memoria y uno de los caminos aquí,
uno de los botones, el controlador de la entrevista, tirará
lo que sea que sea el otro. Y se recargarán cuando vuelvas a entrar. Entonces, uh, no mucho. Hazlo otra vez. ¿ Y si quieres agregar 1/3 1 incluso su arrastrar un controlador de vista aquí otra vez, tendrías que crear el código para esto. ¿ Te acuerdas? Al igual que hay un primer control de segundo. En realidad, tienes que hacer lo mismo aquí como lo hemos hecho en el pasado y lo que podrías hacer es solo controlar el arrastre desde tu pestaña. Nuestro controlador por aquí. Y queremos hacer ah, bajo relación Segway. Ustedes controladores y noten cómo ahora nos dio un Ya sabes, nos dio un nuevo botón aquí abajo. Este artículo aquí mismo. Ver, um, ahí está nuestra ficha. Así que no es gran cosa, ¿verdad? No es gran cosa. Tienes tus, uh tienes tus pestañas ahí,
y, y, uh, puedes cambiar los botones de estos si quieres. Um, si tuvieras aquí una imagen seleccionada, solo
tenemos las predeterminadas en la app que nos dio. Pero puedes crear tus propias imágenes, y podrías simplemente cargarle ahí dentro. No es gran cosa, al
igual que lo hemos hecho. Sólo tienes que arrastrarlo a la carpeta de activos y ponerlo aquí en la pestaña. Son, um estoy tratando de hacer esto más emocionante. No hay mucho. Hazlo. Es así de sencillo. Eso es lo fácil que emita. Simplemente tienes un tabulador son ahora. Um, así que le das un título. Um, llama a esto , Ya
sabes , perfil, pantalla, lo que quieras cambia ahí mismo. Um, OK, así y otra vez, cada uno Cada pestaña puede tener su propia vista. Control. O para que lo sepas, podría tener este 1er 1 Lo podemos mostrar aquí. Digamos que este es Amarillo ha cambiado. Vamos a hacer clic en él. Cambia la vista a amarilla. De acuerdo, entonces y tal vez, uh ,
en realidad, vamos a deshacernos de ese Segway. Acercar aquí no le gusta eso. Vamos a poner un botón aquí para que pueda ponerme un botón aquí mismo en medio. Por supuesto, Azul sobre azul es ridículo. Vamos a cambiar el dedo del texto blanco o gris claro y luego sólo controlar arrastrado desde el botón por ahí y haga clic en mostrar. Y así solo estoy tratando de mostrarte, como cualquier otro, um, controlador de
vista en el Segway, puedes navegar entre ellos. Um, aquí vamos. Entonces haga clic en el botón. Me lleva al amarillo. Está bien. No es gran cosa. Se está ejecutando de nuevo y solo te enseñas. Ahora hay tres pestañas. ¿ De acuerdo? Todo está funcionando. Eso es todo. Eso es todo. Eso son barras de tabulación. Tú sólo, uh, igual que ya lo hemos hecho. Arrastras los controladores de vista por ahí, los conectas a la pestaña, son Y básicamente estás diciendo, Hey, mi aplicación tiene múltiples estados no tener en cuenta, realmente
deberías usarlos para lo que para los que están acostumbrados. Esto debe ser que debe ser estados. Al igual, si tienes una siesta donde tengo una sección de perfil sería una pantalla de inicio y algo más . barra de pestañas podría ser una gran opción. De acuerdo, um, para asegurarnos de que lo más grande que necesitamos averiguar es cuándo usar la barra de pestañas. Y eso todo depende de tu aplicación. Hay un montón de APS por ahí que los usan mucho que no Así que eso es Tab. El nuestro, no
creo, se vuelve más complejo. Entonces eso es todo.
51. Storyboard sigue: Yo, ¿qué pasa, todo el mundo? Yo soy Mark Price of death pistas dot com, y hoy vamos a hablar de Segways, que son el medio por el cual abres nuevos de ustedes controladores en tu pantalla. Y así voy a ir a presentar nuevo proyecto gay ahí mismo, y vamos a seguir adelante y hacer una aplicación de una sola vista. Vamos a llamar a esto Segways cigs seguis, y dar click siguiente y poner en el escritorio aquí. Y así algo interesante es Segways y las palabras de la historia en realidad no siempre existieron. Creo que salió con IOS cinco, creo donde x código 51 del otro. Y, uh, estos no existen. No estoy seguro de que personalmente todavía esté 100% vendido sobre él. A veces los uso. A veces usan storyboards. A veces no lo hago. Y el siguiente video te vamos a mostrar cómo no usarlos, y puedes tomar la decisión por ti mismo. Pero básicamente, el Segway es cómo vas de vista a ver no es gran cosa, y son bastante simples. Entonces lo que Apple introdujo fue esta noción de tener un guión gráfico que donde pudieras visualmente dónde estaban tus pantallas Ahora nunca podrías hacer esto antes. Antes todo era programático y tenías un montón de archivos. Y pero Y hay en este caso aquí, son como, ¿qué? Queremos que la gente tenga una forma visual de escena, cómo se pone su aplicación para que puedas poner un montón de controladores aquí. Ya sabes, donde quieras, realmente no
importa. Y, por
supuesto, este es el punto de partida de la aplicación Puedes ponerte lo que quieras para ser tu controlador de vista inicial. Entonces aquí mismo, tenemos tres controladores de vista, ¿verdad? Está bien. Entonces lo que queremos a Dio es ir de éste a éste a éste. Y así quiero hacer es cambiar los colores en estos realmente rápido. Simplemente sabemos cuáles son cuáles. Y así en este 1er 1 minuto, hice clic en la vista. De acuerdo, Ve cómo es la vista seleccionada aquí y voy al lado derecho y cambio el color de
fondo, algo más bonito. Eres como, Oh, eso es más lindo. Bueno, entonces, el siguiente que está justo aquí. O podría simplemente hacer clic en la vista aquí en este lado izquierdo. Cambiemos este por un bonito azul. Es un poco mejor. Y luego el 3er 1 Cambiemos esta vista a una lectura agradable. Estos colores en realidad se veían muy bien juntos. Yo mismo los escogí. Sí, lo sé. OK, entonces están nuestros tres controladores de vista que cada uno tiene tres vistas. Si recuerdas, cada controlador de vista tiene una vista, y lo que queremos hacer es volver a pasar de una a otra. Entonces es un símbolo como hacer esto, poner un botón en este caso aquí, lo
pondremos bien. Tenía un zoom. Sí, doble clic. No le gusta dejarte hacer eso desde la vista exterior. Entonces hay un botón, y, uh, éste va a decir Ir al azul. Bueno, ahí mismo y luego, Ok. Todo lo que tienes que hacer es lo que menos en o control es llevar tu de un controlador
de vista a otro. No tiene que ser un botón no tiene que ser botón, pero sólo van a ser un botón. Simplemente vamos a dar clic y arrastrar desde el botón por aquí a la vista y dice Acción, Segway. Podemos mostrar show detail present mortalmente pop sobre presentación o custom no estamos haciendo nada personalizado. Pop over presentación es Ah ah, pop sobre el estilo. Como podrías ver en una app de IPAD. Realmente no tiene sentido hacer eso aquí. Presente motor Lee significa subirlo sobre la pantalla aquí. De acuerdo, show, detalle y show. Bueno, no
estoy completamente seguro, realidad, Sobre las diferencias de esos Vamos a ver aquí. De acuerdo, se reemplaza el detalle del
show, así que va a reemplazar la pantalla actual, y ésta va a empujar encima de ella. Esa es la diferencia. Jajaja! No tengo que saberlo todo de memoria para enseñarte esto. Sé lo que estás pensando. debió haberlo sabido. Bueno, lo siento. Está bien. Y, uh Así que ahora vamos a azul Y aquí está nuestra conexión Una conexión aquí y, uh, ver cómo realmente no importa. Uh, vamos este botón aquí. Vista de acción, controlador show. Ya sabes, es justo lo que está activando la acción, eso es todo. Eso es todo Está pasando. Vamos a intentarlo y ejecutarlo, en realidad que los machos tratando de correr sólo por diversión para ver qué pasa, ver si funciona justo fuera de la caja. ¿ Es realmente así de simple? Esa es la cuestión del día. Podría algo ser tan sencillo. Vamos. Ahí vamos. Ve al azul. ¿ Es así de simple? Es así de sencillo en desarrollo Web. Sí, no tan simple. Muchas otras plataformas. No tan simple. Pero básicamente este botón se adelantó y activó un Segway hacia la Vista Azul. Ahora, yo también podría no haberlo hecho desde el botón para que pudiera borrar esta secundaria. Aquí, Notifíquenos si hago clic derecho en mi botón. Eso debería haberse ido. Mira, la acción se ha ido. Detengan esto aquí. También podría activarlo de cualquier cosa. Incluso el propio controlador de vista recortó la vista. Aquí. Aquí vamos. Están aquí mismo este controlador de vista. Ver, he seleccionado el icono del controlador de vista justo aquí, o está seleccionado aquí mismo. Haga clic y arrastre hacia la vista a través de la misma cosa exacta. Ahora probablemente te estés preguntando, um, pero espera, ¿cómo hago eso? Porque ahora no es un botón, ¿verdad? Los botones no van a hacer nada. Bueno, ahora tenemos que hacerlo en código. Hemos creado un Segway, así que dijimos:
Hey, Hey, queremos hacer una transición. Pero algo tiene que desencadenar en este caso aquí fue el botón, pero ahora mismo, no
tenemos forma de desencadenar que ese Segway suceda. Entonces abrí el navegador, y voy a hacer clic en mi controlador de vista. ¿ De acuerdo? Y no es tan difícil, Realmente. Todo lo que tenemos que hacer es, uh, crear una forma para que el Segway se active. De hecho, probablemente
vamos a necesitar dio algunos tener un click de botón porque no puedes hacerlo. Entrevistado se carga porque, uh, es ah, en realidad no va a funcionar porque creo que se está ejecutando sobre un hilo de fondo. Eso, um son un hilo separado de donde necesitas que esté? Entonces vamos a seguir adelante y vamos a hacer algunas acciones yo sea. De acuerdo, sería funk de acción, y vamos a llamar a esto, um load blue. De acuerdo, tenemos que enviarla aquí. Va a decir, cualquier objeto. Genial. Entonces bien, entonces lo que vamos a hacer es llamarlo desde aquí. Realizar. Ve al azul. Está bien. Ahora, recuerda, antes no escribimos ningún código, ¿de acuerdo? Apenas venía directamente de nuestro botón. Esta vez. Vámonos y volveré al tablero principal de cuentos aquí. Vamos a hacer clic en nuestro controlador de vista aquí y esta vez, Vamos a cocinar el botón, y luego estoy arrastrando sobre el controlador de vista, y luego estoy haciendo clic en Cargar, cargar azul Justo aquí. De acuerdo, Ahora, ten en cuenta. Antes de que esto fuera directo al Segway, esta vez con fines de demostración, lo
estoy teniendo llamado nosotros función. Por lo que no tiene que ser un botón. Podría ser cualquier cosa algún tipo de evento. O si es una vista de tabla o una vista de colección, puedes tocar una venta, y puedes llamarla desde aquí. Entonces solo quiero demostrar que no tiene También puedes hacerlo en código. En cualquier lugar que escribas tu realizar Segway, cambiará pantallas en cualquier parte de tu código. ¿ De acuerdo? Y sólo estamos usando un botón porque no tengo otra buena forma de probarlo. Entonces aquí viene, cargando. Y cargó el azul. El botón no lo hizo por sí mismo, pero esta función se llamó aquí mismo. Está bien. Y, uh, ya
sabes, así es como defines múltiples Segway Múltiple. Entonces, um, podría poner otro botón aquí, Doble click para acercar, y voy a llamar a esto ir a leer. Y, uh, en esta semana injusta. A ver, aquí hacer exactamente lo mismo. En realidad, Abre nuestro asistente de editor y haz clic en este botón aquí. Este es el ir a leer, pero y voy a arrastrarlo sobre hacer acción de Ivey. Ya sabes, es como lo hacemos de manera diferente cada vez. Yo solo quiero que sepas continuamente que no hay solo una forma de hacerlo cargar rojo, y eso se ve bien. Y lo que hizo lo mismo excepto esta vez realizó Segway. Vamos a decir, Ve a leer y el centro va a ser Neil. Y vamos a asegurarnos de que ir a leer está configurado sobre los nips. Vamos, uh, tienes tu control. Vamos a traer a un tipo rojo de vuelta por aquí. Y, uh, vamos a seguir adelante y a dónde ir? Uh, voy a acercar, Haga clic en la vista. Ahí vamos. Fondo rojo, y luego éste, Vamos a seguir adelante. Y en lugar de volver a hacer el Segway directamente desde el Biden, hagámoslo desde el código. Voy a arrastrar a mi controlador de vista y haga clic, uh, carga ya se hicieron eso. Empezó bien para ir, pero tengo que hacer es crear un Segway aquí. Entonces desde el controlador de vista, menos se controla arrastre por aquí hasta el controlador de vista roja dirá el mismo EU para mostrar detalle solo por diversión y en el identificador del metro, uh, ir a leer. Y eso se ve bien. Vamos a ejecutarlo corriendo. Ahí va a leer. Y ahora las cargas rojas. No es gran cosa, ¿verdad? Cosas simples. Entonces lo que has aprendido hasta ahora es que controlas el arrastre desde un control de vista para saber que para hacer un Segway o desde un botón o para cualquier cosa, uh, hacer algún tipo de transición Segway y luego asegurarte de hacer clic en el Segway y darle identificador. Um, para que pudiera hacer esa transición. Eso es Eso si quieres hacerlo desde código. De acuerdo, Si lo haces directamente desde un botón, no
tienes que poner eso la identifique. De acuerdo, entonces lo va a hacer por ti automáticamente. Pero si quisieras activarlo desde el código, entonces no necesitarías poner eso, uh, la identificación ahí. Entonces una cosa más que quiero cubrir. Y así es como pasas datos entre vistas con un Segway? ¿ Cómo lo consigues de un lugar a otro? Entonces digamos, um, tenemos una etiqueta, y la ponemos sobre tu en doble clic azul para acercar, ponerte el azul, Ok. Y, uh, centralo aquí, hazlo blanco. Y bien, entonces hay una etiqueta, y lo que queremos hacer es pasar algunos datos de los bucles amarillos hacia el azul. No es gran cosa. Y déjame simplemente poner algunas restricciones aquí muy rápido, así que sólo se queda donde lo queremos. Deshazte dentro de la altura. De acuerdo, entonces, um, vamos a tener que escribir algunos cocineros más ahora mismo. Hemos estado usando estos controladores de vista, que no hacen nada. De acuerdo, Son solo controles de vista vacíos. No tenemos código adscrito ellos. Entonces lo que tenemos que hacer primero es ir a nuestro Segway aquí, click
derecho e ir al nuevo archivo. Esa es la carpeta Segway. Um, y luego quieres ir a la clase touch de cacao fuente y cambiar esto si no está ya ahí. Teoh te veo controlador. Y llamemos a este controlador de vista azul, ¿de acuerdo? Y eso me queda bien. Eso crea lo que vamos a dio que amablemente nos cambió sin mi permiso. ¿ De acuerdo? Está tratando de pensar para mí Haz clic en tu vista aquí, tu vista. Controla tu azul y ve a la caja rectángulo cajita cuadrada a la derecha. Y cambiemos esto por el controlador Blue View. Entonces todo lo que hemos hecho es que dijimos un controlador de esta vista aquí mismo. Está conectado a nuestro código que está por aquí, porque ahora mismo no lo es. Está conectado a un controlador de vista arbitrario al que no tenemos acceso. Por lo que ahora tenemos acceso a ella. Y lo que queremos dio es que no he sido outlet? Por lo que en I B outlet week var, vamos a llamar a esta etiqueta principal del tipo que tú etiqueto y ahí está nuestra yo sea outlet. Todavía no está conectado, Así que vamos a nuestro tablón principal de cuentos y a esta etiqueta aquí mismo. De acuerdo, distrae de tu controlador de vista hacia tu etiqueta y selecciona la etiqueta principal. Ahora está conectado. Y nuestro objetivo es que los datos provenientes del controlador Yellow View pasen al Blue Controller para que podamos usarlo. De acuerdo, entonces vamos a volver a nuestro azul vía controlador y vamos a llamar a este texto de transferencia var. Uh, sólo
va a ser una cuerda. Ahora mismo una cadena vacía. Está bien. Y lo que vamos a dio es ah, Annville. Tú sí cargaste. Vamos a decir que el texto de punto de la etiqueta principal es igual a texto de transferencia. Entonces cuando esta vista carga agarra lo que esté aquí y lo pones aquí. Pero tú eres como, Espera, está vacío. Bueno, lo es ahora mismo, pero te voy a mostrar cómo transferir datos para que pueda cuando esté listo para salir justo en tiempo de
ejecución. Es bueno ir. Entonces vamos a dio está por aquí, vuelta en nuestra opinión. Controlador, éste es nuestro amarillo, ¿verdad? Vamos a llamar a una función llamada Preparar para un Segway y esto se llama antes. De acuerdo, esto se llama antes de que aparezca en la pantalla. Se llama después de que se haya inicializado. ¿ De acuerdo? Está en la memoria viviendo. Pero antes de que aparezca en la pantalla, Vale, muy, muy importante. Y de hecho, lo que podríamos hacer, En realidad, Teoh es realmente ponerlo en un mejor lugar sobre en nuestro controlador azul son Blue View. En lugar de hacer esto a la vista, sí cargó porque eso sólo va a suceder una vez cuando es cuando se carga por primera vez a la memoria. ¿ Y si lo queremos? Cada vez que ahorre aparecerá casi una super vista aparecerá y pasará en los derechos de
parámetro justo ahí. Entonces llamamos a la clase de padres y ahora en cualquier momento que incluso aparezca visualmente en la pantalla, vamos a hacer esto aquí mismo. Entonces vamos a ver controlador. Y lo que vamos a dio es Ah, primer lugar, siempre que estés trabajando con Segways, si tienes más de uno, quieres comprobar qué tipo de segregado. Entonces si Segway identifica a sus iguales, ve al azul. ¿ Recuerdas? Así lo llamábamos. Entonces esto se va a llamar aquí mismo y a tiene el identificador. OK, si no eran identificador igual, ve al azul y luego pasemos los datos. Y entonces lo que haremos es ir Teoh, agarraremos el controlador de vista. Y así se llama controlador Blue View. ¿ Verdad? Entonces lo que vamos a hacer es que vamos a decir, si vamos um, Azul v c es igual a segway dot destination view controller, como vamos a decir, se llama controlador Blue View. De acuerdo, entonces lo que estamos haciendo es si miras aquí controlador de vista de destino, solo te
está pasando un tú yo veo controlador, la clase genérica ahora por supuesto, nuestra hereda de ella. De acuerdo, así que seguirá funcionando, pero tenemos que echarlo. ¿ De acuerdo? Llegamos a lanzarlo al tipo que es, que es un controlador View azul. Y entonces, um, todo lo que necesitamos para dio es decir, Ah, vamos a ver aquí. Entonces tenemos, um, nuestro centro ahí. Ahí vamos. Entonces solo vamos a hacer esto. Vamos a decir azul V c punto Ah, era un texto de transferencia. Eso es lo que vamos a decir, Hey, acabamos de llegar de la pantalla amarilla. OK, entonces lo que estamos haciendo es agarrar este controlador de vista. Tengo el signo igual. Estamos agarrando este controlador de vista aquí mismo. El que estamos a punto de ir a su ya se inicializó nieve arriba en la pantalla todavía, y vamos a decir,
Hey, Hey, el texto de transferencia es igual a Hey, acabamos de venir de la pantalla amarilla. Ahora, digamos que,
um, um, prepárense para Segway. No tiene sentido, en realidad. Cómpralo aquí mismo. De acuerdo, esto va a funcionar. Pero, ¿por qué lo pondrías? Prepararse para Segway? Eso se llama siempre que una vistas transfiriendo. Tenemos que ponerlo en realidad desde un lugar mejor. Entonces ahí es donde Um, ahí es donde esto viene muy bien por aquí. Entonces digamos que estás en tu aplicación dondequiera que se esté activando. Ahí es en realidad donde debes almacenar los datos. Ah, entonces lo que debes hacer es en realidad por aquí donde dice remitente note cómo centro es cualquier objeto significa que puedes poner cualquier objeto ahí dentro. Entonces hagámoslo. Vamos a cortarlo a partir de ahí. Vayamos por aquí. Diga, uh, estiramiento
var es igual a eso. Entonces es una cuerda, ¿verdad? ¿ Y qué harían esos simplemente pasarlo ahí como el remitente? Entonces lo que estamos diciendo es, Hey, necesito pasar algunos datos aquí. Entonces vamos a realizar el Segway y luego antes de que se llame, es para venir aquí. Ahora recuerda la razón por la que no podemos simplemente meter esta cuerda justo en la siguiente vista desde aquí porque aún no tenemos acceso a ella, Pero lo hacemos por aquí y nos preparamos para segmento porque nos lo va a dar ahora y dijo,
Lo que nosotros debería dio es que deberíamos decir si digamos bien, Uh um, vamos a llamar a esto la cadena es igual a remitente como cadenas o estamos haciendo lo mismo. Oye, estamos esperando una cuerda justo aquí, así que vamos a agarrarla y ponerla aquí. Se quiere hacer el Si se deja, por
supuesto, porque esto puede no tener nada en ella. Entonces si la cuerda es así, pasémosla en más de dos. Si sacamos la cuerda, pasémosla a la próxima semana ahora, porque un texto de transferencia de puntos V c azul es igual a la cadena. Muy bien, entonces vamos a dar un paso atrás y sólo pensar que está pasando aquí? Entonces lo activamos desde aquí mismo donde en realidad viven los datos. Así es como vas a reconstruir tu APS. Entonces en este punto, tenemos una cuerda, y la ponemos en el centro Significa esto quien esté llamando a la función Segway y luego antes que se cargue, preparado para ponerse de lado antes de que se muestre en pantalla. Debilitar. Agarra esos datos del objeto central. En realidad podemos pasarlo al siguiente controlador de vista así Debido a que el Segway tiene el controlador de vista de
destino. Entonces si todo funcionaba como se suponía cuando llegamos al azul, la pantalla azul, deberíamos ver esto. Oye, acabamos de llegar del texto de la pantalla l A. Vamos a correr y darle un tiro. Y aquí viene. Vamos, nena, no me falles Ahora ve a azul. Oye, acabamos de llegar de las pantallas amarillas Cortar un poco, pero ¿ves qué está pasando aquí? Así que realmente genial. Entonces, um, solo algunos comentarios aquí, Así que usa remitente a datos pasados. Está bien. Y entonces aquí es donde sí trabajas justo antes de que se cargue la vista. Ten en cuenta. Ah, el siguiente controlador de vista ya se ha inicializado, por lo que se inicializa, pero aún no está visible en la pantalla. Y así acabamos de transferir datos a la siguiente pantalla. Podrías hacer eso con cualquier cosa Si tienes un objeto. Veamos una lista de artículos. Ah, lista de
compras. Un carrito de compras. Correcto. Y tú y tú quieres hacer click en uno de tus artículos para mostrar sus detalles. Puedes pasar por encima de tu clase de carrito de compras. Lo que quieras. Cualquier objeto puede pasarse por encima. Eso es lo básico de pasar datos de ida y vuelta entre Segways. Eso es lo básico de Segways. Acabas de caer dragón. Realizas Segways y preparas a Teoh, te preparas para tus Segways, pero yo pongo datos en ellos. No es gran cosa. Realmente Genial. Tu storyboard principal. Sabes que puedes tener un montón de uso aquí. Puedes hacer Segways directamente desde tus controles o programáticamente. Ten en cuenta si las haces desde tus controles. Es fácil de hacer sin tener ningún código. Es fácil olvidar cómo está sucediendo. Si tuviste 100 controles en tu pantalla, es posible que olvides de dónde vienen, y puede que sea más difícil depurar. Entonces justo como quieras construir Europa, tal vez quieras mezclar código. Segways o no Idle debe inclinarse a no. No debo inclinarme a hacer todos mis Segways por mi código para poder rastrear exactamente dónde está sucediendo para poder saber cómo resolver problemas. Pero depende de ti. En el próximo episodio emocionante, vamos a hablar de construir APS sin storyboards, que todavía me acumula sobre historia y así sucesivamente. Yo sí echo de menos. Entonces eso es una envoltura. Segways, no demasiado duro, y espero que te divirtieras. Es así como vas de una pantalla a otra y vamos a llegar a ella
52. App: creación de una aplicación sin la Storyboard (XIBs) (la cual ) de una de la de la la de la la: Hey, todos, Mark Pricier en def pistas dot com. Y hoy vamos a aprender algo que la mayoría de la gente nunca enseñará. Y es Es realmente un poco cool por la razón por la que estoy enseñando. Esto se debe a que puede encontrarse con aplicaciones. Abramos un nuevo proyecto. Es posible que te encuentres con aplicaciones que no estén usando storyboards. De hecho, muchos desarrolladores, yo incluido, no siempre usan storyboards. Sí, storyboards del constructor de
interfaces y Segways lo saben. Y, um, hay algunas ventajas y desventajas. Supongo que dejaré que seas el juez. Yo diría que una manera no es mejor que la otra la manera Apple, aunque es storyboards. Pero sigamos adelante y creemos un nuevo proyecto de Código X. Y llamemos a esto una, uh, aplicación de una
sola vista que está bien y haga clic siguiente y lo que vamos a dar y decir No storyboards. Y algunos desarrolladores son en realidad muy, muy inflexible en no usar espadas desarrolladores muy profesionales. De hecho, los últimos grandes proyectos en los que trabajé, no
tenían storyboard. Entonces, um, así que ahí vamos. Todo lo demás se ve muy bien aquí. Vamos a crearlo aquí. Y, uh, hagamos algunas cosas. Por lo que te das cuenta de cómo llegó nuestra aplicación con un guión gráfico aquí mismo. Correcto. Ahí mismo lo puedes ver. Está bien. Um, así que vamos a divertirnos un poco, y vamos a presionar la tecla de borrar movida a la basura. De acuerdo, Suena bien. Y, uh, puede
que simplemente deje el storyboard de la pantalla de lanzamiento ahí porque se carga en el lanzamiento. No me importa. Entonces y, uh, eso es genial. Entonces lo que también tenemos que hacer ahora es ir a tu lista info dot p. ¿ De acuerdo? Y donde dice,
Ah, historia
principal, historia
principal nombre de archivo basado en
palabras. Vamos a hacer clic en el botón Eliminar, y ahora se ha ido. Hmm. Muy interesante. Está bien. Y así ese storyboard se ha ido. Ahora, tenemos este controlador de vista, pero todavía no hay nada que cargarlo. ¿ Verdad? Entonces aquí está nuestra práctica aplicación dandy, delegado. Y si no hemos hablado antes, el delegado de APP es el punto de partida de tu aplicación. Esto se llama antes de que se carguen todas las vistas y todo lo demás Vale, esto es lo primero que se carga. Entonces lo que vamos a dio es ver este controlador de vista? En primer lugar,
vamos a renombrarlo algo mejor. Llamemos a esto, uh, donde hicimos las mismas cadenas exactas que hacíamos antes, así que llamemos a este V. C. amarillo No
te llamaron este V c amarillo Y luego iremos a tu app, delegado. Lo que vamos a dio es justo aquí en sí terminó de lanzar con opciones en tu punto de partida dice
punto de anulación para la personalización después del lanzamiento de la aplicación. Adelante y crea tu app Brazo delegado en tu V c amarillo Hasta ahora, amarillo V c es igual a amarillo V c. Y, uh, ahora mismo es solo una clase numpty. ¿ De acuerdo? No va a hacer nada por nosotros. Lo que realmente necesitamos hacer es crear un zib. Entonces haga clic aquí, Uh, la interfaz de usuario. Así que haga clic en su carpeta aquí y vaya al nuevo archivo y vaya a la interfaz de usuario. Adelante y haz vacío, y vamos a llamar a esto lo mismo es nuestra clase de controlador de vista amarillo V C. Ok. Y, uh, hagamos un poco de limpieza en nuestra carpeta del proyecto de carpeta aquí mismo. Es a un nuevo grupo. Era tipo en, uh, modelo, pesar de que no vamos a tener ninguno. Y luego un nuevo grupo llamado View for the alguno de ustedes cosas relacionadas en la nueva carpeta llamada Controller for Controllers a lift. Entonces vamos a arrastrar son amarillo VC en el controlador. Y entonces lo que haremos es en la carpeta vista. Vamos a arrastrar este VC amarillo a eso y hacer clic en él y notar cómo sigue siendo
tu constructor de interfaz de código ex aquí, pero solo conoce storyboard. Entonces lo que vamos a hacer es recordar cómo cada controlador de vista tiene una vista. Te estoy mostrando huesos desnudos de suelo arriba, así que adelante. ¿ Y tienes una nueva vista de ojo y solo dragón en la pantalla? Tienes vista, ¿verdad? Por lo que desde el dueño de sus archivos, necesitamos asegurarnos de que la clase por aquí en el lado derecho se cambie a VC amarillo. Estamos adjuntando la clase a ella. Y luego de tus archivos sobre ella, necesitamos conectar esa vista para que sepa qué tienes que cargar. Entonces ahora tenemos una vista y sigamos adelante y cambiemos el color de la misma en el lado derecho , por aquí en los cambios a amarillo como lo hicimos antes. Entonces ahí está nuestra opinión. Sin guión gráfico. Todavía tenemos el constructor de interfaces, pero no storyboard. Y volvamos a la verdadera goto esto por aquí ahora. Entonces lo que tenemos que hacer ahora es realmente cargar ese específico, Zib. Eso es lo que vamos a dio es llevar un alfiler de corbata en él. Sí, hay uno justo aquí llamado inicializado con nombre de punta. De acuerdo, solo
vamos a seguir adelante y decir super punto en él con Nick name. Y solo voy a pasar los parámetros que nos está dando. Tienes que llamar a esto disfunción aquí. ¿ De acuerdo? Y haz es paquete de plumín o clavo. Y solo estoy llamando a la súper función en la súper clase ahí, y nos está dando algunos herederos. Está diciendo que necesita la palabra clave anulación porque la estamos anulando, y luego quiere la función del codificador, está bien. Y así lo que puedo hacer es justo aquí, super punto en él y codificar un decodificador y requiere ambos. Está bien. Y así allá vamos. Vamos a nuestra app, delegado. Y ah, lo que vamos a hacer es ah, en lugar de llamar a esa función inicial Isar que esa predeterminada y en
realidad vamos a llamar con nunca nombre, y luego pones el nombre de la punta zib uh, Z con Z. Lo que sea o, uh, Y se llama amarillo V. C. De acuerdo. Y el paquete? Puedes poner a Neil porque si pones a Neil ahí en sabe, es el paquete principal. De lo contrario, podrías hacer un s Pondel ese paquete principal. Pero si pones a Neil, agarrará el paquete principal. Entonces Así que tenemos nuestro controlador de vista amarillo. Quiere que lo hagamos un let. Entonces este es el punto de entrada, ¿recuerdas? Y así ahora lo que podemos dio es que podríamos decir window dot root view controller es igual amarillo V c. De acuerdo, así que llegamos a establecer el controlador de vista de ruta de la ventana principal con storyboards. Hace todo esto automático. Probablemente te guste, uh, ¿por qué estás haciendo esto Esto de alguna manera, más código? Bueno, hay algunas ventajas que pueden ver más adelante, pero básicamente, estamos diciendo que este es el archivo uno una carga en la entrada. Y entonces lo que podemos hacer es que podríamos decir ventana, hacer clave y visible. Um, y esto hace invisible la ventana de la llave del receptor. Básicamente, esto es lo que incluso lo dice ahí mismo. Se trata de las comunas. Conoció eso para hacer que el receptor de la ventana principal lo exhiba frente a otras ventanas. Por lo que básicamente estamos solo en odio Mostrar la APP. Lo último que vamos a necesitar hacer es simplemente, uh, realmente crear la ventana aquí. Entonces sigamos adelante y digamos que la ventana de punto auto te iguala. Yo ventana y quiere un marco. Ahí es cuando queremos llamar. Entonces te diremos que proyecté límites de puntos de pantalla principal. Entonces vamos a conseguir que la pantalla real del teléfono dijera, Hey, la ventana de debería ser tan grande como la pantalla. Y, um, ahí vamos, por cierto antes de los storyboards, um solía darnos un código clave para hacer todas las cosas. Se lo llevaron por ahí como, Ja, ja. Tienes que usar storyboards ahora. Bueno, algunos de nosotros no. Aún así nos dieron una ventana. Tenemos un controlador de vista aquí que hemos creado estaban inicializando el zib con su nombre . Si te das cuenta aquí, es crítico que pongamos estas er's de inicialización aquí y tenemos el V c punto amarillo Zib, lo
hemos arrancado de aquí. El principal punto de partida. Hemos arrancado el guión gráfico de ahí. Eliminamos este guión gráfico. Fuimos a nuestro V C amarillo y cambiamos su clase su clase de controlador de vista a la clase
V C amarilla . Y también hemos conectado la vista al controlador de vista porque cada controlador de vista necesita de usted. Y luego en el delegado de la app, que es el punto de partida, creamos la ventana. Y, uh, todos modos ,
si ,
uh, ,
uh,si hicimos todo correctamente, debería, uh, cargar nuestra aplicación en la pantalla. Y debe ser amarillo. Deberías ver un momento de pantalla amarilla brillante de verdad corriendo. Ah, ahí está. Bastante cool. No hay storyboards. Probablemente aún no estés viendo ninguna ventaja. Um, y tal vez no haya tan lejos, Tal vez no haya. Todo esto es sólo otra forma de hacerlo. Entonces, sigamos adelante y hablemos de cómo crear un nuevo controlador de vista para que puedas intercambiar entre ellos. Entonces vayamos a nuevo archivo y ah, fuente. Y vamos a decir una clase de toque de cacao. Y esta vez vamos a llamar a este V azul c. Y esta vez, ¿por qué no haces clic también crear archivo zip para que simplemente lo haga por nosotros de forma automática. Está bien. Y así está bien. Y ah, es a menos que me elijas a un iPhone y el iPad realmente no importa, ¿
verdad? ahora. Y así voy a crear aviso ¿cómo se creó un archivo zip y un archivo de abrigo? Vamos a arrastrar ese archivo zip a la carpeta de vistas y Blue VC. Observe cómo, ya que hizo un zip para nosotros automáticamente. Si voy al dueño de archivos, ya está conectado. No tenemos que cambiar en ese momento. Así que seleccione la Vista sabe que nada más ha cambiado excepto el guión gráfico. No hay Segways y conectar entre vistas, eso es todo. Todo lo demás es exactamente igual. Cámbialo a Azul. De acuerdo, no es gran cosa hasta ahora. Controlador de segunda vista con buen aspecto. Tengo la vista. ¿ Tienes la clase? Uh, bueno, cuando lo haces, aquí está lo mismo con estas er's de inicialización. Simplemente puedes seguir adelante y copiarlos desde tu primera vista y ponerlo aquí en el 2do 1 porque la cosa es, tienes que anular este nombre zip, lo contrario no cargará el archivo zip asociado. Y, uh, si implementas esto, requiere que
implementes esto, por lo que bien podrías simplemente copiar y pegar sobre. No necesitamos esto porque no es una aplicación de storyboard. Um, así que eso se ha ido ahora. Y así está nuestro controlador Blue View. Y ahora la pregunta del día es, ¿cómo pasamos de una vista a la otra? Entonces volvamos a nuestro amarillo. Pongámonos un botón. ¿ De acuerdo? Y esto se mueve esto aquí mismo, acuerdo. Y ah, eso se ve bien. Digamos que llamemos a esto. Ve al azul. ¿ De acuerdo? Y es sólo una línea en el medio con algunas restricciones. Ver, las restricciones y todo todavía funcionan aquí sin el guión gráfico. Sólo otra vez. No hay metro, no hay controladores de vista extra que vinculen en el mismo archivo. Por lo que creamos un Pero en incluso nuestro asistente de editor seguirá funcionando para nosotros. Aquí está nuestro archivo de código. Podemos simplemente hacer click y arrastrar como de costumbre ahí mismo. Yo sería acción. Llamaremos a esta carga Vista azul. Está bien, Cierra. El editor asistente luego va a nuestro código de vista azul y en realidad vio el código Yellow View. Y aquí está nuestra acción que acabamos de crear y así es como lo haces. Y lo que típicamente dio ojos almacenar referencia a la siguiente vista en caso de que alguna vez necesite
acceder a ella. Entonces básicamente lo que podemos hacer es decir de nuestra Veasey azul de tipo Blue View PC. Y ahí tienes. En algún momento, lo
crearemos,
y lo vamos a hacer aquí mismo. Vamos a decir azul V C igual Bueno, vamos a crear el objeto en sí y nombre de punta. Y sigamos adelante y llamemos a este V C azul y haz. Vas a decir Neil como lo hicimos antes. Y luego una cosa más que tenemos que hacer como necesitamos decir, Um, bueno, hay algunas maneras diferentes de hacerlo. Um, auto punto presente controlador de vista. De acuerdo, podemos presentarlo. Mota móvil. Lee. De acuerdo, así que básicamente podría decir, um
bueno, está justo aquí. Azul v c. El controlador Ver presente Animado. Verdadero el. ¿ Queremos saber cuándo está hecho? Sí, vamos a cargarla. Por lo que el controlador de vista presente era ejecutar el programa y ver si funciona. De acuerdo, No Segways esta vez. Sólo pareja y Dakota aquí,
y, uh, uh, vamos a cargarlo y vamos a ir a azul y se cargó. Entonces igual que el Segway. Excepto que acabamos de hacer auto ese controlador de vista presente en lugar del auto representar el Segway o lo que fuera la adjudicación en eso. Y así es eso. Ahora tal vez te estés preguntando cómo pasar datos. Y creo que esta es una de las ventajas de no usar storyboards es que trabajar con datos es mucho mejor, porque, um, puedes pasar cosas en un tiempo de inicialización. ¿ Dónde está? En el marcador. Tienes que pasarlo después. Y así lo que podemos hacer es en nuestro controlador de vista azul. En realidad puedo crear un método de conveniencia, así que podría decir conveniencia en él. Y digamos que queremos pasar por alto. Um, no, sólo lo hacemos aquí. Uh, print print significa que lo llamaremos Es de tipo string. Queremos un pase de Pascua en una cadena a la pantalla, así que está listo para salir. Entonces lo que podemos hacer es que lo podemos hacer conveniencia en él. Y entonces podríamos decir auto punto en él. Oh, vamos. Simplemente haremos esto. Básicamente, um, llamaré en lugar de super dirá auto dotnet. Entonces Sur significa que va a llamar a éste aquí mismo. Sólo vamos a llamarlo, y el nombre y la punta en realidad lo llamará, um, igual que antes. Entonces diremos que queremos cargar el, um azul. Entonces fuimos un poco de vista demasiado azul. Mira, porque este es el controlador View azul y el paquete podría ser Neil. De acuerdo, entonces lo que estamos haciendo es llamar a esta función aquí, pero es un método de conveniencia. Y así lo que puedo dio es volver a mi amarillo. Y en vez de llamar a ese Zib uno, podría decir azul V. C. Y en realidad puedo llamar imprimirme Eso podría decir, um uh, imprimir esto ahora, ok. Y así las diferencias en los storyboards tuvimos dos primero agregamos un remitente cuando estábamos llamando al storyboard, y luego en la preparación para Segway, Vale, tuvimos que agarrarlo, pararlo y luego pasó después de su inicialización. En tanto que en este caso, justo cuando estamos creando el siguiente controlador de vista o pasando datos y tan realmente poderoso. Entonces definitivamente es una ventaja, creo un poco menos de código. Y puedes garantizar cuándo van a suceder las cosas justo en el momento de inicialización y no después del hecho. Um y así impréndeme. Imprime esto ahora. Entonces, ¿qué? Esto lo hace otra vez? Inicializar es nuestro controlador de vista usando este método de conveniencia aquí función de conveniencia, y ah, Entonces llamamos a este aquí mismo, al que necesitamos, porque tenemos que llamar al Isar inicial aquí, y en realidad es un poco agradable poder crear el tuyo propio. Llámalo desde otro lugar sin tener que preocuparse por lo que el nombre de los
controladores de vista esta su propia clase puede manejarlo, así que lo está cargando ahí arriba. Lo que vamos a hacer es crear una etiqueta en Ivy Outlet Week Var, y vamos a decir, um, imprimir, etiqueta de tipo tú etiqueto. No está conectado. Entonces sigamos adelante al Blue V C y vamos a poner una etiqueta aquí y allá vamos. Está bien. Y vamos a
centrar esto y ponerle algunas restricciones rápidas en horizontal y verticalmente. Dale un ancho y una altura para que no se encoja en nosotros, y luego lo haremos blanco para que realmente lo podamos ver. Y luego desde tu dueño de archivos solo tienes que controlar arrastra sobre tu etiqueta aquí sobre tu etiqueta aquí y haz clic en imprimir etiqueta. Ahora está conectado. Esto es doble consulta nuestro código aquí, así que eso es justo en la inicialización. Lo que queremos hacer aquí Ahora se dice print label dot text o en realidad, lo que podemos hacer aquí es Ah, necesitamos decir que necesitamos esto. Simplemente deseamos que se almacene aquí, en realidad, para que puedas guardar nuestro, uh, texto de impresión de texto. Entonces esto haga eso y luego haga que se inicialice a nada ahí. Y entonces aquí mismo, podemos decir imprimir texto igual Imprimirme. Entonces justo cuando estás inicializando tu código, puedes asignar un valor al texto impreso, y entonces todo lo que tienes que hacer es ah, aquí a la vista. Sí cargó. De acuerdo, se podría decir, um bueno, aparecerá
la vista. Aparecerá vista superdawg aparecerá animada. Y lo que haremos es que solo diremos imprimir etiqueta texto punto igual a print txt. Entonces, um, es muy común en lenguajes de programación. Y, uh, aguanta aquí. ¿ Qué me estoy perdiendo? Olvidé la anulación. Palabra clave. Es muy común en los lenguajes de programación hacer toda tu inicialización en un
Isar inicial . Y desafortunadamente, no
sé por qué los storyboards te impiden hacer eso. Te hacen hacerlo después del hecho. Entonces una de las ventajas de no usar storyboards es que condonas los datos que quieras en tus propias clases y administrar directamente las palabras de la historia tienen límites, y ellos tienen límites. Cuando estás haciendo cosas desde cero como esta, realmente no tienes límites. Puedes hacer lo que quieras sin limitaciones. Con eso dicho, también
hay algunas cosas que los storyboards hacen por ti que no necesariamente sales de la caja haciéndolo de esta manera. Entonces veamos si todo esto funcionó de nuevo. Lo que hicimos fue nosotros Cuando tú cuando estás haciendo clic en el botón azul aquí ahora, Vale, vamos a presentar el controlador de vista usando el controlador de vista presente pasaban los datos
aquí mismo en lugar de las dos funciones diferentes. Teníamos que hacerlo antes. Y entonces esto convoca inicializar er agarra que los datos, lo
almacena y luego llama a esto, uh, primero llama a esta función nip para cargar o punta y luego a la vista aparecerá solo imprimimos en la etiqueta. Y si todo está bien, deberíamos ver que esos datos que pasamos del otro controlador de vista en la pantalla van a azul e imprimen esto ahora y ahí está. Por lo que esta es una aplicación sencilla sin usar storyboards. Otra ventaja es que puedes ver todas tus vistas aquí mismo. OK, justo directamente como archivos. De acuerdo, levántate en un guión gráfico. Tu estribor puede volverse masivo. Y cuando digo masivo, me refiero masivo Esto es que nuestro storyboard de pantalla de lanzamiento. Y así, por ejemplo, sólo para mostrarte, ya
sabes, podrías haber sabido, he visto esto, ¿sabes? Yo los he visto. ¿ Dónde? Eso son casi 100. De acuerdo, imagina esto. Mira todos estos controladores de vista. Míralo todo. De acuerdo, así que eso está bien, ¿verdad? Eso es realmente genial. Um, pero, uh, imagina tratando de navegar lo que va a donde. Oh, Dios
mío, estoy tan perdido. Aquí hay tantos storyboards ding. Es decir, realmente
hay mucha carne y hacer todo esto aquí. Está bien, ahí vamos. Se han ido. Está bien. Por lo que podrías perderte realmente rápido en un guión gráfico. Además, si tienes varias personas trabajando en un proyecto al mismo tiempo exacto. De acuerdo, um, pueden haber surgido conflictos porque los storyboards están usando los mismos archivos xml similares . Y así tienes múltiples personas trabajando en un proyecto puedes tropezar con problemas eso y se
ponen realmente desordenados muy rápido. Por lo que otra ventaja de no usar storyboards es que puedes tener todas tus vistas y zip alineados justo aquí frente a ti roto. Um, pero dicho eso, es tu elección. De lo que quieres dio te he enseñado en ambos sentidos. Um, tal vez sólo quieras guiones gráficos, sobre todo cuando estás aprendiendo y avanzando. Y no lo sé realmente no creo que haya una gran diferencia de venta sobre una u otra hacer que tenga más sentido. Um, para mí, es como la mitad y la mitad. Simplemente depende del proyecto. Depende de la sensación en casa. Y una cosa que no me gusta de los storyboards es el hecho de que tengo que ir a los Segways y tengo que dar identificadores, y luego tengo que ir al código y determinar cuál es. Y tengo que pasar los datos que pasan creo, se
podría hacer mejor en storyboards. El hecho de que lo tenga que hacer cuando estoy llamando para preparar el o para traer arriba el Segway y luego tengo que hacer prepararme para datos pasados segregados en como no me gusta todo el sistema, cómo funciona personalmente. Entonces eso es todo. Esa es una envoltura que storyboards, no storyboards. eso es que no es tener storyboards en aplicación. Elegir qué? Tu real así es como lo haces. Es un precio marca con pendientes sordas dot com, y me estoy apuntando.
53. Vistas de subclase (UIView) personalizado): Hey, todos, Mark Pricier profundidad empapa dot com Y hoy vamos a hacer algo realmente divertido. En realidad vamos a subclase de ti y hacer que sea un poco más emocionante. Así que adelante y abre tu ex code beta o tu versión en vivo de X coat, sea cual sea el día y la hora que pueda ser este. Y seguir adelante y crear un archivo nuevo proyecto o puedes hacerlo aquí está bien para crear
proyecto New Exco . Y la razón por la que vamos a subclase de ti es porque cuando estás construyendo iPhone sube el 99% del tiempo, tienes que hacer cosas personalizadas para tu U Y. Uh, eso es lo que pide el proyecto. Y, uh, ya
sabes, tal vez otras personas estarían como, Bueno, esto está en el concepto de corte. Bueno, en realidad, es cada vez que tienes que hacer algo una y otra vez en cualquier trabajo en el que estés, es un concepto más o menos básico. Por lo que es importante saber subclasificar las cosas y hacer que las cosas se vean bonitas y bonitas. Entonces voy a crear aplicación con fichas solo para que podamos tener dos vistas diferentes sobre eso para que
no tenga que arrastrar dos vistas diferentes en la pantalla y simplemente seguir adelante y llamar a esta
vista personalizada , ¿de acuerdo? Y lo voy a poner en el escritorio aquí y allá vamos. De acuerdo, Así que adelante y haz clic en tu guión gráfico principal. Por lo que probablemente estés usado Teoh en su forma más simple, trabajando con botones. Entonces si me desplazo por aquí hasta mi primera vista, una aplicación con fichas comienza con un par de vistas diferentes aquí. Controladores de vista. Si selecciono mi primera vista y digamos que quiero un botón de guardar. De acuerdo, así que tecleo el botón aquí mismo. Lo arrastro a la pantalla. Probablemente estás acostumbrado a ver este año como, Bueno, no
es tan bonito. Ya sabes, podría saber, podría fastidiar pinchando aquí al inspector de identidad. Podría desplazarme hacia abajo. Podría, ya
sabes, cambiar el fondo a,ya
sabes, ya
sabes, un color como el verde o lo que sea, pero aun así tienes que botón cuadrado. No es tan emocionante. Y eso es algo así con lo que estás atascado ahora mismo. A menos que cambies la imagen en el fondo. Ya lo hemos hecho, también, Pero ¿y si pudiéramos crear una clase que sea reutilizable? Lanza tu aplicación. Digamos que tu diseñador dice que quiero un redondeado, pero eso es azul. Y quiero que lo utilices a lo largo de toda la aplicación, Will. Es como que apesta tener que entrar y modificar todas las propiedades y sombreado y cosas
aquí mismo . Un constructor de interfaces. Entonces lo que podemos hacer es crear clase reutilizable. Y entonces lo que puedo hacer es, uh, ya
sabes, podría decir que quiero que esto se mantenga a salvo, ¿
verdad? Y Ah, ahí está. Ahí está nuestro botón. Y así déjame seguir adelante y Ah, banderín aquí. Voy a darle un dentro de una altura, y lo fijaremos uno de la parte superior, y lo alinearemos aquí mismo con las letras del menú de alineación alineadas horizontalmente. Entonces tenemos este feo botón de guardar, pero queríamos ser azules, ¿de acuerdo? Y pensemos de qué color queremos. Tan solo tenlo a la mano. Entonces, um, veamos. Yo quiero este color azul justo aquí. Déjame solo voy a hacer clic en esto para abrir los deslizadores RGB, y luego voy a deshacer eso. De acuerdo, así que tienes tus colores por aquí en el lado izquierdo, como puedes ver. Y así lo que voy a hacer es hacer clic en mi carpeta de vista personalizada mi carpeta principal de proyecto e ir a nuevo archivo y fuente y clase Touch de cacao. Y la subclase aquí mismo vas a ser tú. Yo botón. Y solo voy a llamar a este botón azul, está bien y lo crearé. Y ahí vamos. Entonces lo que voy a dio es ah, vamos a deshacernos de esto. Voy a Genial. Voy a llamar a la función despierto de NIB. ¿ De acuerdo? Esto va a llamar cuando el guión gráfico lo cargue. Está bien. Y, uh, vamos a seguir adelante y darnos algo de color. Entonces vamos a llamar a las propiedades de la capa. También podrías hacer capa de auto punto. Cada vista tiene una propiedad de capa. Alguien dice que el radio de esquina de punto de capa es igual a 5.0. Yo quería tener unas fronteras redondeadas. Está bien. Y ah, Entonces lo que puedo hacer es decir Ah, vender. ¿ Qué es? Ah, color
de fondo. Sí. color de fondo es igual a tu color de ojos. Y ah, queremos Rojo, verde y Azul y Alfa. Eso está bien. Y así para el rojo, si miras en la parte superior izquierda y nuestro recolector de color, es 46 Y lo que realmente necesitamos dio es 46.0 dividido por 2 55.0 El color U Y no usa el rango completo a 55 usa valores entre cero y uno donde cero es negro y luego al 55 es la cantidad total. Y así que sólo lo estamos haciendo eran sólo convertirlo a un decimal, algunas matemáticas simples. Y así que solo sepas que cuando encuentres tus valores RGB solo divididos por 2 55 no tienes que entenderlo por completo sí sabía usarlo. Pero vas a hacer mucho esto. Y para el azul dirán 1 95 0.0 dividido por 2 55 puntos sus propios alfas uno puntos donde queremos que sea totalmente opaco. Y luego, por último, creo que nuestro título debería ser, um, blanco. Entonces puedo decir set title color y vamos a decir que te gusta el color blanco para ST solo en el estado normal. Entonces todo lo que hemos hecho aquí es que hemos creado una clase personalizada que hereda de ti. Yo compro, se les dio un radio de esquina de cinco y color de fondo, y estamos dando que estamos poniendo el dedo del título blanco, y, uh, eso es todo. Eso es todo lo que vamos a hacer Ahora si voy a mi guión principal, Ok. En el botón Guardar aquí mismo. Vayamos por aquí. Este pequeño rectángulo llamado Identity Inspector, haces clic en él y luego cambias la clase en lugar de tu botón. Se cambió el botón azul. ¿ De acuerdo? Y ah, así que ahora mismo estás viendo en la pantalla esta llana mirada de puke viejo en botón blanco esta sea lo que sea, hagámoslo emocionante. Al igual que vomitar. Se ve simplemente aburrido. ¿ Aburrido? Ah, sí, cargándolo. Veamos cómo se ve en la pantalla. Ya viene. Te lo prometo. Y ahí está. Entonces mira eso. Ahora bien, ¿qué es realmente interesante? Lo que es realmente interesante es que puedo usar esto a lo largo de mi aplicación ahora por lo que podría tener un botón
consistente que es completamente reutilizable. Entonces si voy aquí a mi segundo controlador de vista, OK son mi guión gráfico principal y voy a mi segundo controlador de vista. Sólo voy a copiar este primer botón pegado por aquí. Ya sabes, pones tantos como quieras por todas partes con la clase de botón azul asignada a ellos, y al instante hace como un patrón de cortador de galletas de esa vista. Entonces ahora puedes hacer todo tipo de cosas divertidas y no tiene que ser botones. Esto podría ser este podría ser su fondo de una vista. Esto podría ser, Ah, una imagen. Tú. Podría ser lo que quieras, puedes escribir todo tipo de codificación personalizada si lo utilizas. Entonces el punto de esta lección es saber que es muy buena práctica cuando se quiere
saber hacer cosas personalizadas. Es muy buena práctica entrar, solo subclasificarlo y luego usar esa clase en su lugar. De esa manera, tus abrigos solo escriben una vez No vas en tus storyboards y peinar todo sabe cómo hemos estado pasando por un cambio del nombre de la fuente y todas esas cosas que podemos hacer. El autor recodifica una vez y simplemente reutiliza esa clase y hace que nuestra vida sea mucho más fácil, mantiene las cosas consistentes. Y luego en el futuro, digamos que tienes 100 botones en toda Europa, y el diseñador y el jefe es como,
Hey, Hey, esos botones tienen que ser de color naranja. Acabamos de cambiar nuestro branding y logo. Si no lo hicieras de esta manera, ya
sabes lo que tendrías que dio Sí, eres como, Oh, estoy empezando a ver tienes que pasar por toda tu aplicación y cambiar los 100 botones, todos los colores. Qué pesadilla. Y por cierto, es muy común ver a la gente escribiendo código así. Yo estoy en el código de la gente todo el tiempo y ellos hacen cosas así y esos cambios bajan la línea y gastan tiempo y dinero, cientos de dólares, miles de dólares regresando y haciendo cambios. Así que adelántate al juego aquí, usa clases personalizadas para hacer cosas como esta, y eso es todo. Por ahora, te
voy a mostrar más cosas cool en videos posteriores. Para esto es Mark Price of death pistas dot com, y nos vemos pronto.
54. Introducción a la aplicación: Yo, yo, yo, ¿Qué pasa? Mark Price? Eres sordo pendientes dot com y he estado recibiendo mucha retroalimentación. Gente diciendo Tal vez debería empezar a apelar a otros públicos, como tan solo un fanático de la cerveza. ¿ Quieres aprender el co? Sí, realidad no lo
estoy sintiendo. Uh, más bien rendir homenaje al hielo de vainilla que a Justin Bieber. Bondad para ustedes, fans de
Justin Bieber. Sólo bromeando. Es un buen tipo. Hablemos de cosas más divertidas e importantes, sin embargo. Entonces Justin Bieber. Y esa es la app que vamos a construir hoy. Entonces, uh, es una especie de aplicación simple, pero vas a reforzar principios con vistas de pila y diseños de restricción. También vas a usar Segways. De acuerdo, uh, lo
vas a poner en práctica y tan cool app. Es una especie de las ideas que escogiste tu lugar favorito. Puedes elegir el lugar que quieras. Um, este no es realmente mi lugar favorito, pero aquí es donde crecí. Es un pueblo llamado Valle de Yucca fuera en el desierto, el medio de la nada sobre Nadie ha oído hablar de él. Entonces pensé que sería divertido simplemente hacerlo. Y así básicamente, sólo voy a mostrar tu lugar favorito, vas a poner al estado o al país o donde sea,
dondequiera que vivas y mostrar foto. Escogí la imagen específicamente que tenía un fondo azul en la parte superior para que el texto
destacara . Simplemente puede agarrar una imagen. Tienes que pensar un poco más a través de él. Puedes utilizar estas imágenes OAS Bueno, si quieres seguir y podrías enterarte más y muestra otra imagen y abre el Segway encendido y luego solo muestra de detalles al respecto. Describí la población y la historia desde Wikipedia, y eso es algo así. Has vuelto a hacer clic. Llévala de vuelta a la pantalla principal, pero realmente genial. Tan enfocada en el estilo, una aplicación enfoca correctamente en Segways. Es un buen paso para pasar a cosas más complejas. Realmente consiguió un maestro thes principios abajo. Esperemos que por ahora ya estés bajo memorización. Ya sabes, algunos de los principios básicos, como poner algunas restricciones y agregar salidas de hiedra y cosas así. Entonces esto es sólo más práctica. Mucha diversión en. Ya sabes lo que podrías incluso lanzar en la tienda de aplicaciones si haces una app que se ve realmente bonita así. Creo que se ve bien. Podrás tener múltiples pantallas y estarás haciendo eso y algunos de los ejercicios después , estarás agregando más pantallas y agregando más valor a ti podría crear una siesta para tu pueblo
favorito. ¿ Y sabes qué? ¿ Por qué no vas a hablar con el alcalde del pueblo y dices:
Oye, Oye, yo construí esta app. Págame 20 mil dólares dárselo y entonces será realmente,
realmente ser un portafolio. Entonces eso es todo. Esa es la app en. Adelante y empecemos.
55. App: lugar favorito: Hey, todos, Mark Price aquí, Deb pendientes punto Com y desgaste Voy a construir esta aplicación realmente genial aquí. Lugares favoritos o como quieras llamarlo un poco más grande ahí. Yo solo presiono comando a y, uh, hablamos de esto en el video de intro. Pero de nuevo, es una siesta que nos va a llevar de pantalla a pantalla con Segways. ¿ En serio? Tan solo una pantalla. Tú también vuelves atrás. También va a hablar más de restricciones y cosas así. Y aquí hay algo realmente importante con lo que empezar antes de sumergirnos en el código. Esta es una aplicación sencilla, ¿verdad? Pero si puedes diseñar una app que se vea bien así y creo que esto se ve bien, Vale, Si pudieras diseñar una app que se vea bien así, no te lleva tanto tiempo. Te subes a la tienda APP y no te va a decir la gente ¿sabes qué? Hiciste un gran trabajo. Van a estar muy impresionados. Por lo que deberías estar enviando estos a la tienda APP. Eres como la forma en que no me enseñaste sobre eso todavía. Bueno, más adelante, hay un video y se puede ver ahora que habla de enviar app a la APP, señor. Ponte estos en la tienda APP y ponlo en Gib. Haz algunas cosas realmente geniales. Está bien. Fin de caja de jabón. Aquí vamos. Sigamos adelante y creemos un nuevo proyecto. Voy a deshacerme de este tipo de aquí e ir a tu ex abrigo e ir a presentar nuevo proyecto. Pondré el mío aquí arriba, ¿de acuerdo? Y esta es solo una aplicación de vista única. Llamemos a este lugar favorito, ¿de acuerdo? No necesitamos datos de corte y sigamos adelante y solo haga clic siguiente. Y ahí está. No es gran cosa. Hombre NBD. Muy bien, Así que tienes tu controlador de vista aquí, y sabemos cómo queríamos lucir porque acabo de mostrárselo a todos. Aquí s O. Um, como probablemente puedas imaginar, probablemente
necesitemos una imagen para el fondo, y también vamos a otra imagen para el proyecto y un pequeño icono de brújula. Entonces sigamos adelante y vayamos a nuestra carpeta de activos aquí, y tengo en el en mi escritorio aquí. Al menos tengo mis imágenes para este proyecto. De acuerdo, Puedes agarrar tu del código fuente al proyecto o de los activos que he subido y simplemente arrastrar estas imágenes de clasificación por aquí. Agarré estos de Internet. De acuerdo, um, estas imágenes de aquí y, uh, por esta, uh, esta imagen de brújula sólo, uh, sólo para que pudiera dar una atribución adecuada. Está bien, está justo aquí en internet. Es un cielo justo aquí por Dmitry Better knockoffs. G. Uh, él es el que lo hizo. Y aquí está el Eurail, y ése es quien lo hizo. De acuerdo, entonces tengo esa brújula ahí. Yo cambié. Yo lo invertí Dedo blanco, Eso es todo, Um y ahí vamos. Así que vuelve a tu storyboard principal y continúa. Sabemos que necesitamos una imagen del fondo. Adelante y agarremos esa imagen y la pongamos ahí mismo, ahí mismo. Y vamos a fijarlo a la parte superior. Apague los márgenes porque queremos cubrir toda la pantalla. Y eso se ve genial. Y pongamos la imagen a Yucca y es estiramiento. Entonces cambia este modo a sentir aspecto, y ya se ve bien. De acuerdo, sigamos adelante y agreguemos algunas etiquetas. Wow, este tipo de aquí y vamos a cambiar el color dedo del pie blanco y vamos a cambiarlo de sistema a personalizado y las noticias Helvetica Fine. Pero de regular demasiado audaz. Y te veré hacer un poco más grande aquí, y voy a decir fuera de la puerta. Y eso se ve bien. Tamañar un fondo ahí. Tan al aire libre. Fue aventuras al aire libre desierto. De acuerdo, aventuras, aventuras al aire libre. Y luego voy a copiar y pegar esto una vez más. Solo estoy copiando y pegando cualquier cosa. Ves algo que aparece mágicamente en la pantalla. Su comando C comando V o edit copy, que no lo es. Déjame hacer ahora mismo por alguna razón y editar. A veces hay que hacer clic fuera y volver a hacer clic. Ahí está. Editar copia que editar pegar o duplicar cualquiera de los que trabajan. Por lo que ya no deberías hacer esto. Debes saber cómo estar copiando y pegando cosas. Comando C, Comando V. Ok, um, sigamos adelante y movamos un poco a este tipo aquí abajo y este se va a llamar Desert Outdoor Adventures. No sabe que no suena bien, pero es algo genial. Es como hipster, lo que sea que eso signifique. Entonces ese desierto ahí mismo, um sé lo que necesita ser un poco descolorido. Entonces, solo reduzcamos el Alfa hasta que lo lleguemos donde lo queramos. Y creo que punto para cinco Se ve bien, Así que sólo le voy a dar alguna variación de color, y eso se ve bien. Entonces voy a copiar a este tipo aquí y no, ya
sabes, allá vamos, Uh, ponerlo justo aquí. Va a hacerlo un poco más grande. Y, uh, voy a hacer esta talla 60. Hagámoslo aquí. Cambia a 60 y esto se va a llamar Yucca. Ustedes eran como,
no, no, uno de este lugar se llama todavía Mercancías desierto Desierto desagradable. Bueno, cierto. Y creció aquí Valle Yucca. Y no me gusta cómo esto es casi del mismo tamaño de esto, así que solo quiero hacerlo un poco más grande y luego decir, 75. Sí, así. ¿ Qué opinan ustedes chicos? Ahora es feo. Bueno, yo estoy haciendo construirlo, no tú, en realidad. Lo estás construyendo. Haciendo oferta. Hazlo como quieras. Deja de discutir conmigo. ¿ De acuerdo? Está bien. Ver? Valle de Yuca. Eso se ve genial. Ahora sólo necesitamos nuestro pequeño icono de brújula y una palabra más. Entonces sigamos adelante y agarremos una imagen para la brújula. Aquí vamos. Demasiado grande. Sus cambios a la brújula. Voy a decir mod aspecto fit. Queremos quedarnos perfectos. Tan solo hazlo un poco más pequeño. Están bien. A mí me gusta adónde va esto. Yo realmente dio Copiemos el desierto uno y comandamos C y Comando V Eso y vamos a hacer es, uh, bien poner California aquí Quién empezó a lucir bien. Por supuesto. Todavía no tenemos ninguna limitación, ¿verdad? Hagamos eso. Ahora vamos a seleccionar estos. Estoy sosteniendo turno y seleccionando estos No lo pongas en una vista de pila. Entonces haga clic en la vista de pila, pero y voy a seleccionar esta en esta. Pon estos en una vista de pila, y luego ésta, y ésta va a estar en una vista de pila horizontal. De acuerdo, me gusta. Y entonces lo que podemos hacer es tomar estas tres vistas de pila y ponerlas en una vista de pila. Mente volada, ¿verdad? ¿ Qué tan fácil es esto? Las noticias de ciervo son increíbles. Estoy tan contenta de que estoy enseñando sobre él. Es decir, alguna vez
he llegado a ellos durante, como, seis meses cuando llegué a ellos en el, uh, video
wwdc. Tan cosas realmente geniales, cambiando todo. Lo uso todos los días. Ahora espaciado 20. Digamos 30. Por lo que queremos que el espaciado vertical entre estas pila tenga que ser de 30. A mí me gusta. A mí me gusta. A mí me gusta. A mí ya me gustan estos. No voy a jugar con esos. A mí me gusta esto. Este sí necesita algo de trabajo aquí, sin embargo. Esta tercera vista de pila. Simplemente dale un poco de espaciado horizontal. Digamos 20. Tengo 15 años. ¿ De acuerdo? A mí me gusta mucho adónde va esto. Simplemente voy a banderle ahora toda la vista de pila en sí misma. De acuerdo, vamos a solo minuto 20 de la parte superior, en realidad. ¿ Por qué dueño? Por qué ese cero ST por lo general no tiene el margen superior. Encontremos lo que dicen 20 o cero de su, uh, y cero de la izquierda. Porque esos son los márgenes. Eso está bien. De acuerdo, sigamos adelante y corramos y veamos cómo resultó. Mira, estamos progresando tan rápido. Tire hacia arriba en la pantalla y se ve realmente bonito. Vamos a quedar bien en el paisaje. El cool de los fusibles de pila, se ven hermosos, incluso en el paisaje en la mayoría de los casos. Mira a ese hombre. Debería liberar esto a la tienda APP. nadie le va a importar eso. ¿ Por qué secuestramos sobre este desagradable desierto? No lo sé. De acuerdo, s Oh, eso es bueno. Um, sigamos adelante y hagamos el botón. Creo que eso es todo cuando se fue en la pantalla. Pero abreviado
de botón, claro. Y, uh, vamos a hacer un poco más grande. Cambiemos el color de fondo. Estoy dando clic aquí,
desplazándome hacia abajo, fondo para leer y aparece el color del texto. Vamos a cambiarlo el blanco. Y cambiemos la fuente, por
supuesto, a Custom y Helvetica Nuevo y hagamos negrita luce bien. Hazlo 17 tamaño de fuente. Y esto lo vamos a decir, Entérate más todo en gorras. Sólo una especie de convención que estamos haciendo aquí, por
supuesto, lo
son pero tiene un poco de redondeo. Eso lo arreglaremos. Ya lo has visto antes, así que sigamos adelante y fijarlo. Haga clic con y altura o arregló eso y luego fijarlo una vez más al fondo
diremos Digamos 40 desde abajo, ¿de acuerdo? Y eso me gusta y vamos a seguir adelante y sólo tienes que hacer clic en el menú de alineación y hacer horizontalmente y contenedor. De acuerdo, entonces nuestro botón está ahí. Se ve genial. Ahora abramos a nuestro asistente de editor. Y voy a hacer una referencia al botón simplemente porque quiero darle un
borde redondeado . Entonces lo voy a poner justo aquí. Vamos a llamar a esto, uh, más botón. De acuerdo, Eso está todo cerca. Este es editor. Um, eso se ve bien. Hagamos un segundo controlador de vista. ¿ Por qué? Estamos en esta pantalla aquí antes de que me olvide, eso es todo. Y sólo voy a hacer una transición que estaba haciendo aquí desde el botón mismo. Esta más pero transición por aquí. Vamos a mostrarlo. Está bien. mí me parece bien. Volvamos a nuestro código y en esta vista sí cargó aquí. Adelante y alrededor de las esquinas de nuestro botón. Ya debes saber cómo hacer esto. Creo que creo que lo hemos cubierto. Si no lo has hecho, lo vas a cubrir como un bazillion de veces porque lo hago todo el tiempo. Más botón punto Capa que radio de esquina es igual a 2.0. mí me parece bien. De acuerdo, entonces, vuelta al tablón de cuentos y, uh, haz este poquito más grande aquí. De acuerdo, así que tenemos a este va a ir a esta pantalla de aquí, y, uh Entonces lo que queremos hacer es recordar, vamos a poner la imagen en la parte superior, ¿de acuerdo? Y luego ten un texto abajo sobre tu pueblo. Entonces, adelante. Y si quieres, Si no estás haciendo Yucca Valley dio hacer algunos pueblos diferentes conseguir su población o lo que quieras usar. Y tú eres vista de imagen, y solo estoy haciendo una altura arbitraria sobre esto. Realmente no importa porque vamos a sentirnos de aspecto así que voy a decir cinco de arriba. No. ¿ Qué estás haciendo? Creo que fue por encima de la parte superior. Lo hizo. De acuerdo, entonces lo estoy pintando cero a la parte superior. Margen de despegue, cero desde la izquierda, cero desde la derecha. Y dale una altura fija de 1 52 Pon la imagen a Yucca a o lo que sea tus imágenes y
por supuesto , cambia escala para sentir el aspecto Teoh. Siéntete mucho mejor. Mira, ese bonito desierto. De acuerdo, así que eso se ve bien. Yo sí quiero copiar esta etiqueta de texto de aventuras y simplemente pegarla por aquí para no tener que
hacer todas las cosas de formato, así que solo mando ver en la otra pantalla y mando a vita aquí que digan de Yucca Valley , Um céntralo y Vamos a seguir adelante y fijarlo con un ancho y altura fijos, ¿de acuerdo? Y entonces normalmente, si esto fuera una vista regular, podría simplemente centrar esto dentro del contenedor. Pero las vistas de imagen en realidad no permiten ponerles algunas vistas sobre ellas. Entonces lo que vamos a dio es que sólo vamos a fijarlo desde arriba. Por lo que dentro de la altura y 45 de la parte superior está bien. Y luego en la alineación, hombre, solo lo haces horizontalmente en contenedor. Y el contenedor es todo, todo
el asunto. Entonces eso es bueno. Nosotros anclamos esto, nosotros
anclamos esto, sí necesitamos un botón Atrás. Entonces sigamos adelante y hagamos el botón Atrás ahora y ha cambiado. Color del texto, puntera blanca. De acuerdo, hazlo más grande. Aquí. Digamos que atrás me gusta. ¿ De acuerdo? Se ve bien. Ahora sólo necesitamos Eso es amore algunas etiquetas más y esas cosas. Entonces sigamos adelante y comandamos C comando V. De acuerdo. Y asegúrate de unirte a mí problemas aquí con altura. ¿ De acuerdo? Yo solo estaba asegurándome de no llevar ninguna restricción mala, así que acabo de seleccionar esta que acabo de copiar y pegar. Me alegré de deshacerme de la anchura y la altura en esto en. Cambiemos el color del texto y volvamos de nuevo aquí. Um, y, uh, atributos, Inspector. De acuerdo, Esperemos que tenga eso abajo ahora solo para saber cada vez que estoy cambiando cosas alrededor, estoy aquí en los atributos de inspector. Al igual que los colores y cosas así. Estoy trabajando con restricciones o cambiando dentro de la altura sobre la regla. De acuerdo, Um, el inspector de tallas. Y cuando estoy aquí por el cambio del nombre de la clase, es el inspector de identidad. De acuerdo, sólo tengo que bajar eso. Voy a cambiar el color. Demasiado. Claro, color
gris. Está bien. A mí me gusta. Trabaja para mí población. Voy a mandar C comando V. Y cambiemos esto de audaz a regular y en lugar de hacer todas las gorras lo haría Bueno, realmente no se
puede hacer número de capitán, así que no importa. Entonces hay población, y entonces sí necesitamos la historia. Entonces solo soy el comando C Comando V hizo la selección del equivocado. Ahí vamos. Esto iba a ser historia. Y entonces comandemos c comando v a la población y lo pongamos aquí mismo. Y lo que vamos a dio está en este. Hagámoslo ir. Todo el camino al otro lado. Bueno, aguanta. Antes de hacer eso, antes de hacerlo, necesitamos poner estos en vistas de pila. Pero sí quiero dar esto,
como, como, 50 líneas sólo para estar a salvo. Entonces 50 Vale, así que sigamos adelante y ponerlo en vistas de pila. Entonces éste y éste van a ir en una vista de pila vertical. Sí, y estos van a estar en su propia vista de pila vertical, y luego tomamos estas dos estatuas y las ponemos en su propia vista de pila vertical. Está bien. Entonces no tuve que hacer apilar estas dos estatuas aquí mismo, pero sí lo hice, porque quiero darles espaciado con, uh, con vista de pila, espaciado y cosas así. Y quiero un grupo las cosas juntas lógicamente. Por lo que puedes hacer eso si quieres. No puedes hacerlo, o podrías hacerlo. Basta con usar una vista de pila gigante. Pero todo se trata de obtener el resultado final. Y creo que la mejor manera de obtener el resultado final que busco es haciendo para apilar noticias y luego poner éstas en su propia pila, pero al que voy a dar clic ahora mismo aquí abajo. Entonces ahora están en una pila. Tú. Entonces lo que voy a dio obviamente no es donde quiero que esté, Así que voy a fijar esta pila, tú aquí, lo
voy a fijar. Digamos sólo 40 de la imagen y diremos cero desde el margen izquierdo y diremos cero desde el margen derecho. A estas vistas de pila les gusta salir mucho fuera de la pantalla por alguna razón, Um, que no es lo que queremos en absoluto y decir cero desde abajo, en realidad 20 desde abajo. Um, Ok, eso debería moverlo justo donde lo queremos. Obviamente no se ve bonita todavía, pero eso está bien. Podemos cambiar algunas cosas alrededor. Entonces lo que queremos hacer es primero en las vistas de la pila Inter. Hagamos primero esta población. El alineamiento es Phil. Intentemos alinear, liderar y distribuir sentir proporcionalmente. Solo estoy jugando con opciones aquí. De acuerdo, Centering
igual. Ya sabes, dejémoslo así por ahora, ¿de acuerdo? Yo sí quiero mantener el liderato, sin embargo, y entonces éste está liderando, y éste va a ser se siente bien, vamos a la vista de la pila superior cuando esté sosteniendo ambos liderantes ¿Qué tal sentir proporcionalmente? ¿ De acuerdo? Siente igual lo que cambió limón a sentir. Entonces eso es sentir todo el asunto. Um, realmente no me importa demasiado eso. Muy adecuado. Vamos a ver cómo se ve cuando en realidad ponemos el texto. Así que adelante a encontrar los tecnicos que quieres pegar. Sólo estoy agarrando la mía aquí y aquí abajo. Lo voy a pegar aquí mismo. Ahí está mi texto. Está bien, así que se ve bastante bien. Creo que el espaciado en esta oficina de segundos Vamos a seguir adelante y hacer algunos, uh, algunos apilan usted espaciado, Digamos 10. Mm, Sí, es bueno. Y luego aquí en esta vista de pila, se ve un poco feo. Pero veamos cómo se ve cuando realmente ejecutamos en el dispositivo. Solo para estar seguro, sácalo aquí arriba, averigua más. Entonces, primer lugar, mis etiquetas de historia se fueron completamente fuera de la pantalla. El texto aquí está un poco cortado, está bien a la población, está haciendo algún tipo de cosas locas aquí. Definitivamente no está haciendo lo que queríamos dio. Y no estoy contento por eso. En absoluto. Entonces echemos un vistazo a nuestra pila. Estos aquí otra vez. Entonces voy a decir, sentir esta vez Ahí vamos y sentimos proporcionalmente está bien. Vamos a darnos un poco de espaciado entre las dos vistas de pila. ¿ De acuerdo? Creo que eso va a hacer muy bien. Y luego en nuestra escuela para obtener su vista de pila de población superior. Cambiemos este liderato y sentimos que se ve bien. En realidad, eso se ve realmente bonito. Creo que se va a quedar justo donde lo necesitamos. Y luego, eh, veamos a este tipo de aquí. Se ve un poco bien, también. Probemos esto otra vez. Ahora que he cambiado el ajuste en el campo, veamos si se ve mejor, Entérate más. Ya sabes lo que es lo suficientemente bueno por ahora, podríamos jugar con él, y ya sabes, uh, acercándolos juntos, pero estoy completamente bien con ello, por ahora mismo. Puedes jugar con él por tu cuenta. No funciona en el paisaje. Muy bien. ¿ Lo harías? Podría querer hacer es hacer algún tipo de clase de tamaño. Haz que esta imagen sea más pequeña aquí, Um, cuando sea ah, haz que la imagen sea más pequeña cuando esté en dispositivo de paisaje, cosas así. Pero hasta ahora se ve bien, conoce los botones traseros, no funciona. Creo que eso es lo último que tenemos que hacer aquí. Entonces la tenemos Segway, que viene del botón. Se ve realmente bonito. Nos ha llevado por aquí. Acabamos de establecer algunas restricciones. Se ve bastante bien. Um y ah, tenemos nuestro texto y cosas aquí, y esos están trabajando con restricciones y vistas de pila. Entonces, hagamos que ese botón de retroceso funcione ahora. Este controlador de vista no está ligado a ningún código en este momento. Entonces ve a tu carpeta por aquí y ve a nueva fuente de archivos clase Cocoa Touch y, ah, vamos a llamar a este detalle V c y asegurémonos de que sea una subclase de ti. Veo controlador, que es lo que queremos y haga clic en crear. Y todo lo que tenemos que hacer ahora es ir aquí para seguir siendo storyboard. Clip su segundo controlador de vista, su controlador de vista detallada. Haga clic en el inspector de identidad y cambie la clase el detalle V c. Ahora está conectado y hablando con el código. Entonces si abres tu asistente de editor, los dos círculos aquí, eso es con lo que deberías estar trabajando aquí. Y si haces clic en el botón Atrás en control Arrastra aquí derecho a Ivey. Acción. De acuerdo, esto se va a llamar de nuevo presionado y justo desde dentro de este código de aquí. Sólo di, um, descarta el controlador de vista. Entonces, ¿no descartas el controlador de vista que actualmente está abierto animado? Sí. Y cuando se completa, nos importa que el trineo termine. Y no nos importa lo que pase después. A ver si funciona. Aquí viene. Está bien, Así que esta pantalla luciendo fabulosa, ya
sabes, luciendo bastante bien en paisaje así a Eso es bastante cool y s Oh, eso se ve genial. Se da clic. Conoce más sobre el pueblo. Se carga este controlador de vista muestra el historial poblacional. Podrías poner lo que quieras aquí. Um, esto es sólo cosas realmente básicas. Y así ese botón cargó el segway justo aquí, lo
inició. No teníamos que hacerlo desde código. De acuerdo, lo
hicimos todo aquí desde el desde el guión gráfico, hace
clic atrás y desestima ese controlador de vista. Entonces creo que lo tenemos terminado, así que eso es realmente genial. Y eso son segmentos realmente simples. No es tan malo. Y no es tan difícil conseguir APs que se vean realmente bien en la tienda APP con
cantidad limitada de trabajo. Es decir, ¿cuánto tiempo llevas haciendo esto? Uh, 20 minutos y 58 segundos. Por lo que 20 minutos, 58 segundos. Podrías liberar una app a la tienda APP o menos. Entonces, uh, felicitaciones. Ya terminamos, y vamos a pasar a cosas más grandes y más malas.
56. Enums de Swift 2 de Swift 2 Enums: Hey, todos, Mark Price Escuchar con pendientes sordas dot com Y hoy vamos a hablar de Denham también conocido como las nuevas oraciones. Y el tema del curso de hoy son los autos feos. Ah, realidad, haga clic y arrastre y guarde esto porque lo vamos a usar en nuestra aplicación. ¿ Verdad? De acuerdo, adelante y abre un nuevo proyecto de X Code y haz una aplicación de una sola vista. Ustedes estaban como,
Oh, Oh, este tipo es un imbécil. Ese es mi auto. Perdón, chicos. Simplemente no lo mío. Cuartos de oro azul. Todo el mundo hace lo mismo estaba cambiando un poco. De acuerdo, así que llamemos a esto los coches Denham y feos de Denham. ¿ De acuerdo? Me llamaron artículos. Seré amable,
¿de acuerdo? Y pongámoslo aquí en el escritorio. Y lo que vamos a dio es tener ah, tres botones diferentes en la pantalla, ok. Y, uh, basado en qué botón seleccionaste , uh,
basado en qué botón seleccionaste,
le
daremos una opción y haremos algo de acción en base a esa elección. Entonces vayamos a nuestro controlador de vista aquí, y vamos a crear un Denham. Ahora, un Inam te permite, um tener una serie de opciones que puedes elegir para cualquier cosa. Entonces si digo en ellos autos. Tengo que darle un tipo. Tan artesanal me de tipo string y luego puedo tener una serie de casos u opciones. Entonces caso BMW, eso no son tarjetas feas, un auto genial. Y ah, ustedes son como,
Oh, Oh, ustedes están abriendo una lata de gusanos aquí. Perdón, chicos. A mí me gustan todos los autos por igual, algunos más que otros. El caso de BMW está bien dicho, pero también queremos hacer una prueba de caso Honda SE Honda. Coche lógico. Tesla va de Tesla por si acaso, um, un Subaru. A Subaru. De acuerdo, entonces lo que hace es permitirte tener un conjunto limitado de opciones. Por lo que hay muchos casos de uso en cualquier momento en tu aplicación que quieras elegir entre una
de más opciones. Quieres un código duro sin tener que manualmente, um, cadenas
correctas o enteros en toda tu aplicación para decir, Hey, si es uno para, esto es si es un hacer eso en ellos es un gran un gran opción para eso. Entonces eso es todo lo que tienes que hacer, Teoh declara uno para usarlo. Es un simple como decir, Um, bueno, podríamos tener un derecho variable. También es un tipo. De acuerdo, así podría decir, uh, bar, um, auto de elección. Podría ser de autos tipo. De acuerdo, entonces estamos diciendo que tenemos una variable de autos tipo, una variable de este tipo de mm, y espera una elección. Entonces lo que puedo dio es que puedo asignarlo aquí. Entonces, um, ya
sabes, podría
decir auto de elección es igual a autos dot tesla y auto choice si lo imprimo, ¿de acuerdo? Coche de elección. Imprimiría Tesla. No es gran cosa. ¿ Verdad? ¿ Y qué es realmente imprimiendo? Bueno, ¿qué está poniendo la opción aquí? Es agarrar la opción si realmente quieres agarrar el valor fuera de ella. Para que puedas elegir si quieres usar los valores o no. Estos valores arbitrarios, pero no tienen por qué serlo. Puedes usarlos si quieres. Entonces podría decir que podría hacer,
uh, uh, por ejemplo, podría
decir bar car uno es igual a autos que BMW Anvar Car dos es igual a autos punto Subaru. Está bien. Y puedes, um puedes usar los valores fuera de estos si quieres. Por lo que podría decir si auto un punto valor crudo. De acuerdo, ese es este valor por aquí. Está bien. Si el valor en bruto es igual al valor en bruto de punto cartu y hacer esto Bueno, ahora estamos comparando las cadenas por aquí, los valores reales de las mismas. Entonces si él realmente los valores fuera de ellos, entonces puedes usar su todo valor y muchos casos no vas a usar esos valores. Simplemente vas a usar los propios,
um,
artículos reales um, . Entonces en lugar de decir valor crudo, también
podríamos haber dicho si un auto uno es igual a tarjeta. Ah, Carter también. De acuerdo, um, y eso compararía los ítems de enumeración en sí. Está bien. Compararía BMW con Subaru estos artículos reales aquí mismo. Y así cosas realmente cool si quieres tomar decisiones en tu aplicación. Así que solo por diversión, construyamos una sencilla aplicación aquí, ¿de acuerdo? Y escolarizar tu guión principal. Está bien, voy a abrir el inspector de identidad por aquí son atributos esperados. Disculpe, y sigamos adelante y arrastremos algunos botones aquí. Tres botones, pequeño arrastre, uno al principio novedoso lo estilo. Y, uh, eso va a ir a la carpeta de activos aquí y arrastrar el im. No tienes estas imágenes. Puedes agarrar de Internet las imágenes que quieras. Um, también proporcionar una parte miss del código fuente se llama Subaru. Vamos a arrastrar esto aquí y tengo Vamos. Ahí vamos. Y tengo otras tres imágenes que encontré en Internet. Muy bien. De acuerdo, entonces tenemos nuestras imágenes aquí. Entonces, ¿qué? Voy a dio volvamos al storyboard y en este botón de aquí, voy a cambiar la imagen por solo un BMW aquí. Y vamos a seguir adelante y quitarnos la palabra pero adentro y es demasiado grande. Ese es un botón realmente grande. Entonces sigamos adelante y cambiemos el tamaño a 150 por 150 y cambiaremos la imagen a ¿Dónde
está ? Aquí, aspecto, Phil. Caderas me olvidé. Esto se trata No hay aspecto sentir que esa voluntad, eso va a funcionar aquí. Entonces lo que haremos es que solo haremos lo que yo te diga siempre que no hagas. Simplemente vamos a fingir que está escalado apropiadamente. Simplemente lo vamos a mover así. De acuerdo, entonces hay uno, pero en solo hazlo así y esto. Copiar y pegar. Copiar y pegar. Yo estoy haciendo Comando C Comando V Ok, no es gran cosa. A pesar de que moví ahí el equivocado. OK? Y entonces lo que puedo hacer es ah cambiar. Ah, eso es bastante y cambiar las imágenes en estos. Entonces BMW dirá Honda, que ha sido el hombre de Honda, quien y luego Ah, aquí vamos. Tesla, Cada fantasma. Tenemos estos cuatro autos aquí. Vamos a seguir adelante y darles un fijo con altura fija. Eso está bien. Y además, quiero alinearlos, uh, horizontalmente en el contenedor. Eso es bueno. Y entonces, ah, vamos a seguir adelante y fijar cada uno de la parte superior,
cada uno de ellos a la derecha. El de arriba,
Eso es todo. De acuerdo, solo
estoy haciendo clic en el botón del pin por aquí. Y ah, ¿
recuerdas cómo dije que los números son arbitrarios? Está bien, lo eres. Los valores son arbitrarios en estos ítems en este momento. Acabo de decir BMW, Honda, Tessa, sigamos adelante y cambiemos nuestro tipo para terminar. Esto es un poco más común solo tener enteros aquí. Y lo que haremos es diremos que BMW es igual a cero. Honda es igual a uno. Tesla es igual a dos, y Subaru es igual a tres. De acuerdo, entonces sí lo hace enteros aquí y lo que haremos está en nuestro guión gráfico. Vuelve a los botones. Entonces estos botones, por cierto, no imágenes. convertí en botones. Y si te desplazas hacia abajo hasta el lado derecho aquí, cada uno de estos tiene una propiedad de etiqueta. Entonces la etiqueta del 1er 10 Bueno, en realidad, vamos a asegurarnos de BMW, vamos a asegurarnos de que estén alineados BMW, Honda, Subaru de
Tesla y BMW Honda. Esos dos están mezclados. Volvamos a aquí, en realidad, podemos simplemente cambiar las imágenes. Eso es más fácil. Entonces hagamos de éste Tesla. Está bien. Nosotros sólo los vamos a pedir, Eso es todo. Este Tesla. Y éste podría ser el Subaru. De acuerdo, ahí vamos. Por lo que ahora haz clic en tu imagen. Este tiene una etiqueta de cero. Encontremos este. Necesita un tag off uno justo aquí. Este tiene una etiqueta de dos, y éste tiene una etiqueta de tres. Entonces 0123 Así que hemos dado cada uno de estos ataques y estas etiquetas corresponden con los números aquí. ¿ De acuerdo? Queremos que sean así. Entonces este es un uso perfecto de cuándo puedes usar en términos Cuando tienes cosas que necesitan
igualar ciertos valores, y en este caso, realidad
vamos a comparar con los valores aquí. Entonces lo que queremos dio es crear así de vuelta al story board aquí y abrir el asistente editor, OK, queremos hacer es crear una acción I B, y todos estos pueden llamar a la misma acción. Entonces voy a decir sobre cambiarlo a una acción aquí en pero en Clicked Tapped No es No es una web arriba. Golpeamos estas cosas de sus dedos y, uh, ahí vamos. Entonces en función, toque o desbotón tap, éste está conectado. Ahora, también
puedo hacer clic en estos otros botones de control arrastrar a mi controlador de vista y luego seleccionar el mismo en cada uno. Entonces solo soy control arrastrando al controlador de vista y seleccionando en va y
tocando y seleccionando en pero sin explotar. Y si me acerco, haz clic en cualquiera de estos ahora deberías verlo ahí. Retoque el interior en el toque de botón. Ahí está. Entonces ahí vamos. Lo que queremos hacer ahora por fin es ah, al
menos para ti. Quiero una etiqueta aquí. ¿ Qué? Lo vamos a hacer es cada vez que tocamos, pero vamos a actualizar, actualizar la etiqueta. De acuerdo, así que hagámoslo aquí mismo. Vamos a darle. Hagámoslo mucho aquí, en realidad. ¿ De acuerdo? Y acabo de poner un botón ahí. Etiqueta. De acuerdo, Así que aquí está nuestra etiqueta. Vamos a centrarlo. Ahí vamos, luciendo mucho mejor. Y vamos a seguir adelante y darle un dentro de altura. Oye, pongámoslo desde los top top top 2016. Bien. Y luego sigamos adelante y lo hagamos horizontalmente en el contenedor. Y abramos al asistente de editor una vez más y hagamos una salida de hiedra para eso. Tan controlado arrastrado de tu etiqueta aquí mismo. Vamos a llamar. Esto fue captado, uh, la etiqueta por falta de una frase mejor. Cierra el asistente de editor. Guárdalo, y voy a seguir adelante y abrirlo, mi controlador de vista. Y ahora lo que queremos dio es dependiendo de qué botón se presionó. Simplemente queremos imprimir algo a la pantalla. Entonces, ¿cómo hacemos eso? De acuerdo, Entonces , de hecho, ya no
necesitamos este auto de elección. Ahí vamos. Entonces lo que Weaken dio es Ah, First off cambió su cualquier objeto para ti, pero sabemos que todos son botones. Entonces vamos a seguir adelante y poner un pero ahí dentro, porque cada vez que toques algo, la acción
I B va a pasar en el objeto que fue tocado. Vale, Entonces lo que será dio es dirá si remitente etiqueta de punto Recuerda, la etiqueta que establecemos es igual a BMW dot raw value esperanzas Lo sentimos. Coches dot BMW dot valor bruto. De acuerdo, entonces si la etiqueta es igual a cero, eso es lo que estamos haciendo aquí. Pero nos hace saber que Hey, esto es un BMW. Entonces en lugar de tener un tipo 0123 lanza tu aplicación. Tu no saber lo que pertenecen a su realmente apegado a un auto específico aquí, lo cual es algo genial. Eso si la etiqueta era autos que BMW no cruda valor, el texto de punto de etiqueta es igual a B. M. W es impresionante. Sí, mala ortografía, sin embargo. Está bien. Uh, ahí vamos. De lo contrario. Si la etiqueta de punto central es igual a autos que el valor bruto de honda dot, entonces podemos decir que el texto de punto de etiqueta es igual a alguien. Saca de mi cara a ese feo Finn. Huelga No va a caber en nuestra etiqueta. Uh, bien. De lo contrario. Si la etiqueta de punto remitente es igual a autos dot tesla dot raw value El nuevo chico cool en el bloque else. ¿ Cuál es el último auto más? Oh, que alguien me dispare ahora. Entonces, uh, ¿qué me estoy perdiendo aquí? Si lo contrario si centrado hacia fuera etiqueta a signos iguales ahí vamos valor. Entonces solo estamos revisando aquí los valores equivocados contra las etiquetas. Y entonces estamos escribiendo textos en la etiqueta en su contra. Eso no está mal. A ver si funciona y ahí está. De acuerdo, Así que si hago clic en el BMW BMW es impresionante, alguien saca al feo Finn de mi F, el nuevo chico cool en la cuadra. A todos les encanta el de Tesla. Quién, por cierto, ahí es donde crecí. Ahí mismo en el desierto. ¿ Qué tan guay es eso? Es como que el desierto apesta. Eso es cierto. Y entonces, Ah, que alguien me dispare ahora. Está bien, así que está funcionando. Entonces lo que acabas de ver fue un in, um, y basado en el valor que comparamos contra su valor bruto. Y lo comparamos con la etiqueta, la etiqueta entera de cada uno de ustedes y nos deja saber, Hey, esto es un BMW. Este es el corazón de esto es un Tesla y luego puedes usar en cualquier parte de tu aplicación, uh, y usar esto para identificar cosas que deberían agruparse. Eso No es herramienta necesaria, pero podría llegar a ser útil. Hace que tu abrigo sea muy legible. Yo soy muy amable. Para que eso sea suficiente. No tan grande de un trato. Vas a empezar a usarlos en tu programa si ves una necesidad de ellos cuando tienes que seleccionar una opción y eso es todo. Esto es más Cristo con pendientes de muerte punto com y ver de nuevo pronto.
57. Extensiones de Swift 2: ¿ Qué pasa, todos? Mark Price aquí con pendientes de muerte punto com Y hoy vamos a hablar de las
extensiones de Iowa . Glenn, abre tu código ex y haz un archivo nuevo patio de recreo. De acuerdo, tiraré de mi pantalla aquí arriba, y ese era archivo New Playground. Y solo puedes seguir adelante y llamar a esta extensión y vamos a seguir adelante y ponerla aquí mismo en el que. Detente ahora, ¿cuál es la extensión de un Iowa? Bueno, piénsalo como una mala analogía de extensión de cabello. Piensa en ello como cuando quieras agregar funcionalidad a una clase existente, um, um,
swift o tipo swift o swift. Puedes hacerlo. Entonces déjame mostrarte el problema que estamos tratando de resolver trabajando con extensiones. Entonces imagina si tenemos una aplicación que tiene 50 pantallas diferentes, y cada una de esas pantallas necesita imprimir moneda. Necesito tomar números e imprimir moneda con un signo de dólar delante de él, o cualquier símbolo de moneda que utilice su país. Y así podríamos tener ah, ya
sabes, cuenta uno, y que mi igual $400.32 de nuestra cuenta,
también, también, equivale a $500.12 y cuenta de bar tres es igual a $600 14 centavos. Ahora necesitamos imprimir estos, ¿verdad? Entonces lo que necesitaría dio es algo así como esta impresión, Y lo que haremos es que usaremos las fortalezas especiales en impuestos aquí para insertar variables, y pongo el signo del dólar delante de él. Y entonces yo diría, ya
sabes, cuenta uno. Está bien. Y, uh, olvidé mis paréntesis de cierre aquí y lugar equivocado. Ahí vamos. Está bien. Y así lo hará por un conteo. Uno a cuenta a una cuenta. Tres. Y yo sólo cambiaré los números aquí. Yo sólo lo hice. Comando C comando V a Pegar. Ahora, esto va a imprimir lo que esperarías que imprima con el signo del dólar frente a él. Pero, ¿no sientes que nos estamos repitiendo aquí? Sí, lo estamos. Entonces lo que podemos dio es correcto? Lo que se llama una extensión para que pueda escribir Extension it y lo vamos a llamar en extensión de ah, vista de ojos. Siento que te tengas de doble fumar, agrietado. Se ventila sobre ellos chicos. Muy bien, entonces la extensión es de doble. Entonces, ¿por qué doblar? Bueno, estamos usando el doble tipo aquí. ¿ Verdad? De acuerdo, entonces esto es un doble. Lo que queremos hacer es darle a la doble funcionalidad extra. Queremos crear una forma para que podamos simplemente llamar al valor de la moneda en él. Entonces eso es realmente genial. Entonces hagámoslo. Entonces, ¿qué es debilitar dio? Ah, correcto. Una propiedad de computadora llamada moneda. Está bien de tipo string, porque necesita ser una cadena. Y lo que podemos dio es simplemente regresar. Dirá, Bueno, aquí
hay poco cuerdas especiales en impuestos y sólo pasará en la obra. Palabra clave esto y luego el signo del dólar. No soy así lo siento auto mal lenguaje de programación, woo. De acuerdo, entonces mira lo que está pasando aquí. Por lo que estás extendiendo el doble de tu funcionalidad de adición. Has creado una propiedad computada. Hemos hablado un poco de esto y todo lo que está haciendo su yo de retorno y lo que en sí Bueno, en este caso, yo va a volver al valor. Entonces, cuando alguna vez haces una extensión, la palabra clave auto vuelve al valor de esa palabra clave. Entonces si hubiera un auto de cuerda sería esa cuerda y así que acabamos de extender doble. Damos funcionalidad extra. Le agregamos una propiedad donde devolvería una cadena que toma el doble
valor actual y agrega un signo de dólar frente a ella. Y así, antes de haber creado la extensión, ¿qué pasaría si tratara de imprimir la cuenta de cuenta de un punto moneda? Bueno, aún no existe,
cierto, cierto, porque aún no hemos acreditado esa extensión. No obstante, después de crear la extensión, mira esto. Ahora podría decir Imprimir que podría decir cuenta Ah contar moneda de un punto,cuenta de
impresión, moneda cuenta de
impresión dos puntos y cuenta de impresión moneda de tres puntos. ¿ Y qué tan genial es eso? Está haciendo exactamente lo mismo. Por lo que acabamos de crear nuestra propia extensión que amplía la funcionalidad existente de una clase, y se puede hacer esto con cualquier cosa. OK, entonces por instancia, podrías tener una extensión. Ya sabes, string, podrías tener extensión de ti. Yo veo puedes agregar extensiones a cualquier clase, y lo que es genial es en IOS en el momento en que creas una extensión en tu aplicación y pones en su propio archivo. Todos reconocieron instantáneamente todas las clases, lo
confinaron y trabajan con ella. Entonces esto es algo realmente común que hacer, y es muy útil cuando tienes que hacer las cosas muchas veces y necesitas
funcionalidad extra para mí. Eso es trabajar con moneda a veces, o como hacer redondeo decimal. Ah, donde necesitas redondear arriba, alrededor, abajo. Se pone realmente engorroso tener que escribirlo por todo el lugar. Entonces el principio aquí es que si te encuentras repitiendo mucho, algo así como lo hago en estos videos, me oyes decir cosas una y otra vez. Eres como, No
estás ayudando a tu caso aquí. Yo lo sé. Pero si te encuentras haciendo muchas repeticiones, puede
ser un buen caso usar una extensión para extender la funcionalidad. Entonces solo tienes que hacer algo una vez como aquí y entonces esto es comprobable. Podrías probar el trabajo inmaduro, y eso son extensiones. No es tan grande de un trato, y ahora sabes cómo usarlos. Entonces eso es todo. Mark Preiser consigo mismos dot com. Sigamos adelante y sigamos por
58. UitableViewController: Hey, todos, Mark Pricier Deb pistas dot com Y hoy vamos a hablar de vistas de mesa. Ahora las vistas de tabla son cuatro principales del ícono The X Code de Iowa Spellman aquí porque en cualquier aplicación, ya sea Web o IOS o móvil, lo que sea que necesites para mostrar datos. Y así IOS ha proporcionado una herramienta fantástica llamada una U I tabla vista cualquier
controlador de vista de tabla blanca . Entonces haz clic en crear un nuevo proyecto de X Code para que podamos mostrar datos a un usuario sin tener que entregar bien todo el código para, como mostrar cada celda y poner las cosas en ella tan,
muy útiles. Y, ah, lo
hicieron muy. Hice una aplicación de una sola vista. Hicieron muy, um, memoria eficiente también, también. Entonces llamemos a esto. Ah ah, vista
de tabla, prueba de
controlador. ¿ Por qué no? Y todo lo demás podría permanecer igual, pero aquí en el escritorio Y OK, así que tenemos nuestra aplicación de vista única que estás acostumbrado a ver hasta ahora. De acuerdo, entonces lo que vamos a hacer en el tablero principal aquí es esto. Adelante y selecciónelo y elimínelo con la tecla de retroceso, OK, y luego desplácese aquí abajo en el lado derecho hasta que vea el controlador de vista de tabla. Por lo que antes era una U I ver controlador. Ahora es un controlador de vista de tabla. Y así arrástrelo a la pantalla aquí en el lado derecho. Vea donde dice que es controlador de vista inicial. Asegúrese de seleccionar eso. Por lo que la APP sabe con qué pantalla empezar. Por lo que ahora tenemos un controlador de vista de tabla. Desafortunadamente, sin embargo, aún no
tenemos ningún código para hablar con él porque borramos nuestros controladores de vista en el lado
izquierdo. Adelante y borra tu controlador de vista. Correcto. Haga clic en él y eliminarlo. Se trasladó a la basura y a la derecha. Haga clic en su carpeta aquí y vaya al nuevo archivo clase Cocoa Touch bajo fuente. Y sigamos adelante como una subclase de ustedes. Te tabla controlador y solo llamaremos a esto mi tabla VC VC para controlador de vista. No necesitamos un archivo zip porque vamos a hacer esto en el guión gráfico y seguir adelante y clic en crear. Y aquí está nuestro abrigo. En realidad generó un poco de código repetitivo para nosotros, y vas a ver muchas cosas aquí porque un controlador de vista de tabla requiere algunas funciones
diferentes para funcionar correctamente. De acuerdo, así que en primer lugar,
vamos a conseguir este boilerplate sí recibió una advertencia de memoria, y ah, no
nos importa esto que está aquí también para entrevistar sí cargó. No vas a usar eso. Y así aquí está lo importante. Entonces número de secciones en vista de tabla, así es como muchas secciones aire en ella. Entonces si estuvieras construyendo una aplicación que tuviera diferentes categorías, tal vez como de autos, podrías tener una categoría para importaciones. Puedes tener una categoría para autos musculares, lo que sea. Y podrías tener múltiples secciones y un montón de rosa dentro de cada sección. En nuestro caso, sólo
queremos un tramo que significa que todos los caminos estarán en un solo tramo. Entonces adelante y deshazte de ese comentario aquí. Lo estamos diciendo Hey, queremos una sección. De acuerdo, ahora, número de filas en sección. Entonces esta es la cantidad total de rosa que vas a tener en cada sección. Entonces si tienes 10 autos diferentes en una lista en una sección, éste debería ser 10. Y por lo general basaste esto fuera de algún tipo de conjunto de datos. De acuerdo, entonces en nuestro caso, deberíamos hacerlo en la carrera. Entonces voy a salvar nuestro Yo diría que los autos van a ser una variedad de autos y dirán BMW. Diré que Ford realmente correcta ortografía aquí dicen que Chevy es más como marcas, pero lo que sea. Y, uh, Volvo, ¿quién conduce un Volvo? Um, perdón si estás si te he ofendido. Ahí hay unas buenas voces. Coche calificado de seguridad número uno en América. Uh, Subaru, Subaru, y ah, lo
llamaremos bueno por ahora mismo. Entonces tenemos algunos autos aquí, ¿verdad? Estos son nuestros datos. Esta es nuestra fuente de datos. Entonces, ¿qué es Will Dio? En lugar de decir cero Rose, queremos que la rosa sea igual a la cantidad de ítems en nuestro conjunto de datos, por lo que los autos contabilizan puntos. Entonces lo que va a hacer es por cada elemento que está en nuestra matriz, que son los autos, Ray, va a crear una fila para ello. Muy, muy cool. De acuerdo, así que también creó esta función para una celda para fila y siguiente ruta Ir adelante y poco común tid eliminando los comentarios aquí. Ahora, lo que esto está diciendo es hey, no
quiero desperdiciar mucha memoria. De acuerdo, digamos que tienes 1000 celdas y tu programa diciendo que no quiero desperdiciar muchos recuerdos, así que quiero volver a usar esos. Entonces en cuanto se salga de la pantalla, lo voy a volver a poner en la parte superior de la lista. Y así cuando llegue el próximo a la pantalla, te
voy a dar eso, y luego necesitas ponerle nuevos datos en ella. Por lo que tal vez solo veas las mismas 20 2 30 celdas en bicicleta a través de una aplicación porque las está reutilizando. Y así cuando te da una vieja venta, tienes que limpiarla y ponerle nuevos datos. Está bien. Y así aquí mismo, Um, está proporcionando la celda. De acuerdo, Así que vender aquí es igual a tabla vista punto de que celda reutilizable con identificar aire. ¿ Qué significa eso? Oh, Dios
mío. Bueno, entonces recuerda como acabo de decir la mesa mesa ville de ustedes reutilizará las celdas. Bueno, lo que está pasando aquí es que estás tratando de conseguir un pito. Venderías venta que ha sido tirada de la pantalla, y estás tratando de agarrarla, una que aún está en la memoria. Entonces te lo va a dar bien. Y, ah, la reutilización identificar Air está diciendo, Hey, esta célula es de este tipo. Imagina que tenías cinco secciones diferentes y cada sección es una celda diferente, como si tuviera diferentes diseños. A lo mejor uno tiene dos imágenes. Uno sólo tiene una imagen, uno no tiene imágenes. Quieres asegurarte de agarrar la vela adecuada porque no quieres dedo del pie reutilizar una celda que
no se ajusta a tu sección específica. Entonces esto es sólo una identificación están diciendo, hey, reutilizar esta célula muy específica. Y ya que ahora mismo, um, sólo
estamos usando un tipo de célula. Simplemente lo voy a dejar como está. Puedes hacer que esa identificación o cualquier cosa que quieras. Y así, básicamente, aquí es donde vas a hacer tu configuración de la venta, que es exactamente lo que te está diciendo que hagas. Entonces si digo vender etiqueta de texto punto, esa es la etiqueta de texto principal. Por lo que una celda predeterminada viene con una etiqueta de texto principal y un subtítulo. De acuerdo, por cierto, probablemente nunca,
nunca usarás esta venta por defecto. Siempre haces lo tuyo porque nada realmente llama a esta venta por defecto. Tienes que hacer cosas personalizadas, pero lo vamos a hacer en el siguiente video. Por lo que vende etiqueta de texto de punto. Vamos a decir que el texto de punto es igual, um, y podríamos hacerlo lo que sea en la carrera. Por lo que queremos que cada artículo aquí se imprima por ahí. ¿ Verdad? Correcto. Entonces lo que vamos a hacer es que vamos a decir igual autos index path dot ro y quiero que
veas lo que está pasando aquí. Entonces los autos son una matriz, ¿verdad? Entonces estamos agarrando un elemento de lo irregular y que ya al usar esta sintaxis de
corchete cuadrado , estamos agarrando un cierto índice fuera de la carrera. Y así, ruta
índice punto ro está aquí mismo cada vez que da. Ya sabías
, te da una celda. ¿ De acuerdo? Es en el actual bro en el que estás. Por lo que sólo va a tener tantas rosas como está en tu conjunto de datos aquí. Por lo que podríamos estar en rose 0123 o cuatro. Ahí hay un total de cinco filas. Y así, índice, pat, esa fila va a ser 0123 o cuatro. Y así va a coincidir ya que coincide perfectamente con tu matriz de autos. De acuerdo, Puedes agarrar un elemento de la matriz, y eso es lo que puedes imprimir en la pantalla. Y así ese es nuestro texto etiquetado que textos. Y para la sub etiqueta, podemos decir vender detalle de punto, etiqueta de
texto, no textos iguales. Y solo podemos decir que me gusta mi y podemos ah, pasar en el Realmente podemos pasar a nombre del auto aquí haciendo exactamente lo mismo . Copiando eso y simplemente pegando aquí y solo por diversión. Eso Y así imprimimos hasta el nivel de texto de detalle. Entonces de nuevo, vista de
tabla, ruta de índice de
auto Roo se va a llamar cada vez que una fila que necesite para aparecer en la pantalla y vas a intentar agarrar un yo existente. Existe,
y luego lo vas a despejar, poner nuevos datos en él, y luego vas a volver a vender de nuevo a la vista de tabla quién lo está llamando. De acuerdo, así es como lo trabajas ahí mismo. Y qué hace esto se puede editar Ruta de índice de fila. Esto te está permitiendo, como, editar. O podría hacer como un deslizamiento de una eliminación en una celda. No nos vamos a preocupar por eso ahora mismo. Si no usamos eso demasiado ahora lo usarás en el futuro. Pero, um, no te preocupes por ello por ahora mismo. Y aquí hay otro. Competir estilo de edición. Ahí es cuando estás editando, como guardar la edición que hiciste. Tampoco vamos a hablar de eso. Um, no
nos vamos a preocupar por este,
que es mover fila, donde en realidad se puede, como arrastrar y soltar. Y cosas así requiere un código un poco más complejo. Esto es solo un montón de beneficios y bonificaciones extra. Te está regalando de la caja aquí. No necesitamos todo se puede mover ro índice pasado. No vamos a mover nada, ¿de acuerdo? Y ah, entonces aquí está el Segway. No nos vamos a preocupar por eso. Entonces eso es interesante, ¿eh? Tenemos un número de secciones y vista de tabla, número de filas y sección y vender ruta de índice fero. Eso es todo. Realmente necesitas empezar a mostrar datos en la pantalla. Entonces y para recapitular, hemos conseguido matriz de autos 12345 de ellos. Hay una sección y el número total de filas es igual al número total de elementos en la matriz. Por lo que muestra que muchas células y luego para cada célula tenemos que agarrar un yo existente. Existe, y entonces tenemos que crear uno. Pero ellos ah, meten los detalles en los datos en ella, y luego lo devolverá y hará su magia. Entonces ese es el código. Adelante y atemos nuestro controlador de vista aquí a nuestro a nuestro abrigo. Entonces va por el lado derecho aquí, y voy a estar en el tablero principal de cuentos y ah, sí, es bueno guión principal aquí, y voy a borrar esto, ¿de acuerdo? Y vamos a arrastrar en el controlador de vista de tabla Perfecto. Y cambiemos su clase aquí en el lado derecho. Está bien. Cámbialo a mi mesa V C. Porque es un controlador de vista de tabla, y luego no te olvides por aquí, haz clic aquí. Por aquí queremos hacer es control de vista inicial. O así se carga justo cuando se inicia la aplicación, acuerdo. Y ah, eso se ve bien. Entonces me acabo de dar cuenta de que acabamos de decir exactamente lo mismo que hicimos al principio del video, y estaba pensando en cortarlo. Pero quiero que sepas que a veces pueden ocurrir problemas. ¿ De acuerdo? estamos de repente, vuelves a tu guión gráfico y cosas que estamos fastidiados, así que ten mucho cuidado con eso. Ah, y tienes que verlo dos veces ahora. Entonces, en cualquier momento que quieras tener un controlador de vista inicial o lo que sea, podrías simplemente eliminarlo. Dragon nuevo uno en aquí y luego Click es controlador de vista inicial, y eso te configurará justo desde el principio. Y así otra vez, voy a cambiar la clase por aquí también. Mi mesa v c. Así que está conectada a nuestro código, que está aquí abajo. Si no está conectado, el código, no
va a funcionar. Y vamos a hacer clic derecho en el controlador de vista real en sí. Y así nota cómo ya está conectada a una vista. Entonces no tenemos que hacer eso. Y luego hay otras dos propiedades aquí. Ahí hay fuente de datos y delegado. Esto es muy importante si no tienes fuente de datos y delegado atado a tu
controlador de vista , esas funciones que acabamos de recorrer como auto Aurora ruta de índice y número de filas y sección. Esos no se llamarán y tendrás problemas. Entonces, um, creo que tenemos todo lo que necesitamos para que esto funcione? Tenemos nuestra vista de tabla con código de canaleta estaban diciendo Cuántas filas quieres, qué queremos poner en cada fila y vamos a seguir adelante y construirlo y ejecutarlo y ver si podemos mirar nuestra lista de autos. Aquí vamos, pero tenemos un choque. Echemos un vistazo a cuál es el problema Así aserción fracaso de que razonable. Entonces, ¿qué es identificar para ruta de índice? Aplicación de terminación. Está bien. Imposible de que una celda con identificador res identifique debe registrar una punta o una clase para el identificar o conectar una celda prototipo en el guión gráfico. Ah, nos olvidamos de hacer algo. Entonces si vuelves a tu tablón de cuentos por aquí, bajemos este consejo. ¿ De acuerdo? Observe cómo hay una célula prototipo aquí mismo. Abramos el lado derecho. Tenemos que darle un re uso, identificar el aire, y tal vez te estés preguntando, ¿Realmente extrañó eso, o esto en realidad es parte del programa? Bueno, ¿no te gustaría saberlo? En realidad, quiero que veas que este choque es muy importante. Es posible que te encuentres con este mismo problema exacto para que podamos llamarlo cualquier cosa que queramos. Esto es, uh queremos llamadas. Venderá esta celda de auto así como así. De acuerdo, sólo
voy a copiarlo. Asegúrate de que se deletree exactamente con la capitalización siempre todo y vuelve a tu mesa V c Y, uh, donde dice re use identificador. Todo lo que tienes que dio es poner eso ahí dentro y nuestro aire debería desaparecer. Intentemos volver a ejecutarlo y a ver si hemos hecho algunos avances. Y bastante seguro, está funcionando. Tenemos una lista de autos cuando haces click en que no hace nada, porque no hemos escrito código para eso. Pero eso es un controlador de vista de tabla. Se pueden mostrar datos sencillos en él. Um, puedes mostrar información. Se puede hacer todo tipo de cosas. Tan realmente genial. Lo hicimos en su forma más simple aquí. OK, no
hicimos nada más loco complejo. Y tal vez te estás preguntando ¿por qué no apareció el segundo sello? Bueno, hablemos de eso. En realidad no tenemos una etiqueta de texto de detalle porque no le dijimos al story board que usara la versión de subtítulos de una celda. Entonces si vas a tu tablón de cuentos aquí y haces clic en tu venta de autos. Está bien. Y debe haber un estilo Rezar aquí. Y ah, queremos estilo de subtítulos. Muy G O. Qué
lástima. Ahora tenemos un título y un subtítulo. Entonces ahora realmente lo ejecutamos. Deberíamos ver nuestra línea secundaria en cada artículo. Y mira eso. Me gusta mi BMW. Al igual que mi vado. Al igual que mi Volvo. Deberíamos arreglar eso. Y eso está funcionando. Por lo que ahora sabes cómo dividir los datos básicos de visualización en la pantalla. Está bien. Y para recapitular, creaste un controlador de vista de tabla en tu código. Creaste un controlador de vista de tabla en tu story board. Los conectamos. Creamos una matriz de autos porque todas las vistas de tabla necesitan estar basadas en una fuente de datos para que puedan saber cuántas filas van a necesitar. Y así dijimos el número de filas para ser autos que cuentan. Le hemos dado una sección por cada celda que produce. Entramos y le agregamos la fecha accediendo a los datos fuera de esa matriz, y luego lo pasamos a ella. Y así esta es una vista de tabla básica. Ahora, con eso dicho, solo te
estoy mostrando esto para que puedas empezar a mojarte los pies y entender el 99.9%
del tiempo. Nunca vas a usar este título y subtitularlo. Qué aburrido como Oh, bueno es que nadie quiere eso en su app. Todo necesita ser personalizado y verse mucho mejor que eso. Entonces vamos a hablar de eso en el próximo video. Entonces esto es todo. Um, si estás un poco confundido, vuelve a revisar el video y,
uh, uh, otra vez, toneladas de apoyo gratis en la sala de chat delante de un juez para mí. Estoy feliz de ayudarte. Y eso es todo. Marcar Precio. Aquí, Deb jabones dot com. Nos vemos en el siguiente video.
59. WKWebView: Hey, todo el mundo, Mark Price Escuchar con soaps sordos dot com Y hoy vamos a hablar de solicitudes web más bien cómo interactuar con Internet en IOS. Así que adelante y abre tu código ex para archivar nuevo proyecto. Ahí vamos, OK, y vamos a hacer una aplicación de vista única y lo llamaré Prueba de solicitud web y las ideas que puedes usar, um html um uh, sistemas. O puedes cargar html. Se puede cargar sitios web. Básicamente, si piensas en tu app para iPhone, tienes una app de safari ahí o en tu iPhone que tienes hasta ahora. Y safari es solo un navegador Web. Se, uh puede cargar cosas. Puede ejecutar HTML y JavaScript, y puedes hacer todo eso bien desde tu app IOS. De hecho, puedes construir toda tu aplicación IOS y vistas Web Si querías usar HTML y JavaScript. Ahora no vamos a hablar de cómo lo hizo hoy Es un poco más complejo en. ¿ Por qué harías tú Por qué construirías una aplicación completa a partir de html en IOS? Ya sabes, no estoy seguro de que haya una buena razón para eso. No obstante, diré que hay algunas cosas que vienen con HTML algunos pequeños trucos y cosas divertidas que pueden agregar mejoras a una aplicación. Y ah, en realidad
hay APS nativas, como la aplicación de mensajería de Apple que usaba para enviar mensajes de texto a la gente que en realidad usa, uh, algunas vistas web bajo el capó. Pero sólo vamos a hacer un simple uso de la Web hoy en día. Así que adelante y ve a tu storyboard principal. ¿ De acuerdo? Voy a hacer de esta vista un color diferente lo hará un gris claro. Y lo que voy a dio es que voy a teclear nuevo lo veo y lo arrastre aquí. Entonces vamos a usar una, uh, web
W k. Estás bien, esta web WK reemplaza a un USB el cual fue usado por más tiempo. Entonces si bajas a la parte inferior justo aquí y escribes nuevo te web, esto es una
Web de U. S. S. Ya no quieres usar estos porque tienen ligas de memoria. Tienen otros problemas. Son lentos, así que wk Web view es el camino a seguir. No obstante, con eso dicho en el momento de este video, uh, no se
puede agregar una vista web wk desde el constructor de interfaces aún desde su storyboard. Entonces tenemos a Teoh hacerlo desde nuestro código. ¿ De acuerdo? Y como no podemos arrastrarlo, aún
queremos tener restricciones trabajando en el diseño automático funcionando. Entonces lo que vamos a hacer es que sólo vamos a arrastrar una vista regular aquí. Y la idea es que vamos a poner una vista vamos a dimensionarla y colocarla de la manera que
queramos . Y luego a través del código, sólo
vamos a agregar la web. Tú encima de esta vista aquí, este contenedor de ti sólo iba a hacer que tuviera el mismo tamaño. De acuerdo, así se ve bien y va donde queremos que esté sin tener que descifrar en su cabeza las matemáticas. Ya sabes, dónde, cuántos píxeles en la pantalla necesita ser de la izquierda en la parte superior. Entonces lo que vamos a dio es ah, despegue constreñir los márgenes que quedan en el top 000 y este. Hagámoslo bien poco 50. Son 50 de abajo, y eso está bien. Está bien. Y lo que vamos a hacer es que te voy a mostrar cómo dedo del pie solo cargar múltiples peticiones. Entonces si voy a, um, A ver. Aquí, botón. Puedo poner un botón aquí mismo. Llamaremos a esto, uh, veloz, así que básicamente uno. Pero cargaremos una página web sobre Swift, Otra carga de botón. Una página web sobre, um, bistec. A todos les encanta el bistec, ¿verdad? Excepto los veganos. ¿ Ustedes se van veganos? La gente puede poner verdura o tofu o lo que sea, lo que sea que comas. Y ah, por aquí, vamos a poner, um, ¿Qué quieres poner por ahí? Um, ten una nueva. Aquí vamos. ¿ Qué tal los chismes de celebridades? Si pudiera deletrearlo. Correcto. Está bien. Y vamos a mover este en el medio. Creo que éste de aquí, y Ah, allá vamos. Centro que lo que vamos a hacer es, uh bien, alinear este botón aquí. Y dejé la línea. Este botón aquí. Por lo que las restricciones aire más perfecto. Ahí vamos. Ahí vamos. Y lo haré en línea este tipo desde la izquierda y desde abajo. Dale un fijo dentro de la altura. Haz este desde la derecha y abajo con un fijo dentro de altura. Y éste podría tener un fijo dentro de lo alto también. Pero lo haremos justo desde este fondo aquí y luego lo alinearemos centro en la pantalla. ¿ De acuerdo? Todo está alineado Look bien. Esta es nuestra vista de contenedor. Y para demostrar que va a estar funcionando, sólo
cambiémoslo a un color feo y brillante. De esa manera sabemos que se ha ido. Entonces ahí vamos. Si te dan una convulsión, no
es culpa mía. Firmas el descargo de responsabilidad. Um, vale, entonces, controlador de
vista, justo aquí, trayendo esto donde necesitamos hacer ejecutar nuestro código, vale. Y así sigamos adelante aquí mismo a la vista. ¿ Se cargó y vamos a seguir adelante y empezar a trabajar con nuestra, um con nuestra web que ahora no podemos crear una web. No podemos crear una web tú aún a menos que, um, tengamos la capacidad de, uh, usarla. Y no lo haces en este punto y te dices importar kit Web. Ese es el marco que necesitas importar para poder utilizar la vista
Web W K . Ahora, también, se
puede decir que también nos falta nuestra vista de contenedor. Entonces en I b outlet semana de son lo que se llama contenedor de tipo Tú vives y ah, antes de que nos olvidemos. Volvamos a nuestro controlador de vista aquí y conectarlo. Por lo que sería esta vista aquí mismo. Yo sólo soy control arrastrando, claro. Y vamos a seleccionar contenedor Ahora que se adjunta. Entonces vamos a dio es vamos a crear nuestra revisión. Entonces, um Web, no te tengo a ti también. Eso es lo que necesitábamos primero. Entonces sigamos adelante y digamos de nuestra vista web de tipo wk Web view. Ahí vamos. De acuerdo, Así que la vista Web es igual a W K web que acabas de crear justo ahí. Está bien. Y entonces ah, así que ahora lo hemos creado. Pero cuando llegamos a ponerlo en la pantalla,
correcto, correcto, Así que todo lo que tienes que dio es venir a hacer container dot ads de ti. Y desde wk web, hereda de vista como cualquier otro control lo hace, en realidad
puedes simplemente pero justo aquí. Entonces, por cierto, no
hemos hecho Eso es mucho en este curso, Pero a medida que te conviertas en un ingeniero de IOS más talentoso, vas a estar agregando mucho sub uso vía código. Hago esto todo el tiempo. No solo trabajo en la tienda, sino que algunas cosas aún más fáciles de hacerlo aquí Así que solo sepa que cualquiera de ustedes, mayor parte, puede tener una sub vista agregada, y podría hacerlo a través del código vía add sub you, um así que eso es realmente genial. Pero cuando lo
agregamos, tenemos que asegurarnos de que aunque lo estés agregando no signifique que vaya a ser exactamente
del mismo tamaño nohow. A veces en el guión gráfico, arrastramos el control sobre, y nunca tiene el tamaño adecuado de la manera Arrástrelo. Entonces lo que tenemos que hacer es asegurarnos de que el tamaño de la Web que coincida con los límites exactos del contenedor en
el que acabas de ponerlo porque dijimos que Containers limita. Y queremos que la Web usted tenga las mismas restricciones. Solo necesitamos hacer que la Web que coincida con el marco del del contenedor de U. S. Entonces lo que vamos a hacer, vamos a decir, Deja marco gente estudio naufragado hacer Podrías hacer un marco en cualquier momento haciendo ver directo hacer. Queríamos cero desde el cero superior desde la izquierda. Esa es la esquina superior izquierda. Ahí es donde empieza, ¿de acuerdo? Y el con va a ser el contenedor dot limita que con y el contenedor dot limita dot bombo. Entonces solo estamos diciendo Hey, pero en la parte superior izquierda, porque ahí es donde siempre empieza ahí en la U. S. Top left Hacerlo el con lo mismo es el contenedor y hacer la altura igual que el contenedor. Y entonces qué es Will dio? Bueno decir web que tienes marco es igual a este marco aquí Justo lo estamos reajustando. Y por cierto, nota cómo cambio el marco después de añadirlo. Siempre es mejor cambiar el marco después, porque una vez que en una sub vista, ahora hereda el sistema de coordenadas de los padres. Entonces cualquier revisión en la que lo pongas hereda el sistema de coordenadas de los padres, y debes asegurarte de que se alinee en el sistema de padres ahí. Entonces está bien, eso se ve bien. Entonces todo lo que tenemos que hacer ahora es en realidad solicitud cargada. Entonces vamos a buscar un sitio web para cargar solo para empezar con su yendo al buen viejo Google chrome aquí y ver si podemos encontrar algo sobre Swift. Por lo que un repentino veloz sangre Ellis al blawg Apple Swift. Perfecto. Está bien, eso se ve bien. Así que sigamos adelante, y voy a decir,
uh, uh, deja que tu cadena L sea igual a esto. ¿ De acuerdo? Y eso está bien. Y así tenemos nuestra tu l Entonces, ¿qué necesitamos a continuación? Ah, vamos a hacer el euro irregular soy yo y esta u r l uh Vamos, deletreando aquí donde vamos y solo vamos a crear y como tú eres, bueno, como hemos hecho en el pasado o no, dependiendo en cuando se creó este video. Pero esto es un n r sc, Earl, y, uh, sólo
vamos a pasar en la cuerda del euro. Está bien, se ve bien. Y dejan que la solicitud es igual a las peticiones de Earl. Tenemos que hacer una petición. Y está buscando euro, que te conocemos hace allá, que tenemos justo ahí. Entonces todo lo que tenemos que decir sólo si deja que tu l es igual. Um, no. Disculpe. Um, no es que lo que tenemos que decir es, uh, primero, crear el signo de exclamación justo aquí solo para decir, Hey, uh, estamos desenvolviendo a esta chica, y entonces todo lo que necesitamos hacer es decir, web you dot load request y pasando las solicitudes. De acuerdo, entonces todo lo que ha pasado hasta ahora porque creamos la web. You Lo agregamos a nuestra vista de contenedor porque no se puede agregar uso Web desde el
constructor de interfaces . Entonces tenemos que crear una vista que,
bueno, bueno, el dimensionamiento que nos gusta y acaba de agregar encima como una sub vista y luego establecer el marco de la
misma después de que lo hayamos agregado. Agarra el o queremos un giro de carga en un tema rural crear un fin es tu o solicitud porque el uso Web busca esa solicitud y luego comenzaremos esa solicitud. Por lo que conectamos nuestra toma de corriente aquí. Entonces si todo está bien, deberíamos ver a la manzana Blawg cargando en nuestra Web usted cada vez que ejecutamos esta aplicación. Entonces sigamos adelante y le demos una oportunidad. Ahí vamos. De acuerdo, así parece que tenemos un par de problemas. De acuerdo, si notan aún podríamos ver algo del verde, lo
que significa que no va a bajar hasta el final. Entonces podría haber perdido una restricción y, um, también noto cómo se está cortando. Se está cortando la propia página Web desde el lado derecho. Ese es otro problema que tenemos que abordar. Vamos a ocuparnos primero del problema verde sin embargo. Voy a ir al tablón principal de cuentos. Vamos a dar click a nuestro chico aquí. Y si miro el espacio inferior, note cómo le va 50 desde abajo. Ese es nuestro problema. Estaba pensando que quizá eran 50 del gris, pero no lo es. Vamos a ver aquí. Uh, ¿sabes qué? En realidad, creo que en realidad sí lo queremos. Um, lo es, ya
sabes, acabo de ponerlo de vuelta ahí mismo. Creo que sé cuál es el problema, y creo que está relacionado con este problema aquí. Eso te das cuenta de cómo se corta justo aquí? Y entonces, ¿cómo están la web? Tú, um el verde en realidad va a donde se supone que debe, pero me equivoqué. Los greens van a donde se supone que vaya. ¿ Verdad? Pero las vistas de la web no. Entonces son las mismas promesas. Se está cortando aquí, y se está cortando aquí. Y aquí está la razón por la que. De acuerdo, así que recuerda cómo tenemos restricciones en ese Greenview configurado aquí mismo. Está bien. Y, uh, pero no tenemos Así que de todos modos, lo que está pasando es que lo vamos a ver cargar aquí mismo y lo vimos Load. OK, haz esto más grande para ti aquí a la vista. sí cargó. Todo esto se está llamando antes de que se apliquen las restricciones, por lo que no se han aplicado las restricciones. Sirve. Tú lo hiciste. Cargar no es un buen lugar para estar agarrando los límites. ¿ De acuerdo? Y solo para demostrarte que estaban en un iPhone seis. Y, uh, si queremos una prueba rápida, se
puede dio, como se puede decir iPhone seis,
um, um, resolución en la vida. De acuerdo, entonces, factor
Skilling de tres A s o. Um, es
lo que está diciendo es que es 12 42. Entonces si dices 12 42 dividido por tres, Um, porque tiene un factor de escalado de dos. Bueno, es lo que estamos esperando es que sea 6 21 Ok. O 4 14 Ya sabes, deberíamos ver algún tipo de valor así cuando imprimo en la pantalla. Así de ancha debe ser mi pantalla, ¿verdad? Entonces si voy a imprimir y digo container dot bound, deténgase con deberíamos ver uno de esos valores cuando imprima esto. Esta es una prueba estaban depurando. Es así como resuelves los problemas cuando eres desarrollador. ¿ Qué está pasando aquí? Bueno, eso es interesante. ¿ Por qué me da un con de 600 que justo No me parece el derecho con así y
no es porque no está siendo No va al borde de la pantalla, como esperaríamos que para causar que las restricciones no se hayan aplicado. Así que sigamos adelante ahora y en realidad solo tomemos todo esto aquí y cortémoslo, ¿de acuerdo? Y vamos a ir a una función de anulación llamada View hizo aquí arriba. Entonces después de que apareciera la vista, entonces vamos a ejecutar esto porque en esta función se han aplicado las restricciones, y vamos a seguir adelante y simplemente moverlo ahí y volver a ejecutarlo y ver si nuestros si los límites aquí van de borde a borde. Oye, mira eso. Por lo que va todo el camino hasta el fondo en todo el camino hacia el lado derecho. Es dimensionamiento, como esperaríamos que se dimensionara perfectamente, y así de nuevo, la razón por la que el contenedor no equilibra eso con ese inicio ese era nuestro contenedor en nuestro guión gráfico. Este tipo de aquí una entrevista T sí cargó aún no se habían aplicado las restricciones. No se han estirado el costado de la pantalla en Lee después de visto, aparece, se ven se carga sucede con esas restricciones se aplican. Entonces ahora podemos agarrar los límites y el con de todas esas cosas ahí mismo. Entonces, um cool, Super cool. Entonces ahí está tu página web. Se ve genial. Vamos a seguir adelante y conectar algunas cosas y mostrarte cómo simplemente cargar las solicitudes también. Entonces estoy respaldando interfaz Builder. Abre aquí el asistente de editor, y así eso está controlado Arrastra aquí, haz una acción de 90 y llamemos a esto Ah, carga cosas rápidas llaman a esto cambios a la inacción. Yo solo soy control arrastrando al editor aquí en este para que se llamen cargar chismes y cargar bistec. Ese es mi control favorito arrastrar cambios a la inacción. Y llamemos a este bistec de carga. Está bien, ciérrense. ¿ Es esto un editor? Sigamos adelante y volvamos al controlador de vista aquí. Tenemos nuestras tres acciones de hiedra. Por supuesto que vamos a estar bien y limpiar esto. A nadie le gusta el código feo. ¿ De acuerdo? Sí, eso es genial. Y entonces lo que voy a hacer es crear una nueva función llamada load uh, load request. Se va a tomar tu cadena tipo cadena l, solo debilitar, tener código reutilizable. Y lo que voy a hacer es en realidad sólo, uh voy a copiar este año. Y lo que haremos es, uh, sacaremos esto aquí, ¿de acuerdo? ¿ Cómo? Ejecutado a mí. Y en realidad saquemos esto aquí, también. Lo que haremos es hacer esta función reutilizable, eso es todo. Entonces yo solo,
uh, uh, desde aquí mismo, vamos a desechar esto aquí, cometemos un comando X para cortarlo. Y entonces ahora solo podemos llamar a nuestra función, y es una solicitud de carga y simplemente pasar una cadena. Y podríamos hacer eso desde cualquiera de estos aquí. Sólo tenemos que conseguir el Tenemos que conseguir el o más. Entonces vámonos. Y, um, chismes de
celebridades. Ah, a ver qué está fluyendo en Internet. Está bien, mira eso. Incluso hay un quién? Equipo Z. Eso es Ah, ese es un sitio web legítimo. Está bien. Ah, así que ahí vamos. Tan bajos chismes. Todo lo vamos a decir que su carga solicita y vamos a pasar en la cuerda y ah, más. Um, me encanta la sopa de bistec. Ahí hay un blawg. Vamos, No
hay blog sólo sobre bistec. Aquí vamos. Cortes primarios. Dijo Blawg. Yo lo sabía. Yo lo sabía. Si el bistec te ofende de alguna manera, siéntete libre de poner cualquier tipo de comida no cruce tus más límites. Muy bien, entonces carga, solicita solicitudes de carga. Pongo en el lugar equivocado, aunque esto debería ir en el filete ganado, Claro. Y luego si hacemos clic en el botón swift, en realidad
deberíamos simplemente copiar eso y ponerlo aquí. De acuerdo, así que todo esto hizo fue crear un funcional sobre cargar las solicitudes y conectar estos bollos para que pudiéramos simplemente Podemos ver asegurarnos de que la solicitud esté cambiando. Entonces, básicamente, este código se va a ejecutar cada vez, y sólo estamos cambiando el euro, y solo quiero asegurarme de que funcione, y, uh, no
va a funcionar. Y te mostraré por qué en tan solo un segundo aquí. Entonces sabemos que el blog de Apple se va a cargar. OK, pero ¿qué pasa si cambiamos a chismes de celebridades? En primer lugar,
vamos a asegurarnos de que en realidad chico extra aquí. De acuerdo, Así que ten en cuenta cómo no pasa nada. Acabo de hacer un punto de ruptura. Esto no está cambiando, ¿verdad? Y hay una razón por la que es porque tenía nueve años. Si no tiene los https, apple no cargará tu iPhone no lo lotará. Tenemos que conseguir permisos a sitios web para ser cargados Que no tengan https. Así era como solía ser. Y, ya
sabes, recomiendan que, um que no les permitas que los usuarios simplemente usen cualquier sitio web arbitrario. Bueno, tú podrías ser el juez de eso. Por lo que n s ap transporte Seguridad. Acabo de abrir mi lista info dot p aquí mismo. Está bien. Y en la parte inferior, aquí en su app. Transporte, seguridad. Eso es lo que necesitas escribir. Y vamos a cambiar a un diccionario. ¿ De acuerdo? Y, ah, necesitas tener un elemento en s permite cargas arbitrarias. Y eso va a ser un booleano. Vamos a decir que sí. Entonces lo que estamos diciendo es, oye, permitir que cualquier sitio web arbitrario se cargue desde nuestra aplicación. Um, Y otra vez, ahí está justo ahí para ti. Mira Ok. Y esta app Seguridad del transporte. No lo olvides. Vas a tener muchos problemas. Estamos tratando de cargar sitios web, y tú estás como, ¿por qué no funciona? Bueno, es porque, um, tienes que darle permiso para ahora en IOS nueve Cam corriendo. Está bien, ahí. Chismes de celebridad veloz. Simplemente hago clic en el botón. Y como puedes ver, ahí va, Ahora
está cargando. Ahora tal vez qué? A lo mejor lo que habría sido una mejor experiencia de usuario es si te gusta, hiciste un giro de carga o despejaste primero la otra página Web, porque no parecía que estuviera funcionando. Pero waas y ah puso la estaca blawg. Por lo que está ejecutando su solicitud detrás de bambalinas. Y ahí está. Ahí está nuestro blogger en bistec Click. chismes de celebridades deberían volver a cargar lo mismo. Y ahí lo tienes. Mira, incluso agrega un popping up Justo lo que queremos. tan muy cool. Entonces lo que aprendiste bien, ¿ Fue esa wk web? No está disponible en el constructor de interfaces. Por lo que tienes que agregarlo vía código que podrías vía add sub you. Lo pusimos en un contenedor que formaba parte del guión gráfico y luego no lo hicimos y lo cargar porque las restricciones se aplicaban a la vista sí cargaban. Y queremos que nuestras limitaciones sean planeadas después. Entonces si quieres agregar cosas programáticamente y tener límites y dimensiones adecuados, podrías hacerlo en vista aparece, que es lo que hicimos aquí. Establecemos el marco de web desarrollado usted para que coincida con el contenedor de usted y luego en la solicitud de
carga. Llama a esta función aquí la cual toma un N s A r l la pone en una solicitud de MSU escrita y pone en una web. Tú y luego te acabamos de mostrar cómo puedes cargar unos cuantos tipos diferentes de un sitio web. Entonces, um, cosas
muy cool. Um, usas estos, usas estos, uh, frecuentemente, no mucho, pero las usarás con frecuencia y una herramienta muy poderosa. Um, de hecho, podrías Como dije, podrías construir aplicaciones muy complejas. Si tu experto en CSS html JavaScript, deberías jugar más alrededor de esto porque podrías saber qué HTML real en este diseño, tus propias cosas. Se puede hacer todo tipo de diversión. Entonces si puedes pasar variables de ida y vuelta entre swift y y la
web, tan mucha diversión. Esto es todo lo que estamos cubriendo ahora mismo, pero cosas buenas. Entonces eso es Web. Usa Reino Unido te amo y no mucho a ella. Entonces eso es todo. Nos vemos la próxima vez
60. App: cosas feas - TableView y células personalizadas: Está bien, todo el mundo, Mark Pricier. Deb jabones dot com Y la última vez hablamos de usar un controlador de vista de tabla y para mostrar una lista de datos en la pantalla. Y hoy te voy a mostrar la forma en que me gusta hacerlo, que creo que es la mejor manera. Y así seguir adelante y crear un nuevo proyecto de código X. Gran Nuevo México Proyecto aplicación de una sola vista estará bien. Llamemos a esto ah, marcas, vista
de tabla. Está bien. Lo que quiero mostrarles, creo que es la mejor práctica en te da más flexibilidad, así que está bien. Entonces ve a tu storyboard de punto principal. La última vez que entramos aquí y eliminamos nuestro controlador de vista, acuerdo? Y luego ponemos en un controlador de vista de tabla, y los controladores de vista de tabla es un controlador conveniente. Eso maneja muchas cosas de ti, pero lo vamos a hacer manualmente nosotros mismos. Y sólo vamos a usar lo que queremos. Caso adelante y escriba en vista de tabla. Y en lugar de arrastrar y soltar en el controlador de vista de tabla, agarra esta vista de tabla justo aquí y ah, adelante. Pero ahí donde quieras, voy a hacer que el mío vaya a pantalla completa aquí. Bueno, mome casi a pantalla completa. Ah, el otro controlador de vista de tabla te obliga a ir a pantalla completa y lo obliga a ser
lo único en la pantalla. ¿ En serio? Y hay que hacer algunos trabajos para rodearlo. No queremos eso queremos una flexibilidad completa. Entonces, en lugar de poner la tabla de tu controlador en una sección diferente por aquí, realidad solo
estamos poniendo una vista de tabla, No el controlador con la vista misma en nuestro controlador de vista. Entonces vamos a dejar nuestro controlador de vista, y solo estoy teniendo un nuevo yo vista y y poniéndote aquí arriba, ya
sabes, podríamos hacer un lindo banderito solo por diversión, eso es todo. Sólo por diversión. Y lo arrastraremos hasta la parte superior y le daremos un bonito color por aquí en el lado derecho. Voy a escoger esto. Ah, es bonito color amarillo. Y si lo quieres, es FFC 11 D. De acuerdo, así que tenemos un control fresco o una vista genial allá arriba y vamos a seguir adelante y fijarlo cuando colgantes a la parte superior. No hay márgenes. Yo quiero totalmente a través de la pantalla y la altura puede permanecer igual. Eso se ve genial. Y vamos a seguir adelante y hacer una etiqueta sólo por diversión. Está bien, ahí está nuestra etiqueta. Vamos a arrastrarlo hacia fuera, hacerlo un poco más grande, y lo centraremos y vamos a hacer cambios a diferentes peleados. Cambiemos a la costumbre y, digamos, un Vaticano Ooh, eso es perfecto. Y ah, me gusta. Ya sabes, esto podría decir, Ah, cosas
feas. Eres como Espera, ¿qué? Bueno, déjame solo mostrarte lo que vamos a dar. Va a ser divertido. Entonces ahí está nuestra etiqueta. Vamos a seguir adelante y darle un dentro de altura. Y agreguemos eso. Y luego vamos a seguir adelante y hacer clic en el menú de alineación y ponerlo horizontal y verticalmente en el contenedor. De acuerdo, lo
último que necesitamos alinear es nuestra vista de tabla, así que vamos a moverla un poco hacia arriba allí. Estoy dejando un poco de brecha, pero lo arreglaremos con restricciones y en realidad cambié de opinión. Vamos a darle un poco de margen. Hagámoslo ahí y ahí mismo. Y realmente no se puede hacer esto con el otro controlador de vista de tabla de nuevo. Esta es una funcionalidad personalizada completa, que es realmente agradable. Esto es una especie de lo que probablemente vas a hacer tu trabajo. Simplemente muevo eso hacia arriba en lugar de su ego. Entonces lo que voy a hacer ahora que lo tengo sobre, así que voy a asegurarme de que sea cero desde la izquierda. Los márgenes están en cero desde la derecha. Yo quiero en realidad 20 de los tops. Voy a hacer clic en eso, pero cámbialo a 20 y 20 desde abajo. Eso le dará un buen margen todo el camino a través, y así agregar esas restricciones. Entonces ahí está nuestra vista de mesa. Se ve realmente bonito. Ahora, Um, hablamos de la última vez como sabes, teníamos la lista de autos y acabamos de inyectar los datos. Pero ahora en realidad podemos crear una celda de vista de tabla personalizada, que es realmente genial. Por lo que en el lado derecho por aquí, escriba en celda y queremos celda vista de tabla. Así que solo arrástrelo aquí en la parte superior de su mesa en la mesa para usted, y es una celda prototipo. Y entonces lo que vamos a dio es primero, voy a cambiar el color de fondo solo a otro color por ahora, así puedo ver lo grande que es porque el blanco es un poco difícil de ver lo alto que
lo estás haciendo , y nosotros lo van a hacer más grande. Hagamos de esto una gran venta. Y lo que quiero en ella es una imagen. Parte de la imagen del dragón. Es demasiado grande ahora mismo. Lo haremos más pequeño. Ahí vamos, y voy a hacer que sea una plaza. Entonces diremos que solo diremos 75 por 75. Y voy a hacer esto un poco más grande. Entonces se alinea un poco mejor. Sí, eso no es lo que yo quería. Ahí vamos. OK, así que estaban alineados. Se ve bien, y ahí tenemos una imagen. ¿ Qué más queremos? Bueno, tal vez pongamos nuestra propia etiqueta en Vale, cómo lo queremos. Y lo haremos largo así. A lo mejor lo pondremos ahora mismo. Mantengámoslo ahí mismo. Algo así, sí, pongamos al final. ¿ Por qué no? Y OK, Alex, genial. Y vamos a la costumbre cambiar la diversión. Hagámoslo realmente, realmente grande. Sólo por diversión. Solo estoy demostrando que puedes hacer todo tipo de cosas personalizadas y, ah, vamos a mover esto de nuevo aquí. Y realmente me está gustando, en realidad. Y si hacemos este filo a filo y luego lo centramos. Ooh, Ahí vamos. OK, entonces me gusta adónde va. De acuerdo, lo que voy a hacer es fijarlo ahora. Esa ha sido la imagen primero, en realidad. Entonces fijemos la imagen a la parte superior y a la izquierda y notemos cómo en una celda de vista de tabla realmente
tiene márgenes en la parte superior en la parte inferior. Como puedes decir, 00 Pero no estamos al borde, así que ahí hay algunos márgenes. Y, uh, vamos a darle un ancho y alto. Hagamos eso arreglado. Está bien. Y, ah, son etiqueta aquí. De hecho hagámoslo de la misma altura sólo por diversión. Hágalo más fácil. Entonces sigamos adelante y digamos que queremos que comas desde la izquierda. De hecho, no lo
hacemos. Podemos simplemente seleccionar todas estas aquí, por lo que se estira y crece según sea necesario. Nos dieron nuestra etiqueta y nos dieron su imagen. Ahora voy a cambiar el fondo de nuevo a Blanco porque Rojo es dominante. Yo sólo quería ver dónde waas y vamos a seguir adelante y cambiar de nuevo al default, y por qué en realidad es un fondo claro. Entonces um, eso se ve bien. Acabamos de crear una celda personalizada, ¿de acuerdo? Y así tenemos nuestra vista de mesa. Tenemos nuestra venta aduanera. Ahora necesitamos ir a escribir algo de abrigo, así que ve a tu controlador de vista. ¿ De acuerdo? Y unas cosas que necesitamos dio. En primer lugar, vamos a deshacernos de esta basura que no vamos a usar y conseguir estos comentarios. Entonces antes de que acabamos de heredar del controlador de vista de tabla e
implementamos todas esas
funciones de delegado para nosotros ahora, en realidad vamos a poner manualmente algunos protocolos aquí. Que eres tú, yo tabla ver fuente de datos. Y ustedes me mesa vista delegado. Ahora de nuevo, esto se incluyó automáticamente en el controlador de vista de tabla. Y si estás pensando bien, no
tenía que escribirlo antes, así que ahora me estás haciendo escribirlo. Bueno, eso es cierto. Un poco más de código, pero mucha más flexibilidad. Entonces creo que gana al final, y necesitamos dedo del pie tener una vista de mesa en sí. Entonces sigamos adelante y hagamos un tomacorriente I B Semana de nuestra vista de mesa. Recuerda, el controlador de vista de tabla conectó automáticamente la vista primero, lo
vamos a hacer nosotros mismos. Entonces no demasiado grande de un trato. De acuerdo, ahí vamos. You I table view conectará eso arriba en tan solo un momento. Y, ya
sabes, tenemos algunas funciones, y en realidad es bueno hacerlo de esta manera porque las memorizas. Entonces vamos a vender para la vista de tabla de aros, pharoah
celular, ruta de
índice. Encuentra ese ahí mismo. Por cierto, estos no aparecerían si no implementaras esos protocolos. Acabamos de implementar estos protocolos aéreos. decir, Hey, vamos a cumplir con las reglas que has establecido, Y, uh, si haces clic en una de estas aquí, Ok, tiene un montón de función opcional diciendo: Oye, aquí te dejamos algunas funciones opcionales a las que tu mesa de ustedes puede llamar y queremos
escucharlas . Entonces, uh, eso es genial. Obtuvimos la ruta de índice fero celular. ¿ Cuáles eran los otros que recuerdas? Bueno, teníamos una serie de secciones y vista de tabla. Vamos a devolver una, y luego la otra era vista de tabla, y era número off rose y section, y aún no tenemos un conjunto de datos, ¿
verdad? Pero podemos hacer eso aquí mismo. Y así solo por diversión, esta app se va a llamar cosas feas, ¿de acuerdo? Y, uh, eres como,
Bueno, Bueno, ¿a dónde va esto? No estoy seguro de que me guste. No te va a gustar, pero está bien. Eso tenemos una matriz vacía. Oh, esto debería ser Ah, en realidad, esto para ser un lenguaje de programación incorrecto de array. Esta debería ser una matriz de tipo string. Y ahí vamos. Array vacío. Vale, Ahora, lo que podemos hacer es que podríamos decir que queremos que el número de filas y sección sea igual a
cosas feas conteo de puntos Y cuando él y yo necesitamos devolverlo en realidad, ahí vamos. Está bien. Por último, tenemos la ruta de índice de Ferreira celular, y si recuerdas, necesitamos un pito. ¿ Eres una celda reutilizable? Entonces qué, vamos a dio vamos a decir, vamos a vender igual tabla vista de que celda reutilizable con identificador. Y ah, vamos a hacer eso por ahí mismo. ¿ De acuerdo? Y el identificador, solo
vamos a llamar a celular feo, ¿de acuerdo? Y eso se ve bien. Entonces nos dieron nuestro celular, y luego ah, necesitamos devolverlo porque eso es lo que está pidiendo. Ahora también vamos a necesitar configurarlo, pero sí tenemos un problema en este momento. Ahora mismo. Um, nosotros, uh No tenemos una celda personalizada para, um, asignar imagen para poner una etiqueta. Entonces nos dieron algunos problemas Necesitamos trabajar aquí. Está bien. Y así vamos a seguir adelante y escribir una clase personalizada, una subclase de celda de vista de tabla blanca. Está bien. Y esto es lo que vas a tener que hacer En cualquier momento que quieras, verdad? A custom, Tener un yo personalizado. Entonces vamos a cambiar a ti. Yo mesa de ustedes vendo, bien. Y sólo vamos a llamar a esta célula fea, ¿de acuerdo? Y no necesitamos crear un zip porque lo estamos haciendo en storyboards y seguir adelante y crearlo. Entonces ahora tenemos nuestra celda aduanera, y si recuerdas, correcto, nuestra celda necesita que tengan una imagen y una etiqueta, está bien. Y le hemos dado su propio espaciado y disposición. Completamente personalizado. Alguien deshacerse de set seleccionado. No necesitamos eso ahora mismo. Y sigamos adelante y escribamos una función llamada configurar celda. Está bien. Y en esta celda, ¿
qué queremos hacer? Queremos pasar en una imagen y queremos pasar en texto. Entonces vamos a decir imagen imagen del tipo tú me imagino bien, y vamos a pasar el texto. Acabamos de conseguir un texto de tipo string, y luego esta venta en sí va a tener algunos yo sea outlet porque vamos a soltar, arrastrar y soltar la imagen y etiquetar sobre ella barra tan débil y vamos a decir imagen principal bien de tipo tú yo te imagino ver y luego en I b outlet Week Bar, y vamos a llamar a esta etiqueta principal de tipo que etiqueta y luego en la celda configure, manteniendo mi recuerdo en celular pharoah index path, nos da una nueva celda y la reutiliza. Sólo vamos a decir,
Hey, Hey, vamos a pasar y datos personalizados aquí y nos vamos a restablecer nosotros mismos. Entonces recuerda cómo dije cuando plantea la vieja venta, hay
que limpiar los datos antiguos y volver a poner los nuevos datos en ella. Eso es todo lo que estamos haciendo aquí es que lo estamos haciendo nosotros mismos. ¿ Dónde está antes? Acabamos de hacer etiqueta de detalle, etiqueta
principal. Entonces aquí todo lo que tenemos que decir sólo imagen principal punto imagen igual a imagen, lo que significa que la imagen de nuestra vista de imagen es igual a la imagen contra pasada y entonces podemos decir que el texto de punto de la etiqueta de Maine es igual a texto y el número va a pasar en este texto aquí, y a lo mejor aún no ves del todo a dónde estamos llegando aquí. Pero mira ahora, vuelve al controlador de vista. Y ahora podríamos hacer algunas cosas Primero ahora podríamos hacer y si lo dejamos porque no sólo necesitamos una celda de mesa regular. No necesitamos una mesa de ustedes, así que necesitamos una fea personalizada. Entonces eso es lo que creamos. Entonces voy a decir, como nos dieron un elenco a una celda fea Así que ahora estamos diciendo, Hey, si hay una celda, si pudiéramos conseguir una celda reutilizable de esta identificar el aire, sigamos adelante y usarla. Entonces, um, eso es genial. Entonces ahora lo que podríamos hacer, podríamos decir, Vender que configure celda y necesita una imagen y texto y no tenemos ninguno de esos todavía, así que realmente no podemos hacer eso. Todavía no podemos configurar nuestra celda, pero lo podemos hacer es conseguir el resto de nuestro código repetitivo. Entonces si tenemos esta celda aquí mismo para que fue exitosa,
vamos adelante, sólo regresarla Así que si hemos vuelto a utilizar con éxito una celda, devuélvala de lo contrario. ¿ De acuerdo? De lo contrario, ¿qué? Vamos a dio si no vamos, Teoh devolver una nueva venta fea, así. De acuerdo, así que ten en cuenta si cayó para darnos una celda o cayó para lanzar lo que no quieres. Pero si se cayera de todos modos, simplemente
crearíamos uno nuevo. Vale, recuerda, estamos usando células, así que tienes que usar una vieja o una nueva. Entonces eso es todo lo que estamos haciendo aquí. ¿ De acuerdo? Y aún no podemos configurarlo porque aún no tenemos nuestra fuente de datos, así que vamos a necesitar eso. Entonces sigamos adelante y divertirnos un poco. Puedes seguirme conmigo, uh, o saltarte esta parte del video si te lleva, te
lleva demasiado tiempo o algo seco. Pero vamos a ir por unas imágenes, ¿de acuerdo? Vamos a conseguir cinco imágenes, así que voy a ir a Google, y voy a escribir la palabra cosas feas. A quien tengo miedo. ¿ Qué va a pasar? Voy a dar click en imágenes y ggo. Está bien. Entonces, um bien. Voy a dar clic a la imagen aquí, y voy a Ah, ver imagen. Y voy a agarrar esta imagen aquí mismo. Voy a copiarlo. Está bien. De hecho, pongamos esto en el lado izquierdo y pongamos esto en el lado derecho. Entonces voy a ir por aquí a mi controlador de vista y ah, en mis cosas feas cadena justo aquí. En realidad voy a quitarme el ah, la cuerda de aquí, y vamos a seguir adelante y sólo poner liberales de cadena de letras aquí. De acuerdo, entonces el primero que tú Earl va a ser esto. OK, esa es una. Y yo no era ese tipo de lindo. Ah, ahí vamos. Um y, ah, no
sé qué es esto, pero vamos a agarrar a este que tiene algunos de tus estremecidos ahora mismo. Se pueden hacer cosas bonitas. Entonces ahí está nuestro segundo 1 y Ah, así que, um, vamos a tirar el gremlin aquí sólo por diversión. Entonces eso son dos. Aquí hay tres. Solo estoy haciendo una matriz de lo tuyo. OK, así que eso es Tres. Y ah, vamos a ir por la cosa de la blob que escuchas? Y ah, tenemos esto. Y ah, así que son 41 más y no tendrás que mirar estos por mucho más tiempo. Y, ah, algunas de estas cosas están tan malas. Oh, bueno, hablé demasiado pronto. Está bien, entonces, uh, aquí está el número cinco. De acuerdo, entonces ahora tenemos cinco euros, ¿verdad? De acuerdo, vamos a expandir de nuevo nuestro código. Y, uh, recuerda, esto no es una carrera, así que están separados por comentarios y estas cuerdas de aire, vale. Y, ah, lo que vamos a hacer es tener una segunda matriz cuando vamos a llamar hasta ahora títulos feos. Y ah, recuerdo lo que eran. Entonces, solo pon lo que queramos. Entonces, uh, diremos, hombre esto y esto es, uh, feo. Bueno, y ah, este no está tan mal. Está poniendo frases aleatorias al azar, y necesitaría cinco de ellas. Ah, no
lo haría. Yo quiero volver a lucir así. No puedo recordar lo que estamos haciendo aquí. Y ah, así que tienes 123 Whoa, hombre. No, gracias. Eso son cuatro. Alguien, Alguien apague la pantalla. De acuerdo, entonces ahora tenemos cinco títulos, ¿de acuerdo? Y nos dieron cinco años o de lo contrario eso es lo que queremos hacer es mostrarlos en nuestra celda de vista de tabla . ¿ Verdad? Entonces, ¿ahora qué? Podemos dio Esto es realmente genial. Podemos ir a nuestra vista de mesa aquí mismo. Y como sabemos ruta de índice, esa fila siempre va a la fila actual. Entonces va a ser que vamos a tener cinco. Podríamos simplemente agarrar y crear imágenes y cosas aquí mismo. Entonces qué, vamos a dio está enlistada la imagen primero tenemos que descargarla de Internet. De acuerdo, Deja que tu l es igual a s conde de tipo String. Ahí vamos. Entonces tenemos que crear tu l primero, y éste va a ser ¿Qué fue? ¿ Cuál fue la tarifa cosas feas? Um, sí. Yo quiero decir cosas feas. Um, índice path dot escribió. Entonces saquemos el elemento actual de él, que es una niña, lo cual está bien. Y luego qué? Tenemos que dio porque necesitamos descargar esa imagen de Internet. Y cuando hacemos
eso, bajan sus datos como datos N s. Entonces vamos a decir,
que los datos sean iguales a N s datos. Ahí vamos. Y estamos buscando contenidos de U R L ahí mismo. Y quiere euro, lo que simplemente lo crearía. Vale, y entonces ah, lo que vamos a dio es ah De hecho, esto debería ser un it. Que si deja aquí mismo si deja datos, OK, y ah, eso se ve bien. De hecho, hay un par de cosas que podríamos hacer aquí, en realidad. Um, sí. Entonces si deja datos, lo que va a hacer es que lo va a descargar. Y si hay algún problema, es que no va a ejecutar este código. De lo contrario eso, bueno, voy a seguir adelante. Pero exclamación También al final de nuestro tú, Earl, porque tus l's no están garantizados para crear tu l Pero como estos son en realidad o de lo contrario y acabo de conseguirlos de Internet y
no, están funcionando, está bien con este signo de exclamación aquí en el futuro. Si te hubieran descargado estos de Internet de forma aleatoria, como si un usuario los pudiera agarrar, definitivamente querrías hacer un en vuelo aquí. Pero ya que esto es duro codificado y sé que funcionan, ¿de acuerdo? Y así si dejamos que los datos así si descargaron con éxito los datos de internet Ok, lo que vamos a hacer es vamos a decir imagen. Vamos a decir lo que quiero decir. Um, la imagen de pantalla Let I m g te iguala. Yo imagino y que tiene uno donde se puede crear una imagen a partir de datos. Ese es un constructor ahí mismo. Y puedo decir datos. De acuerdo, Entonces si dejamos datos si funcionaba, si descargaba la imagen de Internet, pone en estos datos, y luego podemos convertir los datos en una imagen, y entonces podemos usar la imagen. Está bien, no está mal. Y así se ve bien. Um, una cosa que quiero hacer, sin embargo, es manejar el caso donde tal vez, um tal vez no
hay, no
hay ah, no hay imagen. Entonces si vuelvo a Google, solo
tomemos una imagen como un marcador de posición. Cosas tan feas en Google y vayamos hacia abajo y ojalá no veamos nada malo aquí
en Internet. Y, uh, esto no es feo, pero es ah Vale, así que sigamos adelante y simplemente arrastrarlo al escritorio aquí y ¿qué está pasando? Um, no
lo pillo. Eso está bien. Pero de todos modos, um, solo
llamemos a este perro y solo voy a hacer click activos aquí y arrastrarlo de nuevo. Puedes agarrar cualquier imagen que quieras. Esto es sólo para completo. Financia las imágenes K. Y voy a eso se ve bien. Entonces lo que voy a dio es en realidad, um, volver a mi código. Acabo de hacer clic en la flecha de atrás aquí, ¿de acuerdo? Y entonces lo que vamos a dio es ah, vamos a crear una imagen aquí. Entonces debo decir de nuestra imagen de tipo te imagino y estoy poniendo un signo de exclamación, ¿
es decir? Sé que ahí va a haber un valor. Entonces lo que voy a hacer es que en realidad sólo voy a decir imagen. Esta imagen de aquí mismo es igual a esto. Y si
lo había, no fue capaz de descargar la imagen. Lo que podemos hacer eso para decir imagen es igual a tu imagen. Y estamos buscando al que se llama, y creo que acabamos de llamarlo. Ah, perro. Correcto. Eso es lo que llamamos aquí en la carpeta Activos perro. Entonces va a que en su lugar va a usar esa imagen. De acuerdo, así que tenemos oficialmente tenemos una imagen aquí ahora, descargada de Internet, Por cierto, la está descargando sincrónicamente. Significa que va dedo del pie. Pausa tu programa hasta que se descargue, lo que dará ah experiencia de usuario más lenta en el futuro. Vas a aprender sobre hacer llamadas web asíncronas en las que realmente puedes descargar en una amenaza de fondo separada para que no haga que las cosas parezcan más lentas. Ah, pequeñas técnicas como esa para hacer tu aplicación y extra potente. Y así se ve bien. Obtuvimos nuestra imagen. Entonces ahora lo que Weaken Dio es Ah, podemos configurar la celda para que pueda decir vender punto configurar, venderlo una vez una imagen, tenemos. Y el texto, si recuerdas bien, va a venir de títulos feos. Entonces todo lo que tenemos que hacer aquí es decir, títulos
feos, ¿de acuerdo? Y esto es ruta índice punto ro y dulce acaba de pasar en una imagen y un título en nuestro celled lo
configuró . Y, um, esto se ve realmente bien. Se ve fea. Eso se ve bien. Uh, vamos a ejecutarlo y ver. Yo era como ejecutarlo y sólo ver, puede
que tenga que tener un accidente, pero eso está bien, eso se espera. Así es como realmente me desarrollé en la vida real. Si alguien te dice que es diferente en esto, están mintiendo. Teoh. Así es como realmente es el desarrollo desarrollado. Estás viendo el mundo real aquí. Yo quiero ser honesto contigo sobre cómo son las cosas. Obtén tu verdadero gusto de la programación porque así es. Entonces lo estaban cargando. Y sé que olvidé algo que ya puedo recordar en este momento. Puede chocar. Puede que no. Entonces Ok, no
se estrelló, pero no nos dio lo que estamos buscando, verdad? Entonces una cosa que sí olvidé es ah, recuerda cómo antes, cuando entré en el guión principal, ¿
verdad? De acuerdo, um, antes de hacer clic en la vista de tabla y hice clic derecho en ella y mostré a la fuente de datos en delegado. Podría simplemente arrastrarlo hasta aquí al controlador de vista y asignarlo, pero lo vamos a hacer de una manera diferente. Y river, la fuente de datos y delegado, Um, eso es lo que dice tu código para escuchar eventos desde la mesa de ti. Al igual que rosa nueva haloed. Esto y aquello. Todas esas cosas buenas. Entonces lo que vamos a hacer es a la vista. Sí cargó. De acuerdo, Vamos a decir tabla vista dot delegado es igual a self y tabla vista punto fuente de datos igual auto. Y noté que en realidad lo hicimos. Nos perdimos dos cosas más. No conectamos nuestra vista de mesa y no nos conectamos, Al, está en nosotros mismos. Entonces me adelanté un poco aquí. Eso está bien. Fácil arreglar lo que vamos a dio. Está bien, bien. Haga clic en el controlador y vea donde dice vista de tabla. Ese es nuestro outlet para bebés. Todo lo que tenemos que hacer es arrastrarlo a nuestra vista de tabla. No tan mal. Está bien. Y luego en tu celular, que está justo aquí. Este tipo de aquí, clic
derecho en él y se dio cuenta. Um, espera un minuto. Ah, está justo aquí. ¿ Ves esto? Aquí mismo dentro de la mesa de ustedes Vende. No, no
lo es. ¿ Dónde está? Busco nuestros puntos de venta, pero no lo estoy viendo aquí. Eso es interesante. De acuerdo, vámonos. Volvamos atrás y miremos nuestra fea celda. Ah, ya
sé por qué es esto. Es por eso que así en tu mesa de que vendes aquí mismo, nos olvidamos de darle la clase personalizada. Ja ja. Que es si vas por aquí, haz clic en esa pequeña celda fea rectángulo. A ver, establecemos la clase para que pueda reconocer los puntos de venta. ¿ De acuerdo? Y además, tenemos que darle la reutilización. Identificar ¿verdad? Y si recordamos, correcto, el identificador de motivo que le dimos waas feo celular con minúsculas. ¿ Estás bien? Seamos convencionales y solo le damos mayúsculas al igual que el nombre de la clase. Entonces eso es todo consistente. Pero volvamos al storyboard de Maine. click a tu venta y dale un reiss identificar de célula fea. De acuerdo, ahora, si haces click derecho en Ugly Cell, deberías ver ahí es tu imagen principal para que puedas arrastrarla y seleccionar la imagen y tu etiqueta
principal y arrastrarla y seleccionar la etiqueta. Está bien, Megan Progress. Sigamos adelante y construyámoslo y veamos si hemos resuelto todos nuestros problemas. Aquí viene y mira eso. Está funcionando. Está funcionando, aunque parece que derribó a Teoh. Descarga tres de las imágenes. OK, entonces es bueno que establezcamos el default. Venden su derecho. Um, sí, es ah, no le gusta hacer eso. No están tan mal. Tres de las imágenes cayeron a descargar que podrían haber sido Jeffs o algo así y no
sabían analizarla correctamente. Um, eso está bien, pero sabemos que está funcionando bien. Se ve bien, pero el texto ¿sabes qué? Es un poco grande. Y entonces, ¿y si quisiéramos encogernos? Por lo que podemos hacer es que puedes seleccionar tu etiqueta de texto aquí mismo. Y en lugar de un tamaño de fuente fijo en el lado derecho bajo auto retráctil, ¿por qué no haces un tamaño de fuente mínimo y le das un tamaño de fuente de, como, 10? Significa que lo va a encogerlo hasta las 10 hasta que quepa. Además, no
me gustan no me gustan las líneas divisorias. ¿ De acuerdo? No en absoluto. Entonces voy a hacer clic en mi celular, y voy a realmente, voy a dar click ahí. Esto No, no es
eso. Voy a hacer clic en mi vista de tabla, y voy a ir al separador y voltear a ninguna. Entonces vamos a apagar los separadores. Simplemente no me gusta. Y ah, entonces tampoco me gusta cómo están las imágenes Air Square. Entonces vamos a nuestra fea celda que vamos a hacer es nuestro despertar de la función de punta. Vamos a esto se llama cuando esa primera despierta y aparece en la vista. Lo que vamos a hacer es darle una esquina redondeada. Sólo tienes que agregarle un poco de amor. Un poco de amor y atención puede llevar un largo camino a una app de IOS. Entonces vamos a decir que el radio de esquina de punto guarida equivale a cinco puntos. Ah, así que va va Va a hacer que el ah,
los bordes en él se redondeen. Está bien. Y ah, entonces también, lo que voy a decir es que voy a decir capa dot clip o punto Vamos a ver aquí, Blair Mayne imagen principal, no clip para rebotar bien, igual a cierto. Entonces lo que va a pasar es que va a hacer mi imagen. Tienes esquinas redondeadas, pero si no hago clip a límites, la imagen real dentro de ella todavía va a salir fuera de ella. Y eso no queremos. Queremos que se recorte todo lo que esté fuera de los límites. Entonces nos da ese bonito estilo
redondeado Scott y reconstruirlo y ver si nos deshicimos de esas líneas e hicimos nuestra imagen es un poco más redonda. Y aquí viene, Momento de la verdad. Oye, mira eso. Por lo que las imágenes se airen ahí. No los está cuadrando, sin embargo. Tenemos que arreglar eso, en realidad, y ah que ah, los fondos. Entonces definitivamente se encogieron de tamaño aquí, así que eso es realmente genial. Eso es realmente, realmente genial, en realidad. Entonces, um bien, hecho, no
estoy muy seguro de por qué el radio de la esquina no funcionó en realidad. Um oh, por
eso debe ser el radio de esquina de punto de la guarida de la imagen principal. Hice el radio de esquina de punto celular en sí. Tenemos que configurar la imagen para que tenga una esquina redondeada. Ustedes chicos, como ya vieron a ese maniquí? Perdón. No puede ser perfecto. Bastante cerca, sin embargo. Ahí para ver cómo es redondeado. Ahora se ve genial. Acabamos de hacer una aplicación realmente genial en un periodo muy corto. Tiempo descargando imágenes de Internet, usando una celda personalizada con tomacorrientes personalizados, todo tipo de cosas buenas pasando. Así es como quieres desarrollar saps IOS como este, usando celdas personalizadas, haciendo que se vea realmente bonito. No tardó tanto tiempo. Un poco de un poco más de trabajo con un largo camino para hacer de esta una
aplicación mucho mejor . Yo creo que
sí, Sí, Las cosas en él son feas, pero es bastante fea aplicación. Entonces eso es todo. Esta es mesa personalizada para ustedes mismos. Se trata de vistas de mesa personalizadas y esto es precio de marca con pendientes de muerte firmando CIA la próxima vez
61. NSUserDefaults: Hey, todos, Mark Price aquí en profundidad pendientes punto com. Y hoy vamos a hablar de Ennis usó los impagos. Estarás usando estos en la app mi pie en su gran manera de, um, almacenar datos en tu dispositivo y en un pullup en un nuevo proyecto aquí. Por lo tanto archivo nuevo proyecto. Está bien. Y así el objetivo es poder persistir datos al disco. ¿ De acuerdo? Es decir, cuando la app se cierra, aún
podemos cargar datos desde la app para iPhone. Y, uh, en este usuario por defecto, lo
guardaremos en el dispositivo. Y no es tan robusto como algunos de los otros sistemas como SQL light data base o core data, Um, pero sigue siendo muy potente. Y muchas, muchas, muchas aplicaciones se pueden construir usando solo esto, aunque lo sepas. Entonces si no inicias las cosas en Internet, puedes hacerlo con tus valores predeterminados de usuario de s. Realmente genial. Así que vamos a seguir adelante y hacer clic Aplicación de vista única. Y solo llamemos a esto los valores predeterminados son divertidos. Se crea aquí en el escritorio. Eso está bien. Y entra en tu, um, controlador de
vista aquí. Entonces lo que queremos hacer es, digamos que queremos almacenar um, color favorito de
un usuario. ¿ Por qué no? Vayamos al tablón principal de cuentos, en realidad, y asaib desabotonado. De acuerdo, lo que vamos a hacer con este botón, él va a hacer un poco más grande aquí. Voy a quitarme la palabra, pero en le voy a dar un color de fondo aquí abajo y vamos a decir lee tú eliges color
que quieras. Eso está bien. Hagamos que sea una buena elección electoral. Hagámoslo un bonito rectángulo aquí. Vamos a hacer tres cubetas, k, y vamos a seguir adelante y hacer un dentro de una altura. Y yo sólo voy a controlar C Control V y C y control de ustedes una vez más. Y, uh, voy a cambiar este medio a otro color. El pergamino aquí abajo. Vamos a cambiarlo. Teoh amarillo y el más extraño al azul. Tan rojo, amarillo y azul, estos tres botones de aire, OK, Y así vamos a seguir adelante y sólo dormamos los tres y alinéelos todos horizontalmente en el contenedor. Está bien. Y luego este top uno, vamos a seguir adelante y fijarlo desde arriba, y eso está bien. Y vamos a anclar este del rojo 1 20 píxeles y éste del azul por 20 píxeles . Se ve genial. Y también deberían tener sus alturas dentro. Sí, se dieron bien, así que tenemos nuestros tres botones aquí, así que sigamos adelante y abramos el asistente de editor. Y lo que vamos a dio es Ah, apaguemos el lado izquierdo aquí y el lado derecho Sólo por más espacio ya que vamos a crear tres yo sea acciones. Entonces ahí mismo, señor. Control arrastrado del rojo. Y cambiemos esto por inacción. Y vamos a llamar a esto, uh, solo llámalo rojo y vamos a controlar arrastre desde aquí. Llamemos a este cambio a una acción y lo llamemos amarillo. ¿ De acuerdo? Y luego controlemos drag desde aquí, y llamaremos a éste azul Cámbialo a una acción. De acuerdo, entonces tenemos rojo, amarillo y azul. ¿ Y qué va a pasar? Queremos dio es almacenar el color favorito de los usuarios. De acuerdo, así que vamos a cerrar esto de verdad rápido y abrir el lado derecho. Y una cosa más que quiero hacer es tener una etiqueta en la parte superior que solo muestre el color
favorito de los usuarios . Entonces, ¿qué? ¿ Se dio así como más grande aquí? No. Bueno,
céntralo . Hagámoslo aún más grande. ¿ De acuerdo? Por lo que lo centraron ahí. Y ya sabes, así se veía así. Dirá color favorito. Y dirán, como azul. Correcto, Um, o algo así. De acuerdo, eso me queda bien. A mí me gusta. Entonces sigamos adelante y le damos un dentro de una altura. Amputa 25 desde arriba. Y también hagamos clic en el menú de alineación y horizontalmente y contenedor. De acuerdo, Entonces la idea aquí es, um básicamente, si no hay color favorito, va a decir que va a decir una púa, un color favorito. Y si hay un color favorito la próxima vez, la subida que va a mostrar ese color Ok, usando los valores predeterminados de s usuario. Entonces sigamos adelante y asistente de editor otra vez, y yo solo voy a hacer y estaría fuera de control arrastrando por aquí y vamos a llamar a esta etiqueta de
favor ahora cierra el asistente de editor. Y luego abramos aquí el lado izquierdo y abramos el controlador de vista. Y lo que vamos a hacer es siempre que un botón presione, vamos a guardarlo. Eso es todo s O. Lo que podemos hacer es, um, decir, uh, si los botones rojos presionan bien, ¿ vamos a hacer? Dos cosas fueron para decir etiqueta de favor. De acuerdo, etiqueta
favor. Um es igual a, um, Faiveley no será el texto igual al color favorito. Está bien. Y vamos a hacer el índice especial de inserciones de variables aquí, y sólo vamos a decir, en realidad, ni
siquiera necesitamos eso, para ser honestos, porque no es una variable. Por lo que voy a decir muy color rojo. Y de hecho, podemos copiar y pegar esto en todos estos. Esto no es necesariamente una gran práctica de recubrimiento, ya
sabes, repitiéndonos aquí. Pero esto es justo que este no es el punto del ejercicio. Tan amarillo. OK, entonces vamos a actualizar la etiqueta que también vamos a dio. De acuerdo, Lo que también vamos a hacer es un n s valores predeterminados de usuario, no valores predeterminados de usuario estándar que establecen, uh, objeto. Entonces esto hoy, cuando objetes sobre el valor en una clave en ella o podrías establecer valor cuatro clave, cualquiera de ellas funcionará. ¿ De acuerdo? Parece ir adelante y decir valor establecido para clave, y vamos a decir que el valor se va a leer cuatro color clave, vale. Y lo que debilita Dio es, uh, copiar y pegar, Esto está bien, dos en cada uno de estos cambiarán los colores. De acuerdo, entonces cambiaré este color a azul mantendría el nombre clave igual, pero cambiará el valor real y éste va a ser amarillo. Entonces lo que hemos hecho es que hemos conseguido estos valores predeterminados de usuario aquí, y hemos establecido el valor para clave. Hay una cosa más que tenemos que hacer es decir,
Ennis, Ennis, predeterminados de
usuario que estándar que los valores predeterminados de usuario estándar que se sincronizan. Y lo que sincroniza va a hacer es esto realmente lo va a guardar en el disco? Y así lo llamaremos cada vez también, a cualquier momento que queramos guardar algo lo sincronizará. De acuerdo, Sincronizar, sincronizar, sincronizar. Está bien. Y luego lo último que queremos hacer aquí es en Visto se carga cuando se carga la APP por primera vez. Si hay un valor ahí dentro, asignemos. De no ser así, cambiaremos la etiqueta en consecuencia. Entonces diremos,
um, um, si dejamos y solo diremos color, obtendremos el color de cadena igual a N s valores predeterminados de usuario que el usuario estándar por defecto valor de punto cuatro reacción clave. Entonces vamos a conseguir valor por clave, vale, y la clave va a ser color. Entonces lo que estamos diciendo es, oye, agarra el valor de la llave. Y por supuesto que no. No sabe de qué tipo es, así que podemos decir como cuerda, Ok. Y ahí vamos. Entonces, básicamente, vamos a tratar de agarrar el valor de esa llave. Si entramos aquí, significa que había un valor si no llegamos aquí, sabemos que es la primera vez cargando. Entonces lo que podríamos hacer es decir otra cosa. Entonces si no hubo valor, podemos decir favor etiqueta punto texto igual a elegir un color. Está bien. Y, uh, lo contrario, si hay un valor, lo que vamos a hacer es decir favor etiqueta de texto punto es igual a color favorito y ahora usa aquí el índice de cadenas especiales. Insertar inserción variable dirá significado de color, refiriéndose a esta variable justo aquí que llamamos color. Entonces esto es lo que va a pasar cuando se cargue por primera vez la APP. Si no hay un valor predeterminado de usuario, nunca se ha dicho antes. Se va a decir, escoge un color en la etiqueta. De lo contrario, vamos a ponerlo al color favorito que se escogió solo para demostrar que existe más allá la muerte de una aplicación. Y, um, lo que tenemos aquí es cuando haces clic en los botones rojo azul o amarillo. Se va a, por
supuesto, etiqueta
actualizada, pero también va Teoh establecer un valor para cada uno de esos colores. Al final, el usuario estándar toma por defecto el color de la clave, o
va a ser azul, rojo o amarillo. Y eso va a almacenar en tu dispositivo y sincronizar realmente sincroniza y lo guarda en el dispositivo. Entonces, si sigo adelante y corro esto, deberíamos esperar que diga elegir un color porque nunca hemos guardado nada todavía. De acuerdo, aquí vamos. Ejecutando la aplicación. Cruz está aquí. Aquí vamos. Está bien, bien. Amarillo y azul. Así que hago clic en rojo Vamos a asegurarnos de que todos estén funcionando azul amarillo Así que todos están trabajando hasta donde el tú que oigo. Y así vamos a dio vamos a leer. Y así esto debería haber llamado aquí a esta función roja y debería habérsela guardado a Ennis. valores predeterminados del usuario, ¿verdad? Recuerdo cómo en tiempos pasados cerramos la recarga de manzana y todo se restablecerá. Entonces ahora si paro esto, vale y voy por aquí y podrías hacer turno de mando H, eso te va a llevar a la pantalla de inicio. ¿ De acuerdo? Comando turno H y luego si haces turno de comando Uh um h dos veces seguidas, muy rápido. Se tira de abrir el gestor de múltiples tareas aquí, y sólo podemos arrastrar hacia arriba para cerrarlo y matarlo. De acuerdo, así que oficialmente se mata. El APP no se está cargando en absoluto. Está fuera de memoria. Entonces cuando cargamos esto, deberíamos esperar esa etiqueta basada en esto aquí mismo. Deberíamos esperar que esa etiqueta diga rojo. Y eso significa que los valores predeterminados de los usuarios de RNs están funcionando. Es seguro para el dispositivo haciendo clic en la aplicación. Y ahí está. Color favorito rojo. Por lo que definitivamente guardó en el dispositivo, lo cual es genial. Entonces, ¿qué puedes ahorrar? Con los valores predeterminados de usuario de N s, puede guardar cadenas. Se pueden guardar enteros. Dices miles de millones. Ya sabes, todo tipo de números, cosas así. Incluso podrías almacenar, como, lleno en clases y datos. Y así vamos a hablar de eso ahora. Entonces lo hemos hecho. Es solo un valor simple aquí, cadena
derecha. También podríamos haber hecho un número establecer un valor para el número de Kia. Algo así. Um, así que acabamos de establecer cuerdas simples, y por cierto, esto es muy poderoso en sí mismo poder establecer cadenas. Ya sabes, si quieres guardar, um, algo único para ese usuario o cualquier dato que quieras. Pero hablemos de una mejor instancia donde Digamos que tienes una lista de artículos. De acuerdo, así que digamos que creamos un nuevo archivo llamado persona. Será una clase. De acuerdo, entonces ¿qué es una persona y ponla aquí y qué va a hacer tratos dirá clase, persona, Y vamos a tener un de nuestro primer nombre de barra de cadenas tipo, Apellido de tipo string. No vamos a ir a variables privadas en este momento, sólo con fines de demostración. Entonces un nombre de pila en el apellido, derecha, Y luego un inicializar er primero de tipo string y último de tipo string. Está bien. Y, uh, no
necesito eso. Ahí vamos. Eso es lo que podríamos decir es Ah, nombre es igual al nombre y el apellido igual al último. Ese es el Isar inicial luce bien. Y así digamos en nuestra opinión, controlador aquí. De acuerdo, digamos que queremos tener una variedad de personas hasta ahora, gente es igual a una matriz de tipo persona. Hagamos que un rayo vacío esté bien. Una matriz vacía de tipo persona y luego justo aquí podemos sólo ah, debilitar, sentarnos. Podemos crear unas cuantas personas. Vamos a crear tres. De acuerdo, entonces var, um persona a igual persona. Démosle un nombre de pila. Apellido. Uh, ala John Todos Wing Chun esta noche y ah, persona b igual a persona. Y digamos, uh, Lady Gaga, si aún es clasificable como ser humano y persona de bar, c es igual a persona y ah, este será Justin Beaver, el bebé. Er, a quién le importa cómo se llama Bill? Está bien, así que ahí vamos. Tenemos a tres personas diferentes, ¿verdad? Entonces, ¿cómo salvaríamos esto ahora? Podríamos hacer algo así? Podríamos primero, vamos realmente a sumar a la derecha. Perdón, la gente anexa persona a. De acuerdo, gente anexa a la persona B gente. Esa persona anexa. Nos vemos ahora. A ver qué pasa si nosotros Oh, eso no le gusta por alguna razón. ¿ Qué le deletreé? No, creo que se está tropezando aquí. OK, funcionó. Dame un aire al azar. Acabo de construirlo y está bien. Por supuesto que quiere que seas Vamos a ser yo solo odio tener estas advertencias dang en la pantalla que me enloquece. OK, entonces creo que por eso hizo ruido? Entonces lo hacemos de la manera que ellos quieren que lo hagamos. De acuerdo, así que hemos agregado a estas personas a la matriz en poco tiempo aquí. Está bien. A la vista sí carga. Ahora tal vez estás pensando, Bueno, vamos a ahorrar las tarifas. Digamos que Ennis, valores predeterminados de
usuario que los valores predeterminados de usuario estándar establecen, objeto. Por lo que podríamos decir conjunto, objeto y diremos gente gente por clave. Yo quiero decir que la gente es la clave. De acuerdo, vez en cuando podemos hacer. Y este usuario por defecto estándares de punto no se sincronizaron. De acuerdo, entonces tal vez estás pensando que eso funcionaría. Bueno, sigamos adelante y tratemos de ejecutarlo. Entonces esto va a pasar, ¿verdad? Cuando la manzana Avena, vamos a sumar a esas personas y tratar de salvar esa matriz. De acuerdo, tenemos un problema. Mira eso. Tenemos una aplicación de terminación aérea. Teoh en s argumento inválido excepción intento de insertar no lista de propiedades Objeto. De acuerdo, entonces tal vez eso no signifique nada para ti ahora mismo. Um, como, ¿qué significa eso? Bueno, es un poco de aire duro de leer, pero lo que significa es que nuestra aplicación no puede guardar estos datos porque no sabe
reconocer un objeto de persona. Se trata de una clase personalizada que tiene propiedades y entierros en ella, pero no sabe reconocerlo como un objeto que podría salvarse porque cuando
las cosas se guardan, tienen que ser lo que se llama codificado. De acuerdo, Tienen que ser codificados para que puedan ahorrar en el dispositivo. Cuando salen, están decodificados. Cuerdas pueden hacer eso normalmente en los jurados miles de millones que sucede automáticamente, razón por la que pudimos hacer eso antes. Pero la clase personalizada está bien. Quieres almacenar una variedad de cosas en clases personalizadas. No funciona tan fácilmente s tenemos que hacer otra cosa. Por lo que siempre que quieras almacenar datos personalizados como clases y deberías ser todos tus datos, mayor parte debes estar en clases personalizadas. Ya sabes, va a ser una tienda muy común,
una matriz, una app que construí se llamaba Make a Snowman y moverías objetos de muñeco de nieve por ahí y cosas por el estilo. Entonces necesitaba guardar coordenadas y posiciones y transformaciones a lo que hice fue crear una clase
personalizada que almacenaba todas esas posiciones transformadas y cosas así. Y luego los recubrí y los decodificé. Y así tuvimos que hacer algo como esto donde tenemos una matriz de objetos. Y entonces lo que vamos a dio es ir a nuestra clase de personas, y hay algunas cosas que tenemos que hacer para que esto funcione. En primer lugar, uh, si queremos poder guardar clase a los valores predeterminados de usuario de Ennis tenemos que implementar o después heredar del objeto N s. OK, eso es un objetivo Clase C K. Y este objeto y s codificación es un protocolo que tenemos que implementar. De acuerdo, Entonces si quieres guardar un usuario de tenis de clase personalizada por defecto, esto es lo que tienes que hacer. No tienes menos de la mitad. No tienes que entenderlo completamente, Pero tienes que saber que esto es lo que tienes que hacer. Tienes que implementar en su codificación y objeto Ennis. Y el objeto es que este es el clásico de los padres, y es recubrimientos de protocolo. Y lo que vamos a dio es que vamos a implementar una, uh, inicializada, y se va a llamar conveniencia requerida en ella. Y va a ser el codificador debería estar apareciendo automáticamente, pero no es un codificador s. De acuerdo, entonces lo que vamos a dio es ah es que vamos. Tenemos que crear esta conveniencia inicializar er, y también tenemos que crear y solo un er de inicialización vacío también, también. Como tal Lo que vamos a hacer es primero llamaremos a la regular ella misma punto inicializada en él, este que acabamos de crear aquí mismo. Vamos a llamar a eso primero, ¿de acuerdo? Y así tenemos conveniencia inicializar er, y hay uno donde necesitamos implementar, y se va a codificar con codificador. ¿ De acuerdo? Y eso es lo otro que necesitamos implementar. Entonces lo que vamos a hacer es que cuando estaban cargando desde los valores predeterminados de usuario N s, esto se va a llamar automáticamente. Está bien. Automáticamente va a llamar a este especial de inicialización er aquí para decodificarlo desde tu sistema . De acuerdo, entonces eso es lo que tienes que tenerlo aquí porque a lo que tenemos que hacer se le asigna el valor. Entonces lo que vamos a hacer es decir auto punto primer nombre es igual a un decodificador de puntos objeto decodificador, cuatro clave. Y la clave va a ser lo que quieras darle. Lo vamos a llamar exactamente el mismo nombre que nuestra propiedad como fortalezas. Qué haces cuando estás decodificando algo. De acuerdo, cuando estás decodificando algo cuando esto se llama automáticamente, todo lo que quieres decir es, Oye, ¿cómo lo guardaste? ¿ Qué dijiste? Ese objeto codificado como para que pueda sacarlo y convertirlo en una cuerda o en lo que quieras convertirlo. Entonces es solo que solo está tomando el objeto, y lo está formateando para ti. Y así vas a querer hacer eso por cualquier cosa que quieras guardar en disco en tu clase
personalizada. Necesitas hacer eso. Necesitas escribir un decodificador para como lo estamos haciendo aquí mismo es el apellido va a ser un decodificador dot decode object for key. Y este va a ser apellido otra vez. Estas llaves. Podrías guardarlos en cualquier clave que quieras, pero tiene sentido guardarlo ya que el mismo nombre exacto es la variable. Entonces eso es lo que pasa cuando lo decodificas. Cuando se carga desde el disco, va a hacer automáticamente va a llamar esto para ti automáticamente y poner las variables aquí para ti automáticamente. Pero, ¿qué pasa con la codificación cuando quieres guardarla en el disco? Bueno, tenemos que hacer eso también. Por lo que un punto codificador en el objeto de código. Está bien. Y equivocado Uno en codificar objeto para clave. Eso es lo que queremos. Por lo que queremos codificar objeto para clave y el objeto que queremos codificar aquí es auto Ese nombre para el primer nombre clave. Entonces otra vez, podríamos haber llamado a esto cualquier cosa que pudiéramos haber llamado enfermedad. Fácil. Lo que sea. No importa, pero tiene sentido llamarlo exactamente el mismo nombre que su propiedad. Eso también lo que ustedes enhorrecen
aquí . Y luego un coder dot codificar objeto, y diremos auto punto apellido cuatro apellidos clave. Entonces cuando dices de los valores predeterminados de usuario, cuando haces Ennis por defecto de usuario como set, objeto para clave y luego sincronizar. De acuerdo, esto se va a llamar automáticamente. Nunca tienes que preocuparte por estos aquí mismo. ¿ De acuerdo? Te va a hacer esas cosas automáticamente,
pero tienes que implementarlas si quieres guardar en disco y recargar en clase personalizada es como lo estamos haciendo aquí mismo. ¿ De acuerdo? Para que así esos aire ahorita ahorrado, Decodificado, codificado. Entonces ahora si voy a mi controlador de vista aquí Así que nosotros que hemos creado estas personas recuerdan estas personas tienen sólo que ahora son capaces de ser decodificados y codificados. Y entonces lo que estamos diciendo es, oye, vamos a sumar a la matriz y luego vamos a guardar esa matriz. Entonces ahora veamos qué pasa si ejecuto mi aplicación. Si obtenemos algún error al hacer clic en set, objeto para clave y luego sincronizamos. De acuerdo, entonces todavía tenemos aire. De acuerdo, hay una cosa más que tenemos que hacer. Podemos ahorrar. De acuerdo, tenemos que convertir nuestro objeto. Queremos guardar en datos. OK, entonces lo que queremos hacer es justo aquí, ¿de acuerdo? Queremos crear una nueva variable que convierte son. Es esto muy bien que va a sostener son gente convertida una carrera. Por lo que vamos a decir que la gente datos es igual a n Eschede archivar er los datos archivados con objeto raíz. Vamos a teclear sólo va a poner en la matriz de personas. De acuerdo, entonces vamos a dio es vamos a tomar esa matriz de gente. Eso es justo aquí, y lo vamos a convertir en datos. Recuerde que los datos dentro de la misma han enviado ser codificados, capaces y decodificados herbal. Y luego necesitamos convertirlo en datos como lo estamos haciendo aquí mismo. Y luego en lugar de establecer personas de objeto, establecemos datos de personas. De acuerdo, entonces ahora estamos configurando los datos, Así que nos hemos convertido en datos, bytes y bits. Eso es lo que hemos hecho aquí. Lo estamos archivando. Lo estamos preparando para estar a salvo. Ahora, si estás pensando ahora, esto es mucho trabajo. Me estoy confundiendo de verdad. Bueno, primer lugar, vemos los videos una y otra vez, pero esta es la forma más fácil de guardar datos e IOS. A partir de aquí sólo se vuelve más complejo. Entonces si quieres la forma más simple, esta definitivamente es ella. Entonces quieres vas a querer aprender a dominarlo. Entonces, corrámoslo ahora y veamos qué pasa. ¿ De acuerdo? Y funcionó. Ahora estás como,
Bueno, Bueno, no pasó nada. Bueno, todo lo que estamos haciendo es salvarlo. Por eso no pasó nada. Pero hablemos de cargarlo ahora. Entonces digamos después de que se guardara aquí, descargue. Cuando hacemos clic en el botón azul, sólo lo queremos. Queremos cargar a esas personas y queremos imprimirla. ¿ De acuerdo? Entonces, um, eso es eso no está tan mal. No está mal de un trato. Entonces lo que vamos a hacer es que vamos a decir si dejamos,
um, um, gente
cargada bien? Es igual a n s valores predeterminados de usuario. El usuario no estándar predetermina ese objeto para clave. Recuerda que creo que lo llamábamos gente. Correcto. Um, lo
llamábamos gente aún ahí mismo. Y recuerda, no
guardamos la matriz real. Guardamos la matriz como datos, así que vamos a convertirla en un dato. Entonces es s datos. Entonces lo que estamos diciendo es,
oye, oye, agarra a la gente que está en ese usuario predeterminado que los datos y conviértalos a datos. Y si llegamos aquí, sabemos que funcionó, y entonces diremos es ah si dejamos que la gente arregle, ¿ acuerdo? Igual n Eschede Archivo de la ONU. Er, llamamos archivo. Conviértalo en datos. Ahora está en archivarlo en objeto de archivo con datos, y esto se va a cargar, People. Está bien. Así lo llamábamos, creo. Sí. Y, uh, nunca digas, ya que es una variedad de personas. Correcto. Entonces vamos a convertirlo en una variedad de personas. ¿ De acuerdo? Esperanza persona, no gente. Un conjunto de personas. De acuerdo, entonces otra vez, la gente
cargada es los datos Así que vamos de nuevo a los valores predeterminados de usuario estaban agarrando el objeto que guardamos. Y, por
supuesto, guardamos datos. No dijimos que el objeto en sí lo convertiría en datos. Y luego estamos ONU archivando esos datos en una matriz real de personas, y lo estamos convirtiendo en una persona. De acuerdo, entonces todo lo que tenemos que hacer ahora es decir por cada persona en la matriz de personas, sólo
vamos a imprimirlo y ver si funcionó. Vamos a imprimir persona punto nombre. De acuerdo, entonces otra vez, esto es cargar datos, acuerdo? Para recapitular aparecer, tomamos la matriz. En primer lugar codificamos nuestra clase que va a estar de la manera correcta, codificamos y la decodificamos. Y luego lo que hicimos fue archivar la,
uh, uh, matriz de
personas en s datos, y entonces esos son los datos N s que guardamos en nuestros valores predeterminados de usuario estándar. Y luego nos sincronizamos aquí abajo cuando hacemos clic en este azul. Pero lo vamos a cargar, y lo que va a pasar es que vamos a sacar esos datos de las energías de los valores predeterminados en , archivarlos en una matriz de personas o una o persona. Y sólo iban a imprimir para asegurarse de que funcionara. Entonces si todo esto funcionó cuando hago clic en este botón azul, deberíamos ver cada uno de esos nombres imprimiendo, y los agarró del disco. De acuerdo, entonces vamos a darle una oportunidad a eso. Aquí vamos. Momento de verdad. Entonces sabemos que cuando se carga, lo está guardando en el disco. De acuerdo, Ahora, vamos a ver qué pasa si hago clic. Era el azul, ¿verdad? Sí. Ala dama Justin. Eso es una especie de nombre genial. Al igual que un asesino en serie tipo de cosas puso Weird. De acuerdo, así funcionó. Y sólo para enfatizar que realmente funcionó. Cambiemos una cerveza Justin a muffin muffin. Y lo que va a pasar es que en su lugar va a almacenar ese nombre, y deberíamos ver ese nombre imprimiendo aquí arriba en su lugar. Cuando hacemos clic en el botón azul, eso sólo es una segunda prueba que nos hace saber que absolutamente es ahorrar. Absolutamente lo estamos cargando desde el ala del disco, Lady muffin. Por lo que funcionó. De acuerdo, así que esto es realmente genial. Lo que te acabo de dar fue todo lo que necesitas. Todo lo que necesitas para almacenar datos en la app de iPhone. Entonces si estás listo para tener picor para sacar tu primera app por ahí. Está bien, tienes lo que necesitas. Ahora puedes almacenar un aumento. Podrías iniciar los datos. Cualquier cosa que
quieras, ahora puedes almacenar, y va a estar iniciando el dispositivo. Mídate. El usuario elimina el dispositivo se eliminan. El app fuera del dispositivo. Todos esos datos se han ido. Pero fue mientras el ábside ahí se quedará. Está bien. Si matan la app, ya
sabes, apáguala. Lo que sea. Seguirá ahí cuando vuelva a cargarse para poder construir muchas, muchas aplicaciones. Y por cierto, la aplicación que construí hacen un muñeco de nieve. Ya sabes que Usa este tipo de ahorro, ya
sabes, consiguió como, 500 mil descargas hechas, como 10 mil dólares. Entonces puedes recorrer un largo camino con todas estas cosas, pero lo estamos haciendo ahora mismo, así que si no lo entiendes,
justo lo que volvemos a ver el video y para recapitular. Y si no quieres que vuelva a recapitular, podrías terminar el video. Pero para recapitular si quieres guardar una clase personalizada, que es lo que debes estar poniendo en escena los datos en la mayoría de los casos, recuerda que vas a necesitar heredar del objeto N s, vas a necesitar implementar el protocolo de recubrimiento n s y luego te van a querer poner una inicialización vacía Er, uh, poner tu conveniencia requerida inicializar er con codificador un decodificador auto punto en
él, va a llamar a este aquí mismo. Y luego necesitas para cada una de las propiedades en las que quieres guardar, no tienes que guardarlas todas. Sean cuales sean los que quieras guardar, necesitas Teoh primero decodificar el objeto que es este cuando se carga. Por lo que va a llamar a esto automáticamente cuando se cargue por primera vez. Y así quieres decodificarlo con los nombres de claves exactos que lo guardas en él y luego siempre que lo guardes en los valores predeterminados de usuario de Ennis inhabilitantes. Esto se va a llamar automáticamente, y se quiere hacer eso para todas las propiedades que se desea cargar también a, por
supuesto, los nombres clave tienen que ser los mismos. Y el controlador de vista, cuando quieras guardar algo así como una matriz bien, o simplemente un objeto individual, vas a querer convertirlo primero en datos para archivar datos con objeto a través. Estás convirtiendo tu objeto en datos. Esto es en este caso, es una matriz. Y luego te vas Teoh, establece el objeto en las ciudades internas o por defecto el objeto de datos. De acuerdo, si es solo una cadena regular o booleano o entero o doble lo que sea. No tienes que hacer este archivo. Se puede establecer el valor directamente porque ya es uh uh funciona con codificación Ennis. Pero de lo contrario tienes que establecer los datos, establecer una clave para ello, y luego tienes que sincronizarlo para guardarlo, ¿de acuerdo? Y luego si quieres cargarla hey, solo
lo agarras del Not esta de aquí. Te lo sacas de los valores predeterminados de usuario de Ennis convertidos a datos de N s, y luego conseguiste un archivo de la ONU de los datos en el objeto que solía ser, y luego puedes usarlo, y eso es todo. Eso lo haces con cualquier aplicación ahora, así que tienes los valores predeterminados de usuario de energy s abajo. Enhorabuena. Usa esto en tus APS y haz algo genial
62. UINavigationController: todos marcan pricier en Deb pistas dot com. Y sí, nuevo, llevo una camiseta blanca. Y si estás pensando tal vez todos sean la misma camiseta. Bueno, déjame asegurarle, compré un paquete de cinco. Entonces todo está bien. Sigamos adelante y hagamos la lección para hoy, que son los controladores de navegación, y los vas a usar mucho, mucho, mucho, mucho a lo largo de tu carrera en cada aplicación, probablemente la idea detrás de un controlador de navegación. Adelante y crea un nuevo proyecto. La idea detrás de un controlador de navegación es que gestiona los mandos off de un Siri para ti . OK, es como un contenedor. Eso es lo que técnicamente es. Es un contenedor, y básicamente está optimizado para el rendimiento. Entonces, básicamente, cuando haces clic en los datos, te
lleva a una pantalla. Si haces click en algo que te lleve a otra pantalla, y luego si pulsas el botón Atrás, vuelve atrás, atrás, atrás siguiendo todo el rastro de ustedes controladores, aunque a punto de bajar a el principio, si no tuvieras el controlador de navegación, tendrías que escribir todo ese código tú mismo. Tienes que escribir un contenedor que logre sostener todos los demás controladores de vista. ¿ Cuáles? En la parte inferior. ¿ Cuáles? En la parte superior aquí. Es manejable para nosotros. A Muy bonito. Así que adelante y hacer una aplicación de una sola vista. No son muy difíciles de usar. Simplemente llámenos controlador knave solo para abreviar siguiente y creado aquí en el escritorio. De acuerdo, así que mueven a mi ex se metió un poco aquí y adelante y entra en tu
storyboard principal . ¿ De acuerdo? Y cuando eso decida cargar, ahí vamos. Tenemos un controlador de vista, pero si quieres usar un controlador de navegación, debes poner esto dentro de él. Se trata de un tráiler de navegación será nuestro punto de partida ahora. No tiene por qué serlo. No tienes que iniciar tu after the navigation controller. Puedes ponerlo más tarde. Incluso puedes agregarlo programáticamente ¿qué? Vamos a hacer el nuestro desde el principio. Así que haz clic en tu controlador de vista aquí y sube a la parte superior de la pantalla y ve a entrar en cama en el controlador de navegación. Y ahí está. Está bien. No tan grande de un trato. Puntos de partida aquí que hicieron todo el trabajo por nosotros. Y entonces qué? Vamos a hacer es arrastrar unos controladores de vista aquí. Entonces vamos a arrastrar uno justo aquí y arrastrar uno justo aquí y luego vamos a
unirlos . Entonces en este, haz clic en él y luego cambiemos el fondo para leer, solo para mostrar que es una vista diferente. Y adelante y tira un botón aquí, ¿de acuerdo? Y luego controlar el arrastre desde esta pantalla. Hice esta pantalla. Estoy tratando de mostrarte lo rápido que es esto, lo rápido que podemos ir de una natación a la otra y luego hacer clic en este aquí y
cambiarlo a amarillo, luego ir y tirar otro botón. A continuación, el control, arrastre hacia este tercer controlador de vista y haga clic en mostrar, y luego haga clic en el controlador de vista y la vista y cámbielo a azul. Entonces tenemos rojo, azul
amarillo Ahora, ten en cuenta, controlador de
navegación no muestra su propia vista. Muestra una raíz de tu control. Este es el control de vista de ruta U de la primera que controlas. Entonces eso es lo que en realidad se va a mostrar. Simplemente se va a retener dentro de un contenedor. Entonces si guardo esto y hago comando son para ejecutarlo, ¿de acuerdo? Simplemente debería funcionar justo fuera de la caja para nosotros. Y ahí está. Entonces tenemos rojo Si hago clic en el botón, ahora
tenemos amarillo Si vuelvo a hacer clic, ahora
tenemos azul Oh, Dios
mío, no
puedo ver. No le puse ningún botón al alcohol como no puedo ver. Es Oh, estás como, OK, ya
hemos hecho esto antes, pero hay una diferencia. Mira el lado izquierdo duro. Hay una espalda, pero hace esto por ti automáticamente. Ahora, cuando presionas el botón Atrás te lleva de vuelta y vuelta de nuevo. ¿ Qué tan guay es eso? Entonces sin tener que escribir ningún código extra, gracias al SDK de Iowa, maneja el popping y empuje de ustedes controladores. Así funciona. Entonces cuando se agrega un nuevo año de controlador de vista, uh, empujándolo a una pila, está bien. Y piénsalo como pez. Ya sabes que conoces los dulces, como con la fría cabeza de Star Wars o mi pequeño pony si eres baroni o te meten ese tipo de cosas. Y básicamente pones al campesino Sí, lo empujas en la parte superior y luego lo sacas. Entonces la idea es la última en es 1er 1 fuera que se llama pila, ¿
verdad? Al igual que una pila de libros, Jenga, lo que quieras hacer. Entonces eso es lo que está pasando. Estamos presionando un controlador de vista y presionamos hacia atrás. Se lo está haciendo estallar Super cool. Hace toda la memoria. Administración lo mantiene ahí, así que es agradable y rápido, que no tengas que hacer nada de eso. Entonces así funciona de inmediato del bate, muy fácil. Por supuesto, tenemos un par de problemas, pero uno es que estos controladores de vista no están atados a ningún código ahí mismo, solo mostrando pantallas. No tenemos ningún código para gestionarlos. Y entonces lo que quiero hacer es solo mostrarte cómo papa view controller programáticamente. Eso es lo último que quiero mostrar para que podamos hacerlo aquí mismo en la pantalla amarilla. Hagamos un nuevo pero aquí, y cogí algo diferente esta vez. Solo llamemos a este pop porque va a apagarlo cuando le hagamos clic, de
acuerdo,
y sigamos acuerdo, adelante,
haga clic en la carpeta del controlador naff aquí y haga una nueva clase de archivo y fuente y cacao touch. Y queremos heredar de ti. Yo veo controlador. Y solo llamemos a este VC amarillo para controlador de vista amarillo que no necesitamos ¿
Es porque está en el guión gráfico y crear? De acuerdo, entonces tenemos un controlador de vista. Todavía no está conectada. Si recuerdas, tenemos que hacer clic en nuestro controlador de vista por aquí y hacer clic en el pequeño rectángulo por aquí. El inspector de identidad. Y tenemos que cambiarlo también. Todavía tengo esta seleccionada. Ahí vamos. Controlador de vista. Ahí vamos. Doy clic en el controlador l A. Ver, Inspector de
identidad, Y vamos a seguir adelante y cambiarlo a amarillo V c. Así que ahora está oficialmente conectado. ¿ Verdad? De acuerdo, Entonces lo que vamos a hacer es abrir el asistente de editor. Ahora va a tirar de abrir nuestro código amarillo V C aquí mismo, y se puede decir que hace más espacio aquí. Está cerca del lado izquierdo, y todo lo que necesitamos es un I B. Acción sobre los derechos pop van a controlar drag por aquí, crear un I B. Acciones. Podría ser cualquier cosa, ya
sabes, hiciste algo de acción. Sí. Cargaron una imagen. Lo que sea. Puede ser lo que sea. ¿ Lo que quieras hacer para volver? Um, ya
sabes, tal vez una descarga derribada. ¿ Quieres ver al usuario de vuelta a la otra pantalla? Porque es una pantalla de descarga. Lo que sea. Yo sólo cambia a la acción. Y solo llamemos a este pop V C. Vale, cerremos al asistente de editor. Adelante y abramos aquí el lado izquierdo y haga clic en amarillo Veazey. Entonces cada vez que esos botones presionan, lo que queremos dio es realmente fácil. Dices pop da Ah, cada uno de ellos que el controlador de navegación punto pop te pop view controller. Por lo que hay algunas opciones diferentes que estallaron. Aprueba, aportas arrastrero que va todo el camino hasta el fondo en. Podrías pasar a un controlador de vista específico. Si tienes 50 controladores de vista, puedes encontrar el específico que quieras y darle pop a ese. O simplemente podrías volver atrás uno, que es el que queremos. Entonces, controlador de vista
pop. Por lo que de nuevo, estás llamando controlador de navegación de auto duda. Ahora aquí hay algo interesante. Se trata de una optativa. Entonces si llamas a esta función y no existe, tu programa no se va a estrellar, y eso está bien. Pero sólo sepas eso porque es opcional. Significa que puede o no funcionar. Ahora sabemos que va a funcionar porque en realidad sí tenemos un controlador de navegación. Entonces si creamos uno en el guión gráfico y si esta vista controla parte de él, que es ahora mismo porque lo hicimos en el story board, lo encontrará. Pero digamos que no usamos un controlador de navegación en el guión gráfico y solo estábamos usando controladores de vista. Esto no funcionaría. Por lo tanto, ten eso en cuenta. Estamos accediendo a la vista, al controlador de navegación si existe, bien. Y así solo puedes hacerlo así. De hecho, ni siquiera
necesitas el auto punto Solo deberías poder llamarlo así. ¿ Quieres animar el Sí, Todo debe ser animado. Y, uh entonces si hacemos clic en
él, debería pop al controlador de vista anterior. Por lo que otra vez agarrado de ti, agarra el controlador de navegación. Si está ahí y luego llama a esta función en él. Entonces sigamos adelante y lo ejecutemos y veamos si funciona nuestro botón. De acuerdo, entonces estamos cargando el amarillo chasqueando pop, y aparece. De acuerdo, hagamos uno más Vamos a crear nuestro tercer controlador de vista. Entonces solo quiero asegurarme de saber de qué color es. Es el azul. Entonces hagamos uno por el azul y pops todo el camino de regreso al principio. Uno. De acuerdo, así que sigamos adelante y creemos una nueva vista. Contralor. Nueva fuente de archivo. Clase de Cacao Touch. ¿ Tienes controladores? Bien. Llamemos a esto Balu V C y haga clic. Haz clic en siguiente y crea y entra en tu guión gráfico principal desplázate hacia abajo hasta el azul en aquí. Click view controller abrió el lado derecho y cambiar la clase a azul V C. Suficientemente
fácil. Eso es pasar por un botón aquí encendido. Y este es demasiado azul para mí. Entonces voy a cambiar el color. Estoy pinchando por aquí. Voy a cambiar el color de la misma a blanco. De acuerdo, llamemos a éste. Um, Pop dos. ¿ O es rojo? Entonces Ok, mira esto aquí. Entonces amarillos el siguiente hacia abajo. Pero el rojo es la raíz de ti. Control, correcto. El muy, muy base. De acuerdo, así que nos hicieron estallar para leer. Adelante y abramos el asistente de editor y vamos a asegurarnos de que estamos en el
correcto . Entonces este es el controlador Blue View, justo donde queremos ser controlados. Arrastra para crear una acción I B cambia a la acción y digamos pop to root. Apague el asistente de editor. Acude a nuestro controlador Vyugin Blue View aquí mismo y luego lo que haremos es, diremos, controlador de
navegación dot pop to root view controller. Entonces éste debería llevarnos todo el camino de regreso al principio, mientras que el otro nos acaba de devolver uno. Éste debería volver al principio. A ver si funciona. Entonces el punto que quiero hacer aquí es que puedes acceder al controlador de navegación desde dentro de tu código si existe. Por lo que cargamos el curso amarillo clicando Pop vuelve a leer cargas amarillas. Carguemos el pop azul para leer nos lleva todo el camino de regreso al principio, así que eso es los controladores de navegación pensar en esto. Hay tantas aplicaciones, tienes una lista de datos. Digamos que tienes una lista de recetas, y al hacer click en ella, quieres ver los detalles del resto de la imagen que va bien, control de
navegación. Sería una gran opción para ese tipo de aplicación. Se muestra una vista y luego la vista de detalle. Y tal vez eso tiene hasta 1/3 de vista como muestra cómo hacer la receta y luego tiene un enlace para la tienda a la que quieres ir a comprarlos. Por lo que empuja en un nuevo controlador de vista como una vista Web o algo así, y luego puedes mirar ahí y hay múltiples vistas. Por lo que muy potente usado es en tus aplicaciones. vas Ahora que has visto el aquí, si vuelves atrás y miras en la app store, algunos del ábside que tienes,
te vas a dar cuenta de la mayoría de ellos. Usa este tipo de configuración aquí. Se pueden utilizar controladores de navegación con tab nuestro. Puedes usar los controladores de navegación más adelante en tu app. No tiene que ser el punto de entrada. Puedes utilizarlos siempre que quieras. Puedes cargarlos programáticamente también para que no tengas que hacerlo desde un guión gráfico. Puedes crearlo a partir de tu código y cargarlo según sea necesario. Muy poderoso. Muchas formas de usarlo. Te mostré la forma más sencilla, y puedes construir la mayoría de tus aps usándolo justo de la forma que te mostré aquí. Tan muy poderoso. Empieza a utilizarlo en tus AP. Este es Mark Price con pendientes sordas dot com y estamos a un paso de estar otro
paso de ser un desarrollador profesional,
en realidad, en realidad, es un montón de pasos, pero, uh, lo que te recomiendo que hagas es usar estas habilidades construyendo suceda lo antes posible. muy cool. Nos vemos más tarde.
63. Aplicación: el mundo para caminar (UIScrollView): Oye, ¿qué pasa? Todo el mundo marcado. Sube aquí sordos resbalones punto com. Y hoy vamos a hablar de scroll. Adelante y abramos un nuevo proyecto Exco. Tu código ex Ir al archivo nuevo proyecto. De acuerdo, lo
tiraré aquí mismo y ah, soltero. La aplicación está bien. Y vamos a llamar a esto el pergamino ambulante de ti. Ya verás por qué ya sabes por qué. De acuerdo, Así que las terneras de desplazamiento realmente geniales. Um, te permiten tener contenido ah en ellos y para que sea escalable a través de la pantalla. Ahora, con eso dicho, a
medida que me desarrollo cada vez más ausente a medida que me meto en el código mawr de otras personas, ardilla ve el aire tipo de convertirse en cosa del pasado. No se están utilizando con tanta frecuencia como lo eran antes de la disposición automática y especialmente apilados para su uso. Ahora realmente ayudan con un montón de cosas por las que podrías tener que desplazarte estas en el pasado. Ahora, una vista garabata Vale, uh, es realmente bueno cuando tienes solo unos cuantos artículos que tal vez quieras desplazar. De acuerdo, Uh, porque tenemos vistas de tabla, tenemos vistas de colección que están optimizadas para mostrar un montón de artículos y para ser scroll herbal . Um, y reutiliza células y cosas así. Y así la vista de desplazamiento no se desplaza. No reutiliza nada. Por lo que todo lo que le arrojas se carga en la memoria. Entonces cuantas más cosas pongas en una vista de pergamino el ah más, um, la memoria se va a usar. Pero lo que es interesante es una vista de ardilla estadounidense, en realidad, Es la clase padre de una tabla vistas la tabla utiliza una vista de desplazamiento, pero de nuevo, la vista de tabla en las vistas de colección están altamente optimizadas. Por lo que el caso de uso para una vista de ardilla es muy, muy bajo. Uh, no
vas a querer usarlo tanto, pero te voy a mostrar una forma de usarlo, lo cual es divertido. Así que adelante y entra en una U te desplazo aquí mismo. Está bien. Y vamos a arrastrarlo de esquina a esquina en nuestra vista principal. Y lo que haremos es un banderín a los lados. Despegue los márgenes, fíjelo a los sitios, está bien. Y lo que vamos a hacer es que vamos a tener un montón de personajes que vamos a
desplazarse por la pantalla como fingidos como una aplicación de tienda de juguetes como Like tal vez estás construyendo una aplicación para una tienda de juguetes, y quieren mostrar algunos de sus juguetes. Y así vamos a Nuestros juguetes van a estar muertos vivientes, lo cual es realmente genial. Eso tenemos nuestro pergamino de ustedes aquí. Entonces sigamos adelante y arrojemos imágenes en el proyecto aquí, así puede encontrar las mías ahí. Aquí mismo. Acabo de agarrar estos de internet, Estos aire, esos juguetes pop de vinilo. Y pensé que se ven un poco geniales. No lo hagas. No estamos haciendo nada gordo. Los niños están viendo este show. En
realidad, probablemente sean los niños los que quieran la sangre. Somos nosotros la gente normal que somos como, uh pero de todos modos, no hay sangre en este. Perdón. Puedes agregar sangre a tu tiempo libre en mi logo y agregar mi estante. Está bien. Muy cool. Ahí están nuestros gráficos y volver al tablero de cuentos principal. Y lo que vamos a dio es sólo ah, hacer que nuestra pequeña área se vea bonita aquí. Entonces sigamos adelante y arrojemos una imagen. Tienes que poner la tabla de madera en la parte inferior, y sólo vamos a arrastrar esto por aquí. Voy a poner la imagen a, uh estante. Es un poco demasiado grande. Vámonos y digamos Aspect fit. Ahí vamos. Escallop un poco hacia abajo. Aquí. Efecto. Ahí vamos. Muévete hacia arriba. Tan solo unos píxeles. Ahí es justo donde lo quiero. Vamos adelante y sólo Ah, banderín de izquierda a derecha en el fondo y darle un sitio fijo. Está bien, ahí está nuestro estante. Pongámonos el logo. Está bien. Sólo por diversión es solo por diversión. Esto no tiene nada nuevo con esta vista de chica. Pero por qué construir algo si no va a ser bonito, cambiemos esto a ajuste de aspecto. ¿ De acuerdo? Y esta es la imagen equivocada. Yo Agarra otra que no tenga esta fea línea sobre ella. De acuerdo, vamos a la, uh vamos a los activos aquí y sólo borremos nuestro logo. Tiene una línea fea en ella. ¿ En qué estaba pensando? Yo sólo arrastrando el nuevo aquí mucho mejor. Podría quedar storyboard. Y su hace tiene el mismo nombre. Por lo que acaba de actualizarse automáticamente para nosotros, lo cual es genial conmigo. Está bien, así que eso se ve bien. Mm. Es un poco más grande. Adelante. Ahí vamos. Centroarlo. Está bien. Voy a darle un fijo dentro de lo alto en el menú pin ahí abajo. Y vamos a girar 15 desde la parte superior y al cuadrado y alinear su central en el contenedor horizontalmente. Está bien, así que ahí vamos. Tenemos un logo. Tenemos esto aquí. Tenemos un pergamino de, ya
sabes, ten en cuenta, realidad, que creo que hice esto mal aquí. No queremos que el estante en el logotipo dentro de la vista de desplazamiento en sí realmente lo queremos encima . Entonces vamos a tener que volver a arreglar nuestras preocupaciones. En realidad, pergamino de ti necesita y digo por encima de él y él aparece. Pero así el video de pergamino aquí en el lado izquierdo, realidad, Dragón debajo de él hace allá. Ahora estamos avanzando. ¿ Qué hace este tipo realmente mostrándome cómo hacer APs? Bueno,
así es como haces gorras. Te metes la pata, y luego lo haces de la manera correcta. Entonces, uh, los acentuados con siguen siendo buenos, pero vamos a seguir adelante y fijarlo desde el top 19. Está bien. No me importa. Y está bien. Y la línea lo horizontalmente y contenedor y luego el estante el con o la altura
sigue siendo buena. Sólo queremos arrastrarlo hasta el fondo aquí. Un poco más alto ahí mismo. Adelante y banderemos a la izquierda. A la derecha, En
el fondo. Está bien. No es gran cosa. Acabamos de sacarlo del pergamino. Tú mismo y, uh oh, hombre. Vuelves a ponerlo dentro de la vista de desplazamiento. Arreglemos esto otra vez. Santas fumas. Vista de desplazamiento derecho. Obedecer. De acuerdo, entonces el problema es que
cuando arrastras cosas, le
gusta plopping a un inescrutable porque es un contenedor tuyo. Entonces vamos a tener que hacer esto de la manera difícil. Entonces quiero que lo que quiero que hagas es hacer clic en el logo, así que ten en cuenta que no está en el desplazamiento. Haga clic en el logotipo. Está bien. Por cierto, me alegra que te hayas visto hacer con esto todo el tiempo, y estás como, ¿qué pasó? Eso fue lo que pasó. Entonces pongámoslo 10 de arriba por aquí. Estoy debajo de la regla y 10 de arriba. Y digamos que 15 desde arriba, solo lo haremos manualmente. Por lo que no lo arrastro accidentalmente y lo dejo caer en esta visión del mundo. ¿ De acuerdo? Así que adelante y pin ese 10 desde la parte superior y lo alinearemos aquí horizontalmente. Y luego esta estantería. Vamos a seguir adelante y moverlo hacia abajo algunos mortales para probar 400. Probemos 500. Está bien, acercándose. Vamos a tan solo dar click. La flecha aún va donde la queremos. ¿ De acuerdo? Otra vez. Cuando haces clic y arrastras y tienes un contenedor en segundo plano, le
gusta pensar por ti y dejarlo caer ahí. Y eso no es lo que queremos. Queremos esto frente al pergamino de ustedes. De acuerdo, entonces ahí vamos. A mí me gusta. Y lo que vamos a hacer es simplemente seguir adelante y lo mismo que hicimos antes, Uh, excepto que vamos a apagar el margen limitado cero desde la izquierda, cero desde la derecha, y diremos 14 desde abajo. Y la altura ya está fijada. Está bien, estamos bien para irnos. Vale, Así que ahí está nuestra vista de desplazamiento, y ah, queremos hacer también es lanzar una imagen en la vista de desplazamiento de nuestro personaje solo por motivos de
diseño, solo para ver dónde queremos que esté. Así que adelante y agarra tu imagen, tú y observa cómo plopped en el pergamino de ti esta vez. Eso es lo que queremos. Y sigamos adelante y tomemos esta imagen y ah, ponla a uno de los chicos de aquí dirá, Darryl. Y por supuesto, sería ajuste de aspecto que vamos a hacer es vamos a redimensionarlo hasta que sea del tamaño que
queremos . Y estoy pensando que ese es un buen tamaño. No más grande. Ese es un buen tamaño. De acuerdo, entonces lo que voy a hacer es que lo voy a mover hacia abajo, y esos pies están justo por ahí. ¿ De acuerdo? Justo por ahí. Eso está bien. Está bien. Y te das cuenta de que está detrás de ella. Entonces lo que realmente haremos es ah, esta vista de desplazamiento, lo
moveremos delante de estos otros elementos. Está bien. Um justo ahí. Ahí vamos. Por lo que te das cuenta de cómo ahora está frente a ella. Acabo de cambiar el orden ahí, así que está justo donde queremos que esté. Entonces todo lo que queremos hacer es recordar, uh, queremos recordar que donde su posicionamiento es de 1 80 o 96 tiene una dentro de la altura a 40 por 3 97 Vale, um y así está bien. Por ahora, volveremos y miraremos eso en un segundo. Aquí Vámonos a abrigar. Entonces la idea es, aquí está la idea. Tienes un montón de imágenes que vamos a vomitar en la vista de desplazamiento en código en Adam programáticamente, y luego puedes desplazarte por esa lista de elementos. ¿ De acuerdo? Entonces ve a tu punto de vista, controlador. Y Ah, por cierto,
um, um, para que hagamos esto más amigable para nosotros, sigamos adelante y renombramos a estas imágenes dos números para que podamos simplemente ponerlo en un bucle for. Por lo que 12 tres, cuatro y rick sea el número cinco. Tenemos a nuestros personajes aquí. Ahora ve a tu vista, controlador. Y, uh, me desharé de este código calderero aquí y en la vista sí cargó. De acuerdo, vamos a hacer esto un poco más grande para ti aquí en la bota vista carga. Lo que vamos a hacer es ir en bicicleta a través de las imágenes, crear una imagen y tirarla a la pantalla. Y, um y eso es lo que vamos a dar. Entonces una cosa que quiero capturar es el ancho y la altura de la de la imagen. Ya que estamos haciendo esto programáticamente, no
vamos a llegar a poner los pines y las restricciones que podríamos hacer esa problemática que no
van a ir. Entonces vamos a establecer el ancho y la altura, como así con BCG float y let height. Estas son constantes van a ver g float. Entonces flotas. Volvamos atrás y agarramos esos ahora Así que ellos con y el nombre cambió en él. Entonces va, ya
sabes, um así que el con es a 40 en el más alto 3 97 Así 2 43 97 Y es una frontera porque queremos que nuestros chicos aquí estén en lo real quisiera que esté justo aquí. Por lo que al 43 97. Por lo que esto equivale a 40 en este es igual a 3 97 Así que ese es el ancho. Y esa es la altura de nuestro chico o personajes. Y así vamos a seguir adelante y tirarlos por ahí. Entonces para var, X es igual a uno. Y mientras X es menor o igual a cinco, cierto, porque hay cinco caracteres X más. Además, esto es solo un bucle for. Entonces vamos a crear una imagen. Entonces deja que la imagen te iguale. Me imagino y le doy un nombre, que está aquí abajo bajo nombre y, uh, ¿cómo quieres llamarlo? Bueno, ya que lo nombramos ah, número, es bastante fácil sólo poner X ahí. Es del uno al cinco. Entonces eso va a funcionar. Y, uh, entonces necesitamos crear la imagen de ti. Por supuesto, porque las imágenes no pasan por sí mismas, son que están almacenadas dentro de una vista de imagen. Entonces y eso te iguala. Yo vista de imagen, y vamos a inicializar. Era una imagen que es la que acabamos de crear. Aquí vamos. Y ahora lo que dio es programáticamente es que agregamos como un sub tú. Entonces por supuesto que aún no lo hemos hecho referencia, así que hagámoslo. Ahora. Vamos a crear una salida de hiedra para nuestra vista de desplazamiento en I b outlet semana var. Y llamamos a la vista de ardilla de tipo tú me desplaza de ti. Entonces estamos agregando el pergamino de ustedes y lo que queremos hacer es simplemente recorrer las imágenes y agregarlas una tras otra tras otra. Pero queremos agregarlas horizontalmente. Eso vamos a necesitar sumar para cambiar como su posicionamiento. Entonces scroll view dot add sub you y vamos a decir imagente Ahora quiero que pienses este s o este código tal como es ahora mismo. De acuerdo, si solo lo dejamos tal como está ahora mismo, um los va a agregar todos en el mismo lugar y para mostrarte sigamos adelante y conectemos nuestro controlador de vista aquí. Vamos a ah, control arrastre a la historia al guión gráfico al matorral que y haga clic en él. Está bien, lo voy a esconder. No te importa él. Es sólo un tenedor de lugar. Y así vamos a ejecutar esto aquí en nuestro simulador y ver qué pasa para ver si nuestras imágenes incluso se
cargan en absoluto en la vista de desplazamiento. De acuerdo, Como pueden ver, los
cargó todos aquí mismo, Um, en medio de la pantalla, todos en el mismo lugar. Eso no es lo que queremos, obviamente. Entonces arreglemos eso. Por lo que lo hemos agregado al sub tú. Pero ahora necesitamos cambiar el dimensionamiento y posicionamiento de la misma, ¿
verdad? Es lo que vamos a dio va a decir imagen. Entonces después de que lo
hayamos agregado, vamos a decir image view dot frame es igual a C direct make. Vamos a fijar el marco. Recuerda que el marco está ajustado al interior de lo alto en el posicionamiento, y la esquina superior izquierda es 00 OK, por lo que X va a ser negativa con. Nosotros sólo queremos restar algunos para ponerlo, ponerlo en el lado izquierdo. Además, diremos con y este es nuestro tiempo constante. ¿ Flotó? Vamos a pasar en X aquí. El actual, la instancia actual que estaban bien. Y, uh, entonces el blanco la coordenada blanca va a estar, Bueno, echémosle un vistazo donde realmente la queremos. Por lo que lo tengo seleccionado aquí mismo. Entonces voy a la regla, Um, ¿por qué está 1 96 bien, 1 96 Así que vamos ah, hagamos el por qué 96 Esa es la posición del por qué que queremos y el con va a ser el con. Obviamente, en la altura va a estar la altura del tipo ahí. Entonces todo lo que hemos hecho aquí es decir, Hey, ¿
dónde queremos un puesto? Esto bien, recuerda, lo
estamos agregando a su Queremos que cada elemento se agregue a los lados derecho de las
vistas de desplazamiento . Puedes agregarlas. Puedes agregar elementos vertical u horizontalmente, y ahora van a salir de la pantalla. El marco de tu pergamino de ti no va a cambiar, sino el contenido real dentro de él. Se va a expandir, y se llama el contenido, como el tamaño del contenido. Entonces hay un tamaño de contenido y hay un marco en un scrubby, los tamaños de contenido, las cosas que le estás poniendo, cuánto tiempo es. Y entonces lo que queremos hacer es agregar cosas horizontalmente en el lado derecho para cada uno de los personajes,
Uh, Uh, y simplemente agregar esos elementos ahí, y eso es lo que estamos haciendo aquí. Entonces solo digo:
Oye, Oye, ¿sabes qué? Empecemos un poco a la izquierda. No empieces justo en medio del lado derecho. Empecemos un poco a la izquierda. Por eso estoy poniendo un negativo dentro de su Y estaban diciendo, Toma el con tiempos, la actual X. Así que si este fuera el primer ítem, sería a 40 veces uno, que lo pondría en ranura número uno. De acuerdo, esto es solo matemática simple. Si le quisiéramos una ranura para bien, sería con tiempos dos, lo que está sucediendo aquí en la matriz con Time Street con temps cuatro. Va a llevar a 40 y multiplicarse sobre cada uno de esos, y eso obviamente va a moverlo a la X por ese número. Entonces solo estamos multiplicando su posición por su con bien. Y lo último que tenemos que hacer es cuando las vistas de desplazamiento hechas, necesitamos establecer realmente cuando terminemos de agregar elementos del pergamino. Pero, quiero decir, necesitamos realmente establecer el tamaño del contenido. Aquí es donde te estaba diciendo, tienes que Hay un dimensionamiento de contenido que va fuera de sus límites, así que tenemos que establecer el tamaño para que sepa hasta dónde desplazarse y no es BCG size make. Vamos a hacer una talla, y el con va a ser el con el personaje, justo por cinco. Porque hay cinco personajes, así de grande lo queremos, y la altura podría permanecer igual. Entonces es una vista de ardilla que enmarcan ese tamaño. Todo lo que estamos haciendo es agarrar su altura actual y ponerla de nuevo ahí para mantenerla a la misma altura. Uh, veamos si funciona puede que tengamos que hacer algunos ajustes, así que sigamos adelante y ejecutemos esto aquí. Aquí vamos. Y si te das cuenta que se está desplazando, pero es un poco más alto que yo entonces quiero que sea o todos los personajes lo son, pero te das cuenta de cómo va creciendo. Ahora eso es realmente genial. Se ve. Se ve bastante bonito. En realidad. Deberías ir a acercarte a esta compañía pop y decir:
Oye, Oye, queremos construir Jonah. Um bien, entonces el por qué no es No está abajo casi lo suficientemente lejos, este 96 Así que vamos a tratar de 50. Probemos eso. Solo estamos jugando con números aquí, a veces con vistas de desplazamiento. Tienes que jugar con números. A veces no funciona justo fuera de la caja es tratar de 70. Está bien, ahí vamos. Bastante cool. Entonces de nuevo, las vistas de
desplazamiento son realmente buenas por solo mostrar unos ítems como este donde es como, ¿De verdad quiero una tabla de ti delegado con una celda ruta de índice Fero y todas las cosas que
solo estoy mostrando algunas cosas. Esa es una gran opción para vistas de ardilla. Una cosa también te vas a dar no va a ser súper bonita porque tenemos que jugar con los números, pero también puedes ir a tu storyboard principal aquí y puedes recortar tu pergamino de ti. Y,
uh, uh, el inspector de las semanas pasadas volvió habilitada la paginación en la paginación. Y de nuevo, no
va a funcionar perfectamente porque sus números están apagados aquí mismo. Pero sí quiero mostrarles que esta es una característica de vistas de ardilla donde se desliza y se encaja en su lugar. Entonces cuando decida cargar aquí, si me desliza, ver cómo se está encajando en su lugar. Ya veo. Entonces, cuando podrías hacer es cambiar el posicionamiento de estos personajes para que estén perfectamente posicionados cada vez que deslizas, trae uno nuevo en la pantalla, justo en el medio otra vez. Es solo jugar con números, como posicionar el dimensionamiento donde quieres ponerle los límites. Cosas así, podrías agregar un espaciador porque solo estoy agregando imagen para que las imágenes se estén tocando entre sí. No agregué ningún espacio, pero podrías agregar un espaciador que sea del tamaño de toda la pantalla, y luego estás paginando. Será de ese tamaño de la pantalla y los broches en el lugar, lo cual es fresco. Um, lo
apagaré, sin embargo. Entonces, um entonces eso es lo que hemos hecho aquí en el controlador de vista es que acabamos de agarrar nuestra
vista de ardilla . Pasamos por un bucle de cuatro elementos agregados en imágenes como sub uso en el pergamino de ti. Y entonces simplemente le dimos una posición en el pergamino de ustedes uno justo después del después del otro. Después de que pudiera poner estos en cualquier lugar, podría haberlo puesto vertical u horizontalmente. Acabo de posicionar estos horizontalmente. Y luego simplemente establecemos el tamaño de contenido de la vista
de desplazamiento, que , por supuesto, es el con del personaje por cinco, porque así es como lo queremos. Por lo que hay un gran uso para las vistas de desplazamiento. Sólo tienes que unirte a unos artículos, y ahí lo tienes realmente genial. Hay otro uso realmente importante para las películas de desplazamiento, y probablemente el uso más popular. Y ese uso es cuando necesitas construir algún tipo de pantalla y ahora todo si está en la pantalla, así que necesitas desplazarte. Es un problema muy común, en realidad, desplazar estos que no solían ser el uso principal para las vistas de desplazamiento, pero ahora se ha convertido en una especie de uso principal para las vistas de desplazamiento porque quieres mostrar todo tu contenido en el pantalla. Y así a veces, aunque tengas vistas apiladas y diseño automático, a veces las cosas simplemente no caben en la pantalla. Pero querías a Teoh. Entonces sigamos adelante y,
uh, uh, vamos a hacer archivo nuevo proyecto, ¿de acuerdo? Y hagamos una aplicación de una sola vista, y esto no fue tan malo. Vamos a llamar que esto me quede en pantalla, acuerdo? Siguiente. De acuerdo, así que quiero que prestes atención con cuidado. ¿ A qué? Nosotros somos lo que estamos haciendo aquí. Porque hay cierta manera de hacerlo. Y si no lo haces, no va a funcionar. Um, así que presta atención cuidadosa. Así que haz clic en tu guión gráfico principal aquí. De acuerdo, así que digamos que tienes un formulario que necesitas llenar, ¿de acuerdo? Y no encaja en la pantalla. No vamos a hacer nada bonito aquí. Esto es esto puramente esto es puramente Ah. Um solo, uh, controles. De acuerdo, así que digamos que tengo a este tipo aquí, y, ya
sabes, tal vez haya ah, te
veo te tengo, ¿de acuerdo? Y lo arrastro por aquí y digamos que ponemos que lo hagamos realmente largo aquí mismo. Um y, ah, ya
sabes, que sea rojo. Bonito, rojo. Y digamos que hacemos clic en el controlador arcview aquí y en realidad vamos a la regla. Y cambiamos el tamaño a forma libre a menos que hagamos la altura, como, 1200 como fuera de la pantalla aquí. Está bien. A menos que hagamos otra vista aquí. De acuerdo, hagámosle este azul. De acuerdo, hagamos este azul y hagamos una vista más, ¿de acuerdo? Y hará de éste como un bonito amarillo. Está bien. Y entonces lo que haremos es fijarlo éste a la parte superior y a la izquierda, a los lados, y éste hará lo mismo. Dirá:
Ah, Ah, arriba a la izquierda, Insides. Y fijaremos la altura en este. Esta va a la misma cosa. Arriba a la izquierda, Uh, a la derecha. Y luego la altura. Y este de aquí, sólo
vamos a seguir adelante y a picar por el camino alrededor. De acuerdo, Ahora, sigamos adelante y ejecutemos esto. Veamos qué pasa. De acuerdo, entonces el nombre de esta app me queda en pantalla. Pero mira, ¿
puedes incluso ver el amarillo? No puedo ver la l De hecho, la
mitad del azul está cortada y no se puede hacer nada al respecto. Este es un problema muy común. Nadie más te va a enseñar esto. Este es un problema muy común Vas a estar sacando aquí. ¿ Por qué no puedo decir todo en la pantalla que tu jefe va a querer y no puedes
averiguarlo ? Bueno, tienes que usar el pergamino de ti. Y entonces lo que queremos hacer. De acuerdo, lo que queremos hacer es que esto funcione, uh, como debería. En efecto, creo que nuestro pequeñito aquí está teniendo un problema no está apareciendo en la pantalla. Arreglemos ese primero, um, el espacio
superior. Espacio inferior. Eso está bien. Pero tal vez acabamos de establecer la altura en un Tal vez. A lo mejor se está encogiendo. Fue reconstruir esto aquí y sólo asegúrate de que está apareciendo en la pantalla Son poco
campo de texto ahí arriba. Ahí está. De acuerdo, así que sí, claramente está cortado. Entonces, ¿qué hacemos? ¿ Cómo solucionamos esto? Bueno, eso es lo que pergamino ve divorcio. Entonces sigamos adelante. Y Ah, sólo
voy a borrar todas estas ahora. OK, entonces es borrar, borrar, borrar y elite. Entonces por cierto. Uh, tal vez no me has visto hacer esto antes, pero hice clic en mi controlador de vista aquí, y fui a la regla y en realidad cambié el tamaño de la misma. Podrías hacer eso. Eso está perfectamente bien. Sólo tienes que saber que las cosas se van a cortar. No caben en la pantalla. Y así la única vez que realmente vas a cambiar el ancho y la altura de estos, su mayor parte, es cuando necesitas que las cosas se salgan de la pantalla y la vista de escrow de unidades. Entonces sigamos adelante y hagamos eso. Um, así que tenemos aquí nuestro controlador de vista. Ahora, lo que queremos hacer es en una vista de desplazamiento sobre él. Ordenar Kevin escuela de ti, ¿de acuerdo? Y tu vista de desplazamiento tiene que ser. Y es Teoh. Bueno, podría ser en cualquier lugar. Sólo necesita ser anclado. De acuerdo, Entonces lo que quieres hacer es asegurarte de que los cuatro rincones de tu pergamino estén completamente anclados. Si no lo haces, no va a funcionar. De acuerdo, otra vez, tu vista de desplazamiento. No importa si está en los bordes de esta pantalla, ¿de acuerdo? Es justo donde quiera que
esté, solo necesita ser completamente 100% pin en cada lado, cada lado. De acuerdo, esa es una regla. Esa es la regla número uno. Por lo que estoy haciendo clic en el menú pin. Voy a despegar constreñir el margen. Apenas 2000 y cero. De acuerdo, entonces ahora una vista garabata, obtiene su tamaño a partir de su subcontenido en. Y hay una cierta manera de que necesitamos hacer esto aquí en este story board. De manera muy especial. Entonces la primera regla es lo que sea donde esté tu vista de desplazamiento, necesitas fijar los cuatro lados. No tiene que estar en los bordes de su super vista, pero eso es lo que hice. Pero los cuatro dimensionamiento para ser anclados. La segunda regla es que pones un tú una vista, una vista de contenido dentro de ella, y necesita ir por todos los límites. De acuerdo, así que aquí está mi punto de vista. Desplazándolo hacia abajo como se puede ver todo el camino hasta los bordes. De acuerdo, así que necesita atravesar todo el rebote. ¿ Tienes eso? De acuerdo, esa es la regla número dos. Por lo que tu pergamino, debes tener una vista de contenido. A u veo que cubre las cuatro esquinas 100% del tamaño y lo que quieres hacer ahora por tus restricciones. De acuerdo, esto es realmente importante. Se quiere fijar la altura, pero no el con. De acuerdo, clavija la altura. Queremos decir que se trata de una altura fija. ¿ Recuerdas? Tiene que ser así de alto porque es una vista de desplazamiento. Conocemos lo alto. No importa en qué dispositivo va a estar. Sabemos cuál es la altura porque está encendida. Contamos con X cantidad artículos que debemos caber en la pantalla. Por lo que estableces tu altura, que en este caso es de 1200. Por lo que ahora se establece lo alto. Pero tú eres como, Bueno, ¿qué pasa con Aquí está la pieza crítica es su regla número tres. Haga clic en su vista de contenido y luego haga clic en su vista principal. Se omitió el visor de desplazamiento, pero haga clic en la vista principal, la que se va a cargar cuando se cargue la aplicación. De acuerdo, haz clic en eso. Por lo que mantuve abajo comando y estoy haciendo clic en él y haga clic en su menú pin y diga igual con. Está bien. Es como la vista principal de la app y luego tu contenido te iguala con lo que va a dio es que va a coincidir con el de tu pergamino para ser del tamaño de tu vista principal. Es muy importante. De lo contrario no va a recitar. Entonces Regla número uno era tu vista de ardilla necesita tener los cuatro sitios pin a algo. regla número dos es tu lectura de tu vista de contenido dentro de ella. Está bien. Necesita coincidir con el tamaño completo de la vista de desplazamiento. ¿ De acuerdo? Y luego se fija la altura a lo que sea que la altura tenga que ser, y luego la con usted anclado a la vista principal como igual con. Entonces Ok, entonces eso es así Estamos bien. Estamos bien ahí mismo. De acuerdo, Ahora lo que queremos dio es una especie de esa misma cosa. Entonces tomamos nuestro campo de texto, ¿verdad? Pongámoslo aquí mismo. Entonces hazlo un poco más grande. Sólo digamos eso,
OK, OK, así que tenemos nuestro campo de texto aquí, y luego vamos Ah, vamos a fijarlo desde arriba y vamos a seguir adelante y darle una altura. Y sigamos adelante y alinémoslo horizontalmente y contenedor y pongamos un te tienes aquí. A ti lo veo. Ahí vamos. Está bien. Y, ah, hagamos este poquito más grande aquí. Es hora. Nosotros perfectamente igual que el otro que acabamos de hacer sin. De acuerdo, vamos a hacer este amarillo esta vez y diremos,
um, um, 54 de arriba,
¿de acuerdo? Y le dará una altura. Y ah, y el con Eso está bien. Y sigamos adelante y alinémoslo horizontalmente en el contenedor y, ah, sigamos adelante y creemos otra vista. Haz éste como un azul, está
bien. Estoy seguro de que para este punto estamos a punto de salir de la pantalla, lo cual está bien. Entonces aquí está nuestra vista azul y vamos a cambiarla aquí a azul y vamos a fijarla desde arriba. Dale un dentro de una altura. Sigamos adelante y alinémoslo horizontalmente. Y los analistas de contenedores hacen una visión más que baja hasta el fondo, lo cual está bien. Y esto, por
supuesto, no serían vistas descoloridas. Sólo lo estoy intentando. Este es un ejemplo. Tendrías formularios, controles, cualquiera que sea tu aplicación como uso de imagen, no importa. Y sigamos adelante y volvamos al rojo ahora. Sí, estamos en rojo. Vamos a seguir adelante y fijar este desde arriba. Dale un dentro de la altura y, uh, vamos adelante y también, um, realmente
vamos a despegar la altura. Vamos a fijarlo al fondo. En realidad, ahí vamos. Y vamos a enviarlo horizontalmente en el contenedor. De acuerdo, así que tenemos nuestras opiniones y están en un pergamino de ti. A ver si funciona justo fuera del murciélago
, puede o no. Ya veremos. Apenas probando. Entonces aquí vamos y notamos cómo no está funcionando porque hay una cosa más que necesitamos dar Lo último que necesitamos dio, que me olvidé, está en esta vista aquí. Tenemos que fijar todos los bordes. Entonces le dimos un Recordar le dimos una altura e hicimos el con con la vista, pero en realidad también tenemos que fijarlo a los bordes de la vista de desplazamiento. De acuerdo, como Bueno, asegurémonos de que estamos ahí. En realidad, sí, no está ahí, así que hagámoslo. Ahora. Vamos Ah, a los bordes del fregado. Te dije que eso era parte de la regla, ¿recuerdas? Dije, tienes que hacerlo todo dentro de los límites del pergamino de ti. Acabo de olvidarme de dependiente. Entonces sigamos adelante y fijemos esos. Por lo que tomé este interior visualización de contenido anexado a las esquinas del pergamino de ustedes. Vamos a correr de nuevo. Ahí vamos. Entonces mira eso ahora. Podrías caber tantas cosas en la pantalla como quieras. Olvidé conformarme con eso. Eso está bien. Entonces vas a caber tantas cosas en la pantalla como quieras. Entonces recuerda las reglas. Por favor, pausa el video. Y recuerda los pasos para las reglas. Bueno, si no hiciste una pausa en el video o si lo hiciste o no, verdadero Número uno es cuando pones una vista de desplazamiento en tu app en tu story board, no importa si está anclado hasta los bordes de la vista. Um, pero no necesita estar anclado en los cuatro lados. Ahora, con eso dicho, es muy común simplemente fijar tu vista de desplazamiento al aire interior toda la porción de tu vista, porque quieres que todo el asunto escalable tenga sentido. Correcto. De acuerdo, así que recuerda, eso es recordar un solo dolor. Los cuatro bordes de tu desplazamiento a través de la regla número dos es necesario una vista de contenido dentro de ella, ¿de acuerdo? Y esa vista de contenido necesita ser necesita ser anclada en los cuatro bordes de la vista de desplazamiento anclada. Está bien. Además de un darle una altura fija como restricción, sea cual sea la altura que quieras. Y luego el con necesita hacer coincidir el con de la vista principal. ¿ De acuerdo? Necesitan tener iguales con. Está bien. Y luego dentro de tu pergamino
de
ti, por supuesto, quieres establecer tu restricción y todo el interior de tu contenido, tú en todos tus artículos. De acuerdo, Así que ahora tienes, cualquiera de ustedes. Tienes a alguno de ustedes, ya va a estar bien. Ah es un Scrabble en ti para todo en la pantalla. Y recuerda cómo muchos APS sabes, nos gustó el modo paisaje, ¿no? Bueno, mira eso. Ahora puedes hacer el modo paisaje en prácticamente cualquier aplicación. Si usas un pergamino, sé de esta manera. Tan cosas realmente geniales. Esta es la forma más común de usarlo. Entonces si te encuentras con un problema o las cosas no encajan en la pantalla, no
sabes qué dio. A lo mejor estás pensando en poner las cosas en una pantalla nueva o lo que sea. Una vista de ardilla podría ser una solución perfecta. Esto es mucho más común. El primer ejemplo usar Ambos son geniales, sin embargo, y para que las vistas de desplazamiento planean empezar a usarlos porque las vas a usar a lo largo tu carrera, y tiene sentido ponerlo en tu ausencia y posible. Entonces eso es todo. Mark pricier deficits dot com Pasando.
64. Introducción a la aplicación: a todo el mundo marcan precio aquí pendientes sordas punto com Y vamos a repasar la app que
vamos a construir hoy, y se llama mi comida. Entonces, básicamente, la idea es que no te gustan tus vecinos. No te gusta tu barrio, Sólo tienes que ir por ahí, tomar fotos, publicar comentarios de lo que no te gusta de ello ahora. Y esta app va a estar todo aquí en la pantalla, en nuestro teléfono. No va a publicar Internet,
para que la gente pueda ver. Pero es realmente genial. Eso básicamente solo rodar su una lista de comentarios e imágenes del barrio, y puedes agregar otros nuevos. Tenía una foto aquí, ya
sabes, puedo agregar Ah,
no, no, eso no lo es. Y eso vamos a añadir una foto de un pastel. Odio las tartas. ¿ Qué? ¿ El freak? ¿ Por qué tenemos pasteles aquí, hombre? Eso Sí, odio el pastel. Deja de dejar estos en mi puerta. No quiero conocerte. Muy bien, Así que escribes un comentario, haces tu descripción y lo publicas. Y luego fue aparece en la parte inferior de la lista ahí mismo. Bastante cool. Y si te preguntas, ¿todas estas fotos me pertenecen? y mi casa. La respuesta es que no lo voy a contar. Y así que esa es la app. Realmente genial. Vas a aprender muchas cosas. Vas a aprender a, ah, almacenar datos en tu dispositivo, a almacenar imágenes. Vas a aprender a recortar imágenes y estos círculos, vas a aprender a dar estilo a las cosas. ¿ Cómo? Teoh Cargar fotos. Um, desde tu teléfono, cómo guardar datos, cómo codificar y decodificar cosas. Vas a aprender muchas cosas. Vas a aprender a usar una vista de tabla, una celda de tabla personalizada. Este es un enorme paso en la dirección correcta y ayudarte a convertirte en un
desarrollador profesional de Iowa . Entonces no te pierdas esta app y lleguemos a ella.
65. App: parte 1 de la 1: él ya para ensuciarse las manos? Yo soy. Porque este es Mark Price de Deb pistas dot com y vamos a aprender a codificar y hacer iPhone. APS. ¿ Cómo suena eso? Entonces vamos a ponernos justo en ello. Abre tu código ex. Ya debes saber hacer eso, esperaría y
seguiría adelante y ah, crear un nuevo proyecto. Haré eso aquí mismo. Basta con tirarlo aquí en la pantalla. Ahí vamos. Y fui a presentar nuevo proyecto. Y entonces lo que vamos a dio es una aplicación de una sola vista, ¿de acuerdo? Y nombre del producto. Puedes llamarlo como quieras. Yo lo voy a llamar. Ah, mi capucha. Dev pendientes. Está bien. Y veloz está bien. Universos bien. Eso está todo bien. De acuerdo, solo guárdalo donde quieras. Haz crear un repositorio git para ello porque deberías estar enviando estos a tu
cuenta de get help para que puedas tener piezas de portafolio para mostrar a la gente. Um, ¿así que te ves bien aquí? No voy a cambiar nada aquí. Vamos a sumergirnos justo dentro y hablemos de lo que vamos a hacer con la app. Ya nos enteramos de lo que va a dar el AP Así que pensemos en lo que necesitamos para
que eso suceda . Por lo que esta vez creo que quiero iniciar la app construyendo el modelo construyendo los datos. Realmente hago eso bastante a menudo en muchos de mis APS. Empiezo con el modelo, sin embargo, estos albergan los datos que van a conectar y lo rompo. Lo desgloso desde la interfaz de usuario o maquetas hacia abajo Teoh a los datos que
necesita la Abscam . Entonces pensémoslo. Entonces sabemos que vamos a necesitar un título y sabemos que vamos a necesitar una descripción. Ahora, cuanto a la imagen, eso es algo realmente interesante donde va a vivir la imagen. Bueno, en esta app, realidad
vamos a guardar imágenes directamente en la app en el directorio de documentos de esa app. Tan hipotéticamente, si sigues guardando imágenes, tu aplicación se volvería masiva, ya
sabes, cientos de megabytes y, uh, en el futuro, sabes que no harías esto. Almacenas tu imagen probablemente esté en Internet en algún lugar de un servidor, pero esto es ah, nena, paso en la dirección correcta. Y así vamos a guardar nuestras imágenes en el dispositivo en la propia APP. Y entonces lo que tenemos que hacer es almacenar el camino hacia esa imagen. ¿ De acuerdo? En realidad no vamos a almacenar esa imagen en una base de datos ni nada por el estilo. Por lo que necesitamos iniciar el camino hacia eso. Entonces sigamos adelante y en tu proyecto aquí, eh, bien. Haga clic en la carpeta y cree un grupo nuevo y cree un grupo llamado Modelo, como en Model View controller y derecha. Haga clic en él y vaya al nuevo archivo. Está bien. Y vamos a dar un archivo llano de Jane Swift, y deberíamos llamar a este uno de estos son sus puestos. Entonces llamémoslo un post que rápido. De acuerdo, hacemos esto un poco más grande aquí para ti y ah, post de
clase. Está bien. Y pensemos en los datos que queremos en la clase eso que necesita,
Ah, Ah, una ruta de imagen de título y una descripción Tan privada,
más imagen, más imagen, ruta de tipo string otra vez, haciendo que las variables sean privadas. Entonces somos buenos codificadores, y nadie más está manipulando nuestros datos. Eso no debería ser. Y ah, título va a ser de tipo string y ah, vamos a hacer post descripción. Um, lo encuentro. Descubrí algo realmente interesante que en realidad me causó un problema más tarde. Pero no llames a tu app. No llame a su descripción de variables porque en realidad puede entrar en conflicto con la descripción de
clase subyacente . Entonces lo vamos a llamar Post. Simplemente cortaremos el postdisco para una descripción. Está bien, eso se ve bien. Y luego vamos a crear un izer inicial. Por supuesto, este es un clásico necesita inicializar er y digo que no dejamos que nadie cree un objeto. Un post object tiene los tres de estos hará que se requiera tanto la ruta de imagen de tipo, cadena, título de tipo, cadena y descripción de tipo string. Eso está bien poner descripción aquí porque es un nombre de parámetro. Um Y recuerda, la razón por la que estamos poniendo estos puntos de exclamación aquí es porque estamos diciendo en algún
momento del tiempo definitivamente tendrán un valor. Y en realidad, ya que lo estamos inicializando aquí mismo desde el izer inicial, en realidad
podemos quitarlos y ah, básicamente siempre y cuando los inicialicemos y en el Isar inicial, nos dejará hacer eso. Entonces básicamente está garantizado tener un valor si lo pasas en el Isar inicial, Así que lo haremos ahora. Self image path es igual a imagen Path and self dot title es igual título y auto post descripción igual a descripción. Ahora bien, este aire debería desaparecer. Ojalá y ahí lo tengas. Por lo que ni siquiera necesitábamos hacer el signo de exclamación implícitamente desenvuelto. Uh, estos aire sólo bueno para ir. Estamos diciendo que garantizamos absolutamente que van a tener valores porque los estamos poniendo en el Isar inicial. Si no tenías estos aquí se tiraba aire. Eso cool. Por lo que hemos creado una clase para almacenar nuestros datos. No es nada malo en absoluto, realidad. Estamos haciendo grandes avances. Entonces eso es genial. Vayamos a nuestro storyboard ahora y pongamos algunas cosas alineadas ahí arriba. Entonces aquí está nuestro storyboard de puntos principal, y aquí está nuestro controlador de vista. Es ah, el principal punto de entrada, que está bien. Entonces vamos a usar una vista de tabla, Así que adelante, sólo escriba tabla y no haga clic en controlador de vista de tabla. Solo vamos a hacer la vista de mesa en sí. No necesitamos el controlador de vista de tabla porque estaremos gestionando personalmente la
fuente de datos en el delegado y todo ese tipo de cosas nosotros mismos. Entonces Aquí está nuestra vista de mesa. Simplemente arrástrelo aquí y arrástrelo hasta aquí. Además, sé que vamos a necesitar el banner azul en la parte superior, así que vamos a hacer de eso una U que veo. Um, y ya sabes, podríamos haber usado un controlador de navegación y darle estilo, pero esto saps no demasiado complejo. Simplemente vamos a construir nuestra propia vista aquí arriba, hacer que se vea bien para hacerse un poco más grande. Entonces es esta pequeña barra de estado de la parte superior de la batería, no cubrirla. Y cambiemos al color, que está justo aquí. Y si quieres ese color, son dos e 87 C tres. Está bien, así que se ve muy bien. A mí me gusta y sólo arrástrelo ahí arriba y vamos a seguir adelante y fijar esto Así que anómalo a la parte superior. Despegue lo constreñido, los márgenes a la izquierda, a la derecha. Y, por
supuesto, lo siguiente que queremos hacer es la altura ¿verdad? Y así el dependiente a la izquierda de la parte superior a la derecha y le dan un apretado fijo. Entonces para lucir así en todas las pantallas y se estirará en consecuencia. Y ahora nuestra vista de mesa. Vamos adelante y ah, bueno, ¿cómo queremos hacer esto? Vamos a querer ir del borde de la pantalla al borde de la pantalla ¿O queremos
darle algunos márgenes? Podemos jugar con los márgenes. Probemos eso. Hagámoslo. 20. A partir de ahí, diremos 20 de arriba o así y 20 de ahí. Entonces e incluso dirá 20 desde abajo. Sólo por diversión. Eso Sigamos adelante y hagamos eso. Ahora me acerqué. Eran 18. Por lo que 20 cero a la izquierda, ahí a los ojos de la derecha. ¿ Qué quieres? Porque esos evalúan los márgenes, ¿recuerdas? Y luego 20 de abajo está bien, y así eso lo estirará por toda la pantalla, que es lo que queremos. Eso se ve genial. Y, ah, así está nuestra vista de mesa. ¿ Qué más faltaban? Um, podemos Ah, podríamos poner nuestro logo en. Eso será divertido. Déjame seguir adelante y agarrar eso Aquí. Aquí vamos. Desechar este logotipo. En realidad, vamos a hacer clic en la carpeta Activos. Por supuesto primero, y luego arrastremos el logo hacia adentro. Si no quiere chocar contra nosotros, puede
que no fuera bueno Y vamos a seguir adelante y sólo cargar Thea están lanzando la
pantalla de salpicaduras mientras estamos en ello y el ícono de la cámara mientras estamos en ello, porque vamos a necesitar eso también para. Y por supuesto, tienes acceso a estos como parte del código fuente. Entonces eso se ve bien. Volvamos a nuestro storyboard aquí y metamos esa cámara. Esto está metido con eso. Primero, eso va a ser un botón, cierto, Porque ah, haces clic. Tiene sentido. Acabo de arrastrar un botón aquí, por cierto, y me voy a quitar el texto y voy a poner la imagen a cámara, y sólo voy a cambiar y escalarla hacia abajo. Las cosas que un buen tamaño Sí, es iss No discutas conmigo. De acuerdo, entonces, um, me
queda bien. Y vamos a seguir adelante y darle una altura fija con y fija, y sólo lo diremos ocho desde abajo y ocho desde la derecha y eso lo mantendrá justo donde lo queremos. Y sigamos adelante y llevemos nuestro logo aquí mismo en medio. Eso es sólo un logotipo estático. Soldados hacen que sea una imagen de ti. Tú me imagino y yo lo arrastra hasta aquí, ¿de acuerdo? Y, ah, es un poco grande. Aquí vamos, hazlo más pequeño y la imagen va a ser logo de banner. Por supuesto, está estirada no queremos que sean buenos programadores y obedezcan la rueda de nuestros artistas y digan Aspect fit. Ah, eso se ve bien. Se ve bonito. ¿ Qué opinas? Yo también lo creo. De acuerdo, vamos a darle un fijo. Ah, dentro de la altura. Eso está bien. Eso haremos con un poco demasiado tiempo. Ni siquiera lo necesitamos. De verdad, Uh, no quiero desperdiciar espacio en blanco extra. Um, ahí vamos. Ah, centro centro. Está bien. Y ahora vamos a darle un fijo dentro de la altura, y eso se ve bien. Y vamos a salir y fijarlo. Ocho de abajo, cual está bien está bien, y lo último que tenemos que hacer es sólo una línea. Es hacer clic en el menú de alineación ahí abajo y alinémoslo horizontalmente en contenedor. Ahora bien, no lo
he comprobado, pero como nos estamos poniendo tan buenos en las restricciones, voy a asumir que se ve bien y bonito. Moz, estoy dando clic al editor asistente por aquí en el lado derecho clicando prevue y main dot Storyboard Uh, luciendo bien. ve realmente bonito, en realidad. Um y ah, 5.5 pulgadas. Ahí también se ve
bien . Buen trabajo, chicos. Sí. De acuerdo, así que tenemos eso. Tenemos eso y tenemos su mesa de ti, así que eso es realmente genial. Digo que agreguemos nuestra celda de vista de tabla, así que escribe la palabra en tu buscador de objetos ahí abajo, Escribe la palabra celda, y vamos a hacer una celda de vista de tabla. Simplemente adelante y arrástrelo justo en su vista de tabla, y solo plops ahí dentro. Y, um, lo que voy a hacer es en realidad sólo ponerle un color de fondo,
porque el blanco es difícil de ver donde los límites van a cambiar esto más tarde. Um, pero quiero ver cuáles son los límites. Entonces están los límites. Es un poco demasiado pequeño. Y así como funciona esto es que creas tu celda personalizada aquí mismo en el guión gráfico. Si no estás usando la aplicación storyboard, tienes que hacer esto en un archivo ZIP separado y luego cargado en tu código. Pero esto es realmente conveniente hacerlo aquí en el guión gráfico. Entonces definiremos nuestra célula sobre cómo va a quedar. Y entonces simplemente lo reutilizará y lo repetirá, lo cual es realmente genial. Entonces sabemos que en el lado izquierdo tenemos una imagen, ¿
verdad? Entonces sigamos adelante y hagamos eso y entréguense. Y por supuesto, nunca es
lo suficientemente inteligente como para ponerlo al tamaño que realmente necesitamos. Y ah, se ve sobre Ok, hagámoslo un 70 y 70 iguales. Acabo de hacer clic en la regla por aquí. Por cierto, espero que te estés familiarizando más con esta navegación. Aquí s hice clic en la regla. Tiene sentido el de los atributos para cambiar los atributos. Uh, eso se ve bien. A mí me gusta. A mí me gustan las palabras yendo, Um, sigamos adelante. Y se ve realmente bonito. Ah, eso es tan aviso. Aquí en la parte superior e inferior, dice márgenes preocupados esta vez lo cero en el interior de una mesa de que vendes. Hay márgenes en la parte superior e inferior, mientras que en la otra vista aparecen sólo había márgenes izquierdo y derecho, si recuerdas. Entonces eso es genial. Queríamos desde la izquierda, la parte superior y la derecha exactamente lo que queremos y luego seguir adelante y darle un ancho y
altura fijos . Se va a quedar exactamente así. Y Ah, eso se ve realmente genial. En realidad, um, estoy impresionado. Es decir, yo lo diseñé, ¿sabes? Por supuesto que va a quedar genial. Entonces lo voy a hacer ahora es conseguir un ejemplo. Imagen. Voy a dar clic a la carpeta de activos aquí y sólo a lanzar un ejemplo. Imagen de prueba. Eso puedo, eh, ver cómo se ve. Asegúrate de que sea ah, juntando. Entonces le hice clic a este tipo de aquí y vamos a ir a era un puente de agua de barril. Y voy a decir aspecto sentir en este caso, no
quiero que mis imágenes se vean realmente bonitas y llenen toda la pantalla así que no hago
ajuste de aspecto porque si hago eso, va a dejar espacio extra en blanco y se va a quedar raro. Aspect feel es la solución adecuada en este caso. Entonces me gusta. A mí me gusta. A mí me gusta. Y sigamos adelante y sumamos sus etiquetas ahora. Y por cierto, estamos agregando estos a la celda. Si accidentalmente agregaste alguno de estos controles fuera de la celda, vas a necesitar cambiarlo porque no lo queremos fuera de la celda. Entonces ahí está tu etiqueta. Voy a arrastrarlo todo el camino a través Voy a cambiar la fuente a personalizada y luego Helvetica nueva Y eso se ve bien Y podría cambiar el color Pretende que tenemos un
fondo blanco que dio y no un fondo azul Voy a cambiar el color too Un gris oscuro Aquí tienes una punta de diseño para ti. En la mayoría de los casos, negro siempre es al
negro, el blanco y el negro siempre es al negro Siempre quiero ir con un más oscuro un gris más oscuro Simplemente se ve mucho mejor Esa ligera diferencia podría hacer toda la diferencia Eso ah, hay un consejo de diseño de ti Eso es directo de Ah, Diseñador. En
realidad, no son sólo mis palabras, sino Ok, entonces hay una etiqueta y Ah, aquí vamos. Ahí está esta sería nuestra multi línea etiquetada. Esto es como una descripción que podría tener ah decir tres líneas. Y así, um, ya
sabes esto Esto podría ser como, Hey, este vecino es tan punk. Él explota su, uh, música de
maíz. El maíz es cualquiera. Escuchen, chicos, ustedes incluso nacieron en las esquinas alrededor de un poco. De todos modos, uh, para los de ustedes saben que es. Eso está bien. Eres genial. Yo tiré la música de maíz demasiado fuerte. Um, y ah, estoy pensando en quemar su casa. Juventud como vecino enojado. Um
, está bien. Observe cómo se corta. No es del todo encajar tres líneas. Entonces lo que queremos hacer aquí es Ah, ver esta auto fuerza justo aquí. Cambiemos de tamaño de fuente fijo a mínimo, y estamos en 17 ahora mismo. Creo que deberíamos encogernos a 12. Entonces, básicamente, si no encaja, va a encogerse hasta las 12. Hasta que haga algo por debajo de 12 es demasiado pequeño. Entonces se lo cortará, pero creo que estaremos bien. Entonces tenemos su etiqueta. Tenemos su imagen. La imagen tiene restricciones que las etiquetas no. Aquí está nuestro título, en realidad. Um um Música hombre música hombre necesita ir. Cal, deshazte de este tipo. Y, uh, también, aquí hay otro consejo de diseño. Um, ya
sabes, es muy común querer que Teoh haga esto audaz, ¿
verdad? Es una cabecera. Debe ser audaz. Ya sabes, um, los diseñadores con los que he trabajado oh sugieren en contra de no hacer eso como tus encabezados. Basta con utilizar un tamaño de fuente normal. Y entonces lo que haces en el tamaño de la fuente sub es en realidad cambiarlo. Teoh Una luz o cursiva para que pudiera cambiar esto a cursiva ligera, y está empezando a lucir realmente bien. Esto casi parece audaz ahora, pero no es demasiado fuerte. Simplemente crea el perfecto Ah, perfecto equilibrio ahí. Entonces hay otro consejo de diseño. Usar Teoh regular y ligero. Haz que tus cosas se vean realmente bien. Um, y así vamos a constreñir esta etiqueta aquí en la parte superior e izquierda está bien, en realidad. Correcto. Está bien que solo lo haga estirar en esto. En este caso, no
necesitamos darle un con Vamos a darle una altura, porque va a tener un flexible con porque está anclado a la izquierda y a la derecha. Entonces eso está bien. Y entonces ah, último, este tipo de aquí va a la misma cosa tres de los ocho primeros del, uh, cero
izquierdo de la derecha, y vamos a seguir adelante y darle una altura. Está bien, voy a llamar bueno a esto. Adelante y deshacernos de esto. Ah, este fondo azul simplemente no encaja. Pero ¿viste cómo nos ayudó a descifrar lo que tenemos que hacer. ¿ Dónde está este fondo? Um, ahí está. Eso está a punto de cambiarlo a, um, por defecto. Tienen fondos de color blanco o claro, lo que nos funciona. Oye. No se ve bien, creo que se ve bien. Se ve realmente genial, en realidad. Entonces ahí está nuestra vista de mesa. Um, ¿Qué opinas? Cómo se ve, creo que se ve bastante bien. Tú también, y, porque esto realmente se hace. Eso no está mal. Entonces sigamos adelante y entramos en nuestro, um, nuestro código, nuestro controlador de vista. Y lo que necesitamos hacer es crear una salida de hiedra para nuestra vista de tabla. Entonces en I b outlet semana de nuestro, uh, simplemente
llamaremos a esta vista de tabla de tipo te I tabla vista. Ahí está. Y, ah, ya
sabes, lo que haremos aquí es en realidad agregar un chivo expiatorio de esta advertencia de memoria. Vamos a seguir adelante y, um, añadir los protocolos de delegado o los delegados de protocolo o como quieras pronunciarlo. Por lo que me mesa vista delegado. Entonces básicamente, cómo funciona esto es si tienes una vista de tabla. Entonces, ¿cómo de mesa es este trabajo? No. Si hay uno en juego, uno corriendo Lo que va a hacer es que va a llamar a cosas llamadas funciones. Se va a llamar camino de índice auto Arrgh. Va a llamar a número de filas y sección. Está esperando algunas funciones para llamar. Está esperando llamar a esas cosas, sin embargo, ya que pero no va a llamar en su propia clase cómo funcionan los delegados y protocolos. Como usted dice. Implemento la reunión de protocolo, prometo implementar las funciones que buscas Mr Table View y Mr Table View dice:
Oh, Oh, tienes mis funciones. Genial. Los llamaré y te daré cosas para que puedas usarlo. Entonces lo que queremos hacer es implementar las funciones para la mesa blanca de ustedes delegan para que la tabla de ustedes los pueda llamar, y así pueda funcionar. Entonces para que podamos pasar datos y cosas por el estilo. Y la razón por la que hicieron eso es porque, um, no lo
hicieron No querían que no pudieras tener acceso a las cosas que necesitas para correr una mesa. Eran como funciones abiertas que puedes usar para realizar operaciones, y así tienen que estar en protocolos que podrías implementar otras clases para que cualquier otra clase pueda usarlas. Y es un poco complejo de un tema para ti. No lo entendáis completamente. Eso está bien. Solo tienes que saber que para implementar estos protocolos, pones una coma después de la clase de la que está heredando. Y luego implementas el protocolo ahí mismo, y vamos a implementar dos protocolos. De acuerdo, Usted una vista de tabla, delicado y nuevo I tabla ver fuente de datos. Entonces estamos diciendo, Hey, este es el delegado para la mesa de ustedes. Entonces va a escuchar ciertas funciones. Y también Hey, aquí es donde estás obteniendo tus datos de la Necesitamos establecer nuestros datos aquí también, también. Um, y Apple optó por poner los en dos separados que podrían haberlo metido en la misma junta. En realidad nunca he usado uno sin el otro. Entonces, uh, pero lo que sea. Um, así que tenemos esos Eso es genial. Entonces lo otro que necesitamos dio es ah se tabla vista. Por lo que la persona que llama vista y decir delegado igual yo. Entonces recuerda cómo dijo Mr Table views, buscando un delegado para llamar, Él es como,
Hey, ¿ quién va a ser el delegado? Y yo soy quien sea el delegado y estaba implementando estas funciones. voy a llamar por ti. Y así lo está buscando. Entonces tenemos que decir, Hey, yo soy el delegado. Mi controlador de vista. Este tipo de aquí, es el delegado y está escuchando. Eso es todo lo que estamos diciendo en vista de tabla fuente de datos punto es igual a sí mismo. Y ah, lo
mismo con la fuente de datos. Oye, ¿dónde están los datos? ¿ Qué? Yo lo estoy cargando. Te ayudaré con eso. Y Ah, eso es realmente genial. El problema es lo que estás viendo este aire aquí mismo es que no hemos implementado el, um no hemos implementado las funciones que está requiriendo, pero sí quería mostrarles una manera más. Entonces estamos haciendo esto en código aquí. También puedes hacer esto desde tu storyboard. Entonces si selecciono mi mesa de ustedes aquí mismo, uh y ah, pegué mi controlador de vista en realidad viceversa. Si selecciono mi controlador de vista que mi vista de tabla, creo que estaba seleccionando la celda. Um, OK, así que ven esta vista de mesa aquí mismo? ¿ Qué? Yo también por cierto, lo que acabo de hacer fue conectar esa mesa view tour outlet. Acabo de hacer clic y arrastrado con arrastre de control. Fui así. Control de arrastre. Está bien. De todos modos, haga clic en su vista de tabla. Correcto. Haga clic en él y Ah, vea cómo dice fuente de datos y delegado. En realidad puedes arrastrar estos a tu control o decir:
Oye, Oye, esto pertenece a la fuente y esto en los delegados ahí mismo también con eso dicho, me pongo un poco raro, uh, cansado o leery of, ah de hacer ese tipo de demasiadas cosas en los storyboards porque lo que termina pasando
una y otra vez es que te olvidas y es difícil depurar. Difícil de averiguar dónde está justo aquí en el código. Está en tu cara, sabes que lo estás llamando. Entonces, um, me gusta hacer eso tanto como puedo escuchar en el código. Entonces es que puedes depurarlo y rastrearlo. Por lo que necesitamos seguir adelante e implementar algunos de esos métodos delegados. De acuerdo, entonces una de ellas que tenemos que hacer es número de secciones y vista de tabla. Está bien. Observe cómo acaba de hacer eso por mí automáticamente. Muy bonito. Eso una sección es sólo Hey, cuántas formas lógicas diferentes quieres separar tus datos y en la mayoría de los casos, mayoría de APS tengo habilidades. Tú siempre uno. Pero en algunos he construido múltiples secciones. Y así, como, ya
sabes, si estuvieras si estás construyendo como un Pokemon en y quisieras separar todos los Pokemon por tipo, como fuego de hierba, lo que puedas, podrías hacer diferentes secciones, y cada una puede tener fecha un montón de rosa de mesa en su propia sección. Pero en nuestro caso, vamos a devolver una sola sección, ¿de acuerdo? Y, ah, por cierto, ese empieza con número de secciones y vista de tabla. Ese es el nombre de la función. La mayoría Estas otras comienzan con la vista de tabla de palabras para que puedas ver todas estas. Estos no aparecerían, por cierto, a menos que hubiéramos implementado esos protocolos arriba de eso. Hay algunos que tenemos que tener. Uno es la ruta de índice auto pharoah y lo que esto nos está diciendo, Vale, lo que nos está diciendo es, um hey, tienes un montón de datos que quieres mostrar cada vez que quieras mostrar datos en pantalla. Vamos a crear una celda, una celda de vista de tabla y poner datos y mostrarlos en la pantalla. Entonces tienes que entregar una nueva celda cada vez y decir:
Oye, Oye, ¿qué datos quieres que muestre en esta celda específica? Está bien. Y entonces eso es lo primero que tenemos que hacer. También necesitamos a Teoh. Haz unos cuantos más aquí. Tenemos que desplazarnos hacia abajo y encontrarlo aquí. Está bien, éste de aquí. Altura para ruta de índice de fila. Quiere saber la altura de tu celda. De acuerdo, Um, entonces si vamos a nuestro tablero principal de cuentos aquí y miramos nuestra celda en el lado derecho por aquí, sabemos que tiene 87 píxeles de altura. De acuerdo, entonces volvamos a nuestro controlador de vista aquí, y ah, vamos a devolver 87 0.0. De acuerdo, um, ahora, en el ocho y arriba de Iowa, si quieres. Si no quieres poner, um, una altura fija aquí. Ah, y tú querías ser más flexible y quieres tu gusto, por ejemplo, tus etiquetas. Si hay mucho texto, quieres que crezcan y se expandan y cosas como esas realmente puedes deshacerte de esto. Y lo que puedes hacer es decir tabla de ti punto estimado altura de fila y luego solo
le das una altura estimada, por lo que tipo de tiene una base de la que desprenderse. En este caso, sería 87. Y entonces lo que haces es diseñar tus restricciones en tu guión gráfico, para que sean flexibles. Por lo que sus etiquetas enhorabuena. Ah, y encogerse y luego cambiarán en consecuencia. No vamos a hacer eso aquí. Hoy no. Entonces no es gran cosa. Yo sólo quería que supieras que puedes hacer eso. puede haber estimado y crecer y encogerse. Tienes que configurar tus restricciones una cierta manera de hacerlo. Y, um así tenemos Heifer Road y espera Index path Self Una fila y siguiente camino. Ahora, lo que necesitamos es, ah, número de necesitamos una mesa de ustedes. Número de filas en sección. Entonces número de secciones en la tabla es cuántas secciones tienes el número de rosas cada fila que vas a tener en cada sección donde solo tenemos una sección. Y entonces lo que estamos diciendo es, oye, ¿cuántas filas vamos a mostrar? Bueno, todavía no
tenemos un buen número para eso. Entonces lo que tenemos que hacer es agregar los datos para eso. Entonces hacemos un guardar nuestro, uh, posts, uh, igual, y sólo lo iniciaremos de inmediato del bate aquí como una matriz vacía. Entonces vamos a tener, um, array de post. Cada vez que hagas una publicación, lo
vamos a agregar a la matriz. Eso tiene sentido, ¿verdad? Y así la cantidad de la cantidad total de celdas siempre debe igualar la cantidad total de puestos. Tiene sentido. Entonces, ¿qué crees que deberíamos poner aquí? Si dijeras volver mensajes conteo de puntos, tendrías razón. Tenemos que devolver el número total de publicaciones que se encuentran en nuestra vista de tabla. Eso tiene sentido completo. Y Ah, así nos dieron número de filas y altura de sección para fila y siguiente camino Self escribió y esperar. Aquí hay uno que no se requiere. Um, te
mostraré de todos modos, pero es ah, vista de
tabla, y sí ha seleccionado Rola y siguiente ruta. Y esto es lo que haces cuando quieres seleccionar una fila para cargar. Um, algo Alguna nueva vista de algunos datos nuevos. No vamos a hacer eso aquí. Ah, y esto Ah, en esta app. Pero esto es a lo que implementarías cuando seleccionas una fila y te lleva a
otro lugar . En nuestro caso, sólo
vamos a mostrar los datos, y, uh, no
somos capaces de editarlos ahora mismo. Y así por último, probablemente
estés como, Bueno, ¿por qué hacemos aquí Selvan aire? Bueno, está buscando para devolvernos una mesa de ustedes venden. De acuerdo, pero lo que tenemos que hacer es crear una venta personalizada. Entonces si te diste cuenta por aquí en el guión principal, aquí
hemos metido imagen en etiquetas. Pero, ¿cómo conseguimos el código hablando con el tablero de la tienda a estos datos aquí? Bueno, estás acostumbrado a hacer clic y arrastrar vistas del dedo del pie. Yo soy puntos de venta, pero nosotros no tenemos forma de hacer eso. Entonces lo que necesitamos hacer es realmente crear una vista personalizada tabla acostumbrada de que vendas. Entonces ve a tu carpeta por aquí, tu carpeta principal en un nuevo grupo. Estamos para llamar a este uno de ustedes cada vez que escribo código de vista personalizado. Lo puse en el controlador View folder model view. Simplemente re arreglar eso. Y así está nuestra carpeta de vista Hagamos un nuevo archivo y vamos a fuente esta vez. Clase de tacto de cacao. Está bien. Y adelante y cámbiate esto a ti. I tabla ver celda. Está bien. Y la clase, solo
puedes llamarla Post sell porque es, ah, el post cell Eso va a tener todas las cosas que no necesitamos para crear un archivo zip porque ya hemos creado la venta en lado de nuestro storyboard. No es gran cosa. Así que cocina a continuación y luego crea y lo suficientemente fácil No necesitamos esta función aquí. Es configurarlo cuando se seleccionó y, uh, no diferente cuando se ve antes excepto aquí Estamos heredando de ti, yo vista de tabla. Entonces esto es una clase personalizada. Estarás haciendo esto todo el tiempo. Si no estás escribiendo clases personalizadas en tus vistas con frecuencia, probablemente no lo hagas de la mejor manera, porque la mejor manera es toe es due module Arise lo mejor posible subclase y sostén tu lógica para esas vistas dentro de esas clases. Entonces en I b outlet semana var y sabemos que hay una imagen, ¿no? Entonces, solo llamemos a este post imagen de tipo te imagino ver por cierto. Es común que algunas noches las personas nuevas te dejen accidentalmente imagen. Eso es eso no va a funcionar. No te va a dar lo que quieres. Imagen de uso. Sostenga las imágenes, pero las imágenes no funcionarán en su pantalla sin una vista de imagen. Y vamos a seguir adelante y crear los otros barra de semana. Y esto es ah, etiqueta de
título, derecho de tipo tú yo etiqueto y una semana más de nuestra Y esto va a ser, uh, que sí dice escritorio etiqueta de tipo tu etiqueta para descripción. Y ahí están nuestros puntos de venta I B luciendo bastante cool, en realidad. Y ah, así que sigamos adelante y conectemos esos hacia arriba. Pon tu storyboard principal aquí y ah, ¿ves esta celda de aquí en la que acabamos de hacer clic? De acuerdo, acabamos de hacer clic en la mesa de que vendes. Ve aquí al lado derecho, haz clic en el rectángulo aquí, el inspector de identidad, y cambia tu clase para publicar venta. Esto es realmente importante. Si no haces eso, no
podrás reconocer que esos puntos de venta básicamente estaban contando el story board. Oye, esta es una celda personalizada, y tenemos que usarla. Entonces ahora si haces click derecho en tu celular aquí. Verás las etiquetas del título aquí mismo para que puedas hacer clic en él y simplemente arrastrarlo hasta el título . El post imagen se arrastró hacia la imagen del post y la etiqueta del escritorio. Señor me paso a la descripción bastante fácil que fue así de fácil. De acuerdo, así de fácil. No es gran cosa. Um, también por qué estamos aquí en esta celda. Vamos al separador. Um, en realidad, la tabla ve esta tabla de su aquí. Vamos a nuestro separador y ponerlo a nada. No queremos ningún separador Perrigo, y eso se ve bien. De acuerdo, entonces hay una cosa más que necesitamos dio uh, ver justo aquí de nuevo en nuestra celda, haga clic usted mismo y vaya a identificarla. Y, uh, cuando estás creando celdas de vista de tabla hay re usadas una y otra vez. Imagina esto. Imagina si tuvieras ah, 1000 filas. muestran muchos datos. ¿ Crees que un IPHONE o cualquier teléfono móvil podría manejar 1000 filas en la memoria? Probablemente no. Eso es mucho. Eso son muchas vistas. Está creando un recuerdo. Entonces lo que hace es cuando las vistas se salen de la pantalla, las toma y las reutiliza y las lanza de nuevo a la pantalla. Por lo que puede que sólo tenga, como, 30 o así nunca en la memoria, y simplemente siguen consiguiendo re usted. Entonces hay que tener un re use identificar están diciendo, Hey, esta celda es de este tipo y quiero volver a usarla. Entonces, por ejemplo, si tuvieras, digamos tres secciones diferentes, pero todas tenían tres estilos diferentes de ventas. Bueno, no
quieres reutilizar la celda equivocada y poner los datos equivocados, y no tendría sentido. Entonces sólo tenemos que darle un I. D aquí diciendo, Hey, es este tipo de celda para que sepamos qué tipo de datos poner en ella. Por lo que identificar aquí se va a llamar lo mismo es el nombre del postcelular de clase. Está bien. Y, uh, ahora ve a tu controlador de vista y vamos a escribir algún código vamos a decir,
um, um, si let cell es igual a table view dot de que celda reutilizable con identificador. Recuerda, esto se le llama post cell. Voy a decir, como post self, hablemos de lo que está pasando. Entonces lo que soy lo que hace la vista de tabla es cuando se llega a vender para en el siguiente camino. Esto es lo que te estaba diciendo sobre esto. Es eso lo que es cuando reutiliza esas células? Entonces llamas a tu mesa y dices:
Oye, Oye, tienes que venderme. Si haces rellenando mi camino, voy a reutilizar, y voy a actualizar los datos que hay dentro de ella. Entonces ya va a decir,
Hey, Hey, agarra una de esas celdas que has ordenado creado, acuerdo? Y, ah, claro, nos va a dar un ustedes una mesa de ustedes mismos. Tenemos que echarlo como un postcelular. Sabemos que va a funcionar porque eso es lo que estamos usando. Post vende, um, y eso es objeto o en una programación que es polimorfismo. Poder usar uno usar un tipo de padre como el mismo que un como tipo hijo. Entonces si hay una celda, si me has devuelto una celda, eso significa que tenemos una celda fresca para usar. Pero los datos y su edad necesitamos poner los nuevos datos en ella, porque acabamos de volver a utilizar los datos de una vieja celda s por lo que necesitamos actualizar los datos en ella, pero aún no tenemos una forma de hacerlo. Entonces volvamos a nuestro postcelular.
66. App: parte 2 de MyHood: Oigan, todos, Mark Price. Aquí, Deb pendientes dot com Y aquí estamos para la emocionante conclusión de mi capucha, y está resultando bastante bueno hasta ahora. Tengo que decir, aquí es donde lo dejamos, si se acuerdan de algunos de ustedes eso fue hace 15 segundos. Para otros, han pasado un par de días. Entonces para aquellos que han estado un par de días, necesitas estar recubriendo con mucha más frecuencia que eso. Si quieres bajar estas cosas, haz esto todos los días. Por lo que tenemos nuestra vista de tabla con datos de prueba, y se ve bien. Las imágenes son un poco grandes. Obviamente no estamos guardando imágenes y cosas así, Um, pero realmente no tenemos una forma de crear estas imágenes de todos modos, porque tenemos una carga lo arriba del teléfono. Y así vamos a seguir adelante y crear nuestro segundo controlador de vista. Entonces empieza a hacer justamente eso. Así que vamos a seguir adelante y crear un nuevo grupo por aquí llamado Controlador, Por
supuesto, controlador de vista de
modelo. Ya lo hemos completado, acuerdo? Y vamos ah, pero el controlador justo ahí y voy a seguir adelante y arrastrar mi controlador de vista ahí dentro . Y de hecho, estos storyboards aquí puedes ponerlos en tu opinión, porque su punto de vista uh, es código. Y, uh, y la interfaz real en sí que todo podría ser clasificado como la vista. Y así está nuestro primer controlador de vista. Vamos a crear uno nuevo. Por lo que un nuevo archivo, acabo de hacer clic en él. La clase de toque Coco es perfecta, y ésta necesita heredar de ti. Yo veo controlador. Y vamos a llamar a esto add post V C. Es un poco común en IOS terminar con tu vista. Nombres de controladores, las letras V. C obviamente no quieren escribir el controlador de vista hacia delante. No sé por qué apple pone eso ahí para ti, pero básicamente en V. C al controlador de vista final, muy contando de lo que es. Haga clic en Siguiente y haga clic en crear. De acuerdo, So Ok, entonces tenemos nuestro segundo controlador de vista. Se ve bien. Voy a seguir adelante y deshacerme del,
uh, uh, código
calderero ahí, y voy a deshacerme de esto y vamos a entrar en nuestra palabra principal de la historia y realmente crear un controlador de
segunda vista. Y todo lo que tenemos que hacer es buscar en la parte inferior justo aquí. Entonces ve el controlador y arrástrelo a la pantalla. Se ve genial. Y, ah, incluso
podemos crear el Segway aquí mismo. Entonces toma tu botón. Nos permite hacer click en él. Tenemos que acercar y seguir adelante y controlar arrastra aquí a tu controlador de vista y solo haz clic en mostrar no gran cosa, está
bien. Y en el Segway hará clic en eso y le daremos aire no identificado, y ,
uh, me gusta llamarlo lo mismo que la vista a la que voy. Entonces llamaré a este anuncio post V. C. Y se ve genial. Una cosa más cuando lo haces seleccionó este nuevo controlador de vista y haz clic en el
inspector de identidad por aquí este rectángulo y cambia eso a tu nuevo controlador de vista de publicación de anuncios. De esa forma podemos conectar puntos de venta y cosas así. Ahora, lo que necesitamos es la pregunta. Por lo que necesitamos necesitamos una forma de regresar así que cancelo. Pero en necesitamos, um un lugar para que la imagen muestre lo necesitamos cuando toques esa imagen, agrega, te
deja agregar una nueva. Necesitamos un par de campos y un botón para hacer el post y tal vez un título en la parte superior. Y así sí necesitamos unos controles. Aquí s así lo que voy a dio es en realidad dormía esta bonita vista azul aquí arriba y haga clic
aquí y luego este comando V a pagar. Entonces mando C comando V para pegarlo aquí y, ah, vamos a deshacernos del logo aquí. Y ah, vamos a deshacernos de la foto o de la cámara y salgamos y pongamos una etiqueta derecha aparecer en la parte superior. La mayoría lo centran bien, Y ,
uh, ahí vamos. Y vamos a dar derecho a esto Hacer nuevo post que me quede bien y me cabe, sabe cambiar dedo del pie blanco. Entonces voy a hacer clic en el color y cambiarlo dedo blanco. Y cambiémoslo de sistema a sostenido que podría nuevo un poco más grande ahora. Entonces hagámoslo más blanco. Eso se ve realmente bien y está bien, así que vamos adelante a nuestro menú pin y vamos a seguir adelante y fijarlo ocho desde abajo , y le vamos a dar un dentro de una altura para que se quede como debería. Y entonces sigamos adelante y senadores horizontalmente, así que está justo en el medio, y creo que nos hemos olvidado de fijar esto. A lo mejor no. Echemos un vistazo. Eso cargó con ella la altura pero no cargó las restricciones. Entonces cuando lo copiamos Así que vamos a hacer clic en el menú pin, desactivar los márgenes restringidos Haz clic a la izquierda arriba y a la derecha. Y creo que estamos en los negocios. Entonces ahí está nuestro título superior. Sí necesitamos un pero ahí dentro. Entonces voy a escribir la palabra pero abreviatura de botón. Y lo puse por aquí en el lado izquierdo. Y vamos a cambiar el texto para cancelar y cambiar la fuente Teoh, helénica y nueva. Y lo que voy a hacer en realidad es cambiar el color dedo del pie blanco, bonito botón de cancelación. Y, uh, no
me gusta cómo se está centrando ahí. Entonces por aquí, si miras tu control en tu botón, puedo hacer click en alineación izquierda y, uh, lo guardo. Asegúrate de ahorrar mucho a todos. Entonces cuando tu programa se bloquea, especialmente con código X, um, siete, que es se bloquea mucho, que aún tienes tus cosas. De acuerdo, entonces tenemos un título. Tengo que cancelar, pero y eso se ve genial. Um, así que sigamos adelante y metamos nuestra imagen aquí y ah, allá vamos. Y sigamos adelante y digamos a 40 por 2 40 Una plaza perfecta. Lo sacaremos justo por ahí quién me gusta y,
ah, ah, vamos a seguir adelante y hacer clic en el menú de alineación y vamos a centrarlo horizontalmente en el contenedor. No queremos verticalmente y
dijimos, Queremos el menú pin. Vamos a seguir adelante y digamos que 35 de arriba está bien y vamos a darle un fijo con y una altura
fija y luego también seguir adelante y se cambien escala. Estoy dando click en la imagen y por aquí y luego click en la sensación de aspecto. Yo quiero que la imagen se sienta completamente y podemos poner el ejemplo Imagen aquí mismo. Sólo para que tengamos algo ahí por ahora, y se ve bien. Ahora Tal vez te estás preguntando cómo tocas una imagen para cargar un botón o para cargar el
picker de imágenes cosas así. Lo que en realidad voy a dio está descartado. En realidad, mucha gente hace esto. No tiene nada de malo. Hay muchas maneras en que Teoh cocina un pollo para despellejar a un gato para vencer a un bate. Ya sabes, estoy diciendo que no sé lo que estoy diciendo. Y, uh entonces sólo tomé un botón y lo arrastré hasta aquí, ¿de acuerdo? Y lo estoy arrastrando por aquí, acuerdo? Justo cómo se acaba de arrastrar al mismo tamaño que la vista de imagen. Y asegúrate de tu lado izquierdo por aquí que esté debajo de ella en la pantalla. Por lo que se puede hacer clic. Y lo que será dio es cambiará el texto a un bonito color naranja. Vamos a hacer que esto desaparezca, así que no importa. Pero aquí está la naranja si lo quieres f a 71 c. Y,
uh, uh, voy a cambiarla a la Helvética nueva y hagámosla más grande. Y hagámoslo decir, um, más agregar pick. Entonces eso es lo que van a decir los botones. A mí me gusta OK y la púa y no haría algo divertido. Selecciona tu botón y tu imagen y selecciona tu menú pin y di igual con e iguales alturas. Ya que ya configuraste un con y alto en tu imagen, tus botones van a conformarse, lo cual es realmente bonito, y luego en tu menú de alineación, Simplemente haz clic en centros horizontales y centros verticales y otra vez, ya que las imágenes ya dispuestas tu botón se alinearán y conformarán. Y, uh, eso es bueno ir. Entonces sigamos adelante y creemos nuestros campos. Estos son ustedes, yo campos de texto, y lo arrastraremos justo aquí, y lo arrastraremos hacia la izquierda, y lo arrastraremos hacia la derecha, y ah, no
me gusta la forma en que se ve. Um, voy a cambiarlo. hincha. ¿ Qué queremos hacer aquí? No está tan mal. Nos vamos de este lugar. Titular, ingrese titulo. De acuerdo, escuadra y centro eso. Voy a cambiar la, uh, la fuente Teoh Helvetica nueva y me gusta. Podría cambiar el color de la fuente a ese gris oscuro. Todavía no lo puedes ver, pero vamos a ver si sucede entraría justo aquí. Sí. Eso se ve bien otra vez. Grises o era agradable. Y es un poco, um, pequeño, creo que me gustaría que fuera un poco más alto,
creo, um, sí, sí, hagámoslo más alto. De lo que actualmente está en ese 30. Hagámoslo ahora a 40. No te permite arrastrar estos controles aquí, así que tienes que establecer eso en las restricciones Hagámoslo ahora. Vamos a seguir adelante y darle una altura de 40. Y, eh, bueno, banderín del top 25 está bien. Y de la izquierda y de la derecha. Muy bonito. ¿ De acuerdo? Y así que eso se ve bien. Vamos a seguir adelante y basta con hacer clic en eso y controlar. Ver o manda C Comando V para hacer otro y arrástrelo ahí mismo. Y llamemos a éste, ¿eh? Ingresa la descripción. Está bien. Y veamos qué restricciones arrastraban por aquí. Nos dio la altura, pero no nos dio los otros, y eso es difícil. Entonces hagámoslo 25 de arriba y cero de izquierda y derecha europea? Y esos son los márgenes, claro. Y vamos a darle una altura de bien, en realidad, no le des un alto. Ya tiene la altura separada ahí, Así que eso se ve bien. Y ahora necesitamos un botón. Entonces vamos a agregar un botón, y esto iría justo aquí, y lo que voy a hacer es solo quitarme el botón de palabra para hacer, digamos, hacer post y cambiaremos ese Funt a Helvetica nuevo, y vamos a cambiar el color de fondo a este bonito azul y otra vez que el azul es demasiado e 87 c tres y sí cambia el color del texto Toe White. Está bien, y ahí está el color blanco y hagámoslo un poco más largo. Eso está empezando a verse muy bien, ¿de acuerdo? Y así me queda bien. Um, fábrica. Simplemente ponlo así y vamos a seguir adelante y hacer clic en el menú pin. Dale un con y bombo y dirá 25 desde arriba. Eso me queda bien y contento y click. Agregue tres restricciones y luego en el menú de alineación, cámbielo a horizontalmente y contenedor. Ahora echemos un vistazo a nuestra vista previa y veamos cómo se va a ver. El biombo. Debería estar bien si hicimos todo bien. A mí me queda bastante bien. Yo creo que lo es. Al menos, um, sí, bueno, ya
sabes, hagamos el botón. ¿ Sabes qué? Hagamos el botón igual con las otras cosas. De acuerdo, así que sigamos adelante y despeguemos con esto a 25 y, ah, hagamos lo mismo que hacemos antes en la alineación izquierda y derecha. Simplemente haz esto. Y ahora veamos su adelanto. Eso me gusta más? ¿ Qué opinas? No importa lo que pienses porque ni siquiera estás aquí. Yo estoy aquí. Estás, como, en el futuro, y yo en el pasado. Entonces esto es lo que estamos haciendo y Ah, vale, Así que se ve bien. ¿ Tenemos todos los controles que necesitamos? Imagen. Pero en los campos hacen post. Creo que tenemos todos los controles. Por lo que es hora de empezar a escribir algo de abrigo. Adelante y abre aquí tu asistente de editor. Cambia de Prevue a automático y agrega post V C. Y lo que queremos hacer es dar clic a este botón aquí y controlar arrastrar aquí abajo. mí me gusta poner las acciones en el cambio de fondo en inacción, y vamos a llamar a esto make post, pero en prensado y ah, por aquí. Selecciona tu botón de cancelación y rata controlada. No hagas eso. Era el mando correcto. Haz clic en él y controla arrastra hacia abajo y cámbialo a acción. Y sigamos adelante y llamemos a este cancelado. Pero en prensa y pongamos estos puntos de venta aquí para hacer mi abrigo un poco más pequeño aquí para que podamos agregar estas cosas. Está bien. Y así vamos a seguir adelante. Y este, uh, señor consiguió el a la selección de anuncios, pero en, um necesita tener una acción también. Entonces agreguemos eso aquí. Vamos a cambiarlo a acción y llamarlo ad pick, botón presionado y bien. Y luego esta imagen aquí, necesitamos iniciar puntos de venta para poder cambiar la imagen. Entonces voy a llamar a esta imagen post y vamos a conseguir estos campos. Esto es ah, campo de
título. Se trata de Description Field. Um, me
está dando dolor. Parece un bicho de va. O hice algo tonto porque crear un espacio aquí. Probemos esto otra vez. Arrastrado hasta aquí y llamemos a este campo de descripción. Muy bien. Está bien, así que consiguió la imagen que Ok. Y, uh, creo lo que queremos, en realidad, déjame pensar en esto. Al hacer clic, agregas, pero en um, sí, no está tan mal. Eso me gusta. Entonces, ¿qué haremos aquí? Ve cómo este anuncio al hacer clic en este botón de selección de anuncios que queremos hacer es ocultar ese texto, hacer que se vaya. Mostró la imagen en su lugar, ya que no queremos que una parte superior de la imagen se vea un poco fea por aquí en el lado derecho, voy a cambiar cualquier objeto a ti te abotoné porque sabemos qué botón, verdad? Y lo que vamos a Dio es sólo decir remitente, el título set. Y, uh, vamos a poner el título para que el estado normal esté vacío. Todo lo que estamos diciendo es, Hey, una vez que hayas añadido un cuadro, vamos a vaciar este título. Y no quería ocultar el botón porque quería todavía tocar un poco, Pero quería parecer un escondido. Entonces si acabamos de poner el título en vacío, se ve bien como nuevo. Hay muchas formas diferentes de hacer las cosas en la programación Iowa S y M en general, así que creo que lo hemos conectado todo. Entonces vamos a entrar y cerrar a nuestro asistente de editor. Acude a tu puesto de anuncio V. C y vamos a escribir algún código. Voy a limpiar algunas cosas aquí arriba. Siempre limpio mi código. No soporto la ropa desordenada. Deberías estar haciendo lo mismo. Limpia tu código, no tienes que asegurarte de que las cosas sean consistentes, ya
sabes, deshazte de la basura, haz que se vea bien y OK, así que cuando agreguen el botón pick se presiona cuando los botones make post presionan Bueno, manejemos primero el fácil. Entonces cuando se presiona el botón de cancelar, todo lo que tienes que teclear es descartar el controlador de vista Animado, Sí, haciendo animado. Y cuando se completa, nos importa lo que pase. Hagámoslo solo. ¿ De acuerdo? Por lo que al presionar el botón de cancelar, debería llevarte de vuelta a la otra pantalla. Está bien, eso se ve bien. Uh,
entonces, ¿qué opinas? ¿ Crees que deberíamos probarlo ahora? Entonces cuando en realidad hacemos clic en la imagen pero el botón de la cámara, nos lleva a la nueva pantalla. Creo que deberíamos probarlo. Vamos a darle un tiro. ¿ De acuerdo? Y oye, mira eso. Apareció. Funcionó para ver si funciona el botón de cancelar. Botón Cancelar sí funciona. Mira eso. Y es animado. Se ve bonito y ah, envuelve realmente juntando. Y, uh, mira, este tipo de feo, es bonito y grande y cuadrado. decir, Esdecir,está bien, pero en nuestra estábamos yendo por ahí sólo por diversión. Para que sepas hacerlo. Entonces lo que vamos a dio es justo aquí a la vista. ¿ Cargó cargas prevalentes. Uh, vamos a decir post imagen guarida de punto, radio de
esquina. Vamos a establecer el radio de esquina de la capa de la imagen, lo que significa que los lados y lo vamos a establecer. Teoh es igual a post imagen punto marco que se dimensionó con dividido por solo pensar en ello. Te llevas el con de nuestra, um, nuestra imagen, que actualmente creo que es a 40. Entonces eso estaría mojado 20 Y así, uh, estamos diciendo, Hey, queremos que el radio de esquina sea 120 Tan pocos. Si haces el radio de cada lado 1 20 va a hacer un círculo perfecto porque lo estás cortando a la mitad. Por eso lo estás redondeando, um y eso va a funcionar. Pero una cosa más que necesitamos dio es ah llamado post imágenes que recortaban sobre iguales. cierto, Escierto,
cuando va a hacer es algo que está fuera de ese círculo, se va a cortar. Entonces no vemos si no lo hicimos, no veríamos el círculo. De acuerdo, sigamos adelante y corramos. Voy a mandar Plus son para ejecutarlo y ver si está haciendo lo que queríamos dio Vamos a darle click. Oye, mira eso. Se ve bonita mosca. A mí me gusta. Um, bien, muy bien. Muy bien. Está bien. Uh, storyboard
principal, aunque Nosotros en realidad no queremos mostrar esta imagen por defecto. Um, voy a apagar porque no deberíamos tener una imagen por defecto. Tiene sentido, ¿verdad? Correcto. Estaba subiendo asustado de la imagen en la vista de imagen. Ahí vamos. Volvamos a nuestro controlador de vista. Por lo que definitivamente hemos probado eso cuando la pantalla está funcionando. Y entonces lo que queremos hacer es cuando publiques, um, queremos que,
um, um, guarde en la matriz, y queremos que actualice esa matriz. Y, ah, nos estamos acercando mucho aquí. Entonces quiero hacer lo que quiero hacer es en realidad una cosa más que quiero. Quiero arreglar aquí nuestra pantalla principal y hacer que esto no sea tan feo y cuadrado. Hacer ese círculo también a. Y entonces tal vez lo que vamos a hacer es, um, vamos a llamar a este video hecho. Dije que iba a ser el último que conozca. Te engañé de nuevo. Entonces nos enfocamos en el siguiente solo en hacer que los datos sean correctos. Vamos a hacer que esto se vea. Hagamos que esto se vea bastante rápido. para luego pasar de ahí. Um entonces lo que Debilitar Dio es entrar en tu, um, post venta Peritus y envidia despierto de función punta. Simplemente haremos una especie de cosa similar. Publicar imagen que el radio de esquina de punto guarida es igual a la imagen de post. Ese marco que se dimensionó con dividido por dos y la imagen de post. Ese clip a límites equivale a verdadero. Arreglemos eso aquí arriba, ¿de acuerdo? Y se ve bastante bien. Tengo que decirlo yo mismo. Y para que lo sepas, hay otras cosas que podríamos haber hecho como podríamos tener, podríamos poner como Corner Radius equivale a 15 solo para ver qué hace. De acuerdo, todo tipo de cosas para que se vea, sin embargo queremos ver cómo es como un cuadrado, y es casi como un cuadrado. Ahora, eso es algo genial, ¿eh? Mm, Te metes alrededor de eso. Diviértete. Esa es una de las cosas geniales del IOS. Mucha diversión. Puedes tener un montón de cosas geniales que puedes hacer. De acuerdo, así que eso se ve muy bien. Chicos y chicas, sigamos adelante y llamemos a este video hecho, y, uh, tal vez terminemos en el siguiente o tal vez hagamos 10 más. ¿ Quién sabe? Nosotros sólo vamos a ver cómo se siente. ¿ Cómo suena eso? Entonces esperemos que los próximos el último Así que cosas realmente buenas aquí. Asegúrate de entender todo lo que estás haciendo. Vuelve atrás y mira videos si no apoyas. Entonces, uh, sigamos adelante y continuemos en el siguiente video.
67. App: parte 3 de MyHood: Hey, todos, Mark pricier desktops dot com Recuerda que una vez cuando dije que terminamos y luego
no terminamos y voy a hacer un video. Y así aquí estamos, haciendo otro video. Y, uh, creo que este es el último. Simplemente hay tantas cosas buenas que quiero enseñarte. Hay tanto que saber Hay tanto que Ah, tantos los cursos no cubren. Y si tuviera todo el tiempo del mundo, te lo daría. Pero solo debes saber que estás obteniendo todas las buenas gemas del conocimiento aquí. Entonces aquí es donde lo dejamos. Um, se ve bien a mayo círculos redondeados. Y ahora necesitamos hacer el post. Tenemos que conseguir, en realidad conseguir que la publicación de datos a la lista sea refrescante y también guardando en el propio teléfono. Entonces cuando cerramos la app, se carga de nuevo. Uh, así que sigamos adelante y hagamos eso ahora. Entonces en tu anuncio post VC aquí mismo. OK, tenemos este botón make post presionado, y entonces lo que queremos hacer es asegurarnos de que todos los campos tengan datos en ellos, ¿de acuerdo? Y, uh, ¿ pero no podemos hacer eso todavía? Porque, um sí, el texto. El campo de título. Podríamos revisar el campo descriptivo. Podríamos comprobar, pero el campo de imagen. No podemos comprobar eso aún porque ahora mismo, actualmente, um, no
podemos cargar imágenes. ¿ Por qué? Porque no hemos escrito el código para ello. Entonces hagámoslo ahora. Lo que necesitamos hacer eso es algo llamado Click. Se llama controlador de selección de imágenes U I. Por lo que debo guardar nuestro picker de imagen del tipo de ustedes. Te imagino. Yo controlador picker de imagen. OK, y ah, ahí vamos. Y entonces lo que vamos a dio en lo visto carga. Recuerda, estamos poniendo aquí el signo de exclamación implícitamente desenvuelto porque sabemos por un hecho que le vamos a poner un valor. No estamos haciendo esto porque esto va a estar diciendo:
Oye, Oye, puedo o no tener un valor en esto en algún momento en el tiempo. No, eso no es lo que quiero. Yo quiero garantizar un valor, estar ahí antes de que alguien se meta con él. Entonces eso es lo que voy a dar. Y entonces aquí mismo en el Isar inicial vamos a inicializar Tiene sentido, ¿
verdad? Entonces vamos a hacer eso ahora Diremos picker de imagen. Nuestro recolector de imágenes te iguala. Yo controlador picker de imagen y solo lo inicializo. No es gran cosa. Y una cosa que sí necesitamos hacer es implementar un protocolo delegado u otros protocolos. Delegado. Um so the app can No, Después de haber seleccionado una imagen como esa cuando eres el auto selector viene hasta interactuar con el álbum de fotos cosas así, le dirá nuestro abrigo cuando el usuario haya terminado de seleccionar la imagen. Y así se le llama. Te imagino. Yo selector de imágenes, Controlador, delegado. Es un bocado, y esto no funciona. Um, a menos que tengas yo delegado controlador de navegación también, también, porque usa un controlador de navegación Teoh trabajo con sus métodos de devolución de llamada. Sólo tienes que saber que para lo que estamos haciendo aquí para poder escuchar cuando un usuario escoge una imagen, tienes que implementar ambos protocolos aquí. Está bien, sólo toma mi palabra para ello. Um y OK, así que la idea es que
selecciones
la imagen, el botón, tira hacia arriba el selector de imágenes, seleccionas la imagen y luego guardamos imagen. Eso primero tendremos que hacer es establecer el delegado del picker de imagen dot delegado igual self . Recuerda, esto no funcionaría a menos que acabáramos de implementar esto. De lo que estamos diciendo Hey, picker de
imagen. Esta clase va a ser la que está escuchando las funciones de devolución de llamada. ¿ De acuerdo? Y así ahora lo que queremos dio es cuando se presiona el botón. Está bien. En bajitos de imagen picker. Y luego cuando las imágenes del recolector de imágenes seleccionadas, almacenamos esa imagen. Uh, aquí mismo en esta vista de imagen. Entonces hay una función a la que necesitamos llamar o que escuche, por lo menos un controlador selector de imágenes llamado sí terminó de recoger imagen, ¿de acuerdo? Y así vamos ah, usemos esta función aquí. Y lo que vamos a hacer es que sólo vamos a decir,
uh, uh, primero fuera picker de imagen dot dis mitt. Descartar. Entonces cuando el usuario selecciona una imagen, queremos ocultar el recolector de imágenes. ¿ Verdad? Entonces vamos a hacer eso aquí y luego, uh, vamos a decir post imagen igual a imagen. Por lo que este controlador selector, lo
vamos a conseguir aquí mismo. Nos devuelve una imagen. Entonces cuando el usuario realmente toca una imagen, simplemente nos da imagen. ¿ Qué tan guay es eso? Súper fácil. Entonces si estás confundido en absoluto, Ok, hemos implementado el delegado del controlador selector Así podemos escuchar cuando el usuario selecciona una imagen que va a llamar a esta función automáticamente. Y lo hace porque ponemos al delegado diciendo:
Oye, Oye, cuando estamos escuchando esta función y luego la descartamos y guardamos la imagen a nuestra imagen, tú y luego, um sí, entonces haré el truco ahora aquí en el botón make post press. Ahora queremos hacer un post, ¿verdad? Entonces podríamos hacer, digamos, si vamos um, título es igual al campo Título texto de punto dirá, Deja que el guión o el escritorio sea igual a escritorio, campo ese texto y entonces podemos decir, um, let I am G iguala post imagen dot image. Entonces todo lo que estoy haciendo aquí es que digo, antes de guardar nada o dejar que el usuario haga una publicación real, vamos a asegurarnos de que exista un título. Nosotros lo agarramos si no existe, este código va a resultar falso y no se va a ejecutar o en lo mismo con la descripción . Heyzer en un texto en la descripción. Si no
lo hay, va a ser falso y se ejecuta terminando con la imagen que el usuario no ha seleccionado la imagen. Estamos agarrando imagen de la imagen de ustedes de lo que el código no se va a ejecutar. Y por lo tanto no estamos publicando basura ni media cita ni cosas así. Y así la pregunta del día es, ahora que tenemos un título y una descripción y una imagen, ¿qué hacemos con él? ¿ Cómo agregamos a nuestra lista y cómo la guardamos? Entonces, básicamente, estamos en un punto de parada aquí porque no podemos realmente No podemos hacer nada con esto. Todavía no se configuraron causas para eso, Pero lo que me gustaría dio es, um, probar esta función al menos hasta ahora. A ver si el recolector de imágenes funciona y vamos a darle un tiro a eso. Entonces voy a construir y correr. Basta con hacer clic en el botón de reproducción aquí arriba. Ya viene. Ahí vamos. Está bien. Haga clic en el botón de la cámara y hagamos clic en el pick de anuncios. Por lo que no funcionó. Está bien. No funcionó. Ad pick, botón pulsando Es porque no lo presentamos. Entonces me alegro de que lo probáramos. Entonces aquí vamos. Diremos, presente vista, controlador, y solo vamos a presentar el picker de imagen que eres como Espera un minuto. Picadores de imagen Control de vista. Sí, es un controlador de vista y hace cosas diferentes que es la implementación de Apple de su propio recolector de imágenes. Entonces pero es un controlador de vista. Sí, animado cuando se complete. Um, no
nos importa ahora mismo. Intentemos ejecutar esto de nuevo y ver qué pasa. Vamos a llegar allí. Mantente fuerte. ¿ Está bien? Pick de anuncios. Oh, Dios
mío. ¿ Está funcionando? Parece que está funcionando. Oye. Oye. Tenemos que ir bastante guay. Entonces ahí está la imagen que guardó ahí. Eso se ve realmente genial. Um bien, así que avanzamos. A mí me gusta adónde vamos. Ahora hablemos de datos. Entonces lo primero son, um, nuestro control de vista. Entonces nuestra lista de publicaciones está aquí, y mi post de anuncio realmente no tiene una forma de acceder a ella, ¿
verdad? Es Es Es por aquí a su propia vista. Contralor. ¿ Cómo guardo un post y vuelvo allí? Y luego se piensa en OK,
bueno, bueno, tal vez este fichaje,
este post publicitario, tal vez lo guarde. Y cuando lo guardes, uh, éste de alguna manera lo cargará del disco o algo así. Pero cuanto más código tengamos que escribir en nuestra opinión. Controlador, um, las bases de código menos limpias porque cosas que están en relación con nuestro modelo de datos, como guardar y persistir y leer y escribir Eso debería suceder en nuestro modelo ahí. Pero realmente no tenemos una buena manera de hacerlo. Entonces lo que quiero presentarles ahora, um, es algo llamado singleton, y voy a llamar a este servicio. Entonces tienes controlador de vista modelo, Pero entonces tipo de servicios que, Sí, es una especie de parte de nuestro modelo, pero también es una especie de servicio. Eso sí lo cree. Voy a crear un nuevo grupo llamado Servicios. Está bien. Y aquí vamos. Vamos a desacreditar nuevo expediente. Sólo estoy haciendo clic derecho en él nuevo archivo. Y este sería un archivo rápido. Está bien. Y voy a llamar a esto, uh, servicio de
datos. De acuerdo, entonces tenemos un servicio de datos, y lo que queríamos hacer es ah, trabajar con nuestros datos. Por lo que se va a crear una clase aquí servicio de datos de clase. Está bien. Y así un singleton. De acuerdo, la idea de un singleton es que hay una instancia del mismo en la memoria, y es accesible globalmente. Um, todo el mundo está bien? Uh, ya
lo sabes. Ah, esto no es nuestro. Aquí. Esto no es accesible globalmente. Todo el mundo, ¿verdad? Porque agregar publicaciones no puede obtener acceso a ella. Cuando quizá podríamos pasarlo,
pasarlo de vuelta. Pero eso está realmente sucio. Por lo que necesitamos una forma de acceder globalmente a lo nuestro. Nuestra clase aquí por lo que podríamos decir estática, dejar instancia igual servicio de datos. De acuerdo, entonces hablemos de esto. Entonces, ¿lo que está diciendo Static es, oye, Onley alguna vez hizo una instancia de esto? Siempre, siempre. Siempre. Entonces, no importa cuántas veces las personas que intentan desorden del servicio de datos solo crean una instancia del mismo, y en cualquier momento que acceda a
ella, va a ser esa instancia específica y restaurarla en una variable. Podría llamar a esto cualquier cosa que pudiera llamar bla, o a veces a la gente le gusta llamarlo compartido. Está bien. Um, sí, soy coronel. Instancia porque es un instante en la instancia. Y Ah, así que eso es todo lo que tienes que hacer para tener un, um, Singleton globalmente accesible en veloz por cualquier otra clase que tenga en cuenta. Tienes que usar estos con cuidado. Ah, Singleton vive en la memoria y nunca se apaga y nunca muere. Una vez que lo estés usando. De acuerdo, entonces siempre es un recuerdo. Entonces mientras que otras cosas como posts y variables, cuando termines de usarlos, la recolección de basura los limpiará y se encargará de ello. Libre de tu memoria. No así aquí. Todos los singleton's que crees vivirán en la memoria durante toda la vida de la aplicación. Entonces no solo los usas en todas partes porque serás un cargando tu aplicación, um, para estar usando mucha memoria. Entonces, uh, usar con cuidado úsalos sabiamente. Es un buen uso aquí mismo. Entonces lo que queremos dio es hacer algunas cosas al respecto. Nuestro servicio de datos debería cargar publicaciones de nuestra base de datos, que es solo nuestro teléfono también debería poder guardarlas. Y además, hay un matiz con guardar datos en el disco con imágenes. No podemos almacenar imágenes en el mismo lugar que vamos a almacenar otros datos como títulos y descripciones, porque es que los dispositivos IOS tienen un cierto lugar para almacenar documentos y archivos para los que está destinado. Entonces tenemos que hacer algunas cosas aquí. Entonces lo que vamos a dio es ah, En primer lugar, vamos a aguantar. Vamos a albergar nuestros datos aquí. Entonces, privado, um, quiero guardar son puestos cargados. Entonces aquí es donde vamos a,
um, um, conseguir nuestra sala de correos. Pude haberlo llamado solo posts, pero quería indicar que estos posts se han cargado, y eso es sólo post. Ahí vamos. Entonces en tiempo de ejecución, va a ser solo matriz vacía, y lo inicializaremos más tarde, aunque, Um, por cierto, esto siempre es seguro. Para ver con una carrera. Es si no quieres tener acceso accidental de opcionales que Neil o salir de límites, cosas como esa simplemente inicializan tu maquinilla de afeitar en tiempo de ejecución, justo al principio a una derecha vacía. Um, Ok, entonces tenemos nuestro bar privado cargado poste. Se va creador getter ahora mismo. En lo que va de momento. Puestos cargados. Um, y, uh, vamos a llamar a este post, y sólo vamos a devolver los puestos cargados. Sólo buenas prácticas. Entonces vamos a Ah. De acuerdo, así que sigamos adelante y ah, justo fuera. Las funciones que vamos a necesitar así que función guardar mensajes. Aquí es cuando los guardamos a todos al, uh, al disco. Cuando digo disco más. El motivo por el que decimos eso porque, ya sabes, solíamos usar discos para ahorrar cosas divertidas, pero el disco duro del dispositivo IOS y vamos a funcionar para cargar post, Así que carga mensajes. Um, eso se ve bien. Además, vamos a otra función, um, para guardar una imagen. Y ahora cómo va a funcionar es que vamos a guardar una imagen en el disco, y nos va a dar una ruta de archivo. Y esa ruta de archivo es lo que necesitamos almacenar en nuestros datos. Entonces cuando estamos almacenando nuestro título en nuestra descripción, lugar de almacenar la imagen misma con todos los datos, solo
vamos a almacenar una cadena de ruta de imagen para poder agarrarla más adelante de la estructura
de archivos del dispositivo. Eso vamos a dio es ah, vamos a hacer otra función llamada guardar imagen y crear camino. Y esto va a tomar la imagen misma. Entonces la imagen U que tenemos, ¿no? Y, ah, si te das cuenta aquí en realidad no está funcionando porque no te hemos importado me gusta así que no
puede funcionar contigo. ¿ Por qué imágenes? Porque no sabe lo que son. Si pongo esto aquí mismo, ahora sabe
lo que una u me imagina y puede trabajar con ello. Está bien. Y, um entonces eso es guardar imágenes. Pero, ¿qué pasa con recuperar imágenes? Por lo que función imagen cuatro camino. Y, uh, esto devolverá algo, pero ahora mismo, lo voy a dejar sin un valor de retorno. Entonces no me grita con un heredero. De acuerdo, así podemos, um, ver para que podamos guardar los mensajes. Podemos cargar los puestos. Podemos guardar una imagen y crear un camino para luego debilitar conseguir imagen por un camino. Ah, uno más. ¿ Y cuándo queremos agregar un nuevo post desde, como, el anuncio post VC? Entonces, ¿qué es Debilitar Dio eso también? Agrega publicaciones y se necesita un post de tipo post. Y OK, um, sí, Y así siempre que lo que es realmente genial es que puedes tipo de andamio tus funciones como esta y empezar a armar las cosas y luego escribir la lógica para ello más tarde. Entonces, por ejemplo, agregue post cada vez que agreguemos un post, sé que necesitamos elevarlo a nuestro post,
correcto, correcto, Así que podemos decir posts cargados punto anexar y, uh, pasando el puesto si quiere obedecer. Y así lo haremos. Y luego, claro, cada vez que añadas un post, queremos guardar toda la lista de post, ¿
verdad? Por lo que está en el disco para que podamos llamar guardar mensajes. Y luego después de guardar mensajes, queremos un post bajo. ¿ Verdad? Porque cada vez que cargamos un post, queremos que la lista se actualice y muestre ese nuevo post que acabamos de cargar. Tiene sentido. Y hasta ahora, estas funciones no estaban haciendo nada realmente. Pero al menos estamos poniendo algunas cosas en su lugar. Um, y eso es lo importante. Entonces, ¿ahora qué es Debilitar Dio? Ah, claro, Toda la lógica. Teoh, Sólo guarda esto aquí y no es tan complejo. Uh, algunas cosas que tienes que saber hacer. Pero, um, entonces lo que queremos hacer primero, Um, bueno, hablemos de guardar publicaciones, verdad, porque hemos agregado el post a la matriz, pero queremos guardar toda una serie de publicaciones. ¿ Y cómo se hace eso? Y por supuesto, en Iowa, múltiples formas de
Esther de guardar datos hoy estaremos usando s por defecto de usuario y estaremos usando el directorio de documentos para imágenes. De las otras formas son otros métodos que podrías usar son el uso de datos básicos que publican cosas en un servidor que podrías usar parse como firebase de backend. Podrías tener tu propio servidor. Um, podrías Ah, Localmente en el dispositivo, puedes tener una base de datos como SQL y en realidad ejecutar comandos de secuela para guardar dos bases de datos muchas formas diferentes de hacer las cosas. Entonces Ok, entonces hablemos de guardar mensajes. Y lo que tenemos que hacer para guardar un post es que necesitamos archivar. Ir a hacer se llama archivar datos. Convierte a como bytes y bits en él lo almacena en tu dispositivo, así que guarda publicaciones. Lo que vamos a hacer es ah, dejan publicar datos que vamos a dar vuelta vamos a hacer es que vamos a dar vuelta. Nuestros objetos son puestos cargados en datos. Ya sabes, esos bits y bytes, OK. Y, uh, va a ser n s archivo keyed. Er los datos de archivo con objeto raíz cargó un posts cargados. De acuerdo, entonces estamos tomando nuestra matriz, y sólo lo estamos convirtiendo en datos. De acuerdo, eso es todo lo que está pasando. Podría ser un montón de números. No va a ser gobbledygook. Está bien. Y, uh, entonces lo que vamos a dio es que vamos a decir n s usuario por defecto dot estándar usuario por defecto dot set object y, ah, va a ser post data posts data for key y dirán, um, ¿cómo queremos llamar a esto? Creo que solo post está probablemente bien. Entonces lo que estamos haciendo es tomar toda esa matriz de publicaciones y lo estamos convirtiendo en datos que se pueden almacenar en el disco. Y luego, uh, estamos agarrando los valores predeterminados de usuario estándar. Los valores predeterminados del usuario son solo, ah mecanismo de almacenamiento en IOS estaban agarrando el estándar, el principal. Y estamos poniendo un objeto aquí mismo y dándole una llave. Algo así como un diccionario, ¿
o tienes una clave en el valor? Por lo que solo estamos configurando un objeto para una clave que podemos recuperar en un momento posterior en el tiempo. Y este post lo siento siempre irá al mismo lugar. Lo que vamos a hacer es reemplazar que no vamos a escribir donde cada vez que sólo
vamos a querer decir que sólo vamos a reemplazar la matriz existente por lo que tenemos aquí mismo , hacer que nuestra vida sea realmente fácil. De acuerdo, así que eso se ve bien. Um, así que sigamos adelante y carguemos los postes. Entonces si digo let, um publica datos, va a b n s los valores predeterminados del usuario dot Um, valores predeterminados del usuario
estándar punto objeto para clave. Y esto sólo va a ser posts igual que antes como datos N s. De acuerdo, ¿eso tiene sentido? Entonces estamos haciendo una especie de cosa opuesta aquí, ¿verdad? Nos vamos a ir a Nuestra cordura está lista. La gente decía:
Hey, Hey, queremos el objeto para esta llave. Y si te diste cuenta, nosotros, um estamos duplicando este código aquí mismo, así que pongamos eso en una constante. Entonces solo voy a decir, vamos a decir que los puestos clave son iguales a los posts. Es mejor tenerlo todo en un solo lugar. De esa manera, si tuviéramos que cambiarlo, podemos hacerlo en un solo lugar sobre esto, sacar esto y ponerlo aquí mismo. Y aquí mismo. A mí me gusta. OK, entonces nos está gritando, sin embargo. Veamos qué nos está gritando. Um oh, guarden anfitriones. Dejar que las declaraciones no se pueden calcular propiedad. Um, publica datos. Mm. Yo Construir esto. Algo parece apagado. Inicialización de puestos. Datos. Ah, me olvidó eso si no muy útil. El código X ni siquiera tenía sentido. OK, entonces ahí vamos. Estamos agarrando el objeto para esa llave. Y si existe, como si lo deletreamos mal o si hubo corrupción y no vamos a conseguir nada aquí, Así que es muy importante que hagas el Si lo dejamos Ok, Entonces si lo recuperamos, Ok luego vamos al siguiente paso, tenemos que convertir nuestros datos de nuevo en una matriz de publicaciones para que digamos si dejamos publicaciones, array equivale a n Eschede a narc. Ivor. De acuerdo, el objeto de archivo de la ONU con datos, y esto va a ser publica datos como una publicación una violación. Entonces, echemos un vistazo a este paso aquí. Entonces lo primero que hicimos fue agarrar los datos pudieron porque almacenamos los datos aquí. Lo convertimos y empezamos aquí. Pero ahora estamos agarrando los datos, y ahora estamos diciendo,
Hey, Hey, toma estos datos y conviértalos de nuevo en un objeto que realmente podamos leer. De acuerdo, entonces solo estamos revirtiendo, sabes, revirtiendo lo que ya hicimos. Y si esto funcionó, si llegamos aquí, no sólo digas posts cargados es igual a posts array. Entonces si esto funciona aquí acabamos de establecer son cargados poste. Entonces lo que sea. Acabamos de regresar. Y, um sí, así que nuestro post acaba de cargarse. No es gran cosa. NBD no es gran cosa. Um OK, así que hemos añadido un post. Hemos guardado el post. Hemos cargado un poste. Um, eso se ve realmente genial. Lo que quiero hacer es, antes de que te metas con las imágenes es quiero probar y asegurarme de que nuestros valores predeterminados de usuario estén funcionando solo para los títulos y descripciones. De acuerdo, Pero como que sí tenemos un problema. Entonces digamos, por aquí hacemos un post, ¿de acuerdo? Y luego ahorra, y luego cargamos los postes. ¿ Cómo controla nuestra vista o incluso sabe que algo cambia? Realmente no lo hace. Realmente no lo hace, um así que necesitamos hacer algunos conectándose. Hay montones de Hay muchas formas diferentes de hacer esto, en realidad, um y lo vamos a hacer de la manera más fácil. Um, él es así se me ocurre cuál es solo usar notificaciones. Pero lo primero que tenemos que hacer es, um es hacer es hacer el post en sí. Entonces volvamos a agregar post v C y justo aquí donde hicimos esto. Comprueba para asegurarte de que en realidad haya datos ahí. Adelante. Ahora crea nuestros objetos post. Voy a guardar nuestro post igual post y el camino de la imagen. Todavía nos lo vamos a quedar, Neil, sólo por ahora. Um, y lo que voy a dio es que le voy a dar un título aquí, y vamos a decir que esto es título. Vamos, vamos. Y éste va a ser un escritorio. OK, entonces ahí vamos. Ahí tenemos nuestro nuevo objeto. Se ve bien. Se ve bien. Um, está bien. Y luego Ah, Ahora lo que podemos hacer es porque un servicio de datos punto instancia add post pasamos en el post. Vamos, código
X matándome. Ah, sí. Entonces mira lo que hemos hecho aquí. Hizo cambios a un let Así que mira lo que hemos hecho aquí. Hemos estado aquí dentro. Tenemos todos los datos que necesitamos a partir de ahora. Lo que estamos haciendo es crear un nuevo post object con el título y la descripción. Ya sabes, no
estoy usando la imagen en este momento. Uh, es porque, uh, um, no
estamos probando eso todavía, y entonces estamos agregando el post al post bien. Y así eso nos va a llevar todo el camino hasta aquí a nuestro servicio de datos. Agrega las publicaciones, así como a la matriz. Y luego decimos esa matriz, como se podía ver aquí mismo y luego recargamos. Um, recargamos esa matriz con los nuevos datos solo para asegurarnos de que esté completamente hundido. Y en cualquier momento que cargara ese cartel, lo que queremos hacer es notificar a cualquiera que le importe que el cartel cargara. Entonces voy a decir N s centro de notificación punto predeterminado centrado arriba post notificación. Y, uh, vamos a hacer una nueva notificación. Es una notificación s, y lo vamos a dar y nombre. Esto no se iba a llamar, um, posts cargados. Y los objetos? Neil, no lo
hacemos. No necesitamos darle ningún objeto. De acuerdo, entonces todo lo que estamos haciendo es decir cuando el Post se haya cargado, sigamos adelante y llamemos a nuestro centro de notificaciones predeterminado. Está usando esta sintaxis. No entiendes cómo funciona completamente. Um, solo
tienes que saber que así es como obtienes tu centro predeterminado y tu publicación de nuevas notificaciones. Cualquiera que lo esté escuchando puede oírlos está dándole un nombre creando una nueva notificación con el nombre cada vez que se carguen publicaciones. Y entonces lo que vamos a hacer se acaba en nuestra opinión, Contralor. De acuerdo, vamos a deshacernos de toda esta seguridad de datos de prueba. Todos estos datos de prueba. Está bien. Lo que haremos es justo aquí. Dirá N s centro de notificación punto predeterminado centro dot Añadir observador diferente esta vez. Y los observadores se auto, es esta clase. Oye, esta clase está escuchando al selector. ¿ Es la función a la que querías llamar cuando ocurre ese evento? Y así lo dirá éste en los postes cargados. Y yo pondría esto el colon ahí porque eso significa que hay un parámetro porque nos
va a enviar un objeto de notificación. Tenemos que tener eso ahí. Y luego quiere el nombre de la notificación, que es exactamente el mismo nombre que el anterior a un objeto sigue siendo Neil. Por lo que de nuevo, hemos llamado al centro por defecto. Solo estamos diciendo,
Hey, Hey, queremos escuchar esta notificación cada vez que carguen carteles,
um, um, cada vez que carguen carteles llamados disfunción. Y aún no he creado un, Así que si voy aquí abajo, no
puedo crear esa función y se necesita un parámetro Simplemente llamaremos a esto cualquier objeto. Nos va a dar un objeto. Tenemos que ponerlo ahí dentro. Y entonces todo lo que necesito para dio es ah decir Bueno, en realidad, no
lo es. Todo lo que necesito hacer es decir table view dot recargar datos, Y entonces en lugar de tener nuestras publicaciones aquí, deshazte de esto. Todo lo que necesitamos dio es un cambio que de donde viene la fecha por lo que podemos decir en su lugar, um, servicio de
datos que instancia punto um, cargó posts ahí está justo ahí. Y así sólo vamos a hacer eso en todos los lugares donde lo necesitamos en lugar de acceder a él o almacenarlo aquí y un lugar más. Yo lo creo aquí mismo. Entonces acabo de agarrar todo lo que estamos haciendo esto en lugar de tener el post aquí solo
lo estaban agarrando de nuestro singleton nuestro servicio justo aquí. Y aquí está la sintaxis que puedes ver es en lugar de, ah, ya
sabes, hacer paréntesis o cosas como esas eran simplemente no es instancia de punto de servicio de datos. De acuerdo, cuando llames a la cosa de instancia de punto que creamos y luego puedes llamar a la propiedad. Y, uh entonces ahora nuestras vistas de mesa siendo alimentadas de los datos ahí dentro. Y cada vez que agregamos un post
se recarga, va a llamar a esta función porque está escuchando la notificación y va a recargar los datos. Tengo mucha curiosidad si va a funcionar. Entonces vamos a darle una oportunidad. Puede que muy bien haya conseguido algo porque hemos estado pasando un rato aquí . Entonces aquí vamos. Vamos, vamos, vamos. Y OK, tan pantalla en blanco. Eso es comprensible. Todavía no tenemos nada. Uh, aún no
estamos trabajando con las fotos, pero sí necesito agregar una imagen porque nuestro código lo requiere porque por eso diseñamos nuestro título costero. Um, me gustan las bonitas flores. Las flores me enferman. No sé por qué me estoy volviendo loca. ¿ Por qué no? No me des mucho para trabajar con flores en los simuladores. ¿ De acuerdo? Entonces, veamos si funciona. De acuerdo, Así que sí tenemos un accidente, ¿de acuerdo? Y a ver qué dice. Por lo que sí llegó al puesto seguro, lo cual es genial. Dice,
uh, uh, post no implementa método firma cuatro selector y objeto de reemplazo para Kaede archivo er, por lo que eso puede no significar mucho para usted. ¿ Al igual que qué? Pero hay algo realmente importante que necesitamos dio. Y así siempre que estés trabajando con, um, datos de
fecha como guardarlos y cargarlos, tienes que acatar la codificación N s. Ya sabes cómo dijo que estamos tomando estos datos lo estaban convirtiendo en bits y bytes. Bueno, uh, tratamos de hacerlo, pero el problema es que nuestros posts, no
se ajustan a ningún tipo de recubrimiento, por lo que necesitamos implementar eso. Entonces si vas a tu modelo en tus publicaciones,
no veloz, no veloz, ¿de acuerdo? Hay algunas cosas que necesitamos dar. El primero que necesitamos dio es que necesitamos heredar de alguna clase que sí heredamos de una clase aquí, y el aula del que sí heredó se llama NS Object. Esto viene del Objetivo C y, uh, toda
la idea de archivar en bits y bytes y cosas así. Eso es todo usando el código C objetivo detrás de bambalinas y esas cosas. Ha estado ahí para siempre, Así que necesitamos que herede del objeto Ennis, porque tiene algunas cosas de codificación de código muy importantes que necesitamos usar. Y, um entonces necesitamos implementar también la codificación n s. Uh, protocolo. Está bien. Y, ah, esto nos ayudará a codificar son pensarlo así. Sólo recuerda, aunque no lo entiendas, solo recuerda si quieres archivar y unarchivar cosas, vale, Tienes que usar tu clase que tu archivado lo necesita a las necesidades a implementar. Y es protocolo de codificación y necesita poco heroico de en su objeto. Sólo tienes que saber que eso es lo que tienes que hacer. Si estás intentando usar los valores predeterminados de usuario de N s K, no es gran cosa. No es tan complejo. Lo que vamos a dio es ah, vamos a crear algunas funciones aquí que van a hacer lo que necesitamos dio tan requerido conveniencia en él. Y éste es el que queremos aquí mismo. Codificar un decodificador. Es posible que hayas visto esto algunas veces antes. Ah, muchas de las vistas de mesa y cosas así usan esto. Um, eso es lo que vamos a hacer. Aquí es primero de descuento. Necesitamos crear primero necesitamos crear una función er de inicialización regular, y quiere ser anulada. Entonces vamos a anular aquí. Ahí vamos. Esto es sólo esto es sólo una inicialización básica er tenemos nuestra propia Aquí está bien a Eso está bien . Y luego, um, vamos a llamar a la inicialización básica er solo se requiere es parte de ello. Tienes que inicializarte cuando estás decodificando aquí y luego vamos a dio es solo un auto punto um ruta de imagen igual a un decodificador punto objeto para clave. Y ah, eso es todo lo que estamos haciendo. Está bien, es ah, no
es tan malo. Entonces solo piensa en lo que estamos haciendo estás agarrando el camino de la imagen. Aquí es cuando lo estamos cargando, ¿ acuerdo? Y estamos diciendo,
Oye, um, um, cuando alguien te está archivando, lo cual va a pasar en nuestro singleton cuando alguien te está archivando, todo lo que tienes que hacer es agarrarlo desde aquí. Eso es todo diciendo, Oye, esto lo decodifica primero. Entonces básicamente lo que estoy diciendo es en tu servicio aquí cuando se llama cargo post cuando esto ,
uh, uh, cuando estos chicos llamaron justo aquí, ¿ves eso? Y este tipo, especialmente este de aquí, objeto de archivo de la
ONU con datos. Está tratando de averiguar cómo hacer eso. Y no sabe cómo hacer eso a menos que le digas cómo hacerlo aquí mismo. De acuerdo, entonces esos nombres clave que estás poniendo aquí van a ser llamados justo cuando eso suceda. Súper importante. ¿ De acuerdo? Y aquí nos está gritando. Veamos de qué nos trata. Um, vale, eso ¿Por qué nos está gritando? ¿ Auto? Ese camino de imagen. De acuerdo, llegaremos a eso en solo un segundo. Es ser bastante educado. Um, OK, así que vamos a hacer los otros aquí auto punto Título de subrayado es igual a un decodificador punto objeto
decodificador para clave. Y esto sólo iba a llamarse título como una cadena y luego auto punto subrayado
Descripción de la publicación es igual a un decodificador punto objeto decodificador para clave. Y ésta va a ser descripción. Está bien, como una cuerda. Y ah, eso se ve bien. Ahí. ¿ Por qué me grita? ¿ Aunque? No veo por qué valor de título solo sueño no se desenvuelve. Realmente necesitamos desenvolverlo. Um, supongo que dio que solo desenvolveremos estos en su lugar. Uh, bueno, sí, vamos a deshacernos de estos aires muy rápido aquí. Um, vamos. Los está buscando en estos tipos de aquí. De acuerdo, tengo una mejor idea. Sólo apaciguemos a los dioses aquí de x coat y pongamos puntos de exclamación en estos aquí
arriba, y eso debería desaparecer. Ahí vas. Se iba a ir sólo porque, um estamos diciendo, hey, estos aire, estos aire implícitamente desenvueltos y, uh um no lo estamos forzando. ¿ Tienes algún valor? Tendrá un valor, pero de todos modos sólo nos está gritando. Uh, todos modos, arreglo
rápido ahí. Y así una cosa más que tenemos que hacer es ahora tener una función para codificar. Siempre que esté ahorrando, va a llamar a esta función, y nunca vas a llamar a estas funciones tú mismo. Siempre que codifices los datos, lo va a hacer de forma gratuita automáticamente. Lo que realmente tienes Teoh tiene para implementar las funciones, ¿de acuerdo? Y así no es realmente diferente. Piensa en esto.
68. Introducción a la aplicación: Hey, una marca pricier muertes oates dot com. Vamos a hablar de la aplicación que vamos a construir hoy, y es muy similar a mi app de capó, excepto que en vez de los devotos de usuario, vamos a estar usando datos de corte, lo cual es un muy fuerte, uh, para poder almacenar datos en el dispositivo. Y por supuesto, este es el gran papi de todos los data stores y este es IOS es
sistema de almacenamiento de datos recomendado . Con eso dicho, vamos a repasar los simples fundamentos de la misma. No vamos a entrar en las cosas pesadas, complejas Podrías pasar 152 103 100 horas en datos judiciales y aún no comprensible. Es muy que podría ir muy profundo y muy poderoso, pero también puede ser sencillo de. Entonces vamos a hablar de eso y de la app que vamos a construir. Se llama Recetas con una Z, y básicamente se ve genial muy bien, estilos y todo y contra componentes
simples, simples y solares al otro. Mi campana en eso construimos, excepto que estamos haciendo recetas y vas a agregar ingredientes y cosas como esa y
datos de corte , ya
sabes, nunca
he tenido una entrevista de trabajo donde me han preguntado. Ya sabes hacer algo en los datos de la corte. Simplemente quieren saber si puedes aprender cosas. Y así esta es una gran intro en el mundo de los datos judiciales. Vas a querer seguir practicándolo y usándolo en tus aplicaciones y mejorando en ello. Pero la mayoría de los trabajos de programación de iPhone junior no te pedirán que seas un experto en core data. Y si sí usan como parte de su aplicación en, quieren darte un trabajo o hablar de trabajo, solo hacer alguna investigación al respecto, construye un masivo el reclamo de esto más y mostrar tu habilidad para aprender. Entonces sigamos adelante y empecemos. Va a ser divertido, y vas a aprender.
69. App: Recipez parte 1 (datos básicos): a mark price pendientes dot com y sigamos adelante y empecemos con nuestras recetas mitad. Así que adelante y ve a tu código ex y crea un nuevo proyecto, como lo hemos hecho en el pasado. Archivo Nuevo proyecto y aplicación de una sola vista está bien. click siguiente bueno y llama a esta receta's con una Z o lo que quieras. Muy importante, sin embargo. Asegúrese de que el uso de los datos básicos esté seleccionado aquí mismo. Muy bien, muy, muy importante. De acuerdo, así que haz click siguiente y, uh, crea. Entonces aquí está en. Entonces, para recapitular, los datos
judiciales son un sistema construido para Iowa y permite al usuario, que es tu desarrollador, tener una interfaz sencilla en interactuar con bases de datos. Entonces en tiempos pasados, tal vez antes de los datos básicos y yo estaba desarrollando APS antes de entonces, ya
sabes, usas la luz SQL y tienes que ejecutar consultas, um, tu cuenta en el código. Fue muy doloroso, y, uh no fue una gran experiencia. Y así crearon un sistema impresionante que extrae mucho de ese trabajo en tierra, y hace que tu vida sea mucho más fácil trabajando con entidades y relaciones y cosas así de una manera muy visual,
y lo que es interesante eres tú todavía puede usar una base de datos de luz SQL debajo. Pero los datos básicos harán toda la conversación con ella, y hará toda la conversión y todas esas cosas buenas. Es muy potente, muy rápido, y las aplicaciones más complejas por ahí usan coordinativa. Entonces, si Absar almacena datos en el dispositivo, probablemente
esté usando datos básicos. Con eso dicho,
muchas, muchas, muchas aplicaciones en estos días van 100% basadas en Internet Web. De hecho, debido a que Internet se está volviendo tan prevalente, algunas personas incluso están eliminando por completo el almacenamiento local de datos, excepto cosas como preferencias y cosas así, y moviéndose completamente del pie, Streaming y hundimiento basado en la web. En tanto que si no puedes
conectarte a la Web, ni siquiera puedes usar realmente tu app. Y eso se está convirtiendo en un estándar nok. En su mayoría tendrán conexiones en estos días, pero también hay frameworks que tienen motores de mike sink como un parse o una base de fuego, lo que te permite Teoh almacenar cosas fuera de línea y hace todo el trabajo por ti. Eso Quizás quieras usar base de fuego. Si te estás conectando para disculparme, quizá
quieras usar los datos básicos si te estás conectando a la descarga de Internet excepto Pero cuando te desconectas, um, aún quieres poder usar la app y cosas seguras para enviar cosas volver a Internet más tarde? Entonces hablemos hoy de los datos básicos. Entrémonos y vayamos y no es tan difícil. Es un poquito esto. En su forma más simple, es un poco más fácil que los valores predeterminados del usuario de Ennis, creo que sí. Adelante y empecemos con nuestro storyboard. Vamos a conseguir nuestro Vamos a juntar nuestro acto aquí. Y así lo que queremos es mostrar sólo una lista de recetas. Tendrá una barra de título. Nada demasiado loco. Entonces hagámoslo ahora. Entonces vamos a poner un ahora Sólo vamos a poner una barra de navegación. Uh, hecho, vamos a hacer clic en su controlador de vista aquí e ir al editor incrustar en controlador de navegación . OK, y ahí está nuestro controlador de navegación. Haga clic en la barra de navegación justo aquí en el lado izquierdo y hagamos clic en los atributos Inspector. Y cambiemos el barman aquí a naranja bonita. Vamos a cargarla, y eso está bien. De acuerdo, hay un controlador de navegación escucha nuestro controlador de vista así sucesivamente aquí, escribe en tabla y pon una vista de tabla. Vamos a hacer que cubra todo así. No es gran cosa. Y sí queremos ir a los bordes esta vez porque vamos a estar Queremos que nuestras
imágenes de recetas vayan al borde de la pantalla, lo cual está bien. Y así apaga, limita los márgenes. 000 y cero. Bam! A mí me gusta. Está bien. Y así se ve bien. Y sigamos adelante y,
uh, uh, en una mesa de ustedes vendemos aquí mismo. Y solo voy a hacer mi vista de tabla, tener un color de fondo temporal para poder ver qué está pasando. Tan solo hazlo rosa para que pueda ver cómo se ve realmente mi celular. Y así es como las vistas de la mesa apenas ocupando mucho espacio allí. De acuerdo,
Entonces, ¿qué es lo que queremos que se vea la celda? Bueno, no
es tan grande de un trato. Va a ser una imagen de fondo. Entonces tu vista de imagen y creo que es un poco demasiado grande en este momento. Voy a poner un rojo por ahí de lado a lado. A mí me gusta. Vamos a dar clic a la venta aquí y traer eso en que quieres ir a los bordes y así después haz clic en tu imagen y vamos a Thio, ¡despegue
Thio! Restringir los márgenes y hacer 000 y cero. Está bien, y ah, eso está bien. Ahora sólo necesitamos una etiqueta, uh, para poner en el medio. Entonces hagámoslo ahora, y voy a hacer que vuelva atrás. Hagamos que pase todo el camino a través de la pantalla. Aquí vamos. Vamos a centrarlo. Voy a cambiar la tipografía personalizada, y eso está bien. Y vamos a dio negrita cursiva. Está bien, hagámoslo blanco. Y quiero una sombra en este. Entonces pongamos una sombra. Usemos ah, color de texto
oscuro para la sombra. No me gusta la dirección en la que va. Vamos en la vertical. Cambiemos solo dedo del pie uno y la horizontal. Cambiemos ese dedo del pie. ¿ De acuerdo? Y hagamos que el tamaño de la fuente sea más grande. Aparecer así Así que esto podría decir, um, mamás. Hamburguesa feliz. Aquí vamos. Vamos a seguir adelante y fijarlo a la izquierda. Píndelo a la derecha. Hagamos, um, que tenga, ah, ancho y altura que sea fijo. Y alinémoslo horizontalmente en el contenedor y, uh, verticalmente en el contenedor y lo dije A dentro de esto. Si no me quité eso, no
necesitamos una contigo Qué miedo de la con. Nosotros sólo queremos la altura. Estamos colocando el lado izquierdo y el derecho. Entonces me acabo de quitar el con y ahí está nuestra vista de imagen. Se ve bien. De acuerdo, sigamos adelante y vayamos a nuestra vista de mesa aquí. Y, uh, no
me gusta que sea rosa. Por supuesto. Vamos ah, um, que no sea rosa sería genial. Ahí vamos. Que fondo se volvió que de rosa de nuevo a default. Está bien, ahí está nuestra celda de vista de mesa luciendo bien. De acuerdo, estamos avanzando. Vamos adelante y un montón en el lado derecho aquí, tecleando botón. Y vamos a hacer un bar. Pero un elemento Lo vamos a arrastrar a nuestra barra de navegación en el lado derecho en lugar de elemento cambia el plus nuevo. Y cambiemos la carpa por una blanca. Ahí vamos. Parece que se puso gris. No lo hizo, ahí
vamos. Entonces ahí está nuestro botón. Se ve bien, bordeado. Bien. El plan era llano. Do ordenado. Realmente no cambia nada. De acuerdo, así que eso se ve genial. Tenemos un nuevo botón que cargará una pantalla diferente. Está bien. De hecho, probablemente
podríamos simplemente crear esa pantalla ahora mismo. Um, no
veo ninguna razón por la que no podamos. Entonces hagámoslo ahora. Vamos,
uh, uh, Dragon, Nuevo controlador de vista aquí. Aquí vamos. Y lo que este va a hacer es que se va a cargar cuando presionamos el nuevo botón. Por lo que haces clic en tu nuevo botón y el control arrastra sobre, debilita. Sólo, eh, di show, lo cual está bien. Está bien. mí me parece bien. Ponemos algunos campos de texto aquí. Yo creo que sí. Campo de texto. OK, no hay nada. Ah, nada. Ultra bonita. Ya sabes, solo algún campo de texto y marcador de posición. título de la receta de Texas se ve bien. Hagamos otra. Yo sólo mando C comando V encendido. Entonces vamos a llamar a esta receta ingredientes. Está bien. Y luego una receta más pasos. Ahí vamos. Pasos de la receta y necesitamos una imagen. Entonces es genial una imagen aquí. Hagámoslo un cuadrado. Haga clic en la regla. Vamos a cambiar a decir 1 75 por 1 75 1 75 Se ve bien. De acuerdo, así que eso está bien. Ninguno de estos aire inmovilizado aún. Um, así que vamos a hacer un poco de anclaje aquí, Así que vamos a fijar la receta Título 32 desde la parte superior. Eso está bien. Cero de izquierda, cero de derecha. No necesito preocuparme por las alturas porque se mantienen de la misma altura en estos
campos de texto , así que lo forzará de esa manera. Entonces eso me queda bien. Sí. Y, uh, este de aquí desde arriba desde la izquierda y desde la derecha. Y eso son 14 de arriba. Y éste. Mantengámoslo igual. Dirá 14 desde arriba y cero desde la izquierda. Cero de la derecha. buen aspecto, esta vista de imagen dirá 43 desde arriba. Y vamos a seguir adelante y darle un ancho y una altura fijada aquí. Y vamos a hacer clic en el menú de alineación y ponerlo horizontalmente en el contenedor. Está bien, mira. Y bueno. Y ahora necesitamos un pero aquí Teoh para ir encima de la imagen de ustedes para agregar una imagen. Um, o en realidad también podríamos hacer un, um, como un gesto de tap. Pero vamos a hacer un botón esta vez, así que digo botón, ponlo justo sobre la parte superior. Que sea igual de grande simplemente es grande, ¿de acuerdo? Y vamos a cambiar el texto para decir, Agregar imagen o agregar imagen. Ahí vamos y lo cambiaremos a Blanco. Está bien. De acuerdo, agrega imagen Eso se ve bien. Seleccionemos aquí nuestro botón y su imagen. Tú. Adelante y haga clic en la alineación y hagamos, um, centros
horizontales y centros verticales. Esto alineará nuestro botón con nuestra imagen y luego en el menú Penn, con ambos seleccionados hacen iguales con e iguales alturas. Y esto hará que el botón tenga la misma altura y con que la imagen. Y necesitamos un botón más justo en la parte inferior aquí, y éste va a decir, Crear botón de receta. En realidad presionas cuando quieres crear la receta y creer que todo igual en ella se acaba de alinear aquí era una línea horizontalmente en contenedor. Diré 39 desde arriba, y también lo haremos dentro de una altura. Está bien, Él no va a ninguna parte. Está bien, eso se ve bien. De acuerdo, así que sigamos adelante y miremos. Entonces acabo de sacar las vistas del camino ahí. Volvamos a nuestro controlador de vista aquí. Y así conseguimos una vista de tabla que necesitamos cuidar de su bien o código en nuestro
controlador de vista aquí. Y, uh, vamos a hacer que nuestra chatarra vista de mesa vaya como lo hemos hecho en el pasado. Entonces llamemos a esto. Ah, tú te tabla ver fuente de datos en nuevo I tabla vista delegado. De acuerdo, Aquellos de los protocolos que necesitamos implementar para usar nuestra vista de tabla, y necesitamos crear una salida de hiedra para nuestra vista de tabla. Hasta este punto, aún no
hemos hecho nada de datos básicos. Por supuesto, tenemos que sacar esto del camino. Tan débil var y, uh, vista de
tabla de tipo usted I tabla vista. Aguanta, tú yo mesa vista. Ahí vamos. Está bien. No sé por qué esto es destacado porque ni siquiera hemos vuelto a conectar. Pero eso está bien. Estás a esta basura de aquí. Muy bien, Así que para vistas de tabla, sabemos que necesitamos implementar ah, celda de vista de
tabla para ruta de índice Rohit. Y por ahora solo podemos regresar au white table view cell solo para deshacernos del aire. Y también sabemos que necesitamos un, uh qué es un número de secciones y vista de tabla. Entonces vamos a devolver una sección, y luego tenemos vista de tabla, número de filas en sección. Muy bien, ahora, sólo
regresemos cero. De acuerdo, Entonces esto es lo que necesitamos para las cosas de la calderilla aquí. Y a mí me queda bien. Tan muy cool. De acuerdo, así que tenemos eso. Conectemos el guión gráfico aquí arriba. Um, vamos a ver. Aquí. Vamos,
uh, uh, en nuestra vista, controlador de control, arrastre sobre la tabla, usted y seleccione la vista de tabla. Está bien, eso está conectado ahora. Datos básicos. De acuerdo, la parte que has estado esperando. Está bien. Entonces los datos de corte, um, si te das cuenta aquí mismo, cada vez que
has coordinado implementado, tienes algo llamado dot xsi data model ivy y o simplemente modelo. Um, este es tu modelo de datos, y tu modelo de datos es donde defines tus datos para core data. Y así, en tiempos pasados, en tiempos que vienen, creamos muchas clases,
recetas, posts, Pokemon, Pokemon, lo que sea, creamos clases, y así los datos básicos todavía te van a permitir crear clases como esa. Pero lo va a atar a los datos de la corte para que pueda guardar en la base de datos, lo cual es realmente genial. Entonces si vas a tu delegado de aplicaciones, ya que hemos hecho de este un proyecto de datos básicos, en realidad nos agregó algunas cosas, lo cual es realmente bonito. Y no espero que entiendas todo esto. Es que pasa mucho s Oh, míralo con precaución aquí. De acuerdo, Pero si vas abajo, están haciendo algunas cosas aquí. En primer lugar su definición de la para los documentos de solicitud. Director. Aquí es donde los datos básicos van a contar la base de datos en su directorio de documentos. Por lo que creó esta re automáticamente una propiedad que agarra que el directorio de documentos. Y luego hablemos de esto el persistente coordinador de tienda. Entonces en datos judiciales, un puerto, un coordinador de tienda persistente es una especie del coordinador que dice:
Oye, ¿ dónde vive tu base de datos? En tu disco. ¿ Dónde está el camino para ello? Es sólo una especie de gerente que,
um que maneja a donde van las cosas. Y así si le das click,
es malvado. Danos cualquier ayuda. Códigos Ex teniendo algunos estado teniendo un montón de problemas últimamente. Pero, ¿por qué? Dice aquí mismo, el coordinador de tienda persistente para la aplicación esta implementación crea y devuelve un coordinador, habiendo agregado la tienda para la aplicación a la misma, sus propiedades opcionales. Ya que existen condiciones herederas legítimas que podrían causar que la creación almacene cayera todos modos. Escribieron algunas cosas bonitas para nosotros, pero básicamente piensen en ello como un coordinador. OK, apunta a donde se supone que van tus datos. Es como el policía de tránsito de tus datos trayendo cosas dentro y fuera. Entonces eso es lo que es el persistente coordinador de tienda. El siguiente elemento importante que quieres entender es este contexto de objeto gestionado. Por lo tanto, administrar el contexto de objetos es algo así como una almohadilla de arañazos. A lo que quiero decir es, digamos que tienes algunas clases que estás haciendo cambios en algunas clases de datos centrales como cambias el nombre de algo, lo que sea hasta y entonces lo que pasa es, um cuando estás trabajando con esos datos, tipo de flota dentro de un contexto de objeto administrado está solo sentado ahí, y hasta que realmente haga clic o ingrese, guarde como aquí, guarde contexto básicamente, hasta que realmente lo guarde. En realidad no pasa por el coordinador de tienda persistente y en la base de datos, por lo que estás gestionado el contexto del objeto es igual que la almohadilla de arañazos la retención. Tus datos cambian hasta que realmente persististe en el disco. Y eso es algo así como los dos componentes centrales de los datos centrales. Por supuesto, aquí están pasando muchas cosas, que no voy a explicar. Siéntete libre de leer esto en profundidad y hacer algunos tutoriales en Internet si quieres conocer más en profundidad sobre los datos básicos. Pero de todos modos, esto es todo lo que han hecho por ti de forma automática. Por lo que en
cualquier momento, en cualquier momento que quieras hacer una APP se ha coordinado. Te sugiero que, um asegúrate de hacer clic que incluyan datos básicos, pero en cuando estés creando la APP, también hace todo esto por ti. Entonces volvamos al modelo de datos. Haga clic que están Así que lo que tenemos que hacer es realmente necesitamos crear una receta,
um, um, objeto de
receta que podría guardarse en la base de datos. Correcto. Entonces, uh, si haces clic en este botón de entidad de anuncios justo aquí, va a agregar una nueva entidad. Y de nuevo, sólo piensa en esto como una clase. De acuerdo, um, como podrías haber tenido antes. Por lo que queremos crear una clase de receta. Es todo lo que tienes que hacer es presionar, entrar y cambiar el nombre a receta. Pretender que son solo las clases o entidades. De acuerdo, Así que a partir de ahora, cuando uses datos de corte, estarás usando entidades y al igual
que una clase, tiene propiedades. En este caso, se les llama atributos, y también lo son las necesidades de recetas. dedo del pie tiene una imagen, así que puedo llamarla imagen, y vas a querer hacer este dato binario. Por lo que las imágenes necesitan ser datos binarios, y hay una cosa más que debes hacer con las imágenes. Haga clic en este pequeño ícono por aquí en el lado derecho. Muestra el inspector de modelos de datos, y lo que quieres hacer es hacer clic permite el almacenamiento externo solo en tus imágenes. De acuerdo, así que no lo haces No quieres que esas imágenes se almacenen directamente en la base de datos. Hablamos de esto varias veces. A lo largo de este curso, las imágenes siempre deben almacenarse en algún tipo de espacio de almacenamiento, y así esto las va a almacenar en tu dispositivo en el directorio de documentos, y luego solo las va a hacer referencia. Y eso es lo que quieres. Nunca almacene en ninguna base de datos en ninguna plataforma. Nunca almacene imágenes reales en él. No lo es. Las bases de datos no están hechas para datos
pesados, datos pesados como esos. Entonces Ah, ahí está tu imagen. Haga clic en el botón más para crear una nueva entidad, y vamos a llamar a esto ingredientes, y esto sólo va a ser un string para cambiarlo a string. Está bien, ahí están nuestros ingredientes. Y luego tenemos unos pasos, como pasos para hacer la receta. Y eso es una cuerda y otra vez nota. Hay múltiples tipos de datos. Podrías hacer esto de nuevo fingir que es una clase y le das tu dándole un tipo excepto en datos judiciales. Tienes que dar en su mayor parte, tienes que dar tipos de datos sin procesar. Eso puede persistir a la base de datos. Y así, en este caso, otra vez
una cuerda. Y luego, por último, una receta tiene título. Entonces vamos a darle un título y llamarlo cadena. Está bien, y eso es todo. Así de sencillo es crear una entidad. De acuerdo, solo
agregas y ves un anuncio atributos a él. Dale un tipo de datos. Si estás trabajando con imágenes, hazlo de datos binarios y asegúrate de permitir el almacenamiento externo. Está bien, genial. Ahora necesitamos crear. Necesitábamos crear datos para nosotros, ¿verdad? Entonces vamos Ah, primero podría hacer algo de limpieza aquí en tu carpeta de recetas. Correcto. Haga clic en él y vaya al nuevo grupo. Les vamos a hacer una cosa entera del controlador de vista del modelo. Entonces modelo, y, uh, lo
volveremos a hacer. Nueva vista de grupo. Lo volveré a hacer. Nuevo controlador de grupo. Está bien, voy a arrastrar el controlador de vista al controlador, y Ah, ahí vamos. Eso se ve bien. Y entonces así vamos a dio es un volver a su modelo de datos aquí. De acuerdo, Sube a Editor en la parte superior y ve, Teoh, crea objetos gestionados Ennis subclase todas las entidades de datos centrales heredan de N s
objeto administrado . No necesitas preocuparte demasiado por ello ahora mismo. Tan solo tienes que saber que habla el cable o permite que tu clase se guarde de acuerdo a Recordar cómo antes de que el usuario de Ennis los predeterminados, teníamos que hacer codificación y decodificación. Recuerda, tuvimos que añadir co extra para eso. Bueno, ya
tienen su propia versión de esto pasando tras bambalinas para ti. Entonces no tienes que escribir ese código, lo cual es realmente bonito. Entonces haz clic en crear esta subclase de objetos gestionados y, uh, quieres hacer click Haz clic en tu modelo de datos. Sólo tenemos una, que es recetas. Y luego, uh, esto va a enumerar múltiples entidades aquí si tienes más de una. Pero sólo tenemos una vez un selector, una receta. Y entonces, uh, lo que va a hacer es sólo te va a decir, ¿
dónde quieres ponerlo? Idioma Swift está bien, así que haz clic en crear. Y acaba de crear dos archivos para nosotros. Como se puede ver en la parte superior aquí receta punto rápido y receta más propiedades de datos básicos que se batió. Haga clic en ambos y arrástrelo a su carpeta de modelos. Esto es lo que los usarás. Entonces si miras tu receta más propiedades de datos básicos, nota cómo tiene nuestros campos aquí ahora tiene algo llamado y se gestiona ahí, que nunca antes habías visto. Pero es como,ya
sabes, ya
sabes, el VARS
Vale, sólo tiene un montón de campos aquí, así que tengo eso listo para ti, así que nunca, nunca,
nunca,
nunca querrás nunca, modificar este archivo. Esta receta de receta más propiedades coordinadas nunca modifican esto. Si quieres cambiar esto aquí, vuelve a
tu modelo de datos. Cambias tus atributos de entidad, y luego vuelves a generar esa subclase. Por lo tanto, no cambies nunca este archivo. Lo tengo. Lo que puedes cambiar, sin embargo, es tu receta así de veloz. Este es código personalizado. Ah, y claro, esto va a funcionar con ello. Pero este es cualquier código personalizado que quieras escribir para tu clase. Si quieres un formato de datos como poner letreros de dólar frente a moneda, cosas así, podrías hacerlo. Todo bien aquí, lo cual es realmente genial. Um, y en realidad vamos a escribir código aquí. Teoh, maneja cómo se procesan las imágenes. Um Y así de todos modos, tenemos datos básicos trabajando en su forma más simple en este momento. Y entonces por qué no vamos adelante y sacamos nuestra, um nuestra imagen está funcionando de la manera que necesitamos. Y lo que quiero decir es que no podemos simplemente guardar una imagen U Y en el directorio de documentos. ¿ Te acuerdas de esto de la app my hood? Básicamente, necesitamos convertir las cosas. Datos de Teoh. Así funk set receta, imagen de tipo imagen. Tú te imagenes no apareciendo porque no hemos importado. ¿ Te gusta? Ugo, esta es tu imagen. Por lo que queremos establecer una imagen vamos a establecer au imagen o decir dejar que los datos te igualen. Yo imagino representación PNG y vamos a decir imagen y vamos a decir imagen auto punto igual a datos. Recuerda cómo en nuestra entidad aquí tenemos ah, imagen y sus datos binarios por aquí y el resto de las propiedades de datos centrales de la gente, Tenemos imagen y es N s datos. Entonces todo lo que tenemos que hacer aquí porque tiene una referencia a ello, es una imagen de auto punto. Esa misma propiedad equivale a este dato PNG súper fácil y luego funk obtener la imagen de la receta. Está bien. Y esto sólo va a devolver au imagen, y vamos a decir, Let I am G te iguala. Yo imagino imagen a partir de datos, y los datos van a ser imagen de auto punto. Simplemente vamos a agarrar los datos de la imagen y luego devolver la imagen. Por lo que acabamos de utilizar esta clase de receta realmente genial que nos fue proporcionada a partir de los datos básicos y le
agregamos funcionalidad personalizada. Observe que está heredando del objeto administrado de Ennis, y ,
uh ,
por aquí, tenemos todas nuestras propiedades para nuestros datos básicos para nuestros campos de datos centrales aquí. Tan realmente genial. De acuerdo, así que tenemos nuestra tenemos su día de trabajar para nosotros aquí, Um y ah, vamos adelante y miremos. Ahora a nuestra vista, controlador. Por lo tanto, revisar los controladores con las vistas de tabla dentro de ellos necesitan hacer referencia a algún tipo de datos. este momento, aún no
tenemos ninguno, pero debilite armar el marco para que llevemos las cosas a donde necesitan estar. Entonces, um, sigamos adelante y ah,
uh, uh, y ya las recetas de Vira iguala Vale, mira eso. Eso es realmente genial. Entonces, um, solo
podemos hacer una lista de Honore de recetas usando nuestra clase de recetas. Eso es realmente genial. Y entonces en lugar de devolver cero aquí nos acaban de devolver recetas conteo de puntos y ah, eso se ve bien, gritándonos aquí. Vamos a seguir adelante y construirnos hasta deshacernos de estos errores aquí. Uh, rompí algo. Uh, me olvidó poner un signo de exclamación aquí para desenvolverlo. Intentemos construirlo. Ahora A veces si tu código ex se está disparando y me gusta, las cosas simplemente no están funcionando. Uh, asegúrate de construirlo para que confinara los ares y deshazte de ellos. Porque a veces un aire hará que se rompa el resto de tu programa, que no es lo que queremos. De acuerdo, Así que muy cool. Ahora estamos haciendo referencia a nuestra lista de recetas aquí otra vez. Todavía no hay recetas en él. Um, y llegaremos a eso en un minuto. Pero lo que tenemos que hacer ahora es terminar o tú ¿Por qué? De acuerdo, tenemos una, um Tenemos una celda que necesitamos cuidar, ¿
verdad? Tenemos que conseguir,
um necesitamos conseguir la imagen y el título que aparece en la celda. No hemos creado esta célula. Sí, hagámoslo. Ahora. Entonces archivo en la carpeta vista aquí, archivo nuevo archivo y haga clic en fuente bajo IOS Click Cocoa Touch Class. Y cambiemos esto. Tienes tu clase de padre controlador para ti, una celda de vista de tabla y esta solo vamos a llamar, uh, ¿cómo llamamos una celda de receta? Está bien. Célula de receta y la creará. Su creador. Aquí soy puntos de venta. De acuerdo, Ya
hemos hecho la u Y por esto. Un constructor de interfaces. Sólo tenemos que hacer el código aquí. Por lo que en Ivy Outlet semana var. Y tiene un título. Uh, esto es captado título de la receta. A veces me preocupa usar la palabra título descripción, porque a veces algunas clases de Iowa tienen esas propiedades. No queremos anular el conflicto de mercado. Por lo que receta título Va a ser tú, etiqueto y soy Outlet week var. Esta es una receta imagen tras vista me imagino de ti, y creo que eso es todo lo que necesitamos para referirnos ahí otra vez. Haremos nuestra función de configuración celular, funk, configurar celda y ah, esto va a tomar un objeto de receta. Y lo que vamos a dio es que vamos a decir, Ah, receta título texto punto igual receta título punto y diremos receta imagen punto imagen igual, um receta punto obtener imagen de receta esa función que creamos para darnos la U Y real imagen. Entonces en el celular configure y el celular siguiente camino, vamos a llamar a esto cada vez que necesitemos una nueva celda y lo va a configurar. Y así conectemos esto hasta un constructor de interfaces. Haga clic en su principal no storyboard. Está bien. Y, uh, haz clic en tu celda aquí
ver tabla, ver la celda, y obviamente no tiene clases personalizadas ni abre el lado derecho aquí teniendo las celdas seleccionadas. Haga clic en el inspector de identidad. Y cambiemos esto a la celda de la receta personalizada. Ahí vamos, Derecha Haga clic ahora y cuál es la imagen de la receta y simplemente haga clic y arrastre por aquí y título de la
receta. Haga clic y arrastre por aquí. Sí necesitamos agregar una reutilización celular, identificar el aire. Entonces haz clic en tus atributos, inspector. Y llamemos a esta receta a las celdas que acaban de llamar el mismo nombre que la clase. Entonces no es para ser confuso, así que vamos a copiar eso. Vayamos a nuestro controlador de vista aquí. Y, uh, otra vez, sólo
estoy pasando rápido por las cosas que ya hemos hecho antes. Uh, y así no es un gran, gran negocio. No hemos hablado demasiado de datos judiciales en profundidad como faras buscando cosas aún. Entonces vamos a conseguir vamos a poner más tiempo en eso en un minuto aquí. Y, uh, lo que vamos a hacer es lo mismo que hemos hecho en el pasado. Entonces decimos, si vamos a vender igual tabla vista punto de que celda reutilizable con identificador, vamos a pasar en nuestra celda de recetas identificamos que acabamos de crear como vamos a llamar a esta receta venta. De acuerdo, Así que si vamos a vender, entonces vamos a decir navegado arriba. Lobo, En realidad, primero Vamos a desechar el poste. Deja publicar la receta. Así que deja que receta iguale recetas ruta índice punto ro. Entonces agarra la receta actual en el índice actual, y luego podemos hacer vender dot configure celda y podemos pasar en esa receta. ¿ De acuerdo? Y luego, por
supuesto, le
devolveremos la venta. Si eso se derribó, por alguna razón que nunca lo hace, vamos a regresar. Ah, la celda de la receta, Así que esto. A ver si funciona para nosotros. Vi un destello rojo ahí, pero está funcionando. Eso está bien. Entonces una cosa que tenemos que hacer ahora es, en nuestra opinión, sí cargó. Tenemos que configurar los delegados para que la vista de tabla punto delegado sea igual a auto en vista de tabla. Esa fuente de datos es igual a sí mismo. Porque implementamos los protocolos, tenemos que poner a los delegados, y esto parece que todos están funcionando. Um, sigamos adelante y ejecutemos la app. Y lo que debemos ver es nada. Pero ojalá no haya un choque. Entonces sigamos adelante y cambiémoslo. Teoh iPhone seis. Aquí. Voy a correr esto y otra vez. Uh, solo
estoy probando para ver si las vistas de la mesa se conectaron y no hay nada grande que extraño así que no tenemos que preocuparnos por esto más adelante. Cuando empezamos a trabajar con los datos centrales, aquí vamos corriendo. Es correr, correr, correr las cosas que suceden aún así ahí está. Está bien, así que se ve bien. Todavía no hay choques. Uh, aún. Pero tenemos una mesa de ustedes ahí. Está bien. No hay celdas. Y porque obviamente, no
hemos, uh, no
hemos puesto un dato en los
EE.UU. EE.UU. Así que sigamos adelante y llamemos a este video hecho en éste. Acabamos de llegar a ti y todo preparado para los datos básicos. Nosotros sí construimos un modelo de datos, sin embargo. Está bien. Uh, con atributos tal entidad y escribimos código personalizado para obtener y guardar imágenes. Y así vamos a seguir adelante. Y siguiente video, que es el último video que vamos a seguir adelante y mostrar cómo ahorrar para los elementos de datos también. Eso será. No es gran cosa. Por lo que me alegré y seguir adelante.
70. App: Recipez parte 2 (datos básicos): Hey, todos, sigamos construyendo nuestras recetas en, y lo que vamos a hacer ahora es ir a nuestro controlador de vista y conseguir que nuestros datos muestren y muestren una pantalla. Y de nuevo, realmente no
podemos mostrar datos en la pantalla hasta que realmente tengamos datos. Pero este es un buen lugar para empezar. Entonces para buscar resultados,
vale, vale, cuando digo buscar resultados, siempre que quieras obtener algún tipo de datos, tienes que recuperarlo de la base de datos. ¿ De acuerdo? Y para hacer eso usaste un controlador de resultados recuperados, y necesitamos crear uno para poder buscar datos. Hasta el momento, el controlador de resultados recuperados equivale a N s recuperados. Y no está funcionando. ¿ Por qué? Porque no importamos los datos del núcleo importamos los datos del núcleo como así. De acuerdo, intentemos eso otra vez y ha recogido resultados Controlador. Muy bien. Y eso es genial. Y entonces lo que queremos hacer es crear una función para buscar los resultados y luego establecerlos después de que los recuperaran después de haber sido recuperados. Entonces ah, funk buscar y establecer resultados. Está bien. Y, uh, para hacer una solicitud de captura, está bien, tenemos que trabajar con algunas de las cosas que se nos están proporcionando en el delegado de popa . A saber, sólo el contexto de objeto gestionado. ¿ O es que aquí? Ah, aviso. Por lo que creó una propiedad en nuestra app. Delegado Aquí mismo. Y necesitamos poder usar esto. De acuerdo, en orden, Teoh, haz peticiones. Tenemos que agarrarlo. Entonces ve a tu controlador de vista, y necesitamos primero agarrar al delegado de la app. Por lo que deja en te iguala. Yo aplicación no compartió aplicación. Es así como agarras a los delegados de la app, justo de la forma en que lo haces delegada de puntos. Por lo que solo hay un delegado de aplicaciones en cualquier aplicación. Entonces tú aplicas ese delegado de punto de aplicación compartida siempre te dará el
delegado principal , y vamos a forzar desenvolver porque sé que va a funcionar, y vamos a obligar a desenvolverlo como el delegado de la app. Y luego, uh, necesitamos agarrar su contexto ese contexto de objeto gestionado que acabo de mostrarte para que podamos recordar el contexto de la almohadilla de arañazos, y creemos que necesitamos poder poner datos y cambiar datos en él y luego guardar ella. Por lo que pasa por el persistente coordinador de tienda a la base de datos. Y así que que el contexto es igual a la aplicación. Así se llama a eso, uh, delegado de aplicación
administrada dot contexto de objeto administrado. Está bien. Y eso sobre hacer es agarrar la propiedad en su app. Delegado sólo estaban agarrando esto aquí mismo. Sólo estamos llamando a eso. Pero no pudimos hacer eso hasta que tuviéramos una referencia al delegado de la APP, que ahora tenemos. De acuerdo, entonces hay contexto de objeto gestionado, ¿recuerdas? Esa es la almohadilla de rasguños. Y así vamos a buscar. Solicitud es igual a N s buscadas y s solicitudes de búsqueda. Está bien. Entonces, para obtener datos, tienes que hacer lo que se llama una solicitud de captura de Ennis. OK? Al igual que así. Y está buscando un nombre de la entidad inicializar una solicitud de fetch configurada con un nombre de entidad
dado. ¿ Cuál es el nombre de nuestra entidad? Bueno, es una receta. Ah. Por lo que la entidad que tienes aquí en tu receta de modelo de datos es la misma que quieres llamar aquí. Por lo que necesitamos hacer una solicitud de fetch con esta entidad específica. Significa que queremos agarrar a todas las entidades que tengan ese nombre en él. Y por supuesto, coordinador, se
puede hacer un filtrado complejo y todo tipo de cosas. Entonces si no quieres si no querías todos los resultados como, digamos que tenías un 1,000,000 de resultados y solo querías, como, 10 o algo así. Se puede hacer todo ese tipo de cosas en los datos judiciales. Entonces hagámoslo afectar, solicitar y afectar las solicitudes pueden caer. Por lo que necesitamos hacer un bloque do. De lo contrario nos va a gritar. Entonces, para que podamos atrapar el problema, ¿verdad? Por lo que los resultados permiten que los resultados sean iguales tratar contexto. Así que agarra tu objeto administrado Contextos que ejecutan solicitud de fetch, OK, así. Y quiere la solicitud, que ya hemos creado justo arriba. De acuerdo, entonces todo lo que está pasando aquí es que estamos diciendo, oye, contexto de objeto
gestionado. Haz una solicitud para que hablemos con la base de datos, está bien, y agarra datos y nos los traemos. Entonces va a hablar con la prensa es persistente. Coordinador de tienda nos va a agarrar cosas. Uh, y, uh, va a empezar justo aquí y resultados, Ok. Y si eso funcionaba, iban a decir recetas auto punto iguala resultados. Resultados como, uh, receta. Vamos a forzar y envolverlo ahí porque sé que va a ser una receta, porque acabo de decir que era una receta aquí, Así que si fue capaz de obtener resultados. Vamos a seguir adelante y almacenarlo en nuestra matriz de recetas aquí mismo. Está bien. Uh, muy bien. Y luego diremos catch Got. Ten siempre esa captura, causa derecha ya que tirará Ennis Air, solo
podemos imprimir aire,
air dot debug descripción si tenía algún tipo de problema o lo que sea. Está bien, así que muy guay. Ahora bien, ¿
cuándo queremos buscar y establecer resultados? Bueno, pensemos en esto. Entonces cuando, por
supuesto, el al principio carga, queremos subirlo y globalista de datos. OK, También, si abrimos la otra pantalla para crear un objeto están creando una receta a menos que hagan clic, guardar en la pantalla desaparece cada vez que esta pantalla vuelva a aparecer. Esta lista aquí, queremos Teoh, queremos refrescar así lo visto Cargar. No estoy seguro de que ese sea el mejor lugar para ello esta vez, porque eso sólo se va a llamar probablemente una vez. Por lo que vi aparecer es un mejor lugar para hacer este cheque. Entonces, cada vez que aparezca la vista, solo
volvamos a obtener los resultados. Entonces vamos a decir, um, buscar y establecer resultados. Y después de que hayamos recuperado y establecido, los resultados iban a decir vista de tabla que recargan datos. ¿ De acuerdo? Y me está gritando. Construyámoslo y veamos por qué me está gritando. Está bien. Ah, sí, uh
, quiere la anulación. Por lo que nuestro auto auto completo y el Exco Beta tiene problemas a veces. Por lo que se esperaba nombre de miembro o constructor llamada. Esto no sería un signo de igualdad. Debería ser un colon. Mi mal. Está bien. Y, uh, ¿sabes qué? Ni siquiera pienso en este caso de aquí. Me adelanté a mí mismo. Ni siquiera creo que necesitemos el controlador de resultados recuperados en ninguna parte, porque no creo que lo estemos usando. En realidad, sí, lo
hicimos. No lo estamos. Ni siquiera estás usando en ninguna parte. Um, construí tantas aplicaciones de datos centrales que son un poco más complejas en esto que es solo un hábito poner esto aquí. Un controlador fetch results funciona con tu vista de tabla para hacer cosas más complejas. No estamos haciendo nada demasiado complejo, Así que rasca la cabeza. Disculpe? No lo necesitamos, Así que voy a seguir adelante y correr, Command Plus son para correr y sólo asegurarnos de que no haya choques corriendo, corriendo, corriendo, bien, sin choques. Eso está bien. De acuerdo, tengo curiosidad. Si este nuevo botón funciona lo hacemos. Tratamos de ver si funciona. Sí funciona en el botón Atrás. Funciona también. Agradable. Entonces OK, para que esa nueva pantalla definitivamente se esté cargando ahí, lo cual es realmente genial. Um, siento que necesitamos una imagen de titular de plantilla ahí. Además, necesitamos crear el controlador de vista para esta pantalla aquí, Uh, y, uh, para que realmente podamos guardar datos. Y creo que ese es el último componente. De verdad. A veces cuando estoy construyendo grandes aplicaciones, no lo
haré. No voy a pasar todo este tiempo construyéndote y para ambas pantallas así puedo publicar y ahorrar. Lo que probablemente haré es ejecutar algunas pruebas, guardar justo aquí en este controlador de vista, y en realidad ejecutar algunas salvadas aquí. Al igual que a la vista, sí carga solo para ver si poblan ahí. Pero es una aplicación pequeña. No es gran cosa. Entonces sigamos adelante y sigamos adelante. Um, podría permanecer storyboard. Lo primero que quiero hacer es en este control de vista aquí. Quiero poner ahí una plantilla para nuestra imagen base. Um, si pudiera encontrar uno en cualquier lugar, Sí, tenemos uno aquí. Tengo la hamburguesa de la escuela, esta comida. Así que haz clic en tus activos aquí solo tienes que arrastrar esa comida allí. Vuelve a tu storyboard principal y voy a abrir aquí el lado derecho y asegurarme de que
tengo mi imagen seleccionada. Acaba de cambiar el fondo de la comida. Y esto va a ser aspecto. Phil se ve genial. Está bien, ahí está nuestra comida. A mí me gusta. De acuerdo, vamos a crear un controlador de vista para esto ahora. Entonces en nuestra carpeta de controladores, ¿verdad? Haga clic y vaya a nuevo archivo, clase de tacto de
cacao y, uh, no, espere. En lugar de tabla de que vendes, digamos, um, tú yo veo controlador, y este se va a llamar crear receta VC para controlador de vista A Riggio. Vamos a deshacernos de esta cosa de calderilla. Está bien, eso se ve bien. Y, uh, vamos a armar justo en el código aquí. Entonces Ok, ¿qué queremos que pase cuando lleguemos a meter nuestros puntos de venta ahí para los campos? Uh, imagen seleccionando y luego guardando y todo eso. Todo ese jazz. Entonces sigamos adelante y hagamos nuestros puntos de venta I B en IBL. Una semana de nuestro título de receta eres tú. Yo campo de texto para el título. Yo ser Outlet Week Bar receta ingredientes. W I campo de texto. Yo sería outlet week bar y esto son pasos de receta. You I text field I be Outlet week var recipe image type you image view y luego ibl it week bar add recipe, Add recipe button button DePuy. Queremos a Teoh. Mantén una referencia al pero ahí dentro. Está bien. Y luego necesitamos un recolector de imágenes, ¿verdad? Y acabamos de hacer esto con la última app. Entonces sigamos adelante y veamos si podemos recordar cómo hacerlo. De hecho, si quisieras pausar el video y ver si puedes implementar la selección de imagen por tu cuenta y partes Vale, seguro que lo hiciste. Adelante y digamos que te imagino. Yo picker de imagen, controlador, delegado. Y luego, por
supuesto, necesitamos a los asociados. Um delegado controlador de navegación. Está bien. Y luego necesitamos almacenar un recolector de imágenes lejanas, recogedor imágenes. Claro, nuevo, voy un poco más rápido aquí que el último video porque acabamos de hacer esto y estamos aquí para reforzar conceptos y ojalá estés haciendo mucho de esto por tu cuenta. Si ya sabes cómo hacerlo, no me copie si no tienes que hacerlo. Vamos a seguir adelante y crear nuestro recolector de imágenes y lo vimos cargar. Por lo que imagino controlador picker un picker de imagen dot delegado Igual auto Recuerda todo
esto todas estas cosas? No es gran cosa. Um bien. Y, ah, digamos, uh receta imagen punto uh, capa, Vamos a decir rápidamente que sólo odio las esquinas cuadradas. Normalmente creado vista personalizada para esto, pero ya
sabes, ya sabes que no es gran imagen de receta Ese clip a límites equivale a verdadero. Para que no salga de los bordes de las esquinas redondeadas. Eso se ve genial. Um, ahora que pasa con el, uh, el método delegado que necesitamos llamar a su controlador de selección de imágenes sí terminó de recoger imagen. Y cuando eso suceda, queremos, por
supuesto, descartar al recolector de imágenes. No nos importa la devolución de llamada. Um, y luego receta imagen punto La imagen es igual a la imagen seleccionada que acabamos de obtener del
recolector de imágenes aquí. Lado izquierdo, un poco más de espacio aquí. De acuerdo, entonces descartamos el piquete, el vigor de la imagen, y luego pusimos la imagen desde el recolector. Eso se ve genial. Um, está bien. Y luego qué pasa cuando la persona presiona el botón Teoh loden imagen. Entonces digamos que sea acción por eso. Yo ser acción funk, agregar remitente de imagen. Cualquier objeto que hayas visto esto intacto antes. va a mandar el Pero en eso,
nosotros, uh, uh, que nosotros,
uh,hicimos uh, clic en y luego presentamos controlador de vista, Esto va a ser picker de imagen. Animado es cierto porque todo lo que no es animado, es un poco aburrido. Um, así que solo estamos cargando la imagen de imagen siempre que esa seleccionada, lo cual está bien. Um, bien, ¿Qué más? Uh, el botón crear receta otro yo reacción funk, crear remitente de receta. Cualquier objeto. Está bien. Y, uh, vamos a asegurarnos de que, um, vamos a asegurarnos de que haya un título. Eso es lo único que se requiere. Entonces, si deja que el título sea igual al texto de punto del título de la receta donde el título no es igual a la cadena vacía, vamos a asegurarnos de que hay, ah, título en él, y vamos a asegurarnos de
que no, está bien. Tan sólo un título. De acuerdo, um, hagamos algo Vamos a hacer que todas las demás cosas pasen ahí, también. Entonces, um Ok, entonces tenemos una imagen. Tenemos una descripción. Uh, bueno, lo que vamos a hacer, queremos sacar esos de los campos de texto, y luego queremos salvarlos. Entonces um, para poder hacer eso con el fin de guardar algo, los datos centrales, vamos a necesitar de nuevo ese contexto de objeto administrado. ¿ Verdad? Por lo que deja en te iguala. Yo aplico esa aplicación compartida, no delegado como delegado. De acuerdo, Sólo graham sin ayuda, agarrándolo de nuevo. Dejar contexto es igual a app dot contexto de objeto gestionado. Y entonces esta vez, cuando realmente creas y necesitamos conseguir una referencia a una entidad que vamos a salvar,
Entonces,
uh, Entonces,
uh, en realidad, en realidad, ¿por qué? Pero entidad es igual a N s entidad, uh, importar datos del núcleo en la parte superior Aquí. Sigue olvidando. Se quiere usar algo, hay que
importar los datos del núcleo de importación. Está bien. Siempre que el auto se completa, no trabajar en una clase tipo de me di cuenta de que probablemente no lo importaba. Entonces entidad es Ennis. Descripción de entidad punto Entidad para nombre, y queremos receta en contexto de objeto gestionado. En realidad puede tener múltiples contextos de objetos administrados en una aplicación. Sólo tenemos uno. Pero por eso te da la opción de escoger uno. Entonces para crear una nueva clase de receta, tenemos que decir qué tipo de entidad va a ser, que está aquí mismo. De acuerdo, um creo que deberían manejar esto internamente. No sé por qué lo separan así, pero esa es solo la forma en que esto y luego diremos, Let recipe es igual a una nueva receta así. Y no te va a hacer auto completo. Así que presta atención cuidadosa a los parámetros en los que estoy entrando. Por lo que esta es entidad. Vamos a pasar en la entidad y luego insertar en el contexto de objeto administrado. Ahí vamos. OK, entonces, um, ya que nuestra clase de receta hereda de Ennis objeto administrado. ¿ De acuerdo? Uno de los er de inicialización nos permite pasar en una entidad, y luego quiere el contexto en el que vas a estar guardando de nuevo. Creo que deberían hacer que esto se maneje internamente. ¿ Manejado? Simplemente no estoy seguro de por qué no lo hacen, pero así es como tienes que hacerlo. Y necesito a Teoh. Yo lo necesito. Desenvolver aquí nuestra entidad. Pongo exclamación al final. Está bien, eso se ve bien. Vamos, uh entonces tenemos así lo que tenemos hasta donde hemos llegado,
agarramos al delegado de la app que agarró el contexto de objeto gestionado. Creamos una entidad de referencia para la receta, y luego creamos una nueva clase de receta real ese objeto que creamos y hemos estado usando. Por lo que ahora necesitamos dio se nos asignan los valores en un objeto de receta. Por lo que el título del punto de la receta es igual a este título aquí mismo que ahorramos, lo cual está bien. Y, uh, este aire en la pantalla es un poco molesto. No voy a mentir. Está bien. Y luego ingredientes de punto de la receta es igual a lo que sí lo recordaba. Ingredientes receta ingredientes ingredientes punto texto receta punto pasos igual a la receta pasos punto Texas Agarrarlo del campo de texto. Si existe. Receta punto conjunto de la imagen de la receta. Y esta va a ser receta imagen la imagen, agarrar la imagen de ella y pasarla, y vamos a asumir que hay una imagen aquí. Puedes leer más manejo de aire por tu cuenta. ¿ Ya lo hiciste antes? No es gran cosa. De acuerdo, entonces tenemos ahora lo que hemos hecho aquí. Disculpe? Lo que hemos hecho aquí es, uh, crear una receta. Um, y estamos usando una entidad específica, que es la entidad de receta. De acuerdo, solo
estamos diciendo, Hey, estos matchup, este es el contexto que queremos salvar también. Y entonces este es solo el campo de clase aquí. Entonces si abro mi lado izquierdo aquí y hago click. Uh, mi receta. Es nuestro este vestido para estar aquí. Son sólo estos campos aquí los que estamos agarrando. Se pone a disposición de nosotros. Y así sí, ingredientes del título,
pasos, pasos, imagen de la
receta. Solo estamos poniendo todo eso justo aquí. Ahora aún no lo hemos hecho. Um, Creed lo guardó todavía. Entonces sigamos adelante y hagamos eso ahora. Entonces digamos un objeto de inserción de punto de contexto, y eso es insertar nuestra receta. Este de aquí, vamos a insertarlo en el contexto. Recuerda, el contexto es una almohadilla de rasguños. Nada que persista hasta que se lo digamos a lo que aún no ha sucedido. Y luego otra vez, esto puede lanzar al aire. Entonces lo que vamos a dio es debido. Vamos a decir, prueba contexto punto seguro. Está bien. Entonces cualquier cosa que esté flotando en este contexto de objeto gestionado, vamos Teoh Ahora, guárdelo. Vamos a atrapar a cualquier heredero, y se supone que simplemente imprimimos, uh, no
podría decir receta. Sí, está bien. Y entonces qué queremos hacer? Entonces, sí, después de guardar una receta, sigamos adelante y,
uh, uh, descartado controlador de vista animado. Sólo vamos a descartarlo. De acuerdo, tenemos mucho pasando, pero no es tanto. Es En realidad es sólo como 62 líneas de código. De acuerdo, entonces, sí, elegiste la imagen, seleccionas. Y luego cuando vas a salvarlo, creamos nuestra entidad, nuestro contexto, solo
establecemos los valores. Y luego lo insertamos en el contexto, y luego simplemente tratamos de quedarnos del contexto. Siempre que llames a dot save on the context va a hablar con el coordinador de tienda persistente , un intento de guardar eso en almacenamiento permanente, lo cual es realmente genial son nuestro único problema en este momento es, um, no hemos conectado los tomacorrientes. Entonces ve a tu storyboard principal. Da clic a este tipo aquí, abre el lado derecho. Asegurémonos en el inspector de identidad que nosotros no tú, el controlador de vista. Vamos a asegurarnos de hacer clic para ver controlador. Asegúrate de que cambiamos la clase para crear el controlador de vista de recetas para que podamos establecer los
puntos de venta y esas cosas. ¿ Verdad? Haga clic y sí, hay pasos de receta. Por lo que la receta de esta da pasos a los ingredientes de la receta de éste. Sólo estoy dando clic y arrastrando. Ahí hay una imagen de receta. De hecho, la dirección sea, pero y no creo que realmente lo necesitemos. Esta referencia distorsionada a esa causa no estamos haciendo nada con ella. Y luego título de la receta. Después nos dieron algunas acciones. Por lo que esta imagen del anuncio, um, solo
puedes hacer clic y arrastrar ahí y hacer retoque por dentro, y luego esta gran receta, haz clic en el botón, Retoca el interior. Está bien, deberías probarlo. Vamos a darle una oportunidad. Aquí vamos. Aquí vamos. Vamos, enséñame el dinero. Está bien. Nada serio. No hemos creado nada, así que es click nuevo carga la pantalla, el título. Y como se requieren las otras cosas, no las
voy a agregar ahora mismo. Entonces digamos el título y llamemos a esto, uh, cosas
super cool porque no va a ser una receta. No tengo recetas en el simulador Imágenes. Al menos haga clic en agregar imagen. Sí. Permitir el acceso. Haremos esta imagen de aplicación aquí. Está bien. Y sigamos adelante y pinchemos. Siento que no es redondeado, pero tal vez es tal vez me estoy volviendo loco aquí y luego haga clic en crear receta y siento que no pasó nada. Vamos a dar click atrás. Bueno, definitivamente está ahí, en realidad. Um, entonces sé lo que pasó. Volvamos a nuestro controlador de vista de recetas de crear. No queremos Descartar controlador de vista Queremos Ah, pop. No, Queremos auto ese controlador de navegación dot pop Um Pop do controlador animado. Eso es lo que queremos. Queremos un poppet poppet, vuelta también, siento que esta imagen de aquí se estira en nuestra en nuestra celda. Entonces sigamos adelante y no lo estiramos. Sigamos adelante y vayamos a nuestro story board principal y hagamos clic en el primer controlador de vista. Y en esta vista de imagen aquí, pongámosla para no escalar para llenar. Pero aspecto se siente ahí vamos. Y vamos ah, inténtalo de nuevo a ejecutarlo. Y en realidad, la imagen debería seguir ahí porque guardamos en los datos de la corte incluso después de cerrar la app . De acuerdo, es su muy agradable no me gustan estas líneas aquí, y esta fue una mala imagen para escoger porque no está cubriendo todo el espacio, así que no se ve tan cool como el ejemplo en, pero haga clic en nuevo. Y llamemos a esto,
uh, uh, salsa de
bálsamo. Es click. Agregar imagen escogerá un 11 diferente que sea pantalla completa, como esta misma banda de recetas que se ve mucho mejor. De hecho, no
puedo vivir con esto. Tengo que borrarlo. Sólo tengo que conseguir que un tipo se deshaga de él. Uh, intentemos eso otra vez. No lo soporto con algo recién fuera de lugar. Simplemente tiene que ser perfecto. De acuerdo, entonces esas líneas, Correcto, vamos. Uh, arregla eso. Aquí, recorta tu vista de tabla y separador a la derecha. En el interior. Haciendo click hecho. Y separarla. Sí, eso está bien. Vamos a detenerlo y volver a ejecutarlo. De acuerdo, Mucho mejor se ha ido ahora. De acuerdo, Nuevo Lo intenté de nuevo. Salsa bomba. Agregar imagen. Vamos como esta cascada fresca no son recetas, pero van a hacer el trabajo. Está bien. Nueva otra vez. Dirá Luke. Luke. Sólo porque a los analistas les gusta otra cascada. Ahí vamos. Sí, tiene los bonitos bordes redondeados, por lo que parece que está funcionando cada vez que vamos a ver ¿Apareció. Eso es refrescante. Es buscar los resultados de nuestra base de datos. Um, haciendo que uno nuevo aterrador Larry tres. Creo que es una película. En realidad no. Uh, está bien. Muchas cascadas. A lo mejor deberíamos llamar a esto cascadas de la Z en lugar de recetas con Z. Vale, así que tenemos, um tenemos algunas recetas pasando aquí. Se ve bien. Se ve bien. Entonces eso es todo, Realmente. Es decir, así que no fue todo muy diferente. En lo que respecta a las cosas del viento, no
es diferente a lo que acabamos de hacer en mi app de capó. La única diferencia es que utilizamos datos básicos, que tiene entidades, como se puede ver aquí. Lo incluimos cuando creamos el proyecto, que creó todas estas cosas calderosas aquí. Si no seleccionaste eso y luego agregas un núcleo de datos más adelante a tu proyecto, vas a tener que implementar todo esto por tu cuenta. De acuerdo, Entonces cuando estés aprendiendo, solo asegúrate de crear tu proyecto con esto. No tienes que hacer eso en todo por tu cuenta en. Entonces lo que hicimos fue crear una entidad por aquí, y luego, uh, generaríamos. Fuimos a editor, y luego generamos, creamos y su subclase de objeto gestionado. Y luego creó estos dos para nosotros aquí. OK, nunca tocamos a estos. Esto es intocable. Archivo solo tiene nuestras propiedades. Este de aquí podemos tocar, establecemos una imagen de conjunto y recibimos u obtenemos imagen que lo convierten en tan solo un dato y viceversa . Y luego, uh, en nuestro controlador de vista, acabamos de hacer una solicitud de fetch para buscar resultados. Y no fueron tantas líneas de código. Sólo esto. Simplemente encuentra los resultados y agárralos y muéstralos. Y luego en nuestra receta de creación, todo lo que hicimos fue agarrar el contexto como lo hacíamos antes. Pero esta vez creamos una entidad, pusimos dentro de nuestra receta. Y luego dijimos los ingredientes del título, etcétera, etcétera. Primero lo iniciamos en el contexto, y luego salvamos el contexto. Y eso es ETA de maíz y su forma más simple. Entonces si quieres cierta persistencia de datos sencilla, esta es una gran manera de hacerlo. Es mucho más rápido, creo,
que valores predeterminados de usuario de Ennis y mucho más adecuado para todo. Por lo que sugeriría hacer esto en su lugar. Pero los valores predeterminados de los usuarios de Ennis son ideales para almacenar cosas simples. Entonces haz lo que quieras, aunque es que no es gran cosa. Pero empieza a tomarte tiempo para aprender más sobre los datos. Te beneficiará en tu carrera, y eso es todo. Bastante cool. Sigamos adelante y
71. Showcase de estudiantes: Hey, todos, Mark Pricier sordos jabones dot com Y solo quería tomarme un momento y mostrarles un
escaparate estudiantil después de lo que quiero decir es que hay un caballero con el que estaba trabajando en persona cómo se
llama Pierson, y él era alguien a quien yo estaba mentorando en Desarrollo IOS y él prueba beta de este curso, y construyó una siesta y en realidad lanzó en la tienda APP. Y todas las cosas que estamos haciendo en el de este trimestre te permitirán construir una aplicación
profesional al igual que hizo él. Y en realidad podrías construir una app que parecida a la que construyó y qué es. Se trata de una app de recetas, y habla con en un P I y descarga ah, lista de recetas, y puedes poner en ingredientes y recetas finales que tengan esos ingredientes en ellos para que
puedas encontrar ver qué hay en tu alacena y ver si tienes la receta. ¿ Son los ingredientes para esas recetas para que puedas hacer realmente bien la comida y el estudiante en la tienda APP? Ha tenido inversionistas hasta acercándose a él. En realidad es realmente genial, y así es muy simple en naturaleza de una muy poderosa en La APP se llama No Time y es
Está en la tienda APP disponible en absoluta dot com. Award slash no hay tiempo y la razón por la que lo traigo a la luz es porque quiero que sepas que puedes hacer esto. Puedes hacer este curso y construir algunas aplicaciones profesionales, y estoy aquí para ayudarte. Y quiero que tengas éxito y quiero que publiques absolutamente absoluto. Y esto también te ayudará a conseguir un trabajo. Entonces esa es la historia, le importa la app, échale un vistazo. Realmente genial. Y espero que
también puedas hacer algo impresionante como esto, también puedas hacer algo impresionante como esto, porque vas a tener las habilidades para hacerlo por su curso.
72. DevCamp iOS 9: crear el proyecto: Oigan, ¿qué pasa, todo el mundo? Marcar Precio aquí con Deb pendientes dot com. Y ya sabes, mucha gente me ha estado preguntando en los últimos meses. ¿ Por qué no haces nada en deportes? ¿ Te gustan los deportes? APS quería vestir ropa deportiva. Bueno, tu día de suerte, eres como, Espera, eso no es un equipo deportivo. Bueno, es el Punisher. Va por ahí matando gente. No es realmente un deporte, Pero si fuera un deporte, probablemente
lo vería así. Los chicos se metieron en mal estado. Bueno, justo de la forma en que nací. Perdón, chicos. Vamos a crear un nuevo proyecto aquí. Voy a ir al archivo de código X. Nuevo proyecto. Perdón. Algún otro monitor Aquí. Tire de él encima. Ahí vamos. De acuerdo, entonces conseguimos un proyecto Exco. Lo que vamos a estar haciendo es construir la u Y para nuestra aplicación basada en ubicación. Va a ser un simple mapa, vista y vista de tabla. Simplemente consigue que todos los componentes en piezas funcionen para que posteriormente podamos construir los
componentes de ubicación real . Entonces lo que vamos a dio es a una aplicación de tabulador. Vamos a fingir que nuestra aplicación tipo de tiene, como, una pantalla que está dedicada a,
como, como, nuestras ubicaciones de tiendas y una pantallas como la pantalla de inicio. OK, así que solo hagamos una aplicación de pestaña y llamemos a este Dev Boot Camps porque queremos
saber dónde están todos los campamentos de arranque para que podamos aprender a codificar y todo lo demás aquí se ve genial. No necesito conseguir repositorio. Lo pondré en el escritorio y ahí vamos. De acuerdo, Un poco de colores diferentes aquí. Conseguí un nuevo monitor de cuatro k y el blanco estaba igual, cegándome. Entonces estoy probando algo nuevo. Hazme saber cómo tú lo que piensas al respecto. Por lo que tenemos un segundo controlador de vista y primer controlador de vista. No me gustan los nombres de esos, así que voy a cambiarlo. Presiona entrar en esta de aquí, y vamos a llamar a esta ubicación VC location BC. Cambiaré esto a la ubicación V. C. Y, por
supuesto, hay un lugar más donde necesitamos hacerlo. ¿ Conoces un lugar que sea? Eres como, No. Bueno, si no lo
haces, deberías. Porque ya hemos hecho esto antes. Sigamos adelante y pinchemos esto aquí mismo. Segunda vista y vamos a cambiar el tipo de clase aquí arriba de controlador de segunda vista a ubicación BC Así que ahora
también está empatado en nuestro guión gráfico . Por lo que de nuevo en las ubicaciones tener la parte superior va a ser un mapa, y la parte inferior va a ser una vista de tabla, como mostrar una lista de nuestras ubicaciones para nuestras tiendas. Y así vamos a seguir adelante y sólo arrastrar algunas vistas aquí, escriba el mapa de palabras aquí en la parte inferior y arrástrelo hasta arriba. Y lo hago así Y entonces lo que voy a dio es que voy a hacer clic en el menú pin aquí, fijarlo a la parte superior. Voy a apagar, constreñido los márgenes y minuto a la izquierda y a la derecha, y le vamos a dar un tipo fijo de 215 píxeles. A continuación, arrastremos una vista de tabla justo debajo de ella, No una tabla de ti controlador, te
importa. Y yo sólo voy a arrastrarlo así De acuerdo, y voy a dejar un poco de espacio ahí, así que no me estoy solapando. Yo lo haré cero, pero a veces si se superponen, aquí te
mostraré un ejemplo. Si hago clic en esto y se superponen y luego cuando voy a pin me está mostrando 185. Por lo que es encontrar la parte superior de la vista como lo siguiente dependiente, también. Y eso no es lo que queremos. Nosotros lo queremos fijar al fondo del mapa, así que sólo lo voy a dejar justo debajo de él, y nos sentaremos aquí así que voy a apagar, constreñir los márgenes. Va a ser 000 en lugar de tres. Va a ser cero, y eso me queda bien. Entonces ahora tenemos nuestra vista de tabla. A mí me queda bien. Conseguimos nuestra vista de mapa. Genial. Vamos a entrar en nuestro código ahora, en nuestra ubicación V. C. Y vamos a hacer sólo todas las cosas de la placa de caldera de la caldera que estamos acostumbrados a hacer. Entonces hagamos esto un poco más grande aquí, y lo haré más grande. ¿ Y qué queremos hacer? Por lo que tenemos una vista de tabla, por lo que sabemos necesitamos el delegado de vista de tabla U blanca y tú yo tabla vista fuente de datos. Y entonces también sabemos que vamos a necesitar nuestros puntos de vista aquí. Por lo que nuestros puntos de venta soy Outlet week bar. Te gustaría decirle eso a alguien como cuando estás enojado con ellos, Estás una semana Var ¿Qué dices? Digo coder chistes cazando Te dan un puñetazo en la cara semana de nuestra mesa de ustedes. ¿ Nunca se calla este tipo? Perdón, Demasiada cafeína hoy. Por lo que ves tabla blanca vista vista tabla en Ivy Outlet Week var y vamos a decir un mapa porque necesitamos un mapa. Esto va a ser m vino a la vista, pero no va a tirar hacia arriba ahora. El motivo por el cual es que necesitamos importar el kit de mapa. Entonces hagámoslo ahora en el kit de mapa de importación superior. Ahora dirá m k vista de mapa, y ahí vamos. Y nosotros,por
supuesto,
estamos por
supuesto, poniendo los puntos de exclamación aquí el opcional implícitamente desenvuelto porque sabemos un hecho que vamos a hacer orden hasta la U.
Y. Y. Y r. AP no funcionará sin ella. Y así si obtienes un bloqueo en tiempo de compilación, solo
necesitas arreglarlo, y entonces nunca tendrás que preocuparte por ello de nuevo. Tan completamente. OK, una cosa más que tenemos que hacer es tener al delegado para la vista de mapa aquí. Bueno, si queremos hacer eso, vamos a hacer ese próximo video. Dejémoslo como vamos a dejarlo como es para ahora mismo. Yo solo quiero ponerme en marcha esto con las cosas calderosas que necesitamos. Voy a deshacerme de Recibió aviso de memoria. Y lo que voy a hacer es implementar el protocolo de vista de tabla, delegado y fuente de datos, métodos o funciones. Llámalo como quieras. Y aquí vamos. Entonces sabemos que necesitamos una serie de secciones en vista de tabla, y por ahora, solo
devolveremos una. Yo siempre cuando estoy codificando, siempre consigo las cosas de calderilla hechas primero e intento conseguir una compilación lo antes
posible . Ah, ¿
significa? Ejecuta la aplicación lo antes posible s para que pudiera asegurarme de que todo está bien para ir El número de secciones y vista de tabla y necesitamos vista de tabla, número de filas y sección. Ahora mismo, sólo le
devolveremos uno. ¿ Y qué más necesitamos? Una mesa de ustedes? Esto es conseguir cosas viejas necesitamos vender ruta de índice fero. Y por ahora, solo para apaciguar las demandas de la función, devolveremos la celda de vista de tabla. Simplemente crearemos uno genérico por ahora mismo. ¿ Qué más necesitamos sólo por diversión para conseguirlo todo el camino? Hagamos Did Select Row did select Crecer. Es como artista. Es electro en camino de índice. Asegúrese de que no
seleccionó, Did De Select escribió en la ruta del índice. De acuerdo, así que esto se ve bien. Esto se ve bien. Ya no me está gritando, lo cual es bonito. Volvamos a nuestro storyboard aquí y quiero conectar estas cosas. No voy a abrir el asistente de editor esta vez. Solo voy a hacer clic derecho en este icono naranja aquí y solo voy a arrastrar mi vista de tabla a mi
vista de tabla. Voy a arrastrar mi mapa a mi mapa y tal vez te estés preguntando ¿por qué lo hace de esta manera? Simplemente debe arrastrar y soltar de los controles. Bueno, a veces que cuando tienes ambos abiertos, podría correr más lento especialmente si una computadora más lenta. Es decir, no lo
hago, pero a veces es más fácil solo que cuando estás en el espíritu de recubrimiento solo para ir en código y luego hacerlo así también a ti puedes hacer lo que quieras. No soy tu jefe. Está bien, eso me queda bien. De acuerdo, estoy asumiendo que tengo todo ahí. Tal vez no. Vamos a seguir adelante y sólo correrlo y ver abriré mi iPhone seis años y vamos a correr, ¿ acuerdo? Está arriba y en marcha, Vamos a dar click en segundo y tenemos un mapa y tenemos una vista de tabla en blanco, lo cual está bien por ahora. Por lo que definitivamente está funcionando. Y por supuesto, este es un mapa real. Puedes, ya
sabes, Vamos a ver qué pasa hoy en Utah. Podría decirte lo que está pasando. Es frikin nevando. Necesito moverme. Ustedes tienen alguna pista en casas fuera de Utah donde es impresionante todo el tiempo. Hazme saber S Oh, sí. De todos modos, el mapa definitivamente está funcionando y la vista de tabla es buena. No hay choques ni herederos. Adelante y llamemos a este video hecho. Tenemos ¿Eres tú? Yo configuré en el siguiente video emocionante. Haremos algunas cosas de mapa divertidas con ubicaciones, así que eso es todo. Mark Precio a profundidad pendientes punto com. Nos vemos pronto
73. DevCamp iOS 9: trabajar con la locación del usuario: volver de nuevo, todos Mark Pricier Deb pendientes dot com Y la última vez conseguimos nuestra vista de mesa y nuestro mapa funcionando y listo para ir no haciendo mucho, pero
ahí, ahí y no hay choques. Entonces en este video, vamos a conseguir la ubicación del usuario y dejarme explicar el proceso. Lo que dio es que le pides al usuario ubicación cuando quiere usar cuando quieres que tu app use esa ubicación o esa ubicación de usuarios. Y así tenemos que configurar esto en nuestro código. También necesitamos configurar esto en los permisos en nuestra info top the list file. Entonces sigamos adelante y empecemos. Primero lo primero. Siempre que estés trabajando con la ubicación o dislocaciones de un usuario en general, vas a querer configurar el gestor de ubicación con el administrador de ubicación C l l. Entonces estoy creando una constante aquí, y voy a seguir adelante y pararme. Ella se lo comió aquí a la hora de inicialización porque lo necesitamos de inmediato del bate. Y básicamente el administrador de ubicación va a administrar qué permisos están disponibles para ese usuario porque un usuario puede decir que
no, no use mi ubicación. Ellos pueden apagarlo, y así es necesario poder saber si lo han negado o aceptado, etcétera. OK, también, siempre que estés trabajando con mapas, si haces algo además de solo mostrar el mapa, vas a querer usar el delegado de vista de mapa M K m k map view delegado. El delegado de vista de mapa M K tiene una serie de funciones opcionales que puede implementar en respuesta a eventos de mapa. Debido a que la mayoría de los eventos de mapas son asincrónicos, no
van a ser instantáneos. Y así tienes que volver a llamarte cada vez que las cosas se completen. Al igual que si el ábside recuperaba la ubicación del usuario, usaba el GPS, cosas así. Entonces voy a mandar click a esto solo para mostrarte que tienes un montón de funciones que están disponibles para ti aquí mismo. Vista de mapa delegados como el cambio regional. Matt View comenzará a renderizar mapa un montón de cosas diferentes aquí que puedes usar . Puedes referir esto y museos en tu aplicación. Entonces ahora ya sabes a dónde ir, qué hacer. Gestor de ubicación administra ubicación para un usuario. Qué permisos, Etcétera. OK, así que ahora tenemos al gerente de localización. Lo que queremos dio es cuando se carga la vista. Queremos ver si el usuario nos ha dado autenticación para usar la ubicación. Si no lo ha hecho, queremos pedirle autenticación al usuario. Ya sabes, esos pequeños popups en la pantalla que decían:
Oye, Oye, ¿quieres dar esto con permiso para usar la ubicación? Necesitamos que Teoh cree algo que haga eso, pero no queremos hacerlo a la vista sí cargó porque esto sólo se va a cargar
más o menos una vez cuando las vistas se cargaron por primera vez bien en la memoria y nunca se vuelvan a llamar. Pero queremos asegurarnos de que cada vez que el usuario vuelva a esta vista que los permisos estén ahí para que realmente puedan usar la ubicación. Entonces lo vamos a poner en realidad, la vista. ¿ Apareció, Pero vamos a crear una función para así y tener que hacer, peer call esa función, si eso tiene sentido. Entonces sigamos adelante y creemos esa función que vamos a llamar aquí. Voy a hacerlo, pero aquí al fondo y vamos a llamar a esta ubicación fuera de estado. Está bien. ¿ Dónde está mi corsé de cierre? Ahí vamos. Abajo un poco aquí. Para que lo podamos ver. Entonces ubicación fuera del estado y es solo una buena función de conveniencia que vamos a usar para comprobar el estado de la ubicación y los permisos. Y así vamos a seguir adelante y solo llamarlo aquí y verlo aparecer solo para prepararlo. Y eso me queda bien. Entonces sigamos adelante y hagamos lo que necesitamos hacer. Entonces si gestor de ubicación CLL el estado de autorización es igual a punto autorizado cuando está en uso. De acuerdo, entonces hablemos de eso cuando llamamos a ubicación fuera de estado, cada vez que se ve aparece sucede. De acuerdo, queremos comprobar el estado de autorización. Entonces aquí hay dos tipos de estados. Ahí está autorizado cuando está en uso. De hecho, nos limitaremos a mirar a ambos aquí y hay victoria autorizada siempre autorizada. En uso es cuando se quiere autorizar o tener al usuario el uso autorizado de la ubicación mientras la APP se está ejecutando mientras están interactuando con ella. De acuerdo, esta es la forma recomendada por Apple de trabajar con ubicación autorizada siempre significa que tu app siempre puede estar consiguiendo ubicación en segundo plano. Y Apple no recomienda que a la seguridad sus problemas de seguridad, y drena tu batería s o esta es la forma recomendada. Por supuesto, no se
te prohíbe el uso autorizado. Siempre. Solo tienes que saber que puedes tener más usuarios que declinaron esa opción porque no quieren que muera
su vida de batería. Pero si Europa requiere que Europa lo requiera. Entonces lo que estamos haciendo es que estamos revisando. Estamos llamando a este estado de autorización, acuerdo? Y sabe que en realidad no estamos llamando a esto en nuestro objeto de administrador de ubicación aquí. De acuerdo, lo
estamos llamando. Es una,
uh, uh, una función estática aquí, ¿de acuerdo? Y así lo estamos llamando a la clase real misma. Y así lo que queremos dio decir mapa que muestran la ubicación del usuario es igual a verdadero. De acuerdo, Entonces cuando se ve, parece que pasa, vamos a comprobar el estado de apagado, ¿de acuerdo? Y vamos a decir, hey, es si está autorizado, ganar y usar difusores autorizados para usar permiten que su ubicación sea utilizada cuando el uso ausente . Vamos a seguir adelante y mostrar la ubicación habitual en el mapa, luego el mapa mostrará esa ubicación. ¿ De acuerdo? De lo contrario, necesitamos mostrar ese pop up que en realidad pide permiso al usuario. De lo contrario Bueno, diga gerente de ubicación que solicita cuando está en uso autorización. Entonces si el usuario aún no ha dado permiso. Esta declaración de otra cosa va a ser llamada. ¿ De acuerdo? Y se va Teoh, muestra ese pop up. Esto es Hey, ¿quieres dejar a este usuario, uh o quieres esta app? Tener mi ubicación básicamente más o menos así que eso es genial. Un par de cosas que tenemos que hacer aquí es, por
supuesto, establecer el delegado del mapa. Entonces mapa dot delegado es igual a sí mismo. De acuerdo, si no haces esto esto esto Esto no va a funcionar. De acuerdo, Tendrás problemas. Está bien, Así que sigamos adelante y pongamos nuestros puntos de venta de vista de mesa también a o discúlpame delegados, no puntos de venta. Ya lo hemos hecho. Igual. Auto y tabulador de tabla, inal tabla vista punto Fuente de datos es igual a sí mismo. De acuerdo, hay una cosa más a la que tenemos que dar de baja. Ya lo mencioné antes, pero estos son los permisos. De acuerdo, Entonces lo que vamos a dio es ir a info dot p list, y en el elemento muy inferior aquí, haga clic en el signo más, ¿de acuerdo? Y voy a pasar el ritmo, y luego te lo leeré porque es largo. De acuerdo, Entonces el nombre clave es N s ubicación. Cuando esté en uso descripción de uso Vale, intenta decir que cinco veces rápido de nuevo en esta ubicación. Cuando esté en uso descripción de uso, asegúrate de que esté deletreada igual que la tengo aquí camello cascara. Si no lo haces, se romperá. Y lo que tenemos que poner aquí mismo en el valor real es el mensaje que quieres mostrar
a los de la UE. Recuerda cuando aparece el AP, cuando aparece la APP en las cargas de usuario del mapa, va a mostrar ese pop up diciendo:
Hey, Hey, ¿quieres darle acceso a este usuario? ¿ Quieres que esta app acceda a tu ubicación y luego podrías tener tu propio mensaje aquí. En nuestro caso, vamos a decir ubicación necesaria para comprobar la distancia a las ubicaciones de los campamentos de arranque. Queremos obtener un mensaje que diga claramente por qué quieres dar la ubicación para que el usuario pueda tomar una decisión educada. De acuerdo, así que esto se ve bien. Ahora, sigamos adelante y solo ejecutemos esto y veamos qué pasa. Asumiendo que lo he hecho todo correctamente, Nunca se sabe. Yo meto mucho la pata. De acuerdo, Click. Segunda vista. Y bueno, ahí hay una ubicación. Um, ya
sabes por qué no he leído esto antes. Y así no me pidió ese pop up. Lo que realmente voy a hacer aquí es que en realidad voy a eliminar esta aplicación del dispositivo y volver a construirla, ¿de acuerdo? Debido a que esas ubicaciones serán almacenadas. Recordará tu decisión para que no tenga que seguir preguntándote. Entonces esta es una buena nota. De acuerdo, Si estás probando cosas y te gustan, ¿dónde está mi pop up? Adelante y borra la app porque almacena esa información localmente en ahí que has aceptado permiso. Entonces solo sabes si quieres probar y quieres que ese pop up vuelva a aparecer, haz tu fuera y reconstruirlo. Adelante y probemos eso Ahora. Segundo, ahí se permite arrancar campamentos. Accede a tu ubicación mientras usas la app. Ubicación necesaria para comprobar la distancia a las ubicaciones de los campamentos de arranque. Eso es lo que ponemos ahí. Entonces si hago clic en permitir, entonces la manzana empieza a usar esa ubicación. De acuerdo, lo cual es bastante guay. Ahora, déjame mostrarte una cosa más. Algo de esto aquí abajo en el fondo aquí. Cuando tu aplicación se está ejecutando en el simulador, puedes simular una ubicación real. Entonces si voy a, digamos San Francisco, California. Está bien. Yo cogí eso del pequeño desplegable de ahí abajo. Voy a seguir adelante y detener la aplicación y reconstruirla aquí y ahora realmente puedo estimular ciudad de
Nueva York. Disculpe. San Francisco, Nueva York. ¿ Qué? Fumar algo aquí Porque simula San Francisco en el mapa porque, eh, vamos. Ahí vas. Uh, y ahí está, Como lo pudiste ver. Por supuesto, puedes hacer doble clic para acercar aquí, pero nota el problema. Cómo el mapa está demasiado alejado. Ni siquiera es útil para nosotros. En realidad vamos a arreglar eso en el siguiente video. Pero así es como en realidad se puede simular una ubicación. Te recomiendo encarecidamente que hagas todos tus mapas de dispositivos reales y pruebas de ubicación en un dispositivo. Eso son las comparecencias. Diga, haga su ubicación de pruebas de mapa en el dispositivo. El motivo es que el GPS es más preciso. La simulación está encendida. Un simulador no es una buena representación de cómo trabajar con mapas y GPS. Usted absolutamente, absolutamente, absolutamente necesita probar en un dispositivo. No Shippen app sin pruebas. Ah, mapas y GPS en tu dispositivo. Entonces vas a querer ejecutar eso en tu dispositivo, si puedes. Para todas tus aplicaciones, se te hará más evidente cuando empieces a hacer cosas más complejas. Pero eso es todo. Por ahora. Tenemos nuestro sencillo mapa funcionando. Estamos mostrando la ubicación del usuario en el siguiente video. Lo que quiero hacer es establecer un nivel de zoom cuando el primero lo carga en el nivel de zoom adecuado. Eso realmente tiene sentido para las aplicaciones, pero eso es todo por ahora. Mark Price it Deb pendientes dot com
74. DevCamp iOS 9 App: expandiendo en el mapa: Oigan, ¿qué pasa, todos? Mark Price Escucha con pendientes sordos dot com y previamente implementamos un mapa y una
vista de tabla que no hace absolutamente nada. Y luego implementamos la ubicación del usuario con permisos para que muestre la ubicación del usuario en el mapa. Pero lo siguiente que queremos hacer es establecer el nivel de zoom del mapa porque está demasiado lejos. Y no es útil, sobre todo si estamos buscando ubicaciones. Ya sabes, asumió esto pronto Supongamos que esto es como una aplicación de Starbucks, ¿
verdad? O haces una búsqueda y probablemente a menos de cinco millas de ti, dependiendo de dónde vivas. Hay de 3 a 5 Starbucks y así quieres que te acerquen de una manera que tenga sentido para tu aplicación específica. De acuerdo, entonces, quiero decir, si estás haciendo una app que es ya sabes, bases militares de
U S, ya
sabes, que se extenderá por todo Estados Unidos, conoce a tu mapa podría ser mucho más grande. Podrían ver a todo EU o algo así, pero, uh, eso no es lo que estamos haciendo. Entonces vamos a seguir adelante y establecer el nivel de zoom, que es importante saber para cualquier aplicación. Y así vamos a seguir adelante y hacer eso ahora. Primero lo primero. Necesitamos una distancia de ubicación C L. Entonces hagámoslo aquí. Va a ser una constante. Vamos a llamar a esta región radio ubicación CLL, distancia
dissed, y vamos a ponerla de inmediato del bate a 1000. OK, y es un doble. Es sólo una especie de alias de tipo aquí que da un nombre diferente, pero es importante, uh, que utilicemos el tipo real que vamos a necesitar, bien y tipo usado para representar una distancia en metros, ya sabes? Por lo que unos 1000 metros estaban poniendo aquí número arbitrario. Esto es justo lo que sentí. Luce bien. Está bien. Ya sabes, son unos 3000 pies más o menos. Uh y ya sabes, ni una milla jugará con esto en tan solo un minuto, pero necesitamos establecer una tasa, un radio de región. Se trata de un valor por defecto que se establecerá para el radio de nuestra de nuestra región. Ahora mismo son unos 1000 metros, está bien. Y lo siguiente que queremos dio es tener una función aquí, y no tiene que estar en una función si solo quieres hacerlo una vez. Pero me gustó poner todo y funciones por si acaso alguna vez necesito reutilizarlo. Y vamos a llamar a este mapa de un centro sobre la ubicación, y vamos a pasar en la ubicación actual de los usuarios. De acuerdo, así cl ubicación, ubicación
CLL. Está bien, eso funciona. Entonces la idea aquí es cuando la APP obtiene la ubicación del usuario, está bien, trabajando y escucha aquello que aún no hemos implementado. Vamos a agarrar esa ubicación de los usuarios, y lo iban a pasar al mapa central en función de ubicación y en realidad acercar el mapa al nivel que queremos que sea. Entonces lo que voy a dio dentro de esto es ahora crear una región de coordenadas, así que voy a crear una región basada en coordenadas. Ubicación del usuario es igual a m kay coordenada región hacer con distancia. Ese es el que queremos. Es un poco largo. Eso está bien. Entonces, senador coordinate va a ser ubicación punto coordinate. Entonces recuerda, estamos pasando por la ubicación del usuario aquí, ¿de acuerdo? Y así una vez que tenemos eso, ubicación de
los usuarios fueron realmente agarrados la cancha en ella fuera del objeto de coordenadas fuera de ubicación. Está bien. Y coordenada tiene longitud y latitud. Si mando haga clic en esto, um, no
se muestra aquí, pero básicamente es una ubicación. Coordinar a D. C. Si éste demuestra que hay latitud y longitud. OK, así de acuerdo como latitud aterrizada y longitud. Y, um, prácticamente
haces cualquier cosa cuando tienes latitud y longitud y lo segundo
que queremos pasar aquí es lo que creamos antes Radio Región. Y vamos a multiplicar estas veces sólo para hacerlo más largo unos 6000 pies, unos 2000 metros más o menos, sólo un poco más de una milla. Y de nuevo, se
trata de números arbitrarios. Es una especie de look y feel tipo de cosas. Y la razón por la que dejé esto aparece en un valor predeterminado de 1000 en lugar de construir toda la distancia justo aquí es por si acaso. Quiero volver a usar eso para otra cosa, y puedo ejecutar mis propias matemáticas en la otra cosa que quiero usar. Pero por ahora, tiempos dos se trata de radio de la región derecha Times dos para el tercer argumento aquí. De acuerdo, así que acabamos de decir una región de coordenadas sólo una región que como que queremos acercar. Y luego en tu mapa, solo un mapa que establece región. Está bien. Y vamos a decir coordina región animada. Por supuesto. ¿ Por qué no lo haríamos animado? Entonces eso me queda bien. Entonces cuando se llame al centro de la ubicación del mapa, se va a agarrar. Va a crear una región basada en la distancia que queremos, ya
sabes, arcos como poco más de una milla más o menos. No sé cuántos kilómetros es eso. A lo mejor ustedes pueden traducirlo. Aquellos que están fuera de la U. S. Y eso se ve bien aquí. Por lo que lo último que necesitamos dio tiene realmente encontrar una manera de conseguir este mapa central en la ubicación para ser llamado. Y eso, por
supuesto, sucederá cuando el mapa obtenga la ubicación del usuario o cuando la APP lo haga. Y entonces llamará a esa función delegada de devolución de llamada de la que te estaba hablando. Entonces vista de mapa y queremos ahí acaba de hacer actualización ubicación del usuario le dice al delegado que la ubicación del usuario se actualizó OK, funciona para mí. Entonces esto es un simple como decir si dejar suerte para la ubicación, ubicación
del usuario, ubicación del
punto y luego vamos a decir centrar a Matt en la ubicación y pasado en esa ubicación. De acuerdo, eso tiene sentido. ¿ Qué está pasando aquí? Por lo que hemos dicho que queremos que la APP empiece a rastrear la ubicación del usuario. Nos dieron permiso. Y así el delegado de mapa del delegado de mapa M K va a empezar a llamar a funciones si las hemos implementado. Y si los implementamos, va a llamar y pasar en esa ubicación de usuarios, que está justo aquí. Ahora, la razón por la que estoy haciendo y si vamos es porque si entramos en esta ubicación de usuario m k, noten cómo la ubicación es opcional, OK, no
queremos simplemente forzarla a desenvolverla. Si hubiera un problema y nos devolviera un objeto Neil, se estrellaría. Entonces por eso estamos usando una opción de valor porque aquí estamos requiriendo un valor real . Por lo que sólo senador el mapa cuando realmente tenemos una ubicación. Eso es lo que está pasando aquí. De acuerdo, Y veamos si realmente funciona bien en el simulador. Si no lo hace, seguiré adelante y lo tiraré hacia arriba en los dispositivos Bueno, también. Pero vamos a darle una oportunidad en el simulador aquí. Aquí es donde empezó a volverse realmente importante. Empiezas a probar en dispositivos reales, así que espero que solo se quede en la región de Nueva York y realmente se acerca porque está asumiendo una ubicación para nosotros aquí. Entonces es rápido. Segundo, vamos a ver si hace zoom en Bam. Y ahí lo tienes acercado,
uh, uh, ya
sabes, unos 6000 pies o así un poco más de una milla aquí en San Francisco, y se ve bien. Entonces para recapitular lo que hemos hecho hasta ahora, no
es mucho código, Realmente. Las cosas con respecto a los mapas realmente están implementando el delegado de vista de mapa. Eso es lo que hemos hecho hasta ahora. OK, y luego le pedimos al usuario una ubicación cada vez que aparece la vista. O mejor dicho, vemos si los usuarios autorizados para la ubicación ya si no lo es. Después pedimos ubicación, aseguramos de que en el archivo info dot P lis, tengamos esa propiedad ahí dentro, y luego una vez que el usuario busque, tenemos permiso para usar la ubicación de un usuario cuando el mapa en la APP realmente agarra que la ubicación de
los usuarios. Está bien, va a volver a llamar. Esto sí actualizó las ubicaciones de los usuarios. lo actualizó. Y cuando llame a esto, vamos a llamar al centro en el mapa donde realmente acercamos a la cantidad con la que
jugamos . Y de nuevo, esto va a juicio al aire por ti. Hasta dónde quieres acercar o no. Esto no es un tipo de cosa de un solo sentido. Simplemente agarras una región. Acabamos de crear una región en el mapa dijo:
Oye, Oye, vamos a entrar en esta región aquí. Eso tiene sentido. Entonces eso es lo que hemos hecho, haciendo grandes avances. En realidad ya puedes hacer muchas cosas geniales con esto, solo con este conocimiento limitado aquí. Pero eso es todo. Por ahora. Sigamos adelante y sigamos adelante y Ford.
75. DevCamp iOS 9: anotaciones y Geocoding: Bienvenidos de nuevo a la fiesta, todos. Mark Pricier Deb pendientes punto com. Y hoy vamos a continuar nuestro proyecto aquí. Y lo que vamos a hacer es que vamos a tener clavijas caídas en las matemáticas. ¿ De acuerdo? Esas se llaman anotaciones, y lo que también vamos a hacer es que vamos a conseguir algo adverso es, y vamos a geocodificarlas. Y lo que es la geocodificación es tomar una dirección basada en cadenas más o menos y convertirla coordenadas de
latitud de longitud. Y sigamos adelante y empecemos. Primero lo primero es que sigamos adelante y consigamos algunos istas adversos Ve a Google aquí y lo puedas Dio ya tiene algunas direcciones que voy a pasar por aquí en tan solo un momento. Pero lo que se puede dio es este un San Francisco en realidad ir dedo a pie sede de manzana en Infinite Loop? Cupertino. Ha estado ahí, por cierto. Súper cool. Deberías ir a comprobarlo. Tienen una tienda de manzanas con productos exclusivos de manzana y artículos que solo puedes conseguir en la ubicación de la sede si no lo sabías. Y entonces qué? Hice el agarrar estos agregan versus fue que acabo de ir y encontrar lugares como este Cupertino en, y luego acabo de copiar la dirección, así. De acuerdo, así que adelante y encuentra algunas direcciones que te gusten en tu barrio y tu ciudad en tu país, igual que lo hice aquí. De acuerdo, entonces lo que voy a dio va a copiar sobre algunas direcciones, ponlo aquí mismo. Está bien. Y estos en realidad están en Cupertino simplemente bien. Es sólo una matriz de direcciones. De acuerdo, Dirección de direcciones
String, Al menos en EU Es dirección. Um, ciudad. Disculpe. Ni siquiera sé de qué hablo. Es el Es la dirección de la calle. Y luego la ciudad y luego el estado. Y luego el código postal. Tan bueno. Pero tus direcciones en, sin embargo, se supone que
están formateadas en tu país en particular. Y eso es con lo que vamos a estar trabajando. Kayla. Anotaciones de Saga. ¿ Qué es una anotación? Bueno, una anotación es simplemente una clase de objeto que representa una ubicación en un mapa. Y hay algunas cosas muy específicas que debes hacer con las anotaciones, así que voy a hacer clic derecho en los campos de arranque de muerte. Voy a ir al archivo nuevo. Vamos a crear un archivo swift click siguiente, y vamos a seguir adelante y llamar a este campamento de arranque y notación. Estamos fingiendo que tenemos un campamento de arranque o varias ubicaciones de campamento de arranque, y necesitamos crear una anotación para ello. Entonces sigamos adelante y creemos eso ahora y descubrirás que es bastante sencillo trabajar con él. Bueno, lo primero que haces es importar kit de mapa. ¿ De acuerdo? Y luego volvamos a clase de crédito. Esta es la anotación del campamento de arranque. Ahora, aquí hay algo que es importante para una anotación. Teoh. Ser una anotación que debe heredar del objeto N s. Está bien, no
puedes. Trabajo con anotaciones sin hacerlo. Y luego necesita ajustarse a la anotación M K. Um, protocolo mi aquí. Y si mando, haz clic en este tu así. Demasiado pequeño. Ahí vamos. Perdón, chicos, Si hago clic aquí, me llevará al protocolo. Y muy
importante, requiere de una propiedad llamada coordinate y luego opcionalmente tiene un título y un subtítulo . De acuerdo, si piensas en una caída de pin en el mapa del IOS, probablemente los
hayas visto. A veces es un simple como sabes, hay saneamiento y hay un llamado que tiene un título en un subtítulo sobre él. De acuerdo, entonces lo más importante, sin embargo, ¿es esta coordenada? Entonces somos objeto. Nuestra clase debe conformarse a este protocolo y tener una coordenada que, por
supuesto, C l l coordenadas de ubicación deberes tienen una latitud y una longitud. Ah, OK, así que ahí lo tenemos. Hemos implementado la definición del protocolo. Adelante y en realidad cumplir con las exigencias de ese protocolo con las coordenadas. Por lo que necesito crear una propiedad llamada coordinate. Está bien. ¿ Y es BCL ubicación para coordinarse a D? Voy a crearlo justo aquí fuera del bate,
como en solo ah, como en solo ah, genérico la ubicación genérica o discúlpame, coordenada
genérica. Pero hay que tener esto encendido aquí así como esto. Esto está cumpliendo con las exigencias del protocolo. De acuerdo, yo soy el nombre. Todo tiene que ser así. ¿ De acuerdo? Esto es lo que estamos diciendo, Hey, ya que estamos implementando este protocolo, vamos a implementar esta propiedad aquí llamada coordenada de este tipo. De acuerdo, Si no lo haces, no va a funcionar tan,
muy importante. ¿ De acuerdo? Y entonces vamos a crear un linchamiento inicializar er donde pasamos en cordón en él. Donde pasar una coordenada. Está bien para ti. Esa coordenada es igual a coordenada, y eso es todo. Esa es nuestra anotación. Eres como, Eso es fácil. Bueno, todo lo que es es una representación en el mapa. Se puede personalizar a los clientes. Eso es mucho más. Pero esto es todo lo que necesitamos en este momento. Tan solo una simple anotación. De acuerdo, entonces volvamos a nuestra ubicación. VC. Entonces tenemos direcciones, ¿verdad? Pero con tu mapa, realmente
necesitas trabajar con coordenadas. Porque, recuerda, como acabas de ver en nuestra anotación del campamento de arranque subiendo aquí en nuestra anotación del campamento de arranque. Se busca una coordenada con la latitud y longitud, por lo que las anotaciones funcionan con coordenadas. Entonces, ¿cómo metemos estas direcciones en coordenadas? Bueno, tenemos que hacer algo de codificación geo para no confundirlo con el cobro de geo a donde vas y encuentras basura en la tierra. codificación geo es el proceso de tomar contra el es adverso basado en cadenas y convertirlas coordenadas
utilizables y la codificación geo inversa es poder tomar coordenadas y
convertirlas en direcciones legibles. Está bien. Y no tienes que usar el guei p i para esto. Algunas personas piensan que dio algunas personas aprovecharán Google, usan su sistema de geocodificación. En realidad, apple tiene un sistema incorporado. Requiere servicios de red porque va a ir a hacer algo de magia detrás de bambalinas en la A p I. Pero podemos usarlo. Entonces sigamos adelante y lo usemos. Lo que vamos a hacer es toda una función llamada get place, place mark from address of type string. Entonces, básicamente, para cada una de las direcciones que tenemos, vamos a llamar a esta función y ruta en la dirección, y luego vamos a geogogearla. Vamos a decir cl geo codificador. De acuerdo, vamos a hacer eso, también. En Stan. Ella se lo comió ahí, y vamos a decir cadena de dirección de código Geo. Creo que éste es el que queremos. Sí. Dirección de código geo, cadena y acaba de pasar en la dirección. Al igual que así. Y en el manejador de finalización, basta con presionar enter y presionar enter de nuevo, e incluso puedes hacer clic aquí y presionar enter. Esta es una de las múltiples formas de trabajar con revelación, así que solo podría poner aquí marcas de lugar. De acuerdo, solo dale un nombre variable. Llama a éste ahí. Y entonces lo que va a pasar es que cuando
geocodifices esa dirección, te va a dar una matriz de marcas de lugar. Ahora Por supuesto, sólo
tenemos esta dirección aquí y estamos mirando hacia el camino. No, sólo
vamos a recuperar un objeto. Entonces vamos a asumir que vamos a trabajar en el supuesto de que sólo estamos
recuperando un objeto , pero aún así necesita ser una matriz. Y aún podría haber en Oeiras. Bueno, está bien. ¿ Estás conmigo hasta ahora? Adelante y sigamos adelante. Digamos que si vamos y solo llamemos a esto marcas como que significan múltiples marcas de lugar. OK es igual a marcas de lugar. Eso es lo que vamos a hacer es asegurarnos de que no se arrodille porque puede, porque hay una opcional con un signo de interrogación. Está bien. Y vamos a decir donde el conteo de puntos Marx es mayor que cero. Entonces lo que digo aquí es que solo quiero trabajar con las marcas de lugar. Si hay uno. Si no es arrodillarse y donde hay más, hay al menos un objeto en él. Entonces solo estamos ejecutando alguna lógica simple aquí. Podría haber dicho,ya
sabes, ya
sabes, si las marcas de lugar no es igual para arrodillarse y luego dentro de salida, ya
sabes, y, uh, donde las marcas de lugar ese recuento es mayor que cero. Pero si let es la forma
de hacerlo, claro. Y Swift. Y así para avanzar más allá si se deja bloquear significado ubicación, marcas de la
gente, cero comentarios es una ubicación de punto matriz. De acuerdo, así que recuerda, esta es una marca de lugar C l dentro de esta matriz. Ese es el tipo de la matriz. Y entonces lo que estamos haciendo es, si lo hemos pasado aquí, sabemos que hay al menos un objeto. De acuerdo, Entonces lo que hacemos es agarrar ese objeto de la matriz y, por
supuesto, es un lugar de sellado, marca, objeto y lugar de sellado. Mark justo así sucede que tiene una ubicación. Propiedad, como se puede ver aquí mismo. Ubicación CLL, que a su vez tiene sus coordenadas. Está bien. ¿ Estás conmigo hasta ahora? Ya termino de explicarlo aquí, pero tienes el código para hacer lo que quieras con él y mirar por encima tantas veces como lo necesites. Entonces tenemos ¿Entonces qué? Básicamente, en este punto, tenemos una ubicación válida con coordenadas que obtuvimos de las cadenas reales, lo cual es realmente genial. No teníamos que hacer mucho para que eso funcionara. Entonces lo siguiente que queremos dio es ahora que tenemos Ahora que tenemos una dirección válida aquí, queremos Teoh, toma esas direcciones y crea anotaciones. El doctor los dejó caer en el mapa. Pero antes
que nada, metamos esas direcciones en esa función ahí abajo. Por lo que esta función se llama get place mark from address. Entonces lo que voy a hacer aquí a la vista hizo Load es crear un bucle for. Entonces por cada anuncio en direcciones, sigamos adelante. ¿ Y qué crea? Dirección? Consigue marca de lugar a segundo miembro aquí. Entonces consigue el lugar mark de la dirección, y vamos a pasar en anuncio. De acuerdo, eso es para cada bucle. Simplemente va a llamar a esa función cada vez. Y esta función es asíncrona. ¿ De acuerdo? No es sincrónico. No va a pasar instantáneamente. Va a golpear a los servidores de la red, y va a golpear el A P I detrás de las bambalinas. Y así no está sincronizado. Se caerá en el mapa como les parezca conveniente. De acuerdo, ni siquiera
nosotros ni siquiera hicimos manejo de aire aquí. Al igual que, por ejemplo, si no hubiera tipo de aire, ¿qué querrías hacer en su lugar? No se puede encontrar ubicación o algo así o tal vez no hacer nada en absoluto. No estamos haciendo nada en absoluto. Y si tienes una aplicación compleja, por cierto, es posible
que no pongas esto aquí. Podría tener todo un servicio de codificación geo que cree un servicio singleton que gestione su codificación geo, creando anotaciones y devolviéndolas al controlador de vista. Lo estamos haciendo aquí porque nuestra app es tan malditamente sencilla. Pero sólo sepas que no tiene por qué estar aquí. Y hay múltiples formas de hacer lo que estoy haciendo. El principio importante para que entiendas es que si tienes una dirección de cadena, vale, tienes un geo codificado para convertirlo en una ubicación coordinada. Y luego si quieres mostrar clavijas en un mapa, está bien, quieres asegurarte de pasar coordenadas y ubicaciones en él. Entonces, ya sea que obtengas tus ubicaciones aquí o desde algún otro lugar o desde un servidor de lo que estés haciendo, eso está bien. Pero esos de los pasos y sólo estamos haciendo de una manera, sólo lo
estamos haciendo de una manera. Entrar en el mapa de una manera y forma así que queremos hacer ahora es en realidad, um, grandes anotaciones. Entonces hagamos que funk crear anotación. Esa es como una de esas palabras que, como, si voy demasiado rápido, simplemente
deletreo absolutamente incorrectamente ubicación. Ustedes tienen suerte. Se llega a ver todos los estúpidos errores que cometen y se ríen de mí, y no consigo ver nada. De lo que estás haciendo. De acuerdo, crear y notación para la ubicación. Es como Mary Poppins, tipo de, como rima o algo así. ¿ Al igual que qué? El hex. Mary Poppins. De acuerdo, entonces lo que queremos hacer es agarrar esa ubicación y convertirla en anotaciones. Leslie, que no deje boot camp equivale a anotación de boot camp. Este es el aula en ocho que hicimos. ¿ Y qué necesita? Es un coordinado. ¿ Cómo obtenemos una coordenada? Eso es tan fácil como hacer localizacion dot co ordinate ¿Todo se va juntando ahora? Entonces aquí mismo. Hemos creado esta ubicación, ¿de acuerdo? Y lo que estamos haciendo es que lo vamos a pasar por aquí, y luego vamos a pasar eso a la anotación. Por lo que tomamos una dirección de cadena, convertimos en una marca de lugar c l, que tenía una ubicación, ubicación
SCL, cual estamos agarrando la cancha y fuera de ubicación y poniéndola en la anotación. Y por supuesto, aquí mismo queremos seguir adelante y llamar a esa función. Crear anotación para ubicación. De hecho, necesitamos usar la palabra clave self ya que estamos dentro de un auto de cierre que crea anotación
para la ubicación. Debería hacer un rap que casi quería, como irrumpir en canción, decir esa anotación para ubicación. Está bien, ubicación. Y pasemos de suerte. Esta cerradura de aquí. Esta ubicación nos agarramos de la marca del lugar. Está bien. Y así allá vamos. Y la razón por la que no lo hicimos si vamos es para asegurarnos de que realmente tengamos objetos. Entonces si hemos llegado a este punto, no
deberíamos tener ningún accidente, porque ahí hay objetos válidos. Y así tenemos nuestro campamento de botas. Eso se ve genial. Está bien. Y así vamos a seguir adelante y decir mapa punto Añadir anotación. De acuerdo, esto se ve bien campamento de arranque. Entonces simplemente ahora lo estamos agregando al al mapa, así que vamos a seguir adelante en este punto y ejecutarlo y ver qué pasa. De acuerdo, asumiendo que lo he hecho todo correctamente, ojalá lo haya hecho. De acuerdo, ahí vamos. Estamos corriendo. Vayamos al segundo controlador de vista aquí. Y mira eso. Dejó caer tres gotas de alfiler, lo cual es bastante fresco. Ahora, si haces clic en él, no pasa nada. ¿ Verdad? Pero esas gotas de pin realmente representan esas direcciones. Entonces sabemos que está funcionando en este punto, que es go, que es realmente genial. ¿ Qué piensan ustedes? Sí, esto es impresionante. No. ¿ Y si no te gusta el rojo? Odio absolutamente el color rojo. Sólo estoy bromeando. Está bien. Pero ¿y si quieres cambiar el color o qué? Si quieres personalizar tu anotación en absoluto, que nosotros, por
supuesto, hacemos uno eso porque va a llevar a más personalización en el futuro que vamos a querer dio. Así que sigamos adelante y realmente creemos anotaciones personalizadas. Eso es lo que vamos a dio su función de crédito llamada vista de mapa para anotación. Esto es parte del delegado de vista de mapa aparecen en el mapa M K superior, usted delega. Entonces básicamente, ve aquí mismo cuando nos sentamos, sí
mapeamos la anotación del anuncio. Bueno, siempre que eso se llame detrás de bastidores, si el si los hemos implementado vino a la vista delegado bien, detrás de bambalinas, realidad
va a llamar a esta función antes de que ocurra cada uno de esos pasadores. Ahora no incluimos incluye antes porque es opcional. Pero lo que esta función sí vista para anotación es que la intercepta justo antes de que caiga en el mapa. Entonces hay una intercepción entre cuando se llama a esto y cuando esto es o cuando se
llama a esto , cuando el pin drop realmente va en el mapa que estas funciones llamadas entre Así podemos personalizar esas caídas de pin como veamos conveniente, que es lo que queremos hacerlo. Pero ten en cuenta esto una anotación también incluye ubicaciones. Entonces, ¿recuerdas cuando ese punto azul parpadeante en el mapa son tú y tu ubicación? Eso también es una anotación. Entonces también sabíamos lo que necesitamos para dar cuenta de eso. El punto de anotación es una especie de clase, así que si es una anotación de boot camp ya ves que estoy haciendo aquí, solo digo, Hey, si esta anotación que se está dejando caer en el mapa es un boot camp, hagámoslo algo, ¿de acuerdo? Y entonces si decimos,
digamos lo contrario si Anil Tae Shin dot es una especie de ubicación de usuario de Clase M K y en realidad podemos devolver
retorno Neil y luego aquí abajo, podemos devolver a Neil. Ahora probablemente estés pensando. Probablemente estés pensando en este momento. Um, espera un minuto. ¿ Por qué estás haciendo volver aquí, Neil Aquí y arrodíllate aquí. ¿ No es redundante? En realidad, es redundante. Pero quería mostrarles que así es como se comprueba la ubicación del usuario. Está bien. En un mundo real, podría haber dicho que en realidad sólo podría sacar todo esto aquí a mi regreso. Lo mismo te desbloquea estando aquí. Y si llegamos aquí, sabemos regresar, Neil. Pero solo para mostrarte explícitamente que necesitas devolver a Neil para la ubicación del usuario final, no
quieres tocar la ubicación del usuario. Simplemente déjalo tal como está. No juegues por ahí. ¿ De acuerdo? Entonces si es de tipo boot camp, sin embargo, ¿qué queremos hacer? Bueno, vamos a crear una vista de Anil es igual a M k pin vista de anotación. Entonces un campamento M, en vista de anotación es un pin como acabas de ver. Está bien. Y espera una anotación, y así voy a pasar la anotación que está cayendo en el mapa. ¿ Te acuerdas de éste de aquí? Está bien. Asignado en anotación. Está bien. Y re uso identifique ahora mismo. No es importante. Simplemente lo vamos a llamar por defecto. De acuerdo, Y digamos un O anil view dot pin color de la pluma de color tienda, como se podía ver. Aquí mismo es desucar ID. No lo uses más. Además, siempre
se limitó a colores específicos. color de tinte de pin te permite elegir el color que quieras, lo cual es realmente genial. Así que pin color carpa y vamos a seguir adelante y poner un color aquí. ¿ De qué color quieres? Nuevo punto de color blanco ¿Qué tal el color amarillo Se pone feo? Ilo Porque es mucho mejor que el rojo y otra vez podrías ti Qué color RGB valora lo que quieras ahí dentro pero que es realmente genial. Y luego un pensamiento de visión general anima, Drop. Hagamos que se anime hacia abajo. Por supuesto, eso me queda bien. Por lo animal Anil Ver que anima gota. Ya sabes cómo simplemente aparecieron allí antes. Veamos si podemos hacer que baje si es posible que no lleguemos a tiempo, porque puede cargarse demasiado rápido antes de cargarlo. Pero le daremos una oportunidad. Entonces eso me queda bien. Y por último, sólo
tenemos que devolver la vista de Anil. Está bien. ¿ Estás conmigo? En lo que va de momento. Entonces ahora que tenemos una ubicación válida y creamos una anotación aquí mismo Ok, entonces agregamos al Met. Bueno, agregamos esto al mapa, pero antes de que realmente caiga en el mapa cada vez que tenga un pin drop yendo al mapa, esta función será llamada automáticamente por el delegado por el delegado de protocolo. Y lo que estamos haciendo Esta razón estamos diciendo,
Hey, ¿ estás dejando caer una anotación de bota camp? Si es así, sigamos adelante y creemos un pin uno. De acuerdo, anotación
pin y hagámosla amarilla. Y luego regresemos ese en su lugar. Por lo que todavía va a tener Todavía va a tener nuestra invitación del campamento de botas. Como se puede ver aquí mismo, esta es una anotación raíz ya que hereda de anotación M k. Entonces es todo lo que la fecha sigue ahí, excepto que solo estamos cambiando el color en ella. Y veamos si esto funciona. Tengo curiosidad. Curioso. Está bien, se cargó. Vamos a dar clic en segundo y se acerca. Ah, eso es asqueroso Amarillo. Eres como tú ese rojo es malo. Oh, eso es bastante feo. Pero de todos modos, como puedes ver, nuestras gotas de tres alfileres ahora son amarillas. OK, entonces estas instalaciones de urinario de aire, por cierto, eso es lo que las representas con este desagradable color amarillo eso Ahí lo tienes. Y, uh, honestamente, simplemente no puedo aguantarlo. Chicos, Uh um hacer color negro. A ver. Ve cómo se ve un color negro,
Pero así es como lo haces. De acuerdo, así que tenemos muchas cosas pasando aquí, pero no es tanto abrigo, ¿de acuerdo? Has aprendido muchas cosas geniales justo ahora. Ahí vamos. Black Boehm, Estos son agentes. De acuerdo, Así que preguntas clase. No, Sin preguntas. Genial. Por lo que ahí lo tienes. Marcar precio a profundidades. punto com del papa Haciendo grandes avances.
76. Cómo funcionan las peticiones web: todo el mundo Marcar Precio aquí en dev pistas dot com. Y hoy estamos cubriendo un principio muy extranjero. Es básicamente cómo funcionan las solicitudes web, cómo funciona Internet en lo que respecta a realizar solicitudes web. No vamos a hablar de cómo realmente funciona Internet. Esta no es una lección filosófica sobre la privacidad y la conexión de Internet a todo tipo de chatarra. Se trata solo de cómo Teoh habla con servidor Web. Tan muy importante, aunque de hecho,
hasta que en realidad me convertí en desarrollador Web más adelante en mi carrera, Um, e hice esto sólo por diversión hasta cosas nuevas hasta que entendí lo que realmente estaba pasando detrás de bambalinas. Nunca fui realmente genial en interconectar con servidores en mi aplicación para iPhone, así que este es principio muy importante. Entonces, uh, veámoslo así. Entonces tienes un teléfono. De acuerdo, aquí está tu iPhone, ¿verdad? ve genial. Aquí tienes tu genial teléfono Android, ya
sabes, no el iPhone de una escuela, pero sigue siendo bastante guay. Y luego tienes este teléfono Windows reventado que nadie usa nunca. De acuerdo, aún podría hacer lo que solicita unas ventanas. Ustedes eran como imbécil. Yo digo lo que quiero y tú tienes que mirar. De acuerdo, entonces, uh, finjamos que son clientes, porque eso es lo que son. Estos clientes aéreos. Esto también podría ser una computadora, ¿verdad? Un navegador. Entonces clientes de Israel ahora en el pasado,
Ah,los Ah, sitios web solían ser muy estáticos, ¿
verdad? Al igual que frente. Y solo tienes un sitio web antes de que incluso existiera APS en la aplicación móvil de iPhone. Por lo que tendrías un sitio web tener datos estáticos en él. No haría mucho. Simplemente estaríais todos viviendo ahí. Pero a medida que pasan los días, los sitios web están empezando a pensar más. Y luego salió APS móviles, y es como,
Bueno, Bueno, ¿cómo conseguimos que nuestros datos hablen con nuestro APS móvil? ¿ Y cómo conseguimos que todo funcione? Bueno, um, hoy en día, Vale, todo está en la nube. Y cuando digo nube que significa servidores virtuales en todas partes, y nos permite la capacidad de que nuestros clientes hablen con nuestro servidor para que pudiéramos tener
un acceso instantáneo a datos a través de todas las plataformas. Entonces por aquí es donde tenemos nuestro servidor. Este es nuestro servidor en la nube. Está bien. Y, uh, tenemos un servidor aquí. Está bien. Y conectado a la nube es una base de datos. Podría estar viviendo en el mismo servidor o podría estar en un servidor diferente. Pero básicamente, base de datos es lo que va a almacenar permanentemente los datos. Y así tenemos a estos clientes que necesitan datos. Entonces, ¿cómo funciona? Bueno, probablemente obviamente habla con el servidor y envía de vuelta, y lo hace. Pero pasa un poco más que eso. Entonces, um, así con eso en mente, sin embargo, ese es el flujo básico. Los clientes hablaron con el servidor y el servidor está aquí abajo, y el servidor envía datos de vuelta, acuerdo? Y así es como típicamente nos comunicamos con dispositivos y en la web. Y básicamente, estas peticiones Y esta discusión de hoy, no
estamos hablando de otros temas. Simplemente vamos a asumir que así es como se hace, porque en su mayoría lo es. Vamos a hablar de http thes todo uso H T t p protocolo. Ahora bien, si veo esto en tu navegador como cuando estás escribiendo http Colon para sus últimos cuatro slash https, que es seguro. Um, has estado usando desde siempre. Y lo que significa es protocolo de transferencia de texto hiper. De acuerdo, protocolo de transferencia de
hipertexto. No lo voy a escribir. Puedes buscarlo en línea si quieres leer lo que representa,
Pero básicamente, Pero básicamente, es un protocolo que,
um, um, los clientes y servidores obedecen para pasar datos de ida y vuelta. Entonces si es así, por instancia, en Google Chrome está bien, están obedeciendo el protocolo http, que permite que los datos vayan desde su navegador al servidor y viceversa, ex cetera frame. Hay amigos web que hacen eso. tus clientes les gusten, uh, IOS. También está obedeciendo a las partículas http. Por lo que en IOS, utilizamos una clase llamada N S U R L sesión. De acuerdo, en esta sesión SQL permite realizar solicitudes Web a los servidores. Y así el IOS tuvo que implementar este protocolo. Android tenía que hacer exactamente lo mismo y tipo de ventanas. Entonces todas estas plataformas para que las bases de código salgan bajo fianza, para hablar con servidores, implementan este protocolo y más o menos ¿qué? ¿ Qué? Lo que haces en una solicitud es que acabas de pasar datos de ida y vuelta. De acuerdo, Entonces los datos van y van, ida
y
vuelta, y así hablemos un poco de una solicitud. De acuerdo, Así que tienes una solicitud web. Solo voy a llamar a peticiones web. Esa es una especie del término común. Entonces digamos que, um estamos haciendo un secuestro,ya
sabes, ya
sabes, para todos esos videos de gatitos. Entonces, ya
sabes, lindo gatito arriba. Está bien, Es un gato feliz. De acuerdo, Estamos haciendo un secuestro, y necesitamos hacerlo Así que el usuario aquí en este iPhone o cualquiera de estos dispositivos, alguno de sus clientes? Lo que han hecho es que han agregado una imagen de su gato, y queremos ahorrar en el servidor. Por lo que la próxima vez que carguen la app, la saca del servidor, y siempre está ahí. Entonces digamos que la solicitud se ve así. Y estas peticiones son, um van a estar en Jason. De acuerdo, um, también
puedes usar XML, pero casi todo el Internet se está moviendo a Jason. Y, uh entonces básicamente, digamos que tenemos un objeto de gato aquí, y, uh, tiene un nombre. Entonces este es un objeto llamado nombre. Es sin cita. Entonces son cotizaciones. Y, uh, el nombre es Liu Liu. Ok, hay una coma. Y luego, uh, tiene una,
uh, uh, una imagen o l Vale, entonces tal vez que tal vez tu iPhone lo subió a Amazon, y está almacenado el aceite aquí y ahora tenemos que enviarlo al servidor. Tenemos imagen o l Y esto es Http Colon, colon, lo que sea dot com y qué más en entonces? A lo mejor una descripción, ¿verdad? Bueno para decir DSC y ah, ya
sabes, este es mi gato favorito. Bloqueo probable. Entonces justo lo que hemos hecho aquí es que el usuario agregó un nuevo gato. Entonces desde tu perspectiva, hacen clic en el botón, Se tomaron una foto, hacen clic en el botón y dijeron,
hey, hey, salvaron a mi gato. Y así tomó esta petición aquí y en nuestro código. Escribimos algún tipo de código para transferir datos a Jason. De lo que vas a estar viendo como dio, lo cual es realmente genial. Y así básicamente, tenemos este texto ahora protocolo de transferencia de hipertexto. Por lo que solo estamos transfiriendo texto para la transferencia más barbero en texto a través. Por lo que nuestro cliente son iPhone aquí. Hace esta solicitud, y esta solicitud de Jason va al servidor y luego el servidor lo recibe dice:
Ok, Ok, este objeto se ve bien. El dato se ve bien. Adelante y almacenemos aquí. ¿ De acuerdo? Y por cierto, esto se le llama solicitud de post. Cuando estás publicando algo nuevo. De acuerdo, así que acabamos de publicar algo al servidor. Ahora, digamos que acabamos de cargar la app y queremos sacar una lista de los mejores videos de gatos. Bueno, esas han sido publicadas en el servidor. Entonces ahora acabamos de hacer este post represivo post uno nuevo. Tomemos nuestra app para iPhone. Déjame que me borre. Um, color
equivocado. Negro y negro. No una buena combinación. Sus egos simplemente cambian. Tú también. Blanco bajo detalle aquí. Y ahí vamos. Está bien. Y sólo voy a borrar esto. Sólo se aclara del espacio, ¿de acuerdo? Y así digamos que necesitamos conseguir una lista de videos de gatos. Entonces lo que vamos a hacer es hacer otra petición al servidor. De acuerdo, entonces estamos haciendo una petición. ¿ Y qué aspecto tiene la solicitud? De lo que hablamos, lo que hablamos aquí son solo las cosas que publicamos. Por lo que a esta cosa de aquí se le llama el cuerpo. De acuerdo, acabamos de hacer una pregunta de cartel, pasamos en el cuerpo, pero una solicitud tiene más que eso. Entonces si estoy haciendo una solicitud de get, bien, esto se llama una solicitud de obtener. Vamos a conseguir cosas del servidor y en una petición get. En realidad no suele poner un cuerpo. Lo que usualmente dio es que tu búsqueda viene con unas cuantas cosas. Viene con una URL, por lo que cada solicitud tendrá una niña. De acuerdo, um, podrías tener lo que se llama un encabezado. Entonces digamos o encabezan uno o más encabezados. Digamos que no puedes hacer solicitudes a menos que estés registrado. Por lo que a veces es típico en la parte de encabezado de las solicitudes http para pasar, ya
sabes, como una autorización y off token eso básicamente o tu nombre de usuario y contraseña. Entonces básicamente, dices, Hey, se
me permite hacer esta solicitud causa tal vez a veces en un servidor no quieres que nadie obtenga ningún dato. Si se trata de una cuenta bancaria, por ejemplo, ¿quieres que alguien entre en tu cuenta y obtenga tus datos? No. Entonces, ¿en tu cabeza? O podría tener algún tipo de contraseña o token de autenticación para decir, Hey, esto es lo que soy. Por lo que haces una solicitud y en este caso es una solicitud get. Entonces el servidor lo toma y dicen:
OK, OK, sí, este tipo está autorizado en nuestro caso en algunos del ábside para construir. No nos vamos a preocupar por la autorización. Se acaban de abrir AP ice que nos permitió obtener datos de él. Entonces básicamente, hicimos una solicitud de get. Los servicios? Sí, está bien. Y luego adivina qué manda de vuelta lo que se llama respuesta. De acuerdo, entonces el servidor envía de vuelta tu respuesta y luego el clank y maneja la respuesta, y eso es lo que vamos a hacer en nuestra aplicación. Entonces le devuelves al Jason esa respuesta. Es Jason en la mayoría de los casos, y luego lo analizas, y luego usas los datos S en tu aplicación. Entonces esas son algunas comunicaciones básicas del servidor ahí mismo. Ahora, sigamos adelante y solo borremos todo esto por un momento rápido. Muestre aquí algunos principios más. Esto es realmente importante para que lo entiendas. OK, entonces hablamos de un par de operaciones, acuerdo. Y hablemos de un poco más. Esas operaciones son una especie de conocido como un principio llamado multitud. Y si no sabes lo que significa crear, leer, actualizar y eliminar. De acuerdo, estas son las operaciones comunes que vas a realizar con datos y ah, en otras palabras, crea su post. Leer es conseguir. Se pone actualización y elite se borra. Entonces estos términos en común del aire que vas a estar viendo. Entonces cuando publicas algo, tu postear algo nuevo, Ok, ¿ supongas algo nuevo? Cuando estás consiguiendo algo, solo
estás recuperando, ¿de acuerdo? Y cuando estás poniendo algo que estás actualizando, Así que estás tomando los datos existentes y cambiándolo. Y cuando estás borrando, se ha ido, nena. De acuerdo, eso es un signo de exclamación. Está bien, así que esos la petición típica que vas a hacer su post se ponen, borra tu publicación a un servidor. Cosas nuevas. Estás recuperando cosas del servidor que estás actualizando o eliminando cosas. Eso es muy típico de la mayoría de las aplicaciones de las operaciones que vas a estar realizando en nuestro caso. Ya sabes, como en la app Pokemon, vamos a estar haciendo solo conseguir solicitudes. Mucho hecho absoluto, mucha APS solo puede estar haciendo peticiones de get. Y mucho de hacer realmente las cosas solicitadas por post está bien, también. Y así básicamente, cómo funciona es,
um, um, para recapitular lo que ya tenemos de lo que ya hablamos es ah, vas a hacer Aquí está tu cliente. Y aquí está tu servidor. De acuerdo, este es el servidor. Este es cliente. Por lo que el cliente siempre hará algún tipo de solicitudes, y el servidor en la mayoría de los casos siempre dará una respuesta. Entonces tienes respuesta. Tienes una petición, ¿de acuerdo? Y ellos tanto la respuesta como la solicitud la acatan acatan el protocolo http. De acuerdo, http, no
tienes que preocuparte por lo que pasa bajo las escenas con http. Es muy complejo. Un grupo de grandes, enormes empresas e individuos y líderes de pensamiento en el mundo se sientan y dicen: ¿Cuál es la necesidad de ser Internet? Y luego crean estándares, y este protocolo se modifica ocasionalmente. Y así básicamente, todos los clientes se adhieren a ella. Entonces si no les gustaba podrías crear tu propio protocolo. Haz lo que quieras, pero nadie lo va a usar. Ya sabes, Chrome tiene que adoptarlo. Tu app para iPhone tiene que adoptarla. Ya sabes, no tiene sentido construir el tuyo propio. Y así haces una petición. Si se tratara de una solicitud de post, podría tener un cuerpo. De acuerdo, podrías tener encabezados. Recuerda, el cuerpo es lo que envías al servidor. Ese Jason. Entonces si estás publicando algo nuevo, lo vas a pasar, Jason al cuerpo de respuesta. Um Bueno, el tipo de respuesta tiene el cuerpo a. En la mayoría de los casos, devuelves un cuerpo de datos, ¿sabes? Oye, como, por ejemplo, una solicitud de get. Cómo todos los videos del gato. Por lo que envía de vuelta una lista de Jason llena de videos de gatos, y ah, así es como funciona. No es tan malo cuando tú cuando lo miras desde esta perspectiva visual, solo
haces solicitud al servidor y ellos regresan. Y luego analizas los datos, etcétera,
Um, Um, así que cosas realmente geniales. De hecho, lo que podemos hacer aquí es simplemente demostrar un poco más cómo funciona. Entonces si cierro esto de aquí, salgamos de la tienda de fotos y sigamos adelante y abramos un navegador. ¿ Todo bien? ¿ Qué pasa cuando voy a google dot com? Está bien. Ahora propiedad del alfabeto. Si no has leído las noticias, Google ya no es Google. Bueno, lo es, pero no lo es. Y así google dot com, eres como, OK, ¿qué me estás mostrando? Esto es algo que hago todos los días. Bueno, sí. Entonces si algo interesante aquí, acabas de hacer una solicitud de get. Por lo que tu navegador Google Chrome. Se acaba de hacer una solicitud de get a Google y Google envió de vuelta hte familiar como Espera, ¿de qué estás hablando? Bueno, quieres hacer algo realmente genial. Estoy abriendo mi terminal terminal de espacio de mando. De acuerdo, ven por aquí en el lado derecho para que sea extra grande. Aquí hay algo interesante. Si escribo en curl google dot com curl es un,
uh, uh, un comando de Mac para hacer lo que solicita. Entonces el en el caso del navegador, el cliente es este navegador, y en este caso, el cliente es mi pelea terminal. Curl google dot com. Mira esto. Eso es interesante. Um, lo
hacemos mejor, uh, vamos a rizar los https reales. Www dot google dot com Eres como, Whoa, mira esto. Está enviando de vuelta HTML. Entonces lo interesante es que tu servidor envía datos de vuelta, y eso es todo lo que está pasando aquí en chrome. Las diferencias Chrome sabe manejar HTML, por lo que el servidor envía de vuelta. HTML dice, Haz lo que quieras con él, y así Chrome sabe cómo manejarlo porque es un navegador. Mi servidor está excusando. Mi terminal no sabe qué hacer con todo este html lo envía de vuelta, pero no puede hacer nada con él. Um, porque la terminal no es un navegador, entonces Pero ambos son clientes, y ambos hicieron exactamente la misma petición. Eso es realmente genial. Por lo que los servidores consienten de nuevo lo que quieran. Y así en este caso se envía de vuelta HTML realmente, realmente genial. Y así si volvemos con nuestro cartero si lanzo cartero aquí Ok, vamos a darle un segundo aquí, creo. Y esto tiene una Star Wars ap DiNozzo. H T T P s W e a p Dudo CEO slash ap hielo menos planetas prueba uno. Si quiero jalar una solicitud get y dar clic en enviar. De acuerdo
, me da datos. Ahora. Este también es un cartero cliente. Su propia situación. Quien esté haciendo la solicitud es un cliente. Por lo que aquí no nos dieron solicitud. Ocultamos ap I esto a p. Nos
envié de vuelta Jason. Y ahí está. Por lo que acabamos de hacer una solicitud de get. bastante cool. De acuerdo, um, esto es formato crudo. Acabo de hacer clic en el Robert, y esto es lo que tu Esto es lo que se verá cuando realmente lo consigas. Nosotros solo, ya
sabes, hicimos que se viera bonito, Um, y veamos qué pasa si lo intentamos. Voy a cocinar el botón de reinicio si intentamos cargar Google aquí, https google dot com y hago clic en enviar. Entonces es como,
OK, bueno, bueno, ahí está Ahí está el HTML que me dieron de vuelta, solo mi terminal, Así que lo mismo exacto. Pero si hago clic en Preview tiene su propia cosa del navegador, estamos como antes aquí. Y así de todos modos, punto ser es cartero es cliente. Su declinación de navegador Web. Tus iPhones adquieren Androides, un cliente, cualquier cosa que esté haciendo nuestras preguntas. Servir es un cliente. Todo lo que está pasando es que estás haciendo solicitudes en el servidor, enviando cosas de vuelta, y eso son solicitudes web. Así funciona. Entonces cuando estés cavando en estas cosas, solo debes saber que no hay magia pasando. Es solo Jason. En la mayoría de los casos se pasan de ida y vuelta, se
puede agarrar valores fuera de ella. Haga clic aquí para volver a cargar mi última solicitud. Se pueden sacar valores de ella. El nombre de rotación, tú Todas estas cosas son valores clave. Esta es una matriz. Um, vas a usar más o menos a Jason. La mayoría de las aplicaciones. Entonces eso es solicitudes Web. Así funciona. Vas a ver una acción mientras vamos por aquí. Pero si alguna vez tienes alguna duda de cómo funciona, te refieres de nuevo a este video encendido y sabes que este es un principio básico. Y si puedes entender esto, si puedes poner mucho en esto y realmente bajarlo, vas a estar por delante de mucha gente que acaba de salir de la escuela. Por cierto, si haces este curso y haces todas estas cosas, vas a estar muy por delante de las personas que están saliendo de las licenciaturas en informática porque salen sin conocimientos prácticos ahí todavía enseñando c plus en licenciaturas en universidades, ya
sabes quién usa C plus como los programadores de videojuegos y la NASA. Entonces si no estás planeando ser programador de juegos, no planeas trabajar en la NASA, ves de alguna manera cosas muy importantes. Aprende estos conceptos, bájalo. Mark Precio de la muerte pendientes dot com Gracias por afinar en, y te veo la próxima vez
77. Trabajar con POSTMAN: Oye, una marca pricier profundidad pendientes punto com Hoy vamos a hablar de Cartero. Entonces la cosa de esta película es un poco emocionante, pero también un poco seco. Sé lo que ustedes están pensando, pero no creo que este sea el cartero que probablemente esperan. Por cierto, es una película genial. Está bien. Algo así como más ahí. No lo sé. Verlo tal vez no lo veas. Aunque no lo compres. Eca Y, um Entonces, ¿qué es el cartero? Voy a teclear Cartero Chrome, Ok. Y básicamente, como desarrollador profesional de IOS, vas a interconectar con servidores web todo el tiempo. Y haces peticiones, y como hablamos ya puedes crear,
leer, actualizar, actualizar, puedes publicar cosas ya dichas,
Eso es crear, Eso es crear, um De todos modos, um, conoces todo tipo de operaciones y necesitas saber cómo va a quedar el Jason,
cómo va a quedar el día. Y así que a veces cuando estás en IOS, vas a conseguir ideas señalando al concierto puede parecer realmente desagradable. Es difícil saber si tu solicitud está llegando bien. Es difícil saber si tu código es malo o si la solicitud es mala o Tal vez estás llamando mal o de lo contrario así que lo que quieres hacer es que quieras conseguir cartero, así que ve a solo busqué hombres de post chrome y aparece justo aquí. Simplemente puedes hacer clic en Agregar a las mentes de cromo ya instaladas Y cuando hagas clic, agrega al cromo aquí mismo. ¿ Qué? En realidad va a dio lo tiraré por aquí en el lado derecho va a instalar,
um, um, el lanzador de aplicaciones de cromo justo aquí. Sólo tienes que hacer clic en eso y, uh justo aquí, tienes onda de cromo. Uh, no está ahí. Bueno, solo
agreguemos que no está ahí. No sé qué le pasó. Haga clic, agregue. Está bien. Y está revisando y su instalación. Se puede ver ahí mismo y allá. Está bien, así que ahora está instalado el cartero, así que voy a hacer clic en él, arrastrarlo por aquí. Este tipo tiene un poco aquí, ¿de acuerdo? Y sólo tienes que ir a la app. Y entonces lo que hace el cartero es que te permite simular solicitudes web como podrías hacer a través de la app, pero puedes ver exactamente qué datos estás recuperando. Entonces si los datos concuerdan aquí y luego los datos coincidan en tu IOS hacia arriba, lo
estás haciendo bastante bien. Entonces sigamos adelante y tecleemos en el navegador Star Wars, a p. I. Y está justo ahí. El de arriba. Es s w a p i dot ceo y lo que es,
es solo un gratis en línea un p I. Eso tiene cosas. Entonces, por ejemplo, éste tiene a Luke Skywalker, por ejemplo, Si pones esto tu Ellen aquí y entonces qué puedes dio como yo puedo Copiar esto aquí mismo. Ve por encima del cartero y este es un get request k Puedes cambiarlo de llegar a post a poner a borrar y todo un montón de otros. Pero esos los principales, puedes meter a la chica ahí dentro Y éste es Ford Slush people ford slash one slash y todo lo que tienes que hacer es click dicho y ahí está. Por lo que nuestra solicitud, golpeó el servidor en un dato enviado de vuelta, y aquí está en formato Jason. Y, uh entonces si estuviéramos haciendo esto en nuestra app y esto no estaba pasando, estamos consiguiendo algo más. Sabríamos que estamos haciendo algo mal con nuestro código y Así que todo el tiempo voy de ida
y vuelta el cartero haciendo diferentes peticiones, probando cosas para ver exactamente qué tipo de datos estoy buscando. Voy a hacer clic en esto estas cosas aquí e ir a la documentación. Y, um, aquí vamos para que puedas hacer todo tipo de cosas. Al igual que parece que tienen un plan. Es uno. Entonces si destaco los planetas por aquí, presioné. Envía tirones que diferentes datos, así que sé que está funcionando. Entonces vas a querer usar esto como tus pruebas, tus datos y tu Jason para ver cómo es realmente cómo se ve y funciona realmente. Está bien. Muy fantástico, herramienta. Lo uso todo el tiempo. Y además, si copio esto aquí y en realidad pego en una ventana del navegador, hagámoslo aquí mismo. Es hacer una petición de get, y es ah, eso es bueno que en realidad, este realmente nos envió a esta bonita,
uh, uh, pantalla de
cuatro materia. Esta es Ah, Python y Jane. Vuelve atrás y haz esto por ti Automáticamente. Vayamos a una A p. que me pongo. No lo hace todo bastante gratis. Vayamos al pokey creo que es el Pokemon ap I pokey ap Dudo CEO esté trabajando con este. Yo copié esto aquí mismo. Está bien. Y luego pongo en Pokemon slash una barra. Está bien, ahí está. Disculpe. Entonces lo que hemos recuperado es un montón de Jason, ¿
verdad? Eres como,
Oh, Dios
mío, mío, esto es asqueroso. Entonces en Obtener solicitudes. Podrías simplemente poner esos en un navegador. No es gran cosa. Ponlo en un navegador. Se pueden ver todos los datos que hay aquí, pero algo difícil de leer. Entonces lo que a veces me gusta hacer es ir a este sitio web. Acabo de escribir Jason en línea para la materia. Jason Online cuatro materia y todo lo que tienes que hacer es pegado en tu comando V a Pegar. Yo mando mando un comando. ¿ Ver? Y luego, uh, mando V. Ahí vamos. Por lo que ahí está nuestro Jason I click proceso y lo para meditar para nosotros amablemente. Entonces como vas a ir a construir tu app Pokemon o cualquier otra app, estarás como, Oh, sí. Yo quiero acceso a las habilidades. Se pueden expandir estas cosas. Puedes mirarlo como, oh, descripciones. Podrás conseguir todos los Urales, puedes derrumbarte. Es una manera muy bonita de mirar el abrigo porque cuando estás en IOS y tu huella excepto la consola, no
se va a ver así. Va a parecer bastante desagradable, en realidad. De hecho, lo
he sacado aquí en código X. Este es el proyecto Pokemon en el que estará trabajando. Y acabo de imprimir los datos que vienen del servidor, y está justo aquí en el consejo. Normalmente tus cónsules así, ya
sabes, está bien trabajar con ellos, pero no es el más bonito, solo un montón de cuadra. No puedo expandirme ni colapsar ni nada. Entonces, de todos modos, solo un rápido ejemplo de algunas herramientas que vas a estar usando una regularmente o vas a querer usar. Te ayuda a depurar problemas y a resolver las cosas. Y la mayoría de los nuevos desarrolladores pasan por toneladas de estrés en problemas, tratando de averiguar cómo conectarse a Internet y resolver estos problemas aquí para
hacerte la vida un poco más fácil. Se trata de Mark price depth jabones dot com, y sigamos avanzando
78. Solicitudes web (NSURLSession): Hey, todos, Mark Price escuchen con sordos slips dot com Y hemos estado hablando mucho de Weber Plus, así que sigamos adelante y hagamos uno con Iowa. Entonces cuando Abre tu código ex y voy a ir a archivar nuevo proyecto, súbelo aquí para ti. Ver archivo nuevo proyecto. OK, así que haga clic en nombre de producto de aplicación única. A esto se le llama a esta prueba de solicitud web y seguiré adelante y solo dejaré todas las cosas igual. Haga clic en siguiente y lo almacenaremos en el escritorio. Vale, Entonces la razón por la que te estoy mostrando, uh, esto de hoy es porque vas a estar usando mucho esto a lo largo de tu carrera y puede que
no estés usando sesión SQL Si decides ir con el framework que hacemos más tarde on, recurrimos al fuego de Alamo para peticiones rápidas, porque es muy elegante, pero esta es una herramienta muy útil que el IOS nos ha proporcionado, y no hay nada de malo en ello. Es fantástico. Es sencillo de usar. Um, te
voy a mostrar porque puede que no estés usando un marco en tu trabajo. Es posible que esté utilizando iPhones fabricante de solicitudes predeterminado, que es una sesión SQL. Entonces solo estoy aquí a la vista. Hizo carga. Esta es una app para iPhone. Y así básicamente, esto se va a llamar. Esto se va a llamar el segundo que nosotros, um, ejecutamos el o que ejecutamos la aplicación. Y así vamos a seguir adelante y hacer una petición. En primer lugar, probemos la solicitud. Uh, aquí en Star Wars. De acuerdo, entonces haremos este aquí mismo. Esta gente quiere, Así que voy a abrir. Mi cartero. Cartero de Launchpad. No, hice clic en el equivocado. En realidad, necesito ir al lanzador de APP y luego cartero. De acuerdo, así que aquí está nuestro cartero. Se está cargando. Voy a agarrar la URL. Entonces es éste de aquí. Aquí está su su l Y lo voy a poner justo aquí, y voy a ir hacia adelante slash gente por ello slash uno y slash. Y lo que vamos a hacer es acercarnos a este endpoint y obtener los datos. Por lo que ya ha funcionado cerca de este cliente ya ha implementado código para descargar esto. Tenemos que hacerlo nosotros mismos. Y así el resultado final de lo que obtenemos en el iPhone debería verse así. Está bien, no está tan mal. Entonces déjenme cerrar de esto una página web p I aquí. Voy a mover esto por aquí para que podamos verlo. Y echemos un vistazo a nuestro código aquí. Apagaremos el lado izquierdo para que podamos ver más código. Y Está bien, aquí vamos. Queremos esto como resultado final. Entonces lo que vamos a hacer es ah, primero, pero lo tuyo. Entonces lo voy a decir. Deja que tu l string es igual a http s w a p i punto código a p i slash people slash one slash alegre ir tras el lado derecho aquí también. Entonces eso es todo, ¿verdad? Ahí están tus l Vamos a seguir y ahora crear una sesión. OK, así que una sesión es Bueno, vamos Rudo dice la clase de sesión n cero y clases relacionadas proporcionado un p I para
contenido descargado vía http Este AP I proporciona un rico conjunto de métodos de delegado para apoyar autenticación y te da el dar tu a la capacidad de realizar descargas en segundo plano. Cuando tu aplicación no se está ejecutando en IOS. Por qué el rap es
bla ,
bla , bla, bla, para que cualquier forma que puedas mirar, siempre puedes mirar el código de referencia aquí, Por cierto, muy útil prensa entrar así que básicamente piense en una sesión como hey, quiero que mi app tenga una sesión donde esté haciendo muchas solicitudes Web de todas las diferentes todos
los diferentes formatos y tipos. No obstante, voy a establecer algunos ajustes globales que se aplican a todo y pensar en ello. Cuando hablamos de cómo algunas solicitudes necesitan nombre de usuario y contraseña o autenticación con token de
autenticación, realidad
puedes establecerlas en tu sesión. Entonces de esa manera cada solicitud web que realices no tienes que ir y agregar ese token de
autenticación. Acabas de ponerlo una vez. Otra cosa que cambia es la o de lo contrario que estás tratando de golpear. Entonces para eso se utiliza una sesión y realmente simple. El mando que queremos. El función son datos encomendados a tu l. Y este es el solo asegúrate de que este es el que queremos. Solo quieres pasar a tu l Y,
uh, uh, no
tenemos eso todavía,
en realidad, en realidad, rendijas. Uh, digamos que deje que su URL sea igual a N S u R l y simplemente haga clic en el que tiene parámetro string y ah, yo quería hacer eso. Y ahí vamos. Por lo que acabo de poner un signo de exclamación al final porque sé que este es tu el. Si esto fuera destrozado por poner en algo que no fuera un Eurail, esto podría devolverme nada. Y luego se estrellaría la app cuando hago esto. Pero sé de hecho que esta es una buena chica, lo que
significa que está formateada correctamente. Entonces está bien. Y así que sigamos adelante y pongamos nuestra Ellen aquí
ahora, ahí mismo en una pestaña de prensa y luego presione enter. No quiero presentarles todo a mano. Entonces cuando entra una prensa y sabes que es como me dan las cosas, destaca
Teoh. Entonces voy a presionar enter tab, enter tab, enter. Está bien. Y sigue rota. Voy a borrar el código uno aquí. Todavía está roto porque nos está dando los tipos de datos, pero en realidad no nos ha dado parámetros para usar, Así que voy a poner esos mismos espacio de colon de datos, igual que una función correcta. Eso es todo Esto es un cierre, y simplemente no puso automáticamente en los parámetros fuerza que nos dio. Los tipos no eran los nombres reales de los parámetros. Voy a llamar a esto una respuesta, ¿
y sólo voy a llamar a éste aire? No demasiado. No tan mal. Um bien, así que eso se ve genial. Entonces cómo funciona esto es que estás diciendo:
Hey, Hey, hagamos una tarea. Recuperemos algunos datos K datos encomendados a su más. Estamos haciendo una solicitud de get. Y cuando se haga, va a ir en este bloque de aquí, y los datos se van a llenar con datos. Si hubiera fecha, Si no hay datos, esto podría estar vacío. Podría ser Neil. Ya sabes, ves el choque, su app. Si intentas acceder a él directamente sin
comprobarlo primero, nos va a dar una respuesta. ¿ Fue un éxito? ¿ Fue un aire? Um, y entonces nos va a dar por error si existe. Entonces, uh, no demasiado complicado, ¿eh? Entonces lo vamos a hacer es decir si dejar que los datos son iguales a los datos. Y si no recuerdas, lo que estamos haciendo aquí es que estamos agarrando estos datos de respuesta aquí, y lo estamos poniendo en una nueva variable llamada datos. Es el mismo nombre, ¿de acuerdo? Y sólo lo estamos poniendo ahí y esto. Entonces si los datos no se sabe si todo está bien con ello, esto ingresará este código. Los bloques básicamente decían Oye, si esta fecha está bien si no está vacía, entremos aquí. Pude haber llamado a esto. Uh, podría haber llamado a estos datos de respuesta para no confundirlos. Entonces, uh, solo
haremos eso solo para no ser confuso. Entonces si dejar que los datos de respuesta son iguales a datos, está
bien, las advertencias nos están diciendo que aún no lo estamos usando. Y lo que queremos dio es que queremos tomar esos datos y convertirlos en, um convertir en el Jason. Hemos hablado de Jason algo que realmente podemos leer y usar nuestra app. Entonces lo que voy a hacer es que voy a decir que Jason es igual a N s, Jace N s J son serialización. Eso es ah, clásico viene con objeto Jason punto IOS con datos, Ok. Y quiere que pasemos los datos que queremos probar y convertir a Jason y luego opciones. Voy a decir Ennis J. Son opciones de lectura punto permitir fragmentos. Está justo aquí, y dice especifica que el pársón debería permitir objetos de nivel superior que no son una instancia de una matriz o diccionario en caso de que solo fuera una cadena o algo así. En realidad no era un objeto y Jason, pero tal vez alguien nos acaba de dar un número de larguero. Sólo estamos diciendo que queremos permitir eso. Eso está bien. Que no importa. Simplemente le estamos dando una opción ahí. Y, uh, ahora no vamos a poder usarlo. Tan solo satisface si imprimí a Jason. Ah, por cierto, te das cuenta de cómo ahí si había un aire sobre el lado izquierdo, ¿
Ves cómo hay,
um, um, un triángulo y un cuadrado? Bueno, no me está dejando seleccionarlos a los dos, así que realmente no puedo ver cuál es la zona. Entonces si alguna vez ves eso donde es como, Oye, no
estás usando esto y te está dando el triángulo. Simplemente úsalo muy rápido. Simplemente ponlo en una impresión para que el triángulo amarillo se vaya para que al menos puedas ver lo que la verdadera heredera. Es un poco molesto, pero eso dice que se puede llamar tiro, pero no está marcado con try. Entonces el problema es la serialización de N s Jason. Esto puede arrojar un error, y con dos puntos no, necesitamos atrapar esos. No nos va a dejar hacerlo. Entonces tenemos un tenemos que poner esto en un bloque do. Entonces voy a decir, hacer lo que vamos a hacer es decir. Bueno, en realidad, sólo lleva a este tipo aquí y a este tipo, y lo pondremos en el bloque do, y entonces sólo tendremos un bloqueo de captura aquí. Um, sólo para satisfacer las demandas de la misma, y parece que todavía tenemos un problema. Ah, y vamos a echarle un vistazo aquí,
Um, Um, olvidando la palabra clave try. Por lo que queremos intentar hacer esto primero. De acuerdo, así que va a tratar de serializárselo a Jason. Si no lo hace, tenemos que manejarlo aquí. Y esto podría ser, ya
sabes, imprimir, uh, no
podría serializar. De acuerdo, lo que
quieras, lo que quieras poner su Y así allá vamos. Se va a tratar y, uh, ejecutar la solicitud, y entonces ah, es sólo dar no está limpio aquí arriba. Y solo, uh, sólo por el bien de la finalización, voy a llamar a dot Resume al final. Es Es una función a la que puedes llamar en los datos que se le asignan y así si esto se cuelga , está esperando cualquier cosa. Reanudar sólo lo dejará seguir adelante. Y esa es nuestra petición, acuerdo? Y si dirijo esto, no
va a funcionar. Pero quería que vieras por qué. Entonces voy a seguir adelante y correr. Y de nuevo, el final da como resultado tener a nuestro Jason luciendo así. Jason, por ahí que viste y corriendo. Corriendo. De acuerdo, aquí vamos. Casi ahí. Ahí está. Mira esto. Tan apt. La seguridad del transporte ha bloqueado un texto claro http. Entonces con el nuevo código X y IOS nueve Ok, ya no
puedes hacer solicitudes web a menos que sea para asegurar sitios web con los https. ¿ Te impide hacer eso? ¿ Qué? Lo que Apple está tratando es decir, Hey, queremos una mejor proteger a nuestros usuarios. Por lo tanto, deja de enviarles sitios web de dedo que no son seguros. Y, uh, eso es por defecto. No, porque quieren animar a la gente. Teoh, Um, ¿aseguras que sitios web seguros? Y, ya
sabes, um, la gente que de verdad, verdad se preocupa, ya
sabes, como todo esto es una cosa
fantástica, fantástica. Ya sabes, uh, queremos que el inter sea más seguro, privacidad
segura como, Bueno, sólo
soy un maestro. De verdad no me importa. Muchos abdominales, así que sólo voy a apagarlo, apagarlo. Vamos a permitir que todas las solicitudes de la Web pasen como antes,
antes de que yo tuviera nueve años. Entonces ¿vas a lidiar con eso en tu APS? Sólo para que lo sepas, voy a sacar esto del camino. Lo que vamos a hacer es abrir el navegante aquí. Hice clic en el botón izquierdo y voy a ir a mi lista info dot p. Y hay una cosa, una clave que necesitamos agregar y no la va a reventar primero automáticamente. En realidad tenemos que escribirlo manualmente. No es como que todos esos otros que ves aparecieron ahí mismo. Por lo que se llama N s AP Seguridad del Transporte. Está bien. Y haremos de esto un diccionario. De acuerdo, Puedes hacer clic en esta flecha aquí para bajarla y cocinar un signo más, y otra clave va a ser N s. Permite a r b i traer e carga tan arbitraria. Simplemente lo deletreo nosotros. Esa es una de esas palabras que al igual que confundiste en las pulsaciones de teclas. Y eso va a ser un booleano. Vamos a ponerlo en Sí. Entonces lo que estamos diciendo es en el transporte de la app, la seguridad, permitamos cargas arbitrarias. Permitamos trabajar con cualquier solicitud arbitraria de Earl. OK? Y yo sólo lo dije. Lo voy a ejecutar otra vez. Apagemos este lado izquierdo aquí corriéndolo de nuevo y ya viene. Ahí está. Y mira eso. Entonces eso es interesante. Nos está dando en diferente orden. Parece Así que en el lado izquierdo, el nombre es primero Luke Skywalker. Y aquí mismo, está aquí abajo. Entonces lo que es realmente interesante e importante para que sepas es que nunca puedes garantizar que
lo que obtienes de un servidor va a estar en el orden que quieras. Nunca podrá garantizar eso. Nunca garantices nunca en ninguna de tus aplicaciones que algo se va a
ordenar . Ya sabes, hay algunos a p I y puntos que puedes golpear que a propósito hacen eso, y ese es un caso diferente. Pero solo asumas siempre que los datos van a venir y cualquiera que sea el formato en el que vaya a
entrar . Y así nota algunas diferencias aquí. Entonces tenemos el objeto aquí, pero te das cuenta como en cartero hay un colon ahí. Pero por aquí, el en el consejo del Código X, pone un signo igual. Eso está bien. Um
, sigue siendo esto sigue siendo una especie de diccionario. OK, aquí tienes tu llave. Y aquí está tu valor. Aquí tienes tu llave. Y aquí tienes tu valor y nota cómo algunas de estas tienen citas alrededor y algunas de ellas, algunas de ellas no Te preocupes por eso. Para ser honesto, personalmente no sé por qué cuando imprime en el Consejo código X que eso hace eso, Um, pero solo podrías estar seguro de que estas claves y valores están ahí para que los uses. Y así acabamos de realizar con éxito una solicitud web que descargó los mismos datos que este cliente hizo aquí. Entonces acabamos de hacer lo que se hace cartero. Y ahí está. No demasiadas líneas de código. Está bien. Ya sabes, con la clase y todo, estamos buscando alrededor de 35 líneas de código. ¿ En serio? Es más como, ya
sabes, este trabajo tantos y tan bueno. Tomamos los datos. Bueno, tomamos una u R. L. Luego hicimos una en su sesión rural, y luego ejecutamos una solicitud get usando datos encomendados con euro en la respuesta, nos
devolvió datos, los cuales nosotros convertido en Jason. Está bien. Y pasó con éxito por camino recién impreso. Y puede usar esto para muchos de los europeos de hecho, noticias para muchas preguntas. Entonces eso es todo. Eso son peticiones simples y seguir adelante.
79. Cocoapods: Oye, Mark Price aquí, Deb pendientes dot com Volver en la silla de montar otra vez. Y hoy vamos a hablar de ollas Coco ahora se abrirá la página web aquí para que puedas verlo. Uh, son vainas de cacao, ese órgano. Ahora vas a encontrar que cuando estás codificando proyectos, hay un montón de herramientas y cosas que no quieres escribir. Quieres hacerte la vida más fácil usando algún código que alguien más ha escrito. Y en el pasado, tú harías eso. Te vas a Internet, buscas en get hub, encontrarías proyectos deberías descargarlos para instalarlos. Arrancando tu proyecto, se convirtió en un gran dolor. ¿ Cómo los manejas en tu levantarte y en tu propio jab? Y así salieron las ollas de coca, y básicamente es un gerente de dependencia. Te permite usar su sistema para traer otros paquetes a tu proyecto. Y básicamente, solo
dices qué bote, qué vainas o proyectos quieres incluir como parte de tu proyecto, y los instalará automáticamente. Y así más o menos. Desde que salieron las vainas de cacao cop de cacao, he usado en cada proyecto profesional o un proyecto que me han incluido en su usado. Es para que puedas ir a su página web y puedas empezar por algo. Entonces es como, Hey, um, ¿y si quiero hacer una solicitud Web? Ve a ver todos estos paquetes que puedo usar aquí, Um, uno
realmente popular, que vamos a estar usando y a qué deberías usar. Es como el mejor fuego de Álamo. De acuerdo, esto es, um esto es ah, biblioteca
de networking. Y a ver si le das click
, te dirá sobre el paquete. Qué puede hacer ahora Vamos a usar esto en lugar de N S, u R L sesión y cómo instalarlo,
etcétera, etcétera, etcétera, etcétera, y obtener información sobre paquetes que quieras usar cosas realmente cool y todo lo que se te ocurra. Al igual
que, Hey, ojalá tuviera un pop up realmente cool para mi app, ya
sabes, así que podría decir pop up y, uh, ya
sabes, que hay un pop de ti y mira, incluso tienen ejemplos de cómo funciona. Es como, Oh, eso es fácil. Entonces cualquier cosa que se te ocurra probablemente lo puedas encontrar ahí y vainas de cacao. Sólo ten cuidado. No todo el código es genial. Algunos de ellos son mejores que otros. Y así puedes mirar por cuántas descargas Tiene cosas así. Este tipo tiene una descarga en un mes. Mm. Pero si miras el Fuego de Álamo, volvamos a ese. Ahora tengo curiosidad. Fuego Álamo ¿quién? 36,357 descargas y apenas 10,000 descargas esta semana pasada. Entonces no tan mal. De acuerdo, así que ese es Kobe Potes. Probablemente no vas a ir mucho a la página web excepto para, como, mirar paquetes como este. Lo que realmente vamos a hacer es todo eso y cierra aquí es que vas a querer abrir tu terminal. ¿ De acuerdo? Mentes aquí mismo. También puedes mandar tipo de espacio en terminal y para hacerlo extra grande para que puedas verlo. Entonces digamos que queremos instalar vainas de cacao en nuestra computadora. Puede que aún no lo tengas. Bueno, casi todos los libros de Mac o Mac OS X viene con ruby instalado y Rubies. Un lenguaje de programación y vainas de cacao se construye sobre la revisión. Entonces lo que vas a querer hacer primero es escribir en gema Sudo Instalar macetas de cacao. Está bien. ¿ Y qué va a hacer eso? El pseudo son tus privilegios de administrador. Por lo que me puede pedir una contraseña y tú la sabes y la pones. Entonces lo que va a hacer es que va a instalar vainas de cacao. Lo va a encontrar en el,
uh,gerente de
dependencia de Ruby uh, . Se lo va a instalar para ti y tan contenta y presiona enter. Quiere una contraseña. Entonces pondré mi contraseña. Ya lo he instalado, Así que eso sólo lo va a reinstalar para que yo consiga la última versión para ti, probablemente
lo va a instalar por primera vez. Entonces es solo pensar aquí que está haciendo lo suyo. Está haciendo lo suyo. Ahí vamos instalamos exitosamente vainas de cacao si las tuyas no se instalaron o, por alguna razón, tu no puedes reconocer la gema de comando en tu computadora. Lo que vas a necesitar para dio es, um, ir a vainas de cacao y creo que tienen ah sección de empezar aquí, y te dará pasos en lo que necesitas dio a fin de Teoh con el fin de instalarlo. Y si no funciona, tienen algún otro recurso es así que ahí vas, Está instalado. Ahora, lo siguiente que quieres hacer es solo usarla y usarlo bien, abre X Code Beta e iniciará un nuevo proyecto. De acuerdo, haz click siguiente, y solo llamaremos a esta prueba de dash pod de cacao. Está bien. Guárdalo en el escritorio. Eso está bien. Creado. Y ahí está. Y ahora todo lo que necesitas para dio proyecto de revelación. Salga de su proyecto. Acabo de mandar que matar a X abrigo. Y aquí en su terminal. De acuerdo, vamos a navegar. Oh, no. El terminal Naveemos en la terminal. Es Así que ahí es donde estamos ahora mismo. Y va al escritorio. Escritorio tan sórdido en presidente Tab ls. Y ahí está nuestra carpeta de prueba de vainas de cacao, prueba vainas de cacao de la
ciudad. Simplemente tendremos dentro. Y si escribo en ls lo bastante seguro ahí está mi proyecto. Aún no hay vainas de cacao instaladas. Entonces así es como obtienes vainas de cacao corriendo tipo de vaina en ella. Y ahora, si escribo l s u C algo llamado archivo pod, no es gran cosa. ¿ Verdad? Entonces lo que vamos a hacer es volver a Google Chrome goto vainas de cacao y vamos a hacer Alamo Fire. ¡ Fuego de Álamo! Está bien. Y solo me estoy desplazando hacia abajo para ver cómo instalarlo. Um, ¿dónde está? Aquí. En realidad lo fue. Vayamos ahí. Obtener sitio hub Tanto mejor. No me gusta la forma en que funciona aquí. Si en realidad voy Teoh áreas justo aquí para conseguir tener repetidamente traje en la parte inferior. Correcto. Vamos a hacer clic en eso. Y aquí es donde en realidad se aloja el código. Son mucho más bonitos. De acuerdo, Instalación. Um, este es el que estamos buscando aquí mismo. Entonces esto es lo que necesitas poner en tu,
um, um, archivo de vainas de
cacao. Entonces vamos a tu buscador. Vayamos al escritorio. Vamos a la vaina de cacao Test pot file. Simplemente abre con cualquier editor de texto edición de texto, Adam Sublime. Lo que quieras. Yo sólo voy a hacer sublime porque eso es lo que tengo mi computadora. Si no tienes sublime en editor de texto libre realmente cool de nuevo. Cualquier editor de texto funcionará. Y así plataforma Iowa, seis puntos. Oh, bueno, eso es realmente viejo. Sólo cambiémoslo a ocho. Apoyará ocho en adelante. Eso está bien. Y así que eso se ve bien. También necesitamos esto, um, este uso frameworks palabra clave aquí. Um, de hecho, todas estas cosas aquí mismo, vamos a necesitar procuradores. Adelante y cópielo. De hecho, vamos a copiar todo el asunto y deshacernos de todo lo que tenemos aquí. Simplemente pega en cosas tan importantes se usa frameworks con swift, tienes que usar frameworks. Y, uh y aquí está la vaina en sí. De acuerdo, en realidad, deshace eso porque no quiero que no quieras darte mala información. No copio completamente lo que tienen aquí. Um, deja que Centcom ent este año plataforma, está bien, lo
mantendremos a las ocho. Y luego aquí mismo en tu objetivo. Esto es sólo decir, Hey, tu objetivo principal, esto es lo que vas a incluir aquí. ¿ Todo bien? Y así los marcos de uso, vamos a incluir. Bueno, ponlo justo aquí y luego justo aquí. Que aquí es donde realmente pones tus vainas. Está bien, ahí tienes. Entonces estamos diciendo que queremos incluir a Alamo Fire. Sabe dónde está porque las vainas de cacao tienen una referencia al mismo, y queremos la versión 1.3. Entonces me queda bastante bien. Yo lo voy a guardar. Está bien. Voy a x fuera de esto aquí, y tú deberías lucir así, acuerdo. O algo parecido. Está bien, me acabo de ir. Yo quería apuntar aquí porque estamos diciendo hola, todo para este objetivo específico. Algunos proyectos tienen metas múltiples, Así que ahí vamos. Cerrando eso ahora, de vuelta al espacio de mando terminal donde escuchamos comando Terminal espacial. De acuerdo, así que todavía estamos en nuestro directorio aquí, como se puede decir, y todo lo que necesito hacer ahora es escribir en instalación de pod, ¿de acuerdo? Y va a leer fuera del archivo pod, y va a instalar cualquiera de esos pods que están en mi proyecto. Entonces ahora mismo está actualizando las especificaciones para las vainas de cacao. Y entonces lo que va a hacer es que va a agarrar fuego de Alamo, instalando fuego de Alamo ahí mismo. Y luego te da esta pequeña advertencia verde Aquí, por favor cierra cualquier sesión actual de Exco. Por eso lo cerramos. Y a partir de ahora, utiliza el espacio de trabajo. Espere. ¿ Qué significa eso? Bueno, vuelve a tu carpeta aquí. Ahora hay un nuevo icono. Entonces de aquí en adelante, cualquier momento estás usando vainas de cacao, ¿de acuerdo? Y los has instalado. Vas a usar el espacio de trabajo en lugar de esto. Si usas esto. No vas a conseguir tus proyectos externos. No se van a incluir, acuerdo? Y así ahora todo lo que tengo que hacer para que esto funcione es solo hacer doble clic en el icono blanco, ¿de acuerdo? Y cargará código X con los paquetes que hemos instalado. Y así ahí está. Aquí está nuestro proyecto. De acuerdo, No muy diferente de como era antes. Y aquí están las ollas. Si entramos en vainas, hay fuego de Álamo. Entonces lo está incluyendo ahí mismo en nuestro proyecto. Hizo todo por nosotros. Y si quieres
usarlo, es una simple como ir a tu código, que es, um, veamos aquí. Aquí tienes nuestro código de ti controlador. Si quieres usarlo,
todo lo que tienes que hacer es importante el paquete o seguir los pasos. ¿ Verdad? Entonces ahí está diciendo:
Oye, Oye, si quieres usarlo,
um, um, ¿dónde está? ¿ Importación? Álamo? Um, ahí mismo, este tipo importó así que importó fuego de Alamo Y no se completó auto. A veces no lo hacen, así que está bien. Y aquí limpiamos mi proyecto. Ah, este es un punto realmente bueno. Este es realmente buen punto. Tan bueno que nos tropezamos con este problema. Por lo que esta versión de Alamo Fire no es compatible con Swift aún rápida de dos puntos. Ah, rápido a apuntar. Tiene un montón de cambios en ella. Entonces si alguna vez te encuentras con este problema cuando estás en una beta o incluso cuando no está hecha, puede
ser el hub de dar tiene una rama ah real donde están apoyando a Thea. Versión más reciente. Entonces, uh, si volvemos a la página web aquí, Alamo fuego y haga clic en sucursales Vale, ahí está Maestro. Espera, ¿Qué es esto? A swift 2.0, rama. Oh Dios mío, lo
hacen. Lo están apoyando. ¿ Cómo uso esto? Entonces vamos a hacer clic en él y ver si tiene alguna instrucción. De acuerdo, Vamos abajo todo lo que sí tienen instrucciones en lugar de usar esa otra versión. Usemos este y en realidad lo tira directamente de derecho desde Obtener arriba esta rama
específica. Eso es un lindo Así que es copia que ahora. Y volvamos a nuestro buscador aquí y vamos al archivo pot nuevamente abrir con ir a hacer sublime. Y ahora voy a sacar esto y poner en el get una sucursal que soporte a Swift 2.0, porque nuestro proyecto tuvo un error. No funcionaba, así que eso es realmente genial. De acuerdo, bueno, gracias chicos. Encima en el Fuego de Álamo. Tienes un bonito ah Swift. Dos puntos. Oh, gracias por que volvamos a tu terminal aquí, ¿de acuerdo? Y solo teclear en olla y volver a poner. Se va a deshacer del viejo. Y ya va, Teoh, instala el nuevo. Bastante guay, ¿eh? Y está refrescando el proyecto. Pero siempre lo cierro porque, um, nunca se
sabe qué tipo de problemas vas a tener. Y así lo instaló. Muy bien. Adelante y abramos el blanco aquí. ¿ De acuerdo? Y, uh, aquí vamos. Hecho, veamos qué hace si lo construyo. Está construyendo ahora mismo. Y el aire? Bueno, todavía nos
estoy dando un error, pero nuestro proyecto está construido. Entonces este es un error de código ex. Si te estás topando con esto. De acuerdo, código
X beta bug. Definitivamente está definitivamente ahí. Simplemente no lo hace Es ser una tontería. Entonces, um, si quisiera,
como,
intentarlo como, y usarlo, estoy seguro que sería,
uh, uh, punto de fuego de
Alamo Uh, sí, es Definitivamente es trabajando. Ahí mismo se puede ver. Que sus métodos estaban ahí, pero le están dando aire. Entonces ese es un problema beta. Ahí vamos. Entonces eso son macetas de cacao. Está bien para recapitular. Ojalá no te confundiera corriendo a esos problemas, pero puede que te encuentres con esas cosas y tienes que averiguarlo. Entonces básicamente, vas a buscar la vaina que quieres, como, aquí mismo. Sigues las instrucciones de instalación, y luego vas al archivo de tu pod, ¿de acuerdo? Y lo editas como para que metes en las vainas que quieres con la vaina. Palabra clave, asegúrate de usar frameworks está ahí, y esta es la plataforma a la que estás apuntando plataforma mínima. Y luego en tu terminal está hacer pod install dentro de la carpeta en la que tus proyectos. Y entonces siempre puedes asegurarte de hacer clic en el espacio de trabajo aquí. Y si quieres desinstalar pod en este archivo pod,
vale, vale, todo lo que tienes que hacer es eliminar el pod, guardarlo y luego ejecutar pod instalado, y se deshace de él. Simplemente reinstala todo y techan cosas que no están ahí. Eso son vainas. Lo vas a usar en muchos, muchos proyectos. Entonces ese es el trato. Espero que eso tenga sentido. referirse a este proyecto ejecutando cualquier problema, y estamos en beta, por lo que puede ejecutar los otros problemas. Eso está bien. Contamos con una sala de chat en los foros para cualquier ayuda. Eso es todo. Eso es una envoltura. Cápsulas de cacao. Aquí vamos, moviéndonos hacia arriba.
80. JSON: Oigan, todos, ¿qué pasa hoy? Sólo estoy leyendo un comentario en uno de mis videos y alguien como, no como crack más chistes con más frecuencia. Mueva programa suficiente comediante frickin. Chicos, deme un respiro. Deberías intentar escuchar algunos de esos otros videos hoy vamos a construir una
aplicación para iPhone primero. Nos vamos a aburrir mucho escuchar mi voz todo el día. Ah, ¿sí? Bueno, hazlo lo lo más emocionante que podamos. súper cool hoy. Analizar Jason. Este es el pan y la mantequilla de todo lo que vas a estar haciendo cada día de tu desarrollo
profesional como programador. Y eso es tomar aquí estos datos que acabamos de obtener de nuestra última aplicación. Lo mismo en, por cierto, tire de él para abrirlo. Si aún no has ido al archivo abierto reciente o, ya sabes, puedes hacer click en tu proyecto aquí. Haga doble clic en el ícono lo que necesites hacer para abrir el proyecto que acabamos de construir o simplemente seguir adelante y vamos a estar tomando datos y convertirlos en algo útil. No tiene sentido usar datos si, uh o descargar datos. Si no puedes hacer nada con él. Entonces en este caso, estábamos descargando a una persona de Star Wars, creo. Vamos a tirar hacia arriba en el concierto, este ícono del medio aquí arriba? Uh, sí. Ahí va. Simplemente corrió. Está bien. Simuladores por aquí que no está haciendo nada. Apenas corrió. Pero fíjate aquí. ¿ Cómo? Estamos obteniendo datos, ¿verdad? Se ve bien. Y así hablemos de cómo podemos,
uh, uh, hacer que el estado de útil. Ahora bien, no
quiero mirar esto aquí y ir y averiguar cómo se ve. Entonces lo que voy a dio es lo que te mostré en un video anterior. Voy a abrir Google chrome, y vamos a ir a De hecho, se ejecutó la misma solicitud aquí mismo. De acuerdo, ponlo en el navegador. El navegador lo va a ejecutar. Voy a ejecutar una solicitud de get. No sabe manejar a Jason. Bueno, éste sí, porque me redirige a una página web realmente fue. Guardémoslo aquí. Esto es Esto es bonito y bonito. La otra cosa que iba a decir es, toma esto y ve a aquello en línea. Jason. Bastante fuego. Pero esto es lo suficientemente bueno por ahora. Entonces voy a hacerlo un poco más grande para que puedas verlo aquí. Entonces tenemos algunos datos y lo que queremos en tienda. Digamos que queremos almacenar esto como personaje en su aplicación. Entonces lo primero que debes hacer es empezar a pensar objetos. ¿ Cómo se puede tomar datos y convertirlos en un objeto? Entonces hagámoslo primero. Antes de hacer cualquier análisis, construyamos una clase. Entonces ve a tus solicitudes web, prueba aquí mismo, y, uh, crea un nuevo grupo. Si aún no estás haciendo esto, ahora es el momento de empezar a hacer esto. Pongamos todo nuestro modelo en una carpeta llamada Model porque modela tus datos y soy un gran archivo nuevo. Solo estoy haciendo clic derecho en nuevo archivo y voy a ir a fuente, no al toque de cacao, sino a una fuente rápida. Da click siguiente, y vamos a llamar a esto persona, está bien. Y si esto fuera una Star Wars que podría llamar a esta persona del SW sólo para decir, Hey, esta es una persona de Star Wars. Prefijo ahí Y ahí está. Disculpe. Entonces hagamos una clase como has visto antes, clase y vamos a llamar a esta persona del SW. A mí me gusta dar la clase y lo mismo que el nombre del archivo, Ok. Y, uh, él tiene que tener un nombre, así que nombre de bar privado, y él o ella en esto va a ser de tipo string. Está bien. Y si te preguntas por qué me pongo privado aquí, ya
hemos repasado esto antes, pero un buen programador mantendrá privados todos los datos y solo dará a usuarios externos, que son otros programadores solo Dales uso de lo que es absolutamente necesario. Entonces ah, nombre también quisiéramos capturar uh, hay una altura por ahí. Um, hagámoslo Hasta ahora, altura. Y eso parece que es una cuerda. Por cierto, cuando ves a Jason en una cuerda, normalmente
significa que es o entre comillas. Lo siento. Típicamente significa que es una cuerda. Ahora no puedo garantizar que va a venir como una cuerda. Esa es una de esas cosas que es difícil de saber. Antes realmente descargó en la aplicación aquí. Yo sólo lo abrí aquí, y así puede dárnoslo como un entero o puede dárnoslo como una cadena. lo sé a estas alturas, pero lo averiguaremos ya que estamos analizando los datos, y podemos cambiar este tipo de datos según sea necesario. Entonces tenemos nombre y una altura y ah, año de
nacimiento. Está bien. Año de nacimiento. Y hacer de esa cuerda mundo hogar es en realidad otro tú, Earl, donde descargarías el planeta. El planeta Información. No vamos a hacer eso aquí hoy, sin embargo. Y, uh, los
últimos sólo hacen uno más va a hacer. Color de cabello. Por lo que el color de pelo de barra privada. Está bien. Y hacer eso de tipo string. Está bien. Y entonces necesitábamos un Isar inicial. Eso es lo que voy a hacer, es que voy a crear una conveniencia, así que bueno, vamos a hacer esto. En primer lugar. Vamos a crear un er de inicialización regular y ver qué hace. Entonces digamos que cada vez que creamos una nueva persona de estrellas, queremos que esos datos se transmitan de inmediato. Entonces lo que vamos a hacer es decir, nombre de tipo string, altura de tipo slips, altura de tipo string. Yo sólo diría año. Bueno, aquí
diremos cumpleaños. ¿ Por qué no? Lo mismo. Berthier de tipo, cuerda y color de cabello de tipo string. De acuerdo, así que acabamos de crear un Isar inicial y queremos inicializar algunos campos siempre que se
llame a esto . Entonces lo haremos. ¿ Es que vamos a decir nombre igual nombre? Ups. Por cierto, estoy poniendo subrayados en estos porque vamos a crear creará algunos getters y centros o al menos algunos getters para ellos ahora mismo. Y así de nuevo, estamos haciendo que estos sean privados para que otras personas no puedan tener acceso a ellos y y destruyan nuestra forma de
datos. ¿ Quieres determinar más construyendo nuestra clase? Quién podría hacer qué con nuestros datos, Así que nombre es igual nombre. La altura vuelve a igualar alturas. Solo estamos asignando las predeterminadas aquí a estas las propiedades globales aquí, a las que están entrando. De hecho, podrías haber dicho Self dot name y self dot height. Si sientes que quieres usarte a sí mismo cuando no es necesario, puedes. Algunos programas sí. Básicamente usaron la palabra clave auto en cualquier cosa que sea global. Tiendo a no escribir más código del que tengo que hacerlo, Así que solo pongo la palabra clave auto cuando lo necesito absolutamente. Está bien. Y el año de nacimiento es igual al año de nacimiento, y el color del cabello es igual al color del cabello. Ahora, si te preguntas, ¿por qué estamos escribiendo las mismas cosas una y otra vez esto asume que lo hemos hecho. Bueno, eso es lo que tienes que hacer. Eso es programar Ghetto. Tome las medidas para mantener sus datos seguros, privados. Entonces pasémoslo a inicializar. Er así que vas a dio mucha repetición de tipear, pero no viola el principio seco. No te repitas. Es esta buena cosa. Entonces todo lo que hemos hecho hasta ahora es crear un Isar inicial y crear variables privadas. Sigamos adelante y creemos los públicos. Disculpe para que la gente pueda acceder a los datos. Entonces, ¿cómo hacemos eso? Bueno, lo
mismo. Simplemente dale un nombre diferente, pero similar. Entonces sin el subrayado de tipo strain y sólo vamos a devolver el nombre. Está bien. El nombre del subrayado. Ahí vamos. Todo haciendo ¿Está regresando? De acuerdo, um, altura
var. Y recuerda, también
podríamos haber hecho conseguir y dicho altura de retorno si te olvidaste. Está bien. Y por supuesto, esto está mal. No subrayado altura. Consiguió darle un nombre diferente y de nuestro año de nacimiento de tipo string. Y regresaremos subrayado año de nacimiento y color de pelo de barra de tipo string. Y esto va a devolver el color del cabello. Ahora esta es una buena práctica de programación. Si haces esto en tu base de código y las cosas que te pones, levántate. Y cuando estás solicitando trabajos tus empleadores hacen Wow, este tipo, este tipo o chica, saben que se esconden datos. Ellos saben hacer eso. Eso es realmente genial. Este es el tipo de cosas que sólo, como los programadores senior saben. Bueno, ¿no te alegra estar tomando mi clase? Te estoy diciendo estas cosas y estás aprendiendo cosas geniales, y no es aburrido. Esperemos que sea aburrido. Dime cómo no ser tan aburrido porque no quería ser más color de pelo, nacimiento año alto. Entonces ahora mismo, ¿sabías que nadie puede modificar estos datos excepto tus inicializados? Porque no has dado acceso a esto. Por lo que no podré cambiar nada de esto a menos que cuando esté creando un nuevo objeto. Eso es realmente genial. Um, Ok, así que ahí está nuestra clase. Clase sencilla. No es gran cosa. De acuerdo, Nadie, No gran cosa. Y vamos al controlador de vista aquí donde tenemos datos y hablemos de analizarlos . ¿ De acuerdo? Voy a cerrar el lado izquierdo para sólo hacerlo un poco más espacioso, y sabemos que estamos imprimiendo el Jason. Sabemos que está funcionando, Recuerda, Está bien. Está justo aquí abajo. Eso está bien. Entonces sigamos adelante y creemos algo de espacio. Si hemos llegado aquí, sabemos que todo está funcionando. De acuerdo, así que Jason viene en un aumento y diccionarios, de
verdad, Eso es lo que vas a estar usando. Y así si lo miramos aquí, es sólo un gran diccionario gigante. Entonces, ¿lo que estoy diciendo son estas llaves abiertas de aquí? De acuerdo, piénsalo. Es un diccionario gigante, y tiene algunas claves y valores. El clave es de tipo string, por lo que estos son todos string todas las claves aquí. Aviso de cuerdas. No son números. No son como cinco o seis. Cada clave es una cadena, y los valores lo harán. Parecen ser todas cuerdas. Todavía no estoy del todo seguro, como sé en el en su sitio web lo tiene entre comillas, y está diciendo que es una cadena, pero no estoy seguro de que realmente lo sea. Nunca puedes realmente confiar hasta que realmente lo consigues, acuerdo? Y por cierto, tu código, Tú, el cliente Irán puede tener su propia forma de analizar datos, y es Jason puede convertirlo a un número que no conoces,
así que no confíes al 100% pero nos acercamos bastante aquí. Entonces sabemos que tenemos un diccionario porque tiene las llaves y sabemos que hay claves y valores. Entonces lo que necesito hacer es tomar a este Jason y primero convertir a Teoh un diccionario, algo que sea utilizable y, uh, vamos en realidad primero, veamos qué me está devolviendo en realidad. Está devolviendo cualquier objeto, así que sólo me está dando en cualquier objeto. Se podría ver aquí mismo en cualquier objeto, lo
que significa que no es no significa nada para nosotros. Vamos a convertirlo. Digamos que si vamos a llamarlo polla D I c t y diremos igual a Jason, no Jason. Jason como signo de interrogación. Y vamos a decir un diccionario de tipo string para la clave. Y no sabemos si van a ser números o um, o cuerdas. Puedes no necesitas. Se quiere garantizar eso así la mayoría del tiempo vas a poner cualquier objeto. De acuerdo, ¿
entonces vas a poner cualquier objeto como el tipo de valor? Podría ser una cuerda. Podría ser un entero podría ser un bullying. Simplemente a menos que sepas absolutamente que cada valor va a ser un larguero de cierto tipo, Siempre pon cualquier objeto ahí. Entonces lo que estamos diciendo es, oye, toma esto, Jason. Y como recuerdo,
trabajadores, trabajadores, esto lo está echando, ¿de acuerdo? Es convertirlo y los mercados de interrogación. Y aquí no sabemos si va a funcionar o no. No podemos garantizarlo porque en este momento, los Jasons cualquier objeto no sabemos qué tipo de datos es. Ahora lo hacemos porque aquí estamos mirando al Jason, pero no sabemos con certeza. Entonces use la pregunta, marque porque puede o no funcionar. Y por cierto,
así es como lo haces de la manera que te estoy mostrando ahora mismo. Tener a Jason abierto por aquí y mirando tus datos por aquí, así es como lo vas a hacer. Profesión. Vas a ir de ida y vuelta y de ida y vuelta, y así es como vas a programar. Todo lo que estoy haciendo aquí mismo es el verdadero trato. Así que ponlo en tu cerebro, ¿de acuerdo? Y entonces estamos así que lo estamos lanzando como diccionario. Una adicción. Debemos tener un tipo, verdad. Debe tener un tipo de clave en un tipo de valor. Bueno, conocemos las claves o cuerdas nombre, altura,
masa, masa, esas cuerdas de rollo. Y cualquier objeto podría ser un entero. Podría ser un nombre. Uh, así que no lo sabemos. Y así si llegamos aquí, sabemos que funcionó la conversión. Entonces si llegamos aquí el trabajo de conversión, así que vamos, uh vamos a probarlo. ¿ Fue este el primer paso? Voy a decir imprimir Y vamos a decir, um uh llegamos aquí y luego vamos a seguir adelante. Y también, vamos a poner en el diccionario aquí usando la cadena literal es indexador y decir adicto. Está bien. Y decimos que la descripción de depuración, es ah, es una propiedad del diccionario y solo va a poder una descripción de depuración es justo cuando quieres imprimir algo a la pantalla, lo hace un poco más bonita. Y voy a abrir mi consejo aquí. De acuerdo, vamos a seguir adelante y a la basura eso. Voy a presionar el botón de parada para volver a ejecutarlo. De acuerdo, aquí viene. A ver cómo nos vemos. Se está cargando. El pedido está a punto de comenzar. Seguro que ahí está la petición y ah, ¿llegamos aquí? Oye, llegamos ahí. Convertió a nuestro Jason en un diccionario. Y ahí está. Mira, no se ve tan mal. Um, así que nota cómo pone los corchetes aquí como una matriz. No estoy seguro de por qué vuelve a hacer eso. No confíes en lo que ven en el cabildo aquí por completo. ¿ De acuerdo? Confianza. Sólo confía en todo lo que tienes que hacer. ¿ Esta prueba es cada paso del camino? Asegúrate de que estás obteniendo lo que necesitas, porque ahora hay, como, cosas
raras, como paréntesis y cosas, como, no pongas demasiada atención a eso. Está bien, um, pero se ve bien. Y, ya
sabes, esto es una especie de decir odia una matriz. Um, así que tenemos datos. Eso es genial. Sabemos que está funcionando. Sabemos que analizamos con éxito el diccionario externo. Estoy borrando eso haciendo clic aquí. De acuerdo,
Entonces, ¿qué queremos dio? Tenemos estos datos. Ahora veamos si podemos usarlo. Entonces, um, sigamos adelante y solo
digamos, um, hagámoslo como un todo caído son todo pasado tipo de cosas donde sólo tenemos que conseguir
esas propiedades que estamos buscando. Entonces lo que voy a hacer es decir si vamos a decir nombre es igual a Dict y vamos a agarrar el nombre de ella. Entonces note cómo esta clave de aquí es exactamente la misma. Keir, esto es muy importante. Tu llave necesita ser exactamente la misma que la llave en el Jason. O vas a tener problemas. Vamos a decir que vamos a intentar sacar ese valor del diccionario. Y así si deja que nombre picó Vale, um, nombre
Ardeche como y no sabemos qué tipo de. Recuerda, este es cualquier objeto que tengamos para usar el como palabra clave. Si esta cadena
dijera, no tendría que hacer eso. No tendría que hacer los anuncios. De acuerdo, um, porque sabría que es una cepa, pero no sabe tipo de obvio. Entonces si let name es igual a Dict como string, ese es el 1er 1 que queremos. Y vamos a decir Let, um cuales eran los otros que ya olvidamos Los otros que queríamos. Entonces queríamos nombre altura, Berthier, color de
pelo. De acuerdo, hagamos altura. Tan cerca que deja que la altura sea igual a la altura adicta. Y, uh, ustedes estaban como, sólo
estoy esperando a que él diga que me cagó incorrectamente para poder reírme de él. No lo haré aunque. Y, uh, eso va a ser una cuerda de manera correcta? No lo sé. Parece una cuerda. Ya veremos qué pasa. Y, Bueno, Dio el siguiente fue año de nacimiento, ¿
verdad? Entonces digamos que el nacimiento es igual a Dict, y se llama Ah, subrayado de
nacimiento aquí. Solo estoy mirando al Jason escribiendo exactamente como está. De acuerdo, ya
sabes, y eso es como ah string también. Entonces nos dieron 1231 más y vamos a decir Deja que me olvidé de conseguir cuál era el
color de pelo del humo santo , verdad? Era de color de pelo vaca. Simplemente bájala. Color de cabello. Ah, sí, Woo! Está bien. Y entonces solo llamaremos a este pelo igual a pollas, y vamos a llamar a este color de subrayado de pelo como cadena. Entonces lo que estamos diciendo es que todos estos tienen que funcionar, o si no lo hacen, entonces estamos, um uh no va a entrar en este bloque de código aquí mismo. OK, Entonces creo que sí es decirnos que no lo estamos usando. Eso está bien por ahora mismo. Tan cool. Estamos aquí, Así que sigamos adelante. Y, um, lo facturaron para asegurarse. OK, entonces funciona. Y lo que vamos a hacer es sacar nuestro objeto de Star Wars, ¿
verdad? Alguien salve a nuestra, um, persona es igual a persona sw. Y mira que se inicializan. Er quiere algunas cosas. Quiere los nombres que pasamos en el nombre quiere las alturas que pasamos en la altura. Quiere el año. Entonces pasamos en el, uh, nacimiento. Así lo llamé aquí. Y el color del cabello. Acabo de llamar pelo. Y si eso funcionó, llegamos ahí, y ahí está. Y hagámoslo un let porque nos está gritando. Y así ahora si esto funcionaba, debilita, Di, uh, imprimir. Recuerda cómo, por cierto, no
dimos acceso a esos campos en la persona. Si digo persona punto um, gracias. Está pensando aquí, persona punto uh, pelo. ¿ Cómo se llama aquí? ¿ Cómo llamamos, um, nombre? Es una persona. Ese nombre. De acuerdo, mira, las casas construidas tuvieron éxito porque en realidad puede agarrar el nombre. Pero mira si hago esto. Si trato de llamar a este Darth Vader porque hicimos un privado que no podemos modificar. Eso es realmente genial. Entonces no podemos enviar propiedad para obtener solo propiedad, Así que estamos haciendo algunas cosas buenas aquí. Entonces, solo sigamos adelante e imprimamos estos para asegurarnos de que funcionen. Entonces vamos en imprimir persona punto Nombre. Está bien. Imprimir persona altura de punto, imprimir, persona punto pelo. Solo comandamos. Estoy sosteniendo ahora, mando, y estoy dando click. Simplemente no puedo leer el nombre exacto. Su nombre. Altura, año de
nacimiento. Probablemente deberías tener mayúsculas su año de nacimiento y escena de color de cabello, año de
nacimiento, color de
cabello. Entonces eso es un punto de color de pelo e imprimir persona Por alguna razón, mi auto se completa no apareciendo solo siendo raro. Um, me he vuelto demasiado dependiente de ello. De acuerdo, Entonces si todo funcionaba, deberíamos ver estas impresiones a esta pantalla individualmente. Está bien. Y asegurémonos de quitarme todas las huellas de aquí. Ahí vamos. Entonces sí. Entonces está bien. Entonces, básicamente, y acabo de hacer comando f para hacer una búsqueda rápida. Básicamente, sabemos que todo funcionó. Nosotros si llegamos aquí. Entonces lo que eso significa es, um Disculpe. Ya sabemos que el diccionario funciona quiz. Nosotros probamos eso, Pero lo que estamos diciendo es que sabemos que hemos sacado con éxito estos valores del diccionario con éxito, y si se convierten exitosamente a sus diversos tipos. Y entonces hemos creado con éxito un objeto y pasado con éxito en los datos e impreso
con éxito. Entonces si llegamos a la impresión, sabemos que todo funcionó. Y así es como codifico personalmente así. Simplemente probando las cosas, asegurándose de que funcione. Momento de verdad. Adelante y corrámoslo. Ver qué imprime a la pantalla. Luke Skywalker, 1 72 rubio. Y esa es la Guerra de las Galaxias. Año de nacimiento. Y así funcionó. Y también, también
sabemos ahora, también, que esto no salió como un entero. En realidad sí nos lo dio como una cuerda. Algunos ojos AP te darán números reales. Algunos no lo harán. Nunca se sabe. Y nunca se puede confiar realmente en lo que está imprimiendo que tienes, en realidad verlo y probarlo. Y así, por ejemplo, si esto fuera un número una vez la altura fue de 1 72 Vale, esto se habría derribado, y nunca hubiéramos visto esto. Y entonces eso me habría sido indicación. Ah, ¿sabes qué? Esto no funcionó. De hecho, quieres verlo funcionando. En realidad cambiemos de altura aquí. Vamos a fingir que pensamos que era un número, así que lo estoy cambiando de una cuerda a un final. De acuerdo, finjamos que es un número y no una cuerda, ¿de acuerdo? Ah, y, uh,
¿ las personas nos gritan porque quiere una cuerda? Entonces, sólo vamos a convertir esa altura aquí. Lo que haremos es que realmente lo convertiremos en una cadena y lo pondremos entre comillas ahí. ¿ Tiene sentido? Estoy convirtiendo esto a un fin, pero debido a que nuestro personaje de persona existe esperando una cadena, solo lo
estoy cambiando. Lo estoy convirtiendo en una cadena, pero realmente queremos probar es lo que pasa si asumí que no era un entero, pero realmente no era una cadena que sabemos que es. Veamos qué pasa. OK, nota cómo no pasa nada. Nada impreso. Eso es porque esto derrumbó justo aquí. ¿ Verdad? ¿ Ves lo que está pasando aquí? Si quieres verte haciendo más solo por el bien de las pruebas, bien, esto es importante saber, debilitar, Digamos, eh, digamos que la altura sea igual a esto. ¿ Todo bien? Y entonces eso dijo como un entero. De acuerdo, entonces lo está convirtiendo en un entero. Y luego veamos si imprimo altura. Veamos qué pasa. Mm. ¿ Qué opinas? ¿ Qué opinas? ¿ Uñas? Está vacío. ¿ Quién? Entonces imagina si traté de hacerlo bien. Aquí hay algo realmente interesante. Imagínese si tratara de hacer esto con un signo de exclamación. Yo lo obligo. Estoy obligando a que sea un entero. Veamos qué pasa. Un choque, ¿de acuerdo? Cosas muy importantes aquí. De acuerdo, primero ya lo
sabes y los que no lo sabían, sabes, porque vine a tu casa y te gané porque nunca haces esto. Nunca desenvuelves cosas con fuerza. A menos que Absolutamente no, va a funcionar. Lo que hicimos fue que dijimos, Hey, esto va a ser un entero y vamos a forzarlo ahí. Entonces ese es nuestro primer problema. Lo forzamos. Y por supuesto, no
lo fue. Y nuestra app acaba de estrellarse. De acuerdo, entonces y entonces el segundo problema fue cuando esto era un signo de interrogación. Nos dio un valor Neil porque no es un entero a cadena. Problema tan muy común. Podrías experimentar esto tú mismo ya que estás pasando por tus programas aquí, así que no hagas eso. De acuerdo, uh, revisa tus valores, asegúrate de que estén bien. Si te están cayendo, es porque estás desenvolviendo algo. No debería ser si nada está imprimiendo aquí como debería haber hecho, yo también podría haber hecho un punto de ruptura,
también , por cierto. Pero si nada está imprimiendo aquí, es porque algo estaba mal. Y así es fácil de saber. Oye, ¿ es incorrecto mi uno de mis tipos de valor? Y por supuesto, en este caso, wa así que esa es una forma de depurar. Y vamos a seguir adelante y cambia de nuevo a una cuerda. Y sigamos adelante y solo pongamos la altura de nuevo aquí porque ahora es una cuerda otra vez y estamos bien para ir. Entonces así es como analizas a Jason. No tan mal. Sólo tienes que saber que está Está lleno de diccionarios, um, y claves y valores. Y, uh, tal vez te estés preguntando, ¿qué pasa con la matriz de ahí? Bueno, ¿cómo manejarías eso? Bueno, eso tampoco está tan mal. Entonces estamos aquí en el diccionario. Pasó por ahí. Y así si voy a ver las películas ahí en el lado izquierdo, sabemos que es una matriz porque tiene peculiaridad. Un corchete cuadrado, por lo que está bajo una lluvia, tiene una matriz de cuerdas. En este caso, es que ni siquiera es una matriz de objetos es solo una matriz de cadenas que no está tan mal. Éste debería ser uno más fácil. Entonces lo que hacemos es, decimos, bueno, más fácil que si tuviera objetos en él. Entonces diremos si dejamos que las películas igualen a películas picadas. De acuerdo, como y esto va a ser una matriz de tipo qué tipo fuerza. Así que agarra la película de él y conviértala en una matriz de tipo string. Así lo haces bajo la lluvia. Y si quieres ver si funcionó, solo
podemos hacer esto para cada película en películas, impresos, . Entonces si esto funcionó, deberíamos ver 12341235 tu otra impresión a la pantalla. Y por cierto, estos son tu mundo porque te lleva a otro A p I y punto, obtengo mi copia, esta dirección de enlace de copia, y lo pego aquí. De acuerdo, Es solo otro endpoint que allá vamos tiene más datos, y eso es todo muy común. AP I diseñé. Te da una U R l dos datos más para que puedas agarrarlo en lugar de simplemente incrustarlo todo en el mismo archivo. Entonces si esto funciona, deberíamos ver cada película impresa en el grito después de esta información básica. Kammen. Ahí vas. Y funcionó. Se puede ver aquí mismo. Está bien. En esta otra chatarra, no
sé qué está pasando con eso es esto actualmente es excluir cebo, y he estado teniendo muchos problemas con ella. Por lo que ojalá seas de los pocos que ahora están haciendo esto Cuando la aplicación cuando el experto ha sido lanzado a la tienda APP. Si no, vas a soportar conmigo y resolver algunos problemas tú mismo. Y por cierto, si tienes algún problema, el siguiente código va al ir a la sala de chat, ve a los foros, él va a conseguir ayuda. Por lo que funcionó. Ahí está nuestro rayo. ¿ Hay algún otro tipo de datos que esté aquí mientras que realmente, eso es bueno. Um así tomamos una matriz partes que aquí y luego acabamos de agarrar los artículos de ella. No es gran cosa. Entonces ahí lo tienes. Simple, análisis
de Jason. Asegúrate de hacer esos si vamos bien diciendo:
Oye, Oye, si esto si sacas esto cuando se convierta bien, vamos a pasar en el siguiente, el siguiente. Y si todos estos funcionan ahora, podemos usarlos. Si vamos siempre en tu Jason siempre, siempre, siempre Si no lo fuerces o tienes muchos problemas. Así es como lo haces. Esta es la mejor práctica para el análisis de Jason. De acuerdo, perdón por hablar demasiado tiempo. Esto es bueno. Y ver una próxima vez aquí en laderas sordas punto com.
81. Introducción a la aplicación: Pokemon Pokedex: Hey, todos, Mark Price aquí en profundidad pendientes dot com Y hoy vas a estar construyendo tu propio índice de
poke. Y esto no es un índice de poke ordinario. Se trata de un frickin cool barajas de polka con un montón de gráficos cool sobre 718 Pokemon con los que
estarás trabajando. Y puedes desplazarte por la lista para encontrar todas las bellas imágenes Pokemon, grandes gráficos. También puedes buscar filtro. Entonces a medida que estás escribiendo modelo pokey, sé filtro para que puedas encontrar los que estás buscando. Y luego también hemos implementado una característica donde se toca un Pokemon y se va a ver los detalles de ese Pokemon como la siguiente evolución, el peso y la altura, y estaban muy bien hechos. Este es definitivamente un proyecto de cartera para ti. Las cosas que vas a estar haciendo aquí o lo que vas a estar haciendo probablemente el 90% del tiempo en un trabajo del mundo real. Así que domina estos principios y estarás tan cerca de tener un trabajo o de poder comer aplicaciones
profesionales y liberarlas a la tienda APP. Este es definitivamente proyecto de cartera. Tíralo en tu programa, tus amigos y familiares, y puedes llevártelo tan lejos como quieras. Haz que todo el Códice esté tan involucrado como quieras. Estoy tan emocionado de construir esto. Adelante y empecemos.
82. App: Pokedex parte 1: configuración del proyecto, datos, Github: todo el mundo Mark Price Escuchar con pendientes sordos dot com Y hoy es el día más emocionante de todos . Vamos a construir nuestras propias mazos pokey app Pokemon. Y por cierto, olvidé decirte que en realidad no puedes construir este acto a menos que estés usando algún tipo de camisa Pokemon para sombrero para que no tengas una. Adelante y detén el video. Acude a tu tema caliente más cercano o amazon dot com y tú mismo algún año de póquer porque
tienes que estar en la zona para construir algo tan cool. ¿ Esto es o no? No tienes que tenerlo, pero muy recomendable cosas tan emocionantes. Sólo vamos a sumergirnos justo en. Esta va a ser una aplicación más larga, Inglaterra, y crear un nuevo proyecto. Está cargando y creando Nuevo proyecto Exco y una aplicación de una sola vista está bien. Despeja lo que quieras decir poky decks by Deb Sloves y haz click en Ah, siguiente luce bien y solo pondremos éste en nuestro escritorio y sí queremos crear un
repositorio git porque vamos a seguir adelante y poner esto bajo get porque si estás buscando un trabajo, vas a querer estar publicando esto y mostrando tu código porque va a ser un proyecto muy bien hecho. De hecho, proyecto de
primera clase como si logras esto hecho, gente va a ser como, Wow, tú hiciste eso. Entonces así de increíble va a ser este proyecto. En realidad me tomó unas 24 horas construir y perfeccionar la primera vez que lo atravesé tan bien, ya sea más rápido. Pero quería que fuera perfecto para nosotros. Entonces eso podrías tener algo grandioso. Así que adelante y asegúrate de que seleccionados cree tu repositorio. Y lo primero que vamos a hacer es poner esto en nuestras cuentas get have para ir adelante a tu navegador local, sea lo que sea, e ir a conseguir hub dot com e iniciar sesión. Si usted si no está firmado ya y luego adelante y haga clic. Crear nuevo repositorio. La mente dice que los años fiscales gastados van a decir tu nombre de usuario y llamar a lo que quieras. Llamaremos a nuestros poky decks, pokey decks a tener ya uno ahí y,
uh, uh, llamas a la tuya lo que quieras mentes este Gumby pokey mazos a público y esto todo se ve bien aquí, crea un repositorio . Y entonces lo que vamos a dio es ir a tu terminal. Entonces espacio de mando, Abre tu buscador y ve a la terminal y, uh, mente en mi escritorio. Entonces voy a ver el en escritorio y CD en pokey decks por las laderas de la muerte. Ya es conseguir repositorio porque eso es lo que dijimos en el código X. Entonces lo que quieres hacer es escribir Get off, get add Dash A. Bueno, primero
podrías revisar y ver qué está pasando aquí. Entonces obtener el estatus. El rojo significa que hay algo que necesitamos agregar, que son nuestros archivos de proyecto. Así que adelante y consigue add dash a get commit dash EMS, y luego las cotizaciones Vamos a decir, uh, primer proyecto commit. Y entonces lo que vamos a dio es el tuyo será diferente. Pero voy a copiar el que dice llegar a distancia en origen otra vez. El tuyo será diferente, así que yo simplemente no voy a hacer eso. Voy a copiar esto y volver a mi terminal, y sólo voy a ritmo eso ahí dentro. Estamos agregando nuestro repositorio remoto. Se agrega, y todo lo que tienes que hacer ahora es que te empujen. Maestro de origen. De acuerdo, unos repositorios arriba. Y si actualizo esto, obtén ayuda Page, ahora
verás mi proyecto aquí. Entonces, adelante y haz eso. Ponga en marcha su proyecto. Y a medida que vayamos por todas partes con Mitt estará haciendo commits y cosas como esas cosas geniales. Entonces solo vamos a poner nuestro proyecto aquí. Um, básicamente, has visto cómo se ve la app. Y ahora solo necesitamos conseguir algunos de los archivos que vamos a necesitar una parte del ap
va a construirse analizando. Ah, mira, archivos
SV y parte de ello va a ser conectándose a un ap I público en internet. Entonces vas a aprender un montón de cosas hoy, Y, uh, así que adelante y ve a ir a pokey ap i dot c o ok. Y aquí abajo en la página, ese mejor enlace a su hub get. De acuerdo, así que adelante y haga clic en ese enlace en la parte inferior de aquí. Y este es el proyecto que queremos. Ellos lo hicieron público en get tiene todas las imágenes y archivos y cosas que vamos a necesitar. Y así para la primera parte, sólo para que lo sepas, en realidad
construí toda esta app al principio. ¿ Todos hablando con 100% a través de Internet? No, no analizar archivos CSC. No hay imágenes localmente. Pero lo que estaba pasando fue que tardaba demasiado en descargar imágenes. Ya sabes, hay 700 21 Pokemon ahora absolutamente van a hacer 718 por cierto. Perdón por esos últimos tres. Y Pero de todos
modos, se tomó demasiado tiempo. Entonces estaba pensando, ¿Cómo puedo crear una mejor experiencia de usuario? Y la solución era realmente traer esos archivos localmente y no
descargarlos de internet. Entonces aquí está el código fuente. De acuerdo, Así que adelante y solo descarga el zip. ¿ De acuerdo? El mío va en mi carpeta de descargas. Lo voy a poner en el escritorio mostrando finder, y solo lo voy a arrastrar en el escritorio aquí, ¿de acuerdo? Y haga doble clic en él para abrirlo. Elimina el archivo zip. Ya no necesito eso, y voy a cerrar mi navegador. De acuerdo, entonces hay algunas cosas que vamos a necesitar de este proyecto para empezar. Así que adelante y haga clic en su carpeta de activos. Lo primero que vamos a hacer es Dragón. Todas las imágenes que vamos a necesitar. Entonces estoy abriendo esta carpeta Pokemon entrando en ningún dato de activos, y aquí están, metiendo quieren X y sprites. Y como puedes ver, hay un montón entero Hay 718 y la razón por la que solo estamos apoyando a 7 18 en este momento porque eso es lo que soporta este código basado en. Siempre se puede agregar más después. Si eres un fan de Pokemon die hard, puedes hacer lo que diablos quieras con esta app y hacerlo tan grande como
quieras . Entonces solo voy a mandar a un para resaltar todos estos y literalmente solo voy a arrastrar todos los 718 y dejarlo aquí. Y es pensar, y también voy a proporcionar estas imágenes como parte del recurso es en el caso de que esa cuenta de
get hub alguna vez se caiga, podrías agarrarlas del proyecto. El recurso está bien, así que tenemos sus imágenes, se ven geniales, y estos fueron los sprites de los juegos reales. No tengo ninguno de estos estos aire públicamente disponible, así que todos los derechos y derechos de autor existentes están en pie, y así está nuestra imagen es lo siguiente que vamos a necesitar es, um necesitamos una lista de todos los Pokemon. Entonces también es parte de esto este un p I que vamos a estar aprovechando Ellos realmente no tenían . Bueno, lo que estaba pasando fue la a p. que no me estaba enviando abajo a los Pokemon en una lista ordenada, y así todos estaban fuera de orden y no estaban haciendo coincidir con imágenes. Y fue un gran dolor, en realidad. Así que adelante y entra en la versión uno. Y aquí hay uno llamado Pokemon CSP. Esa es la que queremos. Y lo que vamos a hacer es esto. Arrastra eso también a nuestro proyecto. Justo ahí. Copiar artículos. Sí. De acuerdo, así que hemos copiado el archivo Pokemon dot C S V. Está justo aquí. Está bien. Y, uh, somos imágenes. Y la abogacía ahí están. Entonces aquí está nuestro Pokemon. Um, sólo un montón de datos todo el camino hasta aquí abajo, y vamos a hacer algunos primero. Entonces, por cierto, he seleccionado el archivo aquí, Pokemon ese CSP, y vamos a deshacernos de algunos de estos especiales aquí mismo. Tienen un montón de especiales y nos vamos a deshacer de ellos por ahora. Podrás apoyarlos en tu propia app. Pero, uh, no
vamos a apoyar a ninguno de los Maiga. No vamos a apoyar algunas de estas otras cosas. Miao stick, dash femenino todos estos casos muy raros, vamos a deshacernos de ellos. También después de 7 18 Hace resaltar esto todo el camino aquí abajo. Eliminemos esos K y guárdalo. Comando s así sólo vamos a ir al 7 18 Y la razón por la que no estoy apoyando esos es una es que sólo estoy tratando de mostrarles algunos principios. Y para es que no tengo los activos para ninguno de esos. Entonces sólo tenemos los datos aquí, así que Ok, se ve bien. Y esta es la idea. El número del Pokemon y el identificador es el nombre. Eso es todo lo que realmente nos importa ahora mismo. Entonces tenemos que ver archivo SV. Tenemos configurado el proyecto. Tenemos las imágenes. Tenemos todo listo en get hub y,
uh, uh, empezando a lucir realmente bien Ya tengo algunas imágenes geniales. El trabajo fue seguir adelante y abrir tu terminal y teclear ah, git status y se puede ver que hay Aton de imágenes. Así que adelante y consigue en Dash Capital A agregando todos los archivos y luego obtiene el estado de nuevo para asegurarse de que están todos verdes, lo que son, y luego conseguir commit Dash M imágenes agregadas y ver archivo SV y luego obtener push origin Master 70 85. Ahí vamos. Vamos, nena. Ahí vas. Por lo que ya estamos todos listos para ir por nuestra app. Vamos a mirar, conseguir hub aquí y asegurarnos de que todo esté ahí todo lo que necesita para estar ahí. Entonces vamos a mis repositorios. Vamos. ¿ A dónde está pokey mazos? Y, uh, vamos a asegurarnos de que tenemos todo lo que necesitamos aquí. ¿ Activos? Sí, están ahí. Están todos ahí. Sí. De acuerdo, así que es genial. Entonces eso es todo por ahora mismo. Esta es la primera parte del video que acaba de poner en marcha el proyecto. Y, uh, pasemos a la siguiente
83. App: parte 2: crear una clase de Pokemon: Oigan, todos, Mark Price. Aquí, Deb pistas dot com En el último episodio emocionante de Build Your Own Poke Index manera traída imágenes, lo
preparamos, levantamos y nos pusimos listos para irnos. Vamos a bucear justo en, abrir tu proyecto y abrir archivo reciente o donde hayas almacenado el archivo. Puedes hacer click en él y sigamos adelante y solo pasemos a hacer que las cosas funcionen. Entonces la manera que quieres hacer es mostrar una lista de Pokemon en la pantalla. Recuerda, en la pantalla principal, todo
un montón de Pokemon, queremos mostrar sus imágenes y queremos mostrar sus nombres. Y así hay algunas cosas que tenemos que hacer primero, que es que necesitamos tener algún tipo de datos. A veces me gusta empezar con la u I. Porque es divertido. Pero probablemente en la mayoría de los casos termino realmente construyendo los datos. Primero el modelo y necesitamos un modelo cuando necesitas un objeto Pokemon que almacenará un nombre
Pokemon también, ¿verdad? Ah, son poquito pokey Index, el número que les han asignado. Por lo que voy a dar clic a esta carpeta aquí. Está bien. Y hagamos el código un poco más grande. Voy a hacer clic en esta carpeta, correcto. Haga clic en él y vaya a Nuevo de New Group, en realidad, y hagamos un grupo para nuestro modelo llamará modelo. Y dentro de eso, haré clic en ese nuevo archivo y archivo swift bajo fuente aquí. Y vamos a llamar a este mes pokey. Todo lo que vamos a hacer en esta aplicación es lo que haría en la vida real si estuviera desarrollando una app. De acuerdo, he construido 57 APS móviles. Entonces lo que vas a ver son mis mejores habilidades en la práctica. Para que sepas lo que haría yo, lo cual es realmente genial. Uh, no
soy sólo un tipo al azar estaba enseñando cosas al azar. Te voy a enseñar lo que realmente hago en la vida real. Entonces clase Pokemon, y, uh, ahí vamos. Y entonces necesitamos un nombre, ¿verdad? Tan privado de nuestro nombre de tipo string. De acuerdo, le
estamos dando la exclamación porque en algún momento, tendrá un nombre le garantizará que puede tener un Pokemon sin nombre. Entonces no tiene sentido,
uh y, uh, uh, poner un signo de interrogación ahí porque sabemos que lo vamos a tener. Y luego vamos a llamar a este poky decks I D Y eso no, eso va a ser un int porque es un número y eso se ve bien. Y sigamos adelante y creemos ya a nuestros getters. Por lo que debes meterte en el hábito de hacer esto solo variables locas y luego crear tus getters y eso Vamos a guardar nuestro nombre de tipo string. Vayamos a decir regreso. Subrayar Nombre Anvar Pokey mazos I d de tipo int y vamos a volver Poke it excitante. De acuerdo, así que tenemos esos campos y eso se ve bien. ¿ Qué más necesitamos? Um, un Isar inicial s para que podamos pasar esos datos y así en él. Y vamos a decir el nombre del tipo string. Siempre que creas un nuevo objeto Pokemon, tiene
que tener un nombre y tiene que tener un mazos de polca I d. Así que por eso Pok Decks I d Por
eso está bien poner estos puntos de exclamación. Recuerda, podría ser peligroso, ¿verdad? Si aún pones estos aquí porque entonces el programa no te va a gritar por acceder a ellos. Pero tu programa podría estrellarse para que Onley alguna vez, alguna vez, alguna vez los use. Y ya has escuchado esto antes tantas veces, Solo que nunca use estos. Si absolutamente No, ahí va a haber valor. Bueno, lo estamos forzando aquí mismo. Estamos diciendo que ni siquiera puedes crear un objeto Pokemon a menos que pases un nombre en un
mazos de polka . Yo d. Entonces todo lo que tenemos que hacer es decir auto punto Subrayado Nombre igual nombre y auto punto Underscore pokey mazos. I d igual a pokey mazos. Yo d. Y, um, eso es bastante simple. Tenemos nuestra clase. Se ve muy bien. Y, um, ahí está nuestra modelo para empezar. Y así recuerda, si alguna vez quisiéramos usar esto vamos a deshacernos de esto aquí Si queríamos hacer esto bien,
um, um, solo
salvamos a nuestro Pokemon igual a Pokemon, y entonces solo pasas en el nombre que ya sabes, Decks Charles ard pokey. D va a ser ¿Qué es? ¿ Qué número es él, como, seis. A lo mejor no puedo estar seguro. Um, claro, no lo vamos a hacer de esta manera. Lo vamos a hacer dinámicamente a partir de los datos que vamos a partes aquí, pero sí, Así que ahí está nuestra clase ahora mismo, Eso es todo lo que realmente necesitamos. Voy a romper este video estos videos muy fuertemente aquí. Entonces vamos a terminar este video aquí. Esto es construir tu propia clase Pokemon y pasemos al siguiente video.
84. App: Pokedex parte 3 - UICollectionView, diseño de diseño de storyboard: todos siguiente parte de la serie Marcar Precio aquí con pendientes de muerte punto com Y aquí estamos . La última vez construimos una clase para nuestro Pokemon justo aquí. ¿ Y sabes qué es realmente genial? ¿ Sabes por qué escogí este proyecto? Aparte del hecho de que lo puso en su realmente cool me gustan los bogeymen. No tengo miedo de minuto. De acuerdo, uh, lo grande, sin embargo, es que estás haciendo tanto. Vas a aprender tanto si puedes,
maestro,
si puedes maestro, dominar cada principio que aprendemos aquí conectando al edificio de la red hermosa. Usted me gran experiencia de usuario. Si puedes dominar esto, esta sección te ayudará a conseguir un trabajo. Si publicas APS así, vas a tener usuarios que vas a tener. Vas a tener un montón de cosas buenas yendo por ti. Entonces no somos como los otros cursos en los que solo estamos construyendo alguna aplicación simple, simple, simple, simple,
simple,
simple, simple, para que solo puedas aprender un principio. Simplemente haz estas cosas con mucho cuidado. Ponles mucho esfuerzo, y estarás muy cerca de conseguir un trabajo. gente, a la gente le encanta este tipo de cosas, sobre todo aunque no lo digan, sobre todo cuando las cosas son visuales. Uh, verdad solo se lo vendes a la gente. Entonces por eso me estoy poniendo tan gorda, Porque todos los dulces en la tienda son los colores rojos brillantes, y yo lo compro, y solo sigo comiendo, así que haz cosas bonitas y la gente lo querrá. De acuerdo, Así que aquí está nuestra clase Pokemon. Eres como el tipo Collis nunca se calla. Bueno, uh, lo siento. Tengo que lidiar con ello. Um,
Entonces, ¿qué queremos hacer a continuación? Vamos a configurar o poner guión gráfico principal. Está bien. Ah, aquí está nuestra opinión. Contralor, um, necesitamos algunas cosas. Una es que vamos a querer poner ese bonito fondo ahí y luego empezar a trabajar. ¿ Eres yo Colección vista poniendo. Ah, la celda de ahí dentro. Uh uh. Sell's en cll para configurar tus imágenes y cosas. Entonces sigamos adelante y hagamos eso ahora. De acuerdo, Así que vamos a seguir adelante y agarrar nuestro gráfico de fondo. ¿ De acuerdo? He proporcionado esto en el recurso es para ti y, uh, aquí mismo. La mayoría nosotros tropas, en realidad. Vamos, um recortemos primero los activos. Perdón. Ahí vamos. Y luego sigamos adelante y tuvimos que pensar por una segunda causa todo el pinchazo aquí, sigamos adelante y arrastramos el B G ahí dentro, y eso se ve bien. Entonces vuelve al tablón principal de cuentos. Y bastante simple. Escribamos la imagen aquí abajo, a la
derecha, derecha, y sólo la haremos a pantalla completa aquí, y eso se ve bien. Um, ¿eso
es lo que queremos? Bueno, si no lo queremos así, podemos cambiar después. Pero creo que eso es lo que queremos. En realidad, pongamos pongamos nuestra barra fronteriza en su primera. Lo pondremos debajo,
así que teclea nuevo que veo y arrastré a este tipo hasta aquí. De acuerdo, aquí vamos. Arrástrelo hasta aquí a la derecha, y parece que está colgando sobre el borde. Ahí vamos. Voy a escoger mi color. Podrías hacer el color que quieras. Voy a hacer mi abrigo, que es este rojo. Y si quieres el color, está justo aquí. F f 5855 Y, uh, te gusta este tipo usa mucho este color. Bueno, me gusta. Es realmente genial. Y sí, así que pongamos algunas restricciones en él. Entonces queremos apagar márgenes y lo quiero cero desde el cero superior desde la izquierda. Cero desde la derecha, y la altura hará 55. Forzará la altura ahí por lo que se quede aquí y sumará cuatro restricciones. Y luego esta vista de imagen. Adelante y,
uh,
apaguemos uh, los márgenes. Y así no le queremos 34 de arriba. ¿ Qué? Eso me dice cuando está diciendo 34 desde arriba que estoy un poco superpuesto. Mi vista roja aquí. Vamos a bajarlo un poco. Ahí vamos ahora dice dos. De acuerdo, entonces nos estamos solapando. Eso estaba tratando de encontrar al siguiente la siguiente frontera aquí, pero esto también lo es. Entonces eso es lo que queremos. Y luego, en lugar de dos en el set cero y eso es cero. Eso es 00 así que lo estamos configurando desde todos los bordes ahí. Se estirará como lo necesitamos para agregar cuatro restricciones y luego para la imagen a Stedman, BG Press. Entra y quiero sentir aspecto, y se ve genial. Um, se verá mejor una vez que tengamos las otras cosas en él. Entonces ahí están nuestros antecedentes. Se ve bien si hago clic en la vista previa Por aquí. En el lado derecho están el asistente de editor, y cambié de automático a Prevue. Está bien, se ve bien, ¿verdad? No tan mal. Muévete. Vamos a mover esto todo el camino por aquí así, o así. Ahí vamos. Entonces creo que está mirando la forma en que queríamos. Um Está bien, genial. Trato. Vamos Ah, vamos a poner nuestra colección de ustedes aquí. Por lo que yo colección vista acabo de escribir en su u llamo. Y ahí está. Y ah, pongámoslo aquí mismo. Vamos a moverlo aquí arriba, moverlo aquí arriba. Y ah, um OK, así que se ve bien en que estás, como, se ve feo ahora. Bueno, vamos a llegar ahí, Um, Y además, sigamos adelante y pongamos nuestra barra de búsqueda, y no vamos a hacer el código para eso todavía, pero pongámoslo en su lugar. Entonces por lo menos tenemos un buen pequeño diseño aquí. De acuerdo, entonces las barras de búsqueda ahí, por favor agregue algunas restricciones. Entonces en lugar de dos de arriba, quiero cero y 10. Apague los márgenes aquí. Oye, dije que el truco cero es tratar de ser astutos. Ahí va otra vez cero. Gracias. Y Ah, eso se ve bien. Queríamos cero desde cero desde cero y la altura en estos en realidad no cambia. Es una altura fija, así que ni siquiera necesito fijar la altura, porque no va a cambiar en mí. Voy a dejar eso ahí. Y por último, tenemos nuestra vista de colección, y Ah, ¿sabes qué? Déjame ver aquí. Entonces tienes esta vista de colección? No queremos,
en realidad, um, um, no lo queremos todo el camino en los bordes porque queríamos tipo de flotar y lucir realmente bien. Entonces hagamos sólo 20 por todos lados. Eso me gusta. Entonces digamos que dice 15 desde arriba. Yo sólo soy un 20. Esto va a ser 20. Esto va a ser 20. Y esto sería 20. Oye, vamos, obedece, hombre. Estos diseños de auto Hay que tener cuidado, porque no lo hacen. No obedecen todo el tiempo. Entonces eso me queda bien. Y ah, sí
nos dieron un problema, sin embargo. En el lado derecho, es ah dando algunos temas aquí, en realidad. ¿ Qué está pasando ahí, Mr Cobranza vista. Probemos esto otra vez. Eso márgenes on. Sí, tu propio cero. Y entonces, um aquí mismo, vamos a hacer 20 en el sin fondo hacer 20. Ahí vamos. Por alguna razón, estaba actuando extraño, y ahora está haciendo lo que queríamos dio. Está bien, se ve bien. ¿ Qué opinas? Bien. Entonces ahora tenemos esta pequeña colección de que vendes, si sabes que está justo aquí. Esta es la celda. En realidad podemos diseñarlo aquí mismo en el, um, storyboard. Entonces voy a hacerlo un poco más grande. Um, qué es Pero es un buen tamaño. Digamos que digamos 25 por ahora mismo en cuatro. Eso parece un poco grande. Hagamos sólo 10 No, eso es bueno por ahora. Está bien. Y hay una vista para nosotros. Um, ¿
qué necesitamos ponernos aquí? Bueno, necesitamos una imagen, ¿verdad? Entonces vamos a seguir adelante y teclear e imagen, y es un poco grande, así que vamos a hacerla más pequeña, ¿de acuerdo? ¿ Y qué queremos hacer? Bueno, yo quiero que se vaya por todos los bordes aquí, y entonces lo que quiero hacer es tirar etiqueta en la parte inferior. Tú etiqueto porque, recuerda, hay una imagen derecha Y luego está la etiqueta en la parte inferior. Entonces lo voy a arrastrar de borde a borde aquí. Eso se ve bien. Voy a hacer esto un poco perfecto ahí mismo. Centro la etiqueta. Cambiemos. Es divertido de sistema a noticias personalizadas y helvética. Bien, hagámoslo pequeño. A lo mejor talla 12. Vamos a centrarlo. De acuerdo, ahora se ve bien y desplácese aquí por defecto. En realidad, las etiquetas tienen un fondo claro, pero en realidad podemos darle un color de fondo como el Rojo, quien ahora empieza a tomar forma, cambia el color de la fuente, pero la parte superior ahí demasiado blanca. Y se ve muy bien. Tiene aspecto muy bonito. Sí tenemos que establecer restricciones. De acuerdo, Entonces esta vista de imagen, uh, no constreñan los márgenes. Queremos 000 Y, um, eso está bien para el análisis. Nosotros que en este momento y en la etiqueta, vamos a seguir adelante y asegurarnos de que su fondo se ajuste a 000 a menos que eso una altura en esto. De acuerdo, así que eso está bien. Y así la etiqueta todo lo que quería son las imágenes Vuelve aquí ahora y solo quiero un banderín ahí al fondo. Y en lugar de uno, vamos a decir apagar márgenes de restricción en lugar de uno. Vamos a decir cero queríamos al ras con la etiqueta. Está bien. Y solo por diversión, lo que podemos hacer es cambiar la imagen de la misma y solo asegurarnos de que se vea bien. Entonces cuando ella escogió, uh, voy a la escuela indiferente al 97 que es un tipo grande cambiando el modo a lo que es aspecto basura siente que queremos que encajemos. ¿ Quién? ¿ A quién te gusta? A mí me gusta. Creo que se ve genial. Um, cool. Entonces tenemos esto genial lo de la escuela justo aquí. Por lo tanto, vamos a dar click a nuestra vista de colección. Y, uh, no
queremos un fondo al respecto. Creo que queríamos claro. Correcto, para que podamos ver los son bonitos antecedentes. Entonces estamos aquí donde dice fondo ahora mismo, es color poco claro. De acuerdo, ahora no quieres cambiar el Alfa. Um, déjame ver aquí. Bueno, eso está bien, en realidad, tal vez lo hagamos. Cambiemos el Alfa a 0.1. Um, parece Alfa 20 Ah, bueno, es
Es ah, lo correcto seleccionado aquí. Entonces eso es una revisión. Nuestros antecedentes claros en este momento es asegurarnos de que cambie a medida que se lo pidamos. OK, entonces está cambiando. Um, pero lo que realmente queremos es color claro. Ahí está. Color claro. Ese es el que estábamos buscando. Y ahora en nuestra celda aquí. Aunque, um, notamos que no hay antecedentes en eso. Entonces vamos a darle un color de fondo de blanco y trajiste el pensamiento, Bueno, en tu app, es un poco transparente. Es un poco transparente, así que hagámoslo. Haga clic en la parte blanca justo aquí y donde quiera, dice Opacidad. Sólo cambiémoslo a 70 ahora. Estamos empezando a ver un poco a través de ella. Eso se ve realmente genial. Entonces eso se ve bien. Sólo lo ejecutemos y veamos qué pasa. Entonces haga clic en la carrera. Mira el iPhone seis y mira cómo se ve. OK, entonces no está mostrando nuestra vista de colección. Eso está bien. Se espera porque no hemos escrito el código para ello, así que ahora es algo invisible, pero eso está bien donde queremos estar en este video, tenemos algunas cosas configuradas. Se ve bonitas luces y cosas fuera. Creo que se ve bien. Um, ya
sabes que ese bar de aquí. No se vende completamente en él. Arreglemos eso realmente rápido. Es de este gran color, ¿verdad? Entonces vamos a dar click en él. Y, uh, el, uh, por aquí en el lado derecho. ¿ Qué buscamos? Estilo de búsqueda. Mínimo. Ahí vamos. Eso es bastante bonito. Um, tiene, como, un azul ahí. Um, eso no está nada mal. En realidad. Me pregunto si debería quedármelo. Voy a darle una tienda de bar. Uh, pensemos en esto aquí por un segundo. Bueno, en realidad tengo una mejor idea. ¿ Recuerdas esta vista de imagen que hicimos justo aquí en el fondo? De hecho, solo lo hagamos más pequeño. ¿ A quién ves lo que estoy haciendo? Ve ese bonito blanco de ahí. Entonces eso se ve bien. Entonces en lugar de 46 desde la parte superior de la roja, estoy haciendo clic en la regla por aquí en el lado derecho. Voy a ir al espacio superior a ver, y sólo voy a borrarlo. No, lo que voy a hacer es hacer clic en el botón pin justo aquí, y vamos a decir que queremos un cero de arriba justo ahí. Y ahora míralo. Tenemos esa bonita barra de búsqueda blanca. De verdad me está gustando. Está bien. Fácil de arreglar. Se ve genial. Adelante y llamemos a este video. Bien. Y, uh, consigue esto. Ponte todo al día aquí, y vamos a seguir adelante en el siguiente.
85. App: parte 4 de UicollectionViewCell personalizado: Quién aquí vamos a volver a hacer algún fondo pokey OK de nuestra Chrissie o pendientes sordas dot com. Pongámonos a trabajar. Aquí es donde lo dejamos la última vez. Consiguió una bonita vista de colección, algún podio de aspecto funky por aquí. No aparece nada en la pantalla. Eso está bien, sin embargo, Cuando no digo nada, me refiero a la colección tú misma. Entonces lo que tenemos que hacer ahora es que tenemos una celda de vista de colección. Pero aquí hay una pregunta. ¿ Cómo cambiamos la imagen en ella? ¿ Cómo cambiamos la etiqueta? ¿ Qué tenemos que hacer para eso? Por lo que en realidad necesitamos crear una celda de vista de colección U Y personalizada que tenga esa información ella. Así que adelante y crea una nueva carpeta, un nuevo grupo. Vamos a llamar a esta vista, ¿de acuerdo? Y por supuesto, el modelo siempre va por encima de la vista porque es modelo, vista, controlador. Y así conseguimos una vista aquí. Ahí no hay nada, lo cual está bien. Y, uh, sigamos adelante y pongamos una nueva clase de archivo y cacao touch. Llamemos a esta celda poky, como en tu zona, una colección de que vendes y cambiemos la clase a ti. Yo colección ver celda. Agrega un gent al final. Gracias, Apple. Está bien. Disculpe. Entonces no los necesitamos si ya tenemos la celda ahí mismo en el propio archivo en el guión gráfico. Entonces eso es lucir bien y crear. Y ahí está nuestra venta de aduanas. Apagemos aquí el asistente de editor. Y, uh, hagámoslo un poco más grande para que lo veas en ese pequeño iPhone tuyo. De acuerdo, entonces pokey celulitis colección de ti vende. ¿ Qué necesitamos? Bueno, sabemos que vamos a necesitar una imagen, cierto, causa cada una de esas celdas como imagen y tiene una etiqueta tan fácil, estoy outlet week var. Y llamemos a esto. Ah, qué tal el pulgar imagen pulgar para miniatura. Y, uh, tengo tipo te imagen blanca, ¿verdad? Hagamos otra salida de hiedra. ¿ Qué es algo? El sello. Correcto. Entonces el nombre está bien, tan bueno para mí. Um, ¿qué más necesitamos? Um, ¿qué más necesitamos aquí abajo? Oh, ya
lo sé. Um, tenemos que almacenar objeto Pokemon, ¿verdad? Entonces, como cuando cada vez que se crean nuevas celdas, tenemos una clase real que estaba usando la bodega de datos que vamos a tener que volver a copiar, como nombre, descripción, como nombre,
descripción,
todas esas cosas. No tenemos que volver a copiarlo por todo el lugar. Entonces sigamos adelante y hagamos eso ahora, digamos, de nuestro Pokemon de tipo Pokemon. Esa es la clase Pokemon recreada aquí mismo en nuestra modelo. Entonces sólo queremos almacenar eso ¿verdad? Y, um, eso se ve bien. ¿ Y qué más necesitamos aquí? Por lo que probablemente necesitemos una forma de asignar estas cosas en algún momento del futuro. Entonces voy a decir funk, configurar celular. Esto es justo lo que me gusta llamarlo. Siempre que estoy configurando la celda, estoy configurando. De acuerdo, lo
vamos a hacer es pasar un objeto Pokemon,
y, uh, uh, vamos a agarrar cosas de él. Entonces lo que vamos a hacer es que vamos a decir, um, auto punto Pokemon es igual a Pokemon. Y sí tengo que usar el auto curado porque este nombre es el mismo que, ah, como este de aquí. Si cambiara el nombre ahí, no
tendría que hacer este yo. Eso está bien. Y luego consideraremos porque una etiqueta de nombre texto de punto equivale a auto punto nombre de punto Pokemon. Y si recuerdas, correcto, el nombre de nuestra adquisición COC. Ninguno de estos tu capitalizado si puedes ver eso ahí mismo. Entonces hagamos eso ahora digamos Ah, cadena de mentira
mayúscula. Eso va a cada palabra en una frase. Va a capitalizar la primera letra que contiene. Eso es un poco agradable fuera de la propiedad computada ayudante de la vida de un String. Y lo siguiente que tenemos que hacer es establecer la imagen así que vamos a, uh lo que vamos a hacer es diremos, etiqueta de
nombre sin nombre etiqueta pulgar imagen punto Imagen igual a usted imagen, y vamos a hacer Ya hemos hecho esto antes, uh, imagen con nombre derecho. Y tú eres como, Bueno, ¿cuál es el nombre de la imagen? Bueno, veámoslo. Todas nuestras imágenes son solo números, ¿verdad? Esos los nombres, Eso es realmente conveniente. Entonces tenemos que hacer es poner en el número, ¿verdad? ¿ Y cuál es el número? Bueno, lo
tenemos. Es justo aquí y yo, ese Pokemon que pokey mazos I d. Correcto. Ese es sólo el número. Simplemente va a poner 123 718 lo que sea. Entonces cada vez que se llame a configurar Cell, va a pasar en el Pokemon, y va a pasar en su nombre y pasando la imagen. De esa manera se puede volver a utilizar la célula una y otra vez. Entonces se ve bien. Todo lo que necesitamos hacer ahora es probablemente atar. Estos yo soy outlets en nuestro storyboard. Entonces hagámoslo ahora. ¿ De acuerdo? Y aquí está. Hagamos clic en la vista de colección y luego en la celda, que está justo aquí. Tengo un seleccionado y vamos a allá vamos a poner la celda, vamos a este pequeño rectángulo y cambiamos la clase a celda pokey. ¿ Verdad? Está bien. Y todo lo que tenemos que hacer ahora es un arrastre de control desde Pokey cell hasta, digamos, uh, esta imagen de aquí y, um, no
está obedeciendo. Aguanta. Vamos,
uh, uh, probemos esto de una manera diferente, ¿
verdad? Haga clic en él cada go. No sé por qué no está apareciendo. Podría ser acerca de lo correcto. Haga clic en él fuentes de células pokey. Etiqueta de nombre. Adelante y arrástralo hasta aquí para etiquetar y revierte la imagen del pulgar. Salga y arrastra eso a la imagen. Nuestras vistas ahora están conectadas. Eso se ve genial. Por lo que acabamos de crear una personalizada tú cobranza vista Vendo clase aquí mismo. De acuerdo, así que no es gran cosa. Um, lo siguiente que tenemos que hacer es que todas estas cosas se muestren. Pero vamos a llamar a este video. Hecho. Esto es crear celdas personalizadas. Esto también está creando una vista personalizada. Clase personalizada es que vas a hacer eso mucho si no estás creando clase personalizada es frecuentemente para tus vistas y otras cosas dentro de tus proyectos. Probablemente no lo estés haciendo bien. Probablemente significa que estás poniendo todo tu código en tu vista, controlador. Y eso es malo. De acuerdo, surge
este módulo. Si consultas clase, subclase la puso en su propia vista, enviando con tus clases desglosan las cosas tanto como sea posible. Hacerlos en reutilizables como sea posible. Y pasemos al siguiente video.
86. App: Pokedex parte 5 - UICollectionViewDelegate, fuente de datos y diseño de flujo: ¿ Quién es ese? Pokemon. ¿ Qué? El Frick es éste? Vamos, chicos. ¿ Quién hizo esto? Esto no es un Pokemon. Y me disculpo por poner algo que he visto así ahí dentro. OK, todos modos, seguir adelante. Aquí es donde estamos. Tenemos Vamos a ver aquí. Tenemos que meter a ti mismo vista de colección personalizada. Por lo que lo hemos atado en nuestros puntos de venta para bebés a nuestro storyboard principal de puntos. Estamos haciendo grandes avances. Ahora, lo que quiero hacer en este video es realmente conseguir que estas células aparezcan en la pantalla, todo
el montón de ellas, y solo usaremos probadas al principio. No vamos a analizar el CSB todavía. Entonces, ¿cómo hacemos eso? Bueno, llegamos a configurar nuestro controlador de vista. Tenemos que enviarlo hasta para poder trabajar con vistas de colección. Entonces lo que vamos a hacer es poner algunas partículas. Entonces lo primero que vamos a hacer es tú yo colecciono vista delegado, y ,
uh, dice esta partícula define métodos que permiten gestionar esta selección resaltando de elementos en una vista de colección y realizar acciones en esos artículos. Entonces discúlpame, Necesitamos tener esto aquí, Así podemos dar click en una vista de colección y responde y hace cosas así. Si no tenemos estas cosas, no
va a hacer nada. Y entonces también necesitamos es usted yo colecciono ver fuente de datos. Y mira esto aquí mismo, responsable de proporcionar los datos y vistas requeridos por la recolección Usted. Entonces estamos diciendo, Hey, también
vamos a dar a esta vista controladores también van a administrar los datos que aparecen de
lado de nuestra vista de colección. Y por último, hay uno más que necesitamos dio yo vista de colección delegado diseño de flujo y define métodos que te permiten coordinar con una colección Buell flolo objeto para implementar un diseño
basado en cuadrícula . Entonces básicamente esto es ah, el delegado tiene métodos y funciones delegadas que nos permiten establecer el diseño en la reelección de
colección, dimensionamiento y espaciado y esas cosas. Y así vamos a seguir adelante e implementar algunos de estos métodos delegados. Entonces si muero pin view de colección sabe cómo están apareciendo las cosas ahora, estas no estarían ahí si no tuviera esos implementan esos protocolos que necesitamos hacer vender para artículo en ruta de índice. De acuerdo, Necesitamos también dio vista de colección Vamos a desplazarnos aquí abajo. Um, sí seleccionó el ítem en la ruta del índice. Está bien, se ve bien. Pues bien, esta vista de colección, ¿cuáles son las otras? Ah, número de artículos en la sección. Necesitamos saber cuántos artículos hay en cada sección y luego, uh, casi
estamos ahí. Vista de colección. Creo que hay una serie de secciones. Um, puede
que no esté aquí, en
realidad, todavía. Uh, puede que
tengamos que escribir realmente el número de palabra allí. Este número de secciones en vista de cobranza, y ,
uh, vamos a tener una sección. OK, tal vez en diferentes absolutos tener diferentes secciones. Al igual que, si estuviéramos categorizando cada uno de estos Pokemon tal vez por categoría, como o tipo como tipo de hoja, tipo de agua de
fuego. Podríamos tener múltiples secciones, y cada una de las secciones tiene sus propios y datos en ella. Pero sólo vamos a tener uno que está bien por ahora mismo. ¿ Y qué más necesitamos aquí? Creo que hay uno sobre dimensionamiento que necesitamos configurar aquí. Yo sólo voy Teoh, echa un vistazo rápido, y sí. Ciertamente, hay uno más que necesitamos. Y este, en
realidad solo teclearlo tecleará, Um ¿Cómo se llama? Vista de colección en su diseño uno. ¿ Cuál es sin embargo? Este es, uh, inset. No, no, una línea mínima. Espaciado? No. ¿ Dónde está? Necesitamos tamaño. No necesitarás eso. Su tamaño para elemento en el siguiente camino pasado, se
puede ver ahí mismo en la parte inferior de la pantalla. Es como que aparece. Ahí vamos. Entonces no lo sabíamos. Queremos establecer el tamaño de la cuadrícula, ¿verdad? Eso se ve bien. Y así voy a regresar. tamaño CG hace que realmente vamos a hacer una talla. Y ese soy yo 105 por uno de cinco. Eso es sólo bueno. Tamaño de cuadrícula Probé y jugué alrededor y uno de cinco era un buen tamaño para cada una de las rejillas . Y eso se ve bien. Y ahora quiere saber el número de artículos. Bueno, sólo
empecemos sus algunos datos de prueba. ¿ Cuántos debemos hacer? 30. Entonces regresa 30. Vamos a decir queremos 30 artículos en una sección y luego para cada Celt, Entonces tenemos celda para ítem it index path. De acuerdo, ¿
entonces qué, vamos a darle el suyo? Nos vamos Teoh Acaba de poner el 1er 30 Pokemon en. Um, en realidad, no
necesitamos hacer eso. Podemos Justo lo que yo puedo hacer. Esto es fácil, en realidad. Debilitar. Diga, um, ¿qué va a decir si deja,
um, um, celda de vista de
colección para ruta de índice de ítem? Quiere un Sí. ¿ Cuál fue el If let cell equals collection view ese de que elemento reutilizable con identificador? Nos olvidamos de establecer el aire de identificación en nuestro storyboard. Entonces llamemos a esto, uh solo lo llamamos el nombre de nuestra vista personalizada real llamada Pokey Self for index path es el parámetro que quiere. Entonces, básicamente, hablemos de esto. Esto es como una vista de tabla. ¿ Está diciéndome aquí debe tener un tipo opcional. Ah, sí. En esto va a ser como conseguimos un elenco lo. ¿ Te acuerdas? ¿ Celda Pokey? De acuerdo, así que aquí mismo, Lo que estamos haciendo es que estamos d haciendo cola esto ahora, igual que una vista de tabla una vista de colección lo que hace para preservar la memoria y para ser extra eficiente. Reutiliza esas células. No sigue creando 718 nuevas vistas. Va a crear, sin embargo, dinero está en la pantalla y los reutiliza una y otra vez. entonces lo limpias. Pones cosas nuevas en ellos. Entonces cuando decimos de que estaban diciendo Hey, agarra uno que no se está usando ahora mismo eso está fuera de la pantalla. Vamos a agarrarlo y ponerlo de nuevo en la pantalla y ponerle cosas así que vamos a de que si hay uno disponible, puede o no tener uno disponible, pero va a, um y vamos a encontrar queremos llevarte uno Por esto i d. Y para ruta de índice. El camino del índice es el
índice actual, uh, ya
sabes, ya
sabes,de la de la fila. Y así lo vamos a agarrar y lanzarlo como nuestra célula pokey, Eso es todo. Entonces lo estamos agarrando aquí, y entonces lo que podemos dio es Salix bueno. Y lo que podemos hacer es sólo devolver celda. Entonces lo vamos a hacer es lo estamos diciendo aquí. Oye, si lograste agarrar con éxito una celda vacía de este tipo, sigamos adelante y regresemos eso porque colección ve celda para Adam en este camino, va a devolver una celda, y lo que está haciendo es que es regresando. Se trata de devolver celdas que van a mostrar en la pantalla. Entonces como estás jodiendo lo siguiente antes de que aparezca en la pantalla disfunciones llamadas aquí mismo. Y luego te conformas en tu celda. Puedes configurar los datos y cosas que contiene, lo cual realmente vamos a hacer en el futuro. Pero puedes configurar todos tus datos en él, y luego justo antes de que aparezca que todo sucede, y luego devuelve la celda. Y luego aparece así si por alguna razón esto derribó bien, no
lo hará. Pero si por alguna razón para hacerlo, podrías simplemente devolver Ah, tú yo colecciono view cell, podrías simplemente devolver uno genérico sin nada en él. Um, otra
vez, no va a pasar. Pero sí necesitamos hacer una cosa, sin embargo. Necesitamos a Teoh Goto, nuestro papa. Copia esta celda poky aquí y en nuestra principal, ese storyboard. De acuerdo, aplique su celda pokey pokey y luego haga clic a la derecha dentro. Unos pocos cerraron los tuyos. Y lo que tenemos que hacer es en esta de aquí. Tenemos que poner en el identificador. Si no lo hiciéramos, no funcionaría. Habría tenido un choque. Entonces, recapitulemos antes de ejecutarlo. Por lo que hemos establecido el aire de identificación. Lo que hemos hecho es que hemos implementado la vista de colección yuet. Delicado el U. S. Fuente
de datos de vista de colección en nuevo I vista de colección delegado diseño de flujo. Esto nos permite establecer el tamaño de las cosas. Um, y, uh, la fuente de datos dice, Hey, tus fuentes de datos que provienen de esta aplicación son este controlador de vista. Y entonces lo que hemos hecho es que hemos implementado esos métodos delegados que se van a llamar, así que cada vez que se necesite una nueva celda para mostrar en la pantalla, eso va a llamar a esto, y tenemos que darle un celular a mostrar en la pantalla. Siempre que seleccionas un artículo, queremos hacer algo. Ahora mismo, estamos haciendo nada. Entonces no va a hacer nada. Y, ah, ¿cuántos artículos quieres? Bueno, en el futuro, esto va a estar basado en el número total de Pokemon. Pero en este momento estamos duramente recubriéndolo a 30. ¿ Cuántos sexo es solo una sección para esta app? No necesitamos nada especial. ¿ Y qué talla quieres para cada uno de estos artículos? Está bien. Y ya sabes, esto podría ser diferente si se tratara de una aplicación de fotos y quisieras que cada foto fuera su
tamaño real , paisaje o retrato. Podrías realmente hacer esta dinámica en el cambio de basado en el tamaño, lo cual es realmente genial. Más grandes van a ser cuadrados perfectos. Y eso se ve muy bien. Hay una cosa que nos falta y tenemos que poner a los delegados, y en realidad, hay otra cosa que nos falta. En realidad, a dos les faltaba nuestra vista de colección. Entonces hagámoslo ahora en i b outlet semana var. Eso es sólo llamarlo colección. Y va a tener tipo te I vista de colección. De acuerdo, entonces en realidad necesitamos ahorrarlo, ¿de acuerdo? Y eso se ve bien. Y entonces lo que haremos es diremos que el delegado de punto de colección es igual a uno mismo. De acuerdo, estamos diciendo, Hey, el delegado de esta colección va a ser esta clase, y nosotros por supuesto,
um, um, lo
hemos hecho aquí mismo, ¿de acuerdo? Sólo gritándome. Creo que es solo un siguiente error de código. Déjame construirlo. Sí. Código X bug. Si alguna vez ves ese problema, o si alguna vez tienes algún problema donde X code like te está dando un aire y no debería serlo , solo construye tu proyecto. Eso fue un error y fuente de datos de punto de recolección es igual a sí mismo. Entonces lo que estamos diciendo es, oye, somos dueños de la fuente de datos y también somos el delegado. De acuerdo, ¿
Vigila qué pasa si saco esto? Este tú yo, cobranza vista delegado. Está bien. ¿ Qué va a pasar y construirlo aquí? Ah, déjame sacar este también. Ahora, construyámoslo. A ver cómo hay aire ahí. Es como, um, espera un minuto. ¿ Qué está pasando? Estás tratando de darle algo a mi delegado aquí, pero no estás conforme al protocolo. Por lo que la colección usa buscando una clase que se ajuste al protocolo. Pero esto ya no se ajusta, porque no lo estamos. No pusimos eso ahí. Pongamos esos de vuelta Estaban diciendo que sí, sí nos conformamos. Y, uh, si saco fuente de datos, ¿ves ese problema aquí mismo? Oye, esto no esta clase que pones aquí este auto no se ajusta al protocolo. Uh, ¿dónde está tu protocolo? Bueno, ahí está ahora mismo. Lo vuelvo a poner. Entonces nos conformamos. Tenemos que poner esos. Si no las pones, va a llamar a
ninguna de estas funciones. ¿ De acuerdo? El patrón de delegado es un poco complejo para las personas nuevas. Delicados delegados y protocolos. Estos protocolos aéreos, estos métodos de delegado aéreo sólo saben cómo usarlos. Implementa el protocolo, y cada protocolo tiene sus propios métodos. Y estos son los métodos ahí mismo si haces click en él. Está bien. De hecho, puedes mandar dar click en él. Y puedes ir a ver los métodos aquí. Ahí hay. Algunas de ellas son opcionales. Similar requerido, Así vista de colección debe resaltar. Hice resaltar. Entonces, de todos modos, entras a la clase y en realidad ves qué cosas están disponibles para que las utilices. Bastante cool. Y así que eso se ve bastante bien. Deberíamos construirlo y, eh, ver cómo estamos? Sí. Está bien, hagámoslo. Oh, no va a funcionar. No conectamos la parada de toma antes de que se estrelle. Ah. De acuerdo, sigamos adelante y conectemos ese primer storyboard principal. Y todo lo que tenemos que hacer es tu vista Control aquí mismo. Controla, arrastra hacia tu vista de colección y selecciona colección. Ahora vamos a ejecutarlo. Ese fue uno cercano. ¿ Quién? Aquí vamos. ¿ Funcionó? 123 Así 369 12 15 18 21. 24 27 30. Oye, creo que funcionó y no se ve bonita. No se ve realmente bonito. Eran como, um, es genial, Pero ¿qué pasa con los bordes redondeados? He estado esperando a que implementen eso. He estado queriendo saber hacer esto para siempre. De acuerdo, bastante
fácil. Entonces eso se ve realmente bonito. Mira eso. Ni siquiera hicimos tantas cosas. Ya estaban construyendo una bonita apt. ¿ No es una locura lo que unos colores bonitos pueden hacer en una aplicación? Un poco de pensamiento en el estilo. Um, así que ve a tu celda poky, y lo que haremos es ah, ¿qué queremos hacerlo? Hagámoslo en el Isar inicial aquí mismo. Tenemos este súper punto inicial de Isar y nos va a hacer implementar ambos. Ahora, um, tanto el codificador uno como éste. Si implementamos alguna en absoluto, eso está bien, super punto en él. Está bien. Y eso es lo que haremos es ah, es esto, Uh oh. Se me olvidó anular, ¿eh? Y éste va a querer requerido frente a él. De acuerdo, Entonces si implementas alguna inicialización, eh, tienes que implementar esto, uh, esto requirió uno aquí. De hecho, incluso
necesitamos implementar este. Ahora tengo curiosidad. No, nosotros no. De acuerdo, vamos a deshacernos de ese marco uno. Y aquí mismo. Sólo vamos a sólo en el nuestro Isar inicial. Vamos a poner las esquinas de nuestra vista para que sean redondeadas, y tal vez te estés preguntando cómo hacer eso. Bueno, cada vista tiene lo que se llama capa, así que puedo decir capa auto punto Oregon. Probablemente sólo diga capa sin el radio de esquina de punto de la autocapa. De acuerdo, el radio a usar al dibujar esquinas redondeadas, Rellenos, fondo. Por lo que las capas se dibujan debajo de la vista. Es para que cada uno de ustedes tenga su propia capa. Es una especie de donde pasa todo el dibujo. De acuerdo, uh, dibujo todo sucede en el nivel de capa por debajo de la vista. Entonces eso es todo lo que necesitas saber. Si ahora mismo y así voy a decir que el radio de esquina de punto de capa es igual a 5.0. ¿ Podría ser así de simple? Bueno, vamos a averiguarlo. Oye, mira eso. Se ven bien y a su alrededor. Eso es realmente, realmente genial. ¿ Qué opinas? Sí, ¿qué tal solo por diversión? En lugar de sólo decir 30 es sólo por diversión. En lugar de decir 30 vamos a hacer, um, vamos a hacer 718 porque sé que tenemos 718. Um, lo que haremos es, uh, aquí mismo. Lo que haremos es ah, diremos ahora que tenemos nuestra celda, esto está funcionando muy bien. Diremos, pato
celular, configure celda, y ah, De hecho, vamos justo lo que haremos es crear nuevos Pokemon para cada uno antes de hacerlo. Vamos a crear un nuevo Pokemon Están aquí hasta ahora, Pokemon. Recuerda, esto se va a llamar 718 veces, ¿de acuerdo? Porque cada vez que quieras una nueva celda va a ir a llamar a esta función y vamos a crear un nuevo Pokemon. Y por ahora mismo, um, el nombre acaba de poner una prueba. Todos los nombres podrían ser los mismos. Pero para las cubiertas pokey, yo d. OK, hagamos algo diferente. Pongamos el número real del índice Así lo diremos en siguiente camino. DOT escribió Ahora esto va a pasar un inter Jurin del índice actual. ¿ Verdad? Pero eso está bien, eso está bien por ahora, porque sabemos que todas nuestras imágenes números de aire, recuerden, Así que estos son todos números, así que sé que esto va a funcionar porque si decimos que hay 718 es va a llamar a las 718 veces, y la fila actual va a ser. Y cuando digo fila, significa la idea real de cada elemento. Uh, va a ser el número que estamos buscando, no eso es bastante guay. Um, ¿qué me está dando aquí? Ah, una
vez en realidad no quiere una cuerda. Simplemente quiere que te entierres. Ahí lo tienes. Entonces creamos Pokey mes. Eso se ve bien. Está bien. Y lo que vamos a hacer es que ahora dirá, vender punto configurar Selmer. Creamos ese método y está buscando un mes pokey, Así que vamos a hacer eso. Acabamos de pasar en el momento pokey. Creado, recuerdo, va a tener un nuevo número cada vez para cada Pokemon porque está agarrando ruta de índice esa fila, y esto cambia para cada celda de nuevo. No te confundas por la fila. No es como una fila en, um, como una hoja de cálculo de Excel eran como los tres ítems que tenemos nuestra una fila En este caso, cada elemento es su propia hueva. Andi creo que eso viene de las vistas de tabla en IOS, que solía ser solo una colección de fila. Vistas pueden tener múltiples artículos en una cuerda. Y solo para refrescar tu Pokemon o tu celda poky. De acuerdo, cuando llamamos a esta celda configurar, se va a que va a establecer el texto y va a establecer la imagen y ah, sí, Deberíamos darle una toma y ver qué hace? Dedos de presión. Espero que no se rompa. De acuerdo, el 1er 1 no funcionó. Eso está bien. Tiró eso. Ah, es porque empieza. Está empezando en cero. Por eso, um, eso tiene sentido. A partir de cero. De todos modos, um, es solo que quería probarlo y ver, pero mira eso. Bastante cool. Todos tus Pokemon están mostrando. Llevamos mucho tiempo haciendo esto, por
supuesto, hacer click en él no hace nada, pero justo después de eso, tienes una app realmente genial. Creo que es genial. O sea, sé que eso lo creó diseñó, pero podrías tomarte el crédito por ello. No me importa. Está bien. Eres el único edificio que debes ser feliz. Entonces, uh, genial. ¿ Qué opinas? muy divertidas. Sigamos adelante y pasemos al siguiente video.
87. App: Pokedex parte 6 - analizar archivos CSV: todo el mundo. Marcar Precio. Eres sordo laderas punto com Y sigamos adelante y sigamos construyendo son muy popó. Te espero, Dex. Por lo que la última vez espera, Esto consiguió que nuestras imágenes de Pokemon aparecieran bastante cool. Sólo prueba de rescate. No es nada para los grandes pasando ahora mismo, pero se ve bonito. Nos redondeamos son los bordes. Hicimos algunas predicciones, y no pasamos mucho tiempo haciéndolo. tan muy cool. Adelante y hagamos un poco más. ¿ Por qué no nos centramos ahora en analizar en datos RCs v para que realmente podamos poner nombres de Pokemon reales en la aplicación. Entonces lo que vamos a hacer es ir a nuestro práctico internet dandy, y vamos a ir a conseguir hub dot com para una tachuela de giro. ¿ De acuerdo? Y tengo un repo aquí que puedes usar repositorios y aquí para vernos V. Swift. Entonces aquí está la URL aparece tienes dot com forward slash gastado tachuela, forward slash CS v swift. Está bien. Y, uh, Gwen y descarga esto o lo que puedes hacer es solo, uh puedes copiar este código aquí mismo. Um, creo que se va a copiar. Entonces si copio esto, ya
sabes, esto se descarga solo para estar seguro. Volvamos aquí y pinchemos. Descargar archivo zip. Ahí está justo ahí, y acabo de descomprarlo y hay un archivo rapido. Todo lo que voy a hacer bien, es arrastrarme hasta aquí a nuestro proyecto. Vamos a cerrar esto. Sí. Copiar y hacer clic en terminar. De acuerdo, así que consigue eso. ¿ Ver? SV parse. Er, no
quería tener un montón de lecciones dedicadas a gustar hacer, como, el análisis de coma y cosas así. Tantos sólo iban a usar una pequeña biblioteca aquí que lo hace por ti. Sólo te voy a mostrar cómo usarlo. Puedes mirar el código tú mismo si quieres saber qué está pasando entre bastidores. Y así ahí está. Y vamos a crear un nuevo grupo aquí en este nivel superior aquí en nuevo grupo. Yo sólo voy a llamar a esto Ah, tú hasta abreviar de utilidades. Y pongámoslo debajo de la vista y voy a arrastrar ver SV a su También, tenemos una vista modelo, pero hagamos una carpeta de controlador. Israel nuevo grupo llamado controlador, controlador vista de
modelo, y ah, esto arrastra nuestro controlador de vista ahí, está bien. Y, uh, ¿Sabes qué? Incluso podemos hacer más. ¿ Qué tal otro grupo llamado Resource realmente está consiguiendo esto aquí abajo y allá vamos. ¿ Y qué crees que deberíamos poner? Recurso es, ¿qué tal nuestro archivo CSB? Está bien. Yo soy como, en nuestra estructura de carpetas. Empezar a tomar nota. Deberías estar haciendo tus carpetas de manera similar a ésta. Entonces aquí vamos. Tenemos archivo RCSC. Tenemos nuestro parcher CSP en las utilidades aquí, y ,
uh, ¿qué quieres hacer? Entonces lo que queremos hacer es cuando la APP se carga por primera vez, queremos agarrar todos los datos de ella, crear un montón de Pokemon y cargar sus nombres en la pantalla. ¿ Qué? Estamos como que ya estamos trabajando con las imágenes. Casi bajamos eso. El primer slot está un poco apagado. Está ah, está vacío, pero lo arreglaremos. Entonces pase a su punto de vista, Contralor ,
uh, en la Contraloría, claro. Y vamos a Ah, vamos a crear una función. Lo haremos aquí mismo. Y vamos a llamar a este funk parse pokey mes CSP. Y lo haremos es justo cuando esas primeras cargas lo hagan. Entonces llamaremos a la función a veces hago esto. Simplemente creo el shell como la función vacía, y lo llamo donde lo queremos. Porque a veces si no hago eso bien cuando lo pienso más tarde, Robbie, como correr lo sucedido. Al igual, ¿por qué no funciona como Oh, sí, me olvidé de llamarlo. Entonces haz las cosas cuando las recuerdes. Mix hace tu vida un poco más fácil. Entonces, ah, sigamos adelante y analizemos este archivo CSTV aquí y lo que vamos a hacer es agarrar el archivo y luego ejecutar el Parsa en él y luego,
uh, uh, trabajar algo de magia desde ahí. Entonces, um, lo
primero es recordar cómo dijimos aquí mismo. El origen de datos está en este archivo. Bueno, actualmente no tenemos una fuente de datos. No hay ninguna matriz de artículos. ¿ Recuerdas una vista de colección o una mesa tuya? Necesitan estar basados en algún tipo de datos,
OK, OK, Y mi startup discuten todo gracias a ustedes chicos y a todos estos videos y simplemente quedándose sin espacio aquí. De acuerdo, hasta ahora. Y lo llamaremos Pokemon de tipo Pokemon. En realidad va a ser un rayo, Pero la Cabalá Honore. De acuerdo, entonces vamos a crear un pokey Monterey, y eso se ve bien. Excepto que creo, en lugar de simplemente declararlo, sigamos adelante y, uh, realmente creamos uno. Uno vacío. De acuerdo, entonces ahora tenemos un pokey vacío Monterey, y lo que queremos hacer es agarrar los datos del CSB cinco. Queremos un páramo aquí. De acuerdo, entonces pero primero, voy a conseguir un camino juntos en un DL hilado. Ese paquete principal ese camino para el recurso. Ya has visto esto antes para archivos de audio, ¿verdad? Pokemon del tipo C S V. Así que estamos agarrando el camino, eso es todo. Um, estoy poniendo un signo de exclamación al final porque sé de hecho que ese expediente está ahí. Puedo verlo con mis propios ojos para poder garantizarlo. Si se bloquea, significa
que hice algo mal, y voy a atraparlo en tiempo de compilación. Y entonces lo que vamos a hacer es que vamos a correr nuestra parte,
señor, señor, lo que puede arrojar un error. Puede lanzar algo. Entonces llegamos a hacer eso. El hazlo. Simplemente agrega estas llaves aquí, y sigamos adelante y sigamos adelante. C s V igual. Intenta. Este es el circuito de parte CSP, y vamos a pasar en contenidos de Euro. Y esto va a ser yo soy un camino, ¿de acuerdo? Y entonces, um, yo no dejaría hacer el bloque de captura. No fue mellitus. Atraparemos, dejaremos que el aire como y s error y solo imprimiremos la descripción de depuración de punto de aire si hay algún problema, ok. Y entonces eso es para lo que nos estaba dando el ícono rojo necesitaría al bloque de captura y vamos a hacer es solo agarrar la rosa fuera de ella. Así que deja Rose es igual a C s v punto rosa. De acuerdo, entonces estamos agarrando la rosa del archivo Sea SV y vamos a imprimirla y a ver cómo se ve. Imprimir Rosa. Está bien. Voy a ejecutar la app, Recuerda, servimos. Hiciste carga va a llamar. Se va a hacer nuestro análisis aquí y vamos a ejecutar la app y ver cómo se ve y odia poner cosas. Bien. Sabemos que está haciendo algo. Está funcionando. Entonces es poner nuestra rosa fuera del archivo CSB. Y así vamos a seguir adelante. Nos vamos. Lo que queremos hacer ahora es que queremos iterar a través del asado y crear un montón de objetos
Pokemon y ponerlos ya. De acuerdo, entonces vamos a decir para cada fila en filas esto es un para cada bucle y
diremos, Vamos a conseguir el pokey yo d dejar Pokot igual a fila int I d Y ponemos exclamación al final en otra exclamación. OK, entonces lo que estamos haciendo es ir a la fila, ¿de acuerdo? Y si recuerdas, bien, si miramos nuestras cosas aquí, um, esto es un Esto es lo que queremos. La idea, el número aquí. Y entonces lo que estamos haciendo es que cada fila aquí es su propio pequeño diccionario. De acuerdo, si recuerdas cuando miras esto, supongo que realmente no lo expliqué, pero es que es una matriz. Entonces es una matriz de diccionarios. Y así te das cuenta de cómo hay un colon aquí y luego el i d y luego un colon, Nettie. Entonces básicamente cada elemento de la matriz es un diccionario, eso es todo. Es sólo un diccionario. Y así estamos agarrando la fila, la idea fuera de ella, y la estamos convirtiendo en un entero. De acuerdo, así que eso está bien. Lo estamos convirtiendo en un entero y sé que está ahí. Entonces solo estoy poniendo el letrero de la libra. Podríamos también yo probablemente te enseñaría cosas malas aquí si dejara pokey i d igual int se ro i d. Y, um ahí vamos. Es ¿Qué estamos haciendo aquí? Ah, no
necesitamos hacerlo en realidad. Entonces es genial. No necesitamos una manera. Podemos volver a la forma en que estábamos porque ahí hay un valor garantizado. Entonces eso está bien. De acuerdo, Deja pokey i d. Y saquemos el nombre. Sólo código y no perfecto. No quiero ser un programador perfecto frente a ti porque quiero que veas las estupideces que hago todo el tiempo. Agarremos el identificador. ¿ Recuerdas? Ese es el nombre del Pokemon, ¿recuerdas? ¿ Recuerdas? Gusto. Ese es el nombre. Y, um bien. Y así vamos a seguir adelante y crear nuestro Pokemon. Entonces vamos a decir Let pokey iguala al mes de Pokey ¿Y qué necesita? Necesita un nombre. ¿ Ese es el nombre y el pokey? I d is the pokey i d Y entonces vamos a decir, um Pokemon dot Upend Esa es nuestra lista que creamos en la parte superior, ¿
verdad? Y es pokey cool. Um, me gusta, excepto que no le gusta lo que estamos haciendo aquí. Echemos un vistazo a esto. Nos quiere, Teoh. Quiere el letrero de la libra. De hecho, podríamos haberlo hecho aquí mismo porque no está garantizado el agarrar y el artículo de ese diccionario, ¿
verdad? No está garantizado. Y recuerdas cómo dije Es realmente malo poner estas cosas aquí para forzarlo? Bueno, lo es. Pero piensa en el caso específico en el que estamos aquí mismo. Tenemos un archivo C S V derecho, y necesita el parcial sin importar qué en estas las partes. Y así si tenemos algún problema con él, lo estamos atrapando aquí antes en tiempo de compilación antes de que sea lanzado a cualquier usuario. Y no va a cambiar. Nunca,
nunca cambiará . No lo estamos consiguiendo de Internet. Esto nunca cambiará. Entonces una vez que lo tienes justo aquí y está funcionando, sabes que está funcionando. Entonces no me importa poner los letreros de la libra. Están haciendo cumplir estos desenvuelve bien, porque tiene que funcionar antes de entregarlo al usuario, y nunca va a cambiar una vez que lo hagamos funcionar, si eso tiene sentido. Entonces hemos agarrado el yo d y recordamos ideas en número, Ok. Y, uh, bueno, lo saca como una cuerda. Um, pero queremos convertir de nuevo a un entero. Después la fila. Queremos,
um, um, agarrar el aire de identificación fuera de la fila, que es el nombre del Pokemon. Y ah, ahí vamos hemos acreditado Pokemon. Lo hemos agregado a la matriz aquí arriba. De acuerdo, entonces ahora deberíamos haberlo hecho. Para cuando este archivo esté hecho de analizar, deberíamos tener 718 Pokemon. Y la diferencia está ahora aquí en la celda para ítem it index path, sigamos adelante. Y, uh, en lugar de crear un nuevo Pokemon, vamos a agarrarlo. Salvará nuestro pokey igual a Pokemon. Esa es nuestra matriz. Recuerda, estos son los corchetes en el texto de agarrar un índice fuera de ella dirá ruta de índice, escribió
dot. Y por cierto, esto es muy, muy común. Uh, esto es lo que haces en estos self para elementos en la ruta de índice, igual que lo harías en una tabla de ti mismo una fila en la siguiente ruta. Usted,
uh usaría el índice path dot ro dentro del índice de matriz justo aquí para agarrar el
Pokemon actual ya que es como un bucle. Casi. Está recorriendo tus datos, y lo está agarrando de ellos. Y todo lo que necesitamos hacer es solo pasar en el pokey en su Pokemon, ¿de acuerdo? Y a ver de qué nos está gritando, Um oh, poke equivale a trayectoria de índice Pokemon, esa lista de argumentos tipo fila de tipo Pokemon. Um, no
creo que esto sea una matriz. ¿ Qué hice mal aquí? Pokemon? No, así es. Tú construyes esto. De acuerdo, Um raro bicho X goteando aquí otra vez. Si alguna vez tienes un problema, estás como, no
sé qué está pasando. Simplemente construyalo. Esta es una versión beta. Entonces vas a tener problemas así. Entonces el comando B es construir, por cierto, lo
hemos estado haciendo desde siempre. Pero mando sea. Y ahí vamos. Entonces, para recapitular, ¿
estábamos llamando partes Pokey mes? Agarramos la ruta del archivo CS. El código CSTV hace su trabajo aquí mismo. Analiza en el Sea SV y luego pone dos filas aquí y luego lo ingresamos a través de las filas y cada uno subió un diccionario, y sólo agarramos el I d y el nombre fuera de la fila y crearíamos un nuevo Pokemon. Agregamos a la lista cuando digo crear un Pokemon, esa es nuestra clase que creamos. Que, por
supuesto, son Pokemon en el aire modelo aquí almacena el nombre y las cubiertas pokey, así que estamos creando un montón de esos 718 y luego en auto para ruta de índice de ítem. Va a pasar por toda esa lista cada vez que quieras crear una nueva, y va a agarrar el punto de ruta de índice actual ro el ítem actual en ese índice, y va a sacar nuestro Pokemon que necesitamos para esa fila. Se va a configurar la vela pasada en el Pokemon, asignado el nombre y la imagen, y eso va a devolver la celda. ¿ Y es eso? A ver. Oye, oye, oye. Parece que está funcionando. Um, sí, está funcionando. ¿ Qué opinas? Acabamos de anular en un archivo C S V. Enhorabuena. Eso son cosas bastante geniales. Estás empezando a trabajar con datos. Asegurémonos de que funcione todo el camino hasta el final 718. Pokemon es bastantes a los que vas. Oye, se ve bien. Y por cierto, solo nota lo rápido que no va más rápido es eso bastante genial. ¿ Sabías que si no hiciéramos de que las celdas aquí, esto correría terriblemente. Por lo que de hecho, la APP podría chocar porque no pudo contener 718. Piénsalo. ¿ Qué ves en la pantalla? 369 12 15 18. Probablemente solo haya 30 artículos más o menos que estén apareciendo en la pantalla. De acuerdo, um, el resto están siendo de lindo. Vemos cómo se ve. Un iPad solo por diversión. Se llama el aire del iPad. Déjalo construir aquí por un segundo. Ah, sí. Entonces es reutilizar las células, lo cual es realmente bonito. Hace que la aplicación funcione realmente rápido. ¿ De acuerdo? Y me está dando aire. Aguanta. Cerremos un simulador. Probemos esto otra vez. Oh, vamos. Vamos, vamos. Mira eso. Eso es bastante guay. ¿ Eso es genial? Creo que se ve genial. Mira, siempre pónganlo. Ahora, En este caso, está mostrando muchas células, ¿
verdad? Y si estuvieras experimentando algún tipo de lentitud, ya
sabes, tal vez los harías más grandes. Por lo que no tantos están cabiendo en la pantalla. Está bien. Por ahora, sin embargo, eso es bastante guay. Realmente se ve bien. En realidad, me gusta mucho. Vamos a rotarlo. ¿ Quién incluso se vería bien en el paisaje? Acabo de tener el mando. Y en la flecha derecha que gira. Se ve bien. Por lo que felicidades, partes al archivo CS. Nos metimos los datos y estamos exhibiendo en la pantalla. Se ve realmente bonito. Sigamos adelante y sigamos en camionetas.
88. App: Pokedex parte 7: audio y fuente personalizada: Oye, ¿qué pasa? ¿ Todos de vuelta otra vez? Mark Price pendientes sordos dot com Y sigamos con nuestro índice papa. Yo lo voy a tirar aquí y otra vez si necesitas encontrarlo. Archivo abierto. Recientes encuentran un proyecto y la última vez tenemos nuestro análisis CSD y estaban mostrando datos en la pantalla, los nombres y las imágenes. Muy cool. Ahora lo que quiero hacer en este momento es solo un poco de estilo con un título de fuente en la pantalla
principal y luego poner algo de audio en. Entonces vayamos a nuestro tablón principal de cuentos. Nosotros queremos poner, um, un título aquí en medio, y no me gusta ser aburrido, Así que no quiero poner ahí ninguna fuente vieja. Adelante y agarremos una fuente Pokemon. Eso es lo que puedes hacer es ir a Google y yo he sido fuente Pokemon Y aquí tienes. Eso fue fácil. Y no queremos el hueco. Queremos el sólido. Adelante y descarguemos. Voy a dar click aquí y ahí está. Tienes el hueco o las críticas sólidas lo que todo el mundo quieras. En realidad, voy a usar el sólido y todo lo que tienes que hacer es tomar esto. Cambiemos el nombre. No me gustan los espacios y los nombres, porque causa problemas. Solo voy a llamar a Pokemon y solo tomarlo y arrastrarlo a tu recurso es carpeta en tu proyecto. Y Ah, muy, muy importante. Deja de hacer lo que estás haciendo y concéntrate en esto. Haga clic en este botón justo aquí. Agrega al objetivo si no haces eso, acuerdo? No lo va a agregar. Y, uh, no estará en tu paquete. El recurso es, y no podrás encontrarlo ni al menos tu mundo constructor de interfaces. Por lo que acabo de añadirla. De acuerdo, una cosa más que necesito hacer es entrar en mi lista info dot p. Haga clic en este signo más inferior en la parte inferior derecha aquí. Y cambiemos. Sólo empecemos. Basta con escribir la letra F mayúscula F o n fuentes proporcionadas por la aplicación está justo ahí. De acuerdo, es una matriz. Así que haz clic en la flecha pequeña para dejarla caer. Un ítem cero. Nos vamos a poner el nombre ahí dentro, así que Pokemon dot TTF eso es todo. OK, ahora deberíamos poder usarlo en nuestra aplicación, así que si vuelvo a Maine Storyboard. De acuerdo, vamos a dar click en el lado derecho para abrir a nuestro pequeño inspector ahí y en la parte inferior tipo y etiqueta y el dragón en el centro para hacerlo un poco más grande para hacer mucho más grande. Ve su dragón en el centro del texto y luego ah, en Funt cámbialo a costumbre. Y entonces en lugar de cómo esa canoa, deberíamos ver a nuestro Pokemon peleó Ahí está Pokemon sólido y tú eres como si me viera un poco feo. Bueno, algunas palabras hacen Nuestra palabra en realidad se ve bien. ¿ Ver? Hagámoslo más grande. El tenga fe en mí. Sé lo que estoy haciendo. Se va a quedar bien cambiar el color dedo del pie blanco. ¿ No es increíble cómo sólo algo tan simple como una fuente puede agregar tanto valor a una aplicación? Te diré qué. Son las pequeñas cosas que cuentan de ti aquí viendo estos videos porque quieres hacer una aplicación de $1,000,000. No dejes fuera las cosas pequeñas muy importantes si construyes. Si tiras basura por ahí, um, sabes que va a golpear o perderte todas las mejores aplicaciones están realmente bien hechas. Entonces si vas por ahí como en ti, a mí o a otros lugares tratando de encontrar tutoriales y videos y las cosas no se ven tan bien como este tipo de cosas, yo sólo sería raro porque cada pequeño detalle cuenta y, uh, ese es el camino correcto. Ese es el camino de la manzana. Eso es lo que todo acerca de la tienda de aplicaciones IOS sobre ser las mejores, ser las aplicaciones de más alta calidad. Eso um Muy bien, así que solo estoy haciendo clic en este menú pin aquí abajo. Pero lo que creo que lo que quiero hacer es alinearlo primero horizontal y verticalmente en el contenedor y el contenedor es la vista aquí mismo. Entonces ahí vamos y luego vamos a seguir adelante y fijar el dentro de la altura para que se quede. Ah, se queda igual. Realmente genial. Ahora, lo siguiente que queremos dio es ah tener un botón oh travieso Aquí y por defecto, música va a sonar sólo por diversión,
para que tu app sea más emocionante después de escucharla bucle por unas 15 veces. Si quieres apagarlo, va a
haber un botón para eso. Entonces necesitamos el gráfico para eso. Entonces lo tengo. Um, y, uh, está justo aquí. Y está en el recurso es carpeta para ti. Y, uh, en realidad, no
quiero ponerlo en el proyecto. Yo quiero ponerlo en mis activos. Hago clic en activos. Sólo voy a arrastrar por encima de la música ahí mismo. Está ahí dentro en alguna parte. Sólo asegúrate, en realidad. No se parece. Sí entró ahí. Probemos esto otra vez. Ahí está al fondo. De acuerdo, muy pocas notas musicales Ahí. Vamos a volver al tablón de cuentos y, uh, agarra un botón. Apreté bu t Está justo ahí. Ahí está mi trasero. Voy a quitarme el texto porque no lo necesito y solo salgo a cambiar la imagen. Teoh, Uh, la música m nosotros justo ahí. Es realmente grande. Hace que sea más pequeño. ¿ De acuerdo? Y estoy sosteniendo turno para asegurarme de que se mantenga uniforme y ah, justo ahí se ve bien y me gusta dónde está. A mí me gusta. Entonces vamos a seguir adelante y darle un ancho y alto y ponerlo 12 de los ocho primeros de la derecha. A mí me gusta dónde está. Yo también quería decir del mismo tamaño. Ahí está nuestro botón. Se ve bien. Abre tu asistente de editor. Y vamos a seguir adelante y crear una acción mientras estamos aquí en el eco uh, ahora mismo está tirando hacia arriba el código X del archivo incorrecto otra vez. Goto automático y cambiar a controlador de vista. OK, hago clic en este controlador de vista automático. Ahí vamos. Cierra el lado derecho. Aquí, dame un poco de espacio. Está bien. Y vamos a crear click esto y el control arrastrado hasta aquí dentro de los corchetes. A menos que cambie pronto seré acción y esto se va a llamar, uh, música, pero en prensa, Ok. Y, uh, eso se ve bien. Entonces conseguimos nuestro título ahí dentro. Tenemos nuestro botón. Sigamos adelante y cerremos el editor asistente y vayamos directamente a nuestro código de
controlador de vista aquí justo hacia esto. Pero estas acciones que creamos y simplemente pusimos un espacio ahí. De acuerdo, Entonces lo que también necesitamos dio es ah, crear la música o dejar que la música se reproduzca cuando se inicie por primera vez, y luego este botón la cambiará. Entonces hagámoslo ahora. Debes recordar cómo hacer esto. Por lo que sólo necesitamos crear un reproductor de audio. Por lo que de nuestro reproductor de música. En realidad, primero necesitamos importar el marco, importar una base V, y luego podríamos decir que el reproductor de música es igual a una capa de audio V. Está bien. Bastante cool. Y ah
, me está gritando. Ah, hice el signo igual. Se suponía que iba a poner una llamada ahí. Todavía no estoy listo para crearlo. crearemos, sin embargo. Entonces lo que voy a hacer es crear una función llamada innit audio. En caso de que en el futuro, quieres un más efectos de audio o sonido, Tienes una función para ponerlo ahí, y vamos a seguir adelante y llamar al aire igual que hicimos con las otras funciones. Prepáralo y recuerdas cómo hacerlo para ver que lo podemos hacer por memoria. De acuerdo, entonces necesitamos agarrar el camino. ¿ Verdad? Así que deja ruta igual a N s haz dot principal paquete ruta arriba para recurso. Y este se llama, um, no
arrastramos la música. Se llama nada porque no lo arrastramos y vamos. Ah, encuéntralo. Escuchar música punto mp tres. Y de nuevo, esto es Ah, esto es parte del recurso es que estoy brindando con brindarte así que no creé esta música. Esta es la música Pokemon disponible públicamente en muchos sitios web. Barbara PD etcétera. Ah, aplican
todos los derechos de autor existentes. Tendría cuidado en lanzar esto comercialmente al mundo. Pero tu elección Hay un ba jillion otros sitios web de Pokemon por ahí tantos. Y, uh, todos modos, así que ahí está la música y, um, vamos camino. De acuerdo, entonces la mitad del recurso es música del tipo MP tres, vale. Y sabemos que está ahí, así que sigamos adelante y solo forzémoslo a desenvolverlo para que podamos usarlo. Y recuerda, el jugador no siempre funciona. O
sea, puede arrojar un error, Así que vamos a seguir adelante y simplemente cogerlo. Ahora deja que el aire como N s aire. Creo que eso es lo que buscamos. Y lo que haremos es diremos,
diremos , ¿Qué estamos tratando de decir? Um, reproductor de
música es igual, Prueba un reproductor de audio V. Ahí vamos. Eso estaba buscando y ah, ¿qué era? Fue contenido del euro. Sí. Y sólo vamos a poner, uh, un S u R l y pasando ese camino conocido aquí fuerza. Y esto se pasa en el camino y lo haremos. Creo que eso es correcto? No. No necesitamos el último verano. El último signo de exclamación. Sólo esa. Entonces ahí está nuestro reproductor de música. Y si funcionaba? Reproductor de música dot Prepárate para tocar, Alex. Bien. Y, ah, Reproductor de
música. Punto del reproductor de música Número de bucles equivale a uno negativo. Queríamos infinitamente bucle y luego reproductor de música dot play. De acuerdo, entonces y vamos así si hay un airless solo imprímalo imprimir descripción de depuración ventilado. De acuerdo, Vamos Ah, vamos a ejecutarlo y a ver si está funcionando. Si está funcionando, eh, oiremos que tiene sentido. Es una prueba bastante fácil. De acuerdo, Por cierto, si tuvieras otros reproductores de audio, aquí es donde lo pondrías aquí mismo en tu do. Podrías simplemente hacerlas. Está bien. Aquí, Um, que
sea agradable y fácil. Aquí vamos. Muéstrame el dinero. Uh, ¿ esto
se está poniendo bastante emocionante? No lo hemos estado haciendo tanto tiempo o estamos haciendo algo bastante emocionante. Parada de campamento. Entonces sí, muy guay. Entonces, solo manejemos el niño ahora. Entonces las ideas digamos que presionas el botón, y si se está reproduciendo, lo detiene. Y si no está tocando lo inicia. Entonces vamos a hacer algo interesante aquí. Entonces lo que haremos es que diga, si ah fuera una música. Si reproductor de música dot play ing. Entonces si se está reproduciendo era un reproductor de música punto stop else reproductor de música que se reproduce ahora. El botón que queremos hacer es cuando está jugando, es completamente blanco, pero cuando no está jugando, es, um, es la mitad. Es transparente y o un poco menos que transparente o menos de la mitad. Es decir, um Y así en lugar de crear otra IBL, dejemos sólo para que podamos hacer eso. Aquí te dejamos algo único e interesante. Lo que realmente podemos hacer es en este centro aquí. Ya que sabemos que el botón realmente está llamando a esta función, en realidad
podemos simplemente agarrar una referencia a aquí y cambiar justo aquí. Entonces si reproducen música, vamos a detenerlo. Entonces cuando se detuvo, significa, Ah, estamos desvanecidos así que podemos decir remitente punto Alfa ahí mismo equivale a 0.2. Y cuando queremos jugarlo bien, digamos remitente punto Alfa es igual a un punto. Están totalmente opacos. Vamos a darle un tiro a eso y a ver si funciona. Aquí está el botón. Es blanco porque está jugando. Ya se desvaneció. Yo lo detuve. Oye, parece que está funcionando. Por lo que el audio ahora está funcionando. Tenemos nuestro logo de poke Index aquí. Está empezando a parecer realmente genial,
y, ah, ah, nuevo estamos agarrando. Quien llame a esto ese botón es lo que provoca cuando se presiona, pasa en el propio botón real. Y así solo estamos agarrando ese botón justo desde aquí y cambiándolo, y funciona. No hay nada de malo en hacerlo de esta manera. Entonces ahí tienes un audio, una fuente personalizada, realmente genial, y eso es todo para este video. Sigamos empujando hacia adelante están asomando excepto
89. App: Pokedex parte 8 - UISearchBar, filtro de filtro de: Oye, todo el mundo, Mark, Pricier jabones de profundidad punto com y estamos de vuelta para construir más mazos pokey. Bastante cool. Hoy nos vamos a centrar en buscar. De acuerdo, Si recuerdas, nuestra aplicación actualmente muestra una lista de Pokemon, y básicamente puedes desplazarte por la lista y mirar sus nombres y sus imágenes, y va todo el camino hasta un 718. Tiene un estilo correcto. Se ve realmente bien, pero lo que queremos hacer es hacerla más efectiva. Entonces, básicamente, cuando estás buscando, simplemente
comienzas a escribir letras y de inmediato comienza a filtrar los diferentes Pokemon . Entonces eso es lo que queremos dio. Déjenme parar esto aquí. Silencioso. Está bien. Y así, uh, ahí lo podías ver justo ahí. Um y queremos empezar a escribir aquí. Está bien. En el cuadro de búsqueda. Si empiezo a escribir como C h r, encontraría cualquier Pokemon que tenga la palabra. El letra C h r en ella y ah, gran herramienta de filtrado. Hazlo útil. Entonces sigamos adelante y hagamos eso. Y no está tan mal. Por lo que sabemos por aquí en nuestro tablón principal de cuentos, sabemos que tenemos una barra de búsqueda. De acuerdo, actualmente, no está conectado a nuestra aplicación. Y, uh Entonces lo que queremos Dio es abrir aquí a nuestro asistente de editor. Desplácese hacia arriba hasta la parte superior de su controlador de vista y hagamos una hiedra para ello. Tan bueno y el control arrastraron tu barra de búsqueda hasta aquí, y sólo vamos a llamar a esta barra de búsqueda. Si tuviéramos más de una barra de búsqueda, podría darle un nombre más específico, pero dijo Ya que es la única, está completamente bien. Acabamos de conectarlo aquí. Se ve bien. Y solo pongamos aquí algunos mensajes temporales. Texto de marcador de posición. Estoy abriendo el lado derecho y marcador de posición. Digamos, uh, buscar bogeymen me queda bien. Vamos a hacer nuestro controlador de vista ahora. De acuerdo, entonces piensa en el problema que estamos tratando de resolver. Entonces imagina un usuario tipos de letra. Cada vez que ocurre una pulsación de tecla, necesitamos ver si hay algún Pokemon que coincida con esa letra. Entonces no lo vamos a hacer después de que escribas todas las palabras después de presionar la palabra buscar
cada pulsación de tecla. Entonces, ¿cómo se hace eso? ¿ Cómo sabes cuando el usuario presiona un mantener lo que tenemos que implementar. El delegado de la barra de búsqueda. Básicamente, se establece el delegado de la de la barra de búsqueda. Y básicamente, cada vez así impresiona una clave que va a llamar a ese delegado para que podamos responder en consecuencia . Entonces por aquí, junto a tus otros protocolos, adelante y teclea nuevos. Busco lejos delegado. ¿ De acuerdo? Y tenemos nuestra barra de búsqueda conectada así por aquí, similar a lo que hicimos antes. Adelante y diga barra de búsqueda punto Delegado igual yo, porque acabamos de implementar el protocolo. Ahora podemos, uh, una señal del delegado. ¿ Y qué método delegado estamos buscando? Bueno, en realidad
puedes mandar Haz clic aquí tu delegado de barra de búsqueda y ve qué están disponibles. Está bien. Las barras de búsqueda deben comenzar a editar. Ningún texto de barra de búsqueda sí comenzó a editar. Bueno, ahí fue cuando empezó por primera vez. Ahora debe terminar la edición. No. ¿ Terminó la edición? No. Um uh Ah. Texto de barra de búsqueda. Hizo cambio llamado cuando el texto cambia. Estoy pensando que eso es lo que queremos aquí. Cambio de texto. Entonces simplemente miramos los métodos de protocolo. Voy a volver atrás, anotar hasta el fondo aquí, y sólo tecleemos. Ah, barra
de búsqueda. Ahí mismo. texto sí cambió. Y entonces, ¿qué queremos hacer cada vez que cambie el texto? Entonces primero, lo que queremos dio es, um en realidad lo pienso aquí. Entonces escribes una carta, ¿verdad? Y, uh um, pero queremos hacer es filtrar la lista, pero ¿cómo hacemos eso? Entonces tenemos una matriz, pero no queremos No queremos deshacernos de nuestra matriz principal Eso tiene nuestro Pokemon it
No queremos destruir eso. Um, Así que estoy pensando que lo que necesitamos es una segunda matriz, y básicamente esta matriz solo sostiene el Pokemon filtrado. Um, así que podemos en cualquier momento que estés en modo de búsqueda, básicamente, vamos a usar la segunda matriz con esos resultados en ella, um, en lugar de la matriz principal. Entonces creo que lo que necesitamos es un matón en la parte superior aquí, un celoso otro conjunto de datos. Hasta ahora, vamos a llamar. Esto está en nuestra voluntad de decir en modo de búsqueda, más por defecto a falso. Y luego vamos a crear una nueva matriz. Vamos a llamar a esto de nuestro mes pokey filtrado es igual, y va a ser una matriz de tipo Pokemon. Simplemente inicializaremos eso a una matriz vacía justo al principio. Por lo que necesitamos detectar si estamos en modo de búsqueda y necesitamos tener una segunda matriz para almacenar se filtran Pokemon. De acuerdo, eso tiene sentido. De acuerdo, lo que queremos hacer entonces, es por aquí en nuestro cambio de texto significó que se va a llamar Cada vez que
ocurre una pulsación de tecla, vamos a decir si texto de barra de búsqueda es igual a Neil o si texto de punto de barra de búsqueda es igual a vacío. De acuerdo, así que básicamente, cualquier momento que no haya texto en la barra de búsqueda que signifique, digamos que usaron una prensa, la tecla de retroceso. De acuerdo, um, entonces si presionan la tecla de retroceso y está vacía que en modo de búsqueda va a ser falsa, lo que significa que queremos volver al máximo y luego vamos a seguir adelante y decir,
um uh, ¿qué más? Bueno, eso es bueno por ahora, s
o.Ya no quiero estar en modo de búsqueda. Y entonces de lo contrario significa que hemos escrito una carta. Y así digamos en modo de búsqueda es verdadero. Y tal vez te estés preguntando qué motivos de búsqueda para Bueno, te
explicaré en un segundo, pero básicamente cuando se está filtrando tu lista que venden ruta de índice fero, tenemos que mostrar diferentes celdas basadas en los datos que tenemos. Y entonces lo que queremos dio es que si se ha escrito una letra, significa que estamos en modo de búsqueda. De acuerdo, tenemos que empezar a filtrar el Pokemon. Entonces lo que voy a hacer es agarrar la palabra que actualmente está en el campo de texto. Por lo que voy a decir inferior igual al texto de punto de barra de búsqueda estaban agarrando el texto fuera de la barra de
búsqueda. ¿ De acuerdo? Y estoy poniendo una libra aquí para desenvolverla porque sabemos de hecho que va a haber texto aquí porque, um, ya
hicimos este cheque aquí mismo. No es Neil. No está vacío. Entonces definitivamente hay texto ahí, y luego lo vamos a hacer es agarrarlo y ponerlo en cadena minúscula. Entonces digamos que alguien tipa a cargo duro con un C. mayúscula Bueno, si hicimos una búsqueda basada en Capitolio versus minúscula, podría no tirar hacia arriba el correcto. Entonces es solo cada vez, cada vez que alguien tipo de letra, tomemos el texto actual y sigamos adelante y lo hagamos cadena minúscula. Y eso es de lo que se basarán están filtrando. Y el código para filtrar en realidad no es tan complejo? Vamos Ah, vamos a echarle un vistazo ahora mismo. Entonces, um bueno decir Pokemon filtrado. Esa es la matriz que creamos, ¿recuerdas? Igual filtro de puntos Pokemon. Ahora, eso es interesante. Por lo que una matriz tiene una función llamada Filtro. Y lo que va a hacer es ir por todos esos elementos, filtrar en base a algunos criterios y devolvernos una matriz que está filtrada. Eso sólo tiene las cosas que queremos. Y entonces, ¿cómo funciona esto? Bueno, te lo mostraré. Voy a deshacerme de todas las cosas calderosas que hay ahí dentro. Y lo que vamos a hacer es ponerle estos Ah, llaves. Eso es una que es una sintaxis de cierre. De acuerdo, lo que vamos a hacer es decir signo de dólar cero. Está bien, eso es lindo. Eso es algo importante ahí mismo. Señales de dólar. Cero. Lo que significa es, um, que vamos a agarrar el primero. Entonces lo que va a hacer es que va a agarrar un elemento, y le va a dar un nombre de cero. Es un poco confuso, pero sólo sé que los signos del dólar. Zero significa que está agarrando un elemento de esa matriz, así que finge que lo está agarrando y poniendo eso en una variable. Entonces vamos a decir nombre de punto Así fingió a Pokemon objeto porque eso es lo que es. Entonces cero significa Hey, vamos a revisar este objeto Pokemon y vamos a agarrar su nombre, propiedad, Qué vamos a hacer Es un rango de cuerda. Inferior no es igual a Neil. De acuerdo, entonces lo que esto está diciendo aquí Está bien es pasar por la matriz. Básicamente, va a correr por todo el moderado polka, y va a correr esto por cada encuesta. Vamos, entremos ahí. Está bien. Lo que va a dio es que va a agarrar un elemento de ella. Un objeto Pokemon y el signo del dólar cero. Esto significa odio. Ah, este es el objeto que lo estamos agarrando. Simplemente finge que fingir que ese cero es lo mismo que hacer esta var algunos Pokemon iguala , ya
sabes, Pope, ya
sabes Pokemon, ya
sabes, 24 23 agarrar el objeto. Pretender que este signo de dólar cero aquí mismo es lo mismo que hacer algo similar a esto donde estás agarrando y poniendo en variable donde cero es la variable. De acuerdo, Y lo que vamos a decir es agarrar el nombre y veamos si hay una cuerda en ella y rango de cuerda. OK, esa es una función de la clase string. Y lo que hace es encontrarlo aquí mismo, encuentra y devuelve el rango de la primera ocurrencia de una cadena dada dentro de un rango dado de la cadena. Entonces lo que está diciendo es, oye, pasar una palabra y voy a revisar esta cadena y ver si la palabra existe. Entonces digamos que la palabra era Charles ARD y escribimos Z a R D. Se va a pasar. Y esto Digamos esto, ya
dijo Zh. Va a pasar por todas las palabras, todos los nombres y ver si ese nombre contiene Zrt y todos los que lo hicieron se tirarían hacia arriba . Entonces todo lo que estamos haciendo es comprobar y ver si al ver si existe en la cuerda, lo estamos haciendo por cada uno y luego Entonces lo que estamos diciendo es que no es igual arrodillarse. Entonces rangos cadena. De acuerdo, va a devolver un rango justo aquí. Y así si es clavo, si está vacío. Significa que no pudo encontrarlo. Pero si no está vacío, está bien, eso significa que encontró algo con esa palabra en ella. Entonces todo lo que estamos haciendo aquí, vale, es que estamos filtrando la matriz por el nombre, asegurándonos de que el nombre contenga lo que el usuario haya escrito. Y si no es Neil, lo va a agregar a esta tasa de filtro, y luego lo va a poner aquí en Pokemon filtrado. Y ahora tenemos nuestra lista filtrada que podemos usar. Eso es bastante guay. Entonces espero que esto no sea demasiado confuso para ti. Um, si no sabe cómo usarlo, está bien. Sólo tienes que saber que tu filtro toma una expresión pasaban en una expresión de cierre, Lo
que significa que esto se va a ejecutar de nuevo para cada elemento que en Polk, Amanda Filter. Y si el if, cualquiera que sea la palabra que el usuario tecleó aquí que agarramos de la parte de búsqueda. Si esa palabra que estamos agarrando de ese Pokemon específico está en su nombre, no
es igual a clavar. Se lo va a agregar a nuestra matriz de Pokemon filtrada. Y luego, uh entonces tenemos una lista, y básicamente, cada vez que escribimos, va a correr esto y lo va a filtrar. Y es que está construido para ser muy eficiente y rápido. Podríamos haber hecho esto con un bucle de cuatro y comprobarlo nosotros mismos, ya
sabes, pasando por cada cosa. Y si fuera que las palabras aquí dentro, pero eso sería muy ineficiente. Y esta función de filtro está escrita para ser, um, eficiente. Entonces la próxima vez que queremos Dio es después de que tenemos un, um después tenemos la lista de Pokemon filtrada, Lo que queremos hacer es que queremos refrescar nuestra vista de colección, ¿de acuerdo? Y lo haces haciendo recolección que recargan datos. Entonces, básicamente, cada vez que llames a recargar datos en una vista de recopilación o una tabla tuya, básicamente
va a refrescar toda la lista y
volver a agarrar todo de tu fuente de datos . Y actualmente, ahora mismo estamos agarrando datos de nuestra lista principal de Pokemon, Así que esto no va a hacer nada. Entonces lo que tenemos que hacer es, si estamos en modo de búsqueda, necesitamos realmente agarrarlo de la otra lista la lista filtrada. Entonces vamos a hacer eso aquí mismo. Entonces básicamente, um, aquí está nuestra celda, y lo estamos agarrando de la ruta de índice esa fila y notamos cómo? Aquí mismo. Estamos diciendo agarrarlo de Pokemon. De acuerdo, bueno, todo lo que tenemos que hacer es agarrar de una lista diferente. Y Ah, Entonces lo que queremos hacer es cortar este Comando X, y voy a decir pokey tipo Pokemon, y vamos a ponerle un valor. Y luego vamos a decir si en modo de búsqueda Así que si estamos en modo de búsqueda, haz esto. De lo contrario hacer esto dirá hasta esta espalda poky equivale a meter uno. Entonces si no estamos en modo de búsqueda, haz lo que estábamos haciendo antes. Agarra de la lista regular. De lo contrario, pokey es igual a la ruta de índice Pokemon filtrada punto ro. Entonces si estamos en modo de búsqueda, agárralo de la lista filtrada. Si no lo estamos, agárralo de la lista regular y luego adelante y configura la celda. Eso se ve bien. Una cosa más que lleva a hacer, creo que está justo aquí. Número de ítems en la sección Nunca debes corazón co esto Siempre debe haber dinámica. Entonces lo que deberíamos haber hecho es decir en realidad conteo de puntos Pokemon. Esa es la cantidad de artículos que queremos. Vamos a cambiar esto, ¿verdad? Vamos a tener que hacer lo mismo aquí. Si en modo de búsqueda, retorno filtrado Pokemon conteo de puntos Se necesita saber cuántos artículos pasar si no
vamos a morder choques porque vamos a superar los límites de lo contrario, realidad, ni
siquiera que hacer en de lo contrario. Porque una vez que llamemos volver aquí, uh, terminará, y esto nunca se llamará. Por lo que podrías simplemente dejarlo fuera así. Por lo que para en modo de búsqueda devolvió el conteo de los Pokemon filtrados. Si no estamos en modo de búsqueda, devuelve el,
um, um, el conteo regular de Pokemon. Ahora bien, ¿
hay algo más que queramos hacer aquí? Um, Segel? Mira, no lo sé. Vamos a darle una oportunidad. ¿ Qué opinas? Usando a mis alumnos y gobernar después. ¿ Al igual que qué? Olvidaste algo. Semi colon. Lo que sea. Tienes un problema. Bueno, no me
puedes decir porque estoy hablando con una pantalla hablando conmigo misma. Loco, ¿eh? Apague esa música. Está bien, Así que vamos a ver si funcionó. Voy a teclear C h a r. retroceso. Creo que está funcionando. ¿ Qué opinas, Meu? ¿ Qué es otro? Sólo tomemos algo a Z z e z a z
o.Parece que está funcionando demasiado ocupado. Ah, aquí, Ezio. Aquí. Ahí hay un cero. Zio, creo que funcionan nuestros códigos. No fue tan malo. Y mira lo rápido que es. ¿ No es eso rápido? Dig Muy fresco. Creo que está funcionando ahora en una aplicación normal, cuando usted cuando hace clic en el cuando hace clic en a cuando no es una aplicación normal , cuando está construyendo a un teléfono, las palabras clave van a aparecer. No está apareciendo en mi simulador, así que hablemos de eso aquí. Entonces teclado y sigamos adelante y,
um, um, enciéndalo aquí. Entonces aquí hay una pregunta. Si estoy escribiendo algo aquí, ¿cómo me deshago del teclado? No va a desaparecer, y ese es un problema muy grande, porque tus usuarios no van a querer eso. Entonces sí tenemos un problema aquí que necesitamos resolver. Además, ya
sabes cuando bien, creo que estamos resolviendo eso cuando se borra el texto. Si está vacío, estábamos detectando ese texto, así que creo que lo que tenemos que hacer es conseguir que este teclado desaparezca cada vez que
se presiona el botón de búsqueda o cuando el poco exceso presione cuando empiezas a escribir ahí mismo. Entonces sigamos adelante y hagamos eso. Esto no debería ser un arreglo demasiado grande. Lo que vamos a hacer es ah, vamos a verte aquí abajo. Sólo diremos,
um, si, si, uh si está vacío, sigamos adelante y te ahorraremos punto final editando fuerza ella vamos a obligarla a que se cierre. Entonces básicamente, solo
estamos diciendo,
Hey, Hey, cada vez que esté vacío, cada vez que se hayan ido todos los personajes, sigamos adelante y la edición también, nos olvidamos de recargar nuestra colección ver aquí porque cada vez que borras uno, también
necesitamos que Teoh recargue los datos para que podamos ver los resultados actualizados. Olvidé poner que son tan tan lo que estamos diciendo es, cada vez que hayas borrado todo el texto, vale, apaga foso de búsqueda, cerró el teclado, y, uh, luego seguir adelante y volver a cargar los datos allí. Y luego, um, hay una cosa más que quiero hacer. Y es otra función delegada, y se llama barra de búsqueda. Botón de búsqueda clicado. Entonces vea, por aquí, este botón de búsqueda. Está bien. Todo lo que queremos hacer es cambiar eso a,
um, dedo del pie, en realidad, en realidad, sólo esconder el teclado, ¿de acuerdo? Y ah, ahí
vamos, Sólo diremos verdad y eso me queda bien. ¿ Qué más queremos hacer aquí? Um, lo
sé, lo sé. No queremos decir búsqueda porque ya estamos buscando. Creo que es algo redundante. Entonces vamos a nuestro punto de vista. ¿ Se cargó y vamos a hacer una cosa más o simplemente una barra de búsqueda barra de búsqueda punto de retorno tipo clave te
iguala. Vuelvo clave tipo punto hecho. Entonces en lugar de decir búsqueda, vamos a, uh, hagamos que tenga la palabra clave hecha para que solo oculte el teclado. Entonces todo lo que sí escuchamos fue, oye, cuando estaban Siempre que se pulsa el botón de búsqueda o el botón hecho, vamos a cerrar el teclado. Y además, cada vez que elimines todos los personajes, sigamos adelante y ocultemos el teclado y sigamos adelante y recarguemos los datos, así que voy a detenerlo y reproducirlo aquí. Apaga eso y vamos a darle una oportunidad. Entonces voy a teclear en char. Eliminemos todos los caracteres y el teclado desaparece. ¿ Qué tan genial está haciendo eso? Todos los teclados de personajes desaparecen. Esto es una cosita pequeñita que solo agrega valor a una aplicación. Observe cómo se hace ahora puedo hacer click hecho y se han ido. Puedo hacer clic en esos bien, Cosas
realmente cool. Filtrado de búsqueda de chicos y chicas. Y son estas cositas las que cuentan una aplicación. Podrías haber tirado una app a la tienda APP sin la función de búsqueda. Bueno, no
sé cómo hacerlo, lo que sea, pero no fue tan difícil. Un poco de amor va un largo camino. Por lo que hay filtrado de búsqueda. Um, no
saltamos un par de lugares en el código aquí. Entonces haz posit video y vuelve a pasar por él hasta que te metas todo esto abajo. Pero básicamente todo lo que hicimos fue implementar un filtro una nueva matriz que contenga los datos del filtro. Filtramos mientras estamos escribiendo las letras que teníamos que hacer el delegado de cambio de texto para detectar en letras de ser mecanografiado, y agarramos el texto del campo de texto. Y luego cada vez que nos deshacemos de todo el texto, ocultamos el teclado y también ocultamos el teclado. Cuando la vista se termine editando cosas bastante cool. Nuestra aplicación realmente se está uniendo. Y creo que todo lo que realmente necesitamos en esta pantalla se trata de hecho. Todo lo que tenemos que hacer es implementar click en él para entrar a la pantalla de detalles, y luego trabajaremos en eso. Entonces eso es una envoltura para este video haciendo progresos. Nos vemos la próxima vez.
90. App: Pokedex parte 9 - Controller y segue y segue: Hey, todos, Mark Price aquí, Deb pistas dot com Y estamos haciendo grandes avances en nuestro poke it excepto cuando esté lleno abre tu proyecto aquí. Por lo pronto, tenemos una lista de desplazamiento de Pokemon,
sus nombres, sus nombres, imágenes que lucen muy bien. Podrás buscarles algunas cosas realmente grandiosas. Podríamos, de hecho, probablemente sólo enviar la aplicación tal como está. Pero hay más que hacer. Y la siguiente parte y parte final de esta aplicación es construir la pantalla de detalles, que va a ser bastante trabajo. Um, pero, uh, necesario y muy importante. Muy cool. Vas a aprender mucho. Entonces, sigamos adelante y solo pongamos las cosas en movimiento. Entonces ve a tu storyboard principal. Lo que vamos a hacer es abrir aquí el lado derecho, Desplácese aquí abajo. Eso ya está ahí. En realidad, controlador de
vista, vamos a arrastrar un nuevo controlador de vista a nuestro guión gráfico. Muévete por aquí. Perfecto. Y lo que vamos a dio es, uh, agarrar nuestra pequeña celda aquí. Nuestra celda de vista de colección. Ahí vamos. Agárralo ahí, asegúrate de que las celdas seleccionadas por aquí a la izquierda adentro y todo lo que vamos a dio lo va a llevar y el control arrastra hacia el otro controlador de vista, y vamos a decir show ok. Y seguir adelante y dar click en el Segway aquí mismo. Y el identificador. Adelante y cambiémoslo a, uh, detalle de
Pokemon. V c. De acuerdo, ahí vamos. De hecho, pongamos una P mayúscula en eso. Simplemente llamaremos a nuestro controlador de vista. Vamos a hacer exactamente lo mismo. Entonces Pokemon detalle V c. Lo vamos a empujar. Eso se ve genial. Está bien, eso se ve realmente bien. Está bien, ve bien. Así que sigamos adelante y creemos el controlador de vista. Recuerda, estos controladores de vista todos necesitan dedo del pie tener un código adjunto a ellos. Ahora mismo. Sólo está flotando. Entonces sin código, así que ve a tu controlador Por aquí. Tu carpeta. Correcto. Haga clic en nuevo archivo y adelante y haga clase de toque Coco, y lo voy a llamar Pokemon detalle V c. Y va a heredar de ti. Yo veo Contralor. Ah
, siempre agrega chatarra ahí. Está bien. Y, uh, eso se ve bien. Haga clic en Siguiente y simplemente guárdelo aquí. Y lo cargó para nosotros y la escuela de vuelta a nuestro storyboard. Haga clic en él. El controlador de vista aquí, acuerdo? Y luego haz clic en la pequeña caja del rectángulo y cambia esto a tu nuevo detalle de Pokemon. Controlador de vista. Muy cool. Entonces tenemos el Segway. Tenemos el controlador de vista. Se está conectando. Está funcionando. Vamos a darle a esto un color de fondo temporal para asegurarnos de que va a funcionar como
lo necesitamos cuando, uh pasemos más. Y eso es así que hemos hecho ese Segway. Sucede cuando aquí se selecciona esta celda. Eso es genial. Entonces ve a tu controlador de vista y solo necesitamos activarlo. Eso es todo. Apenas se necesita. Desencadena. Así que entra en una búsqueda de Did select su ruta de índice de ítem did select. Si no has metido esta función, adelante y hazla ahora. Es una de las funciones delegadas de los métodos delegados. Y lo que vamos a dio es cada vez que se toca un artículo, sólo
vamos a agarrar ese artículo, y vamos a pasarlo a nuestras nuevas vistas de detalles así que en sabe en qué Pokemon se hizo
clic . Entonces uh, similar a antes tenemos dos listas diferentes sobre el ítem podrían seleccionarse en la
matriz filtrada . También se puede seleccionar en la carrera regular. Tenemos que dar cuenta de eso Entonces, ¿qué? Vamos a decir dio, si en modo de búsqueda, sigamos adelante y justo encima de él aquí. En realidad, vamos a crear nuestro Pokemon como lo hicimos antes. Por ahora, Pokey es igual a Pokemon. Y así si estamos en modo de búsqueda, poky es igual y diremos un Pokemon filtrado en siguiente path dot ro, vamos a agarrar lo que sea la fila actual y agarrar el Pokemon para eso. Y recuerda, lo que estamos haciendo aquí de nuevo es esta es una carrera en impuestos y tú lo pones indexación aquí para sacar un artículo de una matriz. Y el índice path dot ro siempre te dará esa celda específica que fue tocada en la ubicación
exacta de la misma. Y así la ubicación, los números de las celdas son una correspondencia exacta con números de elementos en esa matriz . Por eso funciona así, porque son exactamente la misma cantidad de elementos lo demás. Eres como ya nos lo has dicho es 100 veces. Sí, bueno, es Podría ser un concepto áspero entender cómo funciona esto. Entonces, um bien, Pokey. Y esto sólo va a venir del regular Pokemon List índice path dot ro y de nuevo eso viene de un par. ¿ De acuerdo? Y así si está en modo de búsqueda, agárrala del suelo. El balón. Vamos. Eso fue aprovechado en esta búsqueda en el filtro a Ray. De lo contrario, agarra el Pokemon que fue golpeado desde la derecha regular. Y entonces todo lo vamos a dio es un, um ¿Qué es? Un bonito par de presentes. Prepárate para Segway. Ahí está. Está bien. Y ah, en realidad, sólo asegúrate de que tengo todo lo demás que necesitamos aquí y no, no prepararnos. Tonta a mí. Um, realiza ahí. Se realiza Segway y buen ritmo. Tu identificarte ahí dentro, está metiendo en detalle. V. C. Así lo llamamos. Y el objeto que vamos a enviar es el objeto pokey. Cámbialo a un let ya que no lo modificamos. Entonces bien, lo que ha pasado es que hemos hecho clic en una venta, y ahora estamos diciendo, Hey, eso es Segway que conectamos ¿Eres tú? Yo colecciono de ti vendo con en el storyboard que cuando eso pase, cuando alguien lo golpee, sigamos adelante y cargemos ese Segway arriba y pasemos en el Pokemon, ¿de acuerdo? Y si recuerdas que hay un paso más tenemos que dio, uh, esto lo va a cargar, pero todavía no tenemos una forma de llevar ese Pokemon a nuestro nuevo controlador de vista. Y además, ni siquiera
hemos almacenado ese Pokemon en ese control de vista todavía. Así que adelante y dar click en Pokemon detalle V. C. Y justo aquí en la parte superior. Basta con seguir adelante y poner los objetos Pokemon. Entonces es justo como ese signo de exclamación. Tendremos un Pokemon. Realmente no podemos usar esta pantalla sin un Pokemon, por lo que habrá ganado seguro. Y lo que haremos es bajar a Se ha ido. Yo lo borré. Uh, adelante y ve al fondo y sólo tecleando. Prepárense ahí mismo, Prepárense para Segway. Y lo que va a tratar dirá si Segway no identifica el aire es igual. Entonces si es igual al final del aire de identificación para esto, uh, vamos a la pantalla de detalles, que lo hará, porque es la única de todas formas. De acuerdo, si eso es igual a eso, entonces necesitamos agarrar el controlador de vista. De acuerdo, así que si dejamos solo lo llamaremos detalles V C igual a Segway, el controlador de vista de destino como Pokemon detalla BC. Entonces lo que estamos haciendo es que estamos diciendo, Hey, si este es el Segway que se está cargando con esto. Identificar el aire. De acuerdo, entonces sigamos adelante y agarramos el controlador de vista de destino. Entonces es ahora ya se ha creado. Está bien, ahora está en memoria, así que lo va a agarrar. Recuerda, solo
es de tipo. Tienes tu controlador. Eso es lo que nos está enviando. Pero sabemos que en realidad lo está metiendo. Detalles V. C. Y dado que el detalle de Pokemon V. C hereda de tu controlador de vista, lo
lanzaremos con éxito como popular en detalle. VC. Por eso estamos haciendo el si luz aquí porque está regresando a nosotros, no Pokemon detalle V. C. Pero nos está devolviendo el controlador Tú tienes tú, que debemos lanzar a nuestra subclase y luego, ah, bueno decir si dejar pokey es igual a remitente como Pokemon. Recuerda cómo en justo arriba cuando dijimos, uh, dijimos presente Segway realizó Segway. De acuerdo, pasamos en el objeto Pokemon como el centro, así que tenemos que agarrarlo ahora. Y por supuesto, este es cualquier objeto. No es un objeto Pokemon, Así que tenemos un elenco esto también para que sepamos que es el objeto que buscamos, porque lo acabamos de poner ahí, y así sí tenemos que echarlo,
sin embargo, sin embargo, así que lo agarramos ahí. Entonces solo decimos detalles V C que Pokemon es igual a pokey. De acuerdo, entonces otra vez, recapitando si este es el Segway que estaban usando yendo de la pantalla a esa pantalla. Genial. Entrémonos en ello. Vamos a agarrar el controlador de vista que vamos a ir a Vamos a echarlo a la
clase Pokemon Pokey decirle a BC Entonces, um, estamos agarrando el objeto pokey que estaba pasado como el centro y luego lo estamos relleno aquí en nuestro detalle Pokemon, V c. Y si recuerdas, correcto, ponemos eso justo ahí. Entonces esto ahora va a estar sosteniendo eso, y eso sucederá antes de que la vista lo hiciera. Cargar se llama para que podamos usar carga vista, y estos datos estarán disponibles para nosotros. Y, uh así lo pasamos. Eso se ve genial. Y solo para asegurarnos de que funcione, volvamos a nuestro storyboard. Y por aquí, vamos a arrastrar una etiqueta sobre ella. De acuerdo, Bueno, etiqueta de
dragón y vamos a seguir adelante y acaba de poner el nombre de Pokemons aquí. Yo lo voy a centrar. Y esto es sólo para las pruebas. Hago este tipo de cosas todo el tiempo en mis pruebas. Yo solo quiero asegurarme de que las cosas funcionen. Voy a darle un ancho y una altura fijos. Y lo que haré es abrir aquí el asistente de editor. Y voy a dragar ibl de la etiqueta de aquí arriba. Y sólo vamos a llamar a este sello de nombre y, uh, cerrar al asistente de editor. Vuelve a mi Pokemon código detallado aquí. No, éste
no. El controlador de vista. Y solo doble comprobación. Todo se ve bien. Y lo es. Entonces Ok, entonces Pokemon detalle de ti controlador de vuelta aquí ahora. Y lo que haremos es a la vista. Hice carga. Vamos a decir nombre etiqueta texto punto igual a nombre de punto Pokemon. Ahora, hemos pasado en el objeto Pokemon desde el Segway por el Segway. Y si esto si esto funciona, lo que deberíamos ver es lo que sea Pokemon que toquemos, debería estar en la pantalla. De acuerdo, así que voy a seguir adelante y correr aquí. Ojalá no me perdiera nada. Es posible. Yo sólo soy humano. Sé que puede ser perfecto. Sé que te gustaré mucho, pero tal vez perfecto. Entonces aquí estamos. Si hago clic en juguetes de explosión, y nos dieron un choque, así que Pokemon nombre de punto está vacío. Vale, Ok, entonces lo que estoy pensando es que volvamos aquí, así que vamos a asegurarnos de que llegamos aquí primero. Esto está de vuelta en nuestro controlador de vista. De acuerdo, entonces tenemos un accidente. De acuerdo, apaguemos la música y seleccionemos total de guerra. Y mira esto. Um, eso es interesante. Por lo que lo vio. Se está llamando a la carga ya sea antes de que se llame a esto o, um o tenemos un problema aquí. Um, vamos a hacer unas cuantas cosas aquí. A ver si llegamos hasta aquí. Todo, mira, si hasta llegamos aquí todo si hasta llegamos aquí, todo
lo vuelve a ejecutar. De acuerdo, Así que eso se está ejecutando. Eso se está ejecutando y estamos llegando aquí. Está bien. Remitente como Pokemon. Ah, OK. Entonces ahí está el problema. A este código nunca se le llama aquí mismo. Entonces si dejar pokey igual remitente como Pokemon Así que tenemos un problema aquí. El remitente es Ah, esto es tala. Parece que nos está fallando. Nunca es ni siquiera llegar ahí. Um, intentémoslo una vez más sólo para estar seguros. Sí, nunca
vamos a entrar a esa cuadra de ahí. Entonces veamos dónde está nuestro problema. Este es un buen problema para descifrar juntos. Entonces si let details V c es igual a Segway control de destino, sabemos que está funcionando ahí diría si let pokey es igual a remitente como Pokemon. Pero el centro está teniendo un problema. Entonces vamos a pasar a nuestro prepararnos o presentar Segway. Dónde se realiza Segway con identificar aire. Tan hokey. De acuerdo, filtró Pokemon en el siguiente camino. Esa fila. Adelante aquí mismo y veamos qué pokey? Vamos a hacerlo en impresión. Bueno, di nombre pokey dot. Ve qué pasa ahí antes de realizar el Segway. Interesante. OK, también lo hicieron los artículos seleccionados. Ni siquiera se está llamando a la ruta del índice. Y creo que puedo saber cuál es el problema. Um, puede que sepa cuáles son los problemas. Volvamos al story board aquí, y voy a borrar este Segway por un momento. Es decir, voy a eliminar este Segway, y lo que haremos es en lugar de arrastrarlo desde nuestra celda justo aquí, este es Dragon desde el controlador de vista real mismo. Está bien. Uh, esa
no. A ver, queremos ahí este controlador de vista aquí arriba Arrástrelo por aquí y hagamos show. ¿ De acuerdo? Y vamos a dar nuestro Segway e identificar el aire Perfecto. Entonces lo que voy a hacer es en lugar de hacerlo desde la celda, solo
hagámoslo desde ah, desde el propio controlador de vista real. Porque creo que lo que estaba pasando es desde que lo hicimos bien para Mark Button. ¿ De acuerdo? Estaba activándolo desde el control de vista o no desde nuestro código. Por lo que eso sí código selecto nunca fue llamado. Esto se llamaba primero. Entonces lo que solo estamos diciendo ahora es, oye, vamos a darle un Segway genérico no atado a un botón, y lo llamaremos manualmente cuando estemos listos para llamarlo. Vamos a seguir adelante y darle una oportunidad aquí. Oye, ahí está. De acuerdo,
entonces, ¿ves cuál era el problema? Entonces la idea que estábamos planeando hacer es hacer clic en un ítem aquí, sí seleccionó ítems, ruta de
indexación, y luego va a cargar el Segway. Bueno, ya que en nuestro guión gráfico, adjuntamos el Segway directamente desde la celda. Recuerda cómo en un video anterior, mencioné que si conectas Segways desde botones en tu story board. No va a hablar con tu código. Bueno, eso fue lo que pasó. No hablaba con el abrigo,
así que empezó a transitar antes de que incluso seleccionáramos un artículo. Ese código nunca fue llamado. Por lo que nuestro objeto Pokemon estaba vacío porque el frío nunca fue llamado. Entonces desconecté ese Segway. Hago un Segway genérico solo desde el controlador de vista en sí, diciendo ,
Hey, este controlador de vista va a ese, no desde la u I y luego aquí entrevista Control. Nosotros manualmente. Lo hacemos aquí mismo, y esto es importante porque tenemos que pasar datos. Así es. Está funcionando ahora. Entonces lo único que cambiamos fue cambiar de quién venía el Segway, no el sino en sí mismo, sino del controlador de vista. Por lo que ahora estamos cambiando. Se ve bastante bien. Seleccioné. Cobrados ¿Te das cuenta de cómo decía que los chárter no están ahí? Eso significa que nuestro código sí pasó. Seamos como un chico más para estar seguros. Encontremos a alguien más aquí mismo, glam y seguro, está pasando y está funcionando. Muy bien, chicos y muchachas, acabas de ver algo genial. Arreglamos el problema. Problema muy común, en realidad. Tan bueno que veas que aquí hemos hecho muchas cosas. Transición al otro Segway hizo artículos seleccionados, desgaste de ruta
indexado, contabilidad de qué? Dormiste en un Pokemon en el filtro a rayo. Si seleccionaste a un papa se encendió en la matriz regular. Y estamos progresando aquí. Adelante y llamemos a este video hecho y pasemos al siguiente.
91. App: Pokedex parte 10 - UIStackView y el regulador con vista de visión de detalles: Oigan, todos, sigamos adelante y sigamos construyendo nuestra App pokey decks. Y lo que queremos hacer es construir nuestra pantalla de detalle al menos el diseño para ello. Vamos a ponerlo en marcha. Te vamos a usar. Apila vista. Va a ser genial. Y obviamente he construido esta manzana lista. Y entonces lo que en realidad no voy a hacer es que no voy a entrar a este, uh, este guión gráfico aquí y no voy a poner todos los ajustes perfectamente y
decir, OK, así es como lo haces. Me vas a ver hacer algún juicio al aire aquí, Um, como, uh, mientras pasamos por esto para que veas que hay diferentes formas de hacerlo. Necesito que entiendas cómo hacer estas cosas y jugar con las cosas, porque sólo porque digo hacer X, y y
Z no significa que debas hacer eso en cada app. Es necesario ver cuáles son los diferentes ajustes y opciones dio. También soy esta es una gran manera para que aprendan y dominen las nuevas vistas de pila de Estados Unidos de Iowa. Todavía los estoy aprendiendo. Acaba de salir. No puedo no puedo ser un maestro Adams. Entonces tengo que seguir jugando alrededor de las cosas prueban las cosas. Entonces, solo experimentemos juntos, construyamos esto y hagamos que se vea realmente bonito. Y ves todas las diferentes opciones que tienes a tu disposición. Y tal vez lo que estoy haciendo aquí no es lo que quieres hacer con tu app. Juega con él. Tan muy cool. Voy a mantener ahí esa etiqueta de nombre. ¿ En serio? Por ahora mismo, lo que voy a hacer, en realidad es ah, estamos haciendo la barra superior, y sólo voy a hacer exactamente del mismo tamaño que este otro. Entonces lo voy a copiar. Yo sólo lo hice. Comando, ¿
ves? Haga clic aquí y péguelo. De acuerdo, soy un arrastrarlo a la cima, ¿de acuerdo? Y vamos a deshacernos del botón. No necesito eso. Y no necesitamos este título aquí porque,
uh, uh, vamos a poner el nombre ahí,
en realidad, en realidad, así que voy a ir a nuestra etiqueta de nombre aquí. Voy a borrar las restricciones, Ok. Y entonces sólo voy a arrastrarlo hasta aquí al contenedor, y eso me queda bien. Un poco más grande, y tal vez Bueno, sólo lo
estoy centrando ahí. Lo que voy a hacer es ah, hacer esto Haga clic otra vez. Perdí ahí. Voy a cambiar la fuente, Teoh Helvetica nueva. Y eso se ve bien. Hagámoslo Ademas 22 me gusta, pero para hacerlo blanco, Ok. Y pongamos un nombre ahí sólo para ver cómo se ve. Charters duro. De acuerdo, Algunos de ellos probablemente sean un poco más largos los nombres, así que lo voy a poner justo ahí, y me gusta. Por lo tanto, pongamos algunas restricciones para ello. Voy a decir horizontal y verticalmente en contenedor y vamos a seguir adelante y sólo darle un ancho y una altura. Eso está arreglado. Bien. Vamos a deshacernos de este feo verde que está plagando nuestra pantalla. Por cierto, no
me responsabilizo si te dan convulsiones por ver estos feos y brillantes colores en la pantalla. Entonces, ¿sabes cómo dicen esos paquetes en los videojuegos? Aléjate después de 15 minutos un avión para que no te den una convulsión. Supongo que probablemente debería tener algunas exenciones de responsabilidad en estos s. oh, allá vamos. Blanco y rojo. ve bien. Entonces, ¿qué queremos hacer? Bueno, si te acuerdas de mi pantalla descriptiva. Nos dieron una descripción de imagen, unos campos diferentes por ahí. Hay una espalda por y sigamos adelante y hagamos eso. Vamos a coger aquí la columna vertebral. Voy a hacer clic en la carpeta Activos y voy a ir a mi escritorio aquí y allá está. Simplemente arrástrelo hacia arriba. Te estoy brindando este recurso aquí. Entonces ahí está. Se ve ahí mismo. Vuelve a tu story board y sigamos adelante. Y ah, eso en realidad cuantifica Comando Z Teoh, Devuélveme mi botón ahora. Debí haber hecho eso. Aguanta. Volver al futuro. Ahí vamos. Esto no es más que un nuevo botón sobre demasiado trabajo. Está bien, agarra un pero en el lado izquierdo, deshazte del texto. Y cambiemos la imagen a cómo se llamaba? Regreso de bondad. Aquí vamos. Ahí está. Estoy sosteniendo el turno y lo estoy escalando hacia adentro. Y ahí está nuestro botón hace. No tan mal. Y vamos a seguir adelante y darle un fijo con y solo hago clic botón de pin dependiente aquí, Ok, ancho y altura
fijos. Y con, uh, vamos a cocinar ese botón de pin otra vez y hacer, ah, izquierda y al fondo. ¿ Por qué no? De acuerdo, eso no va a ninguna parte. Se ve bien. Entonces se ve bien. Ya estamos llegando. Teníamos en nuestra imagen, teníamos un control de segmento que uno para la biografía, la bio Uno para los movimientos en nuestras pequeñas demostraciones de video aquí. No vamos a construir los movimientos. Vas a hacer eso por tu cuenta, y vas a hacer algunas otras cosas también. Esta cubierta de polka por tu cuenta también. Pero voy a seguir adelante y poner en la U Y por ello porque se ve más bonito. Entonces aquí está nuestro segmento a controlar. Y ahora tenemos que empezar a pensar en términos de una vista de pila. De acuerdo, porque todas estas cosas tienen que ir a apilar por ti. Por lo general, cuando tienes cosas que están alineando aquí y necesitan ir a esquinas de la pantalla así, como una cabeza o algo así, probablemente no uses la pila de U. S. Entonces es azul ahora mismo. El control del segmento. Cambiemos la carpa aquí mismo por nuestra roja. Está bien. Y, uh, dijo un primer y segundo solo doble clic aquí y ustedes chicos una bio y doble clic en este y dicen movimientos. De acuerdo, por cierto, estaba comando s a lo largo de mi proyecto para salvarlo. Entonces si se bloquea y ex código Beta se ha estado estrellando bastante, puede
que lo hayas experimentado tú mismo. Asegúrate de que tu comando más s al mismo tiempo mucho. Proyecto Salvador mucho. De acuerdo, así que tenemos eso. necesitamos la imagen ahora, Así que esto se pone en imagen aquí, y voy a hacer que sea un bonito cuadrado. En realidad, está cerca de decir 200 por 200. Eso es demasiado grande desde el esqueleto sosteniendo turno, pero justo ahí. Y necesitamos una descripción correcta sobre el personaje sobre la descripción del mes pokey. ¿ En qué estoy pensando? Etiquetar a través de una etiqueta en aquí, OK, lo
pondré justo ahí. Lo que voy a hacer en realidad es que sea tan alto como la imagen. Tú lo voy a arrastrar por aquí. Voy a darle unas 10 líneas. Significa que podría ir 10 líneas de largo, lo cual está bien. No pudiste cambiar tu luchada a Helvetica nueva o si eres como el teléfono del sistema, eso está bien. es tu app. No me voy a quejar. Talla 15. Eso se ve bien. De acuerdo, dejó la línea. Eso está bien. Entonces tenemos esos dos artículos ahí. Um, vamos a seguir adelante y hacer algunas cosas más. Pongamos el resto de nuestros campos en la pantalla. Entonces esta se va a leer, y voy a cambiar la fuente aquí también. Helvetica nuevo sistema a encargo Helvetica nuevo. Y esto va a ser audaz porque va a ser como una etiqueta como la descripción. Voy a llamar a este tipo. Lo que haremos es solo copiar y pegar esto unas cuantas veces. Entonces, uh, comando C comando V. Ahí está nuestro tipo, y lo voy a tirar por aquí. Estamos poniendo defensa. Esa es otra que necesitábamos. Está bien. Y hagámoslo un par de veces más por estatura, índice
Poke, I D esperar y ataque base. Entonces éste va a ser de altura, y eso se ve bien. En realidad puedo disminuir el tamaño 2 12 Pon aquí una línea divisoria en tan solo un minuto, hazla un poco más pequeña. Copiarlo y pegarlo. Comando C comando V. También
podrías hacer comando d para duplicar Decir, esperar y eso se ve bien. Bastante ahí mismo. No voy a llamar a estos dos. Ahora ven a ver comando ser arrastrarlo hasta aquí y yo sólo estoy alineando genéricamente las cosas. Cuando los ponga en la pila por ti, va a mover las cosas. Entonces, Hokey mazos I d el número de los Pokemon y luego el ataque base. Entonces ahí están mis seis campos y nos estamos acercando. Pongamos aquí nuestra línea divisoria. Entonces voy a hacer un tú te tienes vivo, tú y yo voy a hacer este color para estar aquí mismo. Voy a hacerlo como gris. Eso no es un gris claro. Wow. Uh, sigamos adelante y hagámoslo realmente como gris. Podrás escoger tu propio color. Ya tengo algunos por aquí. Este de aquí es bueno. ¿ De acuerdo? Y voy a hacer de este un píxel alto. La altura es una que se ve bien, en realidad, antes de que lo haga uno, solo
arrastrémosla todo el camino por ahí y solo haremos lo mismo ahí. Y ahora hagámoslo uno tan alto. ¿ De acuerdo? Me gusta. Y entonces hagamos otra vista esta vez. Necesitamos un pequeño bar rojo que vaya a atravesar toda la pantalla. Eso va a mostrar las evoluciones. Está bien. Y cambiemos esto para leer. Ahí vamos. Un poco más pequeño. Eso se ve bien. Ponlo justo ahí. Eso se ve bien. Uh, esto necesita una etiqueta en él. Entonces, solo copiemos y peguemos a este tipo aquí o lo cambiamos también. Arrástrelo en el medio aquí de tu barra y este cambio de color o blanco para que
realmente lo puedas ver. Está bien. Y voy a cambiar esto en vez de audaz. Vamos a cambiar esto a yo talaq Ahí vamos. Trae la altura temprano, talla arriba, se 17. Eso se ve bien. Hazlo realmente largo. Esto va a mostrar tipo de nuestras evoluciones para decir, como, próxima evolución Venecia, Venecia o y, um OK, tan alturas. Entonces podría verse así, Uh, siguiente acabo de hacer doble clic aquí. Siguiente evolución, luego llaga nivel 32. De acuerdo, aquí vamos. Somos casi todos. Consiguió las vistas casi en su lugar. Tenemos que poner esas etiquetas ahí mismo, también. Además, va a mostrar siempre va a mostrar al Pokemon actual que tienes abierto indicando Hey, esta es la evolución actual, y luego va a mostrar la siguiente si hay alguna. Entonces sigamos adelante y pongamos un par de imágenes aquí abajo y estas se harán un
poco más pequeñas. A lo mejor como 1 50 por 1 50 Eso es demasiado grande. Aún así, cualquiera que sea el tamaño que sea, aquí vamos. 99 por 99 es solo conseguir hasta 100. Entonces dos imágenes, ¿verdad? Entonces, comando C Comando V y, uh, lo
pusieron, Ponlo aquí por ahora. Ahí vamos. Y solo por diversión, puedes poner algunas en imágenes de Pokemon aquí. Solo estoy seleccionando la imagen del lado derecho. Ganaste 22 0 eso es lo peor. Nosotros escogemos los terribles. Señor Mine, Uh, por 37. Pongamos uno justo aquí Sólo por diversión. 33 ha! Sí. Entonces no hables de bien. Mejor que estúpido, señor Mine. Qué peor Poking siempre. De acuerdo, así que luce bien. Tenemos una etiqueta aquí. Vamos a seguir adelante y hacer algunas etiquetas más cuando una copia y pega esta. Entonces tenemos las de las descripciones, pero también necesitamos la etiqueta que en realidad, um tiene los datos en ella, así que solo estoy haciendo un poco más de tiempo ahí. Y sigamos adelante y cambiemos el color a toro. No, no
me gusta el negro. Hagamos color de texto oscuro. No, eso tampoco me gusta. Un traje, gris
oscuro. Ahí vamos. Despegue el audaz todavía regular. Ahí vamos. Entonces esa es la altura. Y esto podría decir algo, como, ya
sabes, 71. Está bien. Y dentales, comando C Comando v. Esta y esta es la forma en que esto podría decir, Ya
sabes, como, 2000 y eso se ve bien. Simplemente copiándolo y pegándolo de nuevo. Algunos lindos. Por cierto, cuando mandas ver comunidad, no
funciona. Por lo que tienes que volver a hacer clic en el ítem en algún tipo de error de código X. A lo mejor este pok mazos pok poco más pequeños I d sube a 7 18 o 7 21 creo. Pero sólo estamos haciendo 7 18 así que está bien. Copiar y pegar. Una vez más para el ataque base. Diga 44. Apenas algunos números arbitrarios. Esto se ve bien. Y, uh, vamos a poner un poco de Texano temporal aquí. Tu tipo, lo que quieras. Acabo de copiar y pegar algún texto Pokemon, por lo que se ve un poco más sintiendo ahí y Está empezando a mirar sobre lo que queremos. Entonces ahora es el momento de asegurarte de que lo guardes. Ahora es el momento de poner esto en una vista de pila, y va a hacer que se vea realmente feo. Eso está bien por ahora mismo. Y así, um, primer lugar, se quiere hacer las cosas que lógicamente se agrupan primero. Entonces, antes de bajar, vamos de izquierda a derecha. Por lo que esto necesita estar en una pila horizontal. Tú. Entonces estoy seleccionando ambos y solo haciendo clic en la vista de pila, pero está bien, guárdelo. Y luego, uh, nos olvidamos. Nos olvidamos de poner descripciones aquí para estos. Entonces tipo. Eso está bien. Excepto hagámoslo no audaz. Hagámoslo regular. Eso no es para este regular. Y hagámoslo nuevamente del color gris oscuro. Aquí vamos. A tipo probablemente le va a gustar esto,ya
sabes, ya
sabes, psíquico de corte de
pasto. Se verá como algo así. Probablemente. Entonces ahí vamos. Y defensa, um, la defensa de la base, ya
sabes, guardar,
uh, uh, 101 ¿Por qué no? De acuerdo, así que eso se ve bien. De acuerdo, así que eso está en una vista de pila. Estos necesitan estar en una pila para ti, Así que vamos a seguir adelante y ponerlos en una vista de pila horizontal. Pero estos en una vista de pila horizontal los ponen en una pila horizontal. ¿ Estás bien? Y luego Ah, entonces lo que haremos es tener todo esto y una vez vista de pila gigante, y entonces esto podría estar en su propia pila de ustedes aquí en un minuto. Entonces sigamos adelante y seleccionemos a este tipo y este tipo los puso en su propia pila horizontal. ¿ Estás bien? Y ahora podemos bajar verticalmente. Así que selecciona este, Este de vuelta solo va a salir por dentro para seleccionar todas tus vistas de pila aquí. Um oh, y luego el, uh, el divisor que todos pueden estar en la misma vista. En realidad, hagamos que el divisor vaya a pantalla completa. Entonces, no lo pongamos en la vista de pila. Y eso se ve bien. Entonces bam, bam, bam, bam, bam! Todos esos van a ir en una vista de pila vertical. Está bien, así que se ve bien. Eres como, uh, no, no
lo es. Bueno, tienes razón. Entonces tenemos que hacer algunas restricciones reales ahora, Así que tu pila principal para ti. Ahora, pongámosle las restricciones. Haga clic en el botón de su pin. Sí queremos constreñir los márgenes. Miremos, hagamos un aspecto realmente bonito. Por lo que cero nota cómo fue. Se fue mucho más allá de lo grande por aquí. No sé por qué es ridículo, pero es lo que hace. Entonces cero de la izquierda, cero de la derecha, pongámoslo 20 de arriba y, uh, 100 al margen. Entonces nada de sudor. 20 de arriba es lo mismo que 20 de lado aquí, lo cual está bien. Y desde abajo no nos importa realmente en este momento, Así que sigamos adelante y sumamos estas restricciones. Oh, bien, vamos a seguir adelante y establecer una restricción inferior. Eso es ser ridículo. Entonces lo que va a decir es, Oh, yo era terrible. Nosotros primero deshacemos este código porquería X. Muy bien, intentemos esto otra vez. Bondad. De acuerdo, entonces vamos Así que tenemos esos ahí. Consigamos en realidad nuestra caja. Primero pongamos nuestras limitaciones de fondo, y vamos a trabajar hasta allá porque va a ser un dolor. Entonces veamos cómo tenemos a nuestros chicos justo aquí. Están en su propia pila. Tú, que está bien. Entonces lo que quiero hacer es quitarme este fondo primero. Vamos a constreñir esto primero. A mí me gusta dónde está. Yo quiero mantenerlo ahí permanentemente. Entonces lo que quiero hacer es ah, apagar los márgenes 24 0 desde la izquierda, cero desde la derecha. Um y, uh, no. Perdón, chicos. Empecemos por el muy, muy abajo. Tenemos que trabajar de una esquina para arriba. Entonces vamos a esta pila de fondo para ti aquí. Trabajemos primero en él. Está bien. Entonces, ¿qué? Queremos dio subirlo un poco aquí. Vamos. Vamos. Va un poco lento. Está bien. Entonces queremos dio Ya puedes parar. Ya puedes parar. Deténganlo. Ah, código
X. OK, ahí vamos. Wow. Gracias. Entonces eso es lo que realmente queremos. Y así quiero decir que te vas a ir. No, no
vamos a constreñir. Los márgenes iban a decir cero de la ¿queremos constreñir los márgenes? Sí, Preocupemos los márgenes. Dale un poco de espacio en blanco. Entonces sigamos adelante y digamos cero desde el margen izquierdo, Cero desde el margen derecho y desde abajo, Adelante y
digamos ocho. Está bien. De acuerdo, ahí vamos. Entonces eso es hacer lo que queremos. Aviso. ¿ Cómo han tenido las líneas discontinuas aquí de dónde va a estar en tiempo de ejecución? Y por alguna razón, eso lo echó de la pantalla. Yo creo. Stack, ¿todavía tienes algunos bichos? Vamos a arrastrarlo de nuevo. De acuerdo, así que bien, Like, es algo que no nos preocupamos por cómo se ve ahora mismo. Sólo lo principalmente fuera es lo que realmente nos importa ahora, Um, eso se ve bien. Entonces lo que quiero decir aquí ahora es Ah, este tipo, Vamos a moverlo hacia abajo. 1234 veces. Eso está bien. Y ahora pongamos restricciones sobre él dirán, Apague, constreñan los márgenes desde la izquierda, cero desde el cero derecho. Y desde abajo, digamos ocho. De acuerdo, y entonces vamos a darle una altura fija de 26 píxeles. De acuerdo, ahí vamos. Entonces creo que se va a quedar donde queremos que esté, Um, nuestro pequeñito aquí, um, quiero que esto vaya al borde en realidad es así que es Vamos, uh, vamos a moverlo. A veces es difícil seleccionarte una cosa de un píxel para que puedas hacerlo un poco más grande para que puedas seleccionar los bordes aquí, ¿de acuerdo? Y luego puedes cambiar la altura de nuevo hacia abajo a una un poco alta. Es, uh vamos a ver aquí. En realidad, esto está en el lugar equivocado. Ojos está en el lugar equivocado. Está en el lugar equivocado. no lo necesitan los chicos. Lo necesitamos en realidad por debajo del tipo. Nos engañó. Es dragón. Y ahí mismo, ahí vamos. Entonces lo arrastré a nuestra pila Tú. Ahora es ahora como que nos está obedeciendo, y ahora podemos darle un alto de uno alto de uno. Está cambiando a 50. Vamos a poner eso. Y la vaca de restricción, no quiere obedecer. De acuerdo, ahí está la altura de una restricción add hace ahí. Tenemos que fuerzas para hacer lo que queremos. De acuerdo, entonces las restricciones son buenas aquí. Las restricciones se ven bastante bien aquí, creo ,
Um, pero lo que queremos hacer es que queremos conseguir nuestro Ah, las preocupaciones no son buenas aquí. Es decir, los diseños van, pero las restricciones son que tenemos que conseguir las restricciones. Por lo que está cabiendo en la pantalla aquí, así que selecciona tu pila principal. Visualiza este aquí mismo. Está bien. Y ahora adelante y cero desde la izquierda. tenemos márgenes propios, y desde la derecha, queremos cero. No un negativo 900. Lo que sea del top 20 está bien. Y luego desde abajo. Pero queremos en lugar de 1 83 También queremos hacer 20 significando 20 de esta cosa roja. Y no estoy click. Añada estas restricciones. Echemos un vistazo a nuestro privado aquí. Es Es Actúa un poco extraño. Uh, voy a cambiar de automático a vista previa. Está actuando realmente extraño, en realidad. Entonces OK, um, ¿no pusimos restricciones en su capacidad de ver lo que fijamos? Restricciones en? ¿ Qué? No establecimos restricciones. Vamos a asegurarnos de que tenemos que apagar esto demasiado pasando en la pantalla aquí. Por lo tanto, asegurémonos de que tenemos restricciones para nuestra vista superior. En realidad. Hace falta que al encender apague el navegador. Ahí vamos. Por lo que la vista superior está justo aquí. Uh, tenemos altura en el espacio inferior. Ah, está bien. Camino se olvidó de establecer. Um, nos olvidamos de ponerlo a los bordes aquí. ¿ En serio? ¿ De verdad nos olvidamos de hacer eso Eso parece extraño que nos olvidaríamos que ustedes eran como yo lo hice. Olvídalo. Llevo 15 minutos intentando decírtelo, pero no me oyes. Perdón. Entonces vamos a enviarlo desde la izquierda desde arriba y desde la derecha. Tan extraño. Ellos son Ugo. De acuerdo, Observe cómo las pantallas se ven bien ahora más o menos las pantallas se ven bien. Um, está llenando toda la pantalla aquí, lo cual es bonito. Nosotros sí tenemos un problema. Nuestro segmento y control es realmente grande, así que vamos a darle una altura fija. Sé solo por experiencia que la altura en un control es de 29. Eso es lo que se supone que es. Y lo está estirando contra nuestra voluntad. Así lo dijo a 29. Eso se ve bien. Se ve realmente bien. A ver, por cierto, ya
he hablado de esto antes. ¿ Qué? Parece que la vista previa del código X no es 100% precisa. Cuando estás trabajando con el uso del personal, simplemente no parece funcionar correctamente. La única forma que realmente lo sabes construyendo realmente tu proyecto. Solo para que lo sepas, no
podemos confiar en el 100% en la vista de pila. ¿ De acuerdo? y también me he dado cuenta de que con X Code beta pila usuario estrellándose un poco allí, muy potente de nuevo. Sigo pensando que tienen algunos bichos pasando. Así que haz clic en tu vista de pila principal aquí que esta vertical y vamos a hacer algunas cosas haz clic en tu, um, raro pequeño ícono aquí. El de los atributos. Inspector. Vamos a darnos un poco de espaciado entre cada elemento. Digamos 20 espaciado. De acuerdo, y, uh, nota cómo otra vez? Realmente no parece que esté cambiando por aquí a la derecha adentro, pero no te preocupes por eso ahora mismo. Y alineación en lugar de liderar. Hagamos Phil. Entonces sabe cómo. Ahora cuando cruza la pantalla, esto es a través de la pantalla. K. Se ve bien genéricamente. Todavía tengo algunas cosas que tenemos que arreglar. Y así pasemos a nuestro primer acto. Tú aquí. Sabemos que hay dos artículos en él. Ahí hay una vista de imagen, y luego está la etiqueta. Entonces en la imagen de ti, um, sigamos adelante y solo dámoslo. Lo que quiero hacer es darle un ancho y una altura fijos. Ah, así que voy a seguir adelante y cambiar donde lo tengo seleccionado. No se puede volver a ver en pantalla. Storyboards Actuando extraño. Haga clic aquí en su botón pin. Adelante y dale un con de 1 20 y un máximo de 1 20 Hay buscando mosca. ve bien. De acuerdo, entonces eso me queda bien. Um, veamos esta vista horizontal de pila que ambos estos aire en ella dice sentir en distribución sentir, um, cura si lo cambiamos para sentir proporcionalmente por qué pila vista? ¿ Seleccioné? Uh, se ve bien. Por lo que de nuevo, nota En el lado derecho, está cortada. En realidad no estoy seguro si va a hacer eso en la aplicación. Vamos a seguir adelante y ponerlo a prueba porque me está molestando que se está cortando. Pero de nuevo, dije que no puedes confiar en lo que está pasando con privy con Stack éstos. No creo que tengan todas esas piezas juntas todavía. Tire hacia arriba en el simulador aquí. De acuerdo, Apaga la música y seleccionemos juguetes de explosión. Está bien. Está bien. Enfriar. Por lo que 123456 Sí tenemos seis líneas de texto. A pesar de que dije que debería ser 10. Entonces no estoy seguro de por qué completamente justo aún. Por qué está cortando, pero se ve bien. No se ve muy mal en absoluto. Um, de hecho, nos estamos acercando mucho aquí. Eso es muy guay. Está bien, genial. Trato. Um, no te preocupes por el corte de texto aquí en un minuto. No del todo preocupado por ello todavía. Y OK, entonces tenemos nuestras cosas ahí. Se ve bien. En realidad, creo que lo que queremos hacer en realidad está en este texto. Hagámoslo encogemos. Ahí está. Por eso es que está dando un tamaño de fuente fijo, y así lo corta. Vamos a seguir adelante y darle un tamaño mínimo de fuente. Y ahora mismo es a las 15 Digamos talla 12. Entonces lo que estamos diciendo es, oye, si no encaja ahí, tienes mi permiso para reducirlo a talla 12 hombres no menos de 12 en ese punto, Córtalo. Entonces voy a construir y ejecutar por comando más R y ver si esas correcciones son texto truncado y sí encogió nuestra diversión. A lo mejor una talla o dos, así que todo cabría ahí luciendo bien y recordar, pila de noticias tienen que funcionar y correspondencia con cosas como esas como con el tamaño de fuente con restricciones. Tienes que trabajar. Úsalos todos juntos. Um, así que se ve bien, sin embargo. Ya está apilada. Esto aquí mismo no impresionado con cómo es. Me gustaría que se llenara mejor a través de la pantalla para poder hacer clic en la vista de pila en la que está. Es ahora mismo. Es alineación. ¿ Siente y si decimos sentir proporcionalmente? Yo estaba mejor. Probemos eso
también con estos otros . Con la pila de ustedes se sienten proporcionalmente. Y con este, digamos sentirnos proporcionalmente. Creo que mis ex códigos se estrellan. Ahí va mi código ex sí crash jerk, y, uh, seguí adelante y acabo de rehacer la sensación proporcionalmente en ambas vistas de pila. Y se ve bien. No es del todo perfecto. No muy contentos por ello. Um, nosotros Tal vez
podamos jugar con algunas cosas como, uh, así que estas Ah, vamos a esta primera pila. Se escucha la altura y el peso está en el segundo debajo de ella. Entonces la altura y el 71 son diferentes longitudes. Um, a ambos
les queda una línea, lo cual está bien. Intentemos cambiarlo para sentir igual se ve un poco mejor. Hagamos lo mismo aquí. Es bonito que se vea mucho mejor. Es agradable usar las herramientas como esta que el uso de la pila tiene, si puedes, a menos que tu jefe o quien lo quiera absolutamente pixel perfecto. Te recomiendo decirle a tu jefe o a la gente que estás trabajando en proyectos para sus como, Oye, quiero que me veas así. Diga, Bueno, aquí está la cosa, Boss Pixel Perfect sí requiere trabajo extra, pero a veces en realidad es mejor usar vistas de pila, por lo que es compatible con todos los dispositivos. Entonces oye, señor Boss, en lugar de solo lanzar para iPhone y luego haremos el pixel perfecto iPad más tarde, solo
hagámoslo un poco más genérico. Seguimos haciendo que se vea realmente bonito. Hagámoslo un poco más genérico usando estas vistas de pila, y luego podremos soportar todos los dispositivos a la vez, y se verá realmente bien. Por lo que deberías estar teniendo conversaciones así con tus clientes. Tienes que enseñarles a veces que estas son las herramientas a tu disposición, y hay beneficios al usarlas. Entonces voy a ejecutar este proyecto aquí y ver cómo se ve en la pantalla real. Bien. ¿ Qué opinas, chicos? Está mirando, me gusta. Voy a rodar con él. Vamos a dejarlo tal como está. A mí me gusta. Lo siguiente que queremos hacer es arreglar a este tipo aquí. Esta etiqueta, um que le pongo restricciones. Hagamos clic en la regla y veamos que no lo hice. Me estoy tropezando. ¿ Te estás tropezando? Pensé que le ponía restricciones a este tipo. Supongo que no seguí adelante y lo alineé horizontal y verticalmente en el contenedor. Está bien. Y vamos a seguir adelante y darle el ancho y una altura fija. Está bien, ahora está alineado. Por último, acabo de tener a este pequeñito aquí abajo Eso no está tan mal. No está tan mal. Vamos Ah, foto están apilados vista. Y vamos a hacer clic aquí en los atributos. Y tal vez si nos sentimos igual Oh, tú. A mí me gusta. Um, vamos a hacer clic en estas imágenes, sin embargo. estoy coleccionando a los dos y voy a decir fit de aspecto. Vamos a ejecutarlo y a ver qué pasa. ¿ Qué piensan ustedes chicos? A lo mejor algunos de tus diciendo Bueno, creo que las imágenes del fondo son demasiado grandes y hay demasiado espacio en blanco. Si eso es lo que estás pensando, estoy un poco de acuerdo contigo. Entonces cambiemos estas imágenes aquí. ¿ Recuerdas cómo lo pusimos a una talla de 100 antes? Adelante y hagamos eso. Ahora estoy seleccionando ambas imágenes manteniendo presionado el comando. Ve a tu menú pin y para dentro de altura, adelante y di 100 por 100 y haz clic. Agrega restricciones y, uh, vamos a ejecutarlo ahora y ver qué pasa. Oye, oye, no está mal. Es algo genial. Um, es una especie de espacio burlarse un poco más de lo que yo entonces me hubiera gustado. Um
, no está tan mal. No creo que tengamos que jugar más. Ustedes podrían hacer eso por su cuenta para cambiar el espaciado y cosas así, pero se ve muy bien. ¿ Qué opinas? Entonces voy a llamar a esto una envoltura para este video. Tenemos la disposición real aquí con estatuas, y ahora tenemos que hacer la parte divertida y conectar Internet analizando todos los datos. Se va un poco más complejo. Va a ser divertido, aunque conceptos muy importantes para construir aplicaciones profesionales. Y por cierto, estás dominando las vistas de pila justo fuera de la puerta Aquí. Probablemente muchos desarrolladores que son profesionales. Probablemente ni siquiera he visto los nuevos videos de pila que Apple proporcionó su Vas a estar por delante de ellos cuando vayas en tu primer proyecto. Te gusta. Oye, ¿por qué no usas la pila que tienes debajo? Al igual, ¿por qué no te vas a saltar de un acantilado y te gusta Sabes qué? Yo soy guay. Estoy usando pila nueva usada. No estás dando con la banda, así que ponte con el programa. Lo que sea. Entonces aquí vamos. Fin de esta lección pasando a la siguiente.
92. App: Pokedex parte 11 - Controller con detalles de la vista, actualización de la clase: Hey, todo el mundo, Mark Pricier Deb pistas dot com Nos estamos acercando tanto a terminar Nuestra aplicación poke Index
realmente se está juntando Way consiguió nuestro layout aquí en su lugar, como se puede ver, y se ve bastante bien en el pantalla. Ahora sigamos adelante y hagamos un par de cosas. Consigamos conectados los tomacorrientes R I B. Y luego actualicemos nuestra clase Pokemon para tener todos los campos que va a necesitar tener porque lo que va a pasar es que vamos a descargar esos datos de Internet. Y así necesitamos que todos los campos estén listos y los puntos de venta listos. Entonces hagámoslo. Ahora. Adelante y abre tu editor asistente y cámbialo de vista previa a automática y ve a Pokemon. Detalles V. C. Y voy a cerrar algunas cosas. Aquí es solo que tenemos algo más de espacio para mirar su código aquí, y eso se ve bien. De acuerdo, tenemos uno. Yo sería outlet. Pongamos el resto aquí ahora. Entonces lo que tenemos es el nombre que está aquí arriba. Adelante y ah, pon la imagen aquí. Esta es la imagen principal, por lo que llamaremos a esta imagen principal. ¿ De acuerdo? y luego tenemos la descripción aquí. Entonces sigamos adelante y pongamos la descripción. Y así llamaremos a esta etiqueta descriptiva. De acuerdo, tenemos el tipo, así que vamos a arrastrar el tipo. Va a ser la etiqueta tipo. El sello de defensa. Yo sólo soy control arrastrando. De acuerdo, etiqueta de
Defensa. Tenemos la etiqueta de altura. Eres como, esto es divertido Dragón. Todas estas cosas. Sí, es algo genial. Tipo de calmante después de todas estas otras tonterías que hemos tenido que hacer etiqueta de altura, etiqueta pokey decks. Y esto va a ser, um, actual. Voy a llamar imagen actual de Evo para la evolución actual, y ésta va a ser la siguiente. Evo, uh, imagen para la próxima evolución. Y luego, por último, este es el texto de la evolución. De acuerdo, entonces lo llamaremos Ivo. Acaba de tener etiqueta malvada. ¿ Nos perdimos algo? Tenemos nuestras etiquetas y todas estas cosas aquí. ¿ Qué tal nuestro botón Atrás? Deberíamos hacer que eso funcione, ¿verdad? Entonces sigamos adelante y hagamos eso. Hagamos una acción I B tan controlada arrastre desde tu trasero aquí y vamos a seguir adelante y los cambios de acción Outlet Teoh. Y vamos a volver a llamar a esto, pero en prensado y todo lo que vamos a hacer aquí en la espalda. Braaten es vamos a descartar la vista de que aparecimos. Entonces esta ah, vista de
detalles. Entonces tú justo aquí en tu co. Sólo tienes que seguir adelante y teclear. Descartar vista. Contralor. ¿ Animado? Sí. ¿ Nos importa lo que pase después de que se hace? No. Así que sólo poner a Neil ahí dentro, y todo lo que va a hacer es que se va a apagar. El pantalla y la carga son nuestra lista principal. Otra vez. Deshazte de estas cosas de storyboards de navegación aquí, y OK, así que nuestros puntos de venta están conectados. No es gran cosa, no es gran cosa. Entonces sigamos adelante y abramos nuestro navegante. Vuelve a nuestro, um, código por aquí. De hecho, realidad, vamos a reabrirla. Perdón. Sólo cambiemos nuestra clase aquí también. Voy a ir al manual, y vamos a ir al modelo Pokemon dot Swift. Simplemente vamos a seguir adelante y ya que aquí mismo en el contexto, vamos a seguir adelante y sólo sumar el resto de los campos que vamos a necesitar para nuestra aplicación. ¿ De acuerdo? No es gran cosa. Entonces nos dieron nombre en un poke se emocionó. Vamos pero en el resto. Um, así que sigamos adelante y hagamos descripción tan privada de nuestra descripción. Eso va a ser un bar privado de cuerda. ¿ Qué más tenemos aquí? Por lo que tenemos un tipo de descripción que va a escribir string, barra
privada, cadena tipo
defensa, barra
privada, altura de tipo string, barra
privada. Uh, bueno, tenemos las cubiertas de polka. Yo d Eso está bien. Um, espera y ah, ¿sabes qué? Hagamos sólo estas cuerdas todas. Aunque salgan hacia abajo, sus enteros simplemente se convertirán en cadenas de la vida de fabricante un poco más fácil. Bar privado. Um, vamos a decir cadena tipo ataque, y luego tenemos esos. Todas esas imágenes no necesitamos preocuparnos por esas. Um oh. Y entonces qué tal este texto aquí mismo? Podemos almacenar esa voluntad de Texas a Vamos a necesitar crearla,
um, um, o formato de nosotros mismos. Pero de cierta manera, sigamos adelante y distorsionemos aquí también. Twos. Llamaremos a este siguiente texto de evolución lo deletreará esta vez y hará que el de tipo string. Creo que aquí tenemos todo lo que necesitamos. El 2345678 um, 9123456789 Tenemos todos esos ahí, Así que está bien, hemos conectado nuestros datos aquí. Hemos conectado nuestros puntos de venta de hiedra, y aquí nos vemos muy bien. ¿ Algo más que nos falte? Creo que esto se ve bien por ahora. Um, sí, creo que se ve bien por ahora. Entonces voy a llamar a este video. Hecho. Video muy corto. Pero lo que vamos a hacer es centrarnos en el próximo video sobre cómo vamos a usar estos datos abajo con la información de Internet. Vamos a ver la A P I realmente vamos a sumergirnos en ella, así que va a ser un poco más largo en, Así que ,
uh, vamos a cortar este corto. Ponte derecho a ello. Entonces nos vemos.
93. App: Pokedex parte 12: La API, Github, Cocoapods, Alamofire: todos llegando a los detalles gruesos y jugosos de descargar datos en nuestra
marca de índice de Coca-Cola Pricier Deb pistas dot com Y vamos a seguir adelante y hablar de dónde vamos a sacar los datos. Así que adelante y ve al CEO de pokey ap i dot, y vamos a estar descargando datos individuales de Pokemon de este servicio que se brinda en Internet. Y básicamente, es solo un ap público gratuito y lo que vamos a hacer es en realidad sólo agarrar diferente
mes pokey de esta chica, justo como ves aquí mismo. Entonces, por ejemplar, si pongo esto mi navegador aquí cuando hago ford slash Pokemon Ford slush en este caso 715 nos
da Jason. Nos da los detalles para ese pinchazo. Entonces si copio esto aquí y escribo en línea Jason cuatro materia, solo haz una búsqueda ahí, y suele ser este top de aquí, Jason. Punto de cuatro materia Curioso concepto, calma pegada ahí dentro y haga clic en proceso. Va a hacer que se vea realmente bonito para nosotros. Podríamos ver qué vamos a conseguir. Entonces lo que vamos a conseguir son las habilidades que no vamos a hacer en este video puedes Puedes poner esas en habilidades y movimientos y vamos a conseguir nuestra defensa. Ahora vamos a conseguir descripciones. Observe cómo en realidad no tiene una sola descripción con este Jason, en realidad
tenemos que descargar la descripción desde un endpoint diferente. Entonces lo que vamos a hacer es descargar esta información y hacer otra descarga para agarrar la descripción del Pokemon, que vamos a mostrar en la APP. Tan múltiples descargas. Entonces nos dieron una descripción No nos importan los grupos de ayuda. Tendrá evoluciones. Entonces si voy a saber que la tienda Bubba tiene una evolución. Entonces sólo voy a uno para Bulbul llaga, Ok. Y, uh, conozco ritmo. Bueno, vamos a refrescar la pantalla. Absolutamente. Ve y paga úlcera hablada aquí dentro notarás que Globalstar en realidad sí tiene evolución. Entonces tiene habilidades, muchas descripciones, grupos
EG y OK, evoluciones. Ahora, con este AP específico, I it on Lee te da la siguiente evolución y es por eso que nuestros AP tipo de diseñaron de esa manera. Sólo te muestra el siguiente que amo. Me hubiera gustado haber tenido las tres evoluciones mostrando en cada mes pokey. Pero este AP específico, yo no hago eso. No
obstante, sin embargo sí proporcionan, si vuelve a su sitio web principal aquí, desplácese hacia abajo para obtener cuenta de hub. ¿ De acuerdo? Y si vas, descargamos esto antes, por cierto. Pero si te metes en los datos, vas a la versión uno o a la versión dos y tienen un montón de archivos C S V para tener todos los datos que podrías querer sobre Pokey mes. Y en realidad pueden analizar todos estos en ustedes mismos. No tienes que conectarte a Internet. Podrás descargar estas partes entre vosotros y sacar cualquier información que desees y formatearla como quieras, y no estarás limitada por la A P I. Pero el punto de esta lección es mostrarte cómo conectarte a Internet, cómo conectarse a un A p I y cómo trabajar con los datos. Entonces eso es lo que vamos a dar. Entonces, uh, esta es otra descarga que tendrá que hacer es Ah, realmente es que tenemos que hacer la descarga. Sólo tenemos que sacarlo de aquí porque tenemos qué número es y sólo necesitamos
mostrar la imagen así y tenemos las evoluciones ahí, los movimientos. Eso lo puedes hacer en tu propio miembro. Nuestro control de segmento, um, sprites. Aquí es donde se podría descargar la imagen real. Y yo estaba haciendo eso cuando construí esto por primera vez. Yo los estaba descargando todos desde Internet. Pero como se puede imaginar, descargar hasta 718 imágenes incluso altamente optimizadas, podría ser realmente lento. Y así era mejor tirarlos a nuestras vueltas. No estamos usando los sprites. Y luego aquí están los tipos. Vamos a estar agarrando esos y haciendo que los pongan en nuestra app. Entonces ese es el Jason. Viene de pokey ap I dot CEO. Y, uh, si quieres más información sobre el resto de las cosas que ofrecen en su a p I. Está justo aquí en su documentación. Tienen todo un pokey mazos llenos de todos los Pokemon, los tipos de habilidades de movimientos, grupos de
huevos, Ah, huevos, etcétera, etcétera. Podrás obtener todos esos datos de su Ese es el simio EI. Por lo que necesitamos prepararnos y listos para empezar a trabajar con la A P I. Entonces lo que queremos hacer es seguir adelante y abrir tu terminal. ¿ De acuerdo? Acabo de hacer espacio de mando y tecleé en terminal y deslizarse y navegar a sus
mentes de proyecto en el escritorio Sooty escritorio. Acabo de presionar Tab, y voy a entrar a mis mazos pokey. Entonces ver las cubiertas pokey, Pokey cubiertas por pendientes de Deb. Así lo llamábamos. Estamos en el directorio ahora. Entonces lo que voy a hacer es que en realidad voy a,
um, um, conseguir que las vainas de cacao trabajen para la aplicación. Entonces todo lo que tenemos que hacer es escribir en pod en él, porque lo que tenemos que hacer es descargar Alamo dispara esa herramienta de networking que nos va a ayudar a hacer solicitudes de red. Acabamos de inicializar el pod. Nuestro director es un pod está adelante y abre un navegador. Basta con escribir en Álamo,
Álamo , fuego de
Álamo. Y que lo vamos a agarrar de Get hub aquí mismo. Tiene algunas instrucciones para nosotros. Todo lo que necesitamos para dio es, uh es asegurarnos de que tenemos esto en nuestra vaina. Entonces abre tu buscador. Acude a tu aplicación, uh, pokey decks. Se abrió con cualquier editor de texto tu texto de archivo pot, edita hacia fuera. Lo que sea. Lo haré con sublime encendido. Ahí vamos. Sublime es gratis. Ahí está. Bonito. Agradable y listo para nosotros. Y sólo voy a seguir adelante y cambiar mi plataforma a ocho. No necesito apuntar a seis y justo aquí, real justo encima de él. Vamos a decir, usa marcos de subrayado. Queremos usar frameworks. Asegúrate de poner la exclamación al final. Y luego dentro del do dentro de nuestro objetivo aquí no podía hacer pod. Y esa es Alamo Alamo Fire coma Otro de esos hasta d Flecha 1.3. Y eso se ve bien. Entonces voy a mandar s a salvar cerrar fuera de ella. Vuelve a tu terminal. Por cierto, he cerrado mi proyecto de código ex. Asegúrate de hacer eso antes de instalar esto aquí en. Adelante y hacer instalación de pod. Y si no se instalan las vainas de cacao. Ve a ver el video anterior donde instalamos vainas de cacao, explica todo el proceso. Por lo que está instalando fuego de Alamo. Y ahí está. Bueno para ir. Ahora. Tenemos que reabrir nuestro proyecto. ¿ De acuerdo? Con el icono blanco ahí mismo. Entonces ve a buscar tu proyecto. doble clic en él. Ábrelo con icono blanco y ya podemos usar fuego de Alamo. Uh, cometemos un error, sin embargo. Instalamos el fuego equivocado de Alamo. Me equivoqué. Perdón. Volver a la página web Aquí, Click Sucursales. La versión de lanzamiento actual no es compatible con Swift de dos puntos. Ah,
Sin embargo, al momento de este video, Swift 2.0, aún no
está oficialmente fuera. Entonces haga clic en esto. Volví a hacer clic en sucursales. Hice clic en sucursales aquí, haga clic en el swift 2.0, Rama Y luego desplácese hacia abajo y verá las instrucciones. Um, Y ahí está justo ahí. Entonces, adelante. Y, uh, copia esto en su lugar. Perdón. Vamos a meter eso aquí. Acude a tus vainas de cacao. Presentar nuevamente. Tu archivo pod. Ábrela. Y, ah, cambiemos esto a esto. Y agreguemos un archivo más. Esto de esta fuente en la parte superior. OK, es Copiar eso, y sólo voy a ponerlo. Ah, ponlo aquí mismo. No me quito este comentario, tonta. Ahí vamos. Y lo puse justo encima. Ahí vamos. Guarda el archivo. Entonces todo lo que estamos haciendo es agarrar el código. Eso es ese apoyo veloz. 2.0, eso es todo. Y voy a cerrar de nuevo el código X, y luego seguir adelante, sólo de vuelta a tu terminal y ejecutar pod install de nuevo, y va a deshacerte del viejo y volver a meter el nuevo. Ahí vamos. Ahora ya estamos bien para irnos. De acuerdo, Así que vuelve a tu proyecto y abre el icono blanco. Ahora estamos en los negocios. De acuerdo, Entonces, genial. Trato. Tenemos nuestro para nuestro marco ahí dentro. Ya hablamos del A. P I. Vamos a seguir adelante y terminar este video s para que puedas ponerte al día aquí y el siguiente video, solo
vamos a sumergirnos justo en parte, descargando datos, analizándolo, entrando en nuestra aplicación. Y esperemos que ese sea nuestro último video. Si va demasiado largo, tal vez dos videos, veremos cómo va. Pero aquí vamos. Prepárate para instalar vainas de cacao, y te veremos en un poco
94. App: Pokedex parte 13 : descarga y análisis de datos de datos de: Oye, Mark. Pricier sordos jabones dot com Aquí estamos de nuevo. A ver si podemos acabar con este chico malo. De
lo contrario, será en el siguiente video. Y entonces lo que tenemos en este momento son algunos datos en nuestras propiedades que necesitamos usar. Pero ahora no estamos descargando información de internet. Hablamos del pokey a p I y así sabemos que sabemos. Qué demonios es que necesitamos agarrar por cada Pokemon. Está bien. Y,
uh, uh, discúlpame. Entonces básicamente lo que va a ser tu l es Ah, solo súbelo aquí otra vez. Entonces si recuerdas, correcto, el Ural se ve algo así. Y luego, ya
sabes, hay un número al final, ¿
verdad? Eso es lo que parece. Está bien. Y así comentan esto aquí afuera. Entonces obviamente este número va a cambiar por cada mes pokey. Y lo que queremos que pase es cada vez que haces click en uno de los Pokemon, bajamos con la información. No queremos descargar toda esta información para todos los 718 Pokemon. ¿ Verdad? Cuando las cargas de la aplicación son adecuadas, Podría posiblemente la artesanía se quedó sin memoria ser un gran desastre. 718 solicitudes de red es mucho. Entonces lo que queremos hacer es lo que se llama, como carga perezosa, donde solo lo cargas cuando lo necesitas. Por lo que tan pronto como haga clic en el mes pokey, entonces le damos a Internet. Nosotros lo descargamos tomará un segundo más o menos, pero no es gran cosa. Entonces lo que vamos a hacer es que sigamos adelante y,
uh, uh, sigamos adelante y pongamos algunos de tus rieles en nuestra aplicación. Y así voy a crear un nuevo archivo. Lo voy a poner aquí en el archivo nuevo u tail. Voy a llamar a esto. Es un archivo rapido y voy a llamar a esta Constance. Y lo que es Constance es sólo un Siris de valores que pones aquí que son
accesibles globalmente . Si no lo pongo dentro de una clase allí accesible globalmente. Entonces voy a almacenar la URL de nuestro principal punto M, y tú quieres meterte en el hábito de usar un archivo de constantes. Cuando llegues a usar las cosas, lanza tu aplicación. A lo mejor lo pongas en diferentes lugares. Pero Constance es un gran lugar para ello. Entonces vamos a decir base real. Digamos que eres l subrayado base como la base Eurail. Y sabemos que eso es http ford slash pokey ap dudo CEO. Yo creo que eso es lo que es. Solo comprobemos dos veces y asegurémonos de poky ap dudo CEO. Copiarlo directamente para asegurarnos de que estamos realmente bien para ir. Ahí vamos. Y, uh, eso se ve bien. Simplemente despegaremos la tira final, sin embargo. De acuerdo, entonces tenemos la base, tu fila y lo que también tenemos es el Pokemon. También vas a dejar tu l pokey mes, y eso va a ser igual a lo que como que acabamos de hacer. Uh, este tipo de aquí, um justo ahí. Y, uh, lo que vamos a hacer es agregar el testamento, agregar el número al final del mismo, y luego otra tajada. Y así será esto más esto, más el número al final. De esa forma podremos reutilizarla más adelante. Y así tenemos nuestro Tenemos nuestro tu l. Y así lo que queremos dio es almacenar que tu URL para cada Pokemon cuando creamos un mes
pokey. De acuerdo, entonces antes que nada, vamos a necesitar una propiedad para eso. Así que adelante y hazlo. Yo estoy aquí en Pokemon dot Swift. Por cierto, var
privado vamos a llamar a esta chica de recursos es aburrida. Buen Pokemon Pregúntame de tipo string y lo que vamos a dio es justo aquí. Seguiremos adelante y lo pondremos. Siempre que acredite nuevo Pokemon, vamos a poner esto Tu l hago algo de espacio aquí para que puedas ver un poco mejor. De acuerdo, Entonces lo que va a decir es ah, um Pokemon Euro igual, ¿Te acuerdas de lo que era? Esta es la sintaxis de cadena para inyectar cadenas. Era tu l base, más tu l Pokemon. Ups. Todos sois Pokemon. Además, era el número, ¿no? ¿ Y teníamos unas constantes instigadoras ford slash? Por lo que esto sí tiene una barras inclinadas hacia adelante Solo necesitamos agregar el número y luego una trailing . Entonces el número va a ser, um, auto punto subrayado pokey deck city. Correcto. Y luego simplemente agregamos la barra lateral. Entonces todo lo que estamos haciendo aquí es solo construir un miembro de cuerda. Esta es la sintaxis toe inyectar variables y las cuerdas. Entonces estamos inyectando la base. Estás Bueno, entonces estamos inyectando el Pokemon, tu L y luego estamos inyectando los pokey mazos I D y luego permitirme slash, y ese es nuestro euro. Entonces cada vez que creemos un Pokemon, va a generar dinámicamente que también te debilitas más tarde, descárgalo y úsalo. Entonces eso es realmente genial. Por lo tanto, vamos a mantener algunos datos. ¿ Cómo suena eso? Hablemos con Internet. Entonces aquí vamos. Va a ser un poco largo. No estoy tratando de explicar lo mejor que puedo para pagar. Atención muy cuidadosa. Uh, hasta
ahora, hemos implementado las vainas de cacao con el paquete Alamo Fire. Vamos a utilizar Alamo Fire para descargar datos de la biblioteca Internets Fantastic,
eso, eso, descarga de
funk, detalles de
Pokemon. Y por cierto, si alguna vez trabajas un objetivo C el marco que quieres usar para eso se llama F networking. Está escrito por el mismo tipo que fueron fuego de Alamo excepto ah, para el objetivo C. Así que vamos a descargar detalles de Pokemon y, uh, pensemos en algo por un segundo. Una descarga es un derecho sincrónico, lo que significa que no sabemos cuándo va a volver con un resultado. Entonces digamos que hago click en mi Pokemon para ir a la siguiente pantalla es mi día. Van a estar disponibles al instante. Bueno, no
es así que no puedo simplemente hacer verlo cargar y luego agarrar estos datos porque aún no va a estar ahí. Entonces lo que necesitamos dio es cuando termine la descarga. De acuerdo, necesitamos dejar que nuestra, um nuestra celda personalizada no venda el control de vista. Necesitamos que el controlador de vista sepa cuándo se ha descargado esa fecha. Para entonces puede asignar los campos. De lo contrario, se rompería. Se estrellaría porque la fecha aún no está ahí, por lo que necesitamos dar cuenta de eso. Entonces hay algo que vamos a hacer. Vamos a crear nuestro propio cierre, definir su propio cierre. Y así por aquí en las constantes puntan veloz, sólo
voy a bajar la línea aquí. Voy a decir, alias de tipo
público. Quiero decir descarga completa. De hecho, no
estoy seguro siguiente refinando al público. Él palabra aquí, Um, algo que hago. Y está bien, probablemente
estés como, uh, espera, ¿qué está pasando? Tu como yo estaba entendiendo tantas cosas, y luego tiras esto aquí, ¿de acuerdo? No tienes que entender todo lo que está pasando con esto para saber usarlo. Pero básicamente estamos creando un cierre que significa, ah, bloque de código que se va a llamar después siempre que lo queramos. Entonces al igual que lo hemos hecho en el pasado con la sesión U. N s u R L. De acuerdo, teníamos esos cierres que se llaman después del hecho. Eso es todo lo que estamos haciendo. Estamos creando nuestro propio cierre personalizado. Entonces, cuando una descarga está completa, alguien puede llamarla y ejecutar algún código. Y todo lo que estamos diciendo es que es un cierre vacío. No hay parámetros en ella. No estamos pasando nada en ella y no está devolviendo nada. No está devolviendo nada. De acuerdo, eso es todo lo que estamos diciendo. No es tan gran cosa. Sólo tienes que saber que si quieres crear un cierre simple, así es como lo haces, y volveremos a nuestro mes pokey, y lo que vamos a hacer es que vamos a pasar ese cierre justo aquí dentro al Pokemon descargar los detalles de Pokemon, y así se va a decir, completado. Ese es el nombre del parámetro que vamos a decir, Descargar completo Y bien, entonces lo que esto está diciendo es,
Oye, Oye, cuando la descarga esté completa, llamemos a esto y a quien sea que haya pasado esto como un parámetro llamará a ese bloque de código. De acuerdo, entonces, por ejemplo, descarga los detalles de Pokemon. En realidad, solo construyamos el marco para lo que estaba hablando. Entonces digamos que hace clic en el botón. ¿ De acuerdo? En el Pokemon que nos va a llevar aquí al Dónde está aquí, Controlador? Eso nos va a llevar al detalle de Pokemon. VC, ¿verdad? Nos va a llevar justo aquí. Esto se va a cargar ahora El nombre. Ya tenemos el nombre. No estamos descargando eso de Internet tampoco estaban descargando la imagen. Conocemos su imagen a dio. De hecho, podemos hacer eso aquí mismo. Podemos decir que la imagen principal de punto te iguala. Imagino imagen con nombre, y eso es aquí abajo. Imagen con nombre. Y sabemos que el nombre de la imagen va a ser, um, Pokemon porque tenemos nuestro objeto Pokemon justo ahí. Van a ser mazos Pokemon pokey. Yo d um Y eso no es una cuerda, ya
sabes, que sea una cuerda primero. Aquí, allá vamos. Almacena sintaxis de cadena pequeña aquí. Agregó cosa extra en ella para nosotros que no quería. De acuerdo, entonces vamos a tomar ese pok mazos que d y convertirlo en una cuerda. Y esa es la imagen que ya hemos hecho esto antes. Vía tener ambos de esos. No tenemos el resto de los datos,
sin embargo, sin embargo, Así que cuando la vista sí ocurrió la carga, sigamos adelante y llamemos a Pokemon dot Descargar los detalles de Pokemon y mira, está buscando un parámetro. Está buscando cierre, ¿verdad? Como un abrigo. Está buscando código al que llamar cuando termine de descargar. Entonces mira esto. Todo lo que tienes que hacer su prensa entrar y hace el resto por ti. Entonces lo que estamos diciendo es abajo con el mes pokey. Entonces va a correr todo nuestro código de descarga y luego cuando esté hecho, lo que sea, Cody, Justo aquí. Por lo que esto se llamará después de que se haga la descarga. Entonces cuando se haga la descarga, llama aquí y luego actualizamos las vistas. No queremos actualizar las vistas aquí con la altura y el peso causa nuestro programa o choque, porque aún no tenemos los datos, pero tal vez en uno o dos segundos, esto se llamará con los datos y luego nosotros actualizarlo. ¿ Eso tiene sentido? no tenemos los datos,
pero lo haremos en el futuro. Y así que cualquiera de los códigos que se ejecutan aquí no se va a ejecutar instantáneamente. Lo vieron. Cargar este código no se va a correr de inmediato. Se va a ejecutar cada vez que se llame a este cierre. Y eso sucederá a partir de nuestro código de descarga Pokemon. De eso se trata todos los cierres. Su código que puedes ejecutar en un momento posterior, está bien, y tan genial. Entonces eso está listo para salir. Entonces cuando nosotros cuando hacemos clic en el Pokemon, visto cargas se van a llamar va a golpear esto y va a descargar Pokemon detalles que eso se ve perfecto, en realidad. Entonces vamos a nuestro Pokemon. De hecho, descarguemos los detalles del Pokemon. Por lo que para usar fuego de Álamo. Um, no
estoy seguro si tenemos dos importantes. A ver si lo hacemos o no. Solicitud de punto de fuego de Álamo. necesitamos importarlo. Por lo que arriba aquí arriba, sólo tienes que seguir adelante e importar Comando de Fuego de Álamo sea para construir. Vas a ver un poco de aire, un poco de aire rojo ahí, porque creo que el código X todavía tiene algunos bichos, um, pero debería construirse para nosotros y seguir construyendo ahora mismo. Debo decir que construir tuvo éxito. Y si tuvo éxito, sabemos que realmente no tenemos ningún problema en los códigos X. Sólo siendo ridículo. X códigos siendo ridículos. Entonces no te preocupes por eso. Está funcionando solo código X. Creo que tiene que ver con la beta, pero de todos modos, construir tuvo éxito. Entonces ese es el Así es como sabemos que está funcionando. Por lo que Álamo despide esa petición y seguro suficiente, el código ahí. Entonces definitivamente está funcionando y bien, así que tenemos una petición y lo que queremos hacer. Entonces esta es una petición. ¿ Recuerdas? Hablamos de solicitudes en el pasado solicitudes de Internet. Queremos hacer una solicitud de get, así que punto ponerse bien es lo que estamos buscando. Y la cadena que queremos hacer aquí es la, uh, la URL. Entonces todo lo que tenemos que dio. De hecho, sigamos adelante y agarremos la URL aquí. Digamos que dejas que tu l sea igual. Siempre llegamos a convertir tus cuerdas l en S Yarl. Entonces sólo voy a Ennis. Estás bien, estoy llamando a este parámetro de cadena, y aquí vamos a pasar en el Pokemon. Tu l Ok. Y luego aquí, aquí
abajo. Bueno, en realidad, pasando así a la chica real. Disculpe. Entonces, ¿qué es? Vamos a poner la exclamación al final aquí porque sabemos que es tu Sabemos que
va a funcionar. Um, vamos a averiguarlo fuera del tiempo de compilación. Entonces eso se ve bien. Pasamos en el tu l. Y entonces, ¿qué es lo siguiente que tenemos que hacer? Bueno, entonces con Alamo Fire, solo
haces esta petición lo consigue, y eso es más o menos. Pero sí necesitamos saber cuándo termina para que podamos hacer algo con los datos. Entonces todo lo que tienes que hacer para que esto funcione, es mecanografiar respuesta de punto, Jason. Está bien. Está justo ahí. Y manejador de terminación. Ese es el que queremos, creo. Sí. Um Así que presione enter y luego presione enter de nuevo y luego presione enter de nuevo. Presionar tabulador presionado, Entrar presionar tabulador, presionar, tabulador de
empresa y borrar cosa que dice código. No necesitamos eso y lo que está haciendo, OK, creó otro cierre. Está diciendo que después de que se ejecute la solicitud, ejecuta este bloque de código y vamos a pasar la solicitud. El respuesta y el resultado Ahora, este momento, estos son sólo los tipos que en realidad para poner parámetros aquí. Así que adelante y teclea en solicitud y luego un colon. Solo estamos dando nombres de parámetros. No hace eso para nosotros automáticamente. Eso está bien. Tipo en respuesta. Esa es nuestra respuesta. Y luego seguir adelante y teclear y dar resultado. Y esos son los resultados. Entonces todo lo que hemos hecho de nuevo es reprimido. Entrar. Y este fue el cierre que nos dio automáticamente diciendo que este bloque de código se va a
ejecutar después de que se haga la solicitud. Y hemos puesto un parámetro de solicitud, lo que significa que solo le estamos dando un nombre para que podamos usarlo. Le estamos dando a éste un nombre y a éste un nombre. El Solicitud de Incendios de Álamo va a hacer toda esta fuerza. Va a pasar en la petición. Va a pasar en la respuesta, y va a pasar en el resultado. De acuerdo, así es como pequeños fuegos artificiales que dirige una solicitud. Y luego entra en el bloque de cierre y te permite saber lo que está pasando. Entonces no está tan mal. Um, y lo primero que queremos dio es que sólo queremos ver si está funcionando. Entonces voy a imprimir valor de punto de resultado que depurar descripción. De acuerdo, entonces este resultado aquí es que tiene un parámetro de valor. Eso es parte del fuego de Álamo. El valor son los datos que desea. Y así vamos a imprimir a la pantalla y ver si la descarga incluso funcionó. De acuerdo, vamos a ver si funcionó. Imprimirá todo lo que nos dé. Entonces lo que sucederá es que si vemos a Jason o cosas imprimiendo a la pantalla, sabemos que funciona. Entonces voy a seguir adelante y ejecutar la aplicación, ¿de acuerdo? Tire aquí arriba. Eso es diminuto. Eso es demasiado grande. Justo a la derecha. De acuerdo, aquí vamos. Abramos esto un poco más grande aquí. Eso es cargar. Ahí vamos. Entonces cuando hago clic en esto, esta función debería llamar. De hecho, pongamos aquí un punto de descanso. Voy a hacer clic en él y los puntos de ruptura van a parar cada vez que llegue a ese código, y nos va a hacer saber que llegó ahí. Por lo que hice clic en él. Definitivamente sí llegó ahí. Soy un dragón por romper. Apague el punto de descanso y pulse play. Y, uh asi Ok, corrí la petición. Estoy esperando que se imprima. Parece que no está imprimiendo. Uh, tenemos un problema. De acuerdo, Así que tenemos que seguir adelante y dar a nuestra app permisos Theobald city para hablar con internet. Entonces si recuerdas, ya
hemos manejado esto antes, ¿verdad? Y así lo que queremos hacer es ir a dar click en mi carpeta aquí, ir a tu lista info dot p. Está bien. Vamos a crear un nuevo artículo aquí, y éste se va a llamar Seguridad de Transporte N s AP. Recuerda, nueve de
Iowa ahora te impide ir a tus roles que no son https. Está bien. Y, uh, sólo
tenemos que apagarlo. Entonces cámbialo a diccionario. Soy un click la flecha para bajar aquí. A lo mejor un poco pequeño. Desafortunadamente, Exco no me deja acercar aquí. Y así vamos a crear un nuevo elemento ahí dentro. Vamos a llamar a esto n s Permite a r b i traer e Esa es palabra dura Teoh tipo a veces, y esto permite cargas arbitrarias y eso va a ser de tipo Booleano. Y vamos a decir por defecto,
Sí, Así que sólo mira, Así que sólo mira, deja que la aplicación cargue lo que sea webs, lo que sea que estés fuera una vez eso es todo lo que estamos diciendo. Voy a hacer clic atrás mi código Pokemon aquí. Vamos a volver a ejecutarlo y a ver si no podemos conseguir alguna la solicitud trabajando aquí. Apague esto. Entonces esto debería ser descargando cargo Ciara Zardes información y ella Mira, estamos imprimiendo cosas y creo que vi un arte charters ahí dentro. Sí, mira eso. Entonces está funcionando. Entonces, recapitulemos de nuevo. Sé que sueno como un disco roto, pero esto es tan importante. Esto es lo que vas a hacer en tu trabajo en todos tus aps. Entonces lo que estamos haciendo es que estamos creando nuestro mal basado en las cubiertas pokey. D recuerdo el pokey ap I euro nos da datos, remolca nos herramienta realmente agradable. Conocemos la URL. Por lo que hacemos la solicitud y es una petición get. Pasamos la URL que Jason vuelve en el resultado y que imprime los datos aquí mismo . Entonces ahora lo que tenemos que hacer es lo que hemos hecho en videos similares. Sólo necesitamos analizar ese Jason, meterlo en nuestros puntos de vista, y estamos en el negocio. Entonces me voy a deshacer de esto y vamos a trabajar en esto aquí. Entonces necesitábamos Si miras al Jason aquí, observa que es Ah, es un diccionario. ¿ De acuerdo? Es un diccionario. Eso es lo que se espera. Entonces lo que vamos a dio es, digamos, si dejamos que dicked igual resultado ese valor. De acuerdo, como recordamos, es un diccionario y las claves son cadenas y los valores o cualquier objeto que pudiera
ser a podría ser una matriz podría ser, ah, string podría ser un entero No sabemos que son todos diferentes valores, pero sabemos que las claves son todas cadenas, por lo que es un diccionario de tipo string. Entonces si así lo único que estamos diciendo es, hey, convertir el Jason en un diccionario, una nueva aplicación en IOS Swift Dictionary para que podamos usarlo. Y luego a partir de ese punto, no
es tan difícil. Todo lo que necesitamos hacer es agarrar campos fuera de ella. Entonces, como si hago una búsqueda aquí, escribo y espero, hay un peso lleno. Recuerda, hay una altura que queremos sólo se llama altura. Hay un ataque de base o hay un ataque,
creo, creo, es lo que se llama Eso es Derecho y Campo de Ataque. Hay un tipo lleno de tipo incorrecto. Vamos. Wow, hay muchos tipos en este tipo de aquí, um, tipos. Ah, son tipos porque podría haber uno o más tipo, así que hay tipos que vamos a tener que agarrar. Entonces parece que todos nuestros datos están ahí. Lo cual es una buena noticia. Son lo que esto significa hasta ahora es estuvieron hablando con éxito con pokey ap I, el sitio web y su enviando con éxito datos hacia abajo. Por cierto, si este Ap alguna vez baja o quieres mejorar tu app y no quieres usarla, solo agarra esos ven archivos SV y puedes construir toda tu app e incluso puedes almacenar todas las cosas en la app sin tener que hacer estas solicitudes de red si lo deseas. Entonces lo que estamos haciendo fue convertirlo en un diccionario. Las claves son de tipo string, y los valores son de tipo, cualquier objeto. Entonces empecemos a agarrar datos de ello, ¿de acuerdo? Sólo diremos si dejar peso bien, si dejar peso es igual a dict. Y recuerda, es el peso. Los nombres clave tienen que ser deletreados exactamente bien. Entonces al igual que aquí mismo, espera necesita ser deletreada exactamente lo mismo más que lo que estás obteniendo de Internet. Y vamos a decir como ah, string. Disculpe. Entonces, básicamente, tienes que hacer esto. Refleja, Si no lo
haces, podrías estrellar tu programa. ¿ De acuerdo? No te estrelles tu programa. Asegúrate de que exista primero y de que se convierta correctamente en una cadena antes de intentar
usarla . De lo contrario, tu programa se estrellará hará exactamente lo que estoy haciendo aquí. Y cada aplicación que construyas, comprueba
siempre para asegurarte de que funciona antes de usarla. Y entonces todo lo que tenemos que hacer es decir auto punto subrayado punto El peso del guión bajo es igual al peso. Entonces haz el de aquí arriba. De acuerdo, Esta espera aquí mismo. Hazlo igual al que está funcionando. Entonces si entramos aquí, todo está bien para ir. Vamos a asignarlo. Por cierto, si no uso auto reloj, ¿qué pasa? Nos da una referencia aérea. El recinto de la propiedad requiere auto. Entonces si tienes una propiedad en un cierre estuviste en un cierre y puedes decir porque las
llaves , si alguna vez tienes código y cierre, siempre
tienes que usar la palabra clave auto. Vale, tienes que decir una palabra donde vive el objeto, a
qué te refieres. Y te refieres al objeto aquí porque este código está en una amenaza diferente. A veces corre en otro lugar. Siempre hay que usar yo mismo. Te obliga y luego solo seguiremos bajando por la línea si deja que la altura es igual a la altura dict . Sabemos que los campos en su nombre clave exacto está ahí porque solo lo busqué y, um, siempre
dicen, altura de subrayado
auto punto es igual a , uh, altura. Y eso funciona. Está bien. Y eso es bueno para mí. Si dejar Ataque es igual a Dict y creo que fue ataque en el Jason como un
ataque de auto punto cuerda igual a ataque. Y así solo estamos asignando las variables del diccionario a las variables en nuestro propiedad en nuestro objeto de cupón de encuesta. De acuerdo, esta es una práctica muy común. Todos los desarrolladores profesionales lo hacen más o menos así. Entonces si lo haces de esta manera, estás corriendo con lo mejor de lo mejor, así que eso es genial. Um, entonces tenemos estatura de peso cuando te defiendes, ¿
verdad? Si dejar que la defensa es igual a dict y menos mecanografía defensa, como digo ,
uh ,
string ,
por cierto, no
estoy seguro si algunos de estos números aquí porque no hay citas a su alrededor. No estoy seguro si se van a convertir adecuadamente para nosotros, así que ya veremos qué pasa. Por lo que sólo voy a decir auto punto Subrayado Defensa es igual a defensa. Está bien. Está bien. Entonces tenemos algunas cosas pasando aquí. Sólo estaban agarrando el diccionario del Jason estaban agarrando artículos fuera de él. Y recuerda la forma en que lo estructuras como estas cuerdas aquí mismo. Necesitan igualar lo que hay en el Jason aquí abajo. De acuerdo, entonces, um, podemos tener éxito con el peso o no. Podría ser un número. Creo que podría no funcionar, pero ya veremos. Um, y así espera. Ataque alto. Todos esos podrían ser números. Por instancia. No estoy muy seguro de que lo veremos en tan solo un segundo aquí. De hecho, lo
comprobaremos ahora mismo si todo funcionó. Si todo esto funcionó, podemos imprimir los objetos de nuestro Pokemon principal, y se imprimirá. Según Así que si lucho, imprimir auto punto Subrayado, Esperar e imprimir auto punto Subrayado altura, imprimir, auto punto, guión bajo, ataque, imprimir, auto punto, Subrayar defensa. Está bien. Entonces si todo funcionó, todos
esos imprimirán lo que se supone que son. Si no
funcionaron, probablemente dirán Neil, Neil, Neil y Neil. No debe confundirse con Neil, la persona que probablemente está viendo este video. Pero Neil como n i l s ejecutar un comando de programa plus r ver qué pasa. Apague la música. Click chars ard Y así funcionó 905. Por lo que este top en este peso, funcionó 17. El estatura funcionó, Pero parece que ataque y defensa son enteros no lo diseñé de esta manera, Pero ¿adivina qué? Aquí tienes un problema común al que vas a correr como desarrollador. Tienes que obedecer lo que diga la A P I Y este ap ojos diciéndonos el peso y la altura, nuestras cuerdas. Pero el ataque y la defensa, nuestros números No me pregunten por qué. No lo sé. Entonces todo lo que tenemos que hacer es esto. Entonces cambiemos el ataque a un fin. Cambiemos este ataque a un int. Y entonces ¿qué va a aparecer Dio, ya que nuestra principal nuestra principal propiedad principal en ataque es una cuerda? No quiero tratar con enteros porque no estamos multiplicando los números, así que vamos a convertirlo en una cadena. Vamos a,
uh , hacer ese formato especial de cadena aquí donde puedes insertar tu variable. Entonces básicamente vamos a tomar esto terminó tu ataque, convertido en una cuerda y ponerlo en nuestro ataque Pokemons, que es una cuerda. Hará lo mismo aquí. Autodefensa equivale a ir a convertirla en una cuerda. Sólo tienes que convertirlo, convertir esto en una cadena. Ahora lo que estamos diciendo. Entonces lo que pasaba antes es que el elenco estaba talando. Esto estaba fallando porque estamos tratando de convertirlo en una cadena cuando es un entero. Ahora estamos diciendo que es entero. Y así si todo esto funcionaba bien, estos dos últimos Neil's ahora deberían ser enteros y deberíamos ver los números. Adelante y corrámoslo. Así es exactamente como escribo mi abrigo. Pruebe las cosas, vea cómo va. Yo hago cambios. Vamos a dar clic a cargar duro y ahí lo tienes. El 905 está funcionando, por lo que el camino a la altura ya ha estado funcionando. Ahora el ataque y la defensa están funcionando bien, porque los estamos lanzando correctamente. Cosas muy buenas. Entonces tenemos estas piezas funcionando ahora ¿qué más necesitamos para dio? Veamos aquí tenemos peso,
altura, altura, ataque y defensa. Tenemos que conseguir los tipos OK y ah, vamos a, uh Bueno, vamos a abrir nuestro pokey A p Hago que se vea bien por aquí, poky a p I y ver si tienen tipos aquí. Creo que tú Vale, así que mira esto. Disculpe. Um, ustedes intentan hablar durante 50 horas seguidas sin despejar la voz. Sí. Está bien. Um so tipos, el valor clave o la clave es de tipo string. Podemos decir que ahora, nuevo, esto es muy común ir a una documentación p I mirando porque tienes un dato parcial exactamente como lo dice el A P. I. Tipos es una cadena, pero el valor, ¿Qué es ese valor? Ya sabes, es una matriz, así que es una matriz de diccionarios. Estos tirantes rizados significan que es un diccionario. Entonces tipos es que es una matriz de diccionarios, así que así es como logramos interactuar con él. Entonces sigamos adelante y trabajemos con los tipos ahora, Así que aquí vamos. Si dejar que los tipos recuerden siempre si vamos a asegurarnos de que se convierte correctamente. Entonces lo estamos agarrando del recuerdo Se llama tipos, como se puede ver en el lado izquierdo. Y al igual que dije es un estoy poniendo el corchete abierto porque es un
diccionario array de tipo string. Recuerda, el valor clave es una cadena, ¿
OK? Y ah, bueno, en este caso, um, entonces este es un diccionario, ¿no? Si nota que esto es una cadena, el valor clave o las claves una cadena y los valores también una cadena en ambos. Por lo que en realidad podemos en lugar de decir cualquier objeto debilitar sólo una cuerda y una cuerda porque
sabemos que ambos son fuerza. Entonces de nuevo, los tipos es una matriz de diccionarios y cada diccionario es de tipo string, string, el valor final clave, ambos string. Entonces que esto absorba por un segundo lo que acabamos de escribir aquí. Esto de aquí es exactamente lo mismo. ¿ Es esto justo aquí? Yo quiero que lo hagas. Si no entiendes esto completamente, quiero que pausas el video. Quiero que miren lo que se destaca por aquí, y quiero que lo traduzcan en lo que se destaca por aquí. Eso es exactamente lo mismo. Es así como parcial la mirada de depósito de Jason si es necesario,
hasta que lo entiendas perfectamente. Se trata de una matriz de tipo diccionario con string y string. Entonces Ok, entonces si eso funcionó correctamente, vamos a imprimir o tipos de pantalla. Y así vamos a probar eso. Eso es solo tipos de impresión que depuran descripción. Está bien. Y veamos qué pasa si Prince Data sabemos que fue exitoso. Entonces apaga. Se imprimió la música, y aquí está. Lo imprimió. Definitivamente funcionó. Definitivamente, definitivamente funcionó. Def. Definitivamente. Def definitivamente funcionó. Eso um sí, uh, tipos. Eso se ve bien. Eso Ahora, ¿qué queremos dio? Entonces piensa en esto en nuestra app, Recuerda, queríamos decir tener múltiples tipos, así que sería como hierba slash magic o grass slash Es magia incluso un tipo No me odien fans de
Pokemon. No creo que lo sea. Es como magias menos o una hierba menos psíquica o dragón o lo que sea. A lo mejor queremos poner barras después de cada tipo porque, ah, Pokemon puede tener uno o más tipos. Creo que hay un máximo de dos. Um, así que tenemos algunos tipos aquí, así que vamos a averimarlo. Entonces Ok, entonces tenemos algunos tipos de lo que queremos hacer. Um Bueno, en primer lugar, ¿sabes qué? Ni siquiera necesitamos meternos con esto. Si no hay tipos. ¿ Qué? Este Pokemon no tiene tipo. Probablemente deberíamos dar cuenta de eso. Entonces al final de tu del final de tu pequeño ah casting aquí, ¿por qué no dices esto donde tipos dot count dot com es mayor que cero. Entonces eso es interesante. Nunca antes habías visto eso. Cierra este lado izquierdo aquí tratando de mantener el texto grande para que puedas leerlo mientras también haces un no revuelto. Entonces mira esto aquí. Entonces, ¿dónde está y si deja escribir. Entonces lo que estamos haciendo es agarrar eso. Estamos agarrando los datos del diccionario, y lo estamos lanzando como una matriz de tipo diccionario y string y string. Entonces si eso funciona, si se funde con éxito bien, entonces pasamos a esta sección aquí. Esta es una condición, y decimos donde los tipos que cuentan es mayor que cero. Entonces lo que estamos diciendo este primero convertido, y si se convirtió con éxito, vamos a asegurarnos de esta matriz, porque ahora sabemos que es una matriz. Ahora, asegurémonos de que la cuenta sea mayor que cero. Si no lo es. No nos importa. No queremos hacer nada con él porque no necesitamos una matriz que no tenga objetos en ella. Tenemos que tener algo. Por lo que Onley entra en este código si lanza correctamente y si la cuenta es mayor que cero. Tan cool cosita donde podrías hacer un padecimiento ahí mismo. Hace un poco tu código. Dejar a la derecha menos código. Entonces está bien. Entonces, ¿qué queremos hacer? Bueno, queremos a Teoh. En primer lugar, queremos agarrar al primer tipo. Si sólo hay un tipo, vamos a agarrarlo aquí. Entonces vamos a decir yo mismo. Bueno, diremos si let type es igual a tipos. Nombre cero. De acuerdo, piensa en esto. 1er 2do ¿qué está pasando aquí? Entonces OK, está creando una variable. Una constante llamada tipo. Lo que estamos haciendo es que lo estamos agarrando de la,
uh, uh, recordar tipos es una matriz, ¿
verdad? Se puede decir por esto y por esto. Entonces vamos a agarrar el primer artículo en él Ahora, ¿esto se va a romper? No, porque sabemos que tenemos al menos un tipo, por lo que esto siempre va a tener éxito, porque hay al menos uno porque hicimos este cheque aquí asegurándonos de que haya más de cero. Lo que estamos haciendo es que estamos agarrando el primer elemento fuera de él, y luego estamos llamando al nombre propiedad. Esto no es diferente a decir ah que hacer esto. Um, no
es diferente a hacer eso. Y luego ah, haciendo algo como esto Eso si deja tipear 00 sí. Ya sabes como uh bien, en realidad, debería trabajar. Bien. Sólo te estoy mostrando un ejemplo. Entonces si lo hice si dejo tipo cero y luego dije, ya
sabes, si let name es igual a tipo, um nombre, eso es exactamente lo mismo. OK, solo lo
estoy haciendo taquigrafía. Entonces lo que digo es, Hey, nos
va a devolver el primer tipo, cual sabemos es un diccionario de tipo, string y string. Y saquemos el nombre propiedad de la misma. OK, sé que es un poco confuso, pero piénsalo. Aquí sección slot cero agarra el primer elemento fuera de ella, que es un diccionario de tipo string. Entonces nos está dando un diccionario y luego estaban llamando de inmediato Están agarrando un artículo de ese diccionario. Simplemente finge que no necesitamos almacenarlo porque no lo hacemos. Estamos llamando a la propiedad de nombre de ese diccionario justo después. Entonces nos devuelve el diccionario y luego estamos llamando a esto en el diccionario. Eso es todo lo que está pasando. Y entonces lo que se está poniendo en el tipo es en realidad, um, en realidad no lo
es. En realidad es el nombre. Mira la llave por aquí, su nombre real. Entonces puedo llamarlo nombre, porque eso es lo que nos está dando ahí. Entonces si hay un nombre, entonces lo que podemos hacer es que podemos decir yo mismo que gancho yo, ese tipo es igual a nombre. De acuerdo, entonces lo que estamos haciendo es recordar, tenemos esta propiedad tipo, y eso va a verse un poco así, ¿
verdad? Se va a decir, um, hierba corta fuego. No creo que haya un corte de pasto hermético al fuego, pero, um, fuego de corte de
pasto. Se va a ver así, ¿verdad? Vamos a tener que formatear nosotros mismos. Entonces lo que hemos hecho aquí es que solo estamos diciendo, Hey, agarra el primer tipo en un letrero porque si solo hay un tipo, esto es todo lo que necesitamos y luego terminamos.
95. App: Pokedex parte 14 - completar la aplicación: bienvenido de nuevo por las emocionantes cubiertas pokey hechas de esa manera vas a terminar esto? Te lo prometo. Y vamos a meternos en ello. Mark Precio aquí, Deb pendientes dot com. Y así tenemos defensa de altura, peso ataque defensa bajando de los Internets. ve bien. Ya lo hemos analizado todo. También hemos analizado la matriz de tipos hizo que se viera realmente bonito con barras entre ellos, las últimas cosas que necesitamos dio es conseguir que se descargue esa descripción. ¿ De acuerdo? Porque miembro no viene en el Jason. Nos da euro y dijo la descripción real y llegamos a conseguir esa descripción. Y luego, uh, la evolución que llegamos para conseguir el mar de ese personaje tiene otra evolución. Entonces sigamos adelante y empecemos con la descripción. Entonces estamos justo aquí en nuestro en nuestra descarga Pokemon detalles donde solo estamos descargando datos, OK, Y entonces si no mencioné, tenemos que conectar muchas cosas hasta la interfaz de usuario para así aquí mismo, estamos descargando información. Lo estamos analizando. Se ve muy bien. Uh, sí, sí, sí. OK, entonces vamos a seguir analizando datos. Hablemos de la descripción. Déjame,
uh, uh, tirar hacia arriba en esto de aquí. Si miras nuestro traeremos aquí a nuestro Jason. Esto es solo de uno de los avisos de Pokemon ¿Cómo? Hay un campo llamado descripciones. Y creo que lo que está pasando es cada uno de los diferentes juegos que tienen. Diferentes descripciones de los Pokemon, algo nuevo sobre ellos son diferentes, simplemente ligeramente diferentes. Entonces esta es una matriz de las diferentes descripciones. Solo vamos a agarrar el 1er 1 Algunos de estos Pokemon no tienen más de una descripción y no pueden garantizar. Y sólo nos importa el primero ahora mismo. Construyendo tu propio poke Adex. Siéntase libre de descargarlos viejos, analizarlos, ponerlo en la aplicación. Haz tu app. Ah, 100 veces más involucrados en este. El mundo está abierto para que te metas con él. Pero en nuestro caso, aquí mismo, tenemos descripciones, que es una matriz que se puede ver por las llaves cuadradas. Aquí es una matriz de diccionarios, y el diccionario es de tipo string y fuerza. Nombre clave de
cadena, valor de cadena. De acuerdo, Entonces lo que vamos a hacer solo partes de la descripción agarró el 1er 1 en tienda lo. No es gran cosa. Ya lo hemos hecho en su mayor parte. Entonces aquí vamos. Si lo dejo voy a decir D S d sc para la descripción y un r para matriz es igual a dict y es descripciones. Ahora recuerda, estamos agarrando esta palabra clave exacta aquí. Sabemos que es una matriz, así que tenemos que agarrarte. Siempre agarra el objeto de nivel superior primero en, uh, en el Jason. Y luego una vez así tenemos que agarrar la matriz. Y entonces lo que queremos hacer es que queremos agarrar el recurso. Tú lo eres. Yo bien. ¿ Y recuerdas? Entonces estamos agarrando la matriz. ¿ De acuerdo? Y lo estropeé aquí. Um, vamos a ver. Descripción. Mi mal. Esto no es lo que yo quería. Entonces queremos estas descripciones como Qué diablos está haciendo este tipo me está confundiendo. Perdón. Por lo que un diccionario de tipo, string y string. Eso es lo que sabemos. De acuerdo, entonces ahí vamos. Agarra la matriz. Es un diccionario de tipo string. Si eso se analizó con éxito, que lo hará, Um, Y si se analizó con éxito, sigamos adelante y agarramos la URL fuera de ella. Porque lo que vamos a hacer es agarrar a esta chica de la que vamos a descargarla. Vamos a hacer otra llamada de descarga, descargarla y luego almacenarla. Entonces hagámoslo. Ahora digamos que si let euro es igual a array descriptivo, ¿qué crees que estamos haciendo ahí con cero? Recuerda, estamos agarrando el primer elemento de la matriz. ¿ De acuerdo? Y, uh, lo que probablemente deberíamos hacer también es que donde Klaus nuevamente, donde descript array de es e r dot count es mayor que cero. Entonces lo que queremos asegurarnos es que debo estar hinchando este mal. Ahí vamos. Entonces donde el donde el número de puntos de matriz es mayor que cero. Entonces, ni siquiera ejecutemos este código a menos que sea igual a cero. Y solo hagamos una cláusula rapida antes de que consiga un montón de, ah, llaves, pero no sé dónde termina estaban Solo di, si no hay descripción, solo
diremos auto punto Subrayado descripción, no defensa. Vamos, descripción es igual a una cuerda vacía. De acuerdo, así que ahora volvamos aquí arriba. Agarramos el euro. Así que agarra la primera descripción. ¿ De acuerdo? Y luego en esa descripción, ahora, vamos a agarrar el recurso tu yo como cadena. Así que agarra el primer elemento fuera de ella. Y si eso tiene éxito, agarró la primera clave de ella. Y, uh oh, ya
sabes, no
creo que tengamos que echarlo. En realidad, echemos un vistazo aquí. Nos va a obligar a lanzarlo. No, estamos bien. No necesitamos un elenco lo porque definimos el tipo ahí mismo. Lo dijimos a cadena. Sabe que es una cuerda. Entonces no necesitamos decir,
Hey, ¿ va a ser una cuerda? Está esperando una cuerda. Está bien. Y eso Daleks. Bien. Entonces si llegamos aquí, si hay euro, es una cuerda se ve bien. Y estamos agarrando éste aquí mismo. Este recurso tienes razón. Adelante y hagamos otra solicitud de incendio de Álamo. Y técnicamente, estamos haciendo una solicitud en la función de devolución de llamada en el cierre de éste. Eso está bien. Está bien. Entonces hagamos otra solicitud para descargar la descripción. Y una vez que eso descargue y analizará esos datos y los almacenará. De acuerdo, esto es típico. I Este es un gran desarrollo de red típico de IOS cuando estás hablando con servidores. Tienes que hacer esto en cualquier lenguaje de programación. Entonces Alamo punto de fuego solicita mismas cosas antes de conseguir solicitud, ¿
ok? Y por la cuerda. Qué va a ser en realidad eso Va a ser similar al otro. Vamos a poner la base. ¿ Lo estás? L más que que estás bien ahí. Entonces vamos a crear primero el euro. Entonces diremos que, um el n s tu l es igual a N S u r l Y la cuerda está bien. Y aquí es donde construiremos nuestro Uriel. Entonces vamos a decir que eres l Base, ¿recuerdas? Y luego, uh, este otro de aquí es lo que queremos, acuerdo? Y lo hemos analizado, así que sabemos que es éste de aquí. Entonces vamos a seguir adelante y poner eso en y tiene los minutos Ford Slash. No necesitamos agregar barras extra. Entonces eso va a crear a nuestro Earle poner un signo de exclamación al final para desenvolverlo, porque sabemos lo que va a funcionar. O al menos lo pondremos al día en tiempo de compilar antes de que llegue a un usuario. Y luego justo aquí solo pasando a la chica. De acuerdo, así es como lo llamé yo. Es sólo un nombre de variable que no debe confundirse con este de aquí. Esto es todo gorras. Y, uh cuál fue el, uh gracias que necesitamos hacer respuesta de dot Jason. Jason, Ahí está. Y uh, Ok, es Ah. Um es ser travieso. Ahí vamos. Exco ¿Quién? Esto es copia, pero ya tiene aquí, Así que sólo voy a copiar esto, Así que quiero volver a hacerlo. Ese punto respuesta Jason todo el camino hasta el in. Está bien, eso ahí mismo. Y bajemos aquí. Simplemente péguelo aquí. Y todo lo que necesitas hacer es agregar una llave rizada de cierre. De acuerdo, para igualar esta de aquí otra vez, si no recuerdas, esto es solo un cierre que se llama después de que se haga la solicitud. Ya sea que fracase o tenga éxito, simplemente
vamos a asumir que tiene éxito. Entonces lo que necesitamos dio es como lo que hicimos antes. De acuerdo, necesitamos un analizador. Tenemos que analizar los datos, así que veamos qué nos va a devolver. Todavía no lo sabemos. ¿ Verdad? Entonces si vas por aquí, eh, digamos que agarramos esta descripción aquí mismo, esta es la descripción específica que nos está dando Así que sigamos adelante. Ve a ah, abre una nueva ventana del navegador. Goto pokey ap I ese CEO y simplemente pega a esa chica. Eso es lo que buscamos. Ahí está. Ahí está nuestra descripción. Vayamos a internet, Jason. Cuatro importan y vamos a formatear para que se vea bonito proceso. Ahí está. Uh, a ver qué nos da. Por lo que habla de los juegos en los que está. Se crean los datos. Idea modificada. Todo lo que realmente nos importa es este el campo de descripción. Por lo que no debe confundirse con el campo de descripción aquí. Se trata de descripciones. esto le llamamos su L. Y luego envía es este dato y tiene un campo llamado descripción y aviso. El principal el archivo principal en sí, es en realidad un, um es un objeto o es un diccionario y tiene una clave de tipo string y valor de tipo. Cualquier causa objeto en este caso, es una cadena. En este caso, es un número. Por lo que quieres llamarlo cualquier objeto. Entonces no sabemos ahora cómo va a ser el Jason. Y es crítico saber cómo eres Jason Parece antes de que puedas analizarlo, obviamente. Entonces si dejamos que llamemos a esta descripción, uh, dicked para el diccionario de descripción, todo
el asunto de los datos, fue resultado ese valor. Al igual que lo hicimos antes. Como recuerdo, es un diccionario de tipo string y cualquier objeto. Acabamos de hablar de esto ahí. Está bien, Alex. Bien. Entonces es Ah, descripción Diccionario,
Diccionario de cadena de cualquier objeto que se vea bien. Y vamos a hacer otra si se deja Bueno, sólo una descripción es igual a descripción. Pick. Estás agarrando la llave de ella ahora. Descripción. Entonces esta llave aquí mismo, eso es lo que estamos agarrando. Estamos agarrando el valor de la misma. Lo vamos a lanzar como una cuerda, ¿de acuerdo? Porque es de cualquier manera objeto, Uh, no
sabemos qué va a ser, pero tenemos un elenco a una cuerda. Diga, Hey, esto es una vez que esta clave específicamente se supone que es una cuerda. ¿ Por qué la mitad de este azul y la mitad de este rojo? Ese es el siguiente código Bug X Code hizo un poco con errores. Y porque ahora tenemos la descripción, ¿es eso realmente así de fácil? Todo lo que tenemos que hacer ahora es una señal de la cosa. Digamos que auto punto subrayado descripción igual a descripción. Y así si salimos de esta cuadra aquí, deberíamos ahora, en realidad, eso no es cierto. Entonces aquí hay algo interesante. Orden, orden de operaciones. Preste atención. De acuerdo, entonces esta línea de código se va a llamar, ¿
verdad? Y luego éste, todo está bien. Pero luego pasa la petición, ¿verdad? Entonces si tuviera que escribir algún código aquí mismo, esto en realidad se llamaría primero antes de que llegáramos siquiera aquí. ¿ De acuerdo? Eres como,
Espera, Espera, ¿Qué? Se está bajando. ¿ Cómo se salta esto? Recuerda, solicitud es una sincrona. Cuando hagas esta petición, va a golpear internet. Va a tomar unos segundos. ¿ Por qué va a seguir yendo este bloque de códigos? ¿ Dónde está esto? Se va a esperar a que se haga la petición. De acuerdo, Entonces lo que haremos es justo aquí. Vamos a imprimir la descripción. Se trata de una descripción de subrayado auto punto de impresión. Y si ves una descripción imprimiendo a la pantalla, sabes que funcionó. Y luego vamos a seguir así que construir y correr lo hizo a dio Nos estamos acercando tanto y su aplicación se ve bastante jodidamente genial. Deberías construir y mostrárselo a todos tus amigos. Ellos van a ser volados y tú deberías estar feliz de hacerlo. ¿ Vas a tener muchas habilidades debajo de tu cinturón una vez que llegues esto aquí abajo? Entonces solo son carreras tomando un segundo. Escuchar música apagada. Veamos la descripción de los juguetes de explosión. Un Pokemon brutal. Por cierto, todos estos dicen Pokemon. Creo que hay algo malo en eso. Con su A p Lo siento, no metiendo la mente, pero lo que sea un Bruto Pokemon con chorros de agua presurizados en su caparazón. Entonces, ¿está funcionando? Está funcionando. Entonces lo que hicimos fue agarrar la URL que venía con el Jason original. Nos dio un euro en la descripción. Descargamos la URL en los datos de ella, y luego sacamos la descripción de ella. Por lo que hicimos otra segunda petición. Nos estamos acercando mucho, muy cerca aquí. Todos aguanten conmigo. Entonces lo último es que la evolución está bien. ¿ Cómo va a funcionar? Entonces lo que queremos hacer es agarrar la próxima evolución, bien. Y solo para mostrar la imagen para ello y el nombre. Está bien. Entonces si miramos a ver qué tenemos aquí. Evoluciones. ¿ Tienes aquí algunas evoluciones para nosotros? A menos que el mal con las evoluciones aquí? Evoluciones. De acuerdo, así que si miras aquí, uh, en nuestro diccionario inicial, que ordenamos actualmente tienen. Ahí hay una evolución Zarei, y puede que tenga datos y puede que no, porque algún pool venga no tiene evoluciones, y sólo nos está dando la próxima evolución. No nos está dando a todos ellos, lo cual es desafortunado. Creo que deberían agregarlo. Pero, um, esa es la A p I. Tenemos que hacer lo que digan. Y entonces lo que nos está dando es el nivel que la próxima evolución ocurrirá a nivel de
personaje, el nombre de la evolución, Um, y luego Thea el recurso donde realmente se pueden descargar los datos. No vamos a hacer eso. ¿ Qué? Este número es importante. Este es el número real de Pokemon que vamos a necesitar. Y luego, um, cómo llegas a esa evolución. Algunas veces se está nivelando. A veces es comerciando con el Pokemon. Hay otras formas de meter a uno involucrando. Entonces, solo empecemos a escribir aquí. Entonces sabemos que las evoluciones es, um es una matriz, y es una matriz de diccionarios, como se puede ver aquí. Y el diccionario tiene una clave de un tipo de cadena y valor de cualquier objeto porque tiene números y tiene cadenas por lo que no podemos No podemos especificar un tipo específico para el valor. Entonces aquí vamos. Aquí vamos. Aquí vamos. Aquí vamos. Si dejar que la evolución es sólo alguna buena vieja codificación segura aquí es igual a Dict, ¿Recuerdas el diccionario? Así es aquí arriba ahora. De acuerdo, todavía
estamos en ello. Entonces, um igual a Dict Evolutions estaban agarrando la clave exacta de las evoluciones. Y, uh, recuerda, es un diccionario, Vale, de tipo string y cualquier objeto. Está bien, eso se ve bien. Entonces si hemos entrado aquí, significa que hemos
analizado exitosamente significa que hemos
analizado exitosamentelas evoluciones. Y, uh, ¿sabes qué? En este caso, um, realidad
podemos simplemente decir, um, en realidad
podemos hacer otro. Donde Klaus En realidad, donde las evoluciones conteo de puntos es mayor que cero. Entonces sólo entra en este bloque de abrigo si hay al menos una evolución. De lo contrario, sabemos que no hay ninguno, y entonces no tenemos que hacer nada, hacer nuestra vida más fácil. Entonces aquí vamos. Queremos obtener el nombre del que queremos obtener el nombre del, uh del personaje. Entonces sigamos adelante y digamos, si se deja igualar evoluciones cero. De acuerdo, por cierto, ¿qué? Sé solo trabajar con este AP. Yo lo estaba. Lo he estado probando. Solo te da un objeto evolutivo. No estoy seguro de por qué, así que solo adelante y agarra el 1er 1 y estarás a salvo, que es lo que estamos haciendo aquí. Está bien, Zero. Entonces como estamos agarrando el 01 y luego es un diccionario, ¿
verdad? Por lo que ahora podemos llamar a la propiedad a la que es el nombre como cadena. Entonces nos ha dado un nombre, para que eso se vea genial. Um, si dejar dos iguales a revelación o evoluciones. Vale, Ahora es todo arcoíris y mariposas todavía porque uno de los problemas que encontré mientras
iba a la a p i es hay una mega evolución. ¿ Recuerdas cómo al principio, cuando fuimos al archivo CSB, borramos toda la basura extra tenía mega evoluciones y todo tipo de cosas locas que simplemente ni
siquiera estamos listos para dar cuenta? Pero sin embargo el a p todavía nos manda algunos de los Maiga y se mete con cosas, así que no incluyamos nada que tenga la palabra Maiga en ella. OK, um, y lo que digo es, ah, esto también lo es. Podría decir mega explosiones. ostra puede ir lo que sea. Y si si los creadores de palabras entran y lo vamos a sólo vamos a abortar, ¿de acuerdo? Porque no estamos preparados para manejar No tenemos los gráficos para ello encendidos. Esto es algo que yo mismo experimenté. No lo voy a demostrar sólo porque fue un poco doloroso averiguarlo y tratarlo. Entonces sobre todo lo que estamos haciendo aquí diciendo:
Vale, Vale, has agarrado el nombre de Pokemons, ¿de acuerdo? Y si la palabra Maiga está en cualquier parte en ella al principio y si esas cuatro letras están en ella, Vale, um, realidad
fueron más bien lo que estamos diciendo es, uh, si busca Maiga y no podemos encontrar nada, significa que estamos bien para irnos. De acuerdo, entonces esto significa que Ah Maiga no se encuentra. Causa rango de cadena devolverá el rango donde se encontró esa cadena. Eso Si es Neil, significa que no fue encontrado. Y eso es bueno, porque no lo queremos si es si está ahí dentro. Entonces Así que estamos ahora estamos ahí. No queremos lidiar con el mega encendido. Pondremos algunas notas aquí. Uh, no
puedo apoyar a Maiga Pokemon ahora mismo, Pero ap, todavía
tengo um, hacer un dato. Y esto. Normalmente no pongo muchos comentarios en mi código porque Coach debería ser auto explicativo. Pero cuando tienes problemas muy específicos, igual que ¿por qué estás escribiendo la palabra Megan? Puede que tenga sentido escribir algunos comentarios de futuros programadores como, Oh, eso tiene sentido. Y para que no se topan con el mismo problema. De acuerdo, entonces lo que queremos hacer ahora Así que piensa en lo que queremos saber. Nosotros queremos. Estamos aquí dentro. Ahí hay una evolución. No es Omega. Entonces lo que averiguamos hasta ahora hay al menos una evolución. No es Omega porque solo comprobamos eso aquí. ¿ Qué hacemos ahora? Bueno, lo que necesitamos dio es agarrar este número aquí mismo y mostrar esa imagen y ¿por qué? Bueno, porque recuerden, nuestras imágenes están todas nombradas por números. Entonces el problema es que en realidad no tiene una idea de poke Adex. Te das cuenta de que no nos da la idea de la evolución Pokemon. Entonces estaba pensando como, ¿de verdad quiero hacer 1/3 Solicitud web para descargar este maldito yo d? Bueno, la respuesta es no, porque está justo aquí. Mira eso. Lo tenemos justo aquí. Sólo vamos a tener que extraerlo de esta cuerda. Creo que esa es la mejor manera de agarrarnos el próximo mes pokey. Yo d. Para que pudiéramos mostrar la imagen. Nos ahorrará una solicitud Web y nos ahorrará más tiempo y velocidad. Y es justo lo correcto. Entonces de nuevo, vamos a sacar ese número de esa cadena de ahí y mostrarle a la imagen ese número de imagen . Entonces aquí vamos. Déjame hacer algo de espacio aquí. Let str just Es una cadena temporal. Eso es todo lo que es. Evolución cero. Así que agarra la primera evolución y agarra el recurso. Tu ojo, tu ojo de él. De acuerdo, entonces agarra el recurso. Tu yo y Ah, bueno, mejor
hacemos mejor si dejamos alto si dejas que las evoluciones recurren tu yo, um eso se ve bien. Y de hecho, mejor
decimos como cuerda. De acuerdo, Entonces si nosotros Lo que estamos diciendo aquí es ah fecklessness llama a esto tu Yo Ok, entonces si esto
funciona, significa que agarramos. Saquamos con éxito la URL de ahí. ¿ De acuerdo? Es tu ojo. Todos sois lo mismo. Lo hemos agarrado con éxito de ahí. Y lo que queremos hacer ahora es decir, Ah, deja nueva, um, nueva cuerda. ¿ De acuerdo? Igual que vamos a hacer algo un poco diferente. ¿ Quién iba a decir tu ojo punto String por string reemplazando string por reemplazando ocurrencias de string. Este es el que queremos. Está bien. Y así el objetivo. De acuerdo, entonces el objetivo va a ser, um, lo que vamos a dio Déjame ver. Aquí, Pon esto aquí. Te explicaré qué está pasando. Tu probablemente como nunca había visto esto antes. De acuerdo, mira lo que está pasando aquí. Lo que estamos haciendo es decir, Hey, vamos a crear una nueva cuerda. ¿ Cómo creamos el arroyo? Bueno, vamos a agarrar esta cuerda existente, que se ve así, por cierto. Y lo que estamos diciendo es, oye, reemplazar todas las ocurrencias de esto. Así que reemplaza todas las ocurrencias de esta justo aquí, deshazte de ella. Sea lo que sea que vayamos a reemplazarlo por algo, y yo digo, reemplácelo por una cadena vacía. Ah, eso es inteligente. Debilitar. Deshazte todas esas cosas. Sólo vamos a agarrarlo. Y si encontramos esa cuerda ahí dentro, vamos a agarrarla y reemplazarla por nada. Entonces acabamos de despojar todas esas cosas. Estábamos un poco Ya casi estamos. Casi tenemos ese número. Tenemos que deshacernos de esa última trailing que podemos usarla. Entonces la nueva cuerda que ahora nos hemos deshecho de la A P I versión uno Pokemon slash
se han deshecho de eso. OK, lo
reemplazamos por una cadena vacía. Y por último, una vez más. Simplemente decimos, vamos a adormecer el número del Pokemon bien es igual a nueva cadena que lo hará de nuevo cadena
sustituyendo ocurrencias de cadena. Y así vamos a deshacernos de esa última trailing Vamos a reemplazarla por nada. Por lo que primero sustituimos aquí la primera parte de la misma. Deshazte de todo eso. Siguen siendo esta cuerda aquí mismo de la que tenemos que deshacernos. Entonces simplemente lo hacemos de nuevo. Tomamos ese. Acabamos de cambiar, y luego nos deshacemos de la última rebanada en él. Y ahora tenemos es el número Sí, Debilita. Agarra nuestro próximo Pokemon. ¿ Quién? Y entonces lo que vamos a hacer ahora es decir, um, auto 0.0, próxima evolución necesitamos almacenar el i d para que no pesen. Tenemos el texto que vamos a mostrar, pero necesitamos empezar la idea para poder sacar la imagen. Por supuesto. Bar privado siguiente evolución. Ah, yo d Y eso va a ser una cuerda. Y la razón por la que voy a convertirla en una cuerda es porque, uh, um nuestra imagen es una cuerda cuando la tiramos hacia arriba. Y así no tiene sentido convertirlo en un entero paseando por aquí. Ahora podemos decir auto punto siguiente evolución I d igual, um entumecido. Enfriar. Uh, eso se ve bien. Y entonces tomemos el nombre. Correcto. Auto punto Siguiente evolución. Txt, um, igual Y, uh, no
hemos agarrado el o ¿Los agarramos? Sí, agarramos el nombre. Es el to, ¿verdad? Sí, si se deja. Por lo que el siguiente texto de evolución diablada. Um, y ese es sólo el nombre. Entonces solo pon dos significados. Recuerda, agarramos el nombre aquí arriba. Sí, eso está bien. Eso es exactamente lo que queremos. Entonces sólo estamos agarrando a los dos. Y, uh, ¿qué más? Um oh, nuestro ah, nuestro personaje. ¿ Te acuerdas? Se supone que muestre el nivel cuando hacemos click en él. Supuestamente decir Supuestamente decir próxima evolución Venecia o a nivel de 34 o 32 o lo que necesitemos para almacenar el nivel también a si hay un nivel, Um, pongamos eso en su barra privada siguiente nivel de evolución. Eso podría ser una cadena de tipo también. Incluso cuando tengas números, está bien ponerlo en cuerdas, porque si solo les estás imprimiendo sus cuerdas, a menos que estés realizando cálculos en
ellos, podrían quedarse una cuerda en sí que la próxima evolución nivel. Todavía no lo hemos agarrado. Tenemos que hacer eso primero. Entonces digamos que casi ahí. Chicos siempre ahí si dejar nivel iguala evoluciones. Cero evolución cero. Uh, ¿
Y cómo se llama Level? Yo sólo estoy mirando eso. Jason allá se llama Nivel como Zapato. Creo que es un entero. Quiere un entero, por lo que es un entero. Y entonces lo que haremos es diremos ah, auto punto siguiente nivel de evolución, y lo convertiremos en una cuerda lo suficientemente fácil. Simplemente haz eso. Entonces si hay un nivel, sigamos adelante y guardarlo. Si no lo hay, lo
sabes bien, no
necesitamos ni siquiera empezar eso. Nos encargaremos de eso más adelante. No necesitamos nada vacío ahí dentro. ¡ Whoa! De acuerdo, chicos, eso tenemos, um Tenemos estas cosas funcionando aquí, lo cual es realmente genial. Deberían simplemente imprimirlos y asegurarse de que esté funcionando. Uh, sí. Está bien. Buena elección. Eso se auto dot Siguiente evolución comenzará aquí con el i d. imprimir auto punto Siguiente evolución txt e imprimir auto punto Siguiente nivel de evolución. ¿ Quién? A ver si todo esto funcionó aquí. Y, uh, voy a abrir mi cosa aquí, ¿de acuerdo? Y sé que,
uh, uh, sé que bulboso o obviamente evolucionó, Así que vamos a darle un clic y ver si funcionó. De acuerdo, eso es Oh, ahí está. De acuerdo, aquí está. Lo encontré. Por lo que próximas ideas de evolución a hiedra. Dolor. Y luego, um 16. Aquí tienes un ejemplo perfecto del que te estaba hablando. Eres como, ¿a qué te refieres? Bueno, recuerda cómo estamos analizando como ataque de manera y todo esto, y entonces estamos como, OK, ahora
necesitamos que la descripción sea correcta. Por lo que aquí hacemos otra solicitud para la descripción. Ahora, esto es lo siguiente en el código. Pero lo interesante es por qué es la última impresión de mi descripción Y mis estas impresiones aquí abajo poniendo primero. Bueno, es porque estos están sucediendo antes de que se haga esta solicitud. Se llama solicitudes asíncronas. De acuerdo, así que nunca, nunca, nunca confías en algo para ser lineal cuando estás haciendo una solicitudes asíncronas. No sabemos cuándo va a volver esto. Entonces sé algo bueno que señale, la descripción vino después de que pasáramos por estas otras cosas. Y a pesar de que los códigos aquí abajo en la parte inferior por
lo que definitivamente está funcionando, nos dio una idea del próximo Pokemon su nombre y el nivel que evoluciona. Eso Así que tenemos ¿Agarramos? Creo que tenemos todos los datos que necesitamos. Um, esto es realmente genial. Entonces tenemos todos los datos que necesitamos del servidor, Así que felicidades. Hemos platicado con éxito con el servidor. Esa es una cosa realmente compleja. Analizando, Jason. Hemos cubierto una especie de mucho lo que vas a hacer en tu trabajo de día a día. Al igual que cuando analizas a Jason, no
vamos a entrar en tu trabajo. No vas a hacer un montón de cosas diferentes. Lo que acabamos de hacer en este momento, lo cual es realmente genial. Entonces ahora lo que necesitamos dio es que necesitamos que estos datos conectándose a eres tú yo y como que tenemos un problema ahora mismo. Sigamos adelante y ampliemos esto aquí y vayamos a nuestro controlador de vista. No, no ver Controlador La vista celda Pokey. De acuerdo, entonces tenemos el Pokemon almacenado, ¿verdad? Eso es justo aquí. Pero ¿y si quiero conseguir la altura? ¿ Altura de punto de Pokemon? Oh, no, no
podemos conseguirlo. ¿ Por qué? Porque es privado. Por lo que necesitamos seguir adelante y crear getters para todas nuestras propiedades. Y sigamos adelante y hagamos eso Ahora, Um, ahora, con el objetivo C, podrías hacer clic derecho en esto y crear un getter. A ver si nos deja hacerlo aquí en la nueva en la nueva Ah Oh, mira, Mira eso. No pueden hacer Fue rápido, sin embargo no lo tienen en básicamente antes de que solo hagas clic derecho en cada factor y creas un encapsulado getter y setter y lo pondría lo pondría en por ti, Pero no lo va a hacer por nosotros. Nosotros lo hacemos bien. Está todo de forma manual. Eso está bien, sin embargo. muy buena práctica. Definitivamente. No te engañes. No solo hagas todo público. Eso es mala práctica. Vas a impresionar a la gente. Si lo haces de la manera que te estoy mostrando, vas a presionar a un potencial empleador de Boston. Entonces tenemos el nombre. Tienes las cubiertas pokey. Yo d Sigamos adelante y hagamos todo el resto de estos. Aquí vamos. Y en estos, no
necesitamos una modificación. Sólo necesitamos getters. Hasta el momento, descripción de tipo string solo va a devolver descripción. Y no voy a ayunar por el video. Yo quiero que veas la repetición aquí. Entonces, um string devuelve el tipo de subrayado. De acuerdo, entonces ese es el tipo lo que viene después del tipo? Tenemos defensa, altura y peso de nuestra defensa de tipo string. Devolver guion bajo. Defensa de nuestra cuerda tipo altura. Bastante girado. Subrayar. Altura. Otra vez. Solo estamos siendo buenos programadores, manteniendo limpio nuestro código, asegurándonos de que nadie pueda destruir nuestros datos. Eso no debería estar destruyéndolo. Retorno. Subrayar. Espera, ¿qué más tenemos? Ataque de nuestro ataque de tipo string return underscore. La repetición de ataques es muy, muy, muy importante para el aprendizaje. Eso no se desanime copiando todo esto aquí y haciendo esto una y otra vez Siguiente Evolución Siguiente evolución. Siguiente evolución. De acuerdo, uh, próxima evolución. Txt. Yo sólo lo voy a hacer aquí mismo. Está un poco fuera de orden, pero no quiero seguir desplazando arriba y abajo de nuestra próxima evolución Txt de tipo string return Next Evolution txt bar Siguiente evolución I d. quién x regresa siguiente evolución I d y, uh, hacer otro ¿Apareció esta vez de nuestro siguiente nivel de evolución de tipo string. Y, uh, volvamos siguiente nivel de evolución uno más, en realidad. Pokemon tu l No necesitamos regresar porque no hay necesidad de usarlo. Estamos haciendo esto aquí, porque ¿vas a necesitar saber estas cosas? Entonces sigamos el orden de las operaciones. Entonces en su controlador de vista principal, hemos hecho clic en el icono, ¿
verdad? Y así lo que hace es cargar nuestro segway y cargar la vista de detalle cuando se carga
primero la vista de detalle , que es esta pantalla aquí mismo. Es espacio vacío. Um, estamos firmando el nombre y la imagen actualmente. Y entonces lo que estamos haciendo es que estamos descargando detalles de Pokemon. De acuerdo, ¿ recuerdas? Bueno, vamos a probarlo aquí mismo. ¿ Quieres ver un choque? Vamos a probar un choque. Vamos a fingir que, um, acabamos de cargar esta vista. Entonces sigamos adelante y cargemos la altura. Por lo que vamos a decir altura etiqueta texto punto es igual a altura de punto Pokemon. Veamos qué pasa. Vamos a verlo. Marrón, marrón, marrón. Oh, no. Un choque no significa que fuera un mal codificador. Saber lo que significa es, Bueno, podría significar eso. Pero lo que significa es que no inicializaste. inicializaste tus datos. Y así en primer lugar, podríamos haber hecho una de dos cosas. Una es que podrías garantizar que hay datos que van a estar ahí. Pero lo que también es algo común que hacer, es hacerlo aquí está bien, también. Y eso es hacer esto si dejas que altura tu peso, ya lo hicimos tan bien,
así es como mantienes código extra seguro sin ningún tipo de choques. Si quieres que tus usuarios sean felices, vas a hacer mucho de esto. Si dejar que la altura es igual a la altura del punto de Pokemon y luego te dio
altura etiqueta de punto texto igual a la altura y vamos a hacer eso, por cierto. Pero no lo vamos a hacer aquí. Entonces recuerda cómo creamos esta descarga Pokemon detalles, y luego se puso este cierre aquí. Bueno, vamos a ver qué pasa cuando el vamos a seguir adelante y a imprimir y decir, uh, ¿llegamos aquí? ¿ Llegaste aquí cuando el Pokemon haya terminado de descargar? Echemos un vistazo rápidamente aquí. Y me deshice de nuestro código de choque. No llegamos allí. ¿ Por qué? Bueno, porque en realidad nunca cumplimos el cierre. Entonces lo que necesitamos dio es volver a nuestro mes pokey y notar nuestra función aquí mismo. Descargar Detalles de Pokemon Pasamos en la función que se va a llamar el cierre Eso se va a llamar cuando terminemos. Pero nunca lo llamamos, uh, entonces ¿cuándo deberíamos llamarlo? Bueno, no
terminamos de descargar hasta que el, uh, esto principal haya descargado. Y luego la descripción, ¿no? El todo lo demás que obtenemos como parte de este paquete aquí mismo este diccionario. Pero la descripción es una segunda solicitud. Y ya que como es asíncrono, necesitamos esperar a que eso termine antes de que,
um,
antes um, de que llamemos éxito se completen. Perdón. Antes de llamar completada. Entonces bajemos a nuestra descripción y justo aquí Todo lo que necesitas para dio es Ah, lo
haremos. Vamos a hacerlo dos veces, en realidad. Y lo haré aquí. Entonces aquí hay algo. Aquí hay algo que saber. Um, Fuego de
Álamo. No tiene como, Y si es un aire, ve aquí en su lugar. Básicamente, si hay
96. Introducción a la aplicación: Oigan, ¿qué pasa, todos? Mark Price aquí en jabones de profundidad punto com Vamos a hablar de la app que vamos a sentir hoy. Ahora, Thistle es súper emocionante. Este es el grande. De acuerdo, entonces vamos a estar construyendo nuestra propia aplicación estilo Facebook. No Facebook en sí. Pero nuestro at se llama sordo lento que muestra las ideas. Estoy lanzando una app. Y quiero que las personas que están tomando mi curso puedan publicar imágenes y descripciones de la factura absoluta para que puedan compartirlas con la comunidad. A la gente les pueden gustar cosas así. Por lo que va a estar usando bases de fuego de nuevo adentro. Implementamos algún fantástico estilo de diseño de material de Google para que su aplicación se vea realmente bonita. Por lo que estamos empleando prácticas profesionales de codificación al mejor nivel que podamos, um, eso te permitirá trabajar Teoh en un tipo profesional de entorno. Uh, es decir, uh, no
estamos haciendo cosas cursi. No estamos haciendo cosas, Aziz. No se deben hacer. estamos haciendo como se debe hacer. Y así si puedes construir esta app y pasar y aprender estas cosas, vas a estar tan lejos por delante del juego. Uh, ningún otro curso va en este nivel de profundidad para gente nueva sobre cómo construir aplicaciones de
estilo profesional . Y así que realmente quiero que te tomes tiempo y te concentres en esto y sepas que si fueras a lanzar una app como esta a la tienda APP, vale, una es que probablemente podrías conseguir un montón de descargas a es vas a impresionar a tanta gente, no sólo familiares y amigos sino empleadores. Entonces es una gran cosa. Tómalo en serio y definitivamente. Mira, tira este en la tienda APP, y así puedes por supuesto,
iniciar sesión, iniciar sesión con Facebook o iniciar sesión con correo electrónico y contraseña, Um y luego qué? Ya has ingresado. También tenemos una característica. Tú es automático iniciar sesión para la próxima vez que entras, y luego carga el feed. Ahora mismo, es solo una alimentación global y saca todos los datos de la base de fuego y, uh, nuevo todo con estilo realmente bien. Y te pueden gustar los posts que podrías. A diferencia de las publicaciones estaban haciendo conexiones con cuentas de usuario, cosas así. Entonces todo se puede rastrear, y de hecho, vamos a cubrir todo el aunque estas son todas las características que ves aquí mismo. El código que en realidad hemos escrito permite ir más allá en el proyecto en sí. Puedes agregar más cosas que el marco está ahí para que lleves esto hasta donde quieras . Entonces, dicho
eso, va a ser mucho trabajo. Adelante y empecemos.
97. App: muestra la parte 1: descripción de la descripción de Firebase: Yo, ¿Qué pasa, mis píos? Rotos precios Mark, Deb pendientes dot com Y hoy vamos a hablar de Firebase Firebase es un
fantástico sistema propiedad de Google propiedad, apoyado y respaldado por Google. Entonces ya sabes, va a estar muy bien hecho. Y básicamente, pensémoslo como estoy en el programador de Iowa. Estoy aprendiendo cosas completamente nuevas, pero no sé Desarrollo web. No sé cómo hacer servidores. No quiero lidiar con la seguridad. ¿ Cómo manejo todo ese tipo de cosas? Necesito mi app para hablar con otros APS porque no puedes hacer una buena app sin hablar con un servidor porque necesitas datos pasados de ida y vuelta en Facebook tiene servidores. Ya sabes, Snapchat, todo tiene un servidor, pero no conoces el desarrollo del servidor, y lleva mucho tiempo y tienes un equipo, tienes un $1,000,000. También lo hacen el rescate. No Adam Firebase. Ahora firebase es un sistema que te permite obtener rápidamente tu web tu aplicación, hablar con la Web, hablar con su servidor. Y así tienen un sistema en sdk está en su lugar donde no tienes que construir tu propio servidor y no tienes que tener esas habilidades. Y así si eres de esas personas que quieren hacer una aplicación realmente genial o si quieres conseguir un trabajo y quieres hacer una app que va a impresionar a la gente, este es el Do it Puedes hacer cualquier cosa con esta K en nuestro caso, Uh, nuestra app, que es laderas sordas escaparate. De acuerdo, es casi como un Facebook. Haces post con fotos y cosas así y en una alimentación gigante, y la gente puede mirarlo para que puedas construir tu propio Facebook. Construyes tu propio twitter, estás en el chat. Aquí vas a aprender de algunos principios. Eso te llevará un largo camino. De hecho, si usas esta herramienta bien, vas a estar fumando. Lo estás haciendo muy bien. Entonces lleguemos a ello. Aquí. Se trata de Firebase goto firebase dot com. Hermoso sitio web, también, por cierto. Ama su amor, su diseño. Y aquí está incluso el ejemplo perfecto en su primera página aquí, están una especie de mostrando como un sistema de publicación de Facebook. Esto no es tan difícil de hacer con base de fuego Si estás construyendo tu propia espalda y servidor, estarías escribiendo mucho abrigo. Pero Firebase lo hace realmente fácil. Eso ofrecen algunas cosas. Una es el almacenamiento de datos donde realmente almacena datos. Y lo que es genial de Fire Base son sus conexiones basadas en socket. Y tal vez eso no significa nada para ti sobre lo que significa es que es tiempo real. Entonces digamos que envías un mensaje en una sala de chat. Lo que le va a salir a todos en todo el mundo instantáneamente va a conseguirlo. No se necesita trabajo extra. Entonces todo lo que hagas en base de fuego va a ser instantáneo, muy, muy rápido, muy, muy poderoso. Por lo que te recomiendo que revises el sitio web buscando todas sus características. Es gratis. De acuerdo, el nivel libre. Y de hecho, recibí hace dos días un correo electrónico de ellos diciendo que incluso aumentaron la cantidad de cosas que obtienes para el nivel gratuito. Reducen los precios. Me están dando mucho más bang por tu dinero aquí. Dijeron que querían que más gente, um, usando su plataforma. Entonces están haciendo algunas cosas grandiosas aquí. Sí dice Ah, ya
sabes, 100 100 dispositivos conectados es el límite, OK, en el plan libre que tal vez estás pensando 0 100 Eso no son muchos. Bueno, se
trata de 100 dispositivos simultáneos lo que significa que 100 personas no lo harían, simplemente no estarían usando tu aplicación al mismo tiempo, sino que 100 personas tendrían que hacer una solicitud como paquete de datos tendría que ser configurado en el exacta misma hora. Y entonces lo que estoy diciendo es, si fue un milisegundo antes o milisegundo después, estás bien para irte. Pero si 100 personas dijeran un paquete de datos a la misma hora a través de la app, entonces llegarías a tu límite, por lo que este podría ser el equivalente. Si recuerdo haber mirado bien los números, este podría ser el equivalente de 70 mil usuarios técnicamente usando tu at antes de que tengas que
empezar a pagar. Entonces no tan mal. Entonces lo que quieres dio es ir adelante y apuntarte aquí en el lado derecho, ¿de acuerdo? Y pon tu correo electrónico y contraseña para luego inscribirte. Ya me inscribí para mi cuenta. Entonces, una vez que te hayas inscrito, vas a poder iniciar sesión en un tablero, así que tira de mi panel hacia arriba y, uh, ve aquí hacia el lado izquierdo o aquí en el medio, donde sea que la nueva sección de aplicaciones es. Está bien. Y todo lo que necesitas hacer es hacer un nuevo nombre de aplicación solo se llamarán Dev Slopes Showcase . Está bien. Y como estás pasando por esto, no
podrás usar los mismos murales que yo porque, uh, tienen que ser únicos. Tú lo eres más. Eso elige tu propio nombre. Tienes lo que quieras. De hecho, no
tienes que nombrar a Europa así puedes hacer tu propio tema y todo para así qué, Estás Ellen aquí y haz clic en crear nueva app Y ahora tenemos una nueva app y eso es todo lo que tienes que dio eso fue fácil. Algunas cosas más puedes agregar colaboradores. Por lo que si quieres trabajar con alguien, puedes agregar un colaborador para enviarle un correo electrónico. Después se consignan en Entra en ella. Bueno, vas a estar particularizado de verdad interesado está mirando este
tutorial de cinco minutos . Está bien. De acuerdo, um y, uh, más en especial. Y eso sólo te da una especie de resumen, pero más especialmente vas a querer mirar que hice clic. Inicio rápido Comienza rápido aquí. Vas a querer mirar más. Especialmente, um, el inicio rápido del IOS. Está bien. Y, uh, te
va a decir cómo usarlo con IOS. Vamos a repasar todo esto. Um, pero, uh, es importante que aprendas a empezar a leer documentación. ¿ De acuerdo? No puedo enfatizar que basta hacer cuando termines con este curso. No confíes en Oh, tengo que encontrar un video para ello. Tienes que aprender lo que puedas de estos videos. Pero entonces también tienes que aprender a leer la documentación y empezar a pasar por aquí. Y también, si eres un lector de velocidad, Ok. Al igual que hacer las cosas muy rápido. Tienes que salir de ese hábito a yo era un lector de velocidad cuando empecé a aprender a programar . Simplemente paso por todo muy rápido cuando estás aprendiendo el programa, cada palabra importa. Lee cada palabra porque a menudo es una palabra o una sintaxis o línea que está desactivada. Eso está causando problemas en tus aplicaciones, Cosas así o tu comprensión. Entonces cada palabra es importante de todos modos. IOS Inicio rápido Fantástico. Resource tiene una guía sobre cómo hacerlo a fondo. Es decir, realmente lo toman de un mareado aquí. Es decir, no
pudieron Google no pudo haber brindado un mejor servicio. Está bien. Habla de todo lo que necesitas saber sobre cómo usar esto para IOS. tan geniales. Um, así que eso es visión general de firebase. Ahora mismo. Se puede utilizar para cualquier tipo de aplicación. Cualquier cosa que se te ocurra que necesita un back end. OK, puedes usar base de fuego para súper rápido, potente. Han hecho un trabajo malditamente bueno. Y te recomendaría que uses esto para todos tus APS que requieran un servidor back-end . Um, hasta que puedas aprender tus propias habilidades de servidor o conseguir algo de dinero para pagar a un desarrollador de servidores. Pero incluso entonces, base de
fuego es una opción fantástica. Limitaciones, inconveniente. Um, ninguno, verdad. O sea, vas a ver los precios. En realidad no es tan malo. Um, mira esto. Conexiones ilimitadas. Um, ¿qué tan genial es eso? $50 al mes y conexiones limitadas en un servidor propio, donde hospedas tu propio servidor y lo construyes. El hosting solo para 10,000 usuarios probablemente sea un precio similar, si no más. Esto es ilimitado y, uh, 10 gigabytes de almacenamiento. Eso es mucho. La mayoría de los servidores ni siquiera ofrecen eso. Por lo que en realidad están compitiendo con grandes nombres y empresas que lo hacen, como hosting y esas cosas. Entonces la flipside de la base de fuego es Tienes que construir tu propio servido con tu propio código. Voy a construir tu propia seguridad. Tienes que construir todo en medio. Entonces tienes que pagar hosting, y luego tienes que manejar mucho. Además de Europe Firebase, todo lo que tienes que hacer es solo configurar tus datos en ella, cómo quieres que se configure, y te harán el resto. Por lo que tal vez quieras elegir firebase mucho tiempo fuera. Um y ah, muy potente, Muy cool. Entonces sugiero que te familiarices realmente con, uh aunque no necesariamente sea en el futuro de Iowa. Es No puedes tener APS sin respaldos sin datos. No se puede. No se puede una buena app. Esos son esos días se han ido donde tú sólo sabes, vez en cuando hay un pájaro flappy. Pero de todos modos, he estado hablando mucho. Solo quiero darte algunas ideas sobre el mundo del desarrollo real de aplicaciones. Fire base es una herramienta fantástica para hacer algunas aplicaciones fantásticas. Entonces eso es todo para este video. Date de alta para base de incendios. Ponga en marcha el draft y pasaremos al siguiente video.
98. App: muestra la parte 2: conj. de Firebase: Yo, ¿Qué pasa, Mark? Pricier sordos pendientes punto com. Y hoy vamos a repasar de establecer una base de fuego para la autenticación, pudiendo iniciar sesión con correo electrónico y contraseña así como con configurar Facebook. Ahora, aún no
estamos configurando la aplicación. Solo estamos instalando base de fuego para que podamos implementar eso en la APP. Entonces, adelante. Ve a firebase dot com, inicia sesión en la cuenta lo que debiste haber creado. También debiste haber creado una, uh, una app bajo base de fuego aquí solo se llaman escaparate de pendientes sordas. Good and click manage app, y vamos a ir para iniciar sesión y apagar y justo aquí donde dice habilitar autenticación de correo electrónico y contraseña. Vamos a hacer eso en una envoltura. Nuestro ap va a tener correo electrónico y Facebook. Um, así que vamos a hacer clic en eso y luego también tiene cosa genial donde se
restablece la contraseña automática de consentimiento para ti. ¿ Sabías que para tu edificio, tu propio servidor, tendrías que escribir todo este código tú mismo. Qué dolor. También lo activa todo para ti de forma automática. Entonces voy a decir de Dev Slopes cuando viene el email incluso te permite poner el tema, Nunca
pones html personalizado ahí dentro. muy cool. Um, se ve bien. Lo que voy a hacer ahora es hacer clic en el toque de Facebook. Esto se guardará automáticamente. Está bien. De hecho, en realidad, una cosa más antes de hacer clic que la duración de la sesión la duración de la duración de un tiempo una sesión seguirá siendo válida. Bueno, no
queremos 24 horas cuando alguien inicie sesión. Dejémoslo para siempre por ahora mismo. No quiero lidiar con ello. Así que adelante y haga clic en Facebook y habilite la autenticación de Facebook. De acuerdo, haz clic en eso justo ahí. Ahora está buscando una app de Facebook. Yo d. Y también está buscando un secreto. Entonces vamos a pasar juntos y cómo configurar una aplicación de Facebook. Y vamos a revisar la documentación real juntos porque quiero
mostrarles que eso es lo que hago. Y necesitas empezar a hacer eso también. No siempre te limites a ir a buscar un video para resolver tus problemas. Tienes que ir a la documentación. Entonces del lado derecho por aquí, porque eso es lo que vas a estar haciendo en tu trabajo. camarilla. Conoce más. Voy a hacer clic derecho Abrir en nueva pestaña y me da instrucciones para empezar con autenticación de
Facebook. Primero necesitas crear una nueva aplicación de Facebook. De acuerdo, así que eso debería ser bastante fácil. Entonces voy a abrir esto en una nueva ventana y dejarme hacer algo de reorganización aquí. Voy a mover esto a la derecha, y voy a mover esto a la izquierda y OK, así que ya estoy conectado al Facebook, así que vas a necesitar asegurarte de que estás conectado al Facebook, y, uh, si eres de esos individuos que está muy firme en contra de no usar Facebook, Y sé que sé que estás ahí afuera, conozco a algunos yo mismo. No tienes que usar Facebook en esta app. Solo puedes hacer email y contraseña iniciar sesión si quieres. Puedes saltarte esta sección. Pero por cierto, si eres una de esas personas y estás haciendo que APS solo sepa que sólo porque lo que tú solo porque no te gusta algo no significa que al resto del mundo no le guste. Facebook tiene como un mil 000.000.000 de usuarios, así que sugiero integrar Facebook en el ábside donde tiene sentido porque te permite integrarte con redes existentes. Gana más dinero. Es una decisión empresarial inteligente. Puede ser al menos así sólo algo de comida para pensar. No me escuchas. Yo sólo soy un tipo. Tan solo un tipo en algún video diciéndote qué hacer. Y OK, por lo que necesitas crear nueva aplicación. Haga clic en el botón Agregar nueva aplicación. De acuerdo, hagámoslo. De acuerdo, Uh, agrega nueva aplicación. Y entonces este es el nombre de tu app o sitio web, por lo que puedes llamarlo como quieras. El mío se va a llamar Dev Slopes Showcase. Está bien. Y espacio de nombre. Es opcional. Entonces, no hagamos esa categoría. Vamos a ver aquí. Salud, juegos de
fitness, bebida
alimenticia. Um, ¿cuál es el nuestro? Educación o tecnología? Creo que la educación está bien. Está bien. Crear app. D selecciono todas las fotos mostrarían una cascada. Mm. Ok, interesante. Esto es nuevo. No, pero quiero hacer clic en la amapola. Ah, está
bien, bueno, somete. Se está cargando. Haciendo esta cosa. De acuerdo, así que lo hizo. Muy bien. Ahora lo que dice aquí a la izquierda en la configuración de tu aplicación de Facebook hizo clic en la pestaña de
ajustes del menú de navegación de la izquierda. Está bien. Siguiendo la guía, Por cierto, ni siquiera lo hice de antemano como lo estoy haciendo sobre la marcha aquí Así pudiste ver cómo realmente
pasas por los problemas y los resuelves. Entonces ve a la pestaña de avance en la parte superior y desplázate hacia abajo hasta la sección de seguridad. Y no hago esto por todos los videos. Justo en las que estoy tratando de enfatizar un punto, que es necesario aprender cómo leer el dedo del pie la documentación. Por lo tanto, haz clic en la sección de seguridad en la parte inferior de esa sección. Agrega https, este año base de fuego l a tu válido Oh, autor, redirige tus ojos. OK, así que encontremos eso correcto. Haga clic en esto y copie. Por lo que dice al fondo de esa sección. Válido. Ah, Auth, redirige tus ojos. Creo que va justo aquí. De acuerdo, La diferencia donde tenemos que hacer aunque, uh, cuando tú es todo. Una vez, uh, quiere
que se bloquee así. Tenemos que hacer, sin embargo, es conseguir son aplicación basada en fuego. Yo d. Está bien. Y así sigue adelante y vuelve a la base de bomberos y volvamos al salpicadero de nuevo. Y vamos a ver nuestra base de fuego. Esa es nuestra base de fuego u r l necesitamos una base de fuego. Ap I d Veamos aquí, uh, secretos. Creo que solo quiere nuestra aplicación real. No es gran cosa. Entonces, solo vamos a copiar esto. Copiar dirección de enlace. Ahí vamos. Creo que eso es todo. Creo que eso hará el truco para asegurarme. No, eso está mal. Mi aplicación firebase. Supongo que sólo quiere esta parte aquí. Entonces, sólo agarremos esa justicia que viene. Tantos. Sí, ese es el uno. Está bien. ¿ Estamos aquí? De acuerdo, un desvío corto. Y así lo que quiere es https y luego off dot firebase dot com slash b dos slash Y entonces lo que haremos es despegar el final ahí, así que corta tu base de fuego en slash off slash facebook slash call back. Eso es lo que queremos. Por lo que autor firebase dot com slash versión dos slash pendientes de muerte Dash mostró la nueva mi app. Volver a llamar de Facebook. Está bien. Haga clic en guardar cambios en la parte inferior. Dice Ok. Siguiente. Necesitas obtener tus credenciales de aplicación de Facebook. Cocinar en el básico para tener en la parte superior de la página. De acuerdo, Entonces, parte superior de la página básica. Todavía debes estar dentro de la pestaña de configuración hacia la parte superior de esta página, verás. Y tu app. D un secreto de app. Tu cuerpo se mostrará en texto plano, y podrás ver el secreto de tu app haciendo clic en este botón de mostrar y escribiendo tu contraseña de
Facebook. Copia estas credenciales de la aplicación de Facebook en la sección de inicio de sesión y apagado de tu de tu panel de
aplicación. De acuerdo, volvamos a la base de fuego. Está bien. App. Dashboard. Um, vamos a administrar la aplicación, va a iniciar y cerrar sesión, y ah, uh, Facebook. De acuerdo, así que una vez la idea de la aplicación de Facebook y el secreto de Facebook Así que aquí está la aplicación de Facebook. Yo d De acuerdo, aquí está el secreto. Está bien. ¿ Cuál es mi contraseña? ¿ Huh? Me está matando. De acuerdo, así que ahí tienes. Está bien, así que eso es seguro. Eso se ve bien. Está bien. Y Facebook requiere que tengas un email de contacto válido especificado Con el fin de que tu app de
mapa esté disponible para todos los usuarios, podrías especificar esta dirección de correo electrónico desde la misma pestaña básica algunos de cambios seguros aquí, y misma pestaña básica, uh, y correo electrónico de contacto. Supongo que esto es marca en dev pistas dot com. El tuyo será cualquier año que sea tu email de contacto es así que guarda los cambios. Y lo último que hay que hacer es dar click en el estado y revisar justo aquí y en la mano izquierda. Navegación. Cuando mueves el deslizador en la parte superior de la página a la posición sí ¿quieres hacernos app en sus características disponibles para público en general? Sí. Confirmar. Está bien. Y luego tú tu app en cada vida ¿necesitamos presentar? No creo que diga que necesitamos presentarnos antes de uso público. Voy a dar clic en política de plataforma solo para verlo No dice que tengamos que hacer eso, así que no creo que tengamos que preocuparnos por que sea estable. De acuerdo, entonces es cuando tu app está lista para ir cuando se necesita cuando todo está hecho. Entonces no vamos a hablar de eso ahora mismo. No dice nada de sumisión aquí, y eso es todo. Entonces lo que hemos hecho es que acabamos de configurar,
uh, uh, configuramos la autenticación de la base de fuego, correo electrónico, contraseña y facebook para que podamos empezar a registrar sesión de cambios íntimos. Ya es en meses. De acuerdo, entonces ,
sí, ya
podemos iniciar sesión con Facebook. Nos acaban de escribir el código para nosotros. Eso es todo. También has aprendido a hacer que Facebook APS se integre con tus aplicaciones en cualquier momento que hagas una app en la app IOS que necesita Facebook integrado. Si es diferente después de que tienes que hacer lo que acabamos de hacer aquí y siempre estás usando eso un secreto. Y eso es todo por ahora, y vamos a ser uno.
99. App: muestra la parte 3 - interfaz de usuario de la entrada: Hey, todos, Mark Pricier Deb Solbes dot com Y es hora de empezar a construir nuestra propia
aplicación de estilo Facebook . Y nosotros dos mi simulador aquí para que veas si como se va a ver después del final de este video. Aquí vamos. Pantalla de bloqueo, Y ahí está, luciendo realmente bien. No terminaremos la funcionalidad para iniciar sesión, pero vamos a conseguir toda la u I en su lugar. Obtendremos los controles personalizados. Te das cuenta de que aquí hay algunas sombras. Algún bonito diseño aquí, eso es todo el material personalizado. De acuerdo, no sale de la caja. Y IOS y tienes que escribir controles personalizados si la quieres. Absoluto genial. Entonces lo primero que vamos a dio es tirar de abrir un sitio web. Vamos a tirar hacia arriba en Google chrome, y voy a escribir en el diseño de materiales de Google. Este diseño de aplicaciones está inspirado en el material de Google diseñado ahora, tal vez algunos de ustedes por ahí pensando, ¿Cómo podría atreverse a poner material diseñado en una aplicación de IPHONE? Se trata de una aplicación para android. Bueno, me gusta Google. También me gusta la manzana. A mí me gustan los dos, y todavía me meto de todas partes para inspirar mi diseño. Entonces, um, sé que te estoy mostrando este sitio web aquí porque es fantástico. Te enseñan que has diseñado cosas. De acuerdo, entonces lo que digo es como cuando dicen que te enseñan, en realidad
dicen que esto es lo que se ve bien. Y esto es lo que no. Entonces, por ejemplo, si voy a componentes y goto botones, me
dice, Hey, deberías poner una sombra aquí. Es así como debes dejar tus botones si voy por aquí a la parte superior y elijo, um o es color de estilo. Te dice los diferentes esquemas de color y sus valores hexagonales para que puedas tenerlo bien ahí. Básicamente están diciendo,
Hey, Hey, esto es lo que se ve bien juntos. Entonces no tienes que hacer tanto pensando Así que, todos modos, estamos inspirando nuestro diseño fuera de esto. Por lo tanto, consulta este sitio web. Volveré a un por esfuerzo. Podrás iniciar tus propios APS
así
muy, muy poderosos, para que no tengas que hacerlo todo de arriba de tu cabeza. Lo que digo es que podrías hacer una app que se vea realmente fea alándola o viendo algunos de los videos que podrías ver en los otros cursos que hay en el mundo . O podrías pasar cinco minutos estudiando lo que Google piensa que se ve bien. Que, por cierto, han tenido diseñadores profesionales que se les ocurrió esto. Y entonces solo puedes basar tu app en ese pensamiento propio y con estilo como faras les gusta el contenido de la app pero un diseño hermoso. Por lo que son pequeñas cosas que puedes hacer para hacer hermosas aplicaciones, y eso es lo que puede marcar toda la diferencia en la tienda APP. Entonces vamos a utilizar el material de Google diseñado como inspiración. Está bien. Y también vamos a usar de Google,
uh,
la uh, fuente que Google usa para la mayoría de sus APS. Si vas a la tipografía bajo estilo, te dice qué fondos usan su uso roboto en algunas plataformas y otra la están usando uno llamado Noto. Y me gusta mucho Noto y así vamos a usar eso. Y entonces lo que vamos a hacer es que sólo vamos a hacer otra búsqueda de Google luchó contra Noto, y voy a dar clic a este de aquí el 2do 1 aquí. Y, uh, no
te bajes un poco de diversión porque hay todo tipo de idiomas diferentes. Pero este de aquí este Noto Sands, adelante y haga clic en descargar, y te va a dar algunas fuentes y un archivo zip. Y cuando los descargues, adelante y descomprimirlo. Ya lo he hecho. Entonces solo voy a seguir adelante y crear un nuevo proyecto de código X. Iremos a X Code. Voy a archivar nuevo proyecto, subirlo aquí para ti. Por lo que de nuevo, fui a presentar nuevo proyecto. Vamos a una aplicación de vista única, y voy a llamar a esto,
um, um, escaparate de
Dev Slopes. Um y yo sólo voy a poner el diablo aquí por mi bien y conocimiento. Y voy a poner esto en los documentos, asegúrate de poner un repositorio git. Esto es algo que vas a querer mostrar. Está bien, Impresionante. Entonces ahí está nuestra app y sigamos adelante y solo sumérgete a la derecha. Necesitamos Lo que necesitamos hacer es crear trayendo los pensamientos, y necesitamos traer algunas imágenes a nuestra aplicación. De acuerdo, entonces me gusta tener mis proyectos listos en un principio. Um, cada vez que recuerdo, al
menos así que haga clic derecho en su carpeta aquí y vaya al nuevo grupo. Vamos a decir,
controlador, controlador, eso va a sostener nuestros archivos de controlador un nuevo grupo que va a sostener nuestra vista, nuestros archivos de vista y un nuevo grupo que va a contener nuestro modelo A o datos. Está bien. Y luego también crear un nuevo grupo llamado Resource Is que va a sostener. Nuestro recurso está Bien, así que en el recurso están las carpetas donde vamos a poner nuestras fuentes. Y así ya tengo algunas fuentes aquí. Esto es lo que vas a conseguir cuando lo descargues. Vas a conseguir estas cuatro fuentes, así que adelante y simplemente haz clic en ellas y arrástralas a la carpeta de recursos es. OK, muy importante. Asegúrate de hacer clic. Agregar al objetivo. Está bien. Si no lo haces, no
lo incluirá en el expediente. Está bien. Si olvidaste dar click que tengo otra solución para ti. Esto es lo que dio Haz clic en el icono del Proyecto Azul aquí mismo. Después vas a construir ajustes. Perdón. No construir configuraciones. Las fases construidas bajan a copiar. El recurso de paquete está aquí mismo. Haga clic en el add pero y tendrá sus fondos ahí y luego siga adelante y selecciónelos y agréguelos. Tiene que estar en este paquete de copia. El recurso es Y eso fue lo que pasó cuando seleccionamos esa opción cuando entró. Tiene que decir, Hey, esto es parte de la aplicación. Vamos a seguir adelante y usarla Así que nuestras fuentes o en la aplicación? Y ah, tengo unas imágenes aquí a una para la pantalla de lanzamiento, una para el logo de código de pendientes sordas y otra para un logotipo de Facebook. Y de nuevo, puedes usar tus propios gráficos si quieres, pero estos te fueron proporcionados también, a tu edificio el mismo mapa que estoy construyendo. Entonces tiene sentido darte los gráficos, y estos en realidad van a ir en la carpeta Activos. Entonces, arrastrémoslos a la carpeta Activos. Está bien, se ve bien. Y luego vayamos a nuestra pantalla de lanzamiento y acabemos de configurar la pantalla de lanzamiento. Um, a veces es agradable solo gustarle realmente, hacer algo divertido, como tu pantalla de lanzamiento arriba y yendo. Entonces cada vez que estás construyendo tu app en tu probándola, ves tu logo en tu cara, y estás como,
Wow, Wow, me siento tan bien con esto. Esto es impresionante. Y a veces es agradable poner un poco de chapoteo justo en el principio para darte emoción y motivación. Teoh construye el APS y así hay una imagen. Va a arrastrarlo aquí, ponerlo en el medio. Voy a cambiar esto por logo apilado. Y por supuesto, está estirada Will irá a fit de aspecto. De acuerdo, Y entonces solo quiero decidir qué tan grande lo quiero. Creo que algo así probablemente sea bueno que probablemente se vea bien en todos los tamaños de pantalla así. Entonces voy a seguir adelante y conseguir un fijo con y una altura fija. Cuando añadas esas dos restricciones, solo
hago clic en el botón pin aquí. Hice clic en el menú de alineación y luego vamos horizontalmente y contenedor y virtualmente y contenedor como faras cómo va la alineación. Entonces ahí vas en el medio, luciendo bien. Ni siquiera voy a probarlo porque sé que va a quedar bien en la vista previa. Entonces vayamos al storyboard de Maine. Y el objetivo, por
supuesto, es conseguir que nuestra app se vea así por aquí. Y eso es realmente genial. Y así, por cierto,
uh, uh, lo que hice por esta inspiración en realidad se fue Teoh Google, Google arriba nuestro Google ¿Qué fue? ¿ Una app de música? Escribí la aplicación de música de Google y fui a la tienda de juegos aquí. ¿ De acuerdo? Y lo que hice fue que yo era como él. ¿ Qué? Se ve bien. Lo que no se ve bonito. Y así empecé a mirar a través de algunos de estos APS aquí, y acabo de empezar a obtener algo de inspiración, como por ejemplo flotando menús y cosas así que me gustaron mucho. Y así, ya
sabes, Entonces, por ejemplo, ver cómo mi tengo este fondo rojo aquí mismo o este es un fondo azul, y luego como que cuelga sobre el borde. Tomé por completo esto derecho del sitio web como, esto se ve realmente bonito. A mí me gusta la idea. A mí me gusta el estilo. Uh, y así es como construyes mucho de mis APS. Y así se ven fantásticos. Um, y solo te estás inspirando. Es decir, no
estás copiando la app en sí, pero de todos modos, por
eso me inspiré. Entonces usa ese tipo de métodos y estilos. ¿ Tu construcción es tu app? Hacemos mucho mejor a Europa. Entonces Ok, así que aquí está nuestro tablero principal de cuentos. Adelante y pongamos esa vista roja en primer lugar. Y es sólo una vista. Es literalmente sólo de ti. Eso es todo lo que es. Entonces es Hey, ¿dónde está? Eso es correcto otra vez. ¿ Tienes? Ahí vamos. OK, así que sigamos adelante. ¿ Y qué pasa ahí mismo? A mí me gusta. Me gusta ahí. Voy a cambiar el color a ese rojo. Y eso Leer, si quieres es F 4511 e Vale, eso me queda bien. Entonces voy a seguir adelante y fijarlo a la parte superior, apagar los márgenes constreñidos debido a la izquierda y a la derecha, y vamos a darle una altura. Por lo que siempre se va a mantener esa altura, y siempre envuelve dos lados de la pantalla. Se ve realmente bien. Está bien. Y entonces ahora ¿qué más necesitamos aquí? Bueno, sigamos adelante y pongamos esta vista aquí porque creo que eso es lo que tenemos que hacer a continuación para realmente tener una idea de cómo va a quedar en nuestras aplicaciones. Entonces eso es sólo otra vista de tu ojo, y yo solo lo estoy mirando aquí, Así que vamos a seguir adelante y ponerlo justo por ahí y arrástrelo justo por aquí. Los márgenes van a estar en su lugar. A mí como que me gusta. Voy a seguir adelante y lo voy a fijar desde la izquierda. Bennett de la derecha. Voy a fijarlo desde arriba y luego le voy a dar un no no con sólo la altura. Perfecto. Entonces está justo ahí. Y por supuesto, es
Es por eso y así es un poco difícil de ver. Entonces si miras el fondo, tenemos un gris muy, muy claro. Y de nuevo, acabo de mirar el estilo de Google, y esa es una de las recomendaciones. Entonces si hago clic en mi vista de fondo aquí, en realidad
puedo cambiar el color de fondo a ese
muy, muy gris claro, que creo es éste e creo que eso es pensar. Eso es demasiado oscuro. Creo que puede ser éste y es ISS y este color aquí es F tres F tres F tres tres. No es gran cosa. Eso se puede cambiar ahí. Entonces ahí está. Se ve, estamos bien. Ya tenemos algo que está empezando a juntarse así, realmente tenemos tres colores en nuestra app. Ya se ve bonita, y es simplemente increíble cómo ah, un poco de pensamiento puede ir tan largo camino para hacer que algo se vea genial. Y, uh, lo que quiero hacer es construir una vista personalizada, conseguir este dedo del pie, tener una esquina ligeramente redondeada y también tener ah, una sombra. Si notan aquí hay una sombra una sombra aquí y una sombra aquí. Y si miras,
um, um, el sitio de Google Sweb aquí, realidad
hablan de eso en, como, o está en diseño? Creo que son sus páginas web teniendo problemas aquí. Ahí vamos. Disposición. De todos modos no vamos a seguir. Está en la página web. Se puede buscar y se habla de sombra y cómo configurar. Está bien. Fantástico sitio web para eso. Um, ustedes, como, ya se
callan con el Google? Está bien. Está bien. Yo sólo los estoy ayudando chicos. No me grites. Sólo te estoy enseñando lo que sé. OK, así que eso se ve bien. Creo que se va a poner. Probablemente simplemente bien. Entonces lo que queremos dio es que realmente queremos crear una clase personalizada. Vamos a tener una clase personalizada de la que heredan nuestros puntos de vista, por lo que no tenemos 21 es que podemos lograr este efecto sin una clase personalizada. Y para es, no
queremos hacer eso desde controladores como. Imagina si tuvieras un controlador de vista y lo hiciste. Y así, por tus puntos de vista que querías hacer yo soy outlets en todos estos. Para que pudieras acceder a las propiedades del radio de la esquina de la luz y cosas así y hacerlo todo desde tu vista. Control. Eso es mala práctica, acuerdo? Sería mala práctica tener un controlador de vista y tú estás haciendo que yo estuviera fuera. Vamos sólo para que puedas estilo las cosas, k malo, mala práctica, Qué es buenas prácticas crear vistas personalizadas y luego simplemente cambiar la clase de la vista. Por lo que vamos a hacer clic derecho en su vista aquí, vaya al nuevo archivo y vaya a la fuente. Y lo que queremos es clase de toque Coco y queríamos heredar de ti. Yo veo. Ahora vamos a llamar a esta vista de material una reunión con cero diseño, y en realidad sólo va a tener nuestros cambios de estilo en cosas como esa. Así que haz clic en Siguiente y luego crea crear. De acuerdo, solo borra este código de placa clave aquí y adelante y llama al despertar de la
función Ned . Lo vamos a anular. Esto se llama de nuevo cuando se carga la interfaz de usuario desde el guión gráfico. Y entonces qué? Nosotros queremos hacer en contra. Queremos poner una sombra a la izquierda a la derecha y en la parte inferior, y queremos dar la vuelta ligeramente a las esquinas. Y eso nos va a dar el efecto realmente bonito que estamos buscando. Por lo que te pierdas un radio de esquina de punto de capa, está agarrando la capa. Propiedad de mi vista es 2.0 y luego capa de color de sombra de punto. Y en realidad, creo que aquí necesitamos un bonito color gris, en realidad, y no tengo el color para eso. Por lo que necesitamos crear eso. Por lo que quiero ponerte también en el hábito de empezar a usar constantes, cosas que son globalmente accesibles y reutilizables por lo que no tenemos que seguir reutilizando cosas y colores es una gran cosa tener en archivo constance. Por lo que tu APP puede tener un tema, una serie de colores que usas en tu app y que te refieres en lugar de simplemente
hacerlos en código en todas partes. Entonces lo que vamos a dio es crear una nueva carpeta, Nuevo grupo. Estoy haciendo clic derecho en la carpeta principal, y vamos a llamar a este Util corto de utilidades y en esa carpeta, hacer un nuevo archivo y cambiarlo a archivo swift y lo vamos a llamar constantes, ¿de acuerdo? Y lo que vamos a hacer es no vamos a poner una clase aquí, ¿de acuerdo? Porque eso le va a dar un alcance de lo que puede acceder Si simplemente dejamos este archivo abierto así, significa
que todo lo que ponemos aquí es accesible globalmente. Todos los lets,
las constantes que ponemos aquí van a ser accesibles globalmente. Y eso es lo que queremos. Queremos que cualquiera pueda acceder a esos. Entonces sigamos adelante. Y color creador Dejar que el color de la sombra es de tipo C G float. Tiene que ser un flotador, no un doble, porque eso es lo que toma la propiedad de capa e igual a 1 57.0 Y eso está dividido por 2 55.0 Ahí vamos, OK, Y oh, y el flujo CG es parte de ti Me gusta. Por lo que necesitamos importar. Uh, ¿te gusta? Está bien. Y si recuerdas de lecciones anteriores, si quieres obtener el valor de color adecuado, tienes que tomar el valor del mismo y tienes que dividirlo por 2 55 OK, porque estamos tratando de obtener ah valor entre 00 es negro, 0.0 es negro y 1.0 es blanco. Y así es como obtienes valores en el medio. Básicamente, Um Vale, así que ese es el color de la sombra. Y así lo que podemos dio es volver a nuestra vista de material y ahora podemos darle un color de
sombra real hablando, Di color de sombra igual a ti color de ojos en vamos a hacer Rojo, verde, azul y Alfa y básicamente estamos va a darle Esto son valores RGB, ¿verdad? Y así solo estamos haciendo un color para rojo, verde y azul porque es gris y pasto típicamente o el mismo en cada uno, dependiendo de lo grande que tengas tan sombra, color, sombra, color, color sombra Y para el Alfa, hagámoslo 0.5 por significado medio opaco. Y lo último que tenemos que hacer es agarrar la propiedad stg color de este color tan sombra. Bueno, no me está mostrando por alguna razón, pero el color de la sombra es un Steve. Caray, colores todo lo que tienes que hacer es escribir punto c g color. Está bien. Y, uh, entonces te quitas tu color de crédito de lo que agarras la propiedad de color del asiento fuera de ella. Y así es como estableces tu color de sombra. Um, eso es genial. Y ahora eso es para el color de la sombra. Ahora necesitamos establecer la opacidad de la sombra. Entonces sombra Oh, pasaje e es igual a 0.8 Bueno. Un poco menos que el radio de sombra de lunares guarida completo, totalmente opaco. Esto dice Reiter. El radio azul en puntos utiliza una corrida de la sombra de retardo. ¿ Significa cuánto? ¿ Cuánto quieres desdibujarte? ¿ Cuánto espacio quieres cubrir con el desenfoque? Diga 5.0. Es un tamaño realmente bueno. Y ah, compensación
de sombras. De acuerdo, este es el desplazamiento por debajo del acceso X. ¿ Y por qué acceder? De acuerdo, SCG lado C o igual a C g tamaño make. Y así el ancho pensar en esto con es el X Access K qué ancho lo quieres. Ahora piensa en esto, o estoy empezando de par en par. Pero el desplazamiento ¿cuánto quieres compensarlo en el eje X? Correcto. Y eso es lo que el Eso es lo que el con está ahí. Entonces quiero que pienses en esto. Queremos mostrar sombras a la izquierda y a la derecha. Bueno, si fuera a poner un con de digamos a él me daría una sombra a la derecha de a Y la altura va a bajar a lo más alto Podría ser lo que queramos Pero queríamos mostrar en ambos lados. Entonces lo que necesitamos hacer es ponerlo en cero para que no vaya a la izquierda ni a la derecha. Pero entonces hacemos ese radio de sombra un poco más grande. Por lo que se expande más allá de las fronteras cuando era demasiado pequeño. El radio no pasaría más allá de los bordes porque teníamos a cero a la izquierda es tu a los derechos. Tenemos que hacer el radio más grande. Eso puede ir a la izquierda y a la derecha. Entonces 0.0, no
queremos que vaya a la izquierda o a la derecha justo ahí. Por lo que está en ambos lados y la altura se mantendrá 2.0. Entonces así es como se va a ver. Golpéalo. Entonces esa es la vista material. Vuelve a tu storyboard principal. Haga clic en él y siga adelante y cambie la clase por aquí en la parte superior, el inspector de identidad, y cambie eso también Vamos a escribirlo. Es vista material,
¿de acuerdo? Y sólo vamos a ejecutarlo. ¿ De acuerdo? Entonces esto se va a ir. Este es el viejo que vamos a conseguir. Vamos a deshacernos de este tipo ahora, ¿de acuerdo? Y voy a crear. Ahí vamos. Eso es perfecto. Vamos a crear. No podía ejecutarlo. Aguanta, sostén el teléfono. Aquí vamos. Probemos esto otra vez. Seleccione, uh, iPhone seis. Ahí vamos. Construir y ejecutar. Casi pruebo en cualquier momento estoy haciendo algo nuevo o algo realmente genial solo para poder mantenerme motivado a veces codificadores codifican mucho tiempo sin mirar sus resultados. Ninguno de los que producen bichos. Se ve bonito. Eso no es muy motivador. De acuerdo, Entonces pudiste ver la sombra ¿no es genial? Al igual que con sólo unos minutos ya estaban construyendo cosas
realmente, realmente cool. Entonces me gusta. A mí me gusta. A mí me encanta. Entonces eso es realmente bueno. Estamos haciendo progresos fantásticos. Entonces tenemos que hacer ahora es conseguir una etiqueta por aquí. Pero aún no estamos listos para usar nuestros fondos. Si recuerdas bien cuando estamos usando fondos en el pasado, tuvimos que hacer algo en nuestra lista de propiedades para decir que estamos listos para usar esas fuentes para la aplicación. Así que adelante y entra en tu lista de info dot p aquí mismo. Haga clic en un plus, pero en el muy inferior. Y para empezar a escribir las fuentes de palabra y eso surgirán sus fuentes proporcionadas por la aplicación . Acabo de presionar Enter y ahora es una matriz con una flecha desplegable. De acuerdo, haga clic en el doble clic donde dice cadena por aquí. Y tenemos un tipo en el nombre exacto de todas las fuentes que estamos usando en su apso Noto Sands dash bold dot TTF click en el signo más justo ahí. Vamos. Ahí vamos. Noto Sands el audaz punto cursiva TTF Vale, Noto Sands dash italic TTF y casi estamos ahí Noto Sands dash regular dot TTF Vale, así que nuestro foster en la aplicación y eso se ve bien. Entonces lo que quiero hacer ahora es volver a nuestro tablón principal de cuentos y sigamos adelante y,
uh,
pongamos uh, nuestra etiqueta ahora así que l a b para etiqueta y vamos a arrastrarla justo ahí. Por alguna razón, no me está dando alineación a su lado. Eso está bien, sin embargo. Y uh, vamos a llamar a esto, um ¿Qué? Lo que queremos decir en nuestra en nuestra etiqueta aquí. Decir firmar en slash. Date de alta. Está bien, ve. Y quiero que esto sea audaz Y sólo quería ser mi costumbre. Mi diversión. Entonces voy a hacer clic en la t, cambiarlo a personalizado cambiarlo de Helvetica nuevo y notado. Noto se queda ahí ahora Aviso cómo no te dio cuatro opciones. En realidad los pone a todos juntos, y son como opciones de estilo diferentes, lo cual es realmente genial. Por lo que Noto Sands audaz. Y eso se ve bien, excepto por el hecho de que queremos que sea blanco. Entonces cambia el color por el color blanco que eso se ve bonito. Adelante y alinémoslo. Lo que podemos hacer es seleccionar esto y la vista del material. Entonces es como esta etiqueta y la vista aquí, y en realidad, vamos a asegurarnos de que estamos haciendo lo que se supone que estamos haciendo. Ah, ya veo. Bueno, en realidad, no
podemos alinear esos de aquí arriba porque no están en el mismo subconjunto que no queremos. No queremos romper eso,
en realidad, en realidad, así que sabemos que esto es 20 desde el borde, así que solo hagamos esta etiqueta aquí mismo. Sigamos adelante y hagamos de éste 20 de la izquierda, que es donde está ahora mismo. Y, uh, 35 de arriba está bien. O podríamos Vamos a ver aquí. Sí, hagámoslo desde arriba. Y vamos a seguir adelante y darle una altura en un con lo hará fijo ahí. De acuerdo, así que eso es pin. Ahora, eso se ve genial. Ahora, lo que queremos dio es poner el pequeño logo de código. Yo vengo por allá. Esto es sólo por algún valor extra a las cosas visuales de México. Y, por
supuesto, mostrar mi cool logo para que el mundo lo vea. Hagamos esto un poco más pequeño. ¿ De acuerdo? Voy a seguir adelante y, uh, dijo una imagen y esto va a ser logo de icono de código, y voy a decir fit de aspecto y no me gusta. Teoh dos grandes. Ahí vamos. Y eso es mirar. Está bien, sólo muévelo un poco. Sólo lo estoy echando un ojo. se puede hacer a veces. Si estás trabajando con un diseñador muy anal, que puede ver que va a ver una cosa que es un píxel a menudo vendrá a ti. Tenía un tipo como éste, ¿dices? Noté que esto está a un píxel apagado en el acceso horizontal. ¿ Se puede arreglar eso? Sí, supongo. Wow. Uh, vamos a darle un ancho y una altura. Hacerlo fijo. Y pongamos 20 de la derecha y, uh, 28 de arriba está bien. Está bien, así que no se va a ningún lado. Está bien. Y, uh, eso se ve bien. Entonces queremos ahora está aquí dentro. Queremos un botón de Facebook, ese botón sólo una imagen, y luego registro de Facebook real. Y pero porque vamos a dar la opción de iniciar sesión con Facebook, así que ahí está seleccionado. Entonces sigamos adelante y Dragon Image vista aquí. ¿ De acuerdo? Y por supuesto, siempre
lo hace todo también. Grandes. Una especie de molesto. No va a mentir un poco molesto. Cambia la imagen a ajuste de aspecto de icono de Facebook. Está bien, eso se ve bien. Y entonces lo que vamos a hacer es crear un botón, uh, para nuestro facebook log in. Y tal vez estás pensando que eso no se parece en nada al botón que queremos es
cambiar la redacción en él. Bueno, no
lo hace. Entonces, ¿cómo podemos hacer que se vea como el otro? ¿ Recuerdas cómo tenía el botón? Um, linda sombra, también. Y tenía un poco de buenas esquinas redondeadas en Fue bastante guay, así que Bueno, primero, lo que vamos a hacer es darle un color de fondo. Haremos eso aquí mismo. Y aquí está el azul que queremos. Es lo mismo que este azul de aquí. Y si quieres ese azul, es uno e 88 e cinco. OK? Y por supuesto, necesitamos cambiar el color del texto, el blanco
del dedo del pie y el color del sistema. Nuestro sistema peleó hasta la costumbre. Y luego cambiémoslo a dónde están,ya
sabes, ya
sabes, arenas
del dedo del pie y luego bolos. A mí me gusta. A mí me gusta. A mí me gusta. Esto es hacerla un poco más ancha aquí. Está bien, eso se ve realmente bien. Pero por supuesto, no
es el estilo de la manera que queremos. Se inicia. Vamos a seguir adelante y crear, um, otra clase personalizada aquí mismo. Nuevo archivo. Vamos a llamar a esta clase do Coco touch aquí y en vez de ti, tienes que hacer botón compra y vamos a llamar a este botón material, Ok. Estamos haciendo algo muy, muy similar. Um, lo que podemos hacer es ir a nuestra vista material y copiar y pegar su abrigo. Ahora, tal vez estás pensando, es esto realmente lo mejor para Dio? Um, estamos como copiando y pegando código. Probablemente haya una mejor manera de reestructurar su porque nos estamos repitiendo. Por lo que hemos generado módulo hasta un nivel. Pero por el bien de esta clase y por el bien de aprender esta lección, no tiene el más absoluto sentido entrar en esos pequeños diminutos detalles. Esto sigue siendo muy efectivo. Y así lo voy a copiar y pegar por ahora mismo, y creo que se aplicarán todos los ajustes actuales. Entonces vuelve a tu storyboard principal. Tenemos nuestra costumbre. Pero ahora cambia tu botón aquí a la clase sobre el inspector de identidad aquí a
botón material . ¿ De acuerdo? Y note cómo no lo refleja aquí en el constructor de interfaces. Eso está bien. Por ahora, realidad
hay una manera en el futuro cuando estás mejorando en el desarrollo de IOS que realidad
puedes, en lugar de crear solo el código personalizado aquí, realmente creas tus vistas en archivos zip, los archivos ex I b y luego tú lo que haces es entrar en tus puntos de vista aquí y declaras clases. Yo seré nable de diseño. Y así si tienes esto y el archivo de interfaz de ID asociado, realidad actualizará tu guión gráfico en tiempo real para que puedas ver cómo se va a ver . El final resulta. Se necesita un poco más de configuración. Pero si estás construyendo una gran brecha y estás harto de ver cómo se ven las cosas antes de su estilo en código, puedes hacerlo y es realmente, realmente genial. Entonces tenemos estos dos artículos aquí. De acuerdo, Entonces lo que queremos dio es usar nuestros prácticos puntos de vista de pila de dandy que nosotros,
uh,
hemos uh, aprendido utilizados a lo largo de este curso. Entonces vamos a seguir adelante y seleccionar el icono de Facebook y el botón de Facebook y luego hacer clic en el botón de vista de
pila aquí en la parte inferior, y simplemente lo puso en una vista de pila horizontal. Ahora, lo que quiero dio es que quiero conseguir quiero poner restricciones de esta pila para que estés dentro de esta vista exterior para que no me deje re tamaño si tú obviamente has visto esto antes, pero no puedo realmente redimensionarlo aquí Así que conseguí. Tengo que cambiar el tamaño de una vista de pila con restricciones. Entonces lo que quiero es en lugar de ocho de izquierda, quiero 20 en lugar de 353 de derecha, quiero 20 significado. Yo quería ir por todos los bordes allá y desde arriba, digamos 10. Ese fue el de abajo, pero diremos 10 de arriba y 10 de abajo y eso lo estirará para nosotros. Ahí vamos. Sí, es como si te hubieras dado cuenta de que las líneas del guión aquí significa que así se va a ver cuando corre porque lo movió, Podríamos simplemente moverlo aquí. Entonces se trata de dónde se supone que debe estar. Está bien, eso se ve muy bien. Son noticias apiladas fuera, sin embargo. Bueno, ¿qué? Quiero cambiar la configuración a por aquí? Podría este pequeño ícono por aquí el inspector de atributos, lo que quiero hacer es sólo cambiar la alineación en él o ah, ver aquí El centro bien, realidad
no se ve bien, Senador y siento que sí quiero poner algunos espaciado, sin embargo. Pongamos un espaciado de 40. Gracias. Eso no es muy malo el espaciado de 40. En realidad no necesito cambiar mucho. Aquí. Tres. Corre y ver. Entonces lo que parece. A ver cómo se ve. Qué bonito logo. ¿ Quién es ese loco? ¿ Cómo? Es como, ¿qué? No se ve perfectamente genial aquí. Pero cuando vas por aquí, se ve fantástico. Mira eso. Entonces lo que hemos hecho hasta ahora es que tenemos nuestra sombra aquí en la vista exterior. Ligero redondeo de esquina. De acuerdo, ¿
Notan cómo? No hay esquina masiva en solo leve. Y luego leve redondeo de esquina en el botón con sombras en el botón. Tenemos nuestro logo aquí arriba. Tenemos a nuestros técnicos aquí arriba y no mucho tiempo. Periodo de tiempo. Hemos empezado realmente a darle estilo a esta aplicación, así que sigamos adelante y pongamos aquí
el, uh, el correo electrónico y la contraseña. Así que haz clic en tu vista de material justo aquí y solo haz comando C comando V en el copiado se
apilan dentro. Ya no necesitamos eso, pero yo sólo quería hacerlo más fácil copiando y pegando aquí, así que vamos ah, sí, ponlo justo ahí. Ya está en los márgenes izquierdo y derecho. Eso es bueno. Y pon aquí abajo y pongamos aquí tan bien la alineación de Thea. En primer lugar, hagamos clic en la regla, asegurémonos de que no esté cargando nada malo, Y es No necesitamos una altura en este tipo. Entonces borra esa altura. Doy clic en la regla. Eliminé su altura, la altura arrastrada de la anterior copia y pega. Eso hubiera sido un problema donde estás, no
puedo entender por qué está forzando mi estatura. Y luego te das cuenta en algún momento del tiempo que esa restricción estaba ahí escondiéndose. Entonces digamos cero desde la izquierda, porque sí tenemos márgenes encendidos cuando conocemos los márgenes. 20 0 de la derecha, 20 de abajo. Y también queremos decir 20 desde arriba. Hazlo perfecto ahí. Maravilloso. Y en realidad puedo sólo una justicia para cumplir con la Línea Naranja. Entonces simplemente no está ahí en súper molesto. OK, entonces ahí vamos. Tenemos la vista. Este también va a tener sombras porque la clase se arrastró, vale. Y entonces lo que queremos hacer ahora es poner otra etiqueta aquí que diga correos electrónicos log y slash
regístrese . Por lo que sólo copio ese comando ver. Da click aquí, Comando V. Voy a cambiar el color a, Digamos oscuro, Genial. Eso les gusta y se ve bien. Yo quiero ponerlo aunque 20 desde el top 20 desde el de la izquierda. Es bueno mantener ese margen consistente. Y cambiemos el texto. Acabo de hacer doble clic en ese email log in slash, regístrate, ok. Y veamos las restricciones. Vamos a querer deshacernos del con porque acabamos de cambiarlo a menos que estuviéramos los dos solo para estar seguros y hacer clic en el botón pin aquí y ah, establecer nuevo con una nueva altura. Aquí vamos. Ahora está haciendo lo que se supone que tiene que hacer y queremos a este tipo vamos a decir 20 de arriba y 20 de izquierda. Perfecto. Está bien. Y observa que las cosas anaranjadas decían:
Oye, Oye, no
estás donde necesitas estar, donde va a estar en tiempo de ejecución. Entonces solo lo estoy moviendo para deshacerme de esas líneas naranjas. Mira, cada vez que, uh, la ciencia naranja desaparece cuando es cuando la tienes posicionada exactamente donde va a estar en tiempo de ejecución. De acuerdo, entonces ahora lo que necesitamos son algunos campos de texto bien. Y nuestro texto construido también tiene un estilo especial,
también , porque el Defoe on se ve un poco feo y en realidad tampoco va con el diseño que
buscamos . Es decir, este no es ese gran look, Así que cambiémoslo. Hagámoslo mo Betta. Así que haz clic en el estilo de borde por aquí. No queremos que tenga ningún borde a través de al menos a través de la interfaz Llegó Builder y vamos a establecer este color del fondo en el mismo que el fondo de la vista. Se ve realmente bonito. Yo sólo estaba probando con él y simplemente se veía muy bien. Entonces vamos a darle una oportunidad. Color incorrecto. Ese es el color de la fuente. Queremos desplazarnos hacia abajo más hasta el fondo. Ahí vamos. Y, uh, no, eso es demasiado oscuro con el color equivocado. Es ah, creo que es este tipo,
ese es el uno. Es Thea f tres f tres F tres mantenido, así que ya se ve cool. Adelante,
retrocedamos y cambiemos la diversión a los habituales de Noto. Bien. Y si quieres alguna vez probarlo, solo
puedes escribirlo ahí y se ve un poco demasiado negro. Seamos consistentes y usemos que el gris oscuro se ve mucho mejor. Um, bien, eso está bien. Y no me gusta cómo te das cuenta de cómo va el texto hasta la izquierda. No hay espacio ni ahí. Eso es malo. Nos quitó eso cuando nos deshicimos de la frontera, que es algo cojo. No sé por qué hacen eso, pero eso el texto va a estar demasiado cerca de la frontera. Y estoy seguro que el lugar bien, va a
haber la misma forma dirección de correo electrónico y lo es. Entonces sigamos adelante y arreglemos esto primero antes de crear otro campo de texto. Vamos a conseguir este estilo único. Entonces eso es genial. Todavía otra vista personalizada, y ésta se va a llamar Bueno, vamos a hacer click aquí primero. Este eres yo campo de texto y vamos a llamar a este campo de texto material. Y por cierto, hago esto todo el tiempo en mi programa. Eso es lo que me pone por encima de muchos otros programadores es porque me tomo el tiempo para hacer absolutamente real agradable. Es decir, piensa en esto. Vas si entras en una entrevista de trabajo contra otra persona y aunque estés en el mismo código. Una app se ve fantástica y una app parece que solo usan todos los controles personalizados que te
zapped crees que van a escoger? Es un no cerebro. No más cerebro. Confía en mí en este click next click create. Acabamos de crear un campo de texto personalizado. Ahora, el campo de texto, desafortunadame
100. App: muestra la parte 4 - inicio de Facebook: Oigan, todos, Mark. Pricier sordos jabones dot com Y en el último episodio emocionante de Building Really cool, frickin app, hicimos esto. Muy impresionante. Ahora no hay realmente ningún código haciendo mucho, como se puede decir, pero lo que hicimos fue poner a Thea, hacer el diseño aquí, hacer un look realmente bonito. También creamos algunos botones de material. Seguiré adelante y lo ejecutaré aquí mientras te estoy explicando creamos algunos botones de estilo material. Cuando digo material, me refiero a la filosofía de diseño de materiales de Google con sombras y los esquemas de color y cosas así. Por lo que creamos aquí algunos controles muy personalizados para que nuestra app sea extra hermosa. Um, acredite una pantalla de lanzamiento, como se puede ver. ¿ Qué? Ese maravilloso logotipo. Y ahí está. Tenemos sombra. Tenemos logo. Tenemos más sombra aquí. Incluso hemos creado campos de texto personalizados. Muy bonito. Si quieres que los aps sean de marca, si quieres que los abs se vean realmente bonitos, la
mayoría de ellos tienes que usar controles personalizados. De hecho, todos los mejores APS lo hacen, por lo que solo debes meterte en el hábito de hacerlo. Haz que tus abdominales sean más mejores. También teníamos que fuentes personalizadas . Entonces lo que queremos hacer hoy está en nuestra pantalla principal de inicio de sesión. Queremos darle al usuario toe la capacidad de iniciar sesión con Facebook. Y así vamos a hacer un par de cosas. Una es que vamos a instalar el sdk base de fuego. De acuerdo, um y entonces porque eso necesita interactuar con Facebook y también vamos a instalar el sesión de
Facebook y el core esti case eso week para que firebase pueda hablar con Facebook. OK, así que no es un trato demasiado grande. Entonces lo vamos a hacer es ir a Vamos a abrir un navegador aquí. Vámonos. Base de fuego. Por cierto, te
estoy mostrando todo esto en lugar de solo darte los pasos sobre cómo hacerlo Así podrías saber ir a estos sitios web y descifrar estas cosas. La mayoría de la gente no hace esto, y te pone en desventaja y aprendiendo si no sabes cómo navegar los sitios web y encontrar las cosas que necesitas encontrar, es En realidad es bastante entrenamiento lo que tienes que enseñarte en fin de ponerse bueno en eso. Entonces aquí está nuestra app que creamos. Debiste haber creado tu app ya está bien por ahora. Y sigue adelante y solo tienes que hacer clic en la app administrar. ¿ De acuerdo? Y vamos a pasar a cerrar y cerrar. No, ya
tenemos configurada aquí la autenticación de correo electrónico y contraseña. Eso está bien. Ve a Facebook. Entiendo. Ya tenemos una app de Facebook. I d y APP secreto. También debiste haber hecho
esto . Entonces aquí mismo, hay un botón aprender más. Justo a la derecha. Haga clic en él abrir en una nueva pestaña. ¿ De acuerdo? Y así habla de configurar tu aplicación de Facebook, y luego tiene algún código sobre cómo hacerlo. Pero tenemos que hacer primero es realmente conseguir, um necesitamos seguir el tutorial de Facebook para, um antes de seguir esta guía. Ah, la guía de Facebook para implementar el SDK. Entonces, ¿qué es Debilitar Dio? Y de hecho, vamos a dar click. Hazme un favor muy rápido. Haga clic en esta pestaña IOS justo aquí. Ahí vamos y vamos a la guía,
y, uh, uh, no
vamos a la autenticación de usuarios. Ahí vamos. Entonces estamos bajo IOS estaban bajo web. Queremos autenticación de usuario y aquí está. ¿ Ves éste? Ese es su Facebook Ok otra vez. Guía IOS Autenticación de usuarios Facebook. Esto es correcto. Haga clic en esto y abra en una nueva pestaña. Esta es la guía que realmente nos importa. Ahí vamos. ¿ Es como qué? Nada. No se veía demasiado bien. Esto es justo aquí. Entonces configurando tu aplicación. Esto es fe Facebook. Autenticación para IOS. Entonces ve esta Guía de inicio de Facebook. Está bien, tiene razón. Haga clic en abrir esto en una nueva pestaña. Aquí es donde deberías estar. Está bien. SDK de Facebook para iOS iniciando. Está bien, estás ahí. Genial. Por lo que un par de cosas descarga STK de Iowa y descarga beta. De acuerdo, entonces Facebook sí hace su velo sdk y ollas de cacao, ¿de acuerdo? Y vamos a usar macetas de cacao para esta aplicación para base de fuego. Pero no vamos a usar las vainas de cacao de Facebook, Leiber. Y la razón por la que es en el momento de esta grabación, eh, yo tenía nueve años no se libera todavía. Y así las vainas de cacao que tiene Facebook no es la beta para IOS nueve. Es el viejo, y va a causar algunos problemas. Entonces dijo Lo que vamos a hacer es hacer clic en la beta de descarga de nueve de Iowa, y va a descargar el sdk para el nueve de Iowa, que es exactamente lo que queremos. Ahí va OK, así que eso es descargar y lo que queremos hacer ahora. Entonces nosotros tipo de parcialmente hemos configurado parcialmente nuestra aplicación ya, Pero no está todo el camino configurado en Facebook. Entonces ver este linger Harris es apt dashboard. Está bien, bien. Haga clic en él y vaya dedo del pie a abrir en nueva pestaña. Entonces antes de que lo que veías era podía seguir arriba porque ya creaste una siesta. Entonces lo que viste antes fue justo aquí este básico. Creamos todo esto. De acuerdo, ¿
ahora qué? Puedes dio y ya he hecho esto aquí. Está justo aquí. Pero lo que tienes que hacer es hacer click en la plataforma de anuncios, ¿de acuerdo? Y luego vas a hacer clic en IOS, ¿de acuerdo? Y note cómo tengo un paquete. Yo oiría este paquete. Yo d. Que veas aquí mismo necesita ser exactamente el mismo paquete yo d Eso es bajo envolturas. Entonces si vuelves al código ex y haces clic en este banner aquí arriba y luego haces clic en general, mira cómo tienes un identificador de paquete y esto en realidad son mentes incorrectas. mente equivocada no coincide. Um y yo no quería este guión extra. De acuerdo, así que sólo quería Showcase. Entonces ahí vamos. Por lo que identificador de paquete. Esto tiene que ser exactamente lo mismo que pones en el paquete I d de Facebook y eso es todo lo que tienes que hacer. Entonces recuerda plataforma de anuncios. De acuerdo, agrega ese identificador de paquete. Y luego aquí mismo, solo signo al hacer click. Sí. De acuerdo, Single sign on click. Sí. Y luego haz clic en Guardar cambios. Eso es todo lo que tienes que hacer. Ya teníamos esta parte aquí. Y si no tienes esta parte, es porque no lo hiciste en nuestros otros videos. Entonces vuelve atrás y haz eso. Y así y estamos en la configuración del tablero aquí. ¿ De acuerdo? Eso es todo lo que tienes que hacer. Entonces eso está hecho. Y ahora nota nuestro sdk de facebook está terminado de descargar. Así que sigamos adelante y solo haz clic en él, Ábrelo. Voy a hacer doble clic en la carpeta. Y aquí hay múltiples bibliotecas que ha salido. Entonces los que queremos usar van a ser el marco de las cosas de los pernos. Y la razón por la que queremos esto es porque los otros marcos dependen de ello y queremos el núcleo. Tienes que tener el juzgado se reportará a trabajar, y luego queremos el login. No nos importa compartir. No nos importa la mensajería en este momento ni nada más. Entonces estos son los marcos, ¿de acuerdo? Y lo que vamos a hacer es ah, vamos a ver, Por aquí, um, vamos a hacer es crear una carpeta frameworks en nuestros proyectos o hacer click derecho en esta
carpeta principal aquí, y teclea marcos. Aquí tienes. Y ahora haz clic y arrastra estos por aquí, y vamos a copiarlos para asegurarnos de que se necesita copiar elementos y agregar dos objetivos está seleccionado. Por lo que acabamos de copiar esos marcos en para que podamos usarlos. De acuerdo, Ahora, lo que también necesitamos dio es sí. Pon patas de coca arriba y corriendo, así que abre tu terminal. ¿ De acuerdo? Tengo el mío aquí mismo. ¿ Tan solo escribes en terminal con comando Espacio Comando Terminal Espacial y obtuviste navegar a tu proyecto. Entonces voy a ir mentes en los escritorios de escritorio de CD y vamos a las pistas de Seedy Dev. Eso es escaparate. ¿ De acuerdo? Y acabo de comunicarme claro mi pantalla. Hazlo más limpio. Ahí vamos. Nosotros queremos hacer ahora es conseguir vainas ir y ya debiste haber metido vainas de cacao instaladas en tu computadora. Si esto no lo hace, si pod en él no funciona para ti, por alguna razón que queremos hacer es tipo en este pseudo gimnasio instalado ollas de cacao. Eso lo hicimos en un video diferente. Pero si no has seguido adelante y haz eso ahora e instala vainas de cacao te pedirán la contraseña de tu computadora. Y entonces lo que vamos a hacer es que estamos en el director ahora del proyecto Exco. Bien. Y teniendo vaina en ella. Está bien. Y va a inicializar tu proyecto como un proyecto de vainas de cacao, ¿de acuerdo? Y está cerrado de este año. Entonces ahora voy a cerrar mi código ex,
¿de acuerdo? Y entonces ah, está bien. Y así tenemos un archivo pod ahí, Así que adelante y abre eso en cualquier editor de texto, ve a buscar tu archivo. Aquí, ve a los documentos son escritorio para mí, y luego ah, este archivo pote Y sólo ábrelo con cualquier editor de texto y texto edita lo que sea. No importa,
¿de acuerdo? Y lo que queremos dio es que si vas por aquí a base de fuego, vas a las pestañas Firebase por aquí derecha, um, click
derecho de aislamiento y configuras para IOS. Y ahí está. Aquí mismo. Toma esta línea de código, ¿de acuerdo? Y ponlo justo aquí. Está bien. Y hay una cosa más que queremos dio y ah, que es usar frameworks. Haz que se vea así. Queremos poder utilizar frameworks en archivo Arpad. Entonces así es como tienes que dio y luego mandar s para salvarlo y x fuera de él. Vuelve a tu terminal. Y ahora podríamos haber sido pod install va a leer ese archivo e instalar cualquier framework que necesite instalar en base a lo que escribiste ahí dentro. Y es pensar, descargar, instalar su ego. Ya está instalada la base de incendios. Entonces ahora puedo volver a mi proyecto en mi escritorio aquí mismo. Y, eh,
mira, mira, sabe que estaban en el escritorio se da cuenta de un nuevo archivo aquí. Este archivo blanco, ese es el que queremos. Por lo que solo tienes que hacer doble clic en él y notar. Ahora hay dos proyectos. Vale, Uno tiene nuestros marcos, y uno tiene nuestras caídas y ah, escucha, Es una cosa muy guay, ¿de acuerdo? No es gran cosa. No es gran cosa. Entonces ahí vamos. Ahora tenemos Firebase en nuestro proyecto. Ahora tenemos Facebook en nuestro proyecto. De acuerdo, entonces estamos haciendo grandes avances aquí. Simplemente mueve estos. Mueve algunas cosas por aquí para que podamos, uh, hecho, yo estaba haciendo eso. Y esto apagará el lado derecho. Apague el lado izquierdo. Bueno, realidad, click estan Ok, Así que queremos hacer ahora que tenemos Facebook instalado, tenemos firebase instalada. Sigamos adelante y miremos la guía de inicio de Facebook y asegurémonos de que tenemos todo. Es muy importante cuando estás haciendo algo nuevo o instalando un framework, siguen todas las instrucciones. De acuerdo, entonces ya agregamos antes acabamos de agregar cosas a nuestro proyecto, así que no necesito preocuparme por esto. Pero ahora hay algo más que necesitamos dio para que Facebook funcione. De acuerdo, Así que adelante y pasa a tu lista de info dot p. OK, Correcto. Haga clic en él y vaya a abrir como código fuente. Y la razón por la que lo estamos haciendo de esa manera. Es algo así como lo hemos hecho en el pasado. Donde haces clic en esas cosas es va a ser mucho más rápido. Entonces este diccionario principal justo aquí. Como puedes ver, eso es lo que realmente cuenta. Ahí es donde queremos poner estas cosas. Entonces lo que vamos a hacer es copiar el código que Facebook nos está dando aquí y pegarlo justo ahí. De acuerdo, esquemas de
paquete. Y está buscando un Está buscando nuestra app de Facebook. Yo d ¿Qué? Sucesivamente tenemos eso aquí mismo. Si tú si resuelves esta pantalla abierta en tu tablero de instrumentos, solo copia eso después de que d y ponla justo aquí. ¿ De acuerdo? Y luego lo quiere de nuevo aquí mismo. No es gran cosa. Simplemente pegarlo ahora. Nombre para mostrar en Facebook. Ese es el nombre para mostrar del que tienes en tu panel de control. Entonces el nuestro es Dev Sloves Showcase years Podría ser lo que hayas nombrado el tuyo o podrías
nombrarlo lo mismo si estás siguiendo y ah,
Alex, Alex, Gran escaparate de pendientes de profundidad. OK, así que acabamos de hacer eso. Para que los pasos realizados. Y ahora, uh, recuerda cómo en otros videos, hemos tenido problemas para poder conectarnos a Internet por la seguridad del transporte . Por lo que necesitamos agregar Facebook a nuestra seguridad de transporte y, uh, si ya tuvieras seguridad de transporte um, habilitada en tu aplicación, no solo querrías copiar todo esto, porque porque este es el principal diccionario de seguridad del transporte aquí. Um, y no querrías copiar esto. Te gustaría copiar aquí sólo el diccionario interior, pero como no lo he implementado en esta aplicación todavía, y tampoco tú, probablemente solo copie todo esto aquí y justo aquí arriba. Simplemente pegarlo. Eso es lo que requiere Facebook. No gran cosa, Ok. Y, ah, te
necesitamos Ahora también es que aún no estamos del todo listos. Hay algunas cosas más que necesitamos hacerlo a detalle, ¿no? Haga clic en este enlace en detalle aquí. Está bien. Preparando tu APS para IOS nueve. Entonces solo ponemos lo que nos pide que hagamos aquí mismo. Um, pero hay algunas cosas más que queremos hacer. Um, justo aquí. Por lo que necesitamos listar en blanco las aplicaciones de Facebook. Entonces lo que va a pasar es que vamos a escribir algún código que requiere que abramos tu otra y necesitamos. Y con los nueve de Iowa, hay mucha seguridad. Por lo que ahora necesitamos agregar este esquema de consultas de aplicaciones ls, cualquiera que sea el tipo de aplicaciones que podamos estar abriendo desde el desde las aplicaciones para
seguir adelante y copiar esto. Esto es lo último que creo que necesitamos poner aquí y pegar eso en esta voluntad a
Necesitamos autorizar esquemas de consulta queer para IOS. Y estos son los que usa Facebook, K. Eso ayudará a deshacerse de algunas áreas que nos va a querer dar. Entonces, um y esto es por, creo para Facebook Messenger. Um, sí, no
necesitamos de Facebook cosas de mensajero. Está bien, eso se ve realmente bien. Hay una cosa más que quiero hacer con Facebook. Entonces, um, Facebook tiene algunos problemas con lo nuevo ahí con el nuevo IOS nueve. No han terminado su STK y hay algunos problemas con ellos con el código de bits. Entonces si vas aquí a hacer clic en tu icono azul, escucha tu proyecto, ve a la configuración de construcción y en la búsqueda de solo escribir fuentes de código bit habilitadas bit coat, solo
vamos a apagarlo ahora mismo. Um, no
necesitamos preocuparnos por el adelgazamiento de aplicaciones ni preocuparnos por el código grande ahora mismo. Esto se acaba de ayudar Apague algunos problemas que van a venir en este momento, no
necesitas preocuparte por ello ni siquiera entenderlo. Sólo confía en mí. Nos salvará. Algunos problemas a medida que avanzamos es que ves ahí mismo, uh, hablan un poco de ello, pero aún no lo tienen completamente funcionando. Entonces Ok, estoy mirando hacia atrás a la otra página de Facebook aquí solo para asegurarme de que lo consiguió todo. Y, Ah, aparentemente esto sólo nos está diciendo, ya
sabes, que, uh, de cómo usar estas cosas y seguiré adelante y explicaré que, uh, este es un objetivo C No estamos haciendo objetivo. Ver, nuestros culos y veloz. Así que sígueme. Entonces si llegas a este punto, podrías simplemente caer aquí en el video en lugar de libertad. El documento. A veces vas a tener que hacer eso. Vas a tener que traducir el código C objetivo a Swift. Y no debería ser demasiado duro. Puedes encontrar la ayuda que necesitas en Internet o hacer alguna búsqueda, Así que eso se ve bien. Entonces, ¿qué hacemos? Lo que tenemos ahora es que tenemos Facebook integrado. Tenemos integrado basado en fuego, pero no lo son realmente Ninguna de ellas está haciendo nada. Um Así que sigamos adelante y veamos la búsqueda de la guía de inicio en la
autenticación de usuarios para la base de fuego. Pero queremos el para Facebook, que está aquí mismo. De acuerdo, Entonces autenticación de Facebook, este es el euro. Pocos quieren depositar y copiar y pegar si lo perdiste. Y así hemos creado una nueva app. De acuerdo, hemos incluido la app de Facebook I ds en archivo de lista r p. Hemos incluido el bote, el su marco. Hemos incluido el uso frameworks,
um, um, comando en el archivo Arpad. Está bien, eso se ve genial. De acuerdo, entonces estamos progresando. Entonces, lo que tienes que hacer ahora es acudir a nuestro delegado de aplicaciones en nuestro proyecto, que está aquí mismo. Está bien. Necesitábamos importar algunas cosas. Ahora no seguimos a este tipo por aquí. Haz lo que nos está diciendo que hagamos. Entonces, um, voy a decir, Y por cierto,
um, um, cuando ellos y notaron como yo estaba pasando, esto es firebase no estaba al 100% actualizado con lo nuevo Con la nueva decadencia de Facebook s, el nuevo sdk de Facebook tiene unas ligeras diferencias para IOS nueve. Entonces nos topamos con problemas, lo
vamos a cambiar una y otra vez. Asegúrate de tener seleccionado a Swift por aquí y no objetar a ver esta es su documentación y veloz. Entonces lo que queremos dio es importar estos frameworks que estaban usando así importar FB sdk core kit e importar FBS DK kit de inicio de sesión. Está bien. Y yo sólo estoy haciendo un comando ser para construir sólo para asegurarme de que no haya herederos. En ocasiones, cuando importas marcos
, te da problemas. Y así si si haces comando más Beato lo construyes sabes que no hay problemas Además, solo para que lo sepas, como yo estaba pasando por este código X siete estaba teniendo algunos errores como si estuviera diciendo que
no estaba importando estas bibliotecas. Si ves eso, no te preocupes por ello. Siempre sepas esto siempre y cuando comando más B, siempre y cuando puedas construir tu proyecto, significa que todo está funcionando. Si no puedes construir tu proyecto, sabes que hay un problema. Entonces a pesar de los errores que destellos en tu cara, si puedes construirlo, estás bien. Entonces, um, Coolio así que aquí mismo en aplicación sí terminó de lanzar con opciones y cerró esto. Hazlo un poco más grande. Um, lo que queremos hacer es cuando se lanza la manzana. Queremos consultar con Facebook. Entonces si un usuario ha optado por autenticarse con Facebook y usar Facebook inicia sesión. Vamos a revisar Facebook primero y ver si ya estamos conectados cosas como esa. Eso necesitamos anular el punto de entrada de la aplicación. Entonces esto es un delegado de aplicaciones y lo que vas a dio Simon FB sdk app delegado dot instancia
compartida, um, aplicación de
punto ¿Y cuál queremos? Queremos,
um, um, ¿terminó de lanzar con opciones, y vamos a pasar en la aplicación, ¿de acuerdo? Y vamos a pasar en la opción de lanzamiento. Entonces todo lo que estamos haciendo es pasar en las cosas que ya se nos están dando
cuando esto,
cuandose llama a cuando esto,
cuando esta función, solo la
estamos pasando a Facebook y dejando que Facebook se haga cargo y vea si hay cualquier cosa que tenga para nosotros. Está bien. Y luego note aquí en la aplicación del lado derecho sí se activó. Encontremos esa función. Entonces cada vez que la APP se activa, así que reinicia cualquier tarea que se haya pausado. Bueno, la aplicación estaba inactiva. Entonces básicamente, siempre que esté activo, solo
queremos, um queremos activar Facebook Si Facebook está habilitado en nuestras aplicaciones FBS decay s de okay app events Ahí está APP events Así FB sdk app events toe activar app Y aquí se notifica al sistema de eventos que la APP se ha puesto en marcha y cuando corresponda registra y activó evento de
aplicación OK, por lo que solo queremos activar Facebook. Siempre que eso venga, pantalla vuelve a estar activa Hay una función más que necesitamos implementar realmente que no se implementa aquí Y esta es, uh esta es la razón por la que tuvimos que agregar esos esquema de consulta es a nuestro archivo de lista r p porque desde aquí vamos a abrir la aplicación de Facebook si el usuario no está conectado para que pueda iniciar sesión. Vale, entonces lo que vamos a dio es ah, escribe en aplicación y está abierta tu URL, pero esta de aquí bien, Es sólo que es función ah. Eso es parte del delegado de la app que puedes usar y vamos a ver cómo
funciona esto buscando un retorno. Boolean Así que vamos a devolver el delegado de aplicación FB sdk esa
aplicación de punto instancia compartida Pero esta vez va a ser esta Ah, abre tu l aquí mismo. Y simplemente pasando el pase de aplicación en el tu pase L en la aplicación fuente y pase en la anotación. Entonces todo lo que necesitas en realidad está justo aquí. Simplemente pasándolo a Facebook, dejando que Facebook lo maneje Face lo iba a manejar y cuidar de ella por nosotros. Entonces todo lo que necesitas entender es que cuando vayas a iniciar sesión o crear una nueva cuenta usando Facebook para esta aplicación, se va a cargar la app de Facebook. Y esto va a manejar eso aquí mismo. Si lo estás si lo estás usando. Sólo porque estamos poniendo a Facebook aquí no significa que, um, que tu APP la vaya a usar. Entonces si no querías usar face o si User sí se inscribió con correo electrónico y contraseña, estos van a devolver falso y Facebook no va a hacer nada. Entonces, pues tenemos esas funciones implementadas, y ya hemos seguido esto aquí. Está bien. Y este de aquí es el código para implementar realmente Facebook. De acuerdo, um, sigues adelante, o simplemente puedes seguir este significado por tu cuenta. Si quieres tu positividad y pruébalo. Um, déjame seguir adelante y empezar en ello ahora. Entonces lo que queremos hacer es volver a nuestro controlador de vista. ¿ De acuerdo? Y, uh, bien, lo que haremos es asegurarnos de que, um cuando un usuario inicie sesión,
está bien, está bien, que los registros son cuando hacen clic en el botón de inicio de sesión, es o bien va a registrarse con Facebook o a iniciarlos con Facebook. Y entonces lo que también queremos hacer es asegurarnos de que la próxima vez que se cargue la manzana que
vemos si ya hay una sesión existente y si solo hay iniciar sesión, no
tenemos que usar tu tienes que presionar eso ante, pero cada tiempo único. Eso sería realmente molesto. Entonces queremos hacer es solo automatizar eso un poco aquí. Y entonces, um, lo que tenemos que hacer es cuando Facebook se autentica con éxito, necesitamos guardar guardar la sesión, ¿de acuerdo? Porque cuando
inicies sesión, va a crear una cuenta de firebase también a y necesitamos ambas. No podemos usar solo Facebook. Tenemos que tener firebase incluida. Entonces vamos a dio se crea. Yo sea acción. Ellos FB pero impresionados, justo cuando se presiona el botón de Facebook, queremos iniciar sesión o crear una cuenta. Eso es lo que vamos a dio es que funcione. Y creo que necesitamos importar algunas cosas aquí. Bueno, no lo
están mostrando en su pantalla, pero yo soy sé que necesitamos así que voy a importar FB sdk core kit. Vamos a importar descomposición de FBS Log in kit. Está bien. Esas bibliotecas que arrastramos a nuestro proyecto importan esas y empecemos aquí, y estoy dejando esta pantalla abierta en el lado izquierdo. No estoy siguiendo por completo este 100% lo puedes si quieres, pero vamos a seguir adelante y hacerlo de esta manera por aquí. Y es muy común para mí cuando estoy programando toe tener documentación abierta a la izquierda así y mi código abierto a la derecha. Por lo que podría ayudarte a resolver problemas más fácilmente. Entonces aquí vamos. sesión de Facebook es igual a F B s d K. Inicia sesión manager, y vamos a Vamos a crear nueva instancia de un log y manager. Y si te preguntas como, ¿tengo esto en memorizado, Ya
sabes, cómo sabe él estas cosas para ser honesto. Yo, al igual que todos los demás desarrolladores del mundo. Vamos a buscar estas cosas. Al igual que podría construir este Facebook. Podría construir 100 ausencias Facebook, y probablemente cosas para volver aquí y mirar la documentación porque no podía recordarla. Entonces estás viendo cómo los codificadores de riel en realidad codifican. Entonces cuando ves cursos donde teclean perfectamente todo A a través de z como la línea, ya
sabes, uno pasa de uno a 50 sin un problema, son engañosos. Nuevo, porque eso no es programación real, y te va a dar una desventaja. Por lo que facebook iniciar sesión dot Iniciar sesión con permisos de lectura. Entonces, ¿sólo vamos a iniciar sesión? Voy a hacer esto más grande. Um, vamos a deshacernos de esa documentación por ahora, ¿de acuerdo? Y los permisos que queremos es solo correo electrónico, ¿de acuerdo? Y está buscando una matriz de cualquier objeto, así que solo vamos a hacer una matriz literal y el permiso de nuevo que queremos es el correo electrónico. De acuerdo, bueno, queremos poder hacer es iniciarlos con el sistema de correo electrónico de Facebook como. Está bien. Y el manejador es lo que pasa después de que tiene éxito o falla, ¿de acuerdo? Y entonces qué? Vamos a hacer es vamos a teclear. Ah, grupos de
Facebook. Presionemos entrar ahí otra vez y presionemos entrar aquí. Entonces otra vez, lo que hace es pasar en variables, pero no les da nombres, y así vas a querer darle un nombre, Así que facebook resultado. Está bien. Y éste va a ser, um, Facebook Air. Sólo les estoy dando parámetros para que podamos usarlos. Está bien. Enfriar. No es gran cosa. Haciendo bien hasta ahora. OK, entonces ahora lo que queremos hacer es decir, si facebook no hay error de Facebook no es igual a Neil. De acuerdo, Entonces lo que estamos diciendo es, si no hay vacío, significa que tuvimos un errante no tuvo éxito. Eso es todo lo que estamos haciendo. Eso podemos imprimir, uh, Facebook iniciar sesión fieltro y luego aire, y luego podemos realmente pasar en la cara de Facebook. Book air también se dio cuenta de cómo cuando estás en un cierre como este en esto, esta llamada de vuelta en algún momento es como. Cuando llamas a parámetros y cosas, auto completar no funciona. Simplemente no creo que los códigos X implementaron todas esas características aún, Así Facebook aire, pero aún así debería funcionar. Entonces si hay aire, adelante y simplemente imprime el aire, ya
sabes, tal vez en una aplicación diferente o en tu propia app, podrías llevarlo aún más lejos. Si se cayó, les das una notificación pop up o algo así, no
nos vamos a preocupar por eso ahora mismo. Eso es lo que queremos dio es si hay un manejador de aire. Si no, agarremos el token de acceso. Entonces token de acceso es igual a FB sdk token de acceso. Esa corriente token de acceso token dot cadenas. Entonces ya sabes, ¿
como qué? ¿ Qué está pasando? Entonces, está bien, entonces lo que va a pasar es cuando inicies sesión con éxito o creas como acabamos Facebook almacena un token de acceso. De acuerdo, entonces habrá algo aquí si llegamos a este punto,
esto sólo estuviéramos agarrando la cadena de fichas porque lo que queremos hacer es ah, en base de fuego. Queremos hablar con Fire Base y decir:
Hey, Hey, iniciamos sesión y queremos guardar a ese usuario. I d Así que nuestro usuario me d puede asociarse con Facebook, OK, porque si alguna vez sacamos a Facebook de la aplicación el usuario va a necesitar algún tipo de manera todavía para poder iniciar sesión. Y así es como estás, cómo lo haces. Y, um entonces tenemos un token de acceso, y, um, ¿
sabes qué? Yo quiero asegurarme de que lo hacemos es, um antes de ir más allá con base de fuego y almacenar estos datos, vamos a asegurarnos de que esto está funcionando aquí. Solo asegurémonos de que Facebook esté trabajando todos juntos. Por lo que se acaba de imprimir con éxito conectado con Facebook. Y lo que también podemos dio es el elegible. Yo sólo quiero algo aquí. Lo que también podemos hacer es escribir en facebook resultado facebook dot um, ¿qué es? Um Bueno, en realidad, esto es imprimir el token. Donde El área de tokens de acceso de Tokio. OK, entonces queremos ver si registramos y con éxito eso va a imprimir el token. Si no
, nos va a dar aire. Eso es todo lo que queremos hacer. Ahora sabemos que la acción I B aún no está conectada, Así que hagámoslo ahora. ¿ Qué? Tu storyboard principal. Abre tu asistente de editor, Agarra este botón de Facebook aquí mismo con control. Arrástrelo sobre. En realidad, ni
siquiera necesito el asistente de editor abierto ya que tenemos la acción I b just control. Arrastre esto hacia su controlador de vista y luego seleccione el botón de Facebook presionado. Está bien, vamos a seguir adelante y construir y ejecutar este simulador de chico malo que viene. Ahí está. De acuerdo, Momento de la verdad. De acuerdo, así que aquí está nuestra Nos está dando algunas cosas de Facebook. Ya veremos. Ya veremos si está funcionando. Momento de verdad. Haga clic a Facebook. Botón de inicio de sesión. De acuerdo, está cargando mi click de Facebook. OK, y aquí está, ingresó con éxito con Facebook, e imprimió ese token. Buen trabajo, chicos. Facebook se implementa con éxito en la aplicación, y está funcionando con éxito. Y sigamos adelante y en realidad llamemos a este video Done. Esto está consiguiendo que Facebook se implemente menos en el siguiente video. Hagamos que Firebase hable con Facebook y que
también empiece ese comienzo . Entonces eso es todo por ahora,
para recapitular. Lo que hemos hecho es que hemos arrastrado en los frameworks desde Facebook aquí mismo. OK, lo
arrastramos adentro. Nosotros, uh, en nuestra lista info dot p. Agregamos un montón de cosas agregamos esquemas de consulta de aplicaciones ls de Facebook. Esto es necesario. Tenemos en blanco en la lista de Facebook. Hemos dicho, hey, Facebook está permitido usar nuestros APS, Los hemos agregado a nuestros dominios de excepción N S. También hemos agregado la app de Facebook I d. En el nombre de visualización de Facebook en nuestra aplicación que tus l esquemas con el F B en nuestra aplicación i d agregamos todo eso en hacia info punto p lista. Fuimos Teoh son configuración de construcción de nuestro proyecto y desactivamos activar código de bit. Está bien. Y luego en nuestro controlador de vista aquí todo lo que hicimos fue importante El núcleo en iniciar sesión y lo
acabamos de usar Facebook log y manager acabamos de llamar Es función log in super, super fácil. Um y o lo logra o se cae. Al hacer clic en el botón, se carga la aplicación de facebook. Está bien. Y luego también por último, entramos a nuestro delegado de aplicaciones y en aplicación sí terminamos de lanzar. Su va a usar Facebook para comprobar el cheque. Si estás conectado o no, la aplicación se activa. Va a reactivar Facebook si es necesario. Y luego, uh, esto es lo que va a abrir la u R l Cuando hagas click. Cuando se va a registrar primero por primera vez, va a abrir la aplicación de Facebook y luego va a volver aquí, y así es como lo maneja. Entonces como hemos hecho sus traseros faras en la web aquí, ya
sabes, pasamos por la documentación de cómo hacerlo. Preparando tu app para IOS nueve. Um, nosotros también, uh, pasamos por esta guía aquí iniciando y descargamos. Por supuesto. Ya sabes, el debate abundante en el futuro. De acuerdo, cuando tenía nueve años es oficialmente vida y su sdk ya no está en beta. Vas a querer agarrar esto a través de vainas de cacao, ¿de acuerdo? O puedes hacer clic en la descarga IOS STK justo aquí. Esto se actualizará en ese momento. Eso es lo que vas a querer dio. Y así es. Firebase se va. Facebook va han seguido algunas guías aquí. Implementamos vainas de cacao para instalar base de fuego. Aquí hay muchas cosas. Si te perdiste alguno de estos pasos, vuelve a revisar el video y encontrarás todas las piezas que necesitas. Y de nuevo, la documentación en realidad es bastante fantástica Aquí. Presta atención a las chicas en el video si necesitas regresar. Está bien. Guías que pasamos juntos y, uh, eso es todo. Mover grumos El siguiente video
101. App: muestra la parte 5: la sesión de correo electrónico/contraseña: Oigan, ¿qué pasa, todos? Mark Precio aquí, Deb pendientes dot com y la última vez en la construcción son muy cool. Showcase way tenía esto, que era básicamente la capacidad de iniciar sesión en la aplicación con Facebook. Entonces si no estás registrado te
registraría en Facebook. Y si estás registrado, automáticamente te iniciaría sesión. Y, uh, tenemos todo el código para eso y algo funcionando. Tan buen trabajo. Entonces ahora lo que queremos hacer es conseguir que la autenticación de correo electrónico y contraseña vaya ahora eso está sucediendo a través de la base de fuego. Entonces si vamos a tirar de abrir nuestra cuenta de Firebase aquí, ¿de acuerdo? Simplemente cargaré aquí el sitio web principal. Base de fuego. Está bien, inicia sesión. Y aquí está nuestra app. Administrar el inicio de sesión y apagado de la APP. Está bien. Entonces lo que hicimos fue habilitar Facebook, que está oh, apagado. Eso es lo que utiliza para la autenticación. Hemos implementado todo eso. Por eso aquí abajo, um, estabas tú, uh tenemos que disculparme. Por lo que estamos registrando primero con Facebook. Y entonces, razón por la
cual aquí, breve en adelante, vamos a estar implementando oh, autenticación para Facebook, y luego vamos a seguir adelante e implementar correo electrónico y contraseña de nombre de usuario que hemos ya habilitada. Entonces si no tienes esta habilitada habilitarla ahora puedes poner ninguna respuesta para los restablecimientos de contraseña cuando alguien quiera restablecer sus contraseñas. Um, cosas
realmente geniales, en realidad. Um, tan cool trato. No es gran cosa. Así que vuelve por aquí. Teoh, tu firebase dot com docks guía IOS Inicia sesión contraseña Aquí mismo. Autenticación de usuarios. Esta es la guía que estamos siguiendo para registrarse, crear cuentas de usuario e iniciar sesión de usuarios. Y realmente estoy usando el abrigo este código aquí para hacer esto. No obstante, el nuestro es diferente. Entonces lo que queremos hacer es simplemente en lugar de tener muchos campos diferentes, ya
sabes, confirmar contraseña, registrar cosas así. Solo queremos enviar una contraseña por correo electrónico, y solo tienes que hacer clic en iniciar sesión y te inicia sesión. Y si no estás conectado, trata de inscribirte. Algo así como funciona el botón de inicio de sesión de Facebook. Hagamos la vida de un usuario un poco más fácil, así que vamos a crear alguna lógica para eso. Entonces aquí vamos. mí me parece bien. Es lo que queremos hacer es primero terminar esto Este Facebook Aquí s O. Lo
tenemos con éxito iniciando sesión en Facebook. Facebook, que simplemente bien. Pero recuerda, necesitamos que esto hable. Base de fuego Teoh. Adelante y hagámoslo ahora. Entonces estamos conectados con Facebook, y necesitamos llamar al Recordar cómo dije iniciar sesión con Facebook y,
oh, oh, autenticación, no correo electrónico y contraseña. Por lo que llegamos a llamar el apagado con las funciones del proveedor autor. Entonces lo que vamos a hacer es primero conseguir el servicio de datos de referencia base. De acuerdo, vamos a ver aquí. Nosotros no sabíamos ¿qué? Ni siquiera creamos un servicio de datos, así que hagámoslo ahora. Entonces necesitamos un lugar donde vamos a almacenar referencias a base de incendios y todas las
propiedades y rutas de la base de fuego y cosas por el estilo. Necesitamos un lugar para almacenar eso. Entonces vamos a crear un singleton. Voy a crear un nuevo grupo aquí. Vamos a llamar a estos servicios, emigrar un nuevo archivo dentro de esa carpeta, y sólo va a ser un archivo rápido, y vamos a llamar a este servicio de datos. Y un singleton, si no recuerdas es una sola instancia de una perilla comprobada de una clase a la que tienes acceso. Entonces nos vamos a sentar el servicio de datos de clase. Está bien. Y entonces aquí mismo es lo que vamos a decir. Vamos a decir estática. Deja que sólo sea un d s corto para el servicio de datos, y luego se va Teoh servicio de datos igual. Entonces tal vez tú eres, como, ¿qué está pasando? No lo pillo. Bueno, estamos creando una propiedad estática. Variable extática. Eso significa que solo hay una instancia de memoria, y va a ser que la vamos a hacer accesible globalmente. Entonces, básicamente, vamos a agarrar esta variable, y no se puede cambiar. Es un let. Por lo que nunca tenemos que preocuparnos de que nadie lo modifique, destruyendo solo 11 instancia de en memoria alguna vez. Y eso es lo que queremos. Entonces está nuestro servicio de datos, y en nuestro servicio de datos, solo
queremos implementar algunas, uh, algunas cosas que pueden interactuar con, uh, firebase. Entonces hagámoslo ahora. Bar privado es una base ref. Solo estoy usando, uh, no
tenemos base de fuego. Importante. Si quieres usar firebase importada aquí arriba en la parte superior. Ahí vamos. Ahí vamos. Y, uh, ese es el que queremos. Y para la chica que va a ser tu aplicación firebase. Entonces, uh, si tú Si eres como, ¿qué? ¿ Eso acaba de ir por aquí a tu cuenta de cinco bases de firebase? Y, uh, no, que esta es tu L aquí mismo. Ese eres tú. Eso es todo. Entonces ese es el euro. Y lo que estamos diciendo es que hagamos una referencia a nuestra cuenta específica de firebase. De esa manera cualquier solicitud y cosas hará su venida directa a nuestra cuenta para que
realmente puedan guardar en la base de datos. Esto es muy importante. Eso es crítico. Y entonces hagamos una variable pública. Sólo vamos a devolver la variable privada otra vez. Esto es sólo un buen puerto, una buena práctica de recubrimiento, eso es todo. De acuerdo, entonces tenemos una referencia base a la que vamos a estar accediendo cuando iniciemos sesión y autenticemos, y eso es lo que queremos. Entonces eso me queda bien. Volvamos al controlador de vista aquí. Lo que queremos hacer es agarrar esa referencia base que queremos agarrarla, y luego queremos realizar la autenticación en ella. Entonces sigamos adelante y hagamos eso. Por lo que el servicio de datos dot ds había accediendo a esa variable estática. Cuando tienes variables estáticas, puntos
usados e impuestos sobre la clase, no
tenemos que crear el club. No tenemos que hacer esto primero, acuerdo? Podríamos simplemente llamarlo justo en la clase y agarrar ese DS, y luego podemos agarrar la propiedad. Entonces, ref base, OK, Y como se trata de una referencia basada en incendios, tiene una función desactivada con, Oh, off provider. Y veamos aquí, ¿
cuál queremos? Queremos el que tenga el token. Sólo voy a presionar enter en estas variables aquí. Y una cosa que podemos hacer así no tenemos que usar variables en absoluto, son por lo que muchas veces nombró a las variables. Lo que podemos hacer es en realidad solo que estoy mostrando una forma diferente de hacer esto. Entonces en lugar de tener los paréntesis aquí dentro, sabemos que nos va a dar fecha fuera, y sabemos que nos va a dar un aire. En realidad puedes despegar estos paréntesis, y puedes despegar el tipo de retorno void. Si nos quitamos todo esto, significa que no necesitamos. Sólo vamos a manejarlo aquí mismo en este lugar. nada de qué preocuparse. Entonces lo que vamos a hacer es simplemente borrar eso y luego voy a decir aire y vamos a desactivar esto datos, entonces tampoco tienes que darles nombres. Que es o no tienes que darles tipos específicos, Lo cual es realmente agradable. Está bien, eso se ve bien. A mí me está gritando, sin embargo. ¿ Qué hice mal aquí? Ah, creo que tiene que ser así Ok, con el bloque de finalización de aire fuera de los datos, se ve bien significar en Vamos a construirlo. A lo mejor es, uh todavía nos está gritando. Ya sabes, creo que solo nos está gritando porque aún no hemos llenado los otros campos, así que se ve bien. A veces hay que lidiar con las revelaciones. Podría ser muy si quieres. Eres como, Espera, ¿qué está pasando? ¿ Por qué me diste este aire? Y hasta que termines todo el asunto, um, realidad no se arregla solo. Por lo que para proveedor, pondrías en Facebook. Estás diciendo a una base de fuego que quieres usar Facebook. Esa es una clave muy específica. OK, el token. ¿ Cuál crees que debería ser el token? Bueno, creo que los tokens deberían ser el token de acceso. Entonces lo que estamos haciendo es almacenar el token de acceso de Facebook como parte de nuestra cuenta y mira eso. El aire uno de distancia, que es genial. Entonces OK, entonces si iniciamos sesión exitosamente, vamos a entrar aquí. Y lo que queremos hacer es almacenar en nuestro dispositivo, la sesión o el token del usuario? El usuario firebase. De acuerdo, no el usuario de Facebook. Pero si recuerdas tu login con Facebook, Sí, pero aún necesitamos guardar un usuario y base de fuego de base de fuego y sabe hablar con un pie con contraseña de correo electrónico. No importa si está registrando con cuenta de calificación con correo electrónico, contraseña o Facebook. Todavía vamos a tener un usuario de base de fuego. Yo d. queremos agarrar eso y almacenarlo en nuestro dispositivo. Por lo que la próxima vez cargamos la app. Si los usuarios ya iniciaron sesión, podemos llevarlo directamente a la pantalla sin tenerlo a donde quieran ir, sin tener que volver a iniciar sesión. Entonces eso es lo que vamos a hacer ahora. Así que haz la pantalla más grande aquí para ti, para ti la gente de iPhone y los más ciegos. De acuerdo, Entonces lo que queremos hacer es primero comprobar si hay aire y luego manejar eso. Entonces si el aire no es igual a arrodillarse. Fue bueno en impresión. Inicie sesión. Derrotado. Está bien. Está bien. Logan cayó, Eso es todo. Um no sé qué más hacer para manejarlo ahora mismo. Podríamos hacer algunas cosas bonitas de manejo de aire así más adelante. Alertas y cosas. Te dejaré manejar eso por tu cuenta. Eso es lo que hacen los buenos programadores. Pusieron mucho manejo de aire y cosas que vamos a imprimir que iniciamos sesión si fue un éxito, así que ingresó. Oye, lo
hicimos. Nosotros lo hicimos. Muy bien, fuera de los datos. De acuerdo, así que solo vamos a pasar los datos de autenticación e imprimirlos, sólo para mostrar. Oye, funcionó. Y así si llegamos aquí, sabemos que ingresamos. Entonces sigamos adelante y ahora digamos, ¿
Recuerdas cómo dije que necesitamos guardarlo en el dispositivo que has usado s por defecto de usuario antes? Hagámoslo otra vez. Y sus valores predeterminados de usuario pensaron que los valores predeterminados de usuario estándar valor de conjunto de puntos y el valor que queremos
establecer es ah, los datos de autenticación puntan tu i d para una clave. ¿ Y sabes qué? Vamos a estar usando mucho esto. Esta clave. No somos muchas veces múltiples. Yo creo que sí. Probablemente es hora de poner eso por aquí y son constantes. Entonces digamos que deja clave vamos a decir que te d igual a u I. D. Esto es sólo un valor clave. Por lo que sabe qué mirar hacia arriba. Pero cuanto más a menudo tengas que escribir algo, más problema o potencial tienes para los herederos. Y tu digamos que lo deletreaste mal como si hablaras una letra fuera. Entonces te preguntarías, ¿Dónde está mi bicho? ¿ O es mi bicho? No lo encuentro. Por lo que usar Constance es una gran manera de prevenir a Ares. Y vamos a decir Key you I d Así que sólo estamos diciendo,
Hey, Hey, guardar el guardar el En realidad tú d el valor de la misma y esta llave y la llave se llama ustedes idiotas. Podemos acceder más tarde, así que solo estamos guardando la cuenta de firebase recién creada. Y entonces lo que queremos dio, al
menos en este punto, es iniciar sesión en un nuevo controlador de vista, que aún no hemos creado. Entonces hagámoslo ahora. Es un buen momento para hacer eso. Vamos a tu guión gráfico principal y solo creamos el marco base para un nuevo
controlador de vista . Aquí vamos. Todas las jugadas, Ok, y vamos sólo desde este controlador de vista aquí. Vamos a arrastrar a este controlador de vista. No lo necesitamos de un botón ni nada. Lo haremos programáticamente y así show está bien. Y sólo hagámoslo un auto que demuestre claramente que está funcionando tan bien. Di, Azul, vuelve a tu controlador de vista y luego aquí mismo diremos auto punto realizar Segway con identificador. Y no creamos e identificamos cuál deberíamos tener cuando tenemos que volver atrás, me olvidaba eso. Volvamos aquí al hombre haga clic en el Segway y pasemos en el identificar. De acuerdo, Entonces lo que va a pasar es que vas a iniciar sesión con Facebook, y si
funciona, nos va a llevar al siguiente controlador de vista después de que lo guarde en el dispositivo. El token, el token de autenticación de la base de fuego. De acuerdo, eso Vamos adelante y corramos y veamos si funciona. sesión en Facebook. Aquí viene Vale, está cargando. ¡ Wham bam! Hecho. Trato. Por lo que funcionó. Eso es realmente genial. Eso es realmente, realmente genial, en realidad, Um bien. A mí me gusta. Está bien. Eso se ve bien en. Mira aquí. Si te das cuenta, ahora
tenemos. Ah, los datos aquí, fuera de los datos. Bastante cool. De acuerdo, así que todo está funcionando. Um, lo siguiente que queremos hacer es ah, ¿qué pasa cuando se carga la APP por primera vez. Si ya están logueados, sólo
llevémoslos directamente a la llévalos directamente a la siguiente pantalla. Entonces si recuerdas bien, Segways no funcionan y ver sí cargó. De acuerdo, Sólo
funciona después de que todas las vistas hayan aparecido en la pantalla. Entonces lo que podemos hacer es hacerlo a la vista. ¿ Apareció solo un super visto Aparecerá solo dedo del pie. Asegúrate de que se llame a cualquier súper clases. Y lo que haremos esto es agarrar la llave y si existe, sólo lo
llevaremos al próximo grano de polvo. Si n s usuario predeterminado, no el usuario estándar valores por defecto valor de punto para clave. Recuerda, Aquí está eso. Aquí está la reutilización ahí mismo estaban previniendo un bicho. Entonces si esa clave, si realmente estamos obteniendo un valor, estuviéramos diciendo si no es Neil, significa que existe. Y sólo llevemos al usuario a la siguiente pantalla. Por lo que solo un auto realizar Segway con identificador y está conectado. Y, uh, tal vez te estás preguntando dónde o tal vez estás pensando como, Oye, yo no identificé el tipo de esto o dos veces no pude haber aire ahí, también. Eso es absolutamente correcto. Deberíamos ser mejores programadores y hacer algo llamado Re factoring. Entonces hagámoslo. Ahora. Pasemos a tus constantes, K. Y lo que podemos hacer es crear solo una sección llamada Segways. ¿ De acuerdo? Y aquí mismo, solo, uh, diremos segue Segway Segway y diremos,
um, logueado, logueado, logueado es igual a eso Ok, Uops, eso debería ser electo. Está bien, Vamos y entonces podemos ponerlo justo aquí. Segway ingresó y luego aquí abajo, Lo
mismo. Ahora, tal vez
estás pensando que eso no es realmente gran cosa, Solo hacerlo dos veces. Bueno, esto te puede ahorrar tanto tiempo en el futuro. Imagina si tuviéramos que usar esto 100 veces en toda la app, y luego llegaste a cambiar el nombre de la misma. Vas a estar realmente deseando haberla puesto en una constante. Tendrás que cambiarte en un solo lugar. De acuerdo, Así dijo espera, ingresó. Eso se ve genial. Entonces a la vista sí apareció. Si hay una llave, vale, si hay una base de fuego apagado yo d clave guardada en nuestro dispositivo automáticamente, Lageman, vamos a darle una oportunidad. Acabamos de salvarlo una vez, así que esto sólo debería llevar una recta a la pantalla azul, yo pensaría. Oye, ahora, si alguna vez te has preguntado, ¿cómo hicieron eso? ¿ Cómo saben si estás conectado o no? Uh, no. No. Ya sabes, así es como lo haces. Salgamos de esta Ugly sí recibió la mañana de memoria. Tan harto de ver eso ahí dentro, pero sus comentarios aquí Bondad. Está bien, tan genial. Tenemos Facebook hablando con,
uh, uh, um y salvando la llave. Adelante y hagamos que funcione la, uh, uh,contraseña de
correo electrónico. No hay mucho trabajo extra que tenemos que hacer. Sí necesitamos atar esos campos de correo electrónico y contraseña. Entonces vamos a hacer algunos puntos de venta de hiedra. Tenemos nuestra y a veces lo hago desde aquí. En ocasiones lo hago desde la pantalla principal. A Sfar está fuera. Vamos. Simplemente depende de dónde esté en ese momento. Ahora mismo, estoy en el código, así que es más fácil una barra de semana y este va a ser campo de
contraseña, campo de texto blanco. De acuerdo, así que necesitamos conectarlos porque eso es lo que vamos a saber, vamos a cuando tú Smith cuando presiones el botón de enviar, va a hacer su magia, sabes? Y entonces, claro, necesitamos una acción i B para cuando los botones realmente se presionan. Hagamos eso. Ahora soy acción aquí abajo en el funk de fondo, y llamaremos a esto. Ah, ¿qué es? Correo electrónico. Pero quiero decir que me email, pero impresionado? ¿ Por qué no? Era un remitente. Entonces, ¿por qué? Pero de acuerdo, Entonces y tendremos que atar esto a un oleaje. Está bien, pero eso está bien por ahora. Está bien. Y, uh, ¿sabes lo que me gusta? Esto me gusta. Digamos que la ley de intento otra vez. Eso me gusta más porque no sabemos si vas a iniciar sesión o no. De acuerdo, entonces aquí vamos. Si dejar correo electrónico es igual al texto de punto rellenado de correo electrónico donde el correo electrónico no es igual a esto. Entonces lo que estamos diciendo es agarrar el texto del campo del correo electrónico y lo que hemos aprendido de experiencia es cuando agarras algo cuando lo agarras nada está ahí. Va a dar una cuerda vacía. En realidad no te va a dar un Neil Value te va a dar una cuerda vacía. Tampoco queremos eso, pero seguimos revisando ambos. Entonces vamos a agarrar el campo de texto donde no es igual a una cadena vacía. OK, y luego el 2do 1 tiene que funcionar también, también, que es la contraseña. Entonces P w d es igual a texto de punto lleno de contraseña donde, um, pwd no es igual a una cadena vacía. Entonces si ambos pasan bien, significa que tenemos un correo electrónico y una contraseña. De acuerdo, Um ¿Y qué
pasa si, eh, y si no pasa? Vamos a mostrar. Vamos a mostrar en el aire al usuario. De acuerdo, así que hagamos un show de funk. Alerta aérea. Ya que estaremos mostrando muchos tipos diferentes de alertas en función del tipo de mensaje que
recibamos , solo crearemos una función reutilizable. Solo estoy pensando en adelante. De acuerdo, entonces esta es una función de alerta en una que va a gran alerta para nosotros. Y así como funciona. Deja que la alerta te iguale. Alerto a controlador y tiene un título. Uh, viene uno
equivocado. Ahí vas. Title su mensaje de título es un mensaje. El estilo preferido eres tú. Yo alerto controlador estilo alerta de punto. Y no necesitamos esto ahora. Simplemente me olvido ¿Qué? El mando? Cuáles son las cosas reales antes de que haga eso. Entonces solía escribirlo en todo el camino primero, y luego lo elimino solo para acortarlo y dejar que la acción te iguale. Alerto acción. Por lo que las alertas van a tener acciones en nuestro caso. Um, sólo
vamos a tener un
botón o k. que se cierra. Entonces el título va a estar bien. Y el estilo vas a ser tú. Alerto estilo de acción de alerta. Oh, vamos, tú. Alerto estilo de acción dot Default, y eso es que básicamente no hace nada. Es solo la acción predeterminada por defecto. Y no necesitamos un manejador. No nos importa lo que pase después de que se cierre. Sólo queríamos cerrar su sólo otro. Y luego diremos, alerta punto Añadir acción. Estamos pasando la acción porque esa es la acción. Queremos sólo el botón ok que se cierra. No hace nada más, y entonces eso presentará controlador de vista. Y esto sólo va a ser la alerta. Y no nos importa lo que pase después de que se haya completado. Entonces eso es todo lo que vamos a mostrar en el aire ahora. Podríamos mostrar cualquier aire que queramos, que es realmente genial. Y así, uh, aquí mismo, si no hay nombre de usuario o contraseña, como en los propios campos de texto reales, podemos decir mostrar alerta aérea. Y, uh, ya
sabes, podemos decir que se requiere correo electrónico y contraseña. Debe ingresar un correo electrónico y una contraseña. Ahora, eso es algo lindo que quieres ser. Oye, tonto, se supone que
tienes que poner el campo de correo electrónico y contraseña ahí. Pero si haces eso, tu jefe no va a estar muy contento. Entonces sugiero no hacer cosas así ahí dentro. Pero a veces se quiere. Porque, por
supuesto, hay
que poner un email y una contraseña, y así lo voy a hacer por sí sola. Vamos, gente. De acuerdo, entonces lo probamos y vemos si funciona. Entonces sigamos adelante y conectemos nuestras acciones y conectemos ahí. Alex, esto es un bicho. No se debe llenar porque no los hemos conectado. Pero es pensar que lo hicimos aquí mismo. Simplemente seleccione su controlador de vista y,
uh, sí, sí, y adelante y director de control, campo de dirección de
correo electrónico y haga clic en correo electrónico. Control de campo arrastró su campo de contraseña. Llámalo Campo Contraseña y luego desde el botón controlado un arrastre al controlador de vista y haga clic en intentar iniciar sesión y, uh, cool. Entonces lo que debería pasar es cuando ejecuto esto, si no ingresamos una contraseña de email, deberíamos ver esa alerta. Y sé que mis cosas están enganchadas y funcionando. Entonces por supuesto, eso es si, uh, no registramos automáticamente porque no tenemos yo d ahí. Entonces sigamos adelante. Y, uh oh, las cosas van por el camino opuesto. Yo quería, um por eso no me deshice de Tengo un montón de APS aquí. Deshaznos de algunos mapas aquí muy rápido para que te pueda mostrar. Es posible que tenga que hacer esto a. Así que cada vez que
elimines la siesta, se deshará de todos los valores predeterminados del usuario, Por
supuesto. Y, uh, y mira todos estos APS por los que has pasado. Buen trabajo, hombre o gal, Has, ah pasado por bastantes APS aquí. Está bien. Cargando la app. A ver si funciona. Inicia sesión y envíalo sin usar tu contraseña. Oye, y funcionó. ¿ Y si solo ponemos uno y notamos cómo en la contraseña de la contraseña. No es una contraseña que me llenó para arreglar eso. Oye
, sigue funcionando. Trabajó en ese caso desde que su ingrese una contraseña. Sólo funcionó en los tres casos, así que estamos bien. Lo último que quiero hacer, sin embargo, es arreglado que pase por problema. Y así haz clic en tu campo de contraseña. Y entonces lo que queremos hacer es en ¿Dónde está? Por aquí. Queremos hacer de este un campo de contraseña. Por lo que teclea teclado. ¿ Cuál es la apariencia? Vamos a conseguirlo. Aguanta. Aguanta. Contraseña de Marcador. Ahí está. Estaba buscando la palabra contraseña. No podía recordar. Es una entrada de texto segura. Ahí vas. Eso hará que los puntos en lugar de la, uh, vamos auto incapaz de volver a ser agradable. De acuerdo, hagamos los puntos. Eso está bien. Entonces no vemos lo que escriben los usuarios. De acuerdo, así que eso está funcionando. Entonces tenemos el aire manejado cuando no hay nombre de usuario ni contraseña, Así que en realidad manejemos, um, um,
iniciar sesión. Entonces lo que queremos dio es primero intentar iniciar sesión. Eso es lo primero que queremos dar. Y en base a la respuesta que obtenemos de firebase, va a hacernos saber, en realidad, si la cuenta no existe. Y así si la cuenta no existe, sabemos que necesitamos crear una cuenta y luego registrar al usuario. Y así o va a iniciar sesión directamente al usuario, o va a iniciar sesión,
cayó, cayó, crear una cuenta, y luego iniciar sesión al usuario. Y sé que es un poco más de trabajo, pero va a crear una mejor experiencia de usuario. Y de eso se trata todos los buenos APS. Entonces, um, ustedes están haciendo APS crummy. Entonces mi culpa. Yo lo estoy diciendo. Te estoy diciendo la verdad aquí. Te estoy diciendo lo que la gente quiere. Uh, vale, así que sigamos adelante y autenticémonos. Entonces vamos a agarrar la referencia principal. Por lo que servicio de datos dot ds dot ref base. Y así es como inicias sesión con firebase, la base de fuego fuera del usuario? Suficiente fácil. Um OK, así que acabamos de pasar en el correo electrónico y pasar la contraseña. Y sí, lo
hacemos en un bloque de culminación. Um, una persona honesta entra en ese momento para deshacerse de él, sin embargo. Queremos a Aaron fuera de datos y volvamos a deshacernos de todo esto aquí aire y coma fuera de datos . Y de esa manera no tenemos que nombrar realmente el dar los tipos de los parámetros. Simplemente funcionará para nosotros. Y así está bien, aquí vamos. Manejemos ahora la caja de aire. Podría haber múltiples herederos, ¿verdad? El nombre de usuario o la contraseña podrían ser incorrectos, o es posible que la cuenta no exista. O podría haber aire de Internet. No vamos a cubrir todo de este video. Podrías hacer eso a tu tiempo libre para hacer mejor esta app. Personalmente, puedes cubrir múltiples casos. Entonces si el aire no es igual a arrodillarse Significa si hubo un error. De acuerdo, um, entonces deberíamos imprimir los abrigos de aire. Hablemos de aire Coach muy rápido. Entonces air dot creo que es código. Vamos. Ahí vamos. Está bien. Entonces sigamos adelante y manejemos esto primero. Bueno, veamos qué pasa cuando imprimimos cosas a la pantalla desde nuestro consejo. Estamos buscando un código aéreo, acuerdo. Y, uh, si así lo escribo, digamos, um bueno, aún no
he creado una cuenta, ¿
verdad? Entonces podría decir, um Mark Price en Dev pistas de Dev dot com como hey, cómo dice ese punto com. Sí, así es como es. 123456 Si entro, me dieron un ocho negativo. Eres como, Espera un minuto. ¿ Qué significa eso? Bueno, echemos un vistazo. En realidad, sigamos adelante e imprimamos todo el aire esta vez. Ah, no hermético. A veces Auto Complete es tu peor cosa enemiga. De acuerdo, intentemos esto otra vez. Entonces imprimamos todo el aire y veamos lo que en realidad está diciendo desde
Firebase porque firebase nos enviará aires de vuelta y podemos imprimir aquí. Entonces hagámoslo otra vez. Digamos que el ron se Mumby en abc dot com y 12345 Vale, aquí está. El usuario especificado no existe. Eso es exactamente lo que queremos. Queremos saber si el usuario no existe, porque si no lo hace, en realidad
podemos crear una cuenta e iniciarla. Entonces es realmente genial. Algunos servicios no te dicen esto. Si algunos servicios, si tienes la contraseña equivocada o si cuentan no existe, o si no hay Internet, lo que sea, no
son Internet, sino otros herederos. Simplemente te dará el mismo aire de vuelta y no puedes manejar así. Pero como firebase sí le da un Ares específico de vuelta, podemos manejar esto de manera adecuada. Entonces eso es genial. Sabemos que negativo ocho es el código aéreo cuando no existe una cuenta. Entonces vamos a nuestras constantes. Y, uh, vamos a hacer una sección llamada códigos de estado, así que debilita Reúsalo. Um, y diremos que vamos, uh, status. Ah, cuenta no existe repentinamente, para mí equivale a ocho negativos. Ese es el código de aire exacto que nos está dando aquí mismo en la parte inferior derecha. Está bien, está bien. Por lo que dejemos cuenta de estado. No hay salida. No existe ninguno. Y por cierto, yo a menudo dependiendo de, um, está haciendo esta sección aquí para llamadas teclas, dependiendo del tipo de constante. Divertida. Siempre pongo el nombre real delante de él. Eres como, Bueno, eso suena raro. Segway Primer estado primero. Bueno, la razón por la que lo hago, es un digamos que tenías 15. En realidad podría simplemente escribir la palabra status y solo el entrenador de status o pop up y
habrá 15 de ellos en lugar de como tener la palabra status y luego cualquier cosa con la letra
s aparece. Entonces por eso hago eso. De acuerdo, entonces tenemos sus abrigos de estatus. Lo que queremos hacer es decir, si el código de punto aéreo es igual a estado, cuenta en existe, sólo
estamos usando. Eso siempre es hacer un matón en la ecuación aquí. Condicional. Entonces si la cuenta no existe, queremos realmente crear un usuario llamado servicio de datos. Daddy s dot ref basado. Vamos a obtener el punto de referencia base Crear usuario. ¿ Y cuál queremos? Fue sólo este top de aquí está bien. Entonces el email que acabamos de pasar en el email la contraseña va a ser ah p w d. Y con bloque de finalización, eso está bien ahí. Y vamos a seguir adelante y deshacernos de algunas de estas cosas. Y lo que queremos es aire. Y hay otro. Quiero un segundo parámetro llamado resultado. Está bien. Y me está dando actitud aquí. ¿ Por qué me estás dando actitud? ¿ Qué olvidé? Correo electrónico. Contraseña con bloque de finalización. Oh, necesitaba, uh, necesitaba el otro, en realidad. Perdón, mi mal. Mi servicio de datos malos dot ds dot Ref bay stuck. ¿ Estás creando Derecho Usado. Genial. Crear usuario. Pero queremos el 2do 1 en su lugar. Ahí vamos. Contraseña de correo electrónico. Está bien. Despojarse de algo, ¿eh? Acabo de fumar. Algo va. Estaba fastidiando. Te estoy metiendo la pata por tu ventaja. Y ese es en realidad el resultado de la verdad. Uh, vale, entonces estamos creando usuario, eso es todo. Eso es todo lo que está pasando aquí. Ahora, piensa en esto. Lo que causaría que una creación de cuenta se sintiera bien, probablemente solo caería si, al
igual que no se cumplieran los requisitos de contraseña. O si esa cuenta ya existía de nuevo, puedes manejarlos. Se puede imprimir el aire, abrigos en las situaciones y hacer justo como lo hicimos en este momento, poner un código de estado y hacer un aire específico para eso. No vamos a hacer eso. Sólo vamos a manejar si falla o tiene éxito. De acuerdo, Entonces si el aire no es igual a arrodillarse significado, si hay un aire, sólo
vamos a llamar a sí mismo que el miembro de alerta de show son función de alerta, y sólo vamos a decir que no podía crear cuenta. Y el pozo, sólo el mensaje va a ser un problema. Creando cuenta. Prueba otra cosa. Y de nuevo, probablemente
querrías descomponer esto un poco más. Consulta los diferentes códigos aéreos de las órdenes de cuenta. Esto Lo siento. Esta cuenta ya existe Si la contraseña no es válida como si fuera sólo un carácter. Y necesitas cinco. Ya
sabes, se podría decir que no hay suficientes personajes. Por favor ingresa carácter en este fort pastor en este formato, deberías manejar los específicamente solo te estoy diciendo que puedes No vamos
a hacerlo por el bien del tiempo. OK, tan genial. Entonces si hay un error para hacer esto, lo contrario significa que creamos con éxito la cuenta. Y entonces, ¿qué necesitamos dio? Necesitamos iniciar sesión. Entonces OK, entonces cuando sí creamos cuenta, sin embargo, lo que quiero hacer es volver a guardar esa idea de usuario, igual que lo hicimos antes. Entonces tenemos que hacer eso aquí. Por lo que es el usuario por valores predeterminados que el usuario estándar establece el valor. Y esto va a ser, um ¿Qué va a ser? Tenemos que llegar a ti. Yo primero, ¿no? Esto va a ser resultado dot Oh, es un diccionario. Entonces, um, ahí vamos. Y de hecho, aquí
podemos usar nuestra llave. Ha, Otro lugar donde podemos usar eso y para una llave. Y, um cool. Entonces lo que está diciendo aquí es Hey, ve a tu conjunto de valores predeterminados de usuario estándar. Y en realidad estamos agarrando el resultado ahora, resultado aquí es un diccionario, ¿vale? Y así en realidad tiene exactamente el mismo valor de nombre del objeto. El nombre clave es exactamente el mismo nombre que lo nombramos en nuestra biblioteca o en nuestras constantes. Por eso podríamos usar el mismo nombre. Entonces estoy agarrando ese valor para esa clave hacia fuera, y luego lo estamos guardando aquí en nuestros valores predeterminados de usuario estándar con esa misma clave. OK, así que eso es realmente genial. Simplemente reutilizamos algo, así que no se confundan. Es dos cosas diferentes, pero lo estamos usando aquí, así que OK, um, estamos guardando la llave. Y ahora solo necesitamos el login. Entonces servicio de datos punto ds y ya estamos haciendo esto en otro lugar. Simplemente lo volveremos a hacer fuera del usuario. ¿ Y qué? Pasando el correo electrónico y la contraseña con el bloque de finalización. Y, ah, otra vez, sólo
podemos sacar esto de aquí. Podría decir aire llamaremos a un aire diferente ya que ya que hay un árabe. Ya están aire dirán fuera de los datos. De acuerdo, entonces si nos
logramos, en realidad,
102. App: muestra la parte 6 - Post TableViewCell UI: Hey, todos, Mark Price aquí, Deb slobs dot com. Y hoy vamos a seguir adelante con nuestra aplicación mostrada, nuestro clon tipo Facebook encendido Y esto es lo que vamos a estar haciendo hoy es solo construir la U Y para los elementos reales de la lista. Imagina que este es tu feed principal, como en Facebook, y puedes ver todas las publicaciones. Podría tener una imagen. Puede tener Ah, manojo de texto aquí. El Texas Extra Scroll. Dejas de enlazar y ahí está a las ideas. Oye, vamos a desolar Showcase en Construí esta nueva app porque estoy tomando el curso. Voy a publicar imagen del mismo. Puedes conseguir likes. La gente puede hacer clic en el corazón y le gustará y luego muestra los likes aquí que el número y luego le gusta. Y este es el nombre de usuario. Y este es el perfil del usuario en DSO. También hay algunas otras cosas,
también, también, Como que se está peinando aquí mismo. Entonces veremos lo que tenemos son esquinas redondeadas, un poco sombrío y esas cosas. Todo esto es costumbre. No sacas eso de la caja. Y, uh entonces, sí, hay algunos artículos aquí Todos son iguales ahora mismo, pero esto es todo estático. Simplemente estamos creando la célula prototipo que podría ser reutilizada en el futuro. Lo estamos consiguiendo, mirada
del dedo
del pie, de la manera que queremos, va a tomar un poco de esfuerzo, así que va a estar en su propio video como lo vamos a hacer ahora mismo. Así que adelante y abre tu proyecto. El cuando hayas estado trabajando, lo tiraré. El mío aquí mismo está bien, también. De acuerdo, cerraremos este simulador aquí, y aquí vamos. Y, uh, última vez que dejamos poder iniciar sesión con correo electrónico o con Facebook, lo cual es realmente genial, ¿eh? Entonces lo que queremos hacer ahora es conseguir el tú voy para la siguiente pantalla. Por lo que no demasiado grande de un trato también estará funcionando. En su mayoría estar trabajando un constructor de interfaces hoy en día. Así que sigamos adelante y abrimos el constructor de interfaces y, uh, tirarlo aquí mismo, ver qué tenemos. Entonces tenemos una vista aquí, pero es solo una vista azul vacía. No está haciendo nada. Y sabemos que necesitamos poner esto en un controlador de navegación, Así que sigamos adelante y hagamos eso Ahora haz clic en tu controlador de vista aquí. Y si no tienes un controlador de vista, por alguna razón nunca llegaste a ese punto. Simplemente arrastra un nuevo controlador de vista en, o podrías conducir un controlador de navegación dragon Innovation porque eso es lo que
vamos a estar haciendo. Así que haga clic en su controlador de vista aquí si existe, y vaya al editor, vaya a incrustar en controlador de navegación. Por lo que la siguiente porción de nuestra app solo queremos estar en un controlador de navegación para poder entrar , empujar vistas y gestionar las cosas por nosotros. Eso eso es genial. Y, uh, lo que queremos hacer es tener,ya
sabes, ya
sabes, como la imagen de los usuarios, el nombre del usuario, el corazón, el botón me gusta. Entonces eso es lo que va a subir aquí arriba en la parte superior. Entonces vamos a tener texto e imagen. Entonces sigamos adelante y pongamos una imagen. En realidad, lo que necesitábamos primero, Mis disculpas es una mesa de ustedes como lo primero que necesitamos una mesa de ustedes para cubrir
toda la pantalla. Está bien, se ve bien. Tenemos su mesa de ti y vamos a ver aquí Queríamos,
uh, uh, tener algunos márgenes aquí, así que está bien. Y estoy dejando la bota, el fondo azul encendido justo por ahora. Sólo Teoh sólo para asegurarme de que pueda ver qué es lo que pertenece a qué, Algunos minutos siempre que las cosas. ¿ Por qué? Es difícil decir qué es qué. Entonces ahí está nuestra mesa de ustedes. Voy a fijarlo cero desde arriba y los márgenes están encendidos. Eso está bien. Cero desde la izquierda, desde la derecha, cero desde abajo. Perfecto. Ahora justo aquí en el fondo. Justo dentro. Selector, vista de
tabla así y arrástrelo justo aquí. Y voy a cambiar el fondo de esta vista de tabla. Vendo, um, a amarillo sólo para que pueda ver lo alto que es. Y obviamente no es lo suficientemente alto porque estos son postes bastante grandes. Entonces, solo hagámoslo un poco más grande, para que el amarillo sea nuestra célula. Y eso es lo que realmente estamos estilizando aquí hoy. Entonces si recordamos bien, la parte superior tiene una imagen del usuario. También tiene el nombre del usuario tiene el botón de corazón en el que se podría hacer clic, que tiene el número me gusta, y luego la palabra me gusta. Entonces sigamos adelante y solo empecemos a tirar cosas aquí. Um, en realidad, antes de hacer eso aunque pensar en ello un poco más. Entonces lo interesante de las vistas de tabla es que esto es importante para que lo entiendas. Caso, ¿Recuerdas esta tabla ver celdas? No están separados, decir, como si alguna vez hubieras visto una aplicación donde haya una brecha así,
la que acabo de mostrarte donde hay una brecha entre cada post, esa pequeña brecha, es en realidad simulado. En realidad no es por defecto celdas de vista de tabla. Todos están conectados, y no hay espacio entre ellos. Entonces lo que queremos dio es tomar en lugar de simplemente poner las cosas al borde del contenido aquí porque eso nos va a hacer conectarnos. Queremos poner aquí como un contenedor tuyo que lo sostenga, y eso no está conectado a los bordes. Por lo que simula que su espacio. Y luego ponemos esto del mismo color que el fondo. Entonces primero, lo que necesitamos hacer en realidad es en nuestra vista de tabla aquí en nuestra vista de contenido necesitábamos poner un tú que veo aquí, va a ser nuestro contenedor de ti. Está bien, tienes arrastrándote aquí Perfecto. Y lo que voy a hacer es, uh creo que está bien ir completamente a la izquierda hacia la derecha. Pero es la parte superior y la parte inferior en la que queremos ese espacio. Así que justo ahí, y, uh, voy a asegurarme. Entonces, ¿esa es tu desde arriba? Porque ahí hay un margen que debería estar bien y cero desde abajo. Eso está bien, también. Tenemos un poco de margen ahí, así que debería salir bien. Jugaremos con si no lo hace, porque queremos ensombrecer el espectáculo ahí debajo. Queríamos lucir realmente cool. Entonces Ok, entonces ahí está nuestra vista de contenedor que voy a presionar enter en esta vista del lado izquierdo . Simplemente llámalo contenedor. Entonces sabemos a qué pertenece. Entonces ahí está nuestra vista de contenedor, y vamos a seguir adelante ahora y ponernos nuestro objeto. Entonces conseguimos una imagen. Pongámoslo aquí mismo. Eso es demasiado grande. Vamos, sólo arrástrelo más pequeño aquí. ¿ De acuerdo? ¿ Tienes una imagen? Um, tenemos una etiqueta. Ve justo al lado ahí, y seguimos adelante ahora mismo y cambiamos la fuente de sistema a personalizado y de Helvetica nueva a Noto Sands porque esa es la diversión que estamos usando en su AP. Esto sería audaz, y entonces va a ser Son impresionantes. Color rojo, ¿sabes? Por lo que esto sería como cazador de demonios 40 31. Ahí vamos. Se ve bien. Entonces me dieron un nombre de usuario lo hacen un poco más grande allí. Necesitamos otra imagen para el corazón. Ahora, no
estoy usando un botón para el corazón, porque el botón solo tiene algunos problemas inherentes con el tamaño y cosas así. Por lo que usamos una imagen y más tarde en un gesto de tap, reconocemos para que pueda funcionar como un mordisco. Entonces este sería nuestro corazón. Y vamos a seguir adelante y agarrar esos gráficos. Ahora, ya lo
tengo aquí. Ahora también están disponibles en la fuente y en el recurso está Así que voy a agarrar mis objetos. Uh, de una carpeta de aquí. Lo tengo justo aquí. Y no cambies el nombre de la ciudad. Sólo pantalla. Ese es nuestro pokey mazos. App que queremos usar como imagen de ejemplo aquí. Y esa es una foto de perfil mía. Será mejor que no te vea poniendo eso tiene tu fondo de escritorio, ¿alguien? A menos que seas chica realmente caliente. No creo que mi esposa estuviera escuchando, así que está bien, todos modos, uh, sólo bromeaba. No me meto en problemas. Um, tan corazón vacío, Pantalla de perfil
completo. Ahí vamos. Um Ok. Entonces nos sacamos todo eso ahí. Enfriar. Quiero decir, cierra esa carpeta aquí. Muy bien, así que sigamos adelante y pongamos esas imágenes ahora. Entonces, imagen, vamos a decir su perfil y este es nuestro corazón va a hacer el corazón vacío. Está bien, eso se ve bien. Sí necesitamos los gustos totales, y luego el total de las vistas son no, los gustos totales. Y entonces la palabra le gusta a sí misma. Eso es lo que estoy tratando de decir. La bondad ni siquiera puede hablar. Entonces vamos a copiarlo y pegarlo por ahí. Uh, voy a escribir Alinearlo. Lo voy a cambiar de rojo a gris oscuro aquí mismo. Y ah, así que quiero Boulder regular. Todavía no estoy seguro. Probemos con regularidad ahora. Haremos audaz. A mí me gusta. Entonces esto tendrá el total como para que lo sepas, no
creo que sean más de 20,000 o no creo que esté consiguiendo esos dígitos. Creo que me quedaré como estos dígitos para que solo pudiéramos probar con esto. De acuerdo, así que no lo necesitamos tan grande. Simplemente hazlo por ahí y comandemos el comando C V Ponlo justo debajo de aquí. Y, uh, cambiemos esto a la palabra,
uh, uh, me gusta. No lo hagamos oscuro, Grey. Hagámoslo en realidad esta bonita luz. Genial. Aquí. Y si quieres ver ese color, es e cero e 00 y vamos a quitárselo de negrita y ponernos regular. Ahí vamos. Enfriar. A mí me gusta. Está bien. Y esto puede ser un poco demasiado ligero. Vamos a jugar con él más tarde si es así tenemos los objetos que necesitamos. Ahora, lo que queremos hacer es poner todo aquí en vistas de pila y la razón por la que vamos a apilar vistas ojos porque, um, sobre todo mesa de ti vendes cuando escondes una vista de pila, um, como, hazlo oculto. En realidad de forma automática. tamaño es para ti, cual es tan genial, y no obtienes eso fuera de las vistas de pila muy fácilmente. Y así un usuario puede o no querer publicar una imagen. Y así queremos con todo esto estar en la alineación de personal realmente agradable. Entonces vamos a seleccionar los gustos aquí, Ponerlos en su propia pila. Ver una pila vertical. ¿ Ustedes estos dos? A ver. Ah, los tres solo pondrán esto en una pila horizontal para ti. Está bien. Y, uh, eso se ve bien. Um bien, así que tenemos que apilar, tenemos que apilar vistas aquí. Um, vamos a ver. ¿ Qué más? ¿ Qué más queremos dio? Ahí hay diferentes formas en que podemos debilitar. Apila esto. Uh, así que conseguimos esas dos vistas de pila. Pongamos esas vistas de pila. Um, dentro de otra vista de pila. Creo que eso tiene más sentido. Así que hay que apilar vistas. Sí. Um, sí, ese es tu trabajo. Bien. Entonces tenemos que apilar estos aquí. Vamos a seleccionar ambos y ponerlos en una vista de pila horizontal. En realidad, no
necesitábamos hacer eso. Vamos a deshacer esa pila. El que acabo de hacer comandar Z, vamos como estos tres y luego el apilamiento, y vamos a poner esos en el saqueado horizontal te perdonas por Ya sabes, estas apilan dos cosas aquí. No quiero solo no quiero sólo irme. Ya sabes, no
compro a Adam número por número. Específicamente lo estaban haciendo. Ciertamente, quiero que veas las diferentes formas de usar Stack Stack. Estos son a estrenar. Hay muchas formas de hacerlo. No hay un solo camino correcto. Entonces ver cómo cambiamos y jugamos alrededor piensa muy importante. No creo que te estén engañando aquí. En realidad estás obteniendo un beneficio mayor al vernos probar cosas diferentes aquí. Entonces sigamos adelante. Tengo todos los seleccionados Vamos a seguir adelante y hacer una vista de pila horizontal. Eso es lo que quiero. Ahora, antes de empezar a usar restricciones, quiero conseguir todo el resto del lugar hawaiano para que podamos poner todos esos y apilar vistas . Um, si recuerdas las noticias de pila correctas, trabaja mejor cuando tienes todos tus artículos dispuestos primero y luego los pones. Juntas todo tu fusible de pila, y luego dispones las restricciones, no de antemano. Entonces lo que sabemos que necesitamos a continuación también es ese texto como ese describe tu app. Oye, este es mi Abbott. ¿ Esto está en esto? Podría tomar enlaces, y así vamos a hacer algo nuevo hoy. Se llama vista de texto. Tú yo vista de texto y una vista de texto escalable, pero puede detectar enlaces y eso es lo que queremos. Entonces voy a ir por aquí y arrastrar una vista de texto justo debajo de ella, y vamos a seguir adelante y simplemente arrastrarlo ahí fuera. Um, eso está bien. Por ahora, la fuente que vamos a cambiar de sistema a personalizado. A Noto Sands, eso me parece bien. El color, aunque vamos a hacer este gris oscuro sólo para ser consistentes. Y luego aquí hay algo realmente importante. No queremos comestibles. Apague eso. No quiero que la gente sea como cambiar eso. Pero lo que sí queremos es seleccionable porque cuando es seleccionable, significa
que podemos poner la detección de enlaces y los enlaces tecnológicos y abrirla y la tienda APP. Entonces si quieres publicar tu app para que la gente pueda descargarla, gente puede hacer clic en ella y se cargará la tienda de aplicaciones. Entonces ahí está nuestra vista de texto. Bien. Um, no
me importa una lima ni nada por el estilo ahora mismo. Todo esto se ve bien. Entonces ahí está nuestra vista de texto. Lo último que necesitamos es una imagen que vaya por debajo de ella justo aquí. Adelante tipo de imagen y lo que ha puesto esto aquí mismo. Y sé que no es del tamaño correcto en este momento, pero eso está bien, porque todo esto va en una vista de pila. Así que selector imagen aquí. Y ah, este va a ser sólo pantalla. Sí, y queremos que queremos aspecto sentir aspecto, ajuste Look un poco raro en diferentes pantallas como realmente no quieres eso con aspecto Sue . Siéntete como que mostró una instantánea de ello. De acuerdo, así que trato genial. Vamos a seguir adelante y seleccionar este personal superior te esta vista de texto medio y luego esta imagen y vamos a hacer clic en el botón de vista de pila justo aquí. Entonces esos ahora están todos en una vista de pila ahora su curso fuera de la pantalla, que no es saber. Entonces vamos a seguir adelante y hacer clic en este botón de restricción, y ahora lo vamos a constreñir y ¿queremos el's encendido? El borde está completamente en los bordes. ras con el borde es de la vista. Pensemos en eso aquí. Entonces la vista va a mostrar sombra alrededor y esas cosas. Entonces, no, creo que mantenerlo limitado a los márgenes es lo que queremos. Entonces cero desde el cero superior desde la izquierda está bien. Cero desde la derecha y cero desde abajo. Vamos a constreñir los márgenes de Alta y, uh, notemos cómo ahora es? Um, se está alineando justo como esperaríamos que lo hiciera. Entonces ahí está nuestra vista de pila. Vámonos. Nos deja. Yo lo sé. Vamos, nosotros, Wells, dame dolor aquí. Yo quiero apilar vista Teoh. Podemos cambiar la altura aquí, otro con su no dejar que lo intercambie Pero es lo que está diciendo es que va a ser 124 más grande cuando la aplicación realmente corre llegó. Y así Está bien, así que sigamos adelante y muevo las pilas Pocos. Ups. Camino equivocado. Esta pila me un poco aquí en el medio solo para que se vea mejor línea otra vez. Los números no importan lo que estés viendo aquí, porque, um, va a quedar bien cuando realmente cargamos en la vista. Y sé que la vista previa no suele funcionar. Bueno, vamos a dar clic a estos distantes editor y cambiarlo para previsualizar y solo a ver qué
nos da aquí. De acuerdo, entonces este es un iPhone de cuatro pulgadas? Sí, se ve un poco apagado. ¿ De qué? En realidad lo queremos. Um, Así que definitivamente estamos queremos cambiar algunas cosas alrededor. Sí, es, uh, es
Es ser, uh, es ser tonto en la pantalla aquí. No se puede confiar en lo que se ve. Así que cerremos esa vista previa ahí y sigamos adelante y solo trabajemos en nuestra vista de pila aquí. Así que echemos un vistazo a este Top one Aquí está la vista de la pila superior. Entonces éste sostiene aquí todas estas cosas horizontalmente. Y entonces lo que queremos hacer con sus artículos horizontales es la pregunta para que puedas jugar aquí con ella para que podamos dar click, uh, sentir que ya está seleccionado. ¿ Qué tal sentir proporcionalmente? De acuerdo, No
parece estar haciendo mucho, pero vamos a poner algo de espaciado aquí, sin embargo. De acuerdo, Ahora tenemos algo de espaciado. También voy a esta imagen aquí. Vamos así y cambiémoslo a ajuste de aspecto. ¿ De acuerdo? Y ya que su corazón Teoh aspecto encaja ahí vamos. De acuerdo, entonces es el espacio outs. No Es del todo lo que busco, sin embargo. Se
ve, se ve un poco, uh, no
sé, un poco raro. Entonces sigamos adelante y veamos si solo podemos poner el con en esta imagen misma. Si eso nos va a ayudar aquí. Vamos a poner el con dos en la altura. 2 50 y 50. Aquí vamos. Está bien. Se ve bien el personal. Nos ha dado algo de dolor aquí. Vamos, uh veamos si podemos darle una m Eso es tan raro. No suele hacer esto. De acuerdo, vamos a ver si podemos conseguir una pila de uso. Um, es como un fijo con por ahora son un mínimo con, al
menos así con va a ser al menos 320. Está bien. Y lo que sí dirá ir aquí al fallo dirá mayor o igual a 320. Está bien. Um bien, yo esta cosa de la fuente de la cazadora de demonios aquí. Adelante. Y, um, vamos a darle un Estoy dando clic aquí al inspector de atributos. Y vamos a seguir adelante y darle un tamaño de fuente en lugar de un fijo y autocontracción. Esa es una escala de fuentes mínima en Digamos que 0.75 incluso bajar dos puntos. Tan bueno, incluso
se está actualizando en tiempo real. Agradable. Recuerdo haber hecho eso. Esta es nueva X coda. Beta siete Exco siete, beta seis. Perdón. Entonces creo que tienen algunas cosas nuevas más bonitas pasando aquí. Aquí está nuestra imagen. Eso está bien. Uh, esto se ve bien aquí, también. Entonces creo que está bien por ahora. Um, creo que esto está bien. Y creo que esto está bien, así que tengo curiosidad por cómo se va a ver cuando realmente lo ejecutemos, porque en esto en el simulador de aquí, es como un célibe aquí fuera. Pero vamos a seguir adelante y conseguir algo de código aquí y ver si podemos probar esto. Entonces lo que queremos hacer es que sólo tenemos un controlador de vista aquí, ¿
verdad? Y deberíamos arrastrar esta carpeta de control interior Y si aún no has creado tus carpetas de controlador de vista
modelo y, uh para que podamos poner estas cosas ahí. Entonces sigamos adelante y creemos un nuevo archivo en esa carpeta. Vamos a llamarlo cacao Touch Class. Y llamemos a esto, um, bueno, la cuota, como una fuente de facebook. Entonces el feed VC for review controller y esto sólo vas a ser tú. Yo veo controlador. Y, por
supuesto, agregó texto no deseado del final. Y, uh, se ve bien. Tienes tu controlador. Entonces lo vamos a hacer es configurarlo para nuestra vista de tabla. Alguien llega tarde esta cosa calderosa que no necesitamos y empezamos a poner la mesa aquí. Entonces estoy outlet semana de nuestra vista de mesa sobre esto va a ser tú una vista de mesa y eso se ve bien. Entonces sigamos adelante y pongamos al delegado. Por lo que tienes una mesa de tu delegado. Tienes una fuente de datos de vista de tabla para que pueda llamar a las funciones adecuadas que vamos a necesitar a la vista. ¿ Cargar tabla vista dot delegado igual auto tabla, vista
tabla punto Fuente de datos igual auto. De acuerdo, así que eso es bueno ir. Ahora necesitamos implementar las funciones aquí, así que ah, número de secciones en vista de tabla, devolver una sección y luego una vista de tabla. Estas funciones no aparecerían si no implementáramos esas. Delegar esos protocolos allá arriba. Queremos un número de filas. Entonces un número de filas y sección y vamos a regresar tres sólo para que pudiéramos ver, ¿
Como qué? Sería como Simulador tres dispositivo, tres filas. Y luego necesitamos una tabla de ustedes venden fero en ruta de índice. Está bien. Y, um, aún no
hemos creado una venta personalizada. Entonces por ahora, solo para deshacerte del aire digamos que te devuelvas una mesa de que vendes, y entonces ¿qué más necesitamos? Bueno, creo que eso es todo lo requerido por ahora. Entonces tenemos el que tenemos. Tenemos todas las cosas que necesitamos para la vista de tabla. Um, Ahora, el problema es
que, uh, no nos va a mostrar nuestra venta personalizada porque aún no tenemos un auto personalizado creado. Entonces en tu carpeta de vista por aquí. Está bien. Correcto. Haga clic y haga nuevo archivo. Y vamos a hacer clase de toque Coca porque esto es una vista. No es un controlador, es una vista. Y vamos a decir, um, post venta porque es ah, post up. Um, es un post. Es una mesa de ti mismo. Entonces tienes una mesa. ¿ Vendes, dado que la chatarra que ponen en su y, uh, adelante y pulsa siguiente y crea. Y esta es nuestra venta. Realmente genial. Entonces lo que podemos hacer es poner nuestros puntos de venta aquí. Estaría semana outlet de nuestra sabemos que tenemos una imagen de perfil, así que imagen de perfil de ti vista de imagen, y solo voy a poner las que quiero modificar en este momento. Uh, que en realidad es sólo el, um es sólo la,
uh la imagen realmente va a hacer que se convierta en un círculo. Todo lo demás está bien. Todo lo demás está bien. Entonces sólo esa para ahora y después despierto de punta Um ¿qué es Will dio? Ah, bueno decir imagen de perfil punto Radio de esquina o capa de puntos proporcionar imagen que capa
radio de esquina de punto igual perfil Marco de imagen de ese tamaño que con dividido por dos. Recuerda, si quieres conseguir un círculo completo, te llevas el con de invitados alrededor de dos. Pero me acabo de dar cuenta recuerda, no
va a funcionar despierto de NIB porque en este momento, no
sabemos el tamaño. Todavía no se han juntado los tamaños y las restricciones para nuestro para nuestras cosas. Por lo que realmente necesitamos Dio está sobre un empate naufragado. Aquí es donde necesitamos escribir nuestro código. Escribe el código Teoh a la vuelta de esta esquina porque esto va a suceder después de ah, imagen
de perfil tiene un marco en tamaño. De acuerdo, entonces ahí es donde lo haremos ahí mismo. Y, uh bien, así que tenemos una venta personalizada aquí, así que volvamos a nuestro tablón de cuentos principal y haga clic en tu Así que haz clic en tu vista o lo siento. Tu celda de vista de tabla aquí mismo. Este tipo de aquí y ve al inspector de identidad y cámbialo a post celular. Y ahora, si haces click a la izquierda por aquí y mirabas por dentro y a la derecha, haz click en él. Ahora deberías ver la imagen de perfil, y solo puedes arrastrarla hasta la imagen de perfil. Y eso ahora debería ser una, uh que ahora debería ser una,
uh, uh, una imagen redondeada cuando entramos a la aplicación y la ejecutamos. Una cosa más, sin embargo, en esta vista de pila principal aquí, quería agregar algo de espaciado en esta pila vertical. Uso, digamos cinco entre cada elemento. Enfriar. Entonces eso es costumbre. Eso es costumbre. Está bien. Y luego una cosa más. Eres como dijiste Una cosa más, como tres veces. Yo lo sé. Perdón. En este identifique o en su post venta. Entonces en la propia célula, los lectores se identifican, Sólo llámalo post venta. ¿ De acuerdo? Sólo estoy copiando eso. Y ahora vuelve a tu punto de vista,
En realidad, En realidad, ¿por qué? Estamos aquí, En realidad, aguanta el controlador de vista. Correcto. Haga clic en él y conectemos nuestra vista de tabla por qué estamos aquí. Um oh, necesitamos cambiar la clase de controlador de vista a un buen pensamiento. Gracias. Haga clic en el inspector de identidad en el controlador de vista. Y cambiemos esa clase. Teoh la alimentación Veazey todo lo que conoces. Ahora, si haces click derecho feed V C U c r tabla vista ahí y solo lo arrastramos sobre el aire vamos. Ahora vuelve a tu feed V. C. De acuerdo. Y en lugar de devolver esto, vamos a devolver una tabla de ustedes punto de que razonable con identificador Ponga en eso y sólo
vamos a decir como, um vamos a decir, como post venta ahora, normalmente, no lo
haríamos de esta manera, y no vamos a ir a terminar que esto es solo una prueba porque esto potencialmente podría chocar la aplicación. No lo hará, pero podría,
uh, Entonces, ¿qué? Solo lo estamos probando ahora mismo. Entonces del oro que estoy tratando de lograr es cuando ejecutamos esto, podemos ver 33 de nuestras celdas de vista de tabla y que se ven bien. Si no se ven bien, vamos a tener que volver y arreglarlos y atarlo. Entonces estoy construyendo y corriendo aquí. Um, y si tenemos alguna colisión. Will también se encargará de los de
aquí . Aquí vamos. acerca APS. Esperemos que ya nos inicie sesión y nos lleve a la pantalla Queremos ir a. Está bien. App se está cargando. De acuerdo, así lo hizo. Nos costó dos. Nos llevó a,
um, um, la pantalla de vista de tabla. Pero parece que aquí hay algunos problemas que necesitamos hacer Necesitamos trabajar. De acuerdo, para una es, no
vemos nuestros logotipos y etiquetas y cosas aquí. Se han ido, lo cual es un problema. Siento que esta imagen va demasiado lejos de sus límites. No creo que deba estar haciendo eso. Um, así que tenemos algunos problemas. Se ve feo. Entonces vamos a ah, hagamos unas cuantas cosas. Acude a tu correo celular y sigamos adelante y pongamos, um son nuestros, um nuestra imagen de la app nuestra imagen principal aquí. Por lo que estoy outlet semana de nuestra voluntad llamar a este escaparate imagen de ustedes vista de imagen. Lo que queremos hacer es ah en esto así como en la imagen de perfil que yo para chicos queremos Teoh. Queremos decir clip a límites es verdadero, y luego por aquí diremos imagen de escaparate. Um, ese clip a límites equivale a verdadero. Básicamente, simplemente no queremos No tenemos la imagen para aparecer fuera de donde se supone que debe ir. Y así vuelve a tu storyboard principal y vamos,
uh, uh, vamos a dar click. Vamos a dar clic a tu, uh, tu puesto vendo aquí, Right Click it and ve a, um, vamos a mostrar imagen aquí mismo. De acuerdo, ahí vamos. Y eso se ve bien. Está bien, s Eso está bien ahí. ¿ Qué? ¿ Qué? ¿ Cuál era nuestro problema aquí? No estábamos viendo las imágenes y esas cosas, Así que soy un tema matutino si retrasando. Entonces si yo Si abro esto aquí un poco más, cerremos este lado izquierdo aquí. Es más espacio. Um, tenemos una vista de pila y en esta vista de pila justo aquí y luego hay una textura. Y luego está esta imagen. Simplemente siento que la imagen va más allá de su equilibrio y está cubriendo todo lo demás, Pero en caso de que no
lo sea, lo que quiero hacer es tomar esta vista de pila aquí y simplemente ponerla debajo. Eso no es lo que quiero hacer. No importa. Uh, creo que esto arreglará el tema. Vamos a darle un tiro. Construyamos y corremos. Olvidé las vistas de pila cuando lo pones en la parte inferior. Cada orden una pila vista en realidad no cambia las letras en él. Entonces veamos cómo se ve esto. De acuerdo, entonces ese fue el problema. La imagen iba fuera de los límites. Y así el clip para rebotar realmente funcionó. Dulce. Eso es genial. Estamos progresando aquí. Entonces algunas cosas buenas son Esto se ve realmente bien alrededor de una imagen. El corazón. De verdad me gusta. De acuerdo, Lo que no se ve bien ya que todavía tenemos este fondo amarillo en este fondo azul, recuerda, queremos esa bonita luz, gris. Adelante y juguemos con eso. Entonces haz clic en tu principal de ti aquí. El que ponemos el fondo azul. Acude a los atributos, inspector. Y cambiemos esto a, um, este color gris claro aquí. Son amables. Y entonces ah, en nuestra celda aquí, no
queremos un fondo amarillo. Queremos esto como Ray. Está bien. Y vamos a ver, vamos a correr esto y ver si eso cambia algo. Veamos dónde nos pone, ¿de acuerdo? Entonces ahí vamos. Observe cómo le estaba diciendo ese miembro. Al igual que las células mismas. Como si no lo hicieran. Uh uh. Naturalmente no tienen espacio. En realidad teníamos que construir ese espacio con una vista de contenedor. Y entonces tenemos esta cosa fea aquí arriba, que no sé qué está pasando con eso todavía. Echaremos un vistazo a eso
también aquí . Pero nos tenemos a nosotros mismos, pero tenemos un problema. No hay sombras en ellos. Um, y también esta línea aquí. Yo quiero deshacerme de eso. Entonces vamos a nuestro feed V c. Y vamos a nuestra vista de mesa. Haga clic en esa vista de mesa ahí y separador en el lado derecho Cambió la monja que
va a deshacerse de esas líneas en cada una. Um, pero el otro problema que tenemos es que todavía no hay sombra en la celda? Y si recuerdas, en realidad
escribimos una clase personalizada. Si abro el lado izquierdo y voy a ver recordar, escribimos esta vista material que hace esa sombra para nosotros. Uh, así que vamos. Y aquí es donde está la reusabilidad. Impresionante. Así es como realmente construiría una aplicación. Entonces haz clic en tu tablón principal de cuentos y luego encontraremos tu vista de contenedor, que es este tipo de aquí. Y lo que vamos a hacer es simplemente cambiar la clase a la vista material, Riggio, y genial. Y construir sobre correr de nuevo. Está bien, mira eso. Tenemos una sombra aquí. Esto en realidad se ve muy, realmente genial. Entonces tengo una sombra. A diferencia de en ella, nos dieron un fondo claro son como, gran fondo. Um, no
me gusta que esta barra de navegación aparezca en la parte superior. Creo que debe leerse. Entonces me voy a desplazar por aquí hasta el controlador de navegación y ver esta barra de navegación aquí mismo. Adelante y haga clic en los atributos, inspector. Y vamos a cambiar la tienda de la barra de la carpa aquí arriba para leer. Voy a volver a ejecutarlo y asegurarme de que se vea de la manera que queremos. Muy bonito. Muy bonito. Um
, está bien. Entonces mira estos. Estas células tienen sombras. Son un poco redondeadas. Um, la imagen está ahí Una cosa que no estoy viendo, sin embargo, si no sé si tampoco la estás viendo, pero no estoy viendo nuestra vista de texto. Um, así que vamos a hacer clic en nuestro texto para ti aquí y lo que queremos hacer. Vamos a darle un mínimo con Let's Say queremos al menos este alto. Entonces si hago clic en el clic en la vista de texto y luego hago clic en el botón pin y digo que la altura es 70 Vale, ahora no siempre queremos que se quede 70. Simplemente diremos Hacemos clic en la regla y
diremos, Vamos a hacer doble clic en esta altura Cabello quiere una mayor o igual a 70. Sigamos adelante y construyamos y lo ejecutemos de nuevo. Solo quiero asegurarme de que está ahí, y está funcionando como se esperaba, y ahí está. Se ve bien y hasta puedes desplazarlo, creo. Sí, para que también puedas desplazarla dentro de
ella . Se ve realmente bonito. Uh, se ve muy, muy bonito, en realidad. Entonces ahí está nuestra vista de mesa. Um, sí, esto es realmente genial. Se está juntando ahora. Creo que lo último que queremos es pincharnos a este extraño espacio en blanco aquí arriba, y creo que eso es solo nuestra vista de tabla. Entonces si haces clic en tu vista de tabla aquí y cambias el fondo a este gris claro que hemos estado usando, solo veamos qué pasa. Se va y se ve más bonito de nuevo. Esto es solo datos de prueba. Entonces, um, solo
nos estamos metiendo contigo. Y ahí va. Se ha ido. Entonces ahí está tu vista de tabla. Nosotros lo hicimos. Entonces lo que hicimos fue que acabamos de crear desde las vistas de pila, no
tengo ni idea de cómo se ve esto en el paisaje. Si quieres apoyar el paisaje, aquí no lo
estamos cubriendo. Pero siempre me gusta simplemente jugar con él y ver. Sí, se ve un poco feo en el paisaje. Todavía funciona, pero no lo que queremos. No quiere rotar para mí ahora tampoco. Vamos zona. OK, así que ahí está. Se ve genial. Tenemos una sombra tenemos nuestros controles son botones aquí. No vamos a conectar nada más en este video. Nosotros sólo queríamos conseguir esto Te vas. Ya viste cómo usar la pila. Usa múltiples formas alrededor de las cosas, y eso es todo. Sigamos adelante y pasemos a la siguiente
103. App: muestra la parte 7: cómo funciona la Firebase: Oigan, ¿qué pasa, todos? Mark Pricier. Deb pendientes dot com Y la última vez en nuestra forma de aplicación hizo grandes avances. Haciendo un poco de inicio de sesión femenino y configurando a ti. ¿ Por qué en la app tiene Facebook login? Y entonces lo que queremos hacer hoy es ah, esperando tu proyecto. Tengo el mío aquí mismo. Ya sabes, vas a archivar abierto reciente y de todos modos, um, hoy queremos empezar a trabajar con firebase consiguiendo datos para mostrar en la aplicación. Entonces, básicamente, lo que queremos hacer es cuando creas una nueva cuenta como usuario, queremos realmente guardar a ese usuario a base de fuego. Ahora mismo, es solo firebase gestiona su propia autenticación. En realidad necesitamos usuarios, ya
sabes, que podrían tener, como, perfiles y nombres y cosas así. Al igual que un perfil real. Tenemos que adjuntar eso a un correo electrónico. Slash es tu nombre o cuenta de Facebook? Tenemos que adjuntarlo a una cuenta. Um y también necesitamos que Teoh empiece a probar nuestros datos para hacer publicaciones, ver cómo sacar datos a la aplicación. Ahora, realidad no
vamos a mostrar en el por qué todavía, pero vamos a hacer este paso que te lleva a ese punto. Entonces aquí está nuestra app, y quiero hacer una cosa más primero es ir adelante y abrir un navegador. Acude a firebase dot com, inicia sesión, ve a tu aplicación, administra app, y deberías ver algo similar a esto. Esta es solo la aplicación base que tienes, y no tienes datos en ella. Bueno, lo que realmente es genial de la base de fuego es que puedes poner los datos de prueba aquí mismo en la base de datos y al instante se mostrarán en tu aplicación una vez que tu aplicación esté conectada. Entonces hablemos de cómo funcionan los datos en Firebase? Está bien. Y así la base de fuego tipo de funciona como Jason. Ya hemos hablado de Jason en el pasado. Un montón de campos de valor clave. No tiene un aumento, tiene objetos con llaves. Y entonces, ¿qué van a tener las aplicaciones basadas en incendios? Al menos al principio, va a tener dos áreas principales. Entonces voy a hacer clic en el signo más aquí, y va a tener un objeto llamado usuarios ahora. Usuarios, um, los propios usuarios es un objeto. Cuando digo miembro objeto, este es Jason JavaScript. Notación de objetos. Está bien. Esto es como un objeto JavaScript, pero está en Jason, así que queremos un nuevo objeto. Los objetos tienen claves y valores objetos, o, como un diccionarios y swift, tienen una clave, y tienen un valor. Por lo que queremos un objeto de usuario y el objeto de los usuarios va a tener todos los usuarios para nuestra aplicación. Entonces si tuviéramos 50 mil usuarios, esto aquí mismo tendría 50 mil valores clave ahora no sería una matriz Firebase no usa un aumento. Y eso es que podría ser un poco confuso para ti como,
Bueno, Bueno, ¿qué? ¿ Por qué no lo estamos usando bien? Tiene sentido usar una matriz, pero no usan una raza. Utilizan objetos con claves y valores únicos. Entonces aquí está nuestra matriz de usuarios. Es sólo un objeto, sin embargo, Así que tenemos un nombre. Adelante y haz clic en el signo más. De acuerdo, entonces el usuario, uh, es,
um, um, esa matriz de objetos, pesar de que en realidad no es una matriz. Y entonces lo que queremos dio es que cada usuario va a tener una clave única. Entonces sólo vamos a inventar uno por ahora mismo. Sólo por diversión. Ya sabes cuando firebase genera uso para nosotros. Pueden verse algo así. Tan sólo un puñado de números y letras tal vez más únicos que eso. Y digamos que eso digamos que eres tú yo me acordaría cómo empezamos a trabajar contigo . I ds Ok, entonces cuando iniciemos sesión con Facebook gran cuenta cuando creamos con contraseña de email y luego hicimos eso fuera de datos que te d Bueno, lo que vamos a hacer es vamos a almacenar que te d en un usuario aquí en base de fuego podemos mantener el seguimiento de y así la u i. D. Esta es la idea, y es la clave del usuario. Entonces solo lo estamos identificando como por el i. D. Y este es un objeto también. Entonces no tiene un valor click en el signo más, y ahora va a tener un valor, ¿
verdad? Aquí es donde tendría un nombre de usuario. Posteriormente,
la app configurará cómo poner en el nombre de usuario. Y tal vez este usuario nombre de este usuario es Ah, um Fannie Janney, 21. Ahora puedes hacer clic en el add ok, y es su derecho. Entonces lo que ha pasado es que tenemos una matriz de usuario um, recuerda su objeto. Pero esto es una matriz. Y dentro del camino. Tenemos a nuestro usuario único, y este usuario es un objeto, y tiene un montón de claves en él para que podamos agregar una nueva clave. Eso, por ejemplar, ¿Qué tendría un usuario? Um, creo que tendría un, uh Bueno, vamos a decir también qué tipo de proveedor es esto un Facebook? Es este correo electrónico in iniciar sesión. Entonces proveedor en
esto, éste va a ser contraseña. Una contraseña de email slash. Si fuera Facebook, eso diría Facebook. Entonces vamos a almacenar qué tipo de proveedor es esta cuenta. Vamos a almacenar el nombre de usuario. Um, para que lo sepas, hay un usuario. Si quisiéramos otro usuario, ya
sabes, tendríamos otra clave única, ¿
verdad? Entonces esto sería como, um, ya
sabes, algo así? Lo que sea. Y entonces agregaríamos las mismas cosas aquí, ¿no? Proveedor, Y éste podría decir facebook. Está bien. Y luego agregaremos una nueva clave para esto,
y, ah, ah, nombre de
usuario podría ser, um, ya
sabes, bosque para descansar. Para nosotros. Oh, chico. Yo puedo recordar. Está bien. Lo que sea. Por su Gump. Uh, tiene Forrest Gump es el nombre de usuario. Y agreguemos uno más nudos clave. Bien, en realidad. Entonces Ok, entonces así es como funciona basado en fuego. Tienes una matriz. No es realmente una matriz, sin embargo. Es un objeto, ¿verdad? Porque tiene llaves. Aquí está la llave. Y el valor es otro objeto. Entonces este es un objeto con claves y valores. Y así este objeto tiene a los usuarios en él. Estos usuarios son objetos mismos, y cada usuario tiene una clave en un valor múltiples claves, múltiples mentiras. En este caso, el proveedor de nombres clave, los valores nombre de usuario de Facebook, Forrest Gump. Entonces cada uno tiene sus propios proveedores únicos para que los usuarios Ok, entonces vamos a almacenar una lista de usuarios para la aplicación, porque vas a tener usuarios en la app que también vamos a almacenar. Y por cierto, esto son solo datos de prueba. Estoy visualizado ayudándote a visualizarlo aquí. Está bien. También vamos a almacenar publicaciones, ¿verdad? Entonces tendremos una serie de posts Eso también va a ser una matriz otra vez. Es un objeto, pero sólo voy a decir array de aquí en adelante, ¿de acuerdo? Y, ah, vamos a agregar um vamos a añadir un post y tan opuesto También va a tener una idea única. Cada vez que hagas un post, va a haber generado único I. D. Así que esto podría ser lo que sea que sea el único i d. Y por supuesto, el Post es un objeto en un Post tiene, como una descripción. Y aquí es donde el usuario sea como. Esta es mi primera app. Estoy súper emocionado. Conseguí un trabajo de esto, ¿sabes? Entonces está, ah, la descripción de ese post. Recuerda, hay una imagen o l ¿Verdad? Entonces imagina tu ale y Siskel encuentran uno. Vamos, uh, es una aplicación genial. No fresco ausencia hacer cool app. Vamos a buscar una app genial. Entonces sí, este usuario construyó esta aplicación simplemente agarrándola de internet, copiando a esta chica aquí sólo con fines de prueba. Entonces OK, así que este post tiene la descripción tiene una imagen o l o necesitamos almacenar los likes. ¿ Verdad? Me gusta tan total. A lo mejor esta chica tipo consiguió, ya
sabes, 50. Lo que sea. De acuerdo, así que aquí hay un post Tiene 50 likes. Um, eso es genial. Ahora, aquí hay algo interesante. A lo mejor te estás preguntando cómo hacemos un seguimiento de cómo se almacenan las publicaciones con el usuario. Esa es una buena pregunta. Ahora en, si tienes alguna experiencia con bases de datos relacionales, podrías tener una clave en un valor que tiene algunos tienen una relación, como uno a muchos oneto uno. Cosas como esa base de fuego es un poco diferente. Si quieres almacenar algo, tienes que hacer referencia que yo d. Así que cada usuario probablemente tenga a su dueño un llamado posts, y este es el post que específicamente han publicado. Y así vamos a dar click. Esto no tiene valor porque es otro objeto. Y aquí es donde enlistarías los puestos específicos. Y entonces lo que haces es así que tenemos ahorita tenemos un post, ¿no? Entonces digamos que este es el usuario que hizo esa publicación. Entonces el post ideas K h a d s f l k 23 como puedes ver aquí mismo, ese es el nombre del post que se hizo bien, Y entonces el valor que vamos a poner en realidad Ahora tal vez eres como yo soy tan bueno. Vistas. Bueno, antes que nada, no
tienes que entender esto completamente. Toma un poco de tiempo, Pero aquí está el punto de recordar cada vez que se hace una nueva publicación, vale, va a entrar en la matriz de Global Posts aquí mismo. Pero también queremos rastrear quién hizo ese post. Entonces al minuto en que alguien haga clic en ese
bollo y diga nuevos posts, lo que vamos a hacer es entrar en la matriz de posts de este usuario, como se puede ver aquí mismo, y vamos a añadir el post que se hizo. Entonces primero, vamos a generar el post único. Vamos a agarrar esta idea de ese post que sólo vamos a almacenar aquí mismo en que los usuarios posts, acuerdo? Y entonces lo que podríamos hacer es como más adelante en la app. Si quisieras mostrar toda la publicación que has hecho para eso te has hecho,
um, um, lo que podríamos dio es que podemos entrar en nuestra matriz de posts en este usuario, y luego tenemos todas las ideas. Y entonces así vamos aquí a este post array, sólo
agarramos todos los posts que coincidan con las ideas que están justo aquí. Entonces, cada vez que creas una nueva publicación en esta matriz por aquí, vas a guardar por aquí, y así es como funciona firebase. ¿ Eso es realmente? Es así como funciona Firebase. Así es como se hacen las relaciones. Almacenas referencias por el nombre clave y lo verdadero no significa nada. Es árbitro. Pude haber llamado a esta cuerda. Oye, ¿qué pasa? Puedo llamarlo cualquier cosa menos cierto es lo que Firebase usa para su referenciación. Entonces es arbitrario. No importa. Pero sí tienes que poner algo ahí, y solo quieres guardar la llave. Todo lo que estás diciendo aquí es Hey, esto existe. Por eso tener esta llave aquí dentro. De acuerdo, entonces hay un post, y está por aquí. Um, y así es como funciona. Por lo que este usuario ha hecho una publicación. Tenemos uno puestos en nuestra aplicación. Um, este usuario no ha realizado publicaciones. De acuerdo, Um, también, probablemente
queramos almacenar lo que le gusta hecho a un usuario. Por ejemplo, si haces clic, como en un on a post, ya
sabes, ya
sabes,
necesitas tener la capacidad de diferente a él, ¿
verdad? Pero ¿cómo puedes a diferencia de una publicación si la app no sabe qué publicaciones te han gustado, verdad. Necesita saber. Entonces también necesitamos tener,
uh, uh, cosa
equivocada aquí. También necesitamos tener ah en nuestro usuario aquí necesitamos tener una matriz llamada likes. Y por supuesto, esto va a tener Digamos que le gustó su propio post, ¿
verdad? Entonces me gusta vamos a la misma cosa exacta. Hey, h a d s f l k 23 valorado verdad. Lo mismo exacto aquí. Todo lo que estamos diciendo aquí es hey, aquí hay una matriz de la publicación que nos ha gustado Y luego te referías al nombre de esas publicaciones y luego Así que básicamente, cuando puedes hacer en la app es como vas, puedes decir si si este post que me estoy desplazando por eso me jalé hacia arriba Si tengo así , el botón debería ser diferente, Si no me ha gustado aún, entonces debería ser el botón me gusta para que lo puedas tocar. Entonces eso es algo que vamos a almacenar aquí. Entonces, para recapitular, hemos conseguido una matriz de publicaciones encendidas para hacer uno más solo con fines de demostración. Entonces digamos que este único yo d Se ve así. Está bien. Y luego, uh, supuesto tiene sus propios objetos de descripción. Esta fue una aplicación muy divertida de construir. ¿ De acuerdo? Y vamos a agarrar otra imagen de Internet sólo por diversión. ¿ De acuerdo? Y algunos de estos abdominales son feos. Oh, Dios. Esta está fresca otra vez. Está bien, Así que hay una imagen y s por aquí, y esta fue Añadir la imagen, Orel, Por cierto, esto es cosas en tiempo real. Esto se trata de datos reales en la base de datos. Cuando digo que está probado, en realidad
es real. Data it está hablando con Estás hablando con tu app,
um, descripción, descripción, imagen o L y luego me gusta, Correcto, Así que tal vez este tiene, como, 300 likes. De acuerdo, Así que solo finge que tenemos un par de posts en nuestra publicación nos preocupamos, cosa
que sí. Este es un dato real. Sólo estamos poniendo aquí para fines de prueba, y se ve bien. Entonces post ahí está el post. Tienen sus claves únicas, todos sus valores. Entonces usuarios. Aquí hay dos usuarios y nota cómo éste no tiene likes ni publicaciones. Bueno, él no tiene ninguno. Y no tiene que estar ahí si no hay ninguno, y eso está bien. Y de lo contrario, a
este usuario, le ha gustado una publicación y ha hecho una publicación. Y si tuviera, como a múltiples posts que podemos agregar eso aquí. Entonces digamos que le gustó el otro post 2234 K B A k Ok, Y los valores verdaderos. Entonces le gustan los posts, y ha hecho un post. De acuerdo, solo
estamos haciendo referencia a las publicaciones existentes y notamos cómo las publicaciones y los usuarios están en el mismo nivel . Vale, no
quieres es nido todo un montón de cosas. Yo quisiera decir que los usuarios publican cosas así. Se quiere un módulo módulo, surge tanto como sea posible y no anides tanto como sea posible. Quieres referir cosas igual que hicimos aquí. Por lo que nuestros datos configurados y listos para salir. Ahora, lo que queremos dio como mencioné, el principio es cuando el usuario crea una cuenta. De acuerdo, queremos,
uh,
almacenar a uh, ese usuario i d. Como nuevo usuario en nuestra aplicación firebase. Porque te diste cuenta de cómo, mientras creabas nuevas cuentas de contraseña de correo electrónico, no aparecía nada aquí, ¿
verdad? Eres como si estuviera ahorrando y trabajando. Pero, ¿por qué no aparece? Lo que tenemos que decirle que necesitábamos para aparecer. No tenemos acceso a usuarios, nombres de
usuario y contraseñas, y eso es algo bueno. De acuerdo, Firebase maneja todo eso por nosotros. Entonces sí necesitamos crear el usuario y usar su off i d Así que voy a cerrar esta pantalla aquí. Has aprendido que has aprendido especie de los fundamentos de la base de fuego y cómo funciona. Entonces eso es realmente, realmente genial. De acuerdo,
entonces, ¿qué hacemos qué queremos hacer a nuestra vista? Contralor? Aquí es donde lo estamos grabando. Cerremos esto aquí y hagamos esto un poco más grande. De acuerdo, Entonces aquí es donde estamos iniciando sesión, y queremos a Teoh. Queremos hacer una creación efectiva de cuenta firebase. De acuerdo, Para poder hacer eso con el fin de crear ese usuario, tenemos que conseguir una referencia a nuestros usuarios. Uh, recuerda, vuelta en nuestra base de incendios Ah, ¿hay pantalla basada en fuego aquí? Tenemos a estos usuarios. Y lo interesante es que firebase usa tus rieles. Utiliza caminos, Teoh para dirigir los datos hacia donde necesita ir. Entonces esto es un Ustedes están todos aquí. Post sería propio. Tu l Ok. Y los usuarios serían su propio neuronal. Y tal vez no estás comprendiendo y no deberías, porque aún no he mostrado, así que sigamos adelante y miremos nuestro código. Entonces si vamos a nuestro servicio de datos aquí, ¿de acuerdo? Y note cómo aquí están basados referencia. Entonces si queríamos uno para posts, ya
sabes lo que podríamos hacer es, um, justo aquí podemos hacer otra de estas llamadas entradas privadas var ref. Es sólo recordar, este es un ref para esto. Esta es una base de fuego constante, acuerdo? Y lo que haremos es que solo pasemos en tu carril y serían exactamente los mismos euros esta bien, Excepto que diría ford slash posts. Y así cuando agarramos una referencia a esta base de fuego, ahora
está agarrando nuestros postes. ¿ O qué tan genial es eso? Entonces agarra el cartel, ¿verdad? Y entonces podrías haber agregarle cosas. Al igual que una matriz. ¿ Qué tan guay es eso? Al igual, creo que es super cool. Todo es tu l base. Entonces, en cualquier momento que quieras agarrar algo, solo pon en el camino. Esta es tu app. Y luego hay un camino y haces exactamente lo mismo para tu, um para tu usuario. Por lo que usuarios ref es igual a Firebase K. Y, uh, ahí vamos auto completando. Pero eso está bien. Y luego copiarías esto aquí y lo pondrías aquí mismo. Y esto no se establecería a los usuarios. De acuerdo, ahora , claro, esto es un poco de copiar y pegar y no quiero hacer eso. Entonces vamos a seguir adelante y hacer una constante aquí fue que dejaron que tu l base iguale y vamos a solo publicar post que Deshazte del poste al final y ahí está nuestra base. Tu URL es lo que podemos en cambio dio es que podríamos simplemente insertarlo aquí. Es una base Say base si quiere el trabajo ahí vamos basado en tu URL o eres una base luchando hoy, como puedes decir y eso es genial. Y así podemos seguir adelante y copiar eso en ambos aquí mismo. Y podemos hacer eso aquí mismo está bien, Y ahora tenemos disponible para nosotros. Uh, aún
no porque aún sean privados, pero tenemos los diferentes Urales a los que podemos acceder y escuchar cosas. Entonces vamos a llamar hecho para este video. Han aprendido un poco sobre Firebase. Si no lo entiendes por completo, adelante y sube a este punto. Juega con matrices de cráter firebase en tus datos y cosas ahí dentro, y seguiré adelante en el siguiente video y en realidad implementaré el uso de estas referencias en publicar a nuestro usuario en la base de datos basada en fuego así como obtener algunos valores de algunos pruebas. Entonces eso es todo.
104. App: muestra la parte 8: crear usuarios de Firebase: Hey, todos, Mark Price Aquí profundidades esperanzas punto com Sigamos adelante con nuestro proyecto aquí. Por lo que hemos hablado de referenciar caminos. OK, para son datos basados en incendios. Por lo que esta sería su l base o este camino aquí barra poste o barra usuarios. Y como puedes decir, esta es nuestra principal chica base aquí mismo. Simplemente de verdad. Puedes traducir todo esto para ti O de lo contrario este es tu principal uriel slash posts slash usuarios. Y por supuesto, estos son como diccionarios que puedes agarrar esos valores y claves de super cool . Entonces tenemos esta información aquí. Sigamos adelante y pongamos estas referencias a disposición del público. Savar Ref mensajes. Contéstame de tipo base de fuego y se va a volver. Ref, subrayado posts, Vale, Y haremos lo mismo por nuestros usuarios. Ahí están nuestros posts, ref. Usuarios de tipo firebase de nuevo. Solo estamos siendo buenos programadores y manteniendo nuestros datos privados. Vamos a devolver usuarios de ref. De acuerdo, entonces eso es bueno escuchar por nuestros datos. Um entonces ¿qué? Sabemos que necesitamos dio Ya he hablado de esto, pero lo que sabemos que tenemos que hacer es cuando se crea una cuenta con Facebook o con email Password. Recuerda, cuando inicias sesión, te da un descuento I D. Vale, entonces cuando te da eso de descuento, d necesitamos tomarlo y almacenarlo en el del usuario. De acuerdo, entonces miramos hacia atrás nuestros datos aquí, necesitamos crear un nuevo usuario en este camino aquí, y necesitamos darle el autor, i d. Y en este punto, no tendrá. Probablemente me gusta o publicaciones. No tendrá un nombre de usuario porque aún no lo hemos hecho, pero sí lo hará. Proveedor de pies fijará eso también. Tan muy cool. Entonces vamos aquí a nuestro código y vamos a crear una función,
uh, uh, servicio de datos
internos porque queremos mantener las cosas aquí en esta capa de modelo de barras de servicio. Es una especie de modelo tipo de servicio. Podríamos haberlo llamado servicio modelo. Um, pero funk crea usuario de firebase, y va a tomar una u i. D. Porque no necesitamos eso. Y vamos a seguir adelante y también tomar un diccionario. Bueno, solo
crearemos el diccionario a medida que lo obtengamos. Ahí están los valores que necesitamos. Entonces va a tomar un diccionario de tipo, string y string. Está bien. Y, uh, ahí vamos. Y tal vez tú eres como, Bueno, ¿por qué cuerda el lobo de cuerda? Aquí miramos nuestros datos, um, no
nos importan los likes. No nos importan las publicaciones. Todo lo que no éramos en este momento es el proveedor, y eso es una cadena. Y eso es una bolsa de cadena clave de cadena No era entonces pondríamos algo diferente aquí . Esto es realmente genial. Todo lo que tienes que hacer ahora es un ref. Usuarios. Por lo que sólo estamos agarrando este euro aquí para sus últimos usuarios. Esa es la referencia que está creando un objeto firebase, ¿de acuerdo? O agarrar eso. Y, uh, vamos a decir niño por un camino pendiente y veamos lo que dice, Obtener una referencia firebase para la ubicación en ruta relativa especificada. El camino relativo puede ser una simple clave hijo como Fred o un
camino más profundo separado como fred slash nombre slash primero. Entonces eso es realmente genial. Puedes agarrarlo por camino, o puedes agarrarlo por su nombre real. Entonces lo que estoy diciendo es, incluso aquí mismo, podrías agregar un camino al final de la misma y agarrar un artículo de ella. Al igual que teníamos esas variables ahí arriba. Um y así lo que queremos dio es que queremos poner aquí niño por camino pendiente. Te queremos hacer i d Hablemos de eso. Entonces, ¿qué significa eso? Bueno, sabemos que tenemos una idea única, ¿verdad? Y sabemos que aún no hemos creado un usuario de firebase. Entonces en este caso de aquí, aún no
tienes estos. No tienes a estos usuarios, pero queremos almacenar este único yo d Así que aquí mismo estaban diciendo niño por caminos pendientes. ¿ Qué lecciones? Lo que estamos diciendo es, si miras justo aquí, estamos diciendo, Hey, consigue el tú yo d Ya
sabes, lo que sea que te ideas, si no existe, lo vamos a crear. Si sí existe, lo va a devolver. ¿ Qué tan guay es eso? Entonces con base de fuego, si no existe una idee específica en el camino, aún
puedes referirla. Y luego cada vez que guardes algo
ahí, en realidad va a crear el camino completo para ti. Va a crear todo para ti en el minuto que lo guardes, lo cual es realmente genial. Por lo que no existe en este momento. estamos diciendo, Hey, agarra una referencia este camino, no existe, pero lo hará el momento que lo guardemos. Por lo que conseguimos una referencia a ese camino para que pareciera que el usuario slash sean cuales sean las
ideas únicas . Y aquí es donde lo guardamos, no valor establecido. Vamos a pasar, usuario. De acuerdo, Así que aquí está el trato. Cuando estés guardando objetos y base de fuego la mayor parte del tiempo, van a ser objetos. Y cuando digo objeto, ¿
recuerdas cómo dije objetos o como, diccionarios? Entonces firebase es realmente inteligente, y sabe qué hacer con esos datos, y lo va a guardar. Entonces otra vez, lo que está pasando es que estamos agarrando una referencia al camino de los usuarios, vale, Y luego estamos estableciendo un Estabas agarrando el camino para el muy único I. D. Así que en este caso, si esta fue la idea única, estamos agarrando este camino aquí mismo porque no existe. Eso está bien, porque al minuto que llamamos valor establecido, se va a poner en ese usuario. Se va a poner a un proveedor con Facebook como la clave. Si tuviéramos un nombre de usuario ahí también, establecería
eso también,
también para que sean los valores que haya en este diccionario de usuario, se establecería ahora en esa ruta y todos estarían justo aquí debajo de este usuario. Cosas muy cool, ¿verdad? Entonces ahí está nuestro usuario se ve realmente cool, y luego simplemente establecemos el valor y eso automáticamente se actualiza y se rompe el fuego. Tienes que hacer cualquier otra cosa. Al minuto que hagas esto, se actualiza instantáneamente y base de fuego. Eso es realmente genial. Por lo que muy base es muy rápido. Se hunde las cosas muy rápidamente. Por lo que tenemos el código para crear un usuario de firebase. Vamos a seguir adelante y escribir el código, en nuestro controlador de vista para realmente procesar eso. Entonces, ¿cuándo queremos hacerlo? ¿ Qué? Queremos hacerlo cuando Facebook crea con éxito una cuenta, ¿
verdad? Entonces sigamos adelante y hagamos eso. Ahora vamos a nuestro Facebook. Aquí está, aquí
mismo, justo lo que queremos hacer antes de salir de la pantalla. Entonces eso está bien. Por lo que no podemos hacerlo aquí mismo. ¿ Y qué queremos hacer? Queremos crear una base de fuego usada o así, um, sigamos adelante y hagamos eso ahora. Así que deja que usuario iguale proveedor. Recuerda alto. Hay una llave de proveedor que dije que íbamos a poner. Va a estar apagado proveedor de puntos de datos. Está bien. Y, uh, vamos a asumir que va a estar ahí. Um, te conociste Puede o no querer hacerlo de esta manera por el bien del tiempo. No vamos a hacer el si vamos en este proveedor de aquí. No he tenido Firebase filmando,
pero, eh, eh, así que ya sabes, lo que dirías es, ya
sabes, dirías primero dirías, ya
sabes, si let provider iguala fuera proveedor de punto de datos, ya
sabes, como cadena. Y así si llegaste ahí, entonces podrías seguir y guardarlo. Um, el problema es que realmente no
queremos seguir si no dice,
porque realmente lo necesitamos y tendrías que tener tu propio manejo de aire para manejarlo, tal vez hacer otra petición. Ah, un poco más de trabajo. Pero solo te estoy mostrando eso es lo que puedes hacer. No vamos a hacer eso. Entonces vamos a poner ahí el signo de exclamación. Yo le estoy dando un descargo de responsabilidad porque te he dicho millones de veces que no hagas eso, y no deberías De acuerdo, así que deja usuario. Entonces estamos creando usuario. ¿ Qué es esto? Ya sabes lo que es esto, ¿verdad? Esto es sólo un diccionario veloz. Cuando tienes el colon aquí, esa es una clave en un valor. De acuerdo, podríamos haber hecho múltiples una vez. Pude haber sido otra clave llamada Ley y esto podría decir prueba que sólo la dejará
ahí . Tan solo para mostrarte como lo que tenemos aquí son claves y valores un diccionario, eso es todo. Eso es lo que estamos haciendo es decir, Hey, vamos a crear un diccionario para lo que necesitamos. Tenemos la u I. D. Eso es genial. Donde tenemos al proveedor, eso es genial. Y luego tenemos la, uh otra clave aquí que vamos a hacer es que vamos a llamar a servicio de datos punto ds dot crear usuario basado en
fuego y las ideas del autor fuera de los datos puntean tu I d. Ok. Y el usuario es ah, usuario. El usuario acabaría de crear Recuerde, este es un diccionario de tipo string y string estaban pasando en la u I. D. Que nos acaban de dar y nos acaban de pasar en este diccionario que acabamos de crear. Entonces en el momento que hagamos esto, va a llamar a nuestra función aquí en nuestro servicio de datos, va a encontrar el camino con nuestro único yo d. Ok, y luego va a establecer el valor de ese único yo d. Y entonces qué? Deberíamos ver cuando yo Así que todo esto está funcionando ahora con facebook. Inicie sesión. Um y, uh, así que deberíamos ver que aparece cuando creamos una nueva cuenta de facebook. Um, ya que ya tenemos pero puede que tengamos un problema. Es posible que desee despejar a sus usuarios. Entonces si estás probando con Facebook ahora, por primera vez de nuevo, es posible que quieras volver a tu panel Aquí, ve a tu inicio de sesión y desconecta y, uh, ve a estos usuarios registrados aquí mismo. Tal vez quieras entrar, y no va a aparecer aquí. Es posible que desee entrar y eliminarlos todos, porque si ha iniciado sesión con Facebook hasta este momento, puede
que siga almacenando credenciales y puede que no cree nuevo conteo para usted en mayo cuando podría probarlo. Pero de todos modos, solo
digo, como vas adelante, quizá
quieras borrar los datos,
uh,a uh, medida que avanzas solo para asegurarte de que las cosas funcionen. Entonces veamos si funciona, aunque puede o no funcionar porque ya tengo una cuenta de Facebook. Espero que aquí funcione. Entonces lo que deberíamos ver es que cuando creo una cuenta de Facebook, debería crear un nuevo usuario de firebase en mi portal basado en fuego. Entonces aquí mismo y voy a los datos. Entonces ve a estos usuarios aquí mismo. Deberíamos ver 1/3 usuario, el nuevo que acabamos de crear. Y debería tener el proveedor de palabras en él. Y esto probablemente dirá Facebook, y entonces seguirá teniendo una llave. También se llama bla y pruebas. Por lo que deberíamos ver 1/3 usuario aquí el momento en que primero iniciamos sesión con Facebook. Entonces voy a parar esto aquí y vamos a recoger. Uh, vamos sólo dio iPhone cinco s. Está bien, vamos a seguir adelante y correrlo. Voy a abrir. Ojalá, ojalá aún no me haya ejecutando en este dispositivo, y no logmein automáticamente. De lo contrario, voy a tener que eliminar la app e intentarlo de nuevo. Ya viene. Está bien. Entonces debería ver 1/3 años o aparecer aquí cuando haga Facebook log y también note que tenemos
Tenemos la u que emita aquí. Probablemente deberíamos hacer como una escala de fuentes mínima o algo en este botón. Solo para que lo sepas, esos click en Facebook log in look, OK, solo lo
están usando. Entonces está el único yo d. Otra vez las ideas únicas no importan. Nunca se tiene que hacer referencias manualmente. Simplemente están almacenados ahí. Entonces conseguimos un I d único y ahí está el bloque que metimos. Y ahí está el proveedor Facebook. Funcionó. Entonces con solo agarrarlo, haciendo nuestro propio diccionario, cualquiera que sea el diccionario que quieras tu Eres el maestro de cómo se ven tus datos, decides cómo se ven. Entonces así es como queríamos que se vieran nuestros datos, que creamos al usuario aquí en nuestro servicio de datos. Y luego sólo por agarrar un camino que aún no existía que Facebook I d. Justo ahí en. Entonces fijamos el diccionario como el valor de eso, y funcionó. Funcionó. ¿ Qué tan guay es eso? Creo que es bastante jodidamente genial. Entonces ahí vamos. Vamos a seguir adelante y ponerlo en marcha para nuestro correo electrónico inicie sesión aquí. Entonces, vamos a desplazarnos aquí también. Desplázate por aquí, Teoh. Esta función de inicio de sesión intento justo aquí. Y todo lo que queremos hacer es básicamente la misma cosa exacta. Pero queremos hacerlo por correo electrónico. Entonces dondequiera que eso sucediera, bueno, si la cuenta no existe, vamos a crear. Eso es genial. Ahora, ten en cuenta. El resultado no nos da una idea de autor. Sólo obtenemos que d una vez que un usuario está conectado. Entonces aquí mismo en este usuario de auth, ya
sabes, es como decidimos no hacer un bloque de finalización. Bueno, ahora probablemente vamos a necesitar hacer un bloque de finalización para que podamos conseguir la autoridad y no, cuando los usuarios hayan iniciado sesión para que podamos iniciar y crear ese usuario. Así que vamos a recrear este mismo servicio de datos de McCall que DS pensó ref base el usuario Auth . Pero esta vez haremos los bloques de culminación. El password es password. Lo mismo, excepto aquí mismo, vamos a dio es Ah,
Bueno, Bueno, sólo borra esto. En realidad, lo que vamos a hacer es decir, uh um cuál es la coma de aire fuera de los datos y luego entrar y presionar enter y luego una
llave rizada de cierre . Ahí vamos. Entonces eso funciona ahí y vamos a llevárselo al viejo ahora y ahora ¿Qué? Debilitar Dio es lo mismo que hicimos antes de que podamos agarrar esto. Uh, estamos donde lo ponemos. Por aquí. Este de aquí, este es Copiar eso y péguelo aquí mismo. Entonces después de haber iniciado sesión después de haber creado una nueva cuenta. De acuerdo, vamos a Teoh usuario. Está bien. Fantástica prueba de ley. Um y, uh bien, así que vamos a llamarlo otra cosa. Llamaremos a esta prueba de correo electrónico, así que danos un nuevo usuario con correo electrónico. Eso debería ser todo lo que tenemos para dio. Adelante. Y lo que quiero hacer es en mi simulador aquí, Vamos adelante y comando turno h para cerrarlo. En realidad voy a detener la aplicación y luego eliminarla. De lo contrario, nos va a iniciar sesión automáticamente,
lo cual no quiero en este momento. Entonces eso es cambio de comando gon h para salir del modo wiggly. Y, uh, vamos a volver a ejecutarlo. Lo que vamos a hacer esta vez es iniciar sesión con Facebook lo sentimos, no con Facebook. Vamos a iniciar sesión con correo electrónico y deberíamos ver 1/4 usuario aquí ahora. ¿ De acuerdo? Y Así que hagámoslo. Ahora vamos a decir Bob Jay en def pistas dot com Y 12345 Sigamos adelante y
registremos y veamos si funciona. Vamos, nena. Muéstrame el dinero. No, hay. Yo me estaba preocupando, Chicos. Me estaba preocupando mucho. Además, parece que tenemos algún tipo de problema de imagen aquí. Parece que algunas de nuestras cosas están siendo cortadas. Vamos a querer arreglar eso
también, también A algún punto en el tiempo. Pero ya debes saber cómo hacer estas cosas. Debes saber cómo solucionar estos problemas. Rejas de diseño, cosas así. Tenías mucha experiencia y bueno, no
deberías estar haciendo es esperar a que Meteo explique explícitamente cómo cambiar el dedo del pie cada cosa de
diseño individual . Tienes que experimentar. Si no lo haces, no vas a aprender de todos modos. Aquí está. Ah, simple inicio de sesión 10. Ese es el único I. D. sesión
simple Colin 10. Eso es justo como lo llamaban. Está bien. Y, um, probablemente tenga 10 cuentas. Pero de todos modos, ese es el único bloque I. D. Pruebas de correo electrónico y proveedores Contraseña. Por lo que funcionó fueron iniciar sesión exitosamente a los usuarios y almacenarlos en nuestra base de fuego y notar cómo fue instantáneo el momento que creamos. Es el momento en que apareció por aquí, así que eso es realmente genial. Um, lo
tenemos en marcha, así que vamos a llamar a esto hecho. Hemos creado con éxito usuarios de firebase para Facebook y para,
uh, uh, para el registro de correo electrónico. Y lo siguiente que queremos hacer es hacer algunos posts de pruebas. De hecho, todo lo que queremos hacer en realidad es justo abajo con estos posts, estos puestos de prueba existentes y asegurarnos de que se pongan bien y sigan adelante.
105. App: muestra la parte 9: sincronización de datos de Firebase: Oigan, todos, Mark. Pricier sordos pendientes dot com Tengo todo abierto. Si no vas adelante y abres tu proyecto existente. De acuerdo, um, y entra en tu controlador de vista. ¿ Todo bien? Voy a cerrar esto aquí mismo. Y lo que vamos a hacer hoy, al
menos en este video, es que sólo vamos a hablar de cómo descargar datos de Firebase. Hemos hablado un poco de publicar datos. Hemos publicado un usuario simplemente agarrando una referencia al establecer el valor. ¿ Qué tan fácil es eso? Entonces ahora vamos a hablar de cómo harías tú Cómo mostrarías esos datos y te disculparías, no ver el control sobre Swift. Ir a alimentar V c punto swift. Está bien. Nosotros queremos entrar en nuestro feed ahora. Y entonces lo que queremos hacer es descargar los datos, Um, que tenemos en nuestra base de datos basada en incendios, y es tan apestoso. Fácil. De acuerdo, base de
fuego es increíble. Fantástico. No te lo estás encantando. Espero que realmente te metas en ello porque es una herramienta increíble. Entonces lo que vamos a hacer es que necesitamos saltarnos esta versión tonta de Java. No, gracias, hombre. Intenta cerrar todo en tu computadora y la basura solo aparece. De acuerdo, Entonces lo que queremos hacer es escuchar cada vez que se haga un cambio en nuestros datos, así funciona. Entonces sal de la mentalidad de voy a descargar un dato una vez. Y luego me dieron un refresco, tal vez cada cinco segundos o lo que sea. Fuera de esa mentalidad. De acuerdo, a partir de ahora, Firebase, piénsalo como un fregadero instantáneo. Engine al instante. Envía tus datos a medida que bajan. ¿ De acuerdo? Para que tus abdominales sean súper responsivos. Entonces lo que queremos hacer es escuchar cada vez que se cambie Post Data. Agregado cuando se descarga. Lo que sea. De acuerdo, Queremos escuchar esos eventos. Entonces lo que vamos a hacer es justo aquí. Vamos a decir que el servicio de datos ya obtuvo la mayor parte del código para este ds dot ds. Eso es lo que creamos. Vamos a agarrar una referencia a nuestros puestos. Está bien. ¿ Recuerdas nosotros en nuestro servicio de datos que tenemos el camino al puesto aquí? Es este Ford slash posts solo iban a agarrar una referencia al mismo. Está bien. Y así puntos posts y luego aquí sí observa tipo de evento. Está bien. Obviamente puedes notar que hay algunos tipos diferentes de versiones, y no vamos a repasar ninguna de estas. Hay mucho de todo lo que podrías hacerlo. Firebase, por favor lea la documentación. Vea lo que se ajusta a sus necesidades para su proyecto tipo de evento observado y el tipo de evento que
queremos valor de punto y con bloque. Y con este bloque, sólo
vamos a decir instantánea en la prensa de Anna. Entra, entra y pon ahí una abrazadera rizada de cierre. Entonces lo que vamos a decir es, cualquier momento que cambie un valor. Entonces veamos eso para ver si nos da alguna documentación. Uh, no
es,
um, pero básicamente, pero básicamente, se llama al
valor cada vez que se cambia un dato, se descarga. De hecho, si mantienes presionado comando y haces clic, esto te dará todas las opciones y se lo dice aquí mismo. Por lo que se agregaron las opciones que tienes un hijo. Se llama cada vez que se agrega un nuevo aviso de niño, se retira
un
niño, se cambia, se mueve un
niño. Está bien, estás empezando a conseguir el punto aquí. Ese es un tipo diferente de eventos que puedes escuchar, pero queremos valor, que se despide cuando cualquier dato cualquier día que cambie en un lugar y recursivo lee cualquier Niños Así que si alguno de los Niños cambió dentro de nuestros posts, como tal vez alguien editó un post lo que sea que se vaya a actualizar este fin de semana, actualizar o ver porque queremos que nuestra vista sea fresca con los datos más frescos. Entonces volver a alimentar a V. C. Así que lo que estamos diciendo es que llaman a esto y este es el cierre aquí, así que no se va a llamar de inmediato. Sólo se va a llamar siempre que se cambien los datos en la vista de tabla. Entonces a pesar de que es carga imputada, el código que está aquí será llamado una y otra vez cada vez que los datos cambien . Es así como funcionan los cierres. No lo pienso en el contexto de su visión interior. Hice carga. No obstante lo estamos. Inicializándolo ahí. Eso es todo lo que queremos hacer es imprimir valor de punto de instantánea. El snapshot es una instantánea de los datos, y el valor de punto es los datos que en snapshot es una fe. Es una instantánea de base de fuego. De acuerdo, um y así sólo queremos imprimir el valor de la misma. Entonces, básicamente, eso es todo lo que tienes que hacer para descargar datos. Eres como,
espera, espera, sin solicitud de red no hay llamadas y no, solo observa un tipo de evento en una referencia en un camino. Por lo tanto, observa un evento, escribe en un camino. Y siempre que ocurra ese valor de punto, cada vez
que algo cambie, va a llamar a esta función, y puedes actualizar tu Tú I Esto es realmente genial. Algo realmente grande Google en realidad está empujando en todos sus en todas sus plataformas Android, todo. Están tratando de empujar esta idea de programación reactiva este hundimiento instantáneo y eso cosas
muy cool. Por lo que en realidad debería funcionar justo fuera de la caja justo fuera de la caja. De lo que deberíamos ver impresión. Es porque estamos imprimiendo el post, ¿verdad? Sí. El ref publica lo que debemos ver. impresión es la, uh que deberíamos ver para publicar aquí con estos datos en ella. Eso es lo que debemos ver. Observe también que el camino tiene que ser perfecto. Entonces, ya
sabes, es el camino principal slash esto. Si tuviera posts dentro de usuarios, no
sería capaz de encontrarlo aquí porque mi camino está mal. Pero sabemos que nuestro camino es perfecto porque así lo diseñamos. Entonces cuando veamos esta impresión, que es C dos posts, Ok, entonces vamos adelante y vamos a cerrar el lado izquierdo en un arrastre esto hacia la izquierda cuando
se arrastra hacia la derecha para que podamos verlo en tiempo real. Está bien. Y lo que haremos es ah, presione stop en la construcción existente y lo vamos a ejecutar. Y justo al bate, deberíamos ver pulpando aquí a mi consejo. Deberíamos ver estos posts imprimiendo. Aquí va. Se está cargando. ¿ Debería Laugesen automáticamente? Creo que ya hemos iniciado sesión. Ahí vamos y echemos un vistazo. Suficientemente, mira, está justo ahí. Ahora otra vez. No pongas atención a cómo se formatea por completo aquí. Es un poco extraño, pero no, mira, ahí están nuestros 80 para este son uno de estos. ¿ Cuál es? A post Justo aquí arriba. Entonces ahí está nuestra idea para que éste tenga nuestra imagen o un tiene todo ahí mismo en el acto . Eso es realmente genial. Ahora quieres ver algo aún más fresco? Eres como, Sí. De acuerdo, así que vamos de verdad vamos a mostrar algo genial aquí. Yo quiero subir esto para que mi cabeza no esté en tu camino. ¿ Y qué pasa? ¿ Qué pasa si yo, um si agrego un usuario. De acuerdo, entonces estamos escuchando los cambios. Veamos si al instante imprimirá y llamará a esa función. Llama a ese cierre que ven poco al instante. Llama a ese cierre cuando agrego datos. Entonces sigamos adelante y le demos una oportunidad, ¿sí? Bueno, primero de lo que podemos hacer es cambiar algo en lugar de 300 likes, podemos decir, uh, ¿qué tal? Apenas saltó hasta 350 likes. Presionemos entrar. Pero yo sí. Mira eso. Mira ese instante instantáneo. Ninguna otra plataforma ofrece nada tan cool es eso lo impresionante que es eso? Al instante nos dieron actualizaciones. Entonces estás tras de verdad, como en tiempo real, tiempo
real. Entonces simplemente cambió lo que acabamos de poner ahí y sigamos adelante y tú estás como,
Bueno, Bueno, ¿por qué trajo ambas cosas? Bueno, eso es lo que somos Eso es lo que estamos buscando. Llama que trae nos da todos ellos. Eso es lo que queríamos hacer para que podamos actualizar nuestro tú. ¿ Por qué? Lo cual hará en el siguiente video. Salgamos y creemos un nuevo post. Entonces llamemos a este, um ya sabes, algún otro aleatorio yo d. Ok. Y el valor. No va a tener un valor todavía. Lo que vamos a hacer es ir Teoh, di ah, descripción, ya
sabes. Ah, quien Mi primera app. Añadamos otra clave. Esta va a ser una imagen. Tu l Y esto es agarrar uno real rapido de Internet. Sólo di,
uh, uh, frijoles
fríos. Uh, solo al azar, um, y son super cool. Tiene un cigarro. Cualquiera que esté siendo y fume un cigarro es bastante guay en mi libro. ¿ Todo bien? Y me gusta es cinco. Ahora, voy a presionar anuncio y deberíamos ver este nuevo disco. No deberíamos ver tres registros a la izquierda en el interior. De hecho, sigamos adelante y despejemos esto. Vuelve por aquí. Está bien. Momento de verdad. En el segundo que
agrego esto, debería ver tres nuevos discos ahora en mi impresión. Está bien. 123 Así que tengo mis frijoles fríos. Sí, lo
hago aquí mismo. Está bien. Tarifa. Um, parece que no estoy viendo mis gustos, sin embargo. ¿ Están ahí los chicos los ven? Le gusta. Parece que los likes en realidad no guardaron por alguna razón. Um cosa. Oh, espera un minuto. Ah, no
agregué likes me debió de haber perdido eso. Olvidó guardarlo. Hagámoslo ahora. Es sólo el trabajo. Me gusta 20. Ahí vamos. OK, así que ahí están. Todo funciona a la perfección. ¿ Qué tan guay es eso? Nunca antes habías visto algo como esto porque nadie más realmente está haciendo esto excepto por base de fuego, resultados
tan instantáneos. Entonces lo que harías es justo aquí cada vez que tú Ah, cada vez que entran estos datos, solo
harías esto. Diría vista de tabla, no recargar datos. Y no tenemos eso. No tenemos todas las cosas en su lugar para eso. Necesito ponerme frente a ella. No tenemos la ruta de índice de auto Roo y la celda de vista de tabla personalizada configurada para esto, Pero ¿qué tan fácil es eso? En cualquier momento
que entren nuevos datos, solo refrescas la tabla y se actualiza automáticamente. Eso es realmente genial. De verdad, realmente genial. De todos modos, Así que así es como se descargan datos de la base de fuego. Y tú sólo lo escuchas. Un observador. Tan cosas muy cool en. Vamos a llamar a este video hecho, y luego al siguiente, realidad
vamos a empezar a atar postes de riel en nuestra pantalla toe datos reales en el back end, lo cual es realmente genial. No los vamos a publicar desde la APP. Vamos a poner los datos de prueba en la parte de atrás aquí, pero vamos a conseguir que se muestre primero. Y a veces esa es la mejor manera de abordar las cosas es en lugar de hacer todo el porqué para crear cosas. ¿ Por qué acabas de conseguir cosas mostrando en la imagen de la app? Datos de prueba y firebase hace que sea muy simple hacer eso. Entonces este es Mark Price. Death slips dot com haciendo fantástico progreso CN la próxima vez.
106. App: muestra la parte 10 - analiza los datos de la base de fuego de protección de datos de: Oigan, todos, ¿qué hay aquí arriba? Mark Precio en dot com. Y la última vez construimos una siesta que podría hablar con la base de fuego y descargar datos, y lo imprimimos. Sabemos oficialmente que están basados en fuego. La aplicación es Ah, definitivamente ,
um, hablando con nuestra app y los datos están ahí, y está funcionando. Y entonces, uh, pondremos los datos aquí mismo. Y así todos estos datos aquí mismo se están conectando a la APP, lo cual es fantástico. De acuerdo, entonces lo que vamos a hacer hoy es que vamos a conseguir que estos datos se muestren. Uh, bueno, vamos a hacer que estos datos se analizen correctamente en la aplicación, poniéndolos en una clase y poniendo todo en orden. Por lo que entonces podemos mostrarlo en las celdas de vista de tabla. Entonces eso es lo que vamos a hacer hoy. Nuestro Dave está ahí. Está trabajando en base de fuego. Y así cuando obtienes datos de la base de fuego como así viene en lo que se llama una instantánea. Como puedes ver aquí mismo, podemos mandar dar click a esto o no. Mm. Bueno, vamos a ver aquí. Ahí vamos. Um, ¿eso
es lo que queremos? Estoy tratando de mirar los datos de su clase, pero no me está dejando entrar porque no tengo un tipo en él, pero está bien. Entonces lo que debes hacer es mirar siempre la documentación de las cosas con las que estás trabajando . Para que puedas ver, um, puedes ver lo que está pasando. A ver si nos deja meternos en remolque. Diga, creo que es f uh, Snapshot Hay. Vea esa instantánea de datos F. Ahí vamos. Todo esto está escrito en objetivo. Ver, por cierto. Y así lo que puedes dio es que puedes mirar la instantánea aquí, que es lo que acabamos de conseguir desde la base de fuego. Y, bueno, te dice aquí mismo. Una instantánea contiene datos de una ubicación Firebase. cualquier momento que leas datos de firebase, recibiste los datos como una instantánea de datos F. Las instantáneas se pasan a los bloques para adjuntar sus generados eficientemente. Entonces en sus medios inmutables, no se pueden cambiar. Por lo que es un objeto firebase que se genera de manera eficiente. Y así los datos no están listos para que lo utilicemos. Todavía nos dieron un análisis, Pero la base de fuego ha sido realmente genial y nos ha ayudado a conseguir esos datos realmente rápido. Y así de nuevo, sabemos que en cualquier momento que un valor cambie su va a llamar a esta función aquí. Entonces lo que vamos a hacer es analizarlo en algo que sea utilizable. Y ahora mismo es sólo en forma de instantánea. Y entonces lo que queremos hacer es sacarlo de ahí. Entonces en primer lugar, este es nuestro controlador de vista de feed, y, ah, el número de filas en la sección es de tres. Entonces estamos recubriendo duro ese número de filas. Entonces probablemente queremos hacer antes de empezar a usar datos aquí es probable que queramos obtener nuestra vista de
tabla, en realidad, um, en realidad trabajando con Bueno, vamos a hacer esto primero. Entonces iremos a la mesa de ustedes. Eres como, ¿Qué estamos haciendo? Está bien, no te preocupes. Sólo sigue mi ejemplo. Entonces lo que vamos a hacer aquí es analizar los datos y luego bueno, entonces bien conectado. Entonces lo que vamos a hacer es decir, por cada snap in snap hold on. Cosa equivocada. Si vamos snapshots es igual a snapshot que Children dot todos los objetos como f data snapshot y
necesitamos importar firebase aquí arriba. Por eso no está funcionando ahora mismo. Importación base de fuego. Perfecto. Entonces veamos, hablemos de lo que está pasando aquí. Entonces estamos agarrando la instantánea. Estaban agarrando a todos los Niños y tal vez Niños y todos los objetos. Al igual, ¿por qué haríamos ambas cosas? ¿ No deberían hacer lo mismo? Bueno, pensarías que lo son. Pero Niños, si abro el lado derecho,
Niños, Niños, ¿está Justin Ennis en numerador? En realidad no nos va a dar el objeto que necesitamos. Es solo que está en el numerador, así que puedes sacar cosas de él. Entonces lo que vamos a hacer es agarrar todos los objetos, que es una matriz de estas instantáneas. De acuerdo, entonces cada uno de estos es una instantánea. Recuerde, este no es array con el que estamos tratando en el servidor. Si solo fuera un objeto, no
necesitaríamos agarrar todos los objetos. Lo tenemos aquí mismo en esta instantánea misma. Pero necesitamos agarrar todas las instantáneas, las instantáneas individuales en esta instantánea principal. Porque, recuerden, este es un conjunto de posts. De acuerdo, entonces tenemos todas las instantáneas justo aquí, y luego lo que queremos hacer es iterado a través de la instantánea. Entonces para cada snap en instantáneas, vale, solo ah, para cada bucle ahí. Y, um, sigamos adelante y solo imprimamos esto para imprimir o decir snap y vamos ah, hagamos esto aquí mismo. De acuerdo, Entonces lo que queremos hacer es solo imprimir esto y ver qué sucede en nuestro cónsul cuando ejecutamos la app. Entonces sigamos adelante y hagamos eso ahora. Cambia el iPhone seis. Entonces de nuevo, hemos agarrado la instantánea principal que obtuvimos de la base de fuego. Pero eso sostiene un montón de objetos en su Tenemos que agarrar la matriz, que es una matriz de instantáneas. Entonces tenemos que iterar a través de eso o eran array. De acuerdo, aquí vamos. Está bien. Tan cargada. Echemos un vistazo aquí. Por lo que snap tiene este tiene una descripción y me gusta. Este tiene una imagen descriptiva tuya. Al igual que tan claramente nos está dando nuestros objetos individuales post, que es lo que queremos. Los queremos a nivel individual para que podamos usarlos individualmente, así que eso es realmente genial. Entonces tenemos nuestro objeto snap ahí mismo. Y así en firebase o cualquier otro programa, lo que quieres hacer es almacenar tus datos en algo que sea utilizable tus propias clases, ok. Y así necesitamos crear nuestro propio modelo para estos posts y Así que hagámoslo ahora. Eso en tu modelo ful múltiplo aquí mismo. Adelante y haga clic derecho y vaya a nuevo archivo y ah, archivos
Swift. Bien. Y llamemos a esto un post. No quieres estar trabajando con un montón de diccionarios y agarrando objetos y cosas fuera de él. Es el gran, enorme dolor cuando tienes que hacer una y otra vez. Por lo que es mejor crear una clase y realmente almacenar los datos en la clase. Entonces hagámoslo ahora. Este es Class Post y hablemos de lo que sabemos lo que vamos a tener, verdad? Entonces, bar
privado, sabemos que tenemos un post a post descripción. Y por cierto, estoy poniendo la palabra post delante de Post Descripción porque Descripción es una
palabra clave reservada en algunas clases de asientos objetivos. Y si alguna vez hacemos eso en el futuro, no
queremos ningún conflicto. Por lo tanto, nunca nunca crees una variable llamada descripción. Vale, sólo que sepas que ahora conflicto se llamaban post descripción, y, uh, veamos la descripción que siempre íbamos a hacer que eso fuera necesario. Hagamos que se requiere la imagen Ah Cevaer o un will make this one opcional lo que significa que un usuario no tiene que publicar una imagen. Uh, tenemos likes Eso va a ser requerido. Nombre de usuario. Ese
también se requerirá . Y, ah, post key. Vamos a guardar el identificador único. Eso también lo vamos a salvar. Um, en caso de que alguna vez necesites tener acceso o referencia al mismo. Apenas una buena medida de seguridad. Entonces vamos a crear nuestras variables públicas, ¿verdad? Descripción del puesto. Regresa. Este va a tener algo opcional porque puede o no. Puede o no tener un valor, y queremos que quien lo esté llamando sepa eso. Dame a Jor El. Está bien. Um, sí, eso está mal. Se disculpó. Este no es opcional el pero la imagen o l es opcional. Ahí vamos. Ahí hay una imagen que Orioles hacen me gusta va a volver. El subrayado le gusta el espejo. Los que no tienen los signos de interrogación al final están asumiendo que ahí
hay un valor . De acuerdo, entonces tenemos que asegurarnos de garantizar eso más adelante en algún momento. Nombre de usuario, por
supuesto, se requiere. Y por supuesto, no
tenemos eso. Todavía no tenemos ese valor. Realmente no estamos trabajando con usuarios todavía. Entonces Ok, lo que queremos dio es crear un Isar inicial. Entonces cada vez que estés creando una nueva publicación, como si estuvieras haciendo una publicación en Facebook, cierto, Um, lo
harías, agregarías, como, la descripción y la imagen o cosas así. Entonces pongamos la descripción en su opción. No es opcional. Dejémoslo así. , la mayoría es opcional Sin embargo, la mayoría es opcional. De acuerdo, hacemos que sea opcional y luego tenemos nombre de usuario de tipo string, que se requería que un pasado que en cada vez que se crea una nueva publicación. Está bien, a mí me
parece bien. Um y, ah, sigamos adelante. Y solo una descripción de auto post igual a descripción en sí punto Imagen o l igual a imagen o rail y self dot nombre de usuario es igual a nombre de usuario. Recuerda, esto es una inicialización erso inicial. Estamos estableciendo los valores que queremos inicializados cada vez que se crea uno nuevo de estos. En este punto del tiempo, puede que no
haya una clave de publicación para guardar porque aún no se ha creado en la base de fuego, por lo que no necesitamos preocuparnos por eso ahora mismo. Me gusta cuando creas un nuevo post va a tener cero como así no necesitamos un pase. Y le gusta, así que eso probablemente sea bueno para ello. Ahora, sí
queremos una inicialización más. Er Ok, Bueno, queremos dio es que queremos convertir los datos que vienen de Firebase en algo que
podamos leer aquí mismo. Y así sabemos que los datos, los vamos a convertir en un diccionario. Entonces voy a crear en otro er de inicialización que usamos siempre que estemos descargando datos de la base de fuego. Entonces vamos a llamar a esta clave de publicación, y vamos a hacer de esto una cadena y luego diccionario el diccionario que tiene todos los datos en ella. OK? Y esto va a ser una cadena de tipo en cualquier hasta cualquier objeto. ¿ De acuerdo? Y así lo vamos a hacer es cuando estábamos agarrando datos de Firebase, vamos a pasar en el diccionario, analizar los datos para poder usarlos en ah, algo que es útil. Entonces sigamos adelante y hagamos eso ahora. Cierra este cónsul por ahora. OK, así que sigamos adelante y firmemos. Eso es tan auto punto subrayado Post. No. Vamos, post key es igual a post key self. No, puedes hacer es agarrar los datos del diccionario si let likes equals dictionary. Está bien. Recuerde, esto es simplemente sintaxis de diccionario antiguo simple, y este es un entero. Entonces nos estamos echando. Estamos diciendo es tratar de sacar los likes del diccionario. No sabemos si está ahí o no. Los diccionarios no pueden garantizar valor, así que tienes que hacer si dejas si no lo haces plano, puedes estrellar tu programa si lo intentas y lo usas para que podamos decir si existe. Yo que le gusta, igual, le gusta. De acuerdo, haz lo mismo aquí si deja imagen tu l igual imagen del diccionario. O, por cierto, estos nombres clave y poner en el diccionario son los nombres exactos que están en
base de fuego . Eso es muy importante. Los mismos nombres exactos, vale, y, ah, digamos una imagen de auto punto o l igual a imagen o L otra vez. Todo lo que estamos haciendo son algunas prácticas de codificación seguras aquí para asegurarnos de que los valores que estamos buscando estuvieran realmente ahí. Por lo que no estrellamos el programa e intentamos usarlos. Entonces esta es la descripción. Y en base de fuego, lo
llamamos la descripción como una cuerda. Y entonces nos decimos en sí misma punto post descripción igual escritorio. De acuerdo, Entonces la idea es cada vez que descargamos datos de la base de fuego, creamos un nuevo post objeto, y pasamos en el diccionario que obtenemos de la base de fuego. Entonces podemos, uh, para que podamos usar los datos que contiene porque no queremos recordar. No queremos manejar eso desde el controlador de vista, porque eso es una mala práctica. Queremos manejarlo desde el aire modelo. Tan cosas muy buenas. Vamos a volver a nuestra alimentación que vemos aquí. Y así ahora tenemos tenemos nuestras instantáneas, pero necesitamos conseguir diccionario. Entonces vamos a hacer eso. Ahora vamos a decir si dejar publicar dicked para el diccionario post es igual a snap, no valor. Está bien. Como cadena de diccionario en cualquier objeto, el mismo formato exacto, el del
que acabamos de crear en nuestro post. De acuerdo, entonces hablemos de lo que está pasando aquí. Por lo que la instantánea de datos F tiene una propiedad de valor de punto. A ver si puedo encontrarlo aquí. Ah, vamos a ver. Ahí está justo aquí. Devuelve el contenido de esta instantánea de datos como tipos nativos, por lo que podría ser un diccionario, una matriz, un número o cadena. Entonces con eso dicho, Firebase en realidad te permite analizar los datos de múltiples maneras. En realidad podría darnos una matriz, pesar de que el fuego basado en el back end nos da un montón de objetos. Si lo usamos como una matriz, en realidad
lo convertirá para nosotros. Por lo que hay múltiples formas de trabajar con datos. Sólo te estoy mostrando un camino, Um y solo lo están haciendo conveniente para ti. Entonces por eso, dice cualquier objeto causa podría ser cualquier tipo de objeto. Pero la cosa es que hay que saber qué tipo de datos se encuentra a qué tipo de formato es. Y lo creaste en tu base de fuego. Entonces Ok, entonces lo que estamos haciendo es que estamos pasando por cada una de las instantáneas en esta instantánea principal aquí , cada uno de los objetos Children porque recuerda, si miras a firebase aquí desde posts, es como un objeto, es un borrador. Vas a conseguir una gran matriz con sub objetos en ella. Entonces este es el A más grande, los posts y estos fueron los sub objetos y que almacenamos en instantáneas. Vamos a pasar por cada subobjeto celular cada post, y lo iban a convertir en un diccionario porque eso es lo que es. Es un diccionario de tipo string en cualquier objeto. Y si recuerdas desde atrás en las lecciones de Jason Vale, esto es como un diccionario. Un diccionario es un objeto. Está bien. Motor y JavaScript, notación de
objetos y Jason. Entonces aquí está la clave de objeto o la clave del diccionario. Entonces estamos diciendo,
Hey, Hey, este es un diccionario y la clave que los elementos en el diccionario tienen una clave, ese aire de tipo string y un valor de tipo, Cualquier objeto? El motivo por el que decimos cualquier objeto es porque podría ser una cadena o podría ser un entero . Hay más de un tipo. Entonces decimos algún objeto? De acuerdo, entonces un diccionario de cadena en cualquier objeto tiene sentido. OK, entonces ahora tenemos. Ahora tenemos los datos. Vamos a seguir adelante y agarrar la llave para que pueda decir let qi es igual a snap dot key. Entonces estoy agarrando, recuerda, Recuerda, diccionarios tienen claves y valores, así que estamos agarrando la clave aquí de esta instantánea, que es en este caso, van a ser estos tipos aquí mismo vamos a agarrar la llave, ¿de acuerdo? Y luego vamos a guardar eso para poder usarlo más tarde. Y, por
supuesto, el valor cuando agarramos el valor, ese es este dato aquí mismo. Este objeto. De acuerdo, así que ahí está la clave, y luego queremos hacer es solo crear nuestro nuevo post. Así que dejemos publicar igual post Creighton uob instancia de nuestro objeto. Y aquí está el, uh, el constructor, el inicializado que creamos. Por lo que pasar el calor y pasar en el diccionario Suficientemente fácil. Entonces tomamos el post diccionario con todos esos valores en él que pusimos en nuestro post objeto. Y, por
supuesto, nuestro post objeto guarda los datos. Um, lo cual es realmente genial. Una cosa más que necesitamos, sin embargo, es ah, vamos a nuestra mesa. Va a necesitar Teoh platicar con nuestra mesa iba a necesitar tener posts en ella para que pueda
hablar con una matriz de post no solo tener datos estáticos. Entonces sigamos adelante y hagamos eso ahora. Hasta el momento, publicaciones iguales lo convertirán en una matriz vacía de tipo post. Y quiero que sea una matriz vacía justo al principio porque el número de filas y sección necesita relacionarse con cuántas publicaciones hay. Así que sigamos adelante y digamos número de filas y sección es igual a posts conteo de puntos Si no lo
tuvieras inicializado aquí, tendrías un choque cuando intente acceder al conteo. Entonces no queremos eso, Así que eso es realmente genial. Entonces lo que queremos hacer es en cualquier momento que entren nuevos datos, queremos volver a poblar completamente la lista. Recuerda, los valores en este de aquí mismo nos van a dar toda la lista de publicaciones. Entonces lo que queremos hacer es ah, aquí arriba. Antes de empezar, Parson, Data es que vamos a decir posts iguales a que vamos a vaciar esta matriz si ya hay datos , porque vamos a reemplazarlo. ¿ Verdad? Y tengo que decir autopostes porque estamos en un cierre. Entonces vamos a despejar esto en cualquier momento. Esto necesita actualización, porque vamos a reemplazar por completo todos los datos, y luego aquí mismo, vamos a decir auto arriba posts dot append post. De acuerdo, este post aquí mismo. Entonces, para recapitular, vamos a agarrar todos los objetos de ella. ok, Al igual que la matriz que vamos, Teoh iteró a través de esos objetos, convierte cada uno a un diccionario de tipo string en cualquier objeto van a guardar la clave de la instantánea, el nivel superior . Y luego vamos a crear una nueva publicación más allá del diccionario y nuestra post objeto partes de los datos que ves. Acabamos de hacer eso juntos, y luego la duda de sí mismo publicó un bolígrafo. Agregamos a la lista aquí mismo. Y así después de este bucle de cuatro, después de que salgamos de aquí, todo lo que tenemos que hacer es recargar los datos de la tabla, que ya tenemos, que ya tenemos,
y se refrescará con los datos que tengamos, que es realmente genial. Um, vale, así que tenemos datos publicando aquí, y así que vamos a,
uh,
justo uh, aquí en auto Arrgh, rutas de
indexación. Todo lo demás, creo, es donde tiene que estar. Por lo que sabemos que el número de filas en sección va a igualar la cantidad total de publicaciones. Entonces lo que podemos hacer aquí es solo para comprobar y asegurarnos de que todo funcione, realidad
podemos agarrar el post objeto en Silvera, y siguiente post path iguala posts. Y entonces podríamos decir índice path dot ro lo has hecho antes, solo
estaban agarrando el post. Entonces lo que debería pasar es para cada post, va a crear una nueva celda, y luego ,
uh, deberíamos poder agarrarlo. Y así podría simplemente imprimir esos posts. De hecho, vamos a decir imprimir, decir post. Ah, eso es un post dot ¿Qué fue? Descripción del puesto. De acuerdo, Entonces lo que vamos a hacer es sólo con fines de prueba para ver, para asegurarnos de que nuestros objetos se conviertan. Entonces la prueba que vamos a ejecutar es para asegurarnos de que los datos analizados aquí simplemente bien
que los creó con éxito como objetos Y entonces que este Isar inicial analizó con éxito los datos fuera de él y fuera del diccionario y lo metió en nuestro en nuestro a post objeto en sí. Entonces este post objeto, queremos asegurarnos de que el, uh ya sabes, esto está funcionando que los datos los datos guardados aquí de esta función justo aquí. Y entonces, ¿
si qué? Lo que deberíamos ver es, si esto funcionaba, deberíamos ver Bueno, vamos a ver, en realidad, deberíamos ver. Um 1234 Deberíamos ver cuatro descripciones imprimiendo a la pantalla. Um, vamos a seguir adelante y darle una oportunidad. ¿ De acuerdo? Es como que lo rompió aquí. Parece,
uh, snap, snap, snap, snap, snap. Entonces ahora mismo estoy viendo 20 ya sabes por qué le dice es porque no lo hemos hecho. Sólo tenemos dos encajados en la pantalla que no ha visto las otras celdas. Entonces si me desplaza, deberíamos ver a los otros. Ahí vamos. Entonces ve que 1234 Los datos lo analizan con
éxito, lo almacenaron con éxito en un post objeto. Y en realidad estamos consiguiendo cuatro objetos aquí, que es exactamente lo que esperaríamos. Por supuesto, la fecha no se muestra todavía en las vistas de tabla, pero eso está bien. Hicimos algo realmente genial. Entonces sé que tardamos un poco más en explicar esto, pero piensa en esto. Esto es todo lo que tomó para hablar con Firebase para descargar datos. Eso es todo. Eso es todo lo que tomó. No está mal. Y es instantáneo. cualquier momento que cambie, hizo que estos objetos cambien actualizaciones automáticamente, lo cual es realmente, realmente genial. Entonces lo vamos a llamar hecho para este video. Adelante y asegúrate de que tienes tu modelo listo para ir? Uh, tienes tus partes de datos Cuando digo modelo, me refiero a tu post aquí mismo. Asegúrate de que todo esto esté listo para seguir. Uh, esto es lo que tenemos que tener en orden. Empieza a trabajar con esos datos en realidad en la tabla. Entonces sigamos adelante y terminemos esto y número uno.
107. App: muestra la parte 11 - datos de exhibición con imagen Caching/descarga de la descarga: Yo, yo, yo, qué es el desgaste va a seguir rivalidad left Charla desde el último video en adelante. Por supuesto. En el último video, se analiza los datos, se
consiguió todo guardado en el modelo. Y ahora todo lo que tenemos que hacer es realmente conseguir que funcione dentro de nuestro interior de nuestras vistas aquí. Entonces vamos a hacer algunas cosas hoy que vamos a conseguir Vamos a conseguir la descripción aquí en el lado izquierdo. Vamos a conseguir que eso refleje los datos. Y en, uh, Firebase thes le gusta justo aquí. Vamos a conseguir que los reflejen los datos y la base de fuego y esta imagen aquí, en realidad
vamos a implementar código que descargue esa imagen de Internet. Y entonces lo que es realmente genial es que en realidad vamos a crear un sistema de cobro, mientras que si lo hemos descargado una vez, lo vamos a guardar en el efectivo y entonces no tenemos que leer, descargado cada vez que la nueva celda entra en el porque eso podría destruir el rendimiento y causar muchos problemas. La mayoría de los otros videos por ahí estaban bien, realidad no te enseñan esto, pero tienes que hacer esto en una aplicación realmente IOS o en un trabajo profesional real por lo que es muy importante que lo sepas. Y así sigamos adelante y empecemos. Entonces lo que sabemos es que siempre modificamos las células en el cuento de tu colección de ti en la celda para ruta de Rohit Index. ¿ Verdad? Y así sigamos adelante y miremos nuestro post venta. Ya lo hemos creado. Entonces ahora mismo tenemos la imagen de perfil, Vale, que no vamos a cambiar porque aún no tenemos la imagen de usuario,
Y, Y, uh, sí
tenemos el nombre del usuario,
pero ¿ siempre lo son? Sí. Al menos tenemos la etiqueta para, Pero aún no tenemos los datos para eso. Todavía no nos vamos a preocupar por el botón me gusta. tenemos los datos para esto en esto, uh, y pero no tenemos los conectados. Entonces sigamos adelante y sumamos las conexiones que necesitamos ahora mismo. Entonces necesitamos y sólo vamos a sumar los que sólo necesitamos ahora mismo. Por lo que seré la guerra de la semana de salida. Sabemos que necesitamos el um lo llamaremos a esto, uh, bueno decir descripción, descripción. Ah, esto es un soldado de Texas llamado descripción. Texto de ti te texto vista y luego Ah, los gustos. Entonces seré la semana de salida de nuestro, um y vamos a llamar a esto Ah. Le gusta etiqueta de tipo usted. Yo etiqueto. Entonces tenemos los tres artículos que iban a estar modificando ahora mismo. Está bien, eso se ve genial. Y ya terminamos un poco de estilo ahí. Eso también se ve
genial . Entonces, qué otro co hacemos necesitamos para que esto funcione. Entonces, solo echemos un vistazo aquí. Um bien, así que sigamos adelante. Y como lo hemos hecho en tiempos pasados, vamos a crear una función de celda configure. Uh, así que aquí hay algo que es realmente importante para que sepas. Nuevos desarrolladores y desarrolladores. Seguro que hacer que Iowa saps de la manera equivocada en la vista. Controlador héroe. De hecho lo harán, er iniciaron la celda. Las rutas de índice de Fero están aquí en el feed V C en lugar de, uh en lugar de configurar esta celda realmente lo modificará justo desde aquí. Ellos van a cambiar la imagen aquí. Cambiarán la textura. Esto es malo. El punto de vista debe manejarse por sí mismo. OK, eso lo vamos a manejar en nuestro postcelular. Entonces configura celular y vamos a tener el post objeto de tipo post. Está bien. Y, uh, sólo
tenemos que sacar cosas de ella. También necesitamos almacenar los puestos. Hagámoslo aquí. Por lo que vamos a guardar nuestro post de tipo post. Almacenaremos amenaza ahí mismo. Y así cuando hagamos auto fila y siguiente camino llamaremos a configurar celda. Y así vamos a seguir adelante y hacer eso Ahora diremos auto punto auto que, uh oops Post. Sí, eso está bien en sí mismo. Ese post es igual a post. Está bien. Y así nos dieron el puesto. Hablemos de la descripción. Por lo que necesitamos conseguir esa palabra crímenes. Entonces si dejas que solo asegúrate de que no esté vacío. Um, ya
sabes, es un poco garantizado, porque eso es lo que estamos haciendo de espaldas, y nos vemos obligados a usarla para hacerlo, pero siempre es bueno ser extra seguro. Entonces sólo somos una descripción post op post post, ¿de acuerdo? Y también nos aseguramos de que no esté vacío. Entonces donde post descripción no es igual a cadena vacía, OK, y luego diremos auto punto um, descripción, texto que texto es igual escritorio. Está bien, Um, eso se ve bien. De lo contrario, bueno, no
necesitamos hacer cosas. En realidad nos estaba gritando. Aquí. Aguanta. Uh, bien. Sí, así que mi mal. Me estoy metiendo en el hábito de esta codificación defensiva. Ni siquiera necesitamos nada de esto aquí porque realmente estamos garantizando que hay valor en ello. Entonces no lo hacemos En realidad no necesitamos hacer nada de esto. Ya está garantizado. Como dijimos. Entonces ya éramos un buen codificador y, uh, responsable decir igual a post op descripción. Post op, Descripción del
post. Ahí vamos. Ahí está nuestra descripción luciendo genial. Y sabemos que los gustos también, um, va a estar ahí seguro. Por lo que podemos decir en sí dot likes label dot text es igual y simplemente adoraremos inserción especial Sintaxis aquí dirá un post dot likes porque es entero Queremos convertirlo en una cadena. Vamos a mostrar los “me gusta”. Eso es genial. Um bien, así que tenemos el puesto. Entonces nos dieron la descripción. Tenemos los “me gusta”. Lo que quiero hacer es asegurarme de que funcione primero antes que nada antes de empezar a trabajar con imágenes y cosas así. Entonces lo que tenemos que hacer es conectar nuestros puntos de venta aquí, Así que sigamos adelante y hagamos eso. Ahora entra en tu guión principal, ¿de acuerdo? Y ah, ahí vamos. Está bien. Y veamos esto. Ah, post celular justo aquí. Correcto. Haga clic en la etiqueta me gusta. Está conectado al nivel me gusta. Aquí los números no hacen la palabra me gusta. Y luego tenemos el texto descriptivo. Lo arrastraremos hasta aquí, y parece que nuestras imágenes mostradas ya ahí, lo cual está bien. De acuerdo, entonces esos aire conectados Se ve bien. Vayamos a nuestro feed V c. Y vamos a ocuparnos de esto. Entonces, ¿recuerdas cómo nos engañamos aquí solo por las pruebas? No queremos hacer esto. Esta es una mala práctica. Podríamos tener un choque. Lo que vamos a hacer es que vamos a decir si let cell iguala tabla vista la Q celda reutilizable con identificador. Es el mismo código va a tener un poco diferente como post cell, por lo que podría fallar. Puede que no. Y entonces lo que vamos a hacer es que vamos a decir, Ah, celular que configure la venta, y vamos a pasar en el poste que agarramos justo aquí arriba. Vamos a pasar en ese puesto, y, uh, y tenemos que devolver esa venta de devolución. Si eso no funcionó, vamos a decir más y luego nos vamos, Teoh, Sólo devuelve un puesto regular. Vendo como así estar listo este año. Nunca se llamará. De acuerdo, entonces otra vez, nada nuevo de lo que hemos hecho en el pasado. Si has pasado por todo este curso, hemos creado una mesa tuya. Entonces lo hemos agarrado de la mesa, ver una reutilizable, y aquí arriba ya estamos agarrando este post, vamos a deshacernos de la huella. Ya no necesitamos eso. Y luego vamos a configurar la celda, pasando el poste, devolver la celda a la vista de tabla. Y luego, por
supuesto, por aquí y nuestro postcelular, Um, en realidad lo
estamos configurando. Estamos configurando el texto descriptivo. Estamos configurando la etiqueta me gusta. Todavía no nos estamos metiendo con la imagen, así que vamos a abrir los pies en Firebase. Lo que deberíamos ver si todo ha funcionado correctamente. Lo que deberíamos ver es 1234 posts. Entonces deberíamos ver cuatro celdas aquí, y cada una de las descripciones y los gustos deberían ser reflexivos de lo que realmente
se supone que son . Entonces sigamos adelante. A ver si puedo hacer este simulador un poco más pequeño. Ahí vamos, y vamos a seguir adelante y darle una oportunidad. ¿ Quieres detenerlo y volver a ejecutar? Viene uso normalmente choque siempre anticipado. Pero tal vez parece que está funcionando. Oye, oye, mira eso. Está bien. ¿ Estás listo? Entonces está bien. Estos primeros de aquí, la descripción parece que a 230 le gusta. Eso definitivamente está funcionando. Este de aquí tiene 20 likes, ¿de acuerdo? Y sólo una descripción. Eso es fantástico. Uh, este de aquí tiene 350 likes y tiene la descripción correcta. Y Ah, este de aquí, um, parece que es correcto. Y también se ordena exactamente de la misma manera, lo cual es algo genial. Nunca se puede garantizar que algo va a ser ordenado por fuego. Race hace un buen trabajo de mantener las cosas ordenadas, así que es bastante guay. Entonces definitivamente está funcionando. Estamos actualizando la celda, y se ve genial. Ahora lo que queremos hacer es que funcione esta imagen. Entonces uno de los problemas que tienen los nuevos desarrolladores de IOS es como, Ok, dónde es cómo hacemos la imagen? Entonces lo que harán es que lo descarguen de internet. De acuerdo, esto es realmente importante. Escúchame con mucha atención. Muy, muy cuidadoso. Esto es súper importante. Es necesario saber esto. Necesitas impresionar a alguien en una entrevista de trabajo. Al tener este conocimiento, los
nuevos desarrolladores llegarán a Internet y obtendrán una nueva imagen cada vez. Entonces lo que van a hacer es ir al postcelular justo aquí, ¿de acuerdo? Y en esta celda configure, descargarán la imagen de Internet. Bueno, aquí está el problema. ¿ Estás listo para ello? Entonces digamos que aparece en la pantalla justo aquí. Estos dos vende Bueno, lo que va a pasar es en tus pies, ver controlador aquí, vender ruta de índice Fero se va a llamar dos veces. Pero ¿sabías que vender ruta de índice Fero se llama en cualquier momento en New Cell viene en pantalla. Entonces, ¿qué pasa si, digamos que había cinco elementos en la pantalla en lugar de dos, y así esto se llama cinco veces. Hemos realizado cinco solicitudes de Internet para descargar una imagen, y luego el usuario comienza a desplazarse de inmediato. Esos ya se han ido, vale, pero aún se está descargando en Internet, y los nuevos vienen en pantalla, y está tratando de aplicarlos a los viejos que ahora están fuera de la pantalla Eso se acerca vuelta, y tienes solicitudes flotantes que no están terminando y listan algunas de ellas cargan. Tienes problemas,claro, claro, Pero si comienzas a desplazarte muy rápido, podrías tener 100 solicitudes pasando al mismo tiempo. Y ah, realmente, muy mala práctica. Y muchos desarrolladores nuevos hacen eso. Entonces te voy a enseñar la forma correcta de pagar. Atención muy cuidadosa. Esto es realmente importante. Entonces imágenes cómo vamos a trabajar con imágenes. De acuerdo, Entonces lo que queremos hacer es usar un marco llamado Fuego de Álamo. Lo hemos usado en el pasado. Es la más popular y luego probablemente la mejor red IOS, uh, framework para swift. Y así vamos a seguir adelante y agarrarlo. Entonces ve a tu ve a tu Internet aquí, tu internet, tu navegador y ve Teoh Alamo, despide un get hub. Por lo que es conseguir hub dot com slash Alamo fuego slash Alamo fuego click ramas. Porque así porque, uh, IOS nueve aún no se libera. Su veloz 2.0, rama tampoco se libera aún. De acuerdo, será más tarde. Entonces si si no fue si esta fue la versión en vivo. Si estás viendo esto cuando todo está en vivo, vas a querer agarrarlo desde aquí mismo. Vas a querer dedo del pie. Esto será diferente. De acuerdo, Pero vas a querer ir a la página principal aquí y hacer lo que dice hacer
aquí mismo . Pero no vamos a hacer eso porque seguimos en beta. Por lo que va a ir a sucursales aquí, Haga clic Swift dos puntos. Oh, desplázate hacia abajo y dan diferentes instrucciones para éste, y está justo aquí. Queremos a este tipo aquí. Entonces copia eso, comando. ¿ Ver? Y luego en tu proyecto de código ex, ya
deberías tener tu archivo pod porque hemos instalado Firebase, un archivo de pot click y justo en una carrera de bomberos. Adelante y pon eso ahí y guárdalo. Abre tu terminal de espacio de mando terminal. ¿ De acuerdo? Y déjame jalar aquí. ¿ De acuerdo? Entonces lo que queremos Dio es navegar al proyecto, así que voy a ir a mi escritorio y CD. Tener pendientes. Escaparate de escombros. De acuerdo, eso es lo que queremos correr. Aquí hay una vaina. Instalar. Ya viene. Perfecto. De acuerdo, entonces lo descargó y lo instaló. ¿ De acuerdo? Ahora está en nuestro proyecto, y creo que nuestro proyecto se refresca aquí. Entonces voy a las vainas, ver cómo no hay fuego de Álamo. Están bastante jodidamente cool. Entonces ahora vuelve a tu proyecto, yendo a tu controlador,
y tú, uh,
no estás uh, tus pies VC yendo a tu vista y a tu celular y en la parte superior aquí, adelante e importa fuego de Álamo, como así Está bien. Y me está gritando. Pero si lo construyo, debería funcionar. De acuerdo, nuevo, Este es presupuesto beta para ver un montón de ares rojos y esas cosas. Ah, la construcción siempre es la máxima autoridad. De acuerdo, así que aquí está la idea. La teoría detrás de cómo debería funcionar esto. Tenemos una imagen en efectivo y un efectivo va a ser la tienda almacenada localmente en el dispositivo para esta sesión actual. No va a ser permanente. Y básicamente, cada vez que descarguemos ah, una imagen de Internet, la vamos a almacenar en el efectivo, OK, Y luego qué? Haremos lo que las células sean refrescantes. Cada vez que alguien se desplaza, primero
vamos a revisar el efectivo, y si está ahí, lo va a cargar al instante. Por lo que no más descargas súper rápidas y sensibles. Además, vamos a manejar si se desplaza fuera de la pantalla. ¿ De acuerdo? Vamos a terminar. Ya existe una descarga de it proveniente de Internet. Vamos a cancelar esa solicitud porque no queremos algo que descargue. Eso está fuera de la pantalla ahora, sobre todo si se están reutilizando las células. Y luego, claro, después de descargar una imagen vamos a mostrar. Pero también vamos a almacenar en el efectivo para que pueda estar disponible en el futuro. Por lo que hemos importado fuego de Álamo aquí. Adelante y ah,
iniciemos la descarga de imágenes. Entonces, um,
vamos, uh, uh, primero a hacer algo de manejo de aire aquí. Entonces post, no ahí. Manejando solo algo de lógica. De acuerdo, así que queremos asegurarnos de que haya una imagen oral derecha, causa que el usuario no tiene que enviar una imagen. Entonces, asegurémonos de que haya una imagen rural. Asegúrate de que no sea Neil. De acuerdo, entonces si una mayoría no es Neil, significa que necesitamos o bien sacar la imagen del efectivo donde necesitamos descargarla. Entonces, ¿cómo sabemos si hay una imagen en el efectivo? Bueno, aún no
tenemos efectivo, Y como el efectivo va a almacenar todas las imágenes para esta vista, um, probablemente no tenga sentido ponerlo en este post sell. Probablemente tenga sentido ponerlo aquí en el controlador de vista de alimentación. Entonces hagámoslo ahora. Lo pondremos justo aquí en la parte superior Se guardará nuestra imagen. Efectivo equivale a N s efectivo. Es así de sencillo. Es sólo eso. Está diseñado para cobrar los datos de la tienda localmente y, uh, hacer tu vida más fácil. Entonces tenemos un efectivo. Lo que queremos hacer es, ah, cambiar algunas cosas ahora en nuestro camino índice Ferreira. De acuerdo, así que tenemos nuestro post justo aquí, y lo que queremos hacer es asegurarnos de que estamos trabajando correctamente con las imágenes aquí, Ah, algunas cosas. Uh, primero
intentemos agarrar una imagen del dinero en efectivo. Entonces primero, declaremos una imagen. Esta va a ser una imagen opcional como esa. Y lo que vamos a hacer es que vamos a decir si deja que tu l igual post en Majoro. Entonces vamos a asegurarnos primero de que haya una imagen, Orel. De acuerdo, Si no hay mayoría iban a decir que soy g igual. Y, uh, ya
sabes, una cosa que olvidé, en realidad, es que hagamos estática esta imagen en efectivo. Y si recuerdas lo que hace estática es que hace una instancia de la misma, como, disponible globalmente. Así fue instancia de memoria para que podamos acceder a ella desde cualquier lugar porque nuestros posts
son posts van a poder necesitar agregar imágenes a eso. Por lo que acabo de ponerlo a disposición pública Una instancia de la misma. De acuerdo, vamos a decir que eres l igual feed V c punto imagen en efectivo. Ahora, la razón por la que estamos usando el nombre de la clase en lugar de decir como yo
es porque está disponible públicamente y es estático, y queremos agarrar la única instancia de la misma. Y así es como lo haces. ¿ De acuerdo? El objeto por llave, estás enfermo. A medida que me imagino. De acuerdo, hablemos de lo que está pasando aquí. Entonces lo que estamos diciendo es, oye, agarra la U. R L si existe, si no lo hace, ni
siquiera se ocupe de esta imagen aquí mismo. Pero si existe, vayamos al efectivo de la imagen y obtengamos objeto para Keystone Image Un efectivo y Ennis Cash tiene, como claves y valores al igual que un diccionario. Es eso lo que vamos a hacer es realmente vamos a almacenar el propio euro como el nombre clave porque es único. Y si dos imágenes tuvieran la misma exacta tu no importaría porque solo necesitamos una para ambas de esas imágenes iniciadas tiene sentido. Entonces básicamente, uh, la URL va a ser la clave, y el valor va a ser los datos de la imagen en sí. Entonces sigamos adelante y agarremos la imagen de esa llave. Y, uh, lo va a poner justo ahí y en caso de
que fallara, está bien. Vamos a encargarnos de eso. Y sólo en un segundo aquí. Por lo que la idea está en nuestro post. Entonces si hay una imagen en el efectivo, pasemos eso. De lo contrario necesitábamos abajo descargar los datos. Y así creo que necesitamos modificar nuestra celda configurada aquí mismo para que puedas mandar click en ella . Nos lleva a nuestro post venta. Entonces además de pasar en el post, pasemos también en una imagen si existe. Por lo que necesitamos poner el signo de interrogación al final de hacer causa opcional puede o no existir. Entonces vuelve a tus pies, ves, y en tu configure vendes Ahora podemos,
uh, uh, pasar en el poste y las imágenes Bueno, y así estás como,
Bueno, Bueno, ¿por qué te ¿Por qué pusiste esto aquí? Bueno, lo que estoy haciendo es que estoy haciendo una imagen vacía. Y si funciona, si todo funciona aquí mismo, ya no va a estar vacío. Y eso está bien. Uh, y lo pasará por aquí. Vamos a hacer un cheque en un minuto para asegurarnos de que no se arrodille. Si esto no
funcionó, sólo va a pasar en una imagen vacía. Y vamos a No, a comprobarlo, porque va a estar vacío. Entonces, uh, eso es sólo lógica. Eso es todo lo que es. Y así estamos pasando en el puesto estaban pasando en la imagen del efectivo si existe. Está bien. Y, uh, eso se ve bien. Entonces ahora sigamos adelante y volvamos a nuestro postcelular aferrarnos a sus gritos sobre
algo . Ah, uh, es porque no lo hicimos Nosotros no lo cambiamos aquí. Uh, mi mal. Simplemente extraño algo. Está bien. No olvides que eres como yo estaba esperando a que arregles eso. Sí. Así que asegúrate de poner tu imagen aquí a la que agarres del efectivo. Ahí vamos. el oh, por lo que post celular. Ahora lo que queremos hacer es que Teoh cree una solicitud de incendio de Alamo. Por lo que necesitamos necesitamos Almacenar solicitudes aquí. Y la razón por la que necesitamos distorsionarlo es porque sopas uh, vamos. El motivo por el que necesitamos almacenarlo es porque necesitamos poder cancelarlo. ¿ De acuerdo? Porque no tienes que hacerlo. No tienes que almacenar una solicitud con el fin de ah, para poder hacer una. Pero como necesitamos cancelarlo, sí
necesitamos un cuento de tienda en una ubicación de memoria para que podamos cancelarlo en un momento posterior. Entonces Barbara, búsqueda es igual a peticiones, y esta es una base de fuego. Este es un objeto firebase. Esta solicitud aquí mismo. De acuerdo, por
eso es naranja. Y no creamos esa base de fuego lo hizo. Entonces ahora vamos a dio vamos a bajar aquí. Y, uh, lo que vamos a hacer aquí es si imagen o a no es igual a clavo, Entonces si hay una imagen o oh, significa que tenemos una imagen. De lo contrario, ya
sabes, no
hay razón ni siquiera mostrar. De hecho, lo que debemos hacer es si no hay imagen o l deberíamos decir,
Ah, Ah, deberíamos decir auto no, um escaparate imagen punto oculto, no resaltado. Vamos, golpea a un igual. Cierto. Por lo que no hay imagen ni elementos El usuario no puso una imagen. Y vamos a esconder esa cosa por completo, ¿de acuerdo? Y entonces lo que queríamos es decir, si la imagen no es igual para arrodillarse, vale, auto. Esa imagen mostrada imagen de punto igual a yo soy Jean. Entonces piensa en esto. Pasamos en la imagen del efectivo. A lo mejor si estuviera ahí, lo
pasamos. Y si no estaba
ahí, aquí no pasa nada. Entonces nos estamos asegurando de que no estamos comprobando nada. Pero lo que estamos diciendo es, si hay algo aquí, significa que es una imagen en caché. Entonces sigamos adelante y sólo carguémoslo del efectivo. De lo contrario, ahora necesitamos hacer nuestra petición para que podamos decir, como, tan cierra este, uh, consejo aquí, diremos este poquito más grande para ti. Solicitud es igual a Fuego de Álamo, no solicitud. Y queremos este aquí. Y el método es un get request causa estamos descargando algo y esto es post dot image rural. De acuerdo, voy a poner la exclamación al final Porque sé que está ahí porque realmente hicimos el cheque, y vamos a validarlo y asegurarnos de que el tipo de contenido sea una imagen. De acuerdo, eso es todo lo que hace esto es que se asegure de que no se descargue la imagen. Está optimizado para imágenes. Y esto es una cosa especial de fuego de Alamo para hacer tu para hacer tus peticiones. Amore eficiente. Entonces, uh, estamos validando que estamos consiguiendo una imagen, ¿de acuerdo? Y entonces lo que haremos es llamar respuesta de punto y, ah, esta está bien. Aquí mismo. Pide respuesta. Datos aire. Está bien. Y, ah, solo
voy a tabular y entrar en todas estas aquí. Vamos a cambiar esto sólo un segundo. Entonces lo que voy a dio es ah, deshacerme de los paréntesis. Aquí, deshazte de estos paréntesis. Y solo voy a llamar a esta solicitud Llama a esta respuesta. De acuerdo, llama a este. Datos, se
trata de datos de RNs. La imagen misma en el aire de éste. Deshacernos del vacío y solo hagamos el adentro, así. Lo tengo. Vale, Solo Así es como trabajas con los cerradores. Podrías hacerlo de cualquier manera, lo
vamos a hacer de esta manera solo para ahorrar tiempo Si Air es igual a Neil, Significando si no hay aire. Si fuera exitoso, íbamos a decir: Deja que la imagen te iguale la imagen. Y esta es una imagen de un dato, ¿de acuerdo? Y ah, solo
estoy forzando desenvolver los datos y forzar y envolver esto. Simplemente vamos a asumir que está funcionando ahora mismo. Probablemente lo hagas si vamos en estos. Pero por el bien del tiempo, vamos a dejarlo así. Se 99,9% va a funcionar. Pero sólo para que lo sepas, yo soy consciente de ello, y tú también deberías estar al tanto. Pero por el bien del tiempo y porque te lo he dicho en este mil millones de veces, vamos a seguir avanzando aquí y vamos a hacer Es un yo. Esa imagen de punto de escaparate es igual a esta nueva imagen aquí mismo. Por lo que hicimos una petición. Descargamos los datos. Nos aseguramos de que sea una imagen de tiempo. Um, y, uh, este es solo el formato que usas. ¿ De acuerdo? No te preocupes por cómo funciona bajo las escenas. Eso lo puedes ver si quieres. En el manejador de finalización, tenemos datos. Y así si no hay aire que sigamos adelante y agarremos esos datos de imagen como ven
aquí mismo . Y vamos a seguir adelante y ponerlo dentro de nuestra imagen de escaparate. Y eso es realmente todo. Hay una cosa más que tenemos que hacer, sin embargo. Necesitamos Thio agregado a nuestro efectivo, recuerda, Porque ahora lo descargamos. Por lo que alimentar v c punto imagen efectivo que establece objeto. Vamos a establecer la imagen en sí. Esto, uh, hace tu imagen aquí para llave y vamos a decir, Ah, auto punto, post imagen de punto o enfermo? De acuerdo, Cualquier heredero, Construyamos y veamos si hay algún heredero. Oye, funcionó, al
menos en la superficie. Aquí funciona. Así que vamos a asegurarnos de que tenemos todo el código que necesitamos. Entonces si no hay si hay una imagen o una, vamos a entrar aquí. Si no hay una imagen o simplemente esconderé la imagen. Uh, si la imagen no es igual a clavo, decir, esta imagen aquí, significa que tenemos una imagen en efectivo, así que usa esa en su lugar. De lo contrario, vamos a hablar con Internet. ¿ Recibimos solicitudes usando la imagen de post o me aseguro de que sea de tipo imagen, cualquiera que sea la imagen, tal vez chip J Peg. Lo que sea en el manejador de finalización. Si el aire está en ese Neil, agarra los datos de la imagen convertidos en una imagen, luego guárdelo dentro de nuestro ibl en nuestra imagen de escaparate y luego agrega al efectivo. De acuerdo, ahora se ve realmente bien. En realidad, hay una cosa más que creo que necesitamos manejar, y eso es cancelar nuestra solicitud. Entonces si volvemos a, vamos a ver aquí Ah, la alimentación V c. Entonces lo que queremos hacer es que en cualquier momento que creemos una nueva celda Vale, um, queremos cancelar la solicitud de inmediato, justo fuera del bate. Entonces vamos a decir fecha de venta solicitar punto Cancelar. Y está bien dejar ahí el signo de interrogación porque simplemente significa que nuestra solicitud es opcional . Y si hay si es Neil, esto no hará nada, y eso no nos preocupa. Pero si existe, queremos cancelarlo. Entonces piensa en lo que está pasando. Entonces me estoy desplazando bien, y éste acaba de salir de la pantalla y estoy usando uno nuevo. Y así si la nueva celda que ahora se están reutilizando tiene una solicitud existente para obtener una imagen, ¿por qué descargaríamos una imagen vieja y la pondríamos en la nueva celda nos daría la imagen equivocada . Por lo que queremos asesorar esa solicitud de inmediato, y luego se ejecutará una nueva solicitud de la misma necesita Teoh. Um, está bien. Entonces lo que hemos visto hasta ahora es que esto está funcionando. Entonces lo que deberíamos ver ahora son estas imágenes aquí, deberían haberse ido. O deberían tener una nueva imagen en ella o deberían estar vacías. Invisible, porque camino lo golpeó porque no existía. Si vemos meter uno ahí, sabemos que tenemos un problema. Vamos a seguir adelante y tratar de ejecutarlo. Podríamos tener un choque. Podemos no. ¿ Quién sabe? Nunca se sabe. Por lo que hay que construir y correr a menudo corriendo, cargando. De acuerdo, echemos un vistazo aquí. Por lo que parece que una de las imágenes está funcionando. Dos de las imágenes funcionando. Uh oh. Ahí están los auriculares que uno acaba de cargar. Entonces este de aquí, sabemos que no tiene imagen, ¿recuerdas? Si lo miro aquí. Ooh, nena. Ooh, nena, no
tienes imagen. Eso está bien. Mira, estos otros funcionan. Los descargaron de internet, y todos están trabajando como necesitan trabajar. Este nos frió frijoles en unos auriculares. Ahora bien, no
me gusta el hecho de que, uh, no
haya imagen aquí. Y había este gran espacio vacío. ¿ Te gusta? No me gusta. Por lo que necesitamos cambiar la altura de nuestra vista de tabla Vender si no existe. Y recuerda cómo dije que debieras. Apilas vistas porque cuando escondes algo en
él, desaparecerá. Y Reese Ice? Bueno, eso es cierto. Pero sabes lo que me di cuenta es que sabes cómo queríamos tener la sombra fresca en nuestra celda justo aquí. Entonces tenemos este contenedor que tiene sombra, como se puede ver ahí mismo. Bueno, el problema está en una celda. Solo redimensionar es automáticamente si tienes cosas adjuntas a la vista de contenido lo que teníamos que crear Otra forma de crear otra vista de contenedor justo aquí. Y así cuando hagamos algo oculto, su acción no va a redimensionarlo para nosotros. Si todo había terminado, objetos y las vistas de pila estaban aquí en la vista de contenido y desaparecieron. Ellos volverían a tamaño. Pero ya que el contenedor tiene la sombra y esas cosas. No va a hacer eso por nosotros de forma automática. Y no quiero perder la sombra porque está bastante jodidamente guay. Entonces sigamos adelante y escribamos el código nosotros mismos para redimensionarlo. Entonces lo que queremos dio es Ah, mira lo alto que son celular está justo aquí. Por lo que abre el lado derecho. Echemos un vistazo a la venta. Y, uh bien, así que son alrededor de 3 58 voy a apagar la costumbre. Yo quería ser automático, así que es alrededor de 3 58 Así que vamos a entrar en nuestro controlador de vista de feed. ¿ De acuerdo? Y, uh, en nuestra opinión, sí cargó justo aquí. Lo que vamos a dio va a decir tabla vista punto estimar altura estimada de fila igual. ¿ En serio? Pensé que copiaría eso. Ni siquiera puedo recordar ahora. Uh, vamos a mirarlo una vez más. Perdón. Uh, 3 58 Cal. Muy bien, Mi mala memoria aquí. Está bien. 3 58 Entonces, cómo funciona es, um si no pones una altura estimada de fila en cada celda, va a calcular el tamaño y tus vistas de tabla Va a correr mucho más lento. Entonces si dices Hey, mi celular es 3 58 Pero si necesitamos cambiar la forma en que necesitamos cambiar la altura de fila, um, en una específica, solo
lo va a hacer por esa. Entonces vamos a establecer una altura estimada de fila y entonces lo que queremos dio es aquí abajo en la parte inferior. La mayoría implementa una nueva función delegada llamada altura. camino del índice de surcos debería estar aquí en alguna parte. No hagas clic en los equivocados aquí, Altura para fila en el siguiente camino. Y lo que queremos dio es Agarrar nuestros posts para decir Let post equals posts index path dot ro. Por lo que se agarró el poste. Lo que queremos hacer es decir, si no hay imagen rural, vamos a escondernos, hagámosla una estatura más corta. Entonces si, um, si post imagen de punto o mal equivale a Neil, si no existe, necesitamos volver a la nueva altura y así no sé qué va a ser. Entonces solo vamos a jugar con él. Entonces ahora mismo somos tres, como, 58. Entonces vamos a devolver 200. Si es Neil más, volvamos. El atraco de fila estimado dirá Vista de tabla estimaba esa altura que ya fijamos. Vamos a sólo Vamos a seguir adelante y devolver eso y dicho así camino de índice Height Furrow
va a establecer una altura para cada fila. ¿ De acuerdo? Y eso está bien. Eso es lo que vamos a hacer es hacerla más pequeña si no hay imagen y hacerla más grande. Si hay una imagen y no sé cómo se va a ver, puede que tengamos que jugar aquí algunos números. Aquí viene. De acuerdo, así que sigue siendo un poco demasiado grande. No me gusta, pero no queremos salir de la pantalla. Hagamos una prueba más aquí. Hagamos clic en esta vista de texto aquí. De acuerdo, Si me deja. Estaba haciendo clic en la pila, escuchas Stack on stack on stack view description. Ahí vamos. Y lo que voy a hacer es sólo por las pruebas, ya que voy a hacer que el fondo sea un color realmente brillante, como el rosa solo para las pruebas para poder asegurarme de hacer la vista de tabla de la
altura correcta . Voy a volver a hacer clic en mis pies VC por aquí puede. Entonces aún te has dado cuenta de que en realidad es bastante grande. Es más grande de lo que me gustaría que fuera. No sé si va a cortarlo o no. Um, pero solo voy a jugar aquí con él. Por lo que 200. Creo que es demasiado grande. Hagamos 2150. A veces cuando es blanco y blanco, solo
es difícil ver lo que estás haciendo. Entonces es una buena manera de simplemente probar las cosas. De acuerdo, creo que eso me gusta. Dejémoslo así 150 voy a volver al storyboard principal aquí. Voy a ver si me dejas deshacerla, lo cual no lo es. Entonces, solo desplazémonos aquí y volvamos al valor predeterminado. Vamos a correr de nuevo. De acuerdo, entonces auriculares. Esta no tiene imagen. Entonces es más corto. No se ve genial. Eran como hacer su propia aplicación de Facebook. ¿ Qué tan guay es eso? Y desplácese hacia abajo. Tengo esta manzana. ¿ Quién? Mi primera. Eso. Impresionante. Parece que todo está funcionando. A pesar de que sí tengo dos artículos tienen 20 likes solo asegúrate de que es preciso Aquí donde mi, uh, parte de mi firebase hace ¿la perdimos? Mostrar todas las ventanas aquí. Te vi ahí. Entonces todas las ventanas Inténtalo de nuevo. Ahí estás. Ok, entonces sí tenemos dos artículos a los 20. Al igual que eso no me gusta. Vamos Ah, cambiemos el Wuhu Teoh 41 41. Dije 41. Hola? Aguanta. Es Dame algo de dolor aquí. Vamos. Está bien. Me gusta 41 entrar. Está bien. Y ahí lo tienes aquí mismo del lado derecho.
108. App: muestra parte 12: haz post UI: ¿ Qué pasa, todos? Aquí vamos otra vez. Entonces Mark, pricier deficits dot com way van a seguir construyendo nuestra app. Y hoy nos vamos a centrar en poner la Y en su lugar o poder publicar poder cargar el recolector de imágenes y cosas así. Y así aquí está nuestro proyecto. Si no lo tienes abierto ya, vas a ir a ir a abrir archivo reciente y elegir la app, y así vamos a seguir adelante y empezar. Y así la idea es, queremos hacer un post y tiene un área de texto. También tiene una nueva imagen, pero en y luego un botón de post para publicarla realmente. Y así queremos ponerlo aquí mismo por encima de las celdas prototipo, dehecho, hecho, por encima de la vista de tabla. Así que salgamos y hagamos entonces ahora, así que ten en cuenta cómo tu vista de tabla de aquí está aquí arriba. Vamos a seguir adelante y temporalmente darle desplazamiento aquí abajo en el lado derecho, sobre los atributos, Inspector y cambiar el fondo, algo que se destaca por decir rosa sólo para que pueda ver cuánto espacio tenemos aquí. Ahora aquí hay algo interesante nota cómo cuando hemos estado construyendo la app y ejecutándola este espacios extra aquí. Si ejecuto esta aplicación aquí mismo
, muestra ese espacio extra y es realmente molesto. Y queremos deshacernos de ella. Y no sé si esto es un bicho. Ha sido un ex abrigo para siempre. O si es una característica, si es una característica, es un poco tonto. Pero ver este blanco, este espacio extra así que no necesitamos Y la razón por qué es porque aquí en el
lado derecho , nuestra vista de mesa está bien, es, um está en el nivel superior de una revisión aquí. De acuerdo, Um y así que necesitamos dio es, uh como necesitamos agregar otra vista y ah, y luego mover esta, uh, beneficio. Y así lo haremos ahora mismo y lo verás desaparecer. Sólo una cosa rara. Entonces, todos modos, um, sigamos adelante y vayamos con tu gobernante por aquí. ¿ De acuerdo? El inspector de tamaño Y lo que queremos hacer es deshacernos del espacio superior en la vista de tabla, asegurarnos de que la vista de tabla seleccionada y deshacernos del espacio superior porque necesitamos moverlo hacia abajo . Entonces voy a seguir adelante y arrastrarlo hacia abajo hasta el punto donde me siento como, Ah, la sección post post debe ser Eso se ve bien. Observe que no lo moví hacia abajo. Simplemente lo redimensiono de arriba hacia abajo, eso es todo. Está bien. Y lo que vamos a hacer es simplemente agarrar a un viejo espectador regular. Vives, tú, vamos a simplemente plop ahí mismo. Y, por
supuesto, nunca el tamaño. ¿ Es del tamaño correcto? Pero eso está bien. Nos encargaremos de eso ahora mismo, y eso se ve muy bien. Así que vamos a hacer clic en él y arrástrelo al tamaño de la mesa de ustedes ahí, ¿de acuerdo? Y queremos que esta vista tenga una sombra y se vea realmente bonita. Por suerte, hemos creado esta clase de vista de material que podemos reutilizar. Yo ahora eres como, Oh, él es tan listo. Podemos reutilizar esto. Esto tiene sentido. Mm hmm. Entonces cambiemos la clase por aquí en el Inspector de identidad. Cambiémoslo, vista material
Teoh, y eso le va a dar nuestra sombra y cosas así. Ahora, vamos a seguir adelante y fijarlo. Entonces haz clic en tu vista aquí y, uh, haz ropa. Mi cónsul corte de pelo. Esa basura fuera del camino. Haga clic en el menú de la pluma. Vamos a fijarlo. Ocho de arriba dejarán márgenes en cero desde la izquierda y cero desde la derecha, y le daremos una altura fija. Está bien, eso se ve genial. Ahora vamos a resolver este feo problema de vista de mesa aquí. Ahora. Si colapso esto, tenemos una tabla de visualización de material. Tú si solo arrastro esta vista material detrás de ella, todo
ese espacio extra se fue otra vez. No lo sé. ¿ Por qué eso? Es sólo un bicho común. Desarrolladores estadounidenses que tuvieron que lidiar para siempre. Entonces eso se ve bien. Voy a deshacerme del rosa sobre la mesa de ustedes saben ahora que sé que es talla. Pero primero, en realidad, vamos a fijar eso a la parte superior. Así que vamos a hacer clic en el botón pin mes vista de tabla está seleccionada, y vamos a cambiarlo a ocho ocho desde la parte superior. Y ahí vamos. Estamos escritos un apagado este desagradable rosa volver a la predeterminada, luciendo fabuloso. De acuerdo, entonces tenemos esta vista aquí, pero necesitamos poner el campo de texto post en él, ¿
verdad? Entonces, solo tecleemos en campo de texto. De acuerdo, deja un arrastre que aquí mismo. Está bien. Y luego, uh, esta cámara, no
quiero que sea un pero en porque a veces cuando estás jugando con botones, estás limitado en cómo se ven los gráficos, se estiran, y realmente quiero que esto sea una imagen. También quieres enseñarte a agregar entrada de usuario en una imagen o cualquier control. Entonces no sé si lo sabes o no. Pero cualquier control, cualquier tipo de ustedes realmente pueden reconocer un grifo no tiene que ser un botón para
que podamos manejarlo nosotros mismos. Muy cool. Entonces es imagen de dragón. Tú a tu lado,
claro . Vamos a redimensionarlo aquí y redimensionarlo aquí y redimensionarlo aquí. Eso se ve bien. Y esto es en lo que está la altura. Esto, uh, así que 43 más altos 37. Asegurémonos de que encaja el a las fronteras aquí. Entonces 37 Slater, Hagamos el con 37 en él. No, creo que eso es lo que vamos a querer. Y entonces sigamos adelante. Y en esta ocasión vamos a añadir un botón. Está bien, ponlo aquí mismo. Cambiemos esto a SE publica gorras propias. Se cambió de sistema a personalizado. Adelante y vayamos a Noto Sands. Cámbialo. Dos cuencos empezando a lucir realmente bonitos. Uh, 15. Probemos 14 solo por no OK, vayan al fondo. Y aquí un bonito azul Así que el azul es 00 b cuatro e uno Si quieres ese azul debe crecer hasta la parte superior y cambiar el texto de color o blanco Y ahí tenemos un botón. Se ve bien. Entonces ahora lo que quiero hacer es que quiero poner los tres en una vista de pila. De acuerdo, así que solo haz clic en los tres, mantén presionado el turno de comandante, selecciona los tres y luego haz clic en la vista de pila. Ahora están en una vista de pila horizontal, que es justo lo que queremos. Y vamos a seguir adelante y fijar esta pila. Ya sabes, vamos a fijarlo márgenes restringidos. Me pregunto por qué lo apagó. Está bien. Y vamos a decir cuatro. Aguanta. Vamos a impresionar escape para ver si puedo redimensionarlo sobre donde lo necesito. Ahí vamos. De acuerdo, intentemos esto otra vez, Pennant. Vamos a decir para lo que queremos Dio Digamos cuatro desde arriba. De acuerdo, Martin sale diciendo cero. Cuánto espacio necesitamos. ¿ De verdad necesitamos eso? Dejémoslo en cero. Ya veremos cómo se ve. Entonces digamos 00 cero y cero. Por lo que está ahí 40. Adelante y hagamos eso. Y como pueden ver, hizo exactamente lo que queríamos. Um, cuando cruza el pasillo, lo cual está bien. Y así en su campo de texto aquí, no
cambiaría algunas cosas alrededor. Primero, vamos, uh, vamos a deshacernos del campo de texto predeterminado y hagámoslo uno sin bordes. Y luego haremos clic en el inspector de identidad y usaremos nuestra clase de campo de texto de material impresionante para que tenga la sombra y esas cosas. Y en este campo de texto, vamos a darle un color en el fondo aquí, recortar tu after you inspector y bajar aquí al fondo. Y vamos a cambiarlo a un bonito gris claro como así y el marcador de posición va a decir, Habla de tu app. Ya sabes como dice Facebook, ya
sabes, ¿qué quieres escribir o decirnos de tus pensamientos? No hables de tu app y, uh, cambiemos la fuente personalizada Cambiemos a Noto Sands, por
supuesto, y a los habituales. Bien. OK, así que eso se ve bien. Um, aunque está diciendo que no va a estar donde esperamos que esté en descarga. Se podían ver los pequeños guiones anaranjados ahí. Significa que va a ser realmente pequeño en el apurate cuando se ejecute la APP y no queremos eso . Y tampoco me gusta cómo las imágenes como Super Stretch así
aquí . Entonces haz clic en tu imagen y vamos a seguir adelante y hacer un arreglo con y Altura y vamos a decir que dentro de la altura va a ser 37 por 37. Ya veremos cómo se ve eso. De acuerdo, Nice Little Square y el Post que quería ser. Está bien si se queda esa altura, pero yo quería tener ah, además, con Vamos a seguir adelante y hacer un fijo con aquí. Adelante y digamos que solo es un 50. Ahí vamos dar click a tu pila, ¿Estás bien? Y agreguemos un poco de espaciado. Entonces agreguemos espaciado de 10 buen aspecto para mí. Um, ahora, en esta imagen, tú aunque queremos poner el ícono de la cámara, um, para indicar que Hey, aquí es donde cargas tu foto cuando aún no tenemos eso en el proyecto. Entonces haz clic en tus activos aquí y vamos a buscar el ícono de la cámara. Sucede que lo tengo aquí mismo. Puedes agarrar de la carpeta de activos tú mismo o usar cualquier icono que Joe, te animo a conseguir tus propios iconos. Necesitas meterte en el hábito de hacer eso. Vuelve a tu guión gráfico principal y en tu imagen, sangra y selecciona la cámara y ve lo que parece un aspecto Fit. Se ve bastante bien, en realidad. Entonces tengo mucha curiosidad por ver cómo se va a ver. Obviamente, no
podemos ver el sombrío y esas cosas ahora mismo en la APP se ve un poco feo, pero vamos así y el comando son ejecutarlo y vamos a ver si todo está mirando como lo
haríamos . Esperaríamos que lo hiciera. Puede que no en realidad, eso no está mal en absoluto. Diré yo. Creo que el botón necesita un poco de estilo, y no creo que establezcamos una clase personalizada en eso. Entonces hagámoslo ahora. Haga clic en su botón por aquí. Vayamos al inspector de identidad. Hagamos cambios al botón material. ¿ No es genial tener estas clases? Podemos reutilizar. Muy poderoso. No tenemos que seguir bien. Código personalizado. Cada vez que queremos darle estilo a algo. Ya está ahí. Y nadie más te va a contar este tipo de cosas. Entonces vas a estar muy por delante del juego aquí. Entonces, mira, se ve bastante bien. ¿ No es eso genial? Tan solo un poco de estilo va un largo camino. Entonces habla de tu app. Consiguió la cámara y consiguió el poste, pero creo que se ve genial. Ahora no tenemos el feo espacio por encima de nuestra vista de mesa. Se ve realmente bonito. De verdad, muy agradable. Ok, Ok, entonces lo que queremos hacer entonces, es el siguiente. Sigamos adelante y hagamos que nuestro botón de cámara funcione donde realmente podamos elegir una foto de la fototeca. Um, sólo pone más cosas en su lugar aquí. Entonces ya lo hemos hecho antes un par de veces. Vayamos a nuestro feed VC aquí y recordemos lo que necesitas para ello. Amigo, si dijiste,
uh, uh, el recolector de imágenes de la cámara uh, no imagen de la cámara el recogedor de imágenes, entonces estabas en lo cierto, porque eso es exactamente lo que necesitamos. Y con el fin de utilizar el selector de imagen tenemos que implementar que Usted picker de imagen, Controlador, delegado! Y también tenemos que implementar el delegado del controlador de navegación. Entonces vamos a hacer eso Ahora tú yo picker de imagen, Controlador, delegado Y tú me imagino que te conoces en delegado de controlador de navegación Ok, Porque sabes que tienes que poder presentarlo. Y estos tienen los métodos delegados para llamar. Y por supuesto, necesitamos guardarlo aquí en alguna parte. Entonces vamos a hacer eso ahora. El, uh el selector de imágenes me refiero hasta ahora Selector de imagen de tipo usted yo picker de imagen. Vamos fuera de completo No me lo digas ahora. Selector de imágenes. Está bien, se ve bien. Por supuesto, está a la espera de que se implementen las funciones de delegado y es solo una que realmente necesitaría. Y así vamos a seguir adelante y vamos a asegurarnos de no declarado Ah, no declarado! Tú picker de imagen aquí debo haberla deletreado mal. Sí, lo hice. Es por eso que Controlador selector de imagen. Eres como si ya hubieras hecho estas tres tortugas dos veces. ¿ Por qué estás fastidiando? Bueno, hey, esto es real programación K, esto es Esto no es 19 a 1. Está bien, Vale, así que sigamos adelante e implementemos nuestra función delegada llamada selector de imágenes. Controlador sí terminó de recoger imagen. Uh, justo aquí. Ahora, sí
quiero decir que esta función aquí es en realidad desucar ID. Lo que significa es que ya no se podría mantener activamente, y prefieren que usen uno diferente, que simplemente pasa a ser este controlador picker de imagen sí terminó de recoger medios con info, y este es el uno al que quieren que llames porque esto te permite escoger videos e imágenes mientras que los sistemas solo imágenes. Pero no quiero un trato es tener que averiguar cuál es cuál y qué es lo que sabemos. Van a ser imágenes ahora mismo en el futuro. Si quieres agregar videos a este proyecto, éste sería uno genial. Una genial para usar aquí mismo vamos a usar did finish picking image como se implementa aquí. Y así la otra vez lo hemos hecho antes. Um, esto es después de que lo hayas hecho, ya
terminaste de escoger la imagen. Entonces lo que queremos decir aquí es,
um, um, picker de
imagen que descartó ver controlador Animado? Sí, la terminación no nos importa. Y luego, um, y
asegurémonos de nuestro recolector de imágenes. ¿ No está tan atado Stan Shih? Entonces aquí mismo, sigamos adelante y lo inicializamos. En nuestra opinión, sí cargó así que podemos hacer eso ahora Dirá, uh, picker de
imagen te iguala a picker de imagen, controlador Y ah, image picker dot delegado es igual a self. De acuerdo, igual que lo hemos hecho antes, Está bien, aquí se
ve bien. Y entonces, ¿qué más pasa? Por lo que necesitas una reacción al hacer clic en la imagen real misma. Um, y ,
uh, sigamos adelante y hablemos de cómo podemos agregar una acción a una imagen on. Entonces vuelve a tu principal. Eso es historia. Aburrido. Y tenemos nuestra cámara aquí. ¿ Verdad? Así que ve por el lado derecho por aquí abajo y teclea, uh, tap. Y hay un gesto de tap. Reconocer? Er, esta es una forma de hacerlo desde un guión gráfico. En realidad te voy a mostrar cómo hacer esto más adelante
también en el código . Entonces eso es realmente genial. Vas a aprender en ambos sentidos. Por lo que esto es muy común agregar gestos de tap a diferentes controles que no son botones. Entonces solo toma este click y arrastra, arrástrelo a tu imagen, ¿de acuerdo? Y, uh, James, déjame un muy bueno. Um, es un realmente lo siento. Aquí está molestándose. Intentemos eso otra vez. Haga clic y arrástrelo sobre su cámara. De acuerdo, Así que acabamos de añadir un gesto de tap a la cámara. Y si miras ahora, también sumó aquí gesto de tap, Reconocer? Er, y también lo agregó aquí mismo. Esto te permite gustarte, si quisieras hacer un Segway, podrías hacerlo desde ahí. Um, pero queremos usar como una acción i b. Y sí quiero decir una cosa que puedes Onley usar gesto de tap, reconocer er's en storyboards. De acuerdo, eso es todo. Nosotros justo aquí con hacer clic y arrastrarlo y soltarlo. Solo puedes usarlo aquí en un guión gráfico, igual que hicimos nosotros. Si no es vista de tabla, por lo que no podremos hacer eso en el botón me gusta, que lo hará más adelante. Tenemos que hacer eso en código porque no te permite hacer eso en cosas que se repiten sólo en cosas que no se repiten, como esta aquí mismo. Pero esta célula sí repite, solo para que lo sepas. No pruebes esto en una venta aquí en tienda, pero llegamos a hacerlo en código en su lugar. Así que adelante y abre tu asistente de editor. ¿ De acuerdo? Y vamos a asegurarnos de que tenemos lo correcto seleccionado. No queremos Prevue. Queremos alimentación automática, V c. Y, uh, necesitamos hacer una acción I B. Y también probablemente algunos puntos de venta aquí está bien, también. Entonces sigamos adelante y hagamos eso ahora. Entonces terminemos el gesto de tap. Así que desplácese por aquí y, uh, vea este gesto de tabulación. Inquietud en el control. Arrástrelo a tu código y en lugar de un outlet, cámbiate a la inacción y el tipo vas a ser tú. Golpeé gesto reconocido. Cambia eso. Y llamemos a esto, um Ah, selecciona imagen. Entonces eso está funcionando. Hay una cosa más que tenemos que hacer. Esto es muy importante. Escúchame. Haga clic en su cámara. Tu imagen aquí por defecto, las cosas que son botones no tienen habilitada la interacción del usuario, por lo que necesitamos encenderla. Por lo que tienes tu cámara seleccionada justo en el ojo. Atributos, Inspector, aquí en el lado derecho, hay un pequeño cuadro clicable aquí llamado interacción del usuario habilitada. Adelante y selecciona eso. De acuerdo, Esto ahora es capaz de recibir grifos, lo cual es muy cool. De acuerdo, así que eso fue bastante fácil, ¿verdad? Y así aquí está, aquí mismo. Seleccionar imagen. Y eso se llamará cuando alguien toque esa imagen, que es lo que queremos. Ahora, sigamos adelante y tomemos salida a partir de nuestro campo de texto. Entonces controla drag y pongámoslo justo aquí. Voy a llamar a esto, um ¿cómo se llama esto? Simplemente llamaremos a este campo de correos. Está bien. Mira, eso incluso fue lo suficientemente inteligente como para poner nuestra clase de campo de texto material en su Ah, ¿qué más? Supongo que sólo uno soy outlet. Sí necesitamos Bueno, en realidad, la cámara en realidad también debería ser un i b al it. Porque cuando seleccionamos la imagen, queremos poner la imagen que están mostrando que esa es la imagen que seleccionamos. Entonces hagámoslo también. Entonces lo hicimos en acción fuera de ella, pero fuera del gesto de tap, Pero en la propia cámara real, sigamos adelante y que sea un Al. Y vamos a llamar a esto, um Ah. ¿ Qué? Nos cazaron guleta. Seleccionar imagen, Seleccionar imagen de imagen. Ah ayuda a esta imagen selector de imagen. Y digo imagen para abreviar para vista de imagen. Eran para que realmente podamos cambiar el botón en él. Uh, eso es un poco confuso. Lo que sea. De acuerdo, entonces tenemos nuestros puntos de venta conectados. necesitamos en acción aquí para que el Post también para realmente hacer el post. Entonces sigamos adelante y pinchemos tu post aquí, Control. Arrástrelo hacia abajo y nos vamos a cambiar de L. A.
A Action ha llamado make post. Vale, así que eso es su Esa es su bien. ve bien. Adelante y cerremos. El ayudante de redactor. Voy a abrir el lado derecho, entrar en mi controlador de vista de feed, y lo que queremos hacer es manejar la imagen que se está seleccionando,
uh del botón que se está presionando. Así que selecciona imagen aquí mismo. Y aquí es donde diremos presente controlador de vista Selector de imágenes. Animado. Verdadera finalización es Neil. Por lo que cada vez que selecciones una imagen solo presentará el controlador de vista. Y eso es genial. Siempre que seleccionas una imagen, descartamos el controlador de vista. Y entonces lo que hacemos es decir, ¿cómo se llamaba en nuestra imagen selector de imagen? Fue un selector de imágenes. Imagen de punto de imagen es igual a imagen. A qué iba Bueno, este es nuestro outlet, nuestra vista de imagen. Tiene propiedad de imagen o agarrando la imagen que se seleccionó aquí. Simplemente firmando en esa imagen, eso es todo. Um bien, eso se ve bien, creo. Y Ah, sí, ¿Qué más? Cualquier cosa. Vamos a darle una tienda es buena y, uh, correrla. Simplemente hago clic en el botón de reproducción esta vez. Culpa. Aquí vamos. Aquí vamos. Aquí vamos y nos conectamos. OK, si hago click en este hey is tapped Gesto trabajado Click momentos Click this app image here Se lo
asignó tal como lo esperamos. De acuerdo, así que eso se ve genial. Entonces hemos creado algunos geniales tú ¿Por qué aquí? Mira las sombras. Como puedes decir, hemos implementado el controlador del selector de imágenes así como el método delegado. Por lo que establece la imagen Cuando haya terminado de ser recogido, podemos volver a hacer clic en ella. Por supuesto, es como cualquier otra imagen. Ya sabes, no lo
hice pero va a salir justo. El botón post estilo. El espectador diseñó nuestro campo de texto de estilo con un trabajo mínimo no muy largo en absoluto, y se ve muy bien en su abrigo. Se ve bien. Entonces sigamos adelante y llamemos a este video hecho en el próximo emocionante video, vamos a conseguir que nuestras imágenes publiquen. OK, nos acaban de probar en el pasado, pero queremos hacer lo siguiente es realmente conseguir que nuestras imágenes publiquen en ah server en algún lugar. Y no vamos a almacenar las imágenes en base de fuego porque te vas a quedar sin espacio . Imagen real rápida. En realidad, vamos a hablar de eso a continuación. Por lo que en el próximo episodio emocionante de construir tu propia aplicación de estilo de Facebook Mark Price aquí, Deb jabones dot com ver asumir.
109. App: muestra la parte 13 - Subir imágenes a un servidor: Oigan, ¿qué pasa, todos? Mark Pricier profundidad pendientes punto com. Y por cierto, si te estás preguntando dónde estaba Dios ese objetivo como 9 99 super cool. Y si notas que no es uno de esos crashy snap backs, sabes que es un flex fit. ¿ Recuerdas cómo atrás en el día los ajustes flex fueron toda la rabia? Y ahora no puedes llegar a ningún lado uno quiera ponerse como camisas sin mangas sin mangas y sombreros
snapback. ¿ Qué le está pasando a la sociedad de todos modos? Cosas realmente geniales, Batman. Por supuesto que no The Apple Building? No, En realidad, la aplicación viene muy bien. Tenemos nuestro campo de texto aquí son picker de imagen. Todo está funcionando muy bien en la superficie, pero en realidad no está guardando datos y en cualquier lugar. Y así piensa en esto. Tenemos que poder almacenar imágenes como una red social, ¿
verdad? ¿ Y cómo lo vamos a hacer? Bueno, tal vez estás pensando,
Bueno, Bueno, tal vez una consorte de base de fuego, y en realidad puedes almacenar fotos en la base de incendios. No obstante, con eso dicho, firebase no apoya oficialmente la subida de fotos. No obstante, en realidad lo tienen en su hoja de ruta para construirse. Um, pero básicamente, si sí guardas fotos de base de fuego, que puedes dio. Uh, primer lugar, no pueden ser más de 10 megabytes. En segundo lugar, sin embargo, no
quieres hacer eso porque solo obtienes tantos gigabytes de datos en tu
contabilidad de base de incendios . No quieres guardar los que tengan imágenes. Por lo que algunas buenas opciones para ti son Amazon s tres o algún proveedor gratuito en línea como
vamos a estar usando hoy. Vamos a estar usando Image Shack. Entonces si vas al código dot google dot com slash p slash image image shack A p I o
simplemente podrías buscar en Google Image Shack A p Voy a ver esta página aquí mismo. Y, uh, chicos y chicas
realmente geniales usan ojos AP y servicios gratuitos siempre que puedas. Si algunas cosas que debes saber es si quieres usar Image Shack, tienes que dejar saber a tus usuarios que estás usando el servicio gratuito image shack. Además, si vas a tener una solicitud de pago, no
puedes. Está en contra de las reglas de chozas de imagen usar su a p. distorsiono imágenes. Aparte de eso, podrías hacer hasta cargas ilimitadas y cosas así. Si sí quieres guardar tus fotos o Disculpe. Si sí quieres tener una solicitud de pago, vas a querer guardar tus fotos, probablemente en Amazon s tres. Y su sartorial es para eso. Pero hoy es Image Shack. Es gratis y vas a aprender algunos principios, como cómo hacer una solicitud http de formulario multiparte y cómo subir imágenes y cómo recuperar un euro. Por lo que vamos a guardar la imagen que eres. L una vez que lo recuperemos de Image Shack. Pero vamos a Teoh, vamos a almacenar esa base de incendios. Podemos subirlo más tarde. Entonces aquí está Aquí está la cosa. Lo que necesitas dio está aquí mismo para usar la A P. Por favor solicito una llave. Así que adelante y abre esa solicitud Una clave y necesitas registrarte si no tienes
cuenta o ingresa. De acuerdo, y entonces Así que ya estoy conectado, ¿verdad? Entonces solo voy a iniciar sesión con Facebook y está destruyendo mi imagen. Es que de ser así, una vez que hayas iniciado sesión, te llevará a una pantalla como esta. Y por cierto, esto es realmente genial. Almacena todas tus imágenes para ti. Como pudiste ver, aquí
tengo un montón de imágenes de prueba. Ah, Y así una vez que hayas iniciado sesión haciendo lo que acabamos de hacer aquí, entonces puedes seguir adelante y solicitar una clave como esa. Y aquí está la forma a la que te lleva. Acabas de caerte tus datos. Se requerirá de un sitio web. Si no tienes un sitio web. Eso está bien. Pon algo ahí dentro. No me dejó enviar el formulario sin poner un sitio web en. Entonces vas a tener que poner algo ahí dentro. Um pero cuando sientas esta forma aquí, te dará una llave instantánea. Te lo llevaré a otra página y te daré tu A P. Te clave para guardar eso y almacenar esa causa vas a necesitar eso solo para subir tus fotos. OK, así que rellena este formulario, y luego consigue tu a p I clave en la página a la que te lleva para que podamos usarlo en la aplicación. Entonces ahora voy a volver a esta otra página aquí, y vamos a seguir adelante y hacer clic en su choza de imagen. Documentación Ap I Aquí mismo. Muchos, muchos ojos AP tienen documentación, y es importante que sí. Para que los usuarios puedan lo que se llama consumió el A P I. Y lo que vamos a estar haciendo es subir una imagen básica. ¿ De acuerdo? Te da que estás enfermo. Necesitas publicarlos, también. Cuando lo publicas, tienes que establecer algunos parámetros en tu post así. Eres una llave P I, que te acabo de decir que guardes. Um, el propio archivo que necesita ser subido. El formato necesita estar Jason encendido. Estos son opcionales. Aquí mismo. Um, y luego cuando lo hagas subido, te enviará de vuelta Jason, con el
que hemos trabajado antes de mandar de vuelta a Jason así donde realmente puedas conseguir tu , um tu imagen, usted o de lo contrario puede usarlo en su aplicación y guardarlo. Entonces, por ejemplo, ¿dónde estaría? Enlaces justo aquí. El que vamos a estar usando su enlace de imagen más adelante. Y, uh, así que nos da el enlace de imagen directa real. Y entonces eso es lo que almacenamos en base de incendios. Y luego saca las fotos de la base de fuego. Por lo que todo lo que una base de fuego en realidad funcionará igual. Uh, excepto que solo lo estamos dando todo desde nuestro propio almacenamiento de fotos en lugar de solo publicar y al azar desde Internet. Entonces sé que esto es un poco largo bobinado aquí antes de que empecemos a revestir, pero es importante que entiendas cómo trabajar con ojos AP. Es importante entender que tienes que ir a su documentación y realmente, podría
haberte dado los pasos X y z Pero quiero que leas esta cosa, estas cosas por tu cuenta. Para que sepas dónde conseguir ayuda. Te dice cómo usarlo, ya
sabes, te
dice el campo. Necesitas tener estos significan que se requieren. Te dice el punto final en, vamos. Vamos a repasar esto juntos y esto es lo que recuperas, cual es realmente importante. Tenemos que tener el enlace de imagen. De lo contrario, Firebase no sabrá qué foto mostrar sobre qué post. Entonces ojalá ya se hayan ido tu llave a p i, sigamos adelante y volvamos al código. Y así la idea es qué cuando haces clic en el Post, pero y deberíamos empezar a subir la imagen ahora, en nuestro caso, no
vamos a hacer todo tipo de campanas y silbatos fríos donde tengas cargando spinners y que
sea publicado al instante desaparece y luego hace la imagen. Después no vamos a hacer nada de eso. Solo vamos a,
uh, uh, dejar que subiera lo que se hace subiendo. Entonces llamaremos exitoso al puesto. Por lo que tenemos una función aquí llamada Make Post. Y entonces lo que queremos dio es que queremos asegurarnos de que un post tenga al menos, uh, la descripción. No dejaremos que un usuario haga una publicación a menos que haya algunas palabras ahí dentro. De acuerdo, entonces tenemos que dar cuenta de eso. Entonces sigamos adelante y empecemos aquí. Voy a desplazarme aquí abajo, hacer un poco más grande para nosotros. Aquí, haz que el texto sea más grande para que puedas leerlo en esos iPhones. No sé cómo podrían estar haciendo esto desde un iPhone. Lo tendría arriba en otra pantalla justo a mi lado para poder ver qué está pasando. Pero si te funciona, eso es genial. Um OK, así que haz post y lo que queremos hacer es decir, si let t x t es igual a un post campo ese texto donde el texto no es igual a esto. Entonces lo que estamos diciendo es, oye, si el texto no está arrodillado y si no está vacío la tienda en esta variable aquí, solo un estándar Si dejas que estás acostumbrado a ver y básicamente lo contrario, um, de lo contrario, no hagas nada. Uh, no dejes que el usuario proceda. Entonces ahora hablemos de la imagen. Tenemos que comprobar por eso. ¿ Verdad? Entonces si deja imagen, soy g igual a post, llamamos a esta imagen seleccionada en la que eso es un mal nombre. Es posible que quieras cambiar eso. Uh, está bien. Entonces si dejar que la imagen pareciera imagen, lo que estamos diciendo aquí ahora es odio. ¿ Hay alguna imagen ahí dentro? Está bien. Y, uh, bueno, en realidad probablemente va a haber una imagen ahí dentro. No vamos a manejar esto ahora mismo, pero ya sabes, lo que tal vez quieras hacer es asegurarte de que la imagen ahí dentro no sea la cámara. Um, lo contrario, solo puede subir el ícono de la cámara, pero no nos vamos a preocupar por ello ahora mismo. Eso son solo campanitas y silbatos aquí. Puedes cuidarte por tu cuenta, lo cual deberías estar haciendo y experimentando. Entonces ahí está la imagen uh,
Entonces, ¿qué? Nosotros queremos dio si recuerdas, verdad, queremos publicarlo a la chica, ¿no? Necesitamos necesitamos a Tu élder posó para y el que nos dieron está justo aquí. Sigamos adelante y solo copiemos eso. Ven a ver a copiarlo. Y, uh, vamos a decir que aquí es Deja que tu l string es igual. Ahí está la URL, ¿de acuerdo? Y entonces vamos a crear un n S u R l Que años deberías estar acostumbrado a hacer también a Así que eres l igual N S u r l Y vamos a desplazarnos aquí hasta que lleguemos a la que es una cuerda y
vamos a poner en tu cuerda l. Y eso se ve bien. Voy a poner un signo de exclamación al final aquí porque de lo contrario será opcional . Y sé que va a funcionar para un hecho. Entonces, um, vamos a tener algún problema aquí, Así que OK, ahora, cuando subas fotos desde iPhone ahí realmente grandes, como 3.5 Meg, no
queremos subir 3.5 make archivos. Eso es sólo mucho. Entonces lo que quiero hacer es realmente querer convertir eso La imagen que subimos a un J. Peg y yo quiero comprimir el infierno fuera de ella para que sea realmente pequeña. Y puede que no quieras hacer esto. Se puede jugar con él. Pero yo quería ser más pequeño, así que no lleva mucho tiempo. Entonces sigamos adelante y hagamos eso. Ahora vamos a convertirlo a datos de imagen ah J Peg. Y además, los datos tienen que ser. En realidad no se puede subir una foto por sí mismo a través de una solicitud http. Recuerde, Bits y bytes pasan por encima del protocolo http. Por lo que tienes que cambiarlo a datos de N s. Simplemente escupe un montón de números, y eso es lo que se podría transferir. Por lo que los datos de imagen te igualan. Yo imagino representación J peg. Vamos a pasar en la calidad de imagen y compresión. Voy a decir 0.2 ahora, cómo funciona la calidad de compresión es cero. Significa completamente comprimido, y uno significa no comprimido en absoluto. Entonces estamos bastante cerca de 0.2, ¿de acuerdo? Y, uh, pero lo queremos realmente comprimido. Y también esto devolverá un opcional y por lo que podría fallar. Alguien puso ahí un signo de exclamación Así lo desenvuelve porque sé que va a tener éxito. Um, puedes agregar más manejo de aire por tu cuenta si te encuentras con problemas. Está bien. Ahora, recuerda, tenemos Ah, tenemos una llave, justo que obtuvimos de Image Shack. Entonces sigamos adelante y pongamos la llave. Y, uh, hay algo realmente importante que necesitas entender es vamos a hacer un tipo especial de petición, ¿de acuerdo? Usando fuego de Álamo. Se trata de una solicitud de formulario de parte múltiple. Y antes de hablar de la llave, sólo
quiero mostrarles a qué me refiero. Entonces, um, en una petición http típica, puede estar pasando por alto un cuerpo que tiene cadenas y cosas así y eso. Pero cuando se tiene, cuando se necesita subir un archivo como el archivo real en sí, ¿dónde está? Aquí mismo. Consulta este archivo subidas. Tenemos un archivo que necesito subir. Tenemos una llave especial. Tenemos un formato. Tenemos algunos tipos diferentes de campos que son diferentes formatos. No todos son del mismo formato, y es porque ese archivo de imagen está bien, no
podemos simplemente decir que es todo Jason o es todo esto son todo un tipo de contenido de otras imágenes aquí, así que crea un poco de un problema para nosotros. Entonces, en lugar de solo hacer una solicitud regular de post de punto de fuego de Alamo y publicación de un cuerpo, tenemos que hacer una solicitud de datos de formulario multiparte, y requiere que publiquemos datos Alamo Fire requiere s datos. Por lo que tenemos que convertir todos nuestros campos a datos. Por lo que ya lo hemos hecho con la imagen. Lo hemos convertido en datos. Tenemos que hacer lo mismo con la llave otra vez. Volviendo atrás. El pedido http aquí requiere la clave la clave A P I para su aplicación. OK, entonces tenemos que poner eso ahora. Entonces digamos que dejen que los datos clave sean iguales. Así que agarra tu llave. Voy a agarrar el mío aquí mismo, acuerdo? No compartas esto con nadie. Seguro que la mía contigo porque esto es sólo una aplicación de prueba, y, uh y quiero que veas lo que estamos haciendo. Entonces tenemos una llave ahora, ahora mismo. Eso es una cuerda, ¿verdad? Por lo que necesitamos llamar a una función en nuestra cadena para convertirla en datos. Entonces teclea y punte los datos usando la codificación, vamos a decir y s utf ocho encorvado recubrimiento. Eso es solo un formato de codificación estándar para cadenas. De acuerdo, entonces todo lo que estamos haciendo es convertir la cadena en datos porque nuestra solicitud lo va a requerir. Puede que no lo entiendas, pero está bien. Esta cosa lleva tiempo. Esto es realmente complejo, y lleva mucho tiempo en la práctica. Entonces solo toma mi palabra para ello en este formulario multiparte, solicita datos vamos a dio solicitud lo vamos a hacer requiere que las cosas estén en
formatos de datos . Entonces, um, esa es la clave que necesitábamos para lo mismo para Recordar, requiere otro campo aquí, Um, Jason. Entonces ese es el nombre real que está requiriendo. Necesitas decirle a su servidor que estás publicando, Jason. Por lo que realmente necesitamos hacer realmente el nombre clave por sí mismo. Sochi. Jason es igual a Jason, igual que vimos en la p. I Vale, solo estoy haciendo lo que me están diciendo que haga. N s utf Así que sólo estamos convirtiendo la palabra Jason en datos
también, también, porque eso es lo que nos está requiriendo. Entonces tenemos la imagen. Tenemos las llaves y las cosas que necesitamos, y está bien si no lo entiendes del todo ahora mismo. Y, uh, Alá se mueva. Y no puedo garantizar que vas a entender hasta al final de este video, a
verlo de nuevo. Vas a tener que practicar mucho. Simplemente lleva tiempo. De acuerdo, um, Fuego de
Álamo no apareciendo, así que creo que podría necesitar importarlo. Yo sí. Por lo que importar fuego de Álamo. Ya deberíamos tener esto en la aplicación en un desplazamiento hacia abajo. OK, entonces, Allah, Álamo, Álamo fire dot upload. Y lo que queremos hacer es ah, datos de forma
multiparte, que está justo aquí. De acuerdo, entonces lo que queremos dio es una solicitud de post de punto post, ¿de acuerdo? Y luego quiere el euro, que tenemos. Está,
uh, uh, justo ahí, ¿de acuerdo? Y luego quiere un montón de cosas, y así que sigamos adelante y solo, uh sigamos adelante y ponerlo en marcha aquí. Sólo voy a presionar enter en estos aquí para deshacernos de estos bloques de culminación para nosotros aquí. Y puedo cambiar esto alrededor, uh, un poco aquí para no usar la configuración predeterminada que tienen para nosotros aquí. Um Vale, así que déjame solo mirar este año. Por lo que los datos de forma multiparte. Esto se ve bien. Y en lugar de tener los paréntesis ahí dentro, sólo
voy a quitarme eso Podríamos hacer de cualquier manera. De esta manera es simplemente más fácil para nosotros. Entonces esa es la variable que nos va a dar. ¿ De acuerdo? Y eso se ve bien. Y, um, pero lo que sí quiero dio es en un paréntesis de cierre aquí. ¿ De acuerdo? Y, um, y quítate esto, eh, vamos a ver. Aquí. ¿ Cómo queremos hacer esto? Uh, así que tenemos eso ahí, Ok. Y codificar lo que queremos es en realidad codificar resultados. De hecho voy a quitarnos esto de aquí. Adelante y digamos en abrigo. Y por cierto, solo
tienes que jugar. Si estás teniendo problemas con los cierres, tienes que jugar con él hasta que lo hagas bien. Al igual que quitarse paréntesis, agregar llaves. Ve a ver el código fuente de quien lo escribió. Para que sepas lo que necesitas poner. Sus cierres pueden ser complicados. Y por cierto, yo, uh en realidad voy a quitar esta coma y poner otra llave rizada de apertura ahí. De acuerdo, entonces básicamente, esto va a devolver algo que podemos entonces volver a ser otro cierre. Perdón. Si es confuso, sólo toma tiempo practicar. Uh, no te estreses demasiado al respecto si aún no entiendes los cierres. Perfectamente. Um, Ok, entonces básicamente, lo que va a pasar es aquí la subida, ¿
verdad? Y luego, ah, dentro de este cierre, necesitamos realmente agregar los campos que la Solicitud Post va a requerir. Y entonces va a hacer esa petición, acuerdo? Y luego los resultados van a venir justo aquí. Entonces sigamos adelante y está bien, el código que necesitamos. Entonces vamos a decir que vamos a llamar a esta variable aquí mismo, y vamos a decir, Vamos a copiarla. En realidad lo hacen más fácil, porque es largo, datos extraños
multiparte upend cuerpo, una pluma, parte
del cuerpo, y, ah, nuevo, de
nuevo,
algunas veces, este auto completo no te da lo que necesitas. Entonces hay que ir a ver el código fuente. Ya sabes, tienes que hacer algo así como tienes que mandar click, subir e ir a ver lo que te está requiriendo. De acuerdo, entonces es como, OK, esto requiere, ya
sabes, cierre. Eso se ve así. En fin, hay
que ir a ver el código. A veces podría ser un dolor, pero en realidad, mirar el código te ayudará a aprender a enseñarte a ti mismo, lo cual es muy, muy importante. Forma multiparte, data upend body, una carpa, pluma, parte
del cuerpo. Y el 1er 1 es el dato que vas a dejar pasar. Entonces eso va a ser datos de imagen. Ok, El 2do 1 es el nombre, Ok. Y, uh, se va a archivar subir. A lo mejor te estás preguntando ¿de dónde saqué eso? Bueno, entonces la primera clave que estamos haciendo es esta de aquí. Está bien. Y nota cómo sube la palabra que están buscando su archivo y luego es el propio
archivo de imagen . Ese es el valor. Esta es la clave. Este es el valor. Entonces el nombre clave es subir archivos es lo que quieren que pongamos ahí. Entonces ahí está el nombre archivo subir jueces preguntándome, y luego tiene un nombre de archivo. Este es el nombre del archivo real que vas a publicar en internet. Y solo voy a llamar a imagen ahora mismo. The Image shack cambiará el nombre de las cosas para nosotros por sí mismo, por lo que sólo puso un nombre predeterminado que sus imágenes encuentran y tipo mime. Si estás pensando en el tipo con guantes blancos y el feo maquillaje que,
como, como, hace cosas raras, eso no es lo que es esto. Este es el tipo de datos que estamos transfiriendo, y el nuestro es la barra de imagen j peg. De acuerdo, entonces lo que hemos hecho es ah, estos datos de formulario multiparte decían, La primera clave que queremos agregar es la imagen igual que nos está diciendo que hagamos por aquí el nombre de su carga de archivos, y nosotros pasar en la imagen. Entonces estoy mirando el a p I Aquí está el Aquí está el nombre. Está bien, ahí está la llave. Ahí está el valor y hay algunas otras cosas, como el nombre del archivo y el tipo mime. OK, entonces ese es el 1er 1 El siguiente que tenemos que hacer es la clave, es
decir, este tipo de aquí, necesitamos subir la llave. Entonces Image Shack sabe a qué cuenta pertenece. Por lo que multiparte de los datos de forma upend cuerpo de nuevo. Una parte del cuerpo de la pluma. No nos está dando auto completo, lo cual es un poco molesto. Entonces tienes que mirar el código o simplemente seguir conmigo. Entonces los datos clave esta vez y el nombre es clave otra vez. No quiero sonar como un disco roto, pero es importante. Entiende esto. Entonces la clave es el nombre. Entonces aunque, pesar de que lo llamaron clave Así que el nombre de esto en realidad es clave. Y el valor es la clave A P I para su aplicación. OK, entonces todo lo que estamos haciendo bien es pasar los datos clave y el efecto. Voy a poner exclamaciones al final de la clave Jason. Fin de datos clave. Teoh, desenvuelve esos para que no tengamos esos aires. Va a funcionar muy bien. Entonces ahí están los datos clave. Ahí está el nombre para clave Stewart de nuevo forma multiparte, datos upend cuerpo parte. Y los datos de éste son clave, Jason, y este nombre es formato. De acuerdo, entonces otra vez, acabamos de tomar esto. Tomamos esta llave, que es Jason, y la pasamos en la clave aquí para el formato. Jason es el valor, la clave es el formato. Entonces si miramos por aquí, están buscando una clave llamada formato, y entonces el valor necesita ser Jason. Entonces solo estoy haciendo exactamente lo que dice la A p así que sólo tenemos un colgante. En primer lugar, la imagen norte Cómo este tipo es diferente a estos dos tipos. Si todos nuestros datos se veían así donde solo fueran cadenas clave, no
necesitábamos hacer esto. Intenso un cuerpo de pluma parte multiparte, formado A. Simplemente
podríamos hacer una solicitud de post. Pero desde este tipo de aquí, esta imagen es diferente. Tenemos que hacer los datos del formulario multiparte para apoyar la imagen Subir. De acuerdo, entonces ahora hemos vuelto a crear nuestra solicitud. Si no entiendes. Eso está bien. Sólo sigue siguiéndote ahora. Resultado de codificación. Esto es lo que sucede cuando se hace la carga. ¿ De acuerdo? Va a pasar de nuevo un resultado de recubrimiento con un valor de éxito o valor de aire. Um, y necesitamos poder manejarlo. Entonces sigamos adelante y hagamos eso. Ahora vamos a usar una declaración de cambio, y, uh, si no los has visto antes, a veces las usas. A veces no los puedes usar en lugar de declaraciones if else. No es gran cosa. Apenas pasa por una serie de casos diferentes. Como si es esto que hacer esto, si es eso dentro de esto. Entonces vamos a decir de nuevo codificación de resultados de cambio y recubrimiento. Auto completa no trabajar en estos cierres. Entonces tienes que deletrear todo con mucho cuidado, así que cambia y recubre resultado y vamos a tener un par de opciones aquí dentro. Entonces en el primer caso, si el resultado de codificación es igual al éxito, bien, y en realidad va a llamar a una función y lo vamos a hacer aquí, um, aquí vamos. Entonces si el caso es ese éxito y el éxito es, um es un cierre aquí y lo va a pasar si
es su éxito, va a pasar en la subida que hicimos, va a pasar como lo que obtuvimos del servidor. Entonces si fue un éxito y otra
vez, hay que entender esto completamente para poder usarlo, Esto es algo bastante complejo. Um, así que es bueno que estés siendo expuesto a ello, uh, porque te vas a encontrar cuando empieces a recubrir en proyectos. Entonces si fue solo si fue un éxito, queremos obtener la respuesta, Jason que obtuvimos del servidor. Entonces si fue una solicitud exitosa, queremos obtener aquí todos estos datos para que podamos saber almacenarlos. De acuerdo, eso es todo. Entonces si fue un éxito, vamos a decir subir. Por lo que esta carga aquí mismo, OK respuesta de punto. Jason y, uh, era un manejador de culminación. Y sigamos adelante y pongamos la petición. El respuesta y el resultado. De acuerdo, ahí
adentro vamos resultado en eso Se ve bien. Um, ¿me estoy perdiendo algo? Creo que puede que me falten los paréntesis de cierre ahí. Está bien, eso se ve bien. Ah, nos está gritando aquí porque no tenemos una,
um no tenemos, como, como, una declaración por defecto o una declaración diferente para ir de la No te preocupes por ello ahora mismo . Seguimos siendo buenos. Um OK, entonces, um Ok, entonces conseguimos nuestra respuesta de subida, Jason. Entonces si fue exitoso, sigamos adelante y agarramos el enlace fuera de ella. Pero tal vez deberíamos realmente manejar el aire primero. Entonces esto es un en el caso del éxito. De acuerdo, ¿Qué pasa con el caso del fracaso? Entonces si el caso es fallo de puntos y nos va a dar un error, vale, Si el caso es un fracaso, solo
imprimamos el aire por ahora, ¿de acuerdo? Muy bien, para que todos se
vayan, tenemos múltiples casos aquí. Um, así que si fue un fallo de puntos, era un aire. Ahora este punto éxito y fallo de puntos Esto es parte de los datos externos multiparte. De acuerdo, en fuego de Álamo. Por lo que es parte de su paquete. Y así tienes que Solo mira lo que estoy haciendo o mira su código fuente para saber qué tipo de está pasando. La buena noticia es que, esta es probablemente la petición más compleja que probablemente podrías hacer con Alamo Fire o en la mayoría otros tipos de solicitudes, no quizá no la más, sino una de las cosas más complejas. Entonces, uh, es realmente genial que llegues a hacer esto ahora mismo porque cualquier cosa que vas a hacer es probablemente un poquito más fácil que esto. Entonces y este es probablemente el video más complejo del curso. Entonces si tu estrés no te preocupa, está
bien que te estresen. Tu no espero que entiendas esto ahora mismo. Um, OK, así que ahora lo que queremos hacer es agarrar el enlace del Jason si fue exitoso. Entonces lo que queremos dio es agarrar al Jason por lo que decir si dejar info. Ese es este nombre arbitrario. Yo le estoy dando resultado ese valor. Entonces, um, ¿dónde están nuestros resultados? Um, así que estamos justo aquí. Ahí hay un resultado. Está bien. Está pasando en el punto de resultado Valor como diccionario de tipo string y cualquier objeto. De acuerdo, de
nuevo, cuando eres recintos, al
menos con código X en este momento y rápido no se completa automáticamente muchas veces. Entonces lo que estamos diciendo es, hey, entra en el valor del resultado que obtuvimos del servidor y vamos a convertirlo
en un diccionario que tenga claves de tipo, cadena y valores de tipo, Cualquier objeto. Y si te preguntas de dónde estoy sacando eso,
bueno, bueno, el resultado que el valor es esto Ok, este es el Jason que están enviando de vuelta. Hasta me lo dicen aquí mismo. Devolver la estructura del objeto. Esto es lo que este es el tipo de datos que van a enviar de vuelta. Entonces si lo miro, Vale, es un diccionario a través de esta apertura, cerrando llaves. Se trata de un diccionario con llave. Todas las llaves aquí son cuerdas, ¿verdad? Estas son todas cadenas, pero los valores o cualquier objeto en este caso, es una cadena número uno este caso que el número Este es un número. Esta es una cuerda. Esto es un knoll, así que no sabemos cuáles son los valores. A lo mejor es cualquier objeto y su diferente. Entonces sabemos que es un diccionario principal,
uh, uh, de tipo string y cualquier cadena de objeto siendo la clave. De acuerdo, entonces si eso funciona, si la información funciona, entonces ¿qué queremos hacer? Bueno, recuerda, estamos tratando de conseguir lo que estamos tratando de hacer es conseguir enlaces, y queremos el enlace de imagen aquí mismo. Entonces si este diccionario principal funciona, entonces necesitamos obtener el diccionario secundario aquí mismo. Enlaces. Y este diccionario es de tipo, string y string. Simplemente voy a usar cualquier objeto solo para estar a salvo. Pero estos airean ambas cuerdas aquí. De acuerdo, como puedes notar desde ahí, Jason, eso es realmente genial. Entonces sigamos adelante y hagamos eso Ahora. Diremos que se llama enlaces, ¿recuerdas? Entonces si dejar enlaces iguala información, recuerda diccionario de influenza para que podamos usar la sintaxis del diccionario para agarrar que los enlaces clave hacia fuera. Como y acabo de decir esto, es un diccionario de tipo, string y string, pero solo para estar seguro dirá cualquier objeto Así que vamos a agarrar los enlaces de nuevo. Es un diccionario de tipo string y cualquier objeto y el que estamos buscando. Su enlace de imagen. Entonces linces aquí mismo. Eso se ve genial. Y entonces, um, lo que queremos hacer es decir si dejar que la imagen enlace es igual a enlaces, recordar adicción o dentro de un diccionario. Es como la Matrix, ¿verdad? O, como el inicio, cosas
intensas, diccionarios y diccionarios dentro de los diccionarios. Whoa. Y, uh, entonces en este caso ahora, Entonces este es el diccionario de enlaces, ¿
verdad? Este link es todo este diccionario, y lo que queremos hacer es obtener la,
um,
clave y valor real um, . Por lo que la clave es el enlace de imagen. Queremos obtener el valor de eso, que es éste de aquí. Entonces si miras su código estaban diciendo agarrar por lo que el enlace de imagen es igual a enlaces. Entonces estamos agarrando el enlace de la imagen clave y convirtiéndolo en una cadena. Eso estaba impulsando el valor de eso. Este es el verdadero tu l que vamos a guardar en base de fuego. Entonces, um, no
es realmente que muchas líneas de código aquí. De acuerdo, Um, así que eso es realmente genial. Eso no es nada. Lástima. Um, entonces lo que queremos hacer entonces es realmente asegurarnos de que esto esté funcionando. Entonces lo que voy a dio es que vamos a imprimir esto, y si está funcionando, vamos a llamar a este video hecho, y luego al siguiente, realmente
vamos a conectar a la base de incendios. Entonces lo que queremos hacer es imprimir,
uh, uh, un enlace,
y, uh, uh, vamos a seguir adelante y pasar en el propio enlace de imagen. De acuerdo, que es justo aquí, enlace de
imagen. Y asegurémonos de que todo funcione. Por lo que iba a hacer esto antes de ejecutar mi código. Eso hacemos click, hacemos post. Nos aseguramos de que alguien ingresara texto en el campo de texto. OK, um, nos aseguramos de que haya una imagen ahí dentro. Ahora de nuevo, ya
hay una imagen ahí dentro,
por lo que este codigos tipo de inútil en este momento, necesitas hacer un poco más de manejo de aire si no quieres contar las imágenes de cámara que hay ahí dentro. Pero básicamente hemos creado una cadena Eurail convertida a una S u r l Tenemos datos de imagen para la imagen real con tomar la imagen en la imagen. Usted lo convirtió en datos. Hemos convertido la clave de Image Shack en datos. Hemos convertido el valor. Jace, en esa palabra de ahí. Eso lo hemos convertido en datos porque eso es lo que requiere la A p I. Hemos llamado Alamo fire dot upload y datos de formulario multiparte. Pasamos en el tipo de solicitud la u R l que vamos a poner un cierre y para los datos de formulario
multiparte, Luego agregamos las diferentes claves ahí. Entonces la imagen en sí y luego la clave, la clave llamada clave con su valor y luego el formato y luego sobre el éxito en la
sentencia switch . Si codificar un resultado es ese éxito, sigamos adelante y llamemos. Va a pasar en el resultado de subida, y vamos a llamar a la respuesta. Jason, vamos a convertir algo de Jason Moore J Song convirtiendo y más Jason todo el camino hacia abajo hasta que tengamos el enlace que queremos aquí mismo. Ya has visto esto antes en el otro ábside de construido. Vamos a manejar el fracaso y todo esto sucede cuando se presiona el botón make post. Entonces vamos a darle una oportunidad. Escribimos mucho código sin probarlo aquí. No fue tanto código. Era solo yo hablando mucho, Así que no está tan mal no haber probado esto todavía. Entonces aquí vamos. Cargando arriba. Está bien. Voy a estropear todos estos aires aquí en advertencias no en aires. Sólo advierte. Entonces habla de tu app. Espero que esto funcione. De acuerdo, vamos a seleccionar una imagen, y diremos, Ah, vamos a hacer el, um, vamos a hacer esta aquí, ¿de acuerdo? Este bonito y pequeño paisaje aquí se ve bien. ¿ Y qué dices si lo publicamos y vemos si funciona? Post ¿Funcionó? ¿ Enlace? Ahí está el enlace. Oh, Dios
mío. Creo que funcionó justo fuera de la caja, en realidad. Entonces, copiemos este enlace aquí y solo asegurémonos de que realmente está funcionando en Internet. Está bien, ¿estás listo para ello? Y sólo para estar seguros, vamos a abrirlo en una ventana de incógnito. Cambio de mando en. Entonces no estoy conectado peor para asegurarme de que esté disponible públicamente, que es lo que queremos. Comando V. ¿Funcionó? Eso es bastante guay. En realidad sí funcionó. ¿ Y sabes qué? Esto es con que se comprima a. Es Es Es bastante bueno buscar ser una imagen comprimida. Entonces, uh, sí, definitivamente sí funcionó. Entonces ahí vamos. Acabamos de subir nuestros propios archivos. Teoh Image Shack. Y de nuevo, esto es esto es un buen diseño aquí. De acuerdo, Entonces cómo funciona típicamente en aplicaciones profesionales es que nunca almacenas imágenes en la base de datos. De acuerdo, como base de fuego. Queremos iniciar las imágenes por sí mismas. Cuando típicamente Dio es post a una choza de imagen o en Amazon s tres. Y una vez que los archivos subidos en la llamada devuelven cuando envíe sus respuestas dice:
Oye, Oye, yo lo logré y tú lo mandas te da de vuelta a los tuyos. Agarraste a esa chica y luego salvaste la u. R L en la base de datos. Y así entonces tu app en el lado del cliente, Ya sea una app para iPhone o un navegador Web, puede agarrar ese euro y real solo cargar la imagen ahí mismo, tiempo
real. Y así es como realmente construyes aplicaciones profesionales y trabajando con imágenes o
archivos o cualquier cosa que requiera tal vez unos segundos subir un par de cosas más. Um, ya
sabes, y una de las cosas va a manejar en el siguiente video, creo, pero, ya
sabes, despejar esto,
110. App: muestra la parte 14 - Guardar publicaciones a Firebase: Oigan, ¿qué pasa, todos? Mark Price here, Deb slips dot com Recuerda que una vez cuando subimos imágenes a Image Shack? ¿ Lo tienes funcionando en nuestro laboratorio? Sí. Fue, como, hace
cinco minutos para mí. Y super cool. Estamos haciendo tan grandes avances. Uh, wow, esto es realmente genial. Y de nuevo, esto es lo que vas a estar haciendo. El 90% de tu desarrollador de aplicaciones profesionales de timo. Van a estar hablando con servidores todo el tiempo, descargando datos. Así es como lo haces. En realidad es menos común construir aps en, como, dibujo
complejo con,
como, como, tu dedo y esas cosas. O es menos común usar GPS como más, más. Estás viendo que siestas, pero como, lo usa bastante mínimamente. En realidad, uh, esto normalmente abre mapas, cosas así, ¿sabes? Entonces cuando ves a mucha gente le gusta hablar de aprender a usar GPS o el
acelerómetro o como todos estos, como funky iPhone
como usar esas cosas como el 1% de tu carrera y las cosas que estamos haciendo en este momento es lo que tú en realidad usan el 90% del tiempo. Entonces no se plieguen. Esto es en lo que realmente vas a estar haciendo. Por supuesto, todo se trata de los datos. Usuarios quieren datos en sus AP ahora mismo aquí. Y de eso se trata todo. Creando animaciones y experiencias geniales todas las cosas que hemos estado haciendo
cosas tan divertidas . Y lo que vamos a hacer ahora es esto. Hazlo hablando con base de fuego. Entonces, después de que ocurra la subida, vamos Teoh, creamos un nuevo post y guárdalo a base de fuego. Y va a subir instantáneamente actualizar nuestra vista de tabla al instante. Y no es tan difícil de hacer. En realidad es bastante simple. Entonces lo que vamos a hacer es la función creativa aquí abajo. Asegurémonos de que estamos fuera de nuestra función aquí. Siempre sabes que tu, uh, dónde poner la siguiente función es porque tu clase siempre va a ser la última
llave rizada . Entonces este tipo de aquí, Vale, esa es tu clase. Y eso siempre va a la última llave rizada. Para que pudieras saberlo. Puedes poner tu función aquí mismo, y no estará dentro de otra función y te dará en el aire. Por lo que función post a base de fuego. Está bien. Y lo que vamos a hacer es pasar una imagen, Auriol algunos posts pueden tener una imagen o de lo contrario. Um, cartero, No porque compongas porque la descripción esto requirió derecho, pero la U R l real para una imagen no es No tienes que publicar una imagen. Entonces, um, tan opuesta a la base de fuego. Y lo vamos a hacer aquí mismo. Entonces después de que tengas que subir imagen con éxito, vamos a llamarnos auto, no publicar una base de fuego. No nos dejará hacerlo sin la palabra de auto clave e imagen o l solo va a ser enlace de imagen . Está bien, este tipo de aquí. Entonces en este caso, está pasando un real tu Ellen, ¿recuerdas? Por eso pongo un signo de interrogación aquí mismo. Por eso lo hice opcional porque puede o no tener una imagen o de lo contrario
le estamos diciendo al usuario, que es el programador, que Hey, si llamas a esta función,
solo debes saber que necesitas revisar por el valor porque puede o no tener un valor. Entonces, ¿qué más queremos Publicar una base de fuego, sin embargo? Bueno, queremos publicar una base de fuego si, uh, bueno, si no hay imagen en el campo de la imagen y otra vez, um, tal vez deberíamos manejar esto ahora mismo porque no me gusta cómo es tipo de trabajo. ¿ Recuerdas cómo lo dije? Ahí hay una imagen de cámara para que pudiera subir eso. No creo que este sea el mejor cheque para hacer aquí mismo. A lo mejor lo que deberíamos hacer es, um, tener una variable aquí arriba. Esta es sólo tal vez una solución rápida que vamos a llamar a esto, um ,
imagen seleccionada, y empezará con que sea falsa. Está bien. Y ah, entonces bajamos. Teoh son picker de imagen. Controlador sí terminó de recoger imagen. Y cuando las imágenes seleccionadas Ok, vamos a, um vamos a decir, imagen seleccionada. No se ha seleccionado ninguna imagen. Su ego es igual a tropa. Por lo que básicamente usará esto para apagar. En realidad será imagen seleccionada después de que las imágenes aparezcan y alguien seleccionó una imagen. Y entonces Así en lugar de decir, si dejar que la imagen aquí es igual a imagen. Bueno, bueno, bueno, quédate ahí, pero diremos y estamos imagen seleccionada es igual a True. Entonces ahora estamos diciendo si hay una imagen ahí dentro y si en realidad se seleccionó una imagen um uh, digamos donde la imagen seleccionada es verdadera. A ver si eso funciona Eso funciona. De acuerdo, Así que tuve que hacer desgaste porque estamos haciendo y si menos así si, uh si esto tira hacia abajo una imagen, que lo hará, porque ahí hay una cámara, no importa qué y si la imagen seleccionada es verdadera. De acuerdo, eso tiene sentido. Está bien, Así que es mosca me está molestando, Cosas en las que no tienes que pensar nunca. Si no eres como grabar en el estudio, es como si fuera como, ¿Qué pasa con la maldita mosca que entró por el respiradero me está molestando todo este tiempo. A lo mejor deberíamos hacer, como, un episodio malo rompiendo donde, como, todo
el episodio que hacemos es solo yo tratando de matar a esta mosca. Ustedes fueron como,
No, No, ese fue el peor episodio de la historia. De acuerdo, no
vamos a hacer eso, pero sería bastante gracioso, Baby Bone, voy a hacer de eso una conferencia extra. Está bien. Um, OK, así que si y por esos, no
tienes ni idea de lo que estoy hablando, ve a ver un romper mal en Netflix. De acuerdo, Así que imágenes como esa es verdad. Por lo que no llegaremos aquí a menos que se haya seleccionado una imagen. De acuerdo, Ahora lo que queremos hacer es una cláusula else. Al igual que si el usuario solo está haciendo una descripción y no haciendo una imagen real. Entonces, ¿dónde está terminando este? Curly Brace es lo que quiero encontrar. Uh, vamos a ver aquí. Esto a veces es un poco difícil de descifrar. ¿ Todo bien? Entonces no lo sé si acabas de ver eso, pero éste acaba de resaltar amarillo. Ahí está. Entonces sé que es esa de ahí. Sé que es este tipo. Entonces íbamos a hacer es lo que estamos diciendo es, si hay una imagen y la imagen seleccionada es verdadera de lo contrario, sigamos adelante y digamos yo mismo ese post a base de fuego. Y en lugar de pasar una imagen aquí, vamos a pasar en Neil. Está bien. ¿ Por qué, Neil? Bueno, porque vamos a pasar una nada vacía. De acuerdo, nada en absoluto. Porque recuerda, si entramos aquí, esto significa que queremos usar una imagen. Si no, sólo
tenemos una descripción. OK? En ambos casos, ya
había dentro de esto, Así que tiene que haber a Tiene que haber textos en el campo de texto los cuales ya estaban
contabilizados . Entonces en este caso, no
estamos publicando una imagen. Solo estamos publicando Tex. Y así esto estará vacío aquí mismo. De acuerdo, Así que publica una base de fuego. Entonces lo que queremos hacer es crear, um, un post su en el formato que queremos. Recuerda, Firebase es una base de datos basada en clientes. Cuando digo cliente, me refiero a tu amigo y tipo de controles son app de iPhone es el front-end. Y así, cualquiera que sea la información que coloquemos aquí, va a tomar. Y entonces lo que estoy diciendo es servidores, por ejemplo, en un típico servidor de arresto, un servidor rechazará datos que no están en el formato que desea. Bueno, base de fuego no va a disparar base está muy abierta así. Por lo que tienes que asegurarte de que tus datos estén perfectamente sincronizados si lo tienes. Si tienes ah, forma de aplicación de
navegador con angular o algo y entonces te has conseguido app de iPhone en app
android. Tienes que asegurarte de que los tres APS tengan exactamente la misma estructura de datos en su cliente. De acuerdo, entonces vas a ir a tu base de bomberos, ¿
verdad? Tire abre un navegador aquí goto firebase dot com y vas a iniciar sesión. Rebordeado datos de prueba creados. ¿ Te acuerdas? ¿ Cómo crearía un dato de prueba en el pasado? Y les dije a ustedes saben, queremos crear prueba fechada para ver cómo van a quedar nuestros datos, y por eso lo hicimos. Entonces si voy a administrar APP por aquí, va a tirar de abrir nuestra cuenta, y nos va a permitir Teoh, mira sus datos de prueba. Por lo que siempre que decida cargar aquí, allá vamos. De acuerdo, entonces cuando diga el formato, así que tenemos Así tenemos la base Uriel aquí. Y así los posts básicos de Ariel slash Ya tenemos una referencia para que interactúan y luego publica Cada post tiene una clave única. Entonces esto es así si lo piensas en términos de IOS, este es un diccionario con esta es la clave de cada ítem y es de tipo string y cualquier objeto bien, los valores o cualquier objeto. Por lo que sabemos que necesitamos tener una descripción. Sabemos que necesitamos tener una imagen o l y sabemos que necesitamos tener likes. Así se estructuran nuestros datos en nuestros posts. Entonces simplemente creamos algo que es exactamente lo mismo hasta ahora. Post de tipo diccionario string en cualquier objeto, justo como dije lo íbamos a poder crearlo y vamos a inicializar un diccionario aquí justo fuera del bate. Entonces la primera descripción clave bien, va a ser post field dot text. Simplemente pondré un signo de exclamación al final para desenvolverlo. Sabemos que si llegamos a esta función que hay valores ahí dentro porque no
habríamos llegado a menos que hubiéramos entrado aquí. Entonces solo estoy siguiendo la cadena y o código es bastante seguro en este punto. Entonces y luego Ah le gusta bien, si estás creando un nuevo post, ¿con cuántos como deberían empezar? Si dijiste cero, ese es un buen lugar de partida. Yo diría que tienes razón. Entonces ahí está nuestra publicación ahora estás honrando Bueno, ¿ponemos la imagen o en su Bueno, no
sabemos si hay una vez que tenemos que hacer algo de lógica. Entonces si URL de imagen así que si este tipo de aquí está bien no es igual a arrodillarse, Significado si hay uno vamos a decir post y pasado en la imagen clave o Oh, esta es la clave que iniciamos Firebase, ¿recuerdas? Vamos a decir que es igual a imagen. Tú eres yo y lo vamos a desenvolver con el signo de exclamación. Entonces si no hay mayoría, sigamos adelante y agregarla a este diccionario. Si no lo hay, esto nunca se llamará aquí. Y esto se verá así. Sólo me gusta y descripción. Solo alguna lógica de codificación estándar. Ahora, la cuestión del día. ¿ Cómo guardo esto en Firebase? Te vas a quedar impresionado por lo fácil que iss. De acuerdo, entonces te voy a mostrar lo que hemos hecho antes. Voy a abrir el lado izquierdo y entrar en nuestros servicios y nuestro servicio de datos. Recuerda cómo conseguimos una referencia a los posts aquí mismo. Recuerda, es solo esto tu escucho. Mensajes de slash hacia adelante. De acuerdo, eso es todo. ¿ Recuerdas, bases de
fuego eres? L base acaba de agarrar los postes. De acuerdo, entonces la idea es que queremos agregar un nuevo elemento a este array de posts. ¿ De acuerdo? Realmente, muy fácil. Te vas a quedar impresionado por lo fácil que es esto. Así es como haces las cosas y lo metes en la base de incendios. Y es instantáneo. Entonces vamos a agarrar esa referencia al post que tu más. Entonces vamos a decir que lo vamos a decir. Dejar y, uh, ¿cómo queremos llamarlo? Puesto Firebase. A esto se le llama FB que podría confundirse con Facebook. Sólo llamémoslo Firebase. Post equals data service dot ds The ref posts Member last the reference the post slash posts Aquí está, child by auto I d Mira lo que dice, niño. Yo auto i d genera una nueva ubicación secundaria usando una clave única y devuelve una
referencia firebase a ella. Esto es útil en la ubicación de la base Niños de fuego representan una lista de elementos mientras que
esto representa una lista de elementos. Entonces lo que va a dio es que va a ir punteros y luego nos va a dar un
objeto único con las claves un post slash mi objeto único eso sobre. Se verá así. Post slash esto, por cierto, ¿sabías que incluso esto es utiliza el euro este nombre clave aquí? Por lo que esto sería posts slash Esto llegó aquí. Y así cuando cuando lo hagas, niño genere niño, yo d va a crear un nuevo yo generado d Al igual que todo para, ya
sabes, trabajo
extra. Entonces, um, eso es lo que acabo de hacer por nosotros en este momento y todo lo que necesitamos hacer ahora, OK, esto es una locura. Listo para ello era un post base de fuego que dicho valor. Y vamos a pasar en el poste esto aquí mismo. Por lo que consiguió una referencia creó un nuevo niño. Estamos almacenando eso aquí mismo, ese niño nuevo. Y entonces estamos estableciendo el valor de ese diccionario ese objeto para que sea éste. Eso es todo. Acabamos de establecer un valor, y se guardó instantáneamente en todos los dispositivos, K super cool. Y mientras estamos aquí, sigamos adelante y ahora despejemos esto. De acuerdo, así que vamos a aclarar el, uh, campo de
publicación ese texto, dejarlo vacío, um, y diremos, uh, se post imagen. O pero es el selector de imagen imagen imagen chicos son sobre un nombre terrible. Terrible nombre, selector de
imagen. Imagen punto Imagen igual a tu imagen. Simplemente envíalo de vuelta a la cámara. ¿ De acuerdo? Y sé que se llama cámara, porque eso es lo que importé. Entonces, pongámoslo a cámara y luego a la vista de tabla, no recarguemos datos. Entonces eso es todo. Es así como posteaste la base de incendios. Por lo que creas el formato de los datos que deseas, que ya has hecho con datos de prueba en Firebase. Está bien. Y luego, uh, agregamos el euro si hay uno, y luego agarramos una referencia a los posts, uh, Euro, le
agregamos un nuevo niño con solo llamar a esta función crear una marca nuevo récord. De acuerdo, así es como se crea una entrada de base de datos totalmente nueva, y luego se establece el valor de esa publicación. Eso es todo. Y luego restablecemos nuestra forma aquí. Ah, también
deberíamos, uh, restablecer a nuestra imagen. Seleccionado 1,000.000.000. Lo dijo de nuevo a falso. Al igual que lo restableces todo. Um, bien. Y eso debería actualizar instantáneamente
nuestra ah, nuestra sección aquí con las fotos que buscamos. Ella le daría un tiro. En caso de probarlo, señor Vamos a probarlo. Entonces voy a abrir. Voy a seguir adelante y correr esto aquí y voy a abrir carrera de bomberos. Y como es instantáneo, no
deberíamos ver un New Post agregado aquí. Ahora mismo, tenemos cuatro posts que cuando hago un post, deberíamos ver uno nuevo añadido aquí. Entonces un momento de verdad, ¿verdad? Entonces habla de tu, um por favor trabaja. Entonces no parezco un idiota en video. Uh, sí. Y vamos a seguir adelante y hacer clic en la cámara. Y el que vamos a dar es este tipo de aquí? Entonces lo pusimos ahí. Lo tenemos en cualquier parte por aquí. No, ahora mismo. Así que ahora mismo, esto es sólo datos de prueba, parece, uh, Ok. Está bien, vamos a seguir adelante y vamos a dar este tiro. Ya estás listo. Entonces si hago clic publicarlo agregó un nuevo registro aquí mismo. Hermosa. De acuerdo, así que ahí está. Uh, ahora, claro, necesitamos que estas imágenes funcionen aquí. Realmente no hemos hecho eso todavía. Um, así que sigamos adelante y hagamos eso Ahora, Um, siento que deberíamos haber hecho esto antes. Está bien. Ustedes son como, Oh, ¿qué van a hacer? Bueno, hagámoslo ahora mismo. Entonces, uh, definitivamente
funciona. Se puede ver que está justo aquí en el Está justo aquí en nuestra base de incendios. Todo funcionó ahí, así que solo necesitamos que estas imágenes funcionen de la manera que esperamos que lo hagan. Echemos un vistazo. Entonces si estamos trabajando con células aquí, nos conocemos a sí mismo. Arrgh, Ruta de
índice va a ser lo que estamos buscando. Alguien a quien mandar Hay que encontrarse para una fila. De acuerdo, así que veamos qué tenemos pasando aquí. Um, bien. Estamos eso en algún lugar de la línea. Creo que hemos perdido nuestras imágenes aquí de alguna manera. Configurar, vender porque nada de esto ninguno de estos realmente se está cargando. Echémosle un vistazo aquí. Se va a quedar storyboard. En primer lugar, asegurémonos de que aún esté conectado. Um, así escaparate imagen. Todavía está seleccionado aquí. Um, volvamos a nuestro post cell en la celda configure. De acuerdo, entonces, um imágenes. Neil. Um, en realidad
tengo curiosidad por qué? Estos no son, uh Estos no están apareciendo aquí. Imagen de escaparate oculta. Um, Ok, entonces ya tenemos esto realmente funcionando. En realidad, no
estoy seguro de qué está pasando aquí. Um, asegurando todas esas mismas imágenes aquí. Vamos Ah, veamos si alguno de estos funciona aquí. Entonces solo voy a poner un punto de ruptura aquí mismo para ver por qué estas imágenes no se están cargando aquí . Sólo estaban trabajando. Entonces, um, sólo
echemos un vistazo. Podrían ser los simuladores teniendo un tema que podría ser, ah, montón de cosas. Y no voy a cortar esto del video porque quiero que mires algo de este
manejo de aire aquí para que podamos averiguarlo. Por lo que parece que mi punto de ruptura nunca fue llamado. Entonces siento que esto no es Esto no es hacer lo que se supone que esté haciendo. A ver si nosotros, um bueno, ¿
sabes qué? Tengo curiosidad. Ahora, ¿qué debería subir si volvemos a nuestro feed VC aquí, Echemos un vistazo aquí. Um, ¿entonces estamos fijando nuestros puestos? Um, la imagen o L la deletreo bien. Se ve bien. Um, sí, todos
se ven bien. Post. Siente ese texto. OK, pero por aquí en nuestro post venta, nunca
se acercaba exitoso. Entonces lo que quiero hacer es seguir adelante. Si la imagen no es igual a Neil, pongamos aquí un punto de ruptura. Y también pongamos aquí un punto de descanso para ver si llegamos hasta ahí y sigamos adelante y lo
corremos de nuevo. De acuerdo, Entonces, imagen, vamos a presionar este paso por tecla justo aquí. Por lo que es nuevo. Entonces es la reunión de Neil. Necesita descargarlo. De acuerdo, eso tiene sentido. Entonces estamos aquí en la solicitud. Um, bien. Y ah, esta jugada de prensa. Parece que simplemente no están descargando. Adelante y sigamos adelante e imprimamos el aire. Creo que nos está dando un error más. Imprimir descripción de depuración de punto de aire. Yo debería. Esto debería funcionar. A eso le va a dar un tiro. Tengo curiosidad ¿qué está pasando? Paso más allá de ella. Está bien. Ah, aquí está. Está bien. No se pudo cargar el recurso porque la política de seguridad de transporte de aplicaciones requiere el uso de una conexión segura. Ya hemos visto esto antes y arreglemos eso, ¿verdad? Porque ningún Iowa tiene nueve en el problema de conexión segura. Ya sabes cómo va eso. Adelante y solo sigamos adelante y abramos todo bajo el sol. Entonces vamos a entrar en info dot p lista aquí. Y veamos su app Ennis. Seguridad del transporte. Uh, no
tenemos los permite cargas arbitrarias, Así que buen trabajo. Entonces espero que acabes de aprender una lección de sobre la depuración. Espero que sólo presten atención cuidadosa a cómo resolvemos este problema. Bueno, no
lo ha resuelto, sino cómo lo vamos a resolver. Tenemos que, ya
sabes, hicimos los puntos de ruptura. Pasamos por ahí y luego miré el aire real porque no me estaba dando un heredero . Y entonces lo que queremos hacer ahora es ah, por aquí estaba cerrado. El dominio de excepción justo aquí haga clic en el n s AP Transporte Seguridad, Click plus y vamos a decir I n s permite a nuestra perra rara e cargas y, uh, presiona enter. Y eso es un booleano. Y vamos a decir que sí, hecho eso en un Ahora veamos si las imágenes se mostrarán en nuestra aplicación. Cool codificación de depuración. En la práctica, nunca
vas a conseguir que viendo videos que solo te dicen que hagas X, Y y Z. Por cierto, ¿cuál es lo mejor de lo mejor? Me alegro de que estés aquí. Y bastante seguro, funcionó. Mira eso. Ya sabes, es gracioso, ¿Los otros chicos que en realidad probablemente imparten cursos sólo X, y y Z? En realidad pasaron por estos problemas y lo cortaron. No te lo enseñaron. Y para que nunca sepas cómo resolver estos por tu cuenta, ya
sabes, como eso no es de ayuda en absoluto. Especialmente si estás tratando de construir APS no es absolutamente útil. Eso De todos modos, um, mira esto cargó justo aquí. Por favor trabaje. Entonces no parezco un idiota en video. Eres como, Bueno, no
trabajaste, Así que sí te ves como un idiota. Bueno, sé amable. Dijo Vaca, manojo de odiadores y matones aquí, hombre. Qué clase tan brutal. Sólo estoy bromeando. Estaba hablando conmigo mismo. Está bien, así que funcionó. Hagamos una más para asegurarnos de que realmente funcionó ahora que en realidad está funcionando. Entonces habla de tu app. Esta es la segunda prueba. Carguemos uno diferente. Vamos a decir este hermoso, um, conjunto de hojas. Buen post. Se está cargando. Bam! Ahí mismo. ¿ Ver? A la derecha. Los datos internos son instantáneos. ¿ Recargó nuestras fotos aquí? Y bastante seguro, lo hizo. Y tal vez estás pensando, ¿por qué esto no está publicado en la parte superior? Bueno, no
es alfabético ahora mismo, y esa es en realidad una de las características extra que vas a estar haciendo en el ejercicio por tu cuenta, porque necesitas experimentar y jugar. Entonces definitivamente está funcionando. Imágenes subidas también estaban creando nuevos puestos de base de fuego. Todo está funcionando. No está mal. Por lo que nuestra aplicación se está acercando bastante. Como se puede decir, sin embargo, hay algunas cosas que no están funcionando. Al igual
que, ya sabes, el corazón. No puedo hacer click no puedo hacer me gusta, um Y entonces también, ya
sabes, estas imágenes se transmiten todo para mí. Pero ¿qué pasa con la publicación de otras personas y usuarios? Ya sabes, tal vez te has estado preguntando cuándo voy a cubrir eso. Bueno, en realidad, eso va a ser parte de los ejercicios Will a que vas a hacer por tu cuenta. En realidad te doy todas las herramientas, como la cuenta de usuario, cosas así. Y vas a aprender a vincular cosas como cómo conectar cuentas y cosas
así en el siguiente video cuando hablamos de hacer los “me gusta”. Pero vas a hacer eso por tu cuenta porque vas a tener unas herramientas necesarias Experimento en la práctica sobre ti mismo. Entonces de todos modos, uh, vamos a llamar a este video Hecho. Se ve genial. Nuestra aplicación de redes sociales realmente se está juntando aquí. Y, uh, eso es rap
111. App: muestra parte 15 - como la característica (relaciones de base): Oigan, todos, Mark Pricier deficits dot com ¿Ya están listos para terminar esto? Hagámoslo. De acuerdo, así que tenemos postes yendo a la base de bomberos. Están ahorrando. Eso es genial. Um, ¿
qué tenemos que hacer? Bueno, lo
queremos, Teoh. Por último, al hacer clic en el botón del corazón, como se puede ver aquí, aumentaría
lo similar, y al hacer clic en él, lo disminuiría. Ahora, ¿
tal vez estás pensando qué? Esto probablemente debería ser bastante fácil, pero ¿qué es realmente gracioso? A lo mejor no es gracioso. Pero la realidad es que ésta es en realidad un poco más dura. Y aquí está la razón por la que Quién es dueño de un post y quién es dueño de
un like, Bueno, un post tiene un número total de likes, cierto, pero no necesariamente almacena quién lo hizo, quién le gustó. Ahora si hago clic bien en los usuarios, el propio usuario piensa en esto. Soy usuario de una siesta. Me ha gustado x cantidad de publicaciones, así que necesitamos almacenar referencias a los posts que nos han gustado. OK, entonces en esencia, lo que necesitamos dio está en cada una de estas células de aquí. Necesitamos saber si ese usuario tiene, como esos nudos de póster específicos, vamos a revisar fuego por decir, Hey, ¿ me
ha gustado? Si me ha gustado, sigamos adelante y ponle el corazón a la imagen completa. Y si no me ha gustado, dejémoslo en la imagen como se puede ver aquí mismo. Además, al hacer clic en
él, es actualizar los likes en el propio objeto post real. Y si lo apagas y en realidad ha disminuido los likes en el post object. Entonces, ¿cómo hacemos la relación? Y esto es muy importante. Aquí es donde vas a aprender sobre las relaciones con la base de fuego. Por lo tanto, presta una atención cuidadosa porque esto es importante en cualquier otra aplicación que quieras
construir . Entonces note cómo en las publicaciones en realidad no almacenamos usuarios anidados como un nombre de usuario e información sobre ellos en base de fuego. ¿ Quieres un piso en los datos? Se llama aplanado, aplanado, plano, tendiendo los datos y quieres mantener las cosas tal como lo ves aquí. Entonces en el caso de donde una publicación tiene gustos ex mentales, pero necesitas saber a quién le gustó bien, el usuario en realidad contiene referencias a los likes. Almacenamos el nombre del post real y acabamos de poner un nuevo oso bullying
arbitrario para cantar verdadero. Oye, esto existe Sólo nos importa si existe o no. Y así mantenemos una referencia al mismo con el nombre clave. Y así es como haces esas relaciones. No hacemos datos anidados. Simplemente lo rastreamos igual que lo ves aquí mismo. Y así si estás
confundido, todo así como vamos. Positividad. Mira los datos que tenemos aquí hasta que lo entiendas. Goto base de fuego. De acuerdo, cuando quiero que hagas es asegurarte de que tengas estos, uh, estos Urales de seguridad memorizado firebase. Adelante y haz clic en IOS. Inicio rápido justo aquí. Está bien. Y, uh, básicamente, lo que queremos hacer es, um, ir a la guía del lado izquierdo. Asegúrate de pasar por estos tutoriales, acuerdo? No te olvides de estos tutoriales. ¿ Está bien? Pasa por cada uno de ellos y léalos. Los importantes son la comprensión de los datos. Ya hemos hecho instalación de aislamiento. Se habla de cómo entender los datos. Conflicto entre veloz y objetivo. Vea aquí y le dice cómo entender los datos, cómo aplanar los datos luego dice pláticas sobre guardar datos. OK, uh, hasta tiene un rojo aquí diciendo No hagas esto. De acuerdo, um, y está hablando de no,
um,
no um, me gusta el nido y cosas como esa recuperando datos de todos modos, pasa por. Todo este artículo lo rehizo todo. Te ordeno que lo leas. Necesitas aprender a aprender a aprender. De acuerdo, Um, no
te mando. Te animo fuertemente de la manera más agradable posible. Entonces ahí vamos. Adelante y terminemos esta aplicación. Um, Así que hablé de la teoría de lo que queremos hacer. Vamos a ponerlo en práctica en realidad. Entonces, um, pensemos ahora en los detalles reales. Entonces cada vez que se carga aquí una celda, necesitamos lo primero que queremos hacer es saber si debemos mostrar el corazón lleno o si debemos. Entonces el corazón vacío, como puedes ver aquí si me ha gustado, debería estar lleno. Si no me ha gustado, debería estar vacío. Y eso se debe manejar en la celda de cuatro filas de la ruta de índice porque se va a llamar cada vez y en realidad se debe manejar para configurar celda de nuestra publicación. También haga clic en post cell. Y ahora mismo, en nuestra venta configure. De acuerdo, um, estamos asignando la imagen. Estamos asignando la descripción y los gustos bla, bla, bla, bla. Adelante y manejemos. Um, ¿cómo manejarlo? Um, la muestra, la derecha. La imagen correcta. Entonces, ¿cómo hacemos eso? Bueno, lo que queremos hacer es que queremos conseguir una referencia para escuchar, Obtener una referencia a similares. Y lo que digo es, ya
sabes cómo tenemos aquí en nuestra base de bomberos. Tenemos, uh no nos preocupamos por los posts. Ahora mismo, tenemos pendientes de profundidad, dash escaparate usuarios slash y luego, ah, el usuario específico, ¿
verdad? Y luego slash tan slash ese usuario específico barra, um disgusta. Esto podría tener uno o más likes, así que corta la vida. Entonces lo primero que tenemos que hacer es conseguir una referencia a esta matriz de likes. No lo hacemos Aún no lo hemos hecho. De acuerdo, entonces hagámoslo. Ahora. Vamos a conseguir una referencia, Teoh el me gusta y ¿cómo hacemos eso? Entonces vamos a nuestro Bueno, en realidad, esa es una buena pregunta. Ni siquiera tenemos una referencia a nuestro usuario actual. Justo así que antes de que incluso podamos conseguir likes, tenemos que conseguir una referencia a nuestro usuario actual. Porque si recuerdas solo mirar esto aquí, tenemos que conseguir el nombre de usuario específico ahí mismo. Ahora lo tenemos bien. El u i D. Sabemos lo que es. Eso Vamos a seguir adelante y crear una referencia a una referencia basada en incendios para entrar en su
servicio de datos . Y lo que queremos dio es crear una variable aquí llamada barra Ref. Um, usuario actual de tipo firebase. Está bien. Y, uh, ¿qué debería ser? Bueno, necesitamos conseguir rud, que ya hemos almacenado. Entonces digamos dejarte d es igual a N s por defecto de usuario. ¿ Recuerdas? Por eso guardamos esto para que podamos tener acceso a él para saber quién es el usuario actual. Entonces vamos a obtenerlo del valor por omisión de usuario estándar para clave. ¿ Recuerdas nuestra ingeniosa constante aquí como cuerda? Simplemente lo voy a desenvolver, forzando rápido porque sé que está ahí porque lo recubrimos y está ahí encendido y luego dejar que usuario iguale a base de fuego base creativa referencia firebase, y quiere tu l. Y así recuerda lo que va a ser. Va a ser nuestra base. Euro. Así que corte. Um, Ural base la base. Tú lo eres. Bueno, bien. Y, uh, entonces lo que queremos hacer es crear un nuevo camino. Entonces vamos a decir base Terrell. Entonces eso nos da la base domiciliaria, ¿verdad? Eso basó Uriel y luego hijo por un camino pendiente. Ahora, tal vez te estés preguntando qué está pasando aquí porque nunca antes habías visto esto. Lo interesante es que esto es en realidad esto es realmente genial. Esto en realidad es lo mismo bien que hacer uh, si me quité esto, es
lo mismo que hacer esto. Ah, interesante. Podrías hacerlo de diferentes maneras. Sí, se puede. Exactamente lo mismo, unos por función. Y uno es por realmente duro recubrirlo ahí dentro, haciéndolo de esta manera esta vez. Y si quieres leer lo que dice aquí, si tiene documentación, obtén una referencia firebase para la ubicación en la ruta relativa especificada. Y ah, eso es todo. Lo mismo que antes. Así que realmente cool eso. Agarramos a los usuarios. Así que home base slash usuarios dot child por camino pendiente te i d Así que todo lo que siempre hemos dicho es ir a nuestra base de fuego Deb pendientes que mostraba en firebase ioo dot com para sus últimos usuarios Forward slash. ¿ Cuáles son tus ideas? Y por supuesto, tenemos usuarios aquí que tienen su propio Tú i ds. Por lo que podría ser cualquiera de estos cualquiera de estos. Entonces solo estamos agarrando al usuario específico que es todo agarrando al usuario específico. Ese es nuestro usuario actual, y luego vamos a devolverlo usuario de retorno. Entonces quien quiera un usuario actual, simplemente
llaman a esta propiedad aquí, y va a agarrar al usuario si existe. Y por supuesto, va a existir. Entonces está bien, tenemos un usuario. Sabemos que tenemos que poder conseguir un usuario para que Teoh consiga los likes para ese usuario . Eso tiene sentido. Entonces volvamos a nuestro postcelular, ¿de acuerdo? Y aquí mismo, vamos Ah, vamos a resolver esto otra vez Ahora. Entonces, um, necesitamos crear una referencia para los gustos. Y, uh, sigamos adelante y digamos, Dejemos que el aliento sea igual a la nieve base de fuego. En realidad, servicio de datos de
base de datos dot ds dot nuestros nuevos usuarios ref actuales recuerdan punto a un niño por un camino
pendiente, así que va a ser el usuario actual slash likes, ¿
verdad? Sólo asegúrate de que estoy bastante seguro Así, Deb, talud slash usuarios slash el usuario específico barra le gusta Esa es la ruta. De acuerdo, no es gran cosa. Creo que eso se ve bien. Y entonces, ¿qué queremos hacer? Queremos comprobar y ver si,
um, um, si el Post existe, Ya
sabes, estoy diciendo,
como, como, el post, uh, que actualmente está aquí en la celda aquí, así que va a pasar por cada uno de estos, y queremos decir, oye, ¿ ya
tiene al usuario como éste? Eso es todo lo que estamos haciendo. Entonces vamos a revisar y ver si este post esta idea específica de este post recuerdas cómo cada post tiene un i d? De acuerdo, cada post por aquí, está bien, tiene una idea, y sólo queremos ver es odio. ¿ Tiene este usuario d tengo esta idea en el me gusta. Bueno, en este caso, quien sea esto tiene uno como y ahí está el post. Eso ya es, Y vamos a comprobar y ver si esa clave específica para el post actual que estamos haciendo auto ruta de índice Arrgh está encendida. Vamos a ver si eso si tenemos un like para ese post, y ¿cómo hacemos eso? Bueno, esa es una buena pregunta. En primer lugar, um, necesitamos, uh, no publicar de verdad la clave del puesto. ¿ Tenemos eso en alguna parte? Entonces ve a tu modelo, ve a tu puesto, ¿
y lo tenemos? Lo que hacemos aquí mismo, Esta clave de publicación, barra
privada, clave de
publicación. No creo que estemos haciendo Lo hemos puesto a disposición del público. Entonces hagámoslo ahora. De nuestra clave de publicación de tipo string, ¿
Recuerdas cuánto tiempo hace como, vamos a necesitar esto? Eres como, No, no tan estúpido. Yo estaba como, Bueno, espera a ver. Y aquí estamos, post key. Um, OK, así que sólo queremos devolverlo. Ahí vamos. Llave de correo de retorno. Y sí, está siendo almacenado aquí mismo. Eso está bien. Eso eso es el Post s. Entonces en realidad para conseguir una referencia a eso? Entonces volvamos a nuestro postcell y a un niño más por camino pendiente niño por un
camino pendiente . Y esto va a ser post ese post key Eso tiene sentido. ¿ Eso tiene sentido para ti lo que estamos haciendo aquí? Exactamente. Entonces vamos a Vamos a Agarrar al usuario actual slash los gustos actuales, y estamos agarrando el post p de este post actual del lado izquierdo aquí. Cualquiera que sea la publicación actual, Ron, ¿
cuál es este tipo de aquí? De acuerdo, estamos agarrando la clave actual. La clave de ese post que salvamos justo al principio. Y estamos diciendo:
Oye, Oye, agárrala. Agarra una referencia a ese post específico. Ahora, si me gusta está vacío, aquí hay un par de cosas que debes saber. Uh, si me
gusta, me gusta no existe. Entonces, por ejemplo, este usuario aquí
mismo, ni siquiera tiene un like así que no es como nada. Este usuario aquí es como ellos. Pero tal vez no es el post que estamos buscando. No importa. El camino es a un puesto específico. Si no está ahí, vamos a tener que lidiar con que sea nulo y poder hacer lógica basada en eso. Entonces así es como haces eso. Entonces tenemos aquí la referencia actual. Esta es la referencia K. Y, ya
sabes, fue mucho mecanografiar, pero eso está bien. Es sólo la forma en que es raro decir, como ref, observar, evento
único, bien de tipo. Y sólo queremos uno simple. De acuerdo, de tipo de, uh punto valor con bloque. Vamos a deshacernos de todo este bloque feo de aquí, y vamos a decir con Block y vamos a decir, instantáneamente y vamos a cerrarlo ahí y ponerlo ahí. De acuerdo, así que observa, evento
único de tipo. Si volvemos a nuestro controlador de vista feud, ¿
recuerdas cómo hicimos algo parecido? Aparecen en algún lugar justo aquí. Nosotros sí observamos valor de punto tipo de evento. Y esto es interesante. Esto va a pasar. Esto se va a llamar muchas, muchas veces. En cualquier momento el cambio de Data, va a llamar a esto una y otra vez. Pero aquí es diferente en nuestro post. Por lo que estamos diciendo observado, evento
único. Esto solo se llamará una vez, y estamos diciendo valor de punto. Entonces lo que realmente está pasando aquí es que estamos diciendo, Hey, ver si puedes encontrar esto como, Ok, esto para este post. A ver si existe. Eso es todo. Estamos haciendo un solo evento. Sólo se está llamando una vez, vale, porque queremos comprobar y ver si existe. Y si existe, queremos o bien mostrar el corazón o no mostrar el corazón. De acuerdo, entonces todo lo que tenemos que hacer ahora es Ah, hacer ese cheque. Entonces si dejas que
Andi, solo voy a crear una variable. En realidad no lo vamos a usar, pero va a ayudar. Ayúdenos a comprobar. Entonces voy a decir que no existe. Ese es el nombre de la variable otra vez. Es sólo un nombre arbitrario. Yo le di snapshot dot Valor como y es no. Está bien. Está bien. Entonces lo que estamos diciendo aquí es ah, instantánea de ese valor. Recuerda cómo el valor del punto nos agarra los datos. Bueno, si estos huevos, si esto no existe Vale, entonces lo que estamos diciendo es, oye si no existe, entonces tenemos que mostrar el corazón vacío. Entonces lo que estamos diciendo es, oye, si no hay como en nuestra matriz de likes para el post específico, dejémoslo vacío porque no existe, y no lo hace. Y este Esnal en firebase, bien, datos que no existe es un N s no, muy importante. Esto es lo de la base de fuego. ¿ De acuerdo? No solo estoy tirando cosas al azar aquí. Um, si no hay, aquí está eso. Aquí está la regla. Escríbalo en base de fuego. Si no hay datos en el valor de punto, si no hay datos veda, si no existe. Conseguirás un N s. No. Y eso es lo que necesitas revisar en tu contra, ¿
no? No cheques contra Neil. No compruebas contra Knoll. ¿ Comprobaste contra N s? No. De acuerdo, entonces si los datos no existen en valor, va a ser N s.
No. Entonces si llegamos aquí, esto significa que no nos ha gustado este post específico. ¿ De acuerdo? Y de nuevo, Firebase toma un par de veces dando vueltas, envuelve tu cerebro alrededor de lo que está pasando. Pero acabamos de agarrar una referencia a nuestros gustos o justo en nuestro en nuestro usuario actual. Y solo estamos revisando para ver si esa publicación específica que estamos viendo está en esa matriz . Y si lo es, significa que nos ha gustado. OK, Pero en este caso, no lo
hemos hecho ya que no hemos sido un auto punto como, ¿por qué no hacerlo? Estaría todo por ello. No sabíamos que no lo ibl para el botón for the like. Wow. Por lo que estoy outlet week var. Esto va a ser como imagen y esta es tu vista de imagen de ojo. Ahí vamos como imagen. Entonces si no existe, intentemos de nuevo este yo que,
como imagen, como imagen, la imagen es igual a tu imagen nombrada y es corazón vacío es lo que la llamamos. De acuerdo, entonces si no existe, muéstrale el corazón vacío. De lo contrario, vamos a mostrar el corazón lleno en sí mismo que, como imagen de punto imagen te iguala. Imagino imagen con nombre corazón lleno. Eso es lo que llamamos a nuestras imágenes. Entonces si no existe, mostrar el corazón vacío si sí existe. Si tenemos, así, mostrar el corazón lleno. Y así esto está sucediendo cada vez que se configura una celda y configura, vende y vende ruta de índice fero en nuestro control de vista de feed. Cada vez que eso se llame a su celular, vamos a agarrar el valor sólo un solo evento. No queremos seguir llamando a esto una y otra vez. Tan sólo una vez, queremos revisarlo y cambiar el corazón en base a si existe o no. Entonces eso ya es bastante fácil Ahora. También necesitamos manejar lo que sucede cuando un usuario hace clic en el tap, pero porque entonces necesitamos agregarlo a la matriz o eliminarlo de la matriz si existe, y así realmente necesitamos usar la misma referencia exacta aquí. Entonces creo que vamos a necesitar re factor. Es así que sigamos adelante y hagamos eso. Ahora, voy a copiar este comando, ¿
ves? Y, um, subiremos aquí y creemos una var numérica como ref de tipo fuego base. Eso no funciona porque necesito importar base de incendios aquí. Ahí vamos. Está bien. Entonces, ¿como Griffis Firebase? Uh, y vamos a seguir adelante y en la nota en la celda configure justo aquí. Después de tener un post real, vamos a seguir adelante y decir, um, como, aliento es igual. Así es como lo llamamos, ¿verdad? Al igual que ref. Sí, como Griff es igual a este código que teníamos de antes. Y es ah, uso de local antes de su declaración. ¿ Hice algo mal aquí? Echemos un vistazo. Um, como Griff de tipo firebase Objeto. Uh, lo deletreo mal. No, se ve bien. Creo que excluye tropezar aquí. Uso de variable local como injerto antes de su cubierta clara. Ah, sí Bueno, vamos a deshacernos de este sombrero. Está confuso. Aquí vamos. A ver si esa figura es remache para nosotros. Ahí vamos. Se ha ido. Se refería a la de abajo en lugar de la de arriba. No sé por qué de todas formas. Entonces lo que estamos diciendo aquí es ah, vamos a crear una variable firebase variable de la referencia similar. Simplemente estamos sosteniendo una referencia a eso a nuestra matriz de gustos para cualquier publicación que estuviera actualmente en. Entonces cada vez que configuremos la celda, va a poner en los mensajes que específicos y agarrar una referencia a ella y luego cada vez que aquí abajo, vamos. Teoh, vamos a revisar y ver vamos a agarrar el valor de, si existe, va a cambiar el corazón, etcétera, etcétera. Pero sí necesitamos manejar también lo que sucede cuando se golpea cuando las imágenes realmente tocaron. Y así recuerda cómo, antes dije en tu ojo sean salidas. No se puede arrastrar un gesto de tap a algo que es repetible. No puedes hacerlo en un sobre una colección de que vendes. No puedes hacerlo en una mesa de que vendes. No puedes hacerlo aquí desde el storyboard como lo hicimos la última vez. Tenemos que hacerlo vía código. Entonces vamos a entrar en tu postcélula, y lo que queremos hacer es levantarnos de plumín. Vamos a seguir adelante y añadir un gesto de tap la reconoció a nuestra imagen de gustos tan fácil. Deja que solo vamos a llamar a este grifo te iguala. Te doy un toque. Golpeé solo para reconocer er, Target va a ser yo en el y vamos a llamar a la función. Se va a llamar, como, tocado. ¿ De acuerdo? Y tienes que poner ese Colin al final porque nos va a pasar una discusión. Va a pasar a este ascendente un gesto de tap, Reconocedla. Entonces ahí está nuestro grifo. Esto es realmente fácil. Tap dot Número de grifos requeridos es igual a uno que acaba de decir dedo un toque para el palo que llama. Dijiste que son como tres para ir tap tap tap tap antes de que llamaran las funciones. Realmente genial. Sólo vamos a hacer uno. Y ahora sigamos adelante y vayamos a la imagen similar y digamos, Añadir gesto. Medida de registro. No digas al toque gesto justo y gesto. Reconocer? Er la coyuntura del grifo la reconoció y otros grifos y deslizamientos y esas cosas. Todos heredan de la misma clase. Y sólo vamos a añadir el grifo. Está bien, una cosa más. Si recuerdas, los controles por defecto no tienen habilitada la interacción del usuario. Así que digamos como imagen dot interacción de usuario habilitada es igual a True. Entonces ahora lo que va a pasar es cada vez que alguien toca que va a llamar a una función llamada como tocado. Entonces es bueno y crea que ahora, al fondo de aquí abajo, funk como tapped, va a pasar una discusión. A ti le toqué gesto. Reconocer? Er, eso es lo que nos va a pasar. Y tenemos que hacer algo similar a lo que hicimos aquí. De acuerdo, así que vamos a copiar este código, ¿de acuerdo? Y pegarlo aquí mismo. A pesar de que necesitamos hacer algunas cosas diferentes aquí abajo que antes en este caso, necesitamos un Claro, sí
necesitamos cambiar la imagen. Muy bien, Así que vamos a sólo tres cosas que tenemos que hacer. Tenemos que cambiar la imagen que estamos mostrando tipo de como lo hicimos antes, pero también esta vez necesitamos agregar uno como al propio post real. Vamos a quitar uno como y luego tercero, tenemos que añadir a nuestra matriz de me gusta decir, Hey, me ha gustado este post. Entonces, ¿cómo agregamos el Así vamos a manejar primero la imagen. Por supuesto. Um para que eso sea bastante fácil. Ya hemos hecho esto, ¿verdad? Entonces si me gusta es tap Así que si no existe. Entonces si nunca nos ha gustado antes,
todo lo que necesitamos para hacer un swap esto fuera. Entonces si nunca nos ha gustado antes, tenemos que gustarnos ahora. Y así cámbialo a corazonada si nosotros, um si ya nos ha gustado y lo tocamos, OK, ahora tenemos que hacerlo vacío, Así que solo lo estamos revirtiendo, ¿de acuerdo? Eso Sí. Cómo hacemos Cómo agregamos un like Así vamos a ir a nuestro modelo y nuestro código postal aquí que el, uh el modelo air es una gran manera a un gran lugar para poner el código que quieres manipular tu fecha. ¿ Recuerdas cómo no hacemos eso desde los controladores? La manipulación de datos debe manejarse desde la capa del modelo. Entonces, ¿cómo hacemos eso? Bueno, ¿qué? Yo quiero dio su primer asegurarme de que tenemos una cantidad total de likes que dio. De acuerdo, Um y, uh, Entonces lo que queremos hacer es tal vez tener una función que vamos a llamar disfunción A igual que tan funk me gusta y, uh, estamos digamos, agregar como, es de tipo matón. Y así, básicamente, si, um , um, si pones cierto aquí. Se va a añadir un como si pones falso aquí, se va a quitar igual, eso es todo. Entonces, por ejemplo, si add like, eso es cierto, Vale, vamos a decir que le gusta igual. Grupos de luz le gusta más uno. Entonces si agrega likes si es cierto, entonces agreguemos un dedo me gusta de lo contrario, eliminemos uno tan me gusta, igual, me gusta menos uno. De acuerdo, ahora, um, así que eso es ajustarlo ahí. Pero también necesitamos que Teoh lo guarde en base de fuego. Correcto. Entonces, ¿cómo hacemos eso? Um bueno, necesitamos agarrar una referencia al puesto actual. Um y entonces necesitamos simplemente cambiar el valor de los likes en él. Por lo que actualmente no estamos sosteniendo una referencia al Post. Hagamos eso. Ahora. Así que creemos un, uh, privado. Tenemos vamos a llamar a este post ref de tipo base de fuego, y voy a importar firebase para que en realidad pueda usar eso. De acuerdo, Entonces, importar base de fuego. Entonces vamos a hacer una referencia al puesto específico. ¿ Recuerdas? De nuevo, lamento reiterar esto, pero es importante entenderlo. Deb, pendientes que exhiben postes de barra barra barra barra barra la publicación específica. Tenemos que conseguir una referencia a lo que sea que sea el post actual. Tenemos la llave en sí, pero necesitamos la referencia real de la base de fuego. Podemos cambiar las cosas en él. De acuerdo, así que aquí abajo en nuestro Isar inicial, sigamos adelante y creemos esa referencia. Por lo que auto punto subrayado Post ref es igual, um, data service dot sí punto Vamos a obtener todas las listas de publicaciones y luego hijo por un 10 un camino
pendiente y eso va a sí mismo. Hace subrayado post keep. Ya tenemos la llave. Entonces de nuevo, todo lo que estamos haciendo es agarrar una referencia a este post muy específico, y me está gritando por alguna razón. ¿ Qué está diciendo? Uh, niño por camino pendiente. No es necesario poner ahí un signo de exclamación. A ver. Está bien, es edificio Se ve bien. Está bien. Um bien. Muy cool. Creo que no necesito eso. Creo que sólo me estaba gritando sin razón. Sí
, me estaba gritando sin razón. Yo me quité la explicación, así que acabamos de agarrar una referencia al post. El post que recuerden, recuerden, esto es una clase. Esta no es clase rápida. Eso es tener datos. Por lo que también necesitamos agarrar una referencia al post de la base de fuego solo para poder trabajar con él. Entonces, ¿cómo guardamos los nuevos me gusta? Entonces hemos ajustado los likes aquí en la clase, ¿
verdad? OK, pero ¿cómo lo guardamos en la base de datos real basada en incendios? Entonces eso es fácil post ref dot child por camino pendiente, Así que agarra me gusta Vale, ¿Ves lo que estoy diciendo? Tenemos el puesto actual, ¿verdad? Tenemos post slash dash J. ¿Por qué? Sea lo que sea esto ahora lo que estamos haciendo es agarrar a su hijo. El “me gusta” clave. Estabas agarrando la llave me gusta. Justo Ahora son 21 o lo que sea este post, y sólo vamos a decir, establecer valor, vamos a reemplazarlo. El valor establecido reemplaza lo que pongas en él, acuerdo? Y vamos a decir que lo reemplace por likes. Entonces estamos agarrando el valor actual de los gustos, y lo estamos reemplazando por los nuevos me gusta aquí mismo. No es gran cosa. De acuerdo, entonces volvamos ahora a nuestro postcelular. Entonces hemos cambiado la imagen, pero ahora necesitamos ajustar los likes, ¿no? Entonces si no existía antes, tenemos que agregarla ahora. Entonces ahora podemos decir, um auto ese post allá vamos agarrar el post actual, y vamos a decir punto Ajustar likes. Y vamos a decir verdad, Queremos agregarle un like. ¿ Todo bien? Y luego aquí, extrañarse a sí mismo Ese post ajuste le gusta falso. En este caso, queremos quitar eso. Al igual que así tenemos la imagen cambiando. En realidad estamos cambiando los datos de la base de incendios. Y ahora todo lo que necesitamos hacer es asociar que, como, con nuestra cuenta personal de usuario, recuerda, necesitamos agregarla a nuestros propios gustos. De acuerdo, diciendo, Hey, nos ha gustado este post. Yo solo quiero guardarlo. Entonces sigamos adelante y hagamos eso Ahora. Voy a entrar en el, um bueno, deja que ya estuvieras aquí,
Entonces, ¿cómo queremos manejar eso? Um, queremos agarrar ese mensaje. Queremos almacenar en nuestra cuenta. Entonces solo lo estoy pensando por aquí, así que sigamos adelante y Bueno, en realidad, debería ser bastante fácil ya que ya tenemos el, como referencia. ¿ Verdad? Entonces todo lo que tenemos que hacer, en realidad, ya que vamos a tener nuestra referencia como, Ves esto aquí mismo? Está bien. Bueno, tenemos que Dio es ah recordar, si no existe o tenemos que hacer es establecer el valor. Entonces digamos, um, yo que, como, ref ese valor establecido y lo dijo la verdad. Uh, eso fue fácil. Ustedes estaban, como, esperando algo complejo. Yo también estaba tratando de recordar lo que necesitaba para dio. Entonces, ¿cómo funciona eso? Recuerda, tenemos una referencia, como ya si no existe. Recuerda lo que te dije. ¿ Si no existe? De acuerdo, um, entonces cuando nunca crearíamos sets, cuando digo valor enviado, lo va a crear. Entonces esto, como referencias que hacen referencia a un post específico. Y así al minuto que llamo valor establecido y paso y verdadero. De acuerdo, sólo
va a hacer algo como esto. Se va a guardar esta referencia. Entonces digamos que finjamos que este era el, uh esto era la referencia aquí mismo. Esto fue usuario slash Mi usuario slash le gusta slash This. Ahora, digamos que no existía. Bueno, esto estaría vacío aquí, pero en el momento que me fije, digo establecer valor a verdadero. Esto aparece justo aquí. Tal como lo ves. Eso parecería así. En el momento que digo establecer valor a verdadero. Y luego aquí. Si digamos que estamos eliminando lo similar, eso es un simple ensayo auto punto como punto de aliento quitar valor y quitar valor realmente se elimina todo el todo, uh, toda
la clave por completo. No le gusta que lo que he hecho es mandar bu para construirlo, ver si se me va el pelo. Sí, Dumb Exco beta Solo ser tonta. Entonces de nuevo, quita valor si sigo adelante y miro la documentación. Si hago clic en él, no pasará nada. Auto completo y ayuda es tener bugs y código ex. Entonces de todos modos, uh, pero sé por porque he hecho la investigación con base de fuego se retira. Valor realmente elimina todo el valor de referencia por lo que realmente eliminaría todo el asunto. No se limitaría a eliminar el verdadero y extra mover la propia llave a. Entonces yo básicamente Sí, vamos a ver si todo esto está funcionando ahora, uh, un poco de código aquí, un poco de código, un montón de explicar, lo cual en realidad es muy común. Es muy típico y programación pensar más, hablar más, observar código más de lo que realmente escribes código. Eso es interesante. Entonces Ok, sí tenemos un problema, y creo que es porque no lo hicimos. Nos olvidamos de atar nuestra toma de corriente. De acuerdo, La imagen me gusta. Sí, Neil. No obstante, es Neil. Entonces volvamos a nuestro storyboard principal y vamos a ver a nuestro post cell, ¿
verdad? Haga clic en él. Y si vas a, como, imagen, que está ahí mismo, es ahora lo están arrastrando a tu imagen. Y intentemos ejecutar esto de nuevo. Abre la base de fuego aquí. Está bien, así que está diciendo que ya me gustó la basura. Um, me voy a deshacer de todos los gustos de todos estos usuarios. En realidad, hagámoslo. Ahora, me voy a deshacer de estos “me gusta”. Simplemente espero, por cierto, si quieres eliminar datos sin que te grite, lo
confirmes,
solo tienes que mantener pulsado, cambiar y eliminarlo al instante. Voy a deshacerme de estos gustos. Voy a deshacerme de estos me gusta casi ahí, sólo meterme en todos los me gusta aquí porque quiero asegurarme de que esté realmente funcionando. De acuerdo, voy a ir a Teoh, por cierto, ya que nuestro código no está comprobando el valor de punto. Uh, ya que sólo estamos observando un solo evento. Esto no se está actualizando al instante ya que estoy haciendo esos cambios. se puede hacer. Pero no lo recomendaría porque sólo queremos que esos se actualicen cuando estemos desplazando las celdas va a dejar de funcionar de nuevo. De acuerdo, entonces ninguno de estos usuarios tiene likes ahora, lo cual está bien. Está bien. Está bien. Perfecto. Entonces eso es genial. Um, Y así si hago clic así como aquí, una de estas cosas debería actualizarse con me gusta. Veamos qué pasa. Entonces este tipo de aquí, este soy yo. Supongo que este Facebook inicia sesión y se pone el post específico es J y con KJ. Entonces este de aquí. Entonces sí trabajé. A ver qué pasa si me gusta. Por lo que actualmente está justo aquí bajo me gusta. Eso no es así. Boom. Se lo
borró, se lo quitó todo. Está funcionando. Y mira, los números aquí, actualizando a sus sabe cómo. Actualizado aquí arriba en la cima con el nuevo valor. Entonces uno de estos aquí arriba, Vamos a ver, uh, uno de estos tiene uno como este, Si puedes encontrarlo. Uno de mis primeros actos. Está bien. Esto debería volverse a cuando hago clic en este botón Ahí vamos. Y si lo apago, debería volver a bajar a uno. Por lo que definitivamente está funcionando. Eso es realmente genial. Por lo que parece que un rap va fuerte. Lo está haciendo bien haciéndolo muy bien.
112. Ejercicio: ampliar tu aplicación de red social: De acuerdo, todos, mark pricier deficits dot com Has hecho un gran trabajo llegando a este punto. Terminaste la app. Eso es impresionante. Hablemos de un ejercicio que te ayudará a expandir tu mente y te ayudará a aprender algunas
cosas nuevas . Por lo que esta es la app tal y como existe actualmente. Como sabes te puede gustar te pueden gustar posts. Puedes agregar cosas de publicación como esa, y todo es global. Entonces hay algunas otras cosas que quiero que pruebes. De acuerdo, no
hay solución para esto. Tienes que hacerlo por tu cuenta. Ven a la comunidad a la sala de chat a los formularios y consigue la ayuda que necesitas para hacer esto. Uh, yo estaré ahí. Habrá días de maestros. Ahí estarán otras personas. Por lo que primero crea una pantalla que haga que el usuario ingrese un nombre de usuario después de que primero cree una cuenta. Entonces digamos cuando tu primera cuenta creada, en
lugar de llevarte a la iniciación de sesión y llevarte a la tarifa la pantalla, tenla. Llévalos a tal vez una pantalla de perfil y ingresan su nombre de usuario
y entran, y luego pueden agregar una como segunda tarea que puede agregar una foto. OK, y si no quieres hacer en esta pantalla,
tal vez puedas tener una pantalla de perfil en su lugar, como un engranaje de configuración. Una pequeña imagen de perfil en algún lugar de tu APP puede estar aquí en la parte superior derecha, donde el usuario puede ingresar su propio nombre de usuario o puede ingresar en una foto. Y, por
supuesto, con la foto, puedes usar el mismo tipo de código que usas antes de usar un recolector de imágenes y luego
subirlo a la Image Shack, el mismo código exacto que hicimos antes. Excepto que lo estarías haciendo con tu foto de perfil y en llamas Base. En lugar de almacenar en debajo de la sección de publicaciones, solo
tienes que almacenar debajo de la sección de usuarios. Entonces nuevamente tienes todas las herramientas que necesitas para hacer eso. Sólo tengo que implementar la u yo y cambiar ligeramente algunas cosas alrededor. Entonces esa es la primera tarea es crear ah, nombre de
usuario. Segunda tarea es crear una foto de perfil. Tercera tarea es realmente conseguir esos t show en estos posts después de que los hayas subido todos. El diferente post debe mostrar lo que los usuarios han hecho el post y debe mostrar sus nombres de usuario. Um, y tú sabes hacer eso también. A nuestro al menos tienes los videos. Podrías volver atrás y mirarlo. ¿ De acuerdo? Y luego por último, uh, el para aquellos que quieran llevar esto al siguiente nivel, darle al usuario la posibilidad de primero, editar o eliminar sus publicaciones. De acuerdo, si has creado una publicación, puedes editarla o eliminarla. Y para poder hacer eso, vas a necesitar almacenar esa publicación bajo la cuenta del usuario, igual que hicimos con likes. De acuerdo, necesitas tener una matriz de post que haga referencia a las publicaciones, pero dijo como, Como acabo de decir, igual que los gustos exactamente igual Excepto que lo estás haciendo para publicaciones para un usuario. Y luego, uh, agrega la capacidad para que el usuario pueda Teoh, um, o no el usuario. Hacer que los usuarios puedan agregar comentarios. OK, eso un post. Voy a tener comentarios. Y si piensas en el modelo de datos, ya
sabes,
ah, ah, comentario pertenece a un usuario y un comentario hace referencia a una publicación. Por lo que no es muy diferente a los gustos. Escribe tus comentarios acaba de referenciar la publicación. Por supuesto, el Post necesita mostrar todos los comentarios. Um y así esa es la característica avanzada. Pero haz esas cosas encendidas, luego cambia la app. Tal vez como, 30% cambia el tema y algunos de los estilos y cosas lo cambian para arriba y luego sube en la tienda
APP. Entonces ese es el ejercicio. Si haces eso, tienes mi personal, Um cómo te llamarías ¿Cómo lo llamarías? Mi garantía personal, um, personal. O más bien, me sentiría cómoda sabiendo que me sentiría cómoda diciendo que estás en un
punto en el que podrías empezar a solicitar trabajos. Si eres capaz de construir esta app y hacer esas cosas extra que acabo de mencionar mete todo eso en. Yo diría que estás bien en tu disculpa. Bueno, en tu camino a poder,
um, um, conseguir un trabajo y eso es importante o construir tu propia app profesional a la APP, señor. Entonces esas son las cosas. Eso es lo que quiero que dio y te ayudará en el camino. Así que adelante y empieza y haz algo genial con tu no decir que estabas haciendo. Han sido geniales para algo grandioso otra vez. O si no has hecho nada genial. Ahora es hora de que cuelgue.
113. Crear un icono de aplicación: Oigan, ¿qué pasa, todos? Mark Pricier jabones sordos punto com. Y hoy vamos a construir y bien. Y así vas a necesitar unas cuantas cosas para hacer eso. Yo lo voy a tirar aquí arriba, tú vas a comer tienda de fotos, y tal vez tú estás pensando, bueno, yo no quiero comprarlo. O tal vez estás pensando que odio el adobe. Bueno, no
sé por qué, para empezar, son una empresa fantástica,
pero para es, pero para es, um si realmente vas en serio sobre la construcción de aplicaciones profesionales, vale, Especialmente para aplicación móvil. Por lo que necesitas saber cómo usar la tienda de fotos. Está bien. Y los adobes hicieron realmente fácil conseguir Photoshopped así como todos sus otros productos. Puedes usar la nube creativa y pagar una suscripción mensual. Son 20 dólares al mes por la tienda de fotos versus, ya
sabes, pagando como 1000 dólares por ello. Antes, en el pasado, cuando no tenían suscripciones de todos modos, muy bien vale la pena. Como desarrollador móvil, te vas a encontrar muchas veces en las que necesitas poder personalizar gráficos y cambiar las cosas alrededor, y no siempre vas a tener un diseño alrededor. Por lo que tienes que empezar a convertirte en un desarrollador híbrido. ¿ De acuerdo? Aquel que pueda escribir código uno que sólo podría moverse por una tienda de fotos. No tienes que ser artista, pero ya sabes, debes saber cómo moverte con él para que puedas hacer las cosas realmente rápidamente. Todos los mejores desarrolladores hacen eso en desarrolladores que no son tan grandes que construyen los
APS realmente feos . No saben usar la tienda de fotos. Entonces esa es mi opinión, todos modos. Entonces en este sitio web aquí adobe dot com forward slash descargas dot html En realidad puedes obtener una prueba gratuita y empezar a usar Photoshopped de inmediato de forma gratuita. Por lo que definitivamente puedes hacer esto. Haz este video aquí, Así que adelante y descárgalo, posit video, instálalo, um, y luego vuelve aquí. Seguiremos adelante y nos pondremos en marcha. Y así de nuevo, tienes Photoshopped 1999 al mes y, uh, vete. Entonces lo que quiero que hagas es ir a esta página web aquí. App icon template dot com, un sitio web fantástico. Este tipo, ¿cuál es su nombre? Está aquí en alguna parte. Podrás aprender más sobre él. Hizo que hizo un montón de plantillas de iconos para hacer que poder producir iconos de aplicaciones sea mucho más simple porque cuando estás desplegado en la tienda APP,
el X Code y iTunes se conectan requiere de múltiples tamaños para los iconos de las aplicaciones. ¿ Sabes cómo va a quedar en la tienda APP? Necesito un ícono grande, un ícono pequeño, un ícono para los iconos del teléfono para iPhone. Cuatro iconos de Zyklon para iPhone seis es todo lo que cosas mucho trabajo, esta plantilla aquí camina para hacerte la vida mucho más fácil. Y entonces eso es lo que vamos a usar. Eso es lo que uso profesionalmente. Entonces otra vez, estás aprendiendo todo lo que hago profesionalmente. Y así condonas, levántate y corre rápidamente de una manera muy profesional. ¿ Cuántas veces crees que podemos decir profesional en un periodo de tres minutos? Averiguémoslo. De acuerdo, sigamos adelante y pinchemos este aquí en el lado derecho. IOS App Icon de nuevo. Tienen aplicación de reloj APS de escritorio para el Apple Watch es Bueno, es aplicaciones de android. Vamos a hacer clic en el icono de la APP de Iowa, y lo que quiero que hagas es solo descargar. Está bien, ya se está descargando. No vamos a señor, recetar. Este tipo tiene grandes cosas el gran diseñador y puedes donar si te sientes muy bien por su producto aquí. No estoy abogando por su página web. Sólo lo estoy usando. Entonces se está descargando ahora y Ah, genial. Además, lo que mientras esto se está descargando, lo que también quiero hacer es contarte sobre el proyecto de sustantivo. Lo hemos usado un par de veces a lo largo del curso. También cuentan con una aplicación Mac. Puedes descargar y obtener iconos, pero ah, enorme Siris de iconos que puedes usar en tu APS. Y todos están bajo la licencia creativa Commons. Entonces si quieres leer sobre Creative Commons y qué puedes hacer con él, solo
puedes buscarlo en Wikipedia. Pero aquí es de donde vamos a sacar nuestro ícono. Entonces mi ícono y el que usé para mi logo de Death Slopes obtuve del proyecto sustantivo. De acuerdo, es todo lo que tienes a dio es una búsqueda del tipo de icono que quieres nuestra imagen. Vamos a decir código en este caso para esta app. Entonces vamos a buscar iconos que tengan que ver con el recubrimiento. Está bien. Quiero cerrar esta ventana de adobe aquí. Ya deberías tener el juicio. De acuerdo, ahí vamos. y el que busco que me voy a desplazar hacia abajo está justo aquí y todo lo que voy a dio es que lo voy a descargar. ¿ De acuerdo? Como PNG, ya
he ingresado. Um, así que sólo voy a unirme a un Facebook porque debería registrarme y automáticamente. Um oh, eso es correcto. Estamos de incógnito aquí. Déjame seguir adelante y poner aquí mi información. Ahí vamos. Probemos esto otra vez. Busqué código. Se está cargando. Ahí está. Descarga PNG y ah, vamos a hacer gratis y volver a dar crédito. ¿ Cuál es la diferencia? Compra comprador libre de regalías Icono libre de regalías para uso ilimitado en cualquier proyecto para siempre Tu compra Director Deportes el talento creador de forma gratuita. Descárgalo gratis. Requiere dar crédito al creador en tu proyecto y no se puede utilizar sin dar crédito. De acuerdo, así que asegúrate en tu app que le des crédito si usas estos iconos si no los vas a comprar, así que voy a liberar y dar crédito. Y así le estamos dando crédito a un Ziese de que, uh, este es su ícono, y lo hizo. Y así está mi atribución crediticia. Y así que eso está descargado. Ahora así como la plantilla ahí. Entonces si hago clic en esto y voy a mostrarla y encontrarla, debería ver mi ícono pop aquí mismo, que es. Voy a arrastrarlo en el escritorio, y vamos a seguir adelante y arrastrar este archivo zip que tenemos aquí para la plantilla en el escritorio. Voy a hacer doble clic en él para descomprimirlo. Entonces ahí vamos. Tenemos nuestra carpeta aquí. Y si lo abro,
aquí está nuestra app. Plantilla de icono. De acuerdo, así que adelante y haga clic. El que dice dot PSD Lo vamos a abrir aquí. Se va a cargar tienda de fotos, ¿de acuerdo? Todavía está cargando, y vamos a quedarnos con las capas. Muy bien, voy a hacer edad de mando para apagar la grilla Comando H giros acordados. Encendido y apagado. Está un poco alejado, así que voy a presionar Z y hacer clic en el zoom. He memorizado muchos de estos comandos de Photoshopped porque lo llevo usando desde hace tanto tiempo . Um, está bien. Y así la idea es dar tu anterior de lo que tus iconos van a ver en todos los diferentes tamaños de
pantalla, lo cual es realmente cool eso con el fin de editar este ícono que tienen aquí en el
lado derecho . ¿ Ves esta cosa que dice editarme y guardar? Está bien, ahí mismo. Entonces sólo tienes que seguir adelante y hacer doble clic que mantienen las capas. Y ahí está si lo que editamos aquí es lo que va a aparecer en el icono de su aplicación. Entonces tenemos este icono genial aquí que creamos o que descargamos, y queremos que esté por aquí. Y entonces lo que voy a hacer es de este lado derecho de aquí donde dice temps donde
dice grilla. De acuerdo, esta cuadrícula de aquí, um lo que vamos a dio es en realidad cerrar esta carpeta aquí, ver esta carpeta justo aquí. Apague la rejilla. Cierra esta carpeta. No nos importan los guías, y no nos vamos a quedar este año. Y lo que vamos a hacer es crear unas nuevas capas en la parte inferior derecha. Haga clic en esta gran capa nueva. Esto sólo va a ser nuestro antecedente. De acuerdo, Así que presiona la letra g para el cubo de pintura o en el lado izquierdo. Por aquí. ¿ Ves este cubo para el dolor? De acuerdo, aquí
voy a cambiar mis colores. Este es tu color primario, que muestra al empleado principal que estás usando. Voy a cambiarlo dedo blanco así que solo hago clic en él y lo abro y lo arrastra hacia arriba a la izquierda y hay blanco y voy a asegurarme de que mis cubos de dolor sean seleccionados. Y voy a ir por aquí en el lado derecho asegurándome de que mis capas seleccionaran aquí esta capa vacía que acabo de crear voy a dar clic ahora. Tenemos un fondo blanco y ya no necesitamos a este tipo aquí. No lo queríamos en primer lugar, así que voy a ocultar que están con el símbolo del globo ocular pequeño, y eso es genial. Entonces ahora lo que voy a hacer es arrastrar este ícono aquí a mi tienda de fotos. Al igual que así. Está bien, Y se ve bien. Se ve muy bien, en realidad. Voy a hacer clic derecho en la capa del lado derecho por aquí. Esto es ahora. Está bien, tengo razón. Haga clic en él y golpea a Rast. Levantarse Capa. Ahora mismo no puedo editarlo realmente. Es sólo una especie de flotación. Ahí está lo que se llama un objeto inteligente. Nosotros queremos rast levantarlo Así que es comestible. Eso es todo lo que significa. OK, ahora lo que quiero hacer es deshacerme de este texto. No quiero su nombre en el icono de mi app. Eso se vería tonto. Entonces voy a presionar la letra M o si miras en el lado izquierdo por aquí, es esta pequeña, uh, esta pequeña herramienta marqués M. Entonces es una plaza. Y mientras se selecciona la capa y cuando digo la capa la de nuestra nueva imagen
sólo voy a poner un cuadrado alrededor de las palabras reales y presionar la tecla delete. Entonces eso ya se ha ido. Y, uh, también
voy a centrar este icono aquí en medio de la pantalla. Así que adelante y hacer este tipo comando de prensa, más un en el teclado con la herramienta de marquesina seleccionada comando A. También
podría haber seleccionado todo el asunto clicado y arrastrado. Está bien. Cualquiera de los dos funciona para mandar un rato. El Marqués herramientas como va a seleccionar todo. Ahora lo que quieres hacer es entrar en modo selecto, suprimir la tecla V en tu teclado o en el lado izquierdo aquí este pequeño ícono con la flecha Esto nos permite centrar las cosas. Por lo que la herramienta de movimiento. Entonces si miras aquí arriba en la parte superior. No, ahora
podemos centrar este icono. Entonces lo voy a centrar vertical u horizontalmente, y también lo voy a centrar verticalmente, sabe moverse hacia abajo. Por lo que nuestro icono está exactamente en el centro de la pantalla. Ahora, lo último que necesitamos dio es solo hacer que sea un bonito color rojo para que coincida con nuestra marca. Puedes hacer lo que quieras por tu vengo en tu branding, así que voy a cambiar de nuevo al color rojo por aquí. El que estoy usando es F 4511 e Vale, ese es el que estamos usando aquí. Y lo que voy a hacer es subir aquí a la parte superior y goto capa capa de color estilo guarida. Y, uh, eres como, Oh, funcionó Automática. Bueno, ese no es el rojo correcto. Vale, Entonces lo que quiero que hagas es asegurarte de que la superposición de color seleccionada aquí, haz clic en la caja de color y con la pequeña herramienta cuentagotas que ves aquí mismo, mira, recorta tu rojo. Y ahora es el color rojo correcto, y eso es todo. Ese es el ícono que le gusta a un miembro, Bueno, es un poco aburrido. Bueno, en realidad
se va a ver realmente bonitos está en el teléfono. Regla de oro es cuanto más simple e ícono sea, más atractivo podría ser. El usuario la gente quiere ver cosas que son rápidas en apelar cosas que son demasiado ruidosas son muy distrayentes para la I. Así que adelante y hacer comando Plus s para guardar este archivo para conseguir un poco de cargando spinner ahí podría tardar un minuto porque este es un archivo grande. Entonces lo que está haciendo es actualizar todas las capas de nuestra otra plantilla que hemos creado . Está bien. Y por cierto, tus ventanas pueden verse diferentes a las mías. Tengo una versión de Photoshopped diferente a la de U. S. Oh, realmente no puedo ayudarte con eso. Tienes que jugar con él. Si las versiones un poco diferentes aquí. El mío aquí mismo, mis pequeñas pestañas aire aquí mismo en el lado izquierdo y derecho. Entonces cada vez que creas una nueva ventana, eso es lo que se va a abrir. Entonces lo que quieres hacer ahora es que tenemos el ícono. Adelante y haz clic en la X de este archivo que realizo PSB y miro. Ahora está actualizado y nuestro otro archivo aquí y se ve bastante bien. Mira cómo se ve en el iPhone dos x tres x uno X iPad. Tenemos un montón de iconos aquí. En realidad se ve muy bonito. Muy bonito. Um, vale, trato
genial Así Y se ve muy bien en el iPhone para que puedas ver justo ahí en la parte inferior . Se ve genial. Así es exactamente como quiero que mi icono de aplicación se vea tan genial. Ahora lo tenemos luciendo exactamente como queremos usando alguna magia de tienda de fotos rápida. Y ahora has aprendido un poco de magia de Photoshopped tú mismo. Entonces lo que queremos dio es que primero voy a guardar este archivo. Y lo que queremos hacer es exportar todas estas cosas aquí al icono de APP. Entonces vamos a ir a la ventana en la parte superior y vamos a ir a acciones para mostrar acciones. Y estas acciones aquí son básicamente scripts que se van a ejecutar que van a realizar una operación para ti en photoshop. Y va a exportar un montón de estos archivos aquí. Entonces el que queremos ya ha seleccionado. Tengo que tener abierto esto antes de tu simplemente probablemente debería tener uno aquí y esta
plantilla de icono de la aplicación . Está bien. Y hay dos exportaciones. Puedes hacer esquinas redondeadas aquí mismo o esquinas cuadradas. Ahora, no
quieres hacer nunca esquinas redondeadas. Estás como, bueno, rodeado de
app. Bueno, el X Code y iTunes van a hacer eso por ti automáticamente. Está bien. Así que asegúrate de hacer cuadrado. De lo contrario podría estropear las cosas. Así que asegúrate de tener seleccionado cuadrado, ¿de acuerdo? Y lo que vamos a dio es ah, aquí mismo con este siendo seleccionado. Está bien. Con este siendo seleccionado aquí mismo, hay un pequeño botón de juego, acuerdo? Y lo que quiero que dio es que,
uh, uh, haga clic en ese bollo de juego. Así que asegúrate de que el icono cuadrado esté seleccionado y haz clic en jugar. ¿ De acuerdo? Esta cosa va a salir por aquí. Se va a pensar por un segundo, y luego solo tienes que hacer clic en el botón Guardar te va a pedir unas carpetas. Así que ponlo en la carpeta de crédito de escritorio nueva para esto. Vamos a llamar a estos iconos de carpeta y lo vamos a hacer es en lugar de llamarlo este
nombre raro , solo
vamos a llamar a icono y luego hacer clic seguro, y vas a ver por qué usamos esta herramienta. Entonces Encontremos aquí nuestra carpeta. Iconos. De acuerdo, si abro esta carpeta, aquí hay un icono de aplicación al cuadrado. Mira todos los iconos que crearon. ¿ Habrías querido exportar esos todos por ti mismo y todos los diferentes tamaños? La respuesta es no, no, no, no. Entonces ahí está nuestro ícono. Se ve realmente bien, tiene todos los tamaños que necesitamos. Así que adelante y cierra una tienda de fotos. Si te pidió que dijeras, si puedes guardarlo, busquemos y vayamos a buscar el proyecto de código X al que quieres subir los iconos. En mi caso, vamos a hacer una aplicación de escaparate de pendientes sordas que ya deberías haber construido, y si no, usa tu propia app. Pero lo que quiero que hagas es hacer clic aquí en la carpeta Activos. Está bien. Disculpe. No el titular del activo. Lo que quiero que dio es ir por aquí al ícono superior, este icono azul aquí y ves justo aquí donde dice app, iconos, fuente, y es su icono de app. De acuerdo, haz clic en este pequeño aire del lado derecho. Ya lo tienes. Yo solo quiero mostrarles que lo podías hacer por ahí. También se puede seleccionar a través del titular de activos. Al igual que le estaba explicando la primera vez. Está bien. Y mira cómo tienes tus preguntas tus capturas de pantalla y activos aquí. Haga clic en el icono de la aplicación. Es lo mismo, así que puedes hacerlo en ambos sentidos. Ahora entra en tu carpeta y pulsa el comando A para seleccionar el centro comercial. Puede hacer clic y arrastrar el comando A para seleccionarlos. Todo lo que tienes que hacer es arrastrarlos aquí mismo donde veas las señales más. Está bien. Y, uh, solo déjalo ir. Muy cool. Ahora mismo. Ya sabes, es como faltaban algunos de estos. Los que faltan son opcionales. Y los, uh entonces sí, estos son opcionales. Y si alguna vez quieres a Adam más tarde, puedes. Te dirá las tallas que necesitas, Ok, eso se ve genial. Enfriar. Y eso es realmente todo. Tienes que dio Podemos seguir adelante y solo ejecutar este proyecto y vas a ver que
ahora tenemos un ícono de app en el teléfono. Cosas realmente geniales y tienda de votantes no era tan difícil de usar. Fue, uh fue bastante simple. Y ahí vamos. Se carga la app Vamos a seguir adelante y esconder la APP. Acude a la pantalla. Por lo que el cambio de comando H es la clave de inicio. Y ahí está nuestro ícono. Se ve bastante guay. ¿ Crees? Yo creo que sí? Entonces eso es todo. Eso es app. Iconos. No demasiado grande de un trato. Definitivamente usar Photoshopped. Definitivamente usa que contemplo si quieres ahorrar tiempo. Ahora, con eso dicho, hay muchas herramientas gratuitas que puedes usar que no tienes que pagar en Internet como gimp. Y, uh, hay un montón de otros. Incluso hay en línea. Ni siquiera lo sé. Yo no los uso. Photo shop es sólo una poderosa herramienta. Entonces me ayuda a trabajar muy rápido como desarrollador, ya
sabes, piensa en esto como si estuvieras trabajando en un proyecto, ¿
verdad? ¿ Qué pasa si no tienes diseñador y tienes que ajustar algo? Bueno, ¿cómo vas a hacer eso? ¿ Vas a pagarle a alguien para que haga eso? Uh, probablemente
podrías aprender algunas pequeñas técnicas de Photoshopped y hacer mucho progreso en tu Así que eso es todo. Esto está diseñando un icono de aplicación y precio inteligente de la muerte jabones dot com. Sigamos adelante
114. Crear otro icono de aplicación en Photoshop: Oigan, ¿qué pasa, todos? Marcar Cristo con Deb pendientes punto com. Y hoy vamos a aprender a construir un icono de APP para IOS. Esperemos que dentro de 10 minutos, todo desde cero. Y va a ser en tiempo real directo desde mi cerebro para que veas cómo
funcionan mis procesos creativos . Vamos a usar algo que me gusta llamar préstamos temas y estilos y nuestro trabajo de otras personas y hacer que parezca nuestro propio a nuestra manera personalizada sin tener ninguna
habilidad de diseño . Así que adelante y etiquetar esa patente lo que quieras. Adelante y empecemos. Entonces lo que vamos a hacer primero es que necesito asegurarme de que tengamos una tienda de fotos en la computadora. Si no vas a conseguir un trial de photoshop Photoshopped CC 2015 puedes conseguir una prueba por ello o pagar 10 dólares al mes. Herramienta muy valiosa. Lo que voy a hacer aquí es ir a Google Chrome y vamos a buscar un cráter de
plantilla de Iowa para tienda de fotos. Entonces icono de la aplicación IOS, plantilla PSD Eso es lo que voy a escribir y hacer clic en el enlace superior aquí. Este es el que queremos. Tienen Android IOS, etcétera. Vamos a escoger IOS Muy bonito. Y voy a dar clic en Descargar después de que termine la descarga. Voy a hacer clic en visitar archivo para descomprimirlo. Y yo sólo voy a arrastrar la mía aquí justo al escritorio. ¿ De acuerdo? Y ahí está. Entonces no sigas adelante y haz doble clic en el archivo psd dot. Cargará Photoshopped para ti. Entonces aquí está la plantilla de icono. Incluso te muestra cómo se ve en un teléfono, lo cual es realmente genial. Y esto es su cosa de plantilla por defecto aquí. Entonces qué, ¿quieres dio? De acuerdo, lo que quieres hacer es hacer doble clic en este ícono aquí en el lado derecho en tu
sección de capas que dice editarme y guardar. De acuerdo, así que haga doble clic que no las letras, la imagen real en sí. Está bien. Y eso va a cargar este archivo de punto psb, que es donde vamos a hacer nuestra edición. Y tienen algunos preajustes geniales aquí que puedes jugar con resplandor y cosas así. Si quieres. De acuerdo, También se encienden aquí, y no vamos a meternos con ninguna de esas cosas. Vamos a construir la nuestra propia. Y así digamos que tenemos una app. ¿ Qué es una buena idea? ¿ Guitarra? Tenemos una siesta sobre tocar la guitarra. Está bien. Y podrías hacer exactamente lo mismo que estoy haciendo aquí. Entonces pero por tu tema. Entonces lo que queremos Dio es primero conseguir un bonito trasfondo que nos guste. Entonces voy a hacer eso ahora. Voy a ir a Google, y sólo voy a escribir fondos frescos,
radiantes y hacer clic en imágenes y sólo elegir uno que te guste Eso podría quedar bien para un ícono de la aplicación. A mí me gusta este de aquí, ver imagen para hacerlo más grande posible. mí me parece bien. Entonces lo voy a arrastrar aquí a mi escritorio sólo para que pueda tenerlo. Lo que voy a dio es este dragón sobre mi lienzo. Ahora es un poco pequeño, pero no estoy demasiado preocupado,
porque, um, um, es sólo el fondo y vamos a jugar un poco con él de todos modos, así que me queda bien, y tú puede ponerlo donde quieras. Voy a poner el mío, salir del fondo de aquí, y voy a apagar el globo ocular radiante ahí y voy a apagar la rejilla. Eso no me importa. Voy a hacer clic derecho en la capa y voy a Rast Arise Layer. Y luego voy a presentar V para entrar en herramientas de movimiento puestas aquí arriba en la parte superior izquierda y comando t para entrar en transformarse o controlar t en la PC, y voy a mantener pulsado turno. Y yo sólo lo voy a hacer grande para que se sienta todo el asunto. Ahora lo que voy a dio está presente v ok, Y entonces,
ah, ah, comando A para seleccionar todo el genial aquí, y voy a hacer clic en este ícono aquí arriba, Alinear centros horizontales, acuerdo. Y alinearnos. El centro vertical es solo para ponerlo ahí justo en el medio. Entonces ahora tenemos este pequeño icono genial, que es lo suficientemente bueno para mí por ahora mismo. Y no me gustan estos grilla, así que voy a hacer comando más h para apagarlos. Aquí vamos. Y eso está bien conmigo. Entonces eso se ve bien. Está un poco pixelado. Así que sólo por diversión, vamos a salir un poco. Entonces voy a ir a filtrar, Desenfocar y Ghazi y desenfocar y mirar eso. Lo suavizó muy bien para nosotros. Que es justo lo que quiero. Ahora bien, este icono no está funcionando realmente para mí aquí en la parte superior. Puedes encenderlo y apagarlo. Entonces voy a apagar eso ahora mismo y vamos a buscar nuestra guitarra. De acuerdo, vamos a buscar nuestra guitarra. Entonces voy a ir a mi sitio web favorito, el ahora en un proyecto otra vez. Necesitas dar crédito si usas estos iconos profesionalmente, ¿de acuerdo? O puedes comprarlos. Yo creo por 1 99 cada uno, que es mucho. Y voy a decir guitarra, y me va a mostrar un montón de guitarras, lo cual es bastante jodidamente cool. Entonces yo como que quiero uno. Eso es simplemente fácil y plano Ahora el pixel one es tipo de cool. A ver. Aquí, encontremos uno que creemos que realmente nos habla. Mm. Guitarra. Algunos de estos. Simplemente no me importa aquí. A ver. Uh, aquí está el uno. Este es el uno. De acuerdo, Entonces lo que voy a hacer es mandar turno cuatro en el Mac. Si estás en PC, puedes hacer clic, descargarlo y descargarlo, y solo voy a arrastrar por encima de esta guitarra aquí y vamos a seguir adelante y arrástrela a nuestro lienzo aquí como, así que voy a hacerlo más grande. De acuerdo, voy a hacerlo, correcto. Haga clic en esa capa y vaya a Rast. Levántate capa. Está bien. Y solo necesita estar arriba para llegar por encima de la capa de fondo aquí. Y voy a presionar W para que vaya a mi herramienta de deseos. Esta no es la única herramienta. Por lo que voy a hacer click derecho aparecer en la parte superior izquierda e ir a Herramienta Varita Mágica. Y voy a seleccionar el espacio en blanco ahí y me voy a deshacer de él. Ahora. Tenemos esta genial guitarra flotando aquí y notamos que ex im va a presionar la herramienta e para borrar y el soporte adecuado para hacerla más grande. Y sólo voy a borrar esa cosita de ahí. Entonces ahora tenemos esta cosa de guitarra de aspecto fresco. A pesar de que sí tiene un derrame cerebral del cual no estoy completamente contento. Yo quiero probar algo. Voy a duplicar esta capa arrastrándola aquí hacia abajo a las nuevas capas. Voy a apagar una capa y lo que quiero hacer ahora es que voy a presionar W para seleccionar el exterior, OK, pero quiero seleccionar todo el interior de esta guitarra, No el exterior. Si notas si presioné el pincel b, está en el fondo Comando z para deshacer eso. Entonces quiero seleccionar todo lo que hay en la guitarra. Entonces voy a hacer cambio de comando I para seleccionar lo inverso de lo que se acaba de seleccionar. Y con la herramienta B seleccionada y escogida tu color favorito, voy a presionar el soporte adecuado para hacerlo grande. Y sólo voy a hacer que este asalto de asalto de color y ver cómo se ve. Y eso realmente no me gusta. A lo mejor me dio tal vez no Mm. Ya sabes, esto probablemente sea bueno por ahora mismo. Adelante y armemos esto un poco más aquí. Entonces digamos que queremos una bonita guitarra roja. ¿ De acuerdo? ¿ Qué? Aiken Dio está presionado el botón g g del teclado, ¿
verdad? Haga clic en esto y vaya a pintar cubo. Y sólo voy a seleccionar dentro de la guitarra. De hecho, voy a duplicar la guitarra una vez más. ¿ De acuerdo? Entonces no tengo que arruinar el original aquí, y voy a simplemente dar clic aquí y ponerlo en rojo, ¿de acuerdo? Y luego voy a seleccionar un rojo más oscuro como este, y voy a dar clic aquí en el borde y ver cómo se ve eso. Está bien, eso se ve bien. Voy a dar clic a estos pequeños iconos negros aquí solo para sólo por buena medida. De acuerdo, así que eso se ve genial. Y sí, como
que me gusta. Vamos, eh digamos esto y yo solo presiono comando como para guardar. Si volvemos a nuestra otra plantilla de íconos de la app, nos mostrará cómo es el ícono. Y así es como se ve aquí. Esto es lo que parece aquí. No es lo más grande. Um, creo que nuestra guitarra, ya que nuestros fondos una especie de Grady en nuestra guitarra probablemente debería una especie de Grady en. Y el tipo rojo se ve como un marrón. Entonces arreglemos eso también. Pero yo no quiero. Grady y los bordes. Tengo curiosidad si pudiéramos sólo Grady int el interior aquí. Entonces, ¿qué? Voy a dio expresar la herramienta w y seleccioné el interior. Entonces voy a hacer comando ver en el comando V para pegar eso en una nueva capa. Como puedes ver, hay una capa justo aquí y luego en esta capa lo que voy a hacer es ir al
estilo de las guaridas de capas , y vamos a ir a Grady int overlay, ¿de acuerdo? Y voy a hacer clic en el int Grady aquí, y voy a recoger algunos rojos diferentes. De acuerdo, voy a escoger. Voy a hacer doble clic en este rojo más oscuro. Y sólo voy a moverlo. A lo mejor por aquí, Cam. Sí, eso está bien. Y en realidad voy a dar clic, acuerdo? Y hacer comando t en este interior, y voy a ver si puedo hacerlo más grande. De hecho, se ve un poco fresco en sí mismo. Vamos en realidad Oh, ahí vamos. Eso es lo que buscaba. Entonces si sabes lo que acabo de hacer sí comandé t en esa capa interior que nosotros que creamos , y entonces simplemente lo puse aquí, um, flotando sobre el azul, y creo que se ve mucho mejor. Voy a mandar s para salvarlo. Y sí, mira eso. Tenemos una guitarra de rock cool. Podríamos probar una cosa más. Sólo Teoh sólo para ver si no estamos completamente seguros podemos ponerle una sombra de gota aquí. Y así voy a ir a Layer. En realidad, ni
siquiera hace falta hacer eso ya. tiene estilo. Basta con hacer doble clic en los efectos en el lado derecho aquí con el globo ocular y vamos a seguir adelante y hacer una sombra de gota. De acuerdo, tipo de darle un ligero efecto de tres d de aspecto, así Un poco más grande ahí. Y solo estoy ajustando el tamaño me parece un poco guay. Los bordes aquí están un poco entrecortados por la herramienta w. Entonces lo que puedo hacer es ir a mi herramienta de desenfoque, este cuentagotas o esta pequeña cosa de aspecto de lágrima aquí. Está bien. Y puedo hacer click en eso y lo que puedo hacer es presionar el corchete derecho para hacerlo más grande. Justo en el contorno rojo aquí, sólo
podría arrastrar para un tipo de suavizarlo un poco solo para hacerlo un poco más suave . Entonces esas líneas dentadas simplemente desaparecen porque no me gustan las líneas dentadas aquí mismo, mando
Mocha como para salvarlo. Y mira eso. Tenemos un icono de guitarra de aspecto bastante cool. Si pudieras ver aquí, puedo acercarme. Esto es lo que se vería en la tienda APP. No es tan malo que no lo sea. Ya sabes, no
es nada loco profesional, pero no tenemos ninguna habilidad de diseño. Nosotros lo chupamos diseño. Y acabamos de hacer algo que se ve bastante guay. Y entonces lo que voy a hacer ahora, guarda esto otra vez. Comando s Volvamos a mi plantilla de icono de aplicación aquí. Y como puedes ver, se ve bien. De acuerdo, entonces ahora queremos exportarlo para que realmente podamos usarlo en nuestra aplicación. Entonces lo que voy a dio es ir a la ventana y encender acciones. ¿ De acuerdo? Arrastra este panel de acciones hacia abajo y lo que buscamos hacer es cargar una acción. Y tú puedes hacer eso. No, no de esa manera. Y perdí mi panel de acciones. No hagas eso. Haga clic aquí en estos tres pequeños botones. ¿ De acuerdo? Y lo que queremos dio es ah, acciones de
carga. Y luego ve a tu carpeta en la que descargaste la plantilla de icono de la app y haz clic en el
archivo 30.18 . De acuerdo, así que acabo de cargar en acción. Y si puedes ver aquí, tenemos este nuevo icono de aplicación Acción de plantilla Un icono cuadrado a su alrededor. Icono, Cuando estás exportando para IOS, no
quieres los redondeados. ¿ De acuerdo? No vuelvas a mostrar. No queremos los redondos Sólo queremos los cuadrados. Está bien. Entonces, ¿qué quieres dio? Porque manzana alrededor de esos gratis automáticamente haga clic en el icono cuadrado Aceptar, y luego haga clic en el botón de reproducción. Y eso te va a pedir una carpeta para poner estas cosas, lo cual haremos una vez que se haya hecho pensando Ok, m click seguro. Ni siquiera tienes que preocuparte por ninguna de las otras configuraciones. Haz aquí una nueva carpeta en tu escritorio. Llamaremos a esta nueva carpeta Iconos Ok y le daremos un nuevo nombre. Vamos a llamarlo Icon, Click Save. Va a correr por su proceso de exportación y ponerlo en todos los tamaños de archivo de diferencia que realmente requiere Apple. Brillante. Entonces si entro a mi carpeta Iconos ahora, ya
puedes ver todos los iconos perfectamente exportados. Y aquí está la versión de iTunes. Ya sabes, cuando es así de grande, está un poco pixelado. Podríamos haberla difuminado un poco más, hecho algunas otras cosas, y aquí está tu ícono de la APP, todos los diferentes tamaños que necesitas. Ya sabes, si lo miras,
cómo en realidad se va a ver en un teléfono como este, nos ponemos en la cumbre. Si hacemos zoom, se ve así que se ve bien. No, tiene alto contraste. ¿ Qué icono de APP debe tener? Es Es sencillo,ya
sabes, ya
sabes, Aquí está tu app de guitarra cool. Entonces eso es todo. Perdón que pasó más de 10 minutos. De verdad lo intenté, pero así es como se crea un ícono con unos sencillos consejos y trucos, sin tener que dibujar manualmente personalmente la guitarra, dibujar los contornos y cosas así. A esto se le llama hackear arte, y eso es muy útil para ser productivo. Cuando no tienes ninguna habilidad de diseño, eso es todo. Mark Precios dev pistas dot com.
115. Trabajar con @1x @2x y @3x imágenes de imágenes: Oigan, ¿qué pasa, todos? Mark Precio aquí en def pistas dot com. Y hoy voy a desentrañar los misterios de trabajar con múltiples tamaños de pantalla e imágenes en IOS que solo funcionan con una x dos x y tres X imágenes, y voy a hablar de algunos de los problemas que puedan encontrar. Entonces sigamos adelante y empecemos. Primero lo primero. Simplemente vamos a crear un proyecto y mostrarte el problema aquí. Entonces voy a ir al código X. Ahí vamos. Podría crear un nuevo proyecto. Aplicación de una sola vista es lo que estamos buscando. Haré esto más grande aquí. Cubramos la mayor parte de la pantalla y llamemos a esto No, Ailey s cantar. Está bien. Todo lo demás aquí está bien. El siguiente uno puso esto en mi escritorio y lo que vamos a hacer es que le vamos a arrastrar una
imagen muy grande a la pantalla, y vamos a hablar de lo que es Alias ing, y probablemente lo hayas visto. Y esto es un prop. Alguien explique primero el problema. Entonces si vamos a nuestro story board principal aquí, tienes tu controlador de vista, y lo que haremos es ponerle imagen ahí, pero primero, quiero mostrarte la imagen que tenemos. Tenemos esta imagen de reloj por aquí. Voy a dar click derecho e ir a obtener info. Y si hago clic más info aquí mismo, las dimensiones de esto son 2877 por 5114. muy, Imagenmuy,
muy grande. Está bien. Y tal vez lo sacaste de Internet. A lo mejor tu diseñador lo hizo gratis. Y tal vez este es el tamaño exportado Tal vez usted tal vez accidentalmente exportó a este tamaño. Pero esta es una imagen muy grande, más grande que cualquier dimensión de pantalla, realmente, que nunca la usas. Y entonces qué? Lo que suele suceder cuando probablemente lo hayas hecho es que tienes esa imagen realmente genial que quieres usar. Y así vas a tus activos por aquí, creas la trama, haz clic en el botón más y vas al nuevo conjunto de imágenes. Y solo vas a llamar a este solo reloj percenter para renombrarlo, lo llamas reloj. Y entonces tal vez sólo lo arrastras por aquí en el uno x esta imagen, así y luego vas por encima del tablero principal de cuentos aquí y
en realidad pones tu imagen Tú aquí. Entonces vamos a nuestra imagen. Lo arrastrarás aquí en medio. Voy a hacer clic en la regla aquí arriba y cambiar el con tal vez el 200 por 200 por ahora. Y luego lo cambiaré aquí en un segundo. Una vez que tengamos la imagen ahí puesta, voy a dar clic a este pequeño ícono aquí. Atributos, Inspector, vamos a cambiar la imagen del dedo del pie reloj. ¿ De acuerdo? Está un poco aplastado, tomando mucho tiempo bajo porque aquí es una imagen muy grande. Y por cierto, también
puede experimentar un rendimiento lento de las aplicaciones mediante el uso de imágenes como esta. Entonces si tienes una siesta que va lenta y estás usando imágenes realmente grandes, esa es probablemente la razón por la que es lo que vamos a hacer es cambiar el modo a ajuste de aspecto, ¿de acuerdo? Y sólo voy a hacerlo un poco más grande. Entonces digamos que queríamos esta aplicación interna aquí mismo en el centro. Voy a seguir adelante y darle un arreglo con y altura aquí en las restricciones de diseño automático a dos restricciones. Y luego voy a poner centro horizontalmente en contenedor y verticalmente en contenedor. De acuerdo, Entonces lo que vamos a hacer es que vamos a ejecutar esto en un iPhone cinco, que tiene una pantalla muy pequeña comparada con la imagen de aquí. Entonces voy a ir a mi simulador aquí, y vamos a ir a nuestro iPhone cinco y vamos a correr el at. Por lo que nuestra APP se ha cargado y asegúrese de que su pantalla esté en el tamaño normal para el para el simulador. No presione comando o comando tres para hacerlo más pequeño. Hazlo es Bigas Se supone que es. Y si te das cuenta aquí, está bien, los bordes de este reloj tienen líneas encorvadas. Está bien. Líneas muy dentadas alrededor de los bordes. A esto se le llama arrendamiento. Y sucede cuando tienes una imagen muy grande y se escala hacia abajo. De acuerdo, ahora Photoshopped programas de edición de imágenes. Están construidos para reducir las imágenes. Por lo que no tienes programas de alias ing como X Code en Iowa. No están realmente construidas para hacer eso. Al menos no lo hacen muy bien. Y así no queremos dentado. El INGE eso es feo, pues uno no se ve muy bien en el teléfono. Se vería aún peor si tuvieras en el teléfono y no el simulador a es va a hacer que tu app se ejecute realmente lento teniendo esta imagen masiva en esta pequeña pantalla que
se está encogiendo. OK, entonces hablemos de arreglar este año. Voy a hacer una captura de pantalla aquí para poder compararla más tarde. Entonces voy a decir, comando s para guardar esa captura de pantalla en el escritorio. Y así vamos a mandar que abandone el simulador. Y lo que voy a hacer ahora es ir adelante y minimizar el código X aquí porque voy a tomar esta imagen de reloj, acuerdo? Y lo que vamos a hacer es editarlo y exportarlo como necesitemos. Pero primero lo primero. ¿ De qué tamaño necesitamos para hacer nuestras imágenes? Probablemente te has preguntado mucho eso. No lo hagas 50 por 50 píxeles. 101 100. ¿ Qué hago? Y hay muchas, muchas formas de hacer esto, y muchos de ustedes probablemente ya estén haciendo algunas cosas diferentes que no son la forma en que lo
estoy haciendo y está bien. Entonces, ¿qué? Vamos a hacer lo que vamos a dio porque vamos a ir a Internet y yo
voy a ir a Veamos aquí. Este tipo Está bien. Por cierto, si quieres esta imagen y para dar crédito aquí, ve al diseño Cray designs loco dot org calidad de slash Dash tres dash flat dash icons. Y estoy usando el icono de este pack de iconos aquí mismo. Vale, de ahí sacé esa imagen. Muy bien, Entonces lo que quieres hacer es ir a Google y hacer una búsqueda de los tamaños de captura de pantalla de Iowa. ¿ De acuerdo? Y puedes hacer click en este top uno justo aquí. iTunes, connect APP, propiedades. Y esta es la documentación oficial de apple sobre los diferentes tamaños de pantallas que vas a necesitar para que tu app te da esas dimensiones aquí. Entonces me estoy desplazando por aquí y aquí puedes encontrar los teléfonos de 3.5 pulgadas. Ese es el viejo iPhone cuatro. Y para s cuatro pulgadas son el iPhone cinco y cinco s 4.7 es el iPhone seis y seis s y 5.5 es el iPhone seis plus. De acuerdo, Entonces lo que quieres dio es con tus imágenes con todas tus imágenes para tu app. Entonces cuando quieres diseñar imágenes que se apliquen a todos los tamaños, primero
quieres construir al tamaño más grande, así que no estoy hablando de iPad en esta app. Si estás construyendo un iPad arriba, podrías hacer cosas similares. A pesar de que el iPad tiene una resolución similar, solo
tienes que apoyar la resolución más grande aquí. OK, pero para estas diferentes pantallas telefónicas, lo que queremos hacer es que queremos apoyar al iPhone six plus que actualmente es el dispositivo de teléfono de
pantalla más grande que tienen. Y si hacen un teléfono más grande, voy a llorar, porque eso es ridículo. Esta cosa es enorme. Tengo uno y eso lo que queremos hacer es construir a la resolución más grande aquí. Déjame acercarme aquí Así que no te está cegando. De acuerdo, entonces es 2228 por 12 42. Entonces, de nuevo, hay muchas formas de hacer esto. Hay programas que tienen diferentes tamaños de pantalla de capturas de pantalla para iPhone que podrían hacer esto por ti automáticamente. Lo vamos a hacer en photoshop, así que sigamos adelante y abramos photoshop, y queremos crear un nuevo lienzo que sea así de grande. Entonces voy a archivar nuevo y queremos que el con esté bien, en realidad queremos el 12 42 que queremos 12. 42 por 2 a 0 y haga clic. OK, entonces este es tu iPhone six plus Ok, Bastante grande. ¿ Verdad? Entonces vamos a arrastrar esta imagen de reloj hasta aquí. Mira qué grande es. Todavía se siente toda la pantalla. ¿ De acuerdo? Demasiado grande. Entonces este es el iPhone six plus y queremos apoyar todas las resoluciones de pantalla, pero nota aquí en Photoshopped, no
hay alias ing. La imagen se ve lisa y limpia en todos los bordes, y eso es exactamente lo que queremos. Entonces lo que voy a hacer es que voy a hacer comando t para transformar esto a un tamaño que
va a quedar bien en un iPhone six plus y relativamente todos los tamaños de pantalla. Entonces digamos que queremos ver sobre este tamaño. Nosotros lo queremos en el centro. Entonces voy a mandar un para seleccionar todo presidente para entrar en mi modo de selección y luego hacer clic en este alinear vertical en la línea horizontal justo ahí para ponerlo en el centro. De acuerdo, así que tenemos un reloj estupendo. Sabemos que este es el iPhone six plus, por lo que sabemos que realmente estamos construyendo para el tamaño de pantalla más grande, lo cual es genial. Y si no sabes que este iPhone seis plus está a las tres X. Vale, ese es el nombre de las imágenes para la tercera triple resolución. Está bien. Y lo que vamos a hacer es apagar el fondo aquí, clic en el globo ocular aquí, y voy a ir a la imagen y luego recortar porque sólo queremos el reloj. Sabemos que es del tamaño correcto ahora, así que ahí está nuestro reloj. Este es el tamaño para el iPhone seis. Plus. Ahora, ¿cómo lo conseguimos a una x y dos X para nuestros dispositivos más pequeños? Voy a ir a file export export as as. Y lo que vamos a dio es que vamos a crear algunas clases de tamaño, algunos tamaños de imagen por aquí en el lado izquierdo. Entonces en este momento, solo
es exportar una copia a una X. Y en este caso, una X es el tamaño completo que significa el tamaño original. Está bien, no confundas. No es una x para iPhone funciona. La imagen más pequeña. Talla uno X aquí está diciendo:
Hey, Hey, este es el tamaño completo 100%. Entonces voy a hacer clic en el signo más aquí, ¿de acuerdo? Y así si esto es de tamaño completo, también
necesitamos hacer una, um, media talla, ¿
verdad? Entonces 0.5 x es lo que queremos hacer aquí. ¿ De acuerdo? Y el sodio tiene el tamaño aquí, y también nos permite darle un Suffolk, que es realmente genial. Entonces ahora realmente puedo cambiar el de Suffolk. Y sólo por el bien del iPhone, puedo decir a las dos X y luego aquí en la versión de una x, podría
decir a las tres X Recuerda, no te confundas. El uno X significa que es de tamaño completo aquí en una tienda de fotos, pero en en en IOS, necesita quedarse a las tres, explicando que es el tamaño más grande 0.5 x obviamente es la mitad de esto, Así que diría a las dos X y luego no tiene para ser perfecto. Um, condonas cambiar diferentes configuraciones aquí por lo grande que necesita ser. No tiene que ser píxel perfecto, como la mitad y la mitad, pero vamos a decir 20.25 x y este va a ser nuestro en una X. Vale, Así que el tamaño más grande aquí, tamaño
mediano aquí, talla más pequeña aquí. De acuerdo, porque queremos admitir los diferentes tamaños de pantalla en IOS, así que no hay alias. Canta también, no
quieres dedo del pie. Una cosa que tampoco quieres meterte en lo opuesto de lo alias es tomar una
imagen pequeña y luego estirarla para dispositivos más grandes que lo hagan ver borrosa y fea. De acuerdo, entonces lo que estoy haciendo aquí mismo es la mejor manera de hacerlo. Imagen más grande abajo. Entonces ahora que tenemos este tamaño está establecido, voy a dar clic en exportar todo. Y aquí en mi escritorio voy a hacer una carpeta nueva y escucha. Llame a esto. Vamos a llamar a esto iconos sólo por ahora, y voy a dar clic en Exportar. Muy bien, entonces tenemos Dash uno sin título. Es que no dije el nombre del expediente. Está bien. Tan sin título. Dash 12 x y tres X. Y si hacemos click derecho y vamos a obtener información sobre la X, son 122 pixeles por 2 17 Si vamos a las tres X, debería ser el tamaño original aquí. O 4 88 por 8 68 No es el tamaño original de la imagen que teníamos originalmente, sino el tamaño que pusimos en nuestro lienzo iPhone six plus, que es perfecto. Entonces tenemos tres imágenes aquí ahora ¿qué? Vamos a dio minimizar Photoshopped. Voy a abrir código X otra vez, Y esta vez voy activos y hago clic en este reloj y lo elimino. Ese es sólo el tamaño equivocado. Y voy a abrir mi carpeta de iconos Y ahora solo puedes arrastrar una x en una x dos x en dos x y tres x en tres x, pero no sabías que iba a decir eso. De acuerdo, entonces ahora que tenemos las imágenes ahí dentro, voy a volver a mi historia. Ward. Mira, todavía
está seleccionado, que se ve muy bien. Ahora notarás en el lienzo aquí la imagen puede verse ligeramente borrosa, pero eso está bien porque es solo que el campus no es lo que realmente está apareciendo en la pantalla aquí. Y voy a hacer turno de mando. K declaim mi proyecto A veces imágenes. A menos que limpies tu proyecto, ellas las imágenes antiguas podrían persistir en el simulador. Acabo de tener que eso pasó un par de veces. Entonces ahora que tenemos las imágenes seleccionadas, sigamos adelante y corremos de nuevo el iPhone cinco, y ahí vamos. Y mira esto. No hay alias ing. Es bonito y suave como se puede ver, y voy a guardar esta imagen aquí para que podamos compararlos aquí. Voy a llamar a esto. Sólo nos llamaremos cinco guión para llamar al viejo 5-1 Ok. Y voy a tirar de estos aquí y hacer una comparación. ¿ De acuerdo? Entonces lo que hice fue que acabo de sacar las capturas de pantalla de antes y después. Por lo que en el lado izquierdo. Como puedes ver, hay muchas líneas dentadas alrededor de este borde. Esto es mediante el uso de esa imagen grande, enorme y tener el iPhone Skela abajo cuando usamos las dos X Y cuando usamos las imágenes uno
x dos x y tres x y las escalamos hacia abajo sabe cómo es todo suave. Se ve muy bien. OK, Y si estás pensando quizá los bordes de aquí se vean un poco borrosas. Bueno, sólo
se ven un poco borrosas porque estoy acercado aquí en Photoshop. Ampliado extra para que puedas ver la diferencia. Pero se ve bien. Se ve muy bien. Por lo que ahora se puede ver la diferencia antes y después. Lo que quiero hacer ahora es mostrarte que también se ve muy bien en un tamaño de pantalla más grande, así que voy a abrir el código X y detener el simulador. Y esta vez cámbialo por iPhone six s más el papi grande. Y ahí está. Se ve fantástico. OK, si acabamos de usar la X, se vería realmente borrosa. Y para mostrarte bien para mostrarte cómo sería. Para que sepas lo que No dio. Voy a borrar las dos X y las tres X, y voy a reconstruirlas. Y debes notar que está muy borrosa ahora en su iPhone six plus. Mira eso. Entonces reglas de pulgar bien, crea tu imagen al tamaño más grande y luego dimensionarla. Significado, Retrocedamos. Regla número uno primera regla del iPhone Development Club es que creas un lienzo cualquiera que sea programa que usaste para el tamaño más grande que estás apoyando. Entonces en nuestro caso, iPhone seis más Regla dos. A medida que agarres tu imagen, colócala en ese lienzo. Por lo que se ve sobre el tamaño que quieres. Está bien. Y luego regla tres. Esta exporta ese tamaño de imagen más grande en una X y dos x tamaños además de los
tres impuestos especiales originales para luego llevar esos al programa para que funcione en todas las diferentes resoluciones de pantalla densidades de pantalla. Entonces así es como lo haces bastante guay. Y sólo que no te quedan con la forma equivocada de hacerlo. Pondré estos de vuelta aquí a X y tres X, y se ve genial. Entonces así es como lo hacen, chicos. Mark Precio aquí Deb pendientes dot com Nos vemos más tarde.
116. Cuenta de Apple Developer de la cuenta,: Oigan, ¿qué pasa, todos? Mark pricier pistas dot com Hoy vamos a hablar de tener lista la tienda APP para, así que adelante y ve a tu cuenta desarrolladores apple dot com Ahora, probablemente ya
te hayas inscrito para esto. Acude al centro de miembros y ah, inicia sesión aquí y esto es lo que queremos. De acuerdo, así que aquí está el centro de miembros. Ahora mismo. hecho de que formes parte del centro de miembros no significa que realmente puedas crear siestas de
iPhone y en la tienda APP. Para hacer eso, debes registrarte como desarrollador de apple registrado en el en la app store. Y así, um, tienes que pagar 99 dólares para hacer. Son 99 dólares al año. Esto te permite, Teoh profesionalmente. ¿ En serio? Saps del absoluto Cuando quieras. Cuando llegue el momento en que quieras subir la siesta, mejor,
uh, uh, engranar la pared ya y prepárate para pagar a Apple 100 dólares porque son 100 dólares
al año si quieres liberar APS. Entonces, uh, aquí está justo aquí. iTunes conectar. Esto es lo que buscamos. Um, y, uh, si
acaso, eso no está apareciendo en tu pantalla. Um, tecleemos en desarrollador registrado de Apple. ¿ De acuerdo? Y vamos a ver si vamos eligiendo una membresía. Vea qué sucede cuando vamos a este sitio web aquí. Nunca había sido más fácil desarrollarse para todas las plataformas. Bloque de burbujas, comparar membresías. De acuerdo, aquí vamos. 99 dólares al año. Membresía. Um OK, así que eso es todo. Vaya a esta página aquí mismo. Podrás aprender sobre la inscripción, y te llevará. Tenemos que irnos. Adelante y pasa por el proceso de inscribirte como desarrollador de apple pagado
desarrollador apple . Está bien. Tienes que pagar los 99 dólares. Inicia tu matrícula. Aquí mismo. Entonces aquí está el desarrollador eurail dot apple dot com slash programas slash inscríbase Inicia tu inscripción ahí te da todo lo que necesitas. Está bien. Ahora puedes inscribirte como individual o rol como organización ahora un individuo, dependiendo de en qué país vivas. Estados Unidos. Tienes que usar tu número de seguridad social. También se puede inscribir es organización. Pero sólo tienes que saber que si haces eso, tienes que conseguir un número de Dunnes y Bradstreet. Toma algo de tiempo. Podría tardar un par de semanas en hacer todo este proceso. Entonces solo para que lo
sepas, podrías hacer cualquiera o, um y así ir y hacer ese video posit hasta que estés listo para irte hasta que estés oficialmente registrado y luego volver. Bienvenido de nuevo. Eres como si nunca hubiera ido a ningún lado. Bueno, yo no fui a ninguna parte, pero ojalá lo hicieras. Entonces está bien. Entonces volver a nuestro desarrollo de un apple dot com Una vez que tu signo de que deberíamos ver este iTunes conecta tu puedes hacer clic en él, y te va a llevar a tu portal iTunes connect donde realmente puedes administrar tu APS. Está bien. Desarrollador a apple dot com Que esa membresía gratuita que te permite desarrollar es diferente a poder ir a iTunes connect y hacer un pago, um, ¿qué es realmente iniciar sesión? De acuerdo, así que ve a iTunes, conéctate en apple dot com. Ahí es donde vas a administrar tus aplicaciones. Firmas ahí y luego, uh, entonces estás bien para irte. Tienes todo lo que necesitas aquí. Entonces aquí vamos, cargando. Ahí vamos. Quiere que revise algunos acuerdos. Todavía no he actualizado mis acuerdos. Han hecho algunos cambios en su jerga legal y todo eso. De acuerdo, entonces Así es como luce el portero. Um, esto es genial. IOS nine aún no está fuera en ese momento este video, pero te permite invitar a probadores incluso a tu ábside beta nueve del IOS, que es realmente genial. tan cool. Aquí tienes tu análisis APS. Ya sabes, uh, Analects dentro de tu app. Cosas que están pasando que puedes rastrearlo vende y tendencias, por
supuesto. Pagos de reportes de finanzas, usuarios
publicitarios y rollos que puedan acceder a iTunes connect. ¿ Quiénes son tus probadores? Cosas así. Acuerdos, etcétera. OK, vamos a entrar a mi APS. Estos son algunos APS más antiguos y construidos hace un tiempo. Esto hacen que un muñeco de nieve en realidad consiguió buenos $500,000 lo cual era genial. Este es mi primer paso aquí. Esta caída venganza como en 2009. Es terrible. Absolutamente terrible. La mayor parte de la construcción alcista que construyo para otras personas s o. todos modos, cosas
cool aquí. Entonces estamos dentro. Eso es todo en lo que te estoy mostrando que estabas. Todo está funcionando. Puedes seleccionar tus cuadros de mando y cosas desde aquí. Y así es como te registras Es un desarrollador de apple pagó desarrollador de apple y sigamos adelante
y pongamos todo lo demás listo para que podamos subir
117. Certificados de desarrollo: Oigan, ¿qué pasa, todos? Mark Precio aquí jabones sordos dot com. Y hoy vamos a hablar de prepararnos. Podemos empezar a distribuir APS a la tienda APP o distribuirlas a otras personas en absoluto , o incluso simplemente a construir para tu dispositivo. Uh, así que voy a tirar de código X abierto aquí y sólo por conocimiento histórico. Cuando salió por primera vez la tienda APP, desplegar una APP fue la mayor pesadilla del mundo. Ahora, aún así, con eso dicho, Apple sigue siendo bastante infame por tener un proceso de implementación y revisión muy intenso por su ausente no casi tan fácil como Google play u otras plataformas. Pero obtienes cosas realmente de alta calidad. Pero Apple es muy grande en seguridad, y así todo esto se trata de seguridad. Entonces cualquier problema que estés experimentando tiene que ver con que quieran mantener las cosas seguras. Querían mantener su plataforma, cosas así. Pero te voy a explicar cómo hacerlo para que no tengas que pasar por todos los
problemas por los que pasa mucha gente y en realidad he publicado en la tienda APP. Al menos 30 APS yo mismo estuvimos en realidad a través de este proceso. Entonces te voy a dar lo mejor de lo mejor. De acuerdo, entonces elige el proyecto que quieres subir a la tienda APP. De acuerdo, Um, voy a hacer clic en el escaparate de las pendientes de muerte que construimos, ¿de acuerdo? Y así si hacemos clic en nuestro pequeño ícono azul por aquí, Muy bien, Y entonces si
miramos justo aquí, necesitamos tener un equipo aquí. A lo mejor tienes un equipo aquí. A lo mejor no. De acuerdo, así que el mío. No tengo uno ahí,
pero el tuyo podría decir que ninguno. Está bien. Y así hay algunas cosas que tienes que hacer para prepararte para poder construir en tu dispositivo así como Teoh publicar en la tienda APP. Y tú, como acabas de decir que sé que me estoy repitiendo. Entonces sigamos adelante y empecemos. Así que, uh, salgamos de ahí y sigamos adelante y abramos. Google Chrome. ¿ De acuerdo? Y adelante y ve al desarrollador dot apple dot com. Inicia sesión con la cuenta con la que creaste una cuenta de apple. Selecciona a tu equipo. Si tienes más de uno, probablemente no
lo hará porque eres nuevo, y, uh, me
va a iniciar sesión. De acuerdo, entonces de qué queremos hablar de Certificados, identificadores y perfiles. Y ahora mismo, en este video, sólo
estamos hablando de certificados, ¿de acuerdo? ¿ Y qué es un certificado? Acabo de hacer clic en eso, por cierto, si no lo sabías,
OK, OK, entonces y luego volver a hacer clic en certificados Por aquí en el lado izquierdo. De acuerdo, Uh, esto de aquí, déjame volver. Será mejor que lo explique aquí o no, si no se carga. Entonces esta pantalla principal aquí, esto dice las diferentes cosas que tienes disponibles para ti en tu desarrollo apple dot com certificados de cuenta, identificadores y perfiles. Aquí es donde vas a crear ideas de app para APS que vas a hacer Es donde pra vision tus AP para que puedan ser comprobable en dispositivos y certificados Básicamente son lo que te
permiten distribuir aplicaciones. Y puedes hacer eso por saps de Iowa, Mac ups y extensiones de safari. Vamos a hacer clic en certificados aquí bajo IOS APS y ya tengo que hacerlo. Tengo uno para distribución y otro para desarrollo. Y cómo funciona es que Apple quiere asegurarse de que las personas astutas no estén haciendo cosas malas con sus productos de software, distribución, etcétera. Y entonces lo que hace un certificado es que te permite atar tu computadora específica. Está bien. Tu computadora específica, Teoh, Um, tu, uh, cuenta de
manzana. Para que puedas distribuir cosas para poder distribuir APS para que no puedas simplemente, por ejemplo, crear un certificado y luego dárselo a tantas personas como quieras. No va a funcionar. Está atado al llavero de tus computadoras específicas, y hay formas de evitarlo. Pero solo tienes que saber que está atado a tu computadora específica. Entonces digamos que vendes tu vieja computadora con la que has estado subiendo adaptador APS y gusta, me
gusta,solo voy a usar mi nueva computadora y hacerlo bien, de
repente, eres certificados ya no funcionarán. Vas a tener que revocarlos y crear otros nuevos para tu nueva computadora. De acuerdo, Así que cosas muy importantes. Entonces no vas a tener nada justo aquí, así que quiero que hagas es hacer click en el signo más. Está bien. Bajo Recordar, Bajo certificados estaban bajo todo bien. Y el 1er 1 que quieres es el desarrollo de APP de Iowa. vas a necesitar para que realmente puedas construir a tu dispositivo. Por lo que el desarrollo de aplicaciones IOS. Vas a hacer clic en eso y luego desplázate hacia abajo y haz clic. Continuar y habla de crear un archivo CSR. De acuerdo, una solicitud de firma de certificados. Y, um, así es como va a atar tu computadora a tu cuenta. Y así lo que queremos hacer es hacer click continuar, y luego te dice qué hacer. Solo te voy a mostrar qué hacer Para que no te preocupes. Así que hacer comando más espacio para tirar de abrir el foco, su recon, o puedes ir a tu buscador aquí. Lo haremos manualmente una vez. Una sola vez. No volveré a hacer esto porque este es un largo camino. Haga clic en su buscador. Entra en tus aplicaciones. Está bien. Y en tu carpeta de aplicaciones, puede
que tengas durante las cosas para mí, pero aun así ambos deberíamos tener una carpeta de utilidades. Y estamos buscando este aquí mismo llamado llavero access dot App. De acuerdo, doble clic en eso. O por supuesto, puedes hacer el acceso al llavero del espacio de mando, y aparecerá ahí mismo. De acuerdo, Así que haz doble clic en tu acceso a llaveros. Y este es el llavero que almacena claves y valores en tus cosas de seguridad informática. Entonces es importante. ¿ Querrías hacer es asegurarte de que el registro esté seleccionado aquí mismo. Está bien. Y entonces lo que quiero que hagas es ir aquí arriba a la izquierda, ir al asistente de certificados de acceso a llaveros, solicitar un certificado a una autoridad certificadora y tal vez estés confundido. A lo mejor. Al igual, ¿qué es todo esto que está pasando aquí? Bueno, ni siquiera
sé qué es. Hay tanto. Hay tanta basura tratando con los certificados e identificadores y claves y
encriptación A s y todo tipo de cosas es que no necesitas preocuparte por eso. Sólo tienes que seguir estos pasos y estarás absolutamente Bien. Entonces, uh, guardar en disco haga clic en eso. Déjame especificar, guardar su información y seguir adelante y poner tu correo electrónico en. No te va a mandar un email ni hacer nada, ya sea que solo lo vincule al certificado y haga clic. Continuar. Por lo que esto no tiene que ser lo mismo que lo que hay en tu cuenta de Apple. Podría ser cualquier cosa, solo que realmente no importa. Esto es lo importante aquí mismo. Y vamos a guardarlo en el escritorio haga clic, guardar, y luego 2048 bits se dicen es lo que queremos. Está bien. Y luego haz click hecho, y lo que verás es que ahora está en tu escritorio justo aquí o donde esté el tuyo. Uh, y así tenemos nuestro certificado. Ahora vuelve a tu portal aquí, ¿de acuerdo? Y aquí hay algo realmente importante. Si estás teniendo algún problema con Google Chrome o con Firefox en la página web de Apple, es muy común tener problemas. Entonces te safari. En realidad apoyan el safari. 100% sorpresa, sorpresa, propia creada por Apple. Pero de todos modos, si tienes algún problema al subir, elegir archivos, cualquiera de estas cosas de aquí, adelante y usa safari porque nos va a fluir a trabajar. Y algunas cosas simplemente no funcionan en Google, Chrome y Firefox. Y así fue como Apple lo hizo. Entonces OK, estamos en la pantalla, haz clic en elegir archivo y ellos van a tu escritorio y seleccionan el archivo que acabamos de crear entumecimiento como este. Está bien. Y lo que va a pasar es que va a generar cuando hagas clic. Genera aquí mismo. Se va a generar un nuevo certificado. De acuerdo, no
voy a hacer eso, acuerdo? Porque ya tengo mis certificados, y no quiero ningún problema. Uh, Apple y Exco pueden ser finicky con los certificados y los perfiles de aprovisionamiento. No te metes. Entonces lo que quiero que hagas, OK se hace clic para generar botón, y va a generar el archivo, Está bien. Y luego te va a permitir descargar ese archivo, ¿de acuerdo? Y tal vez yo sólo debería hacerlo. Yo sólo lo voy a hacer sólo por ustedes chicos. De acuerdo, Aquí está. Entonces aquí hay un certificado que acabo de crear. ¿ Todo bien? Hago esto por ti a expensas de mi cuenta. De acuerdo, entonces tienes tu archivo click hacia abajo. Está bien. Como pudiste ver, está justo ahí. Ahora, lo que puedes dio es que solo puedes hacer clic en este archivo, y lo que va a hacer es que lo va a cargar en tu llavero. Y básicamente, va a decir ahora puedes desarrollar APS y distribuirlas en tu dispositivo así como en tu punto en tu dispositivo. Sólo porque o los dispositivos que sean aprovisionados porque esto no es una especie de distribución de la misma. Este es un certificado de desarrollo. Entonces si voy al lado izquierdo aquí,
debiste haber descargado esto, debiste haber descargado esto, y solo podrías hacer doble clic en él o hacer clic en él una vez. Ah, desde el descargador de Google chrome aquí, se cargará en tu llavero. Está bien. Y además, debes notar si vas aquí a tus certificados y haces clic en todos, vas a tener un certificado nuevo. OK, sólo
tendrás uno. Ya tengo que tener aquí ahora. Muchas gracias. Y, uh, así que tengo que aquí y básicamente, este es un certificado que dice, Hey, yo podría desarrollar y tú podrías tener múltiples certificados. Hay un límite. No sé qué es, y entonces quizá sean cuatro o cinco. Pero de todos modos, ahí hay un certificado, y ,
uh, también
puedes, si no lo quieres, puedes revocarlo, ¿de acuerdo? Y ah, eso está bien. Voy a deshacerme de la mía sólo para demostrarle que escribió revocar el certificado
lo invalidará en cualquier servicio relacionado o perfiles de aprovisionamiento que utilicen este certificado puede verse afectado. De acuerdo, bueno, ni siquiera lo
estamos usando, así que voy a deshacerme de él de nuevo como era ahora. De acuerdo, Así que has descargado el tuyo, ¿de acuerdo? Y lo que quiero que hagas ahora es ir aquí a tu código ex, y te voy a mostrar una forma más que puedas después de haber creado tu certificado en
el sitio Web en lugar de descargarlo y hacer clic en él de otra manera, puedes realmente hundirse, y creo que esta es la mejor manera de hacerlo. Por lo que la primera forma es descargar el certificado e instalarlo haciendo doble clic en él de la mejor manera. Porque a veces eso no refresca automáticamente tu código ex, y tienes que ir a cavar, averiguar qué está pasando las mejores maneras de hacerlo. Tener código X open goto X code goto preferencias goto y cuentas click. De acuerdo, si esto está vacío para ti aquí mismo. Está bien. Si tu cuenta no está aquí, haz clic en el signo más y haz clic en Añadir apple i d. Y lo que quieres hacer es agregar tu nombre de usuario y contraseña para tu cuenta de desarrollador toe apple dot com. Uh, um, o cualquier cuenta que usaste para registrarte. De acuerdo, súper importante vincularlo aquí mismo y hacer clic en Agregar después de que se agregue. Si tus credenciales son correctas, verás la pantalla aquí se buscará. Parecía así y estás tan probablemente sólo tienes tu nombre aquí. Tengo que hacerlo porque tengo múltiples cuentas con las que trabajo. Pero deberías ver algo aquí a la izquierda con tu cuenta. Y entonces deberías ver tu nombre aquí. Lo que quiero hacer es hacer doble click tu nombre y se va a cargar, acuerdo? Y esto es realmente genial. Simplemente hunde lo que hizo. ¿ Fue solo hundir tu cuenta? Yo solo hundo tus certificados y cosas así, y Ah, esto es un montón de certificados que tengo. Tengo un montón de APS y ah, esto es que Esta es en realidad nueva característica en el código X siete. Descargar todos. En realidad nunca lo había visto antes. Vamos a darle una oportunidad. De acuerdo, ¿y qué? Creo que simplemente lo hizo, Porque en el pasado simplemente se hundiría automáticamente. ¿ Qué? Creo que solo es que lo descargó a mi computadora s o lo lo instalaría para ti. Entonces esta es la otra forma de hacerlo. Y la razón por la que digo esto es una mejor manera de hacerlo porque garantizas que lo que ves aquí es lo que tienes. Y entonces, um, lo que deberías ver en esta pantalla aquí está en Lee, probablemente um, éste o éste? Es posible que no tengas ninguno de estos, en realidad. Aquí puede que solo tenga desarrollo de IOS. Eso está bien, porque eso es todo lo que creamos. Pero ahora estamos completamente hundiendo Tok. Y así si quieres empezar a desarrollar APS, aún no
estamos del todo ahí. ¿ De acuerdo? Necesitamos crear un perfil de aprovisionamiento para nuestra aplicación específica. De acuerdo, así que tienes certificados que dan permiso a tu computadora para destruir distribuciones ups, Pero hasta que la aplicación específica real en la que estamos trabajando tenga un perfil de aprovisionamiento, no
podemos hacer nada. Pero no estamos hablando de perfiles de aprovisionamiento. Sólo que seguimos hablando de certificados para volver a la página web. Y ahora lo que queremos hacer es crear un certificado de App Store. Así que da click a todos aquí y deberías tener uno. Este es el desarrollo de Iowa, pero note cómo en mente no tengo la distribución de distribución de Iowa significa que usted lo está
distribuyendo. Mm. Está bien. Entonces lo que quieres hacer es justo aquí. Haga clic en producción. Está bien. Y exactamente lo mismo. Haga clic en el signo más. Está bien. Pero esta vez, nota cómo los desarrollos se desvanecen porque su producción esta vez klik app store y en gancho. Entonces lo que estamos diciendo es en el con el desarrollo, le
damos permiso a nuestra computadora para distribuir APS localmente en nuestro propio dispositivo. Pero ahora, con el certificado de producción, estamos diciendo, Hey, vamos a dar la capacidad de distribuir este ad hoc, lo que significa que se puede enviar a través de Internet a otras personas. Pueden descargarlo, o podemos enviarlo a la tienda APP por dos razones. Una es que puedes publicar tu app en la tienda APP, o también puedes publicar al absoluto para las pruebas beta. Por lo que el resumen ahora gestiona las pruebas beta y el envío de la tienda AP al público y
las pruebas beta son nuevas. Es su nuevo programa de vuelo de prueba. Sólo ha estado alrededor de tres o cuatro meses, así que está bien, haz clic en este de aquí. Necesitamos la capacidad de poder presentarnos a la tienda APP porque vamos a estar haciendo esto más adelante y luego dar clic en Continuar. Va a pedir exactamente lo mismo. Entonces lo que dio es que sólo ese mismo que ya creamos aquí mismo que debería estar bajo escritorio. Entonces si eliminaste para volver atrás y conseguirlo, sigue
adelante y elige el archivo y luego,
uh, uh, vuelve
a pasar por el proceso, descárgalo e instálalo. O de nuevo ve aquí a las preferencias de código X. Asegúrate de que tus cuentas se agreguen aquí, doble clic aquí y luego debería aparecer justo aquí, y luego puedes descargarla. De acuerdo, creo que esa es la mejor manera de hacerlo. Y así ahora tenemos un certificado de distribución en nuestra computadora y un certificado de desarrollo , lo que significa que ahora nuestra computadora está aprobada para distribuir y desarrollar APS. Y sé que es raro. Es un proceso no tiene sentido. Pero eso está bien. Eso es lo que tienes que hacer. Eso es lo que dice la Manzana de Dios. Y vamos a seguir adelante y cortar este video y pasar al siguiente, que es aprovisionar nuestra aplicación para que realmente podamos desarrollarnos. De acuerdo, Tienes que poder aprovisionar en tus, uh, dispositivos con el edificio absoluto, porque Apple no te permite instalar APS en dispositivos que no están aprobados. Entonces, de todos modos, vamos a llamarlo
118. Perfiles de desarrollo: Oye, Mark. Pricier muertes espera dot com y hablemos de perfiles provisionales. Por lo que en el último episodio emocionante, hablamos de obtener certificados configurados para que nuestro equipo pudiera ser reconocido como desarrollador y distribuidor
registrado de APS. Pero ahora necesitamos hacer conjunto de perfiles de aprovisionamiento. Y si vas a volver a desarrollador, no apple dot com y vuelves a nuestro portal aquí, OK, el fondo. Vas a ver algo llamado perfil de aprovisionamiento. Entonces voy a hacer clic todo bien, y él es un muy viejo Así que los perfiles de aprovisionamiento básicamente dicen, Hey, tienes una aplicación específica que estás desarrollando. ¿ Qué dispositivos y usuarios puedes construir también? Entonces cada dispositivo cada iPhone tiene lo que se llama un tú i d Un identificador único que identifica ese dispositivo y no puedes instalar una app en el
teléfono de alguien a menos que esté registrado en el perfil de aprovisionamiento. De acuerdo, entonces hay algunas otras cosas que tenemos que hacer antes de que incluso podamos tener un
perfil de aprovisionamiento , sin embargo, porque recuerda cómo Just dijo un perfil provisional dice qué dispositivos continúa qué APs Bueno, aún no
hemos creado una app, y eso lo hacemos creando una app I d Así que el primer paso está por aquí en el lado izquierdo. Crea una app i d ideas de app klik aquí. Tengo un montón aquí de muchos proyectos diferentes en el pasado. Muchos, muchos proyectos diferentes para hace muchos años. Wow. Y lo que quieres hacer es hacer clic en el botón más. Vamos a volver a crear uno nuevo. Lo que estás haciendo es que estás creando una app I d para tu app. Está bien, vas a querer una nueva app. I d por cada aplicación individual que creas. De acuerdo, así que antes de que puedas presentarte a la tienda de aplicaciones antes de que incluso
puedas probar esto, tienes que crear siesta I d Y esta descripción aquí mismo es solo un nombre. ¿ De acuerdo? Lo que quieras. Nada. Realmente no importa. Entonces voy a En mi caso, voy a decir Escaparate de Dev Slopes, ¿de acuerdo? Y está bien. Y después d prefijo Ok, hay un equipo poderoso, hay un montón entero de otros. Realmente no importa. Solo tienes que usar el valor predeterminado cuando te dé bien. Y, uh, lo que puedes dio es que puedes crear una app explícita I d o puedes crear una genérica que te
permita construir a múltiples APS. Te recomiendo que construyas una app explícita. D construyo uno para cada aplicación individual. Um, para que pueda identificar explícitamente
cuál, a qué APS pertenece este perfil de aprovisionamiento. Está bien. Y así en nuestro caso, y te recomiendan un estilo de nombre de dominios inverso es que puedes ver aquí. Entonces en nuestro caso, vamos a hacer el escaparate de pendiente sorda o lo que sea aplicación que estés haciendo, Y alguien dijo, com dot sordos pendientes punto escaparate. De acuerdo, así que este es el paquete I d. Y, uh, por cierto, esto es lo que tu paquete I d necesita estar en tus ex codas. Bueno, dos. De acuerdo, así que aquí está nuestra aplicación. I d. Y se ve bien y bien, por lo que los servicios de APP. Por lo que estos servicios aéreos que están asociados a tu app I d centros de juegos automáticamente incluidos. Si estás construyendo aplicación que la atención sanitaria, necesitarías un kit de salud selecto. Lo que tienes que hacer es hacerle saber a apple qué servicios has incluido en tu app. De acuerdo, Incluso si comienzas a desarrollar codificación, puede
que esté funcionando su retardo local en tu dispositivo o lo que sea. Um, o discúlpame localmente en tu código. Es edificio Fine. Pero hasta que actúe hasta habilitar estos servicios, no
funcionará. Entonces lo que quieres hacer es seleccionar las que vas a usar en nuestro caso, no
será ninguna de estas. Los comunes bien, son notificaciones push. De acuerdo, Um, pagaré una cosa nueva. ¿ Eso viene algo? Um, vamos a ver aquí. Yo nubezco es un nuevo sistema. Uh, lo que es realmente genial es, uh, um nube con el nuevo kit de nube ah IOS nueve se está volviendo realmente genial. Y vas a ver más APS de eso. Por lo que tipo de te permite construir tu propio respaldo y servidor. Algo así como hacemos la base de fuego, pero usando la nube kip. Entonces es como que se enfría y viene. No hay un montón de dos Tories fuera por eso. Sin embargo, esos podrían ser difíciles de encontrar. Apoyar la atención domiciliaria. ¿ Esa es tu domótica? Um, ninguno de estos un realmente grande excepto en aplicación. Las compras están en un compras las cuales son preseleccionadas ahí y notificaciones push. A lo mejor la manzana paga. Si eres requiere que no necesitemos ninguno de ellos, lo cual es realmente bonito. Entonces haga clic en continuar. Ok, Este es el lapse último paso antes de crearlo, Ok. Y luego solo tienes que hacer clic en enviar y las inscripciones se completan. Ahora tenemos una siesta. Idea. Voy a dar click. Hecho. Entonces ahora, si voy a AP,
me ds, um, um, creo que son arcos alfabéticos llamados show Sordo Slope escaparate en algún lugar ahí está. Eso es nuestro ahí mismo en el fondo aquí. Y, uh, ahí está. Cosas geniales. Y así tenemos nuestra idea de APP. Ahora lo hemos dicho Ok, lo
estoy creando. Entonces lo que quieres hacer ahora es decir OK, ahora que el ábside creó, necesitamos escoger algunos. Uh, necesitamos poner algunos dispositivos dentro de providencia provisional. Pero, ¿adivina qué? Todavía no tenemos ningún dispositivo. De acuerdo, Así que digamos que tienes un montón de amigos que quieres probar tu app. Ya has creado tu app I d Así que lo siguiente es que vas a agregar dispositivos. Entonces mira, aquí mismo donde hay una pestaña llamada dispositivos. De acuerdo, um, puedes agregar dispositivos aquí ahora, y, uh, básicamente, apple te da alrededor de 100 al año que puedes usar. Se puede restablecer OK, pueden tener. Creo que puede ser más en realidad ahora, pero básicamente, eh, 100 dispositivos. Y una vez que están ahí, están ahí como, un año. No puedes deshacerte de él. De acuerdo, um y así hay estos identificadores únicos aquí. Esto es lo que identifica tu dispositivo específico. Y así, como dije, para que construyas tu app a un dispositivo y pruebes en él tu perfil de aprovisionamiento, que aún no hemos creado, debes tener una lista de los dispositivos que quieres probar contra esa app I d que cuando acabamos de crear. Entonces, ¿cómo se obtiene un dispositivo? Te d i d Así que esto es lo que vas a necesitar para dio por ti mismo. Y es para todos tus amigos que quieres probar tu app. Está bien, se lo vas a decir. Muy bien, chicos, necesito que me cuentes. Sé que esto va a ser un proceso doloroso, pero así es como lo haces. Entonces vas a abrir iTunes, como, así, como iTunes. ¿ Qué? De acuerdo, entonces enchufa tu teléfono. Asegúrate de que tu teléfono o tu iPad estén enchufados, y entonces vas a ver el ícono aquí mismo. De acuerdo, haz clic en él. Y lo que vas a hacer es que vas a ver esta pantalla aquí mismo. Está en este resumen, acuerdo? ¿ Y ves este número de serie? Eso no es lo que queremos. Entonces lo que quiero que hagas es darle click y cambia a tu tú d yo d ¿quién? Magia. Estás como, he estado usando la vieja época de i Jones y no tenía ni idea de qué hacía eso. Oh, bueno, ya
sabes. Entonces este es tu tú tu tu deidad. A lo mejor te estás preguntando, ¿cómo lo copias? Bueno, aquí hay algo interesante. Si justo ahora mismo sin hacer clic ni hacer nada. Si solo presionas comando más C, se va a copiar. Y si no me crees Mira, mando. Verás, solo
voy a darle un ritmo, y está justo ahí. Comando V. Entonces con cuando haces clic en ese solo presiona comando, ¿
ves? Y sin copia. De lo contrario, puedes hacer clic derecho en él e ir a copiar. Está bien. Lo mismo. Ahí están nueve de la u T i. T. Así que todos tus amigos que quieran probar tu dispositivo o ejecutar una prueba tu app Ok. En estos fueron considerados probadores internos. Estas son personas en las que confías para probar una y otra vez. Manzanas testifican también tiene lo que se llama prueba beta, que no requiere este proceso. Pero las pruebas beta requieren Ah, proceso de revisión de aplicaciones
en miniatura antes de que pudiera ponerse en marcha. También lo son tus amigos de confianza. De acuerdo, ahora te han enviado. Tú ahí. Tú d I ds, vuelve a tu portal. Eres como, OK, tengo todos sus dispositivos ahora lo que necesito hacer Bueno, lo que necesitas para dio me va a hacer limpiar todos estos aquí. Eso está bien. Uh, vamos a aclarar mi lista. Voy a deshacerme de todos ellos. Por lo tanto, selecciona los dispositivos que deseas llevar a esta membresía o no les gustan los dispositivos conjuntos para moverse. Bueno, um, iPhone seis oro. Mejor me quedo con eso. Mejor. Quítate esto. Vamos a deshacernos de todos los que no son míos. Nos quedaremos con mi iPad y mi iPhone. No sé de quién es ese. Uh, está
bien. Suficientemente bueno para mí. Voy a mantener estos restablecidos todos los demás. Yo reconozco estas tostadas aéreas. Uh, y aquí hay algo genial. 100. Apple TV 100. Apple Watch. iPad 97 iPhone. Esto es diferente. Solían ser 100 en total. Ahora tienen 100 por cada uno. Entonces eso es algo genial. Entonces reinicié y esos se habían ido. OK, ahora de vuelta a donde estábamos antes de tener el dispositivo. Yo ds bien para cada uno de nuestros amigos. Entonces lo que quieres dio es hacer clic en el botón más aquí y vas a dar un nombre para el dispositivo. Yo d Bien, así que le va a importar, Sería, ya
sabes, uh, Mark price iPhone seis plus, quiero ritmo mi tu idea ahí mismo. Está bien. Y que también puedes registrar múltiples dispositivos si tienes montones de amigos. Dice descargar archivos de muestra y te muestra cómo hacerlo. Entonces si abro el archivo de muestra aquí, él le siguió aquí, le muestra cómo se supone que debe ser. Por lo que se vería así donde tienes el dispositivo yo d. Y luego el nombre de la persona para que eso haga que sea más fácil si tienes 20 amigos, lo
están probando y quieres subir todos sus dispositivos. Simplemente hazlo en este formato aquí y luego sube el archivo aquí mismo. De acuerdo, entonces, uh oh, perdí mi look It Así que intentemos eso otra vez. Mark
Price, telefono seis más pegado y continúo. Está bien. Confirmado que Esto es correcto. Sí, lo es. De acuerdo, ahora, mío no funcionó porque ya he hecho esto. Tu debes funcionar porque son nuevos y ya está. Acabas de registrar un dispositivo. Entonces haz eso para todos tus amigos que quieran probar tu aplicación específica, ¿de acuerdo? Y sólo hay que añadir ahí dispositivos. Una vez puedes usar sus mismas ideas de dispositivos para múltiples APS. Pero hay que hacer al menos un punto en el tiempo. Entonces ahora que tenemos dispositivos,
OK, OK, pero ahora podemos hacer es crear un perfil de aprovisionamiento. Y así que adelante y vaya a los perfiles de aprovisionamiento por aquí. Y al igual que teníamos un certificado de desarrollo y un certificado de distribución. OK, aquí
tenemos lo mismo. Contamos con distribución, progreso, nuevos perfiles y perfiles de aprovisionamiento de desarrollo. Entonces hagamos el desarrollo One first click the plus bite, y queremos desarrollo de apps IOS. Está bien. Y aquí está la parte importante. Es por eso que creamos la app I d Primero la tienes justo aquí. De acuerdo, ve a buscar el que hiciste eso. Acabamos de hacerlo. Escaparate Dev Slope Ahí está. Por lo que de nuevo, el perfil de aprovisionamiento hace coincidir los dispositivos con una APP real. Idea dice, Hey, estos dispositivos disputan esta aplicación. De lo contrario, el código X no lo permitirá cuando lo estés distribuyendo, o incluso si envías una compilación sin tener código X, gente no podrá instalarla. Así que asegúrate de seleccionar tu app. Yo d. ahí. Y, uh, sigamos adelante y pinchemos. Continuar. Y te va a pedir el certificado que quieres usar. Bueno, creamos un perfil de aprovisionamiento de desarrollo de aplicaciones, y solo tengo un certificado de desarrollo porque eliminé el nuevo que creé. Entonces este es el que quiero seleccionar tu certificado de desarrollo IOS. De acuerdo, recuerda, certificados te dicen ¿qué computadora? Se pueden desarrollar mapas para distribuir distribución o desarrollo. ¿ Verdad? Esto está diciendo es,
uh, uh, este perfil de aprovisionamiento está ligado a ese certificado. Ok, um y así ese es el que queremos y luego selecciona todos los teléfonos que quieras para poder probar esta app. Si lo están Si no están seleccionados aquí, no podrán probar eso. Sólo recuerda que no están seleccionados aquí en este perfil de aprovisionamiento. No pueden probar tu aplicación y luego hacer clic. Continuar. Nombre del Perfil. A mí me gusta que estos sean muy explícitos. Entonces podría decir Dev Sloves escaparate, uh, desarrollo. O simplemente podrías llamarlo. Simplemente estoy probablemente llamarlo escaparate sordo significado. Es un perfil de aprovisionamiento de dev. Está bien. Y, uh, eso me hace saber que es mi de desarrollo, y voy a dar click. Generar. Está bien. Ahora, podría descargar esto, ¿recuerdas? Pero creo que hay una mejor manera. Uh, solo asegúrate de que estamos bien para ir. Acude a tu código ex y ve a preferencias y haz clic en tu nombre dentro de aquí. Y asegurémonos de que esté aquí si puedo encontrarlo. Ahí está. ¿ Ves? Y ver cómo tiene una descarga. Pero junto a ella Ah, click descargar. Ya está hecho. Estás bien para ir. Hecho. ¿ Lo hizo? Uh Entonces ahora tienes un perfil de aprovisionamiento de desarrollo en tu computadora? ¿ Por qué es importante esto? Bueno, déjame mostrarte. Antes de que no
pudiéramos, no podíamos enviar construcciones a nuestro dispositivo. Pero ahora sí podemos. Y la razón por la que podemos es porque mi equipo ha seleccionado aquí mismo. Y por cierto, um, tal vez tal vez tengas en realidad antes de este video, estás como, he estado construyendo a mi dispositivo todo este tiempo. Y si lo hiciste, probablemente
sea porque por aquí, cuando tú cuando seleccionaste tu teléfono para construir dos quieres tal vez querías probarlo y entonces tal vez seleccionaste a un equipo por aquí o ya estaba seleccionado. Y tal vez solo decía, uh, arreglar problema o crear perfil de aprovisionamiento. Sí, código
X será extra útil para ti y,
uh, uh, crédito creado para ti aquí mismo a través de la app. Entonces si alguna vez ves esa notificación ahí y no quieres pasar por todo el
proceso por el que pasamos no te importa cómo lo llamen en en ninguna de esas cosas. Si solo querías crear lo antes posible, te permitirá que haya como un problema fijo pero en o un gran perfil pero aquí
de vez en cuando. Si te encuentras con algún problema lo cual es realmente cool s
o.Lo que quieres hacer es en tu equipo es seleccionar a tu equipo. Deberías tener solo uno o simplemente elegir el que quieras si tienes varios. Está bien. Por lo que de nuevo, tenemos descargado el perfil de aprovisionamiento de desarrollo. De acuerdo, entonces ¿cómo decimos hey, ejecutar esta aplicación con este perfil de aprovisionamiento? Exco? Todavía no lo sabe. Entonces lo que hacemos es construir ajustes. ¿ De acuerdo? Por cierto, esto no es cosa oscura. Yo estoy enseñando. Haces esto una y otra vez y una y otra vez y una y otra vez. Una y otra vez. Se acabó. ¿ Cuántas veces he dicho más? Eso es lo que vas a hacer es una y otra vez. Entonces esto es algo real que estás haciendo todo el tiempo. Cosas muy aburridas, pero es muy importante. Así que haga clic en configuración de compilación. Y, uh, lo que buscamos es firmar código, ¿de acuerdo? Todo este proceso del que he estado hablando se llama código firmando su código de
manera segura. OK, entonces hay modo de depuración y hay modo de lanzamiento por el bien de este video en este curso, realmente no te importa en este momento. De acuerdo, um pero lo que queremos dio es ir a nuestro perfil de aprovisionamiento aquí, y ,
uh podrías seleccionar automático, y probablemente funcionará. Vamos a seguir adelante y darle una oportunidad. No lo vas a ver correr en mi teléfono porque está en mi teléfono, y yo estoy aquí. Pero aquí hay un pop up. ¿ Quieres permitir esto Mi llavero siempre permite. Siempre quiero que mi teléfono en mis certificados permita que ocurra esta firma de código. Entonces estoy construyendo. Yo estoy construyendo lo que viene. Compilando a Teoh. De acuerdo, parece que esto va a funcionar. Y así, al configurarlo en automático, uh, sólo
va a encontrar el perfil de aprovisionamiento adecuado para usted. Sí, funcionó. De acuerdo, entonces va a Oh, y por cierto, puede
que te den si puedes ver esto, puede te den un ícono que diga, ¿Confías en esta computadora y quieres decir que sí? Um bien. Y así se sintió en realidad, y esto es lo que te iba a decir. Por lo que automático no siempre funcionará a menos que todo esté bien para ir. Y así déjame mostrarte algo. Haga clic en Aceptar? Si no funcionó y, uh, cambio de automático. Bajemos, Teoh, Nuestro escaparate uno Si puedo encontrarlo. ¿ Te lo he dicho? Construido mucho APS? Uh huh. Está bien. Eres como, no bromeas. Eso es correcto. Sé de lo que estoy hablando. Um, bien. Y para aquellos ustedes que piensan que yo no, ya
sabes, probablemente no. Entonces bien, um, ¿dónde está este que busco? Estamos buscando el escaparate de Dev Sloves va a ser doloroso para ustedes chicos. A veces eres como, está justo ahí. Está justo ahí. Pero no te oigo. Y, uh, ahí está justo en la parte superior, realidad. De acuerdo, entonces ahora ha sido seleccionado, y lo que me gusta hacer es explícitamente un conjunto. Mi configuración de construcción. Por lo que bajo liberado justo aquí. A mí me gusta escoger el perfil de Showcase Dev. Exactamente. Entonces lo que hice es que escogí un perfil aquí, Y luego después de que escogí el perfil de aprovisionamiento, establecí liberación en lugar de automática. Dije explícitamente a esto a este perfil de provisión me permite saber que estoy haciendo exactamente lo que se supone que debo estar haciendo. Y recuerda cómo nuestra app D tenía un paquete muy único. Identificar dónde estaba punto tranquilo Deb pendientes que exhiben. Por lo que queremos asegurarnos de que pasemos a general que diga com dot pendientes de muerte que exhiben, lo
cual sí. Entonces voy a seguir adelante y tratar de volver a ejecutar esto y ver si esta vez funciona. El derecho de identificador de aplicación de aplicaciones no coincide con el de la
aplicación instalada estos valores deben coincidir para que se permita una actualización. Arreglemos este problema. Lo que quiero hacer es asegurarme de que estamos ejecutando el esquema correcto. Y así estos esquemas de aire aquí mismo Esta depuración es un esquema, ¿de acuerdo? Y esta liberación es un esquema y el tipo de valor arbitrario del esquema. Pero básicamente es decir, Oye, ¿quieres correr Ah, perfil de
distribución en este juego o quieres correr? Uh, pero solo desarrollo local lo que quieres hacer. Entonces vamos a dar click aquí a Dev Slopes que exhiben aquí tu proyecto e ir a editar esquema. Suficiente, ahí mismo. Mira esa carrera cuando ejecutamos la app. Está tratando de usar debug,
ok, ok, y archive es en realidad lanzamiento. Y así creo que ese podría ser nuestro problema es que estamos tratando de ejecutar en modo de depuración. Cuando ejecutamos, estamos en modo de depuración, y aún no he dicho un perfil de aprovisionamiento en modo de depuración. Entonces sigamos adelante y probemos eso. Voy a cambiar este desarrollador Teoh iPhone aquí. Ahí vamos. Y luego lo voy a hacer voy a limpiar mi proyecto. Voy a ir Teoh edgers aquí. Solía hacer esto con un comandante clave. En realidad no lo he buscado aquí en un tiempo. Entonces ahí está. Por lo que producto limpio. Limpiemos nuestro proyecto. Lo que hace es sólo una especie de limpia parte de la chatarra ahí dentro o restablecer parte de la configuración
interna para que no tengamos ningún problema. Voy a intentar construir y ejecutar esto otra vez haciendo comando más nuestro o haciendo clic Este, uh, este icono de ejecución aquí. De acuerdo, todavía
tenemos un problema. De acuerdo, así que pausé el video. Ya sé, siento, pero lo que pasó es código X y los nueve de Iowa tienen un bicho. Llanura y sencilla. Esto es un bicho. ¿ Qué? Yo quiero que te dio ojos hace en la solución de problemas conmigo aquí, vamos a volver al portal. Está bien. Vamos a ir,
uh, uh, vuelta a nuestro portal aquí mismo, acuerdo? Y cuando te quiero Dio es ir a tu app ID tan justo aquí. Ve a buscar el que creaste. Ahora acabo de resolver este problema y no llegaste a verlo porque lo estaba probando. Pero vuelve a tu perfil de aprovisionamiento aquí mismo. El que creaste y lo que quiero hacer es ir a editar, desplázate hacia abajo y haz clic. Eliminar. Elimina esa app. Yo me deshago de él. Está fastidiada. El código X es un problema ahora, Uh, si esto funcionó para ti, si se construye no hagas esto porque estás bien para ir. Se volvió a tapar en mi máquina. Este es uno de los es uno de los inconveniente de trabajar con software beta. Pero al menos te pones primero y vamos a resolver el problema juntos, y luego te toparás con problemas, incluso cuando no esté invadido. Entonces esta es una buena práctica de todos modos. Entonces lo has borrado. Eso es genial. Ahora vuelve a tu app. Identifica aquí. clic en el signo más aquí creando nuevo y dale un nombre diferente y crea una idea
diferente una diferente esta vez para bajarme del equipo ¿solo escoges uno diferente solo para estar seguro ? Vale, Ahora, lo que también quiero hacer es darle un nombre diferente aquí. Al igual que com dot dev pistas enseñadas, ya
sabes, Dev escaparate lo que sea. Dale un nombre diferente, ¿de acuerdo? Y lo que quiero que hagas es este nombre que le das aquí mismo. Copia eso y asegúrate de que en el lado derecho y tu paquete identifique o un código ex, asegúrate de que eso sea exactamente lo mismo. Y eso es justo ahí en la configuración general de la configuración de compilación en tu objetivo. Entonces asegúrate de que esto sea exactamente lo mismo ¿Es así? OK, tienes tu app explícita. Yo d Tienes tu I d Prefijo. Aquí. Has cambiado todas estas cosas a tu alrededor. Simplemente si tienes este problema, cámbialo. Si no tuviste este problema, casi
termino el,
uh, uh, Flynn Click. Continuar. Está bien. Y luego crea que i d. Luego vuelve a tu perfil de aprovisionamiento tu perfil de aprovisionamiento de desarrollo. Haga clic en desarrollo aquí. Encuentra el que creaste antes de que lleguemos. Y quiero que también borres eso para deshacerte de él. Por lo que no tenemos ningún bichos Dang bugs. Y luego haz clic en el signo más, crea uno nuevo. Siempre tengo desarrollo. Continuar de ahí Deja tu nueva app I d. Ok, y eso es certificado eléctrico. Y luego cuando crea tu perfil, adelante y descárgalo y haz doble clic en él. De acuerdo, Entonces una vez que hayas descargado ese nuevo perfil con la nueva APP yo d y has hecho clic en ella para instalarla y esa app I d ahora es la misma por aquí. Lo has cambiado por aquí. Asegúrate de que tu equipo haya seleccionado. Está bien, ahí mismo. Asegúrate de que el equipo haya seleccionado y ve a construir ajustes. Y luego, en tu perfil de aprovisionamiento, cámbialo al nuevo perfil de aprovisionamiento. De acuerdo, así que si no experimentaste ese problema, genial. Si lo hicieras, espero que esta casa la acabemos de resolver juntos. Acabamos de recrear todo el nuevo proceso en tu contra. Tengo que pasar por él dos veces, y de todos modos, así que pude ahora construir a mi dispositivo después de x abrigos. bichos tontos. Por lo que ahora somos capaces Teoh pudimos desarrollar dos dispositivos que se han registrado. De acuerdo, lo cual es realmente genial. Entonces en el siguiente video, voy a hablar de configurar nuestra aplicación también Está hablando de testers beta trabajando con un perfil de aprovisionamiento de distribución. Por lo que la mayoría de la gente nunca recordará estas cosas en el primer intento. Entonces anticipo que vas a tener que pasar por estos videos unas cuantas veces. Me tomó alrededor de 10 APS subir al absoluto antes de que me quedara atascado por la memoria. Entonces y hay que resolver diversos problemas. tan muy cool. Estamos en el negocio aquí y sigamos adelante y sigamos adelante.
119. Creación de capturas de pantalla de App Store: ¡ Oigan a todos, Mark! Pricier jabones de profundidad dot com Así que quieres poner una siesta en la tienda APP? Bueno, ya
hemos conjunto de se pagan cuenta de desarrollador apple. Ya configuramos certificados. Está bien. Al menos un certificado de desarrollo y un perfil de aprovisionamiento de desarrollo y una piedad de aplicación Y hemos agregado dispositivos. . Por lo que la gente contienda lo absolutamente construido e hicimos algo de manejo de aire de la fijación de errores en ese proceso. Y así ahora lo que queremos hacer es conseguir su app en la tienda APP. Pero no podemos hacer eso hasta que tengamos Capturas de pantalla de la tienda APP va a requerir absolutamente que tengamos capturas de pantalla. Y así si estás construyendo una app que sea compatible con iPhone, vas a tener que obtener capturas de pantalla para cada uno de los dispositivos. No hay que moverte, ¿ acuerdo? Y así adelante y carga de tu app. Cualquiera que quieras. De acuerdo, tengo código X abierto aquí. Sólo voy a sacarlo de la pantalla por un momento, ¿de acuerdo? Y tenemos un simulador aquí. Esto es esto no es un proceso difícil. Y sólo vamos a pasar por cómo tomar Screenshots de la app en las diferentes pantallas que tenemos. Entonces aquí mismo, tenemos un iPhone seis. Vas a necesitar tomar Screenshots para iPhone six para iPhone, six plus para iPhone cinco pantallas y para las pantallas más pequeñas también al iPhone
, cuatro y tres y esas cosas. Entonces aquí vamos. Abre tu simulador, construye tu proyecto, y estamos en el iPhone seis. Ahora mismo, si quieres tomar una captura de pantalla, todo lo que tienes que hacer es mantener pulsado el comando Plus s. Y ahí está nuestra captura de pantalla. Y así voy a renombrar esto a 6-1 Significa que es para el iPhone seis. Pero es el primer escaparate. ¿ De acuerdo? Y entonces sigamos adelante y hagamos que Facebook inicie sesión aquí, ¿de acuerdo? Y voy a confirmar, y me va a iniciar sesión, y no, esto está bien. Aquí está nuestra app. Correcto. Entonces esta es la otra app, o esta es otra captura de pantalla que queremos tomar, así que solo hagamos comando. Plus s. bien, Así que vamos a llamar a este seis dash a porque es iPhone. Captura de pantalla de seis segundos y ah, eso es genial. Dos es lo suficientemente bueno por ahora. Está bien
, tú también. Dos es lo suficientemente bueno. Entonces eso es genial. Todo lo que tenemos que hacer ahora es volver al código ex aquí. Vamos a detenerlo y hagámoslo en el iPhone six plus yo estaba corriendo toma unos segundos aquí y solo sigue Process a través de todas las capturas de pantalla. Si no quieres verme hacer esto, no
tienes que hacerlo. Está completamente bien. Um, solo
estoy presionando el comando tres para hacer la pantalla más pequeña, pero esto es tan pequeño como va a ir. No se ajusta a toda la pantalla porque el iPhone six plus es una resolución tan enorme. Ahí vamos. Comando más cuatro hizo el truco. De acuerdo, entonces hagamos comando s para una captura de pantalla. Y podrías hacerlo desde aquí también. Dos, creo que está en uno de estos menús de aquí. Cómo son solo archivo guardar captura de pantalla. Se puede hacer de ahí a comando s es mucho más fácil. De acuerdo, así que vamos a llamar a esto Ah, seis más dash uno. Y sigamos adelante y Facebook inicie sesión. Eso quiere mis cosas aquí. Um, vamos a probarlo. De hecho, volvamos aquí a la pantalla de inicio de sesión. Will solo para enviar contraseña por correo electrónico, inicia sesión por ahora. Está bien. Vamos sólo va a crear una cuenta, dicen bla en el punto bloqueado com 12345 slog y regístrese. Va a hacer lo suyo. Y aquí estamos, así que eso se ve muy bien. Y probablemente quieras que tus capturas de pantalla sean las mismas para todos los dispositivos. Teoh, tratar de mantener esto cerca es posible. Es decir, puedes y pequeñas cosas. No importa de todos modos. Mándenos. Vamos a llamar a este seis más guión a Esto no es matemáticas. Es sólo el nombre del teléfono. Y vamos a seguir adelante y tirar de nuevo proyecto abridor aquí. Deténganlo. Y yo voy a hacer el iPhone 555 s No importa. Um, ambas
son las mismas resoluciones de pantalla. Sólo necesitamos escoger uno. Sólo diremos que yo de cinco lo voy a ejecutar. Y si estamos apoyando el iPad, hay
que tomar capturas de pantalla del iPad. Si tienes el botón iPad. Uh, si tienes este iPad habilitado por aquí en tu proyecto clicé tu proyecto aquí y ah, ve a General Tab. Si tienes un iPad en Universal, vale, tienes que tomar capturas de pantalla para todo. En realidad lo voy a apagar porque no quiero lidiar con eso ahora mismo. De acuerdo, entonces ahí vamos. Ahí está nuestra app. Adelante. Mueve el código X hacia abajo. De hecho, debería. Bueno, en un mundo perfecto, probablemente también tomes una captura de pantalla de
eso . No me voy a ir. ¿ De acuerdo? Obviamente, tenemos algo de trabajo que hacer aquí, pero no vamos a preocuparnos ahora mismo, tan bien. Comando s bien. Eso lo salvó. Y esto sólo llamará a esto 5-1 y ah, slog in. Eso es, uh es en realidad, uh ahí vamos. Command plus K ocultará tu teclado. Apunta, Y lo que haremos es ah bla en bloque bloqueado dot com. 12345 De acuerdo, intentemos esto otra vez. Aquí arriba se está congelando. Probemos esto otra vez. Digamos que abejas asesinas en las rodillas de abeja punto Com 234 y cinco. Ahí vamos. Comando s bien. Vamos a llamar a este cinco guión a tu gusto, Esto es tan aburrido. Bueno, te
dije que te saltaras el video. Ya te lo dije. De acuerdo, vamos a hacer el iPhone cuatro ahora, ¿de acuerdo? Y ejecútalo. Estamos llegando ahí. Oh, mira. Un bebé y pequeño es. Recuerda los días del iPhone cuatro. Recuerda, los cuatro primeros salieron con la pantalla de retina. Fue, como, lo más cool de
la historia. Y sigo haciéndome más fresco ahora. Fue bueno. Y guarde esto. Vamos a llamar a esto 4-1 y sigamos adelante y largo y hasta uno nuevo. Llamaremos a esto, uh, audífonos al oyente dot com. A veces simplemente pones lo que se te mete en la cabeza en la pantalla. Um, no tengo idea de lo que estoy haciendo. Está bien, inicia sesión. Y ahí está la app en un iPhone para A menos que vayamos a desplazarnos un poco hacia arriba esta vez para demostrar que hay ah, podrías hacer múltiples publicaciones. Aquí vamos. Está bien. Y a éste le vamos a pedir a Dash. Está bien. Se ve bien. Creo que se ve bien. Está bien. A mí me gusta. A mí me gusta no me gusta, así que me queda bien. Está bien, voy a seguir adelante y pararlo ahora y así nunca conseguimos todas las capturas de pantalla que necesitamos. Y podrías, supuesto, haber hecho esto desde tu iPhone manteniendo presionada si construyes la app a tu propio iPhone y dio el botón de inicio más el botón de encendido superior al mismo tiempo tu pantalla parpadeará tú mismo para aerearlo tú mismo. Pero eso es tomar capturas de pantalla retirar las que necesitamos aquí mismo. Y luego en el siguiente video, seguiremos adelante y hablaremos de conseguir nuestro en el exterior.
120. ¡Presentando tu aplicación!: ¿ Podría ser este el momento en el que has estado esperando la oportunidad de enviar tu app a la tienda
APP? Bueno, vamos a ver. Creo que te marcarán pricier sordos jabones dot com Esta es la parte más divertida. Ya has hecho todo el duro trabajo, y ahora podemos tener lista la tienda Apple. Y hay algunas cosas que tenemos que hacer para que eso suceda. Pero estamos tan cerca. Entonces sigamos adelante y preparemos la tienda APP. De acuerdo, así que ya hablamos del desarrollador dot apple dot com y ya tengo mis
capturas de pantalla en el lado derecho por aquí. Pero ahora tenemos que entrar a nuestra cuenta de iTunes, ¿de acuerdo? Y así si vas a recordar centro, deberías ver un enlace de iTunes connect aquí mismo. También se puede acceder toe iTunes, connect dot apple dot com Y de nuevo, deberías ser un desarrollador de apple de pago. Yo lo sé. Está bien, ve. Si no eres un desarrollador de apple pagado, necesitas hacer eso antes de hacer este paso. De lo contrario esto no funcionará. Así que asegúrate de que pagaste esos 99 dólares en los que estás y bueno para ir, Así que solo inicio sesión en el portal iTunes connect aquí, y quiere que revise algunas cosas que todo tiene que hacer muy pronto. De lo contrario dejarán de vender mis APS. Uh, aquí hay algunas noticias prueban luz para IOS nueve versiones beta. Ahora puedes enviar versiones beta a tus probadores internos para probar la estabilidad de la aplicación. IOS nueve beta. Eso es realmente genial. Vuelo de prueba de nuevo es que fue una plataforma de terceros ah muy popular que ayudó a distribuir APS a las personas. Porque, como dije, Apple ha sido una especie de pesadilla y conseguir apso. Y luego, uh, lo que pasó fue, y luego empezaron a apoyar a Android. Fue realmente genial. Y luego manzana abajo hacia fuera por, como, una tonelada de dinero. Y luego mataron a Android y se despidieron. Y así ahora se han incorporado a su plataforma y, uh, no
sé, todavía no
es tan intuitivo como me gustaría verlo, Pero aquí está tu panel de control. Si no has estado aquí antes, um, analíticas, anuncios, todo ese tipo de cosas, podrías mirarlo todo por tu cuenta. Vamos a entrar a mi APS Y por cierto, no te burles de mí otra vez. Estos eran realmente viejos APS k super viejos. Éste ha sabido que éste es divertido. Por cierto, si alguna vez quieres comprobarlo que es un zombi embrujado Halloween rush, es una versión tres D realmente bien hecha de Ah, Flappy bird. Como sé que ya has visto suficientes cosas de pájaro flappy, pero de todos modos, está todo en tres D y es realmente genial. Animaciones geniales, estas cosas. Yo lo hice. Gracias, Onda. De acuerdo, así que haz clic aquí en el botón más. Tenemos que añadir un rap, ¿de acuerdo? Y necesitamos una nueva app IOS. De acuerdo, En nombre de éste para mí no va a ser Melissa Price. Eso no es una app. Esa es mi esposa. Todos aquellos que haces un escaparate de ap Ah y Dev Slopes muy curioso. De acuerdo, es mi nombre de mi app. El idioma primario es el inglés. Ahora va a pedir un paquete. Yo d ahora no podríamos haber hecho esto. ¿ Hemos hecho todo si no hubiéramos hecho todas las cosas anteriores primero? Por lo que necesitamos elegir el paquete i d para app que es éste de aquí. Escaparate Dev pendientes Y que alguien que queremos Quieres asegurarte el paquete que d
aquí mismo . Partidos. ¿ Qué es un código X? Sé que es porque acabo de comprobarlo. Versión El número de versión se muestra en la tienda de aplicaciones y debe coincidir con el que usaste un
abrigo X. Ooh, esto es importante. De acuerdo, en el código X. Cuando vas a tu click tu ícono aquí y vas a la versión general un punto de esa es nuestra primera versión. Esto tiene que coincidir con lo que hay en la APS o de otro modo. No funcionará gay. Esto cambiaría con el tiempo. Subirá y también sabe que una versión podría tener múltiples facturas como usted puede estar probando y cosas beta como esa. Entonces, uh, la versión va a ser un 1.0, y este sesgo es sólo un nombre. Se le da para identificarlo. Entonces imagina si tuvieras 100 APS. Al igual que algunas empresas que te gustan las Artes electrónicas. Necesitan una buena manera de identificarlo. En este caso, sólo
tenemos un puñado de absoluto es simplemente llamarlo escaparate, y luego haga clic en crear. Ahora, en este punto, si el nombre de tu app no está disponible, te dirá que no está disponible, ¿de acuerdo? Y así no hacíamos click crear y estaba disponible muy bien. Y luego te lleva directo a la app. Esto es muy cool. Por lo que ahora estamos aquí en la tienda APP. Mueve X bien, fuera del camino. Y así, ya que estamos justo aquí en las capturas de pantalla, sigamos adelante y agreguemos algunas capturas de pantalla. Entonces recuerda cuatro punto Ah, discúlpame. El 3.5 pulgadas aquí que es tu fuerza del iPhone y para nosotros es tan bueno. Y haz clic en eso y luego arrastra tus hasta cuatro capturas de pantalla están aquí CSS para uno y 42 Arrástralo . Si estos no fueran del tamaño adecuado, te gritará y no los aceptará. Entonces si lo toma, sabes que funcionaron y puedes arrastrarlo por ahí así, lo cual estará haciendo. Y el extranjero, por
supuesto, es el iPhone cinco. Y así podemos arrastrar va también a apestar. Es pensar. Vamos, puedes hacerlo. Y por cierto, iTunes connect es tan lento que se agota el tiempo, se bloquea. Tiene tantos problemas. Es mucho mejor de lo que solía ser, pero es muy lento, así que si te encuentras con problemas podrías intentarlo. Safari eran un grupo de cromo. Ahora mismo vamos a ir a la 5.5 pulgadas. Ese sería tu iPhone seis. Más tus seis más Disculpe. Eso es algo raro. Tu seis plus y vamos a agarrar los de aquí. Arrástrelo. Ahí hay uno. Ahí está el otro 14.7 pulgadas uno escucha el otro disparo de pantalla del iPhone seis próximo. Ahí vamos. OK, entonces tenemos sus capturas de pantalla Ahora, eso se ve muy bien. Voy a dar click. Guardar. Uh, ¿por qué sales de esta página? Uh, ¿
en qué está haciendo para hacer lo que quiera hacer? Supongo que el ahorro. Vamos. Bueno, debes hacer clic en guardar. Voy a refrescarme. Y me ficharon. Yo dunas. Ah, está bien. Uh, ya
estás experimentando algunos de los dolores del desarrollo de aplicaciones. Eso me alegra poder traerme esas maravillosas experiencias que estarás viviendo por
tu cuenta a lo largo de tu carrera de desarrollo. Pero con eso dicho, todo lo que me quejo de IOS en es mucho, mucho peor que otras plataformas. También soy desarrollador Web y desarrollador androide, y preferiría desarrollarme en Iowa todo el día todos los días sobre todas las plataformas. Podría es absolutamente lo mejor de cualquier cosa que exista. Entonces sí tiene mi validación, pero aún así podríamos quejarnos de ello. Está bien. Um, veamos si nuestras imágenes Muy bien, Okay, esto es bastante molesto. Veamos si solo podemos arreglar esto realmente rápido. Consigamos nuestro seis más aquí. Y, uh, sólo teniendo algunos problemas. iTunes. Como dije, ahí vamos. Y pongamos aquí nuestro iPhone seis. Yo sólo voy a poner una puesta a punto para lidiar con esto y tomarme demasiado tiempo aquí. Entonces, ¿dónde está nuestro 61? Ahí vamos. Lo que sea. ST tiros arriba. No me importa en este punto. Está bien, vamos a guardarlo. Pelo vamos. Está bien. Lo es. Se guarda. Muy bien, Así que muy agradable. Um, vamos a terminar el resto de estas cosas aquí. Por lo que tenemos pre lanzamiento y pre lanzamiento es tu prueba beta. De acuerdo, entonces hay dos tipos de probadores que puedes tener. Ahí hay probadores internos, y hay probadores externos. Tus probadores internos. Está bien. Uh, solo
puedes Adam aquí mismo, para que puedas dar click. Um, Bueno, tú puedes. Tú Adam de un lugar diferente. Te mostraré que, uh, te lo
mostraré en un video diferente, realidad aquí. Pero de todos modos, así que prelibera solo tus construcciones que vas a presentar. Y tus probadores ¿bien? El precio es el precio de su aplicación. Por lo que puedes fijar el precio aquí, todo tipo de lágrimas. Te dan lágrimas, te dice cuáles son. Ya sabes, el Tier dos tiene la matriz de precios. Simplemente haremos el nuestro de forma gratuita. La fecha que querías. Descuentos disponibles para instituciones educativas. A veces apple da descuentos por son simplemente gratis. No importa. Um, personalizado Belleza sea APS, uh, solo disponible a través de la compra por volumen de negocio a negocio tipo de cosa. Entonces, um,
OK, OK, todos modos, así que ahí está el precio. Guardemos eso. Libre está bien. Y, uh, sé que es un poco raro, pero tienes que ir dar click cancelar en la parte inferior izquierda. Te hace pensar que estás perdiendo cambios, pero no lo estás. Esa es la única forma de salir de esta pantalla. Entonces haz clic en cancelar y tus cambios se guardan y estás listo para ir. Y eso en realidad es una pantalla sobrante de años. Ha estado ahí desde hace años. Actualizaron el resto, pero no esa parte en que compras. Aquí es donde crearías suficientes compras. No estamos haciendo eso ahora mismo, ¿de acuerdo? Pero aquí es donde crearías unas compras netas para Europa, por cierto, muchas maneras, y que las compras se iban como si fuera, como todo el modelo Freemium y que las cosas fueran libres. Es sólo la generación en la que vivimos. Tienes que empezar a pensar en ¿Cómo puedo construir mi negocio alrededor de una siesta y dejar de
pensar en cómo puedo ganar dinero con la descarga en la app? Ahora, por
supuesto, los usuarios valen mucho dinero. Pero deja de pensar en el dólar que viene de cada descarga Empieza a pensar en Si
doy mi sobre gratis ¿cómo construyo mi negocio y hago dinero con estos usuarios de una manera diferente? Porque todos quieren todo de forma gratuita en estos días. Es justo la forma en que va. Solo para que lo sepas, um, esa ha sido mi experiencia de lo que veo en el centro de juegos de la industria. Si estás conectado para ganar centro, nos importa estas otras cosas en este momento. Estos no son lo que estamos haciendo en nuestra descripción de APP. Aquí es donde se introduce una descripción sobre Europa. Por lo que esta app permite a la gente publicar imágenes del ábside que construyeron a través de la U a mí curso IOS nueve. Uh, y veloz. Puedo recordar el nombre. Mi propio curso. ¿ eh? De principiante a profesional pagado. De acuerdo, Palabras clave. Estas palabras clave del aire que cuando la gente busca la app, va a ayudar a la Appy sacó hacia arriba en la tienda de aplicaciones la misma. Esto no es Esto no es palabras clave para Google. Se trata de palabras clave. Cuando cargas la tienda de aplicaciones y haces tu búsqueda, sí
quiero decir que la palabra clave que más peso tiene esto es solo algunos consejos gratuitos . El vocablo clave ahí escuchado que tiene más peso es el nombre real de la propia APP. Eso es lo que ves, algunos mapas que dicen, como, ya
sabes, app de calendario
gratis. Ya sabes, 1,000,000 de usuarios les gusta un montón de nombres extraños porque lo que hacen es que
la gente busca más nombres de búsqueda, y lo ponen ahí porque esto tiene más peso. Eso es lo que más te va a ayudar a encontrar tu app. Entonces si quieres destacar en una categoría,ya
sabes, ya
sabes, esto tiene más peso, y luego algunas palabras clave. Ya sabes, esto Esto sería como el desarrollo de aplicaciones. Te da una X cantidad de personajes, como puedes ver en el lado derecho por aquí. Ya sabes, desarrollo de
aplicaciones, ya
sabes, aprende rápido. Uh, no
aprendes IOS. Puedes meter un montón ahí dentro. Apoye tu Oh, vale. Um, requiere algún tipo de tu todo lo que tienes para tenerlo. Entonces solo ve a vomitar. Ya sabes, ve a papi página web o lo que necesites, pero tienes que tirar molesto ahí arriba. Eso no te lleva a una página 404. ¿ De acuerdo? Necesita ser solo un sitio web. No te estreses. Simplemente ve a, como, ve papi o wicks dot com montón de lugares libres donde podrías conseguir un rápido tu lk tienen pendientes dot com y Ok, asi que ahí está, um Ok, apple watch . No estamos haciendo Apple Watch ahora mismo. Hace un ícono de aplicación. Y así vamos a seguir adelante y hacer eso. Ahora voy a entrar en mi plantilla de icono de aplicación que creamos antes yendo a
uno realmente equivocado . Queremos el que diga iconos. Ahí vamos. Y queremos el que diga ilustraciones de iTunes a las dos X Ok. Deberían haber sido exportados. Y va a cargar y hacer lo suyo ahí. Y ahí está. Está bien. Derechos de autor. Pones eso ahí dentro. 2015 2015 Dev Slopes LLC. Está bien. Mostrar representación comercial, información de
contacto no es necesaria Esa es tu dirección. Pero esto es que no sé qué direcciones deben tener como 15 años. Uh, para que sepas tu nombre. Ya sabes, Mark Price? Uh, ya
sabes, 45 alguna dirección falsa. Lo que sea. Um, está bien. Archivo de cobertura de aplicaciones de enrutamiento. No te preocupes por eso. Sus regiones geográficas apoyan. Disculpe por su app. Eso no me importa. Uh, esto es importante. Tu número de versión. De acuerdo, recuerda, debe coincidir con lo que es la siguiente categoría de código. Esta es la categoría principal. Quieres. Entonces, en nuestro caso, ¿qué sería esto? Esta parte de la educación y tal vez una 2da 1 Tecnología? No, tal vez una red social social social fuera y, ah, calificación. Tienes que darle una calificación. ¿ Y qué es una calificación? No. No darte una crítica de cinco estrellas. Tu app es genial. No, este es el contenido que lo hizo, ¿sabes? Entonces, sólo mira lo que dice. De dibujos animados o fantasía? ¿ Violencia? Ninguno. No hay violencia realista, No hay estimaciones reales gráficas ni sádicas. Sin humor crudo. Gnome sugiere de temas. Sin temas de putas, sin tratamiento médico, sin alcohol, sin juegos de azar, sin desnudez, sin contenido sexual, sin aplicación Web irrestricta. Éxito. Sin juegos de azar. Uh, concursos? No. Seleccionaste Operar es cuatro más. Bueno, lo que sea. Eso está bien. Es decir, es aceptable para todos. Yo diré, sin embargo, si haces click made for kids, en realidad
tienes que hacer algunas cosas más por tu app. Vale, solo para que lo sepas, si tienes unos hijos fuera, ten en cuenta que vas a tener que hacer algunas cosas más como que haya nuevas leyes en
Estados Unidos que te requieren y lo absoluto requiere que tengan ciertas políticas de privacidad en sus APS. Porque no se puede robar datos de Niños que están usando APS. Un montón de cosas que tienes que hacer ahora. Y tu app tiene que ser cuatro niños. De acuerdo, um y, uh, tiene grupos de edad y todo tipo de cosas, así que sólo sepas que vas a ir a hacer algo más de investigación. Uh, si quieres hacer una app para niños antes solo tienes que hacer clic en este botón. Uh, entonces eres africano. Obtén la aprobación. De acuerdo, eso me queda bien. Eso Tenemos nuestra descripción. Tenemos nuestras palabras clave. En realidad no es tanto. Vale, um, puedes, uh Puedes, um, vomitar un video aquí. Puedes hacer clic, elegir archivo y lanzar un video para tu manzana para que puedas grabar un video para tu app. Al igual que en flujo de pantalla. Isa genial fuera para el campamento. Tasia es un gran producto para hacer eso en. No vamos a cubrir eso aquí. Adelante y ve en YouTube y mira cómo hacer un video promocional para iPhone. Um, y ,
uh, no lo es No es gran cosa. De acuerdo, um información de revisión de aplicaciones. Con quién lo hacen quieren hablar si hay un problema, y esto es importante porque a veces hay problemas. Eso, Ya
sabes, pon tu nombre ahí dentro, ¿sabes? Está bien. Cuenta demo. Si eres apple cars, inicia sesión para usarlo, y no puedes crear una cuenta a través de la app. Vas a necesitar darles contraseña y usarlos, o rechazarán tu aplicación. Entonces si no pueden entrar a través de tu app. Al crear una cuenta a través de la app en la pantalla principal, vas a tener que darles un nombre de usuario y contraseña, o rechazarán tu APP. Puedes elegir si quieres liberar automáticamente la versión o liberarla manualmente después de que la hayan aprobado. ¿ De acuerdo? Y todo esto se ve bien. Creo que toda nuestra información básica y principal está aquí. No te di,
como, como, grandes consejos sobre, um me olvidé un número de teléfono. No te di grandes consejos sobre cómo, como, hacer una descripción apt y cosas así. Te animo a que vayas a descifrar algunas de estas cosas por tu cuenta. Ve a escribir una buena app. Descripción de la tienda, cómo escribir buenas palabras clave, cosas así. Ve a hacer algo de trabajo por tu cuenta. No solo copie todo lo que estoy haciendo. Eso no te va a hacer genial. Necesitas descifrar algunas de estas cosas. ¿ Y qué tiene más sentido para tu producto y lo que estás tratando de hacer? Um, con eso dicho, no se
puede hacer nada loco aquí. Realmente puedes simplemente hacer guiones y mayúscula letra. Entonces, uh, no
podemos hacer ninguna cool. Ya sabes, bolos o audaz y ese bolos. No se puede hacer audacia ni talentos y cosas así. De acuerdo, vamos a intentar guardarlo de nuevo. Ve a hacer lo suyo Eso acaba de rodar hacia abajo. Mira, todo va por aquí. Siguen ahorrando otro aire son no le gustan mis números falsos. Aquí, intentemos esto otra vez. Yo sólo voy Teoh, Diga 5555555 111 Probemos eso. Eso es cierto sobre los números, ¿verdad? Sí. Probemos eso. Ahí vamos. Ah, quieren saber Este es nuevo formato y esas cosas. Espacios entre ahora, también. Está bien, ese es el problema. Han cambiado cómo cambian, cómo lo hacen desde la última vez que hice esto. Y acabo de hacer esto, como, un par de semanas. Muy bien, entonces uno más 11 más ¿Cuándo? Hace un año. Probemos esa. Uh, espera un minuto. ¿ Qué está pasando? Ahí vamos. De acuerdo, intentemos eso. Probemos eso. Está bien. Ahorrando. Está bien. No era como, ya
sabes, mis números falsos, así que acabo de poner un número de
teléfono real ya
sabes,
mis números falsos,
así que acabo de poner un número de
teléfono realde California. Por lo que 760 uno de los abrigos de zona más cool, ya
sabes. Um bien, así que se ve bien. De acuerdo, Ahora, no
queremos someternos a revisión todavía porque aún no hemos subido la construcción real. Y tenemos que hacer eso ahora. Entonces vamos a ver nuestro pre lanzamiento aquí. Y dice algunas construcciones importantes usando 5.11 extra o cargador de aplicaciones. Por lo que en realidad tenemos que presentar un build a través de ex coach. Adelante y hagamos eso ahora. De acuerdo, Así que vamos al código X. ¿ Y cómo creamos un construido? Bueno, ¿
recuerdas cómo dije necesitamos un certificado de distribución y un perfil de distribución? De acuerdo, así que vamos a asegurarnos de que ya tenemos esos, así que vuelve a tu desarrollador dot apple dot com. De acuerdo, Centro de
miembros, y, uh, haz clic en esto. Por lo que los certificados ahora van a los certificados aquí. Y ya hemos creado uno de desarrollo y tal vez ya hemos creado la distribución . Si lo tienes, eso es genial. Pero para la producción, solo haz clic en producción, crea una nueva, y luego, ah, ya
sabes, haz clic en esto y ve al proceso. Si no lo has hecho ya, Ok. Crea una tienda de aplicaciones y ad hoc, ya
sabes, certificado
de distribución. Y entonces todo lo que necesitamos hacer ahora después de que eso se haya creado. Y eso deberíamos haber hecho. Ya debiste haberlo hecho. Cubrimos para cubrir eso en el video. Entonces un solo recordatorio rápido. Así que vaya a los perfiles de aprovisionamiento abajo en la parte inferior izquierda, haga clic en distribución, Haga clic en El signo más. Y esta vez vamos a hacer app store. De acuerdo, en Hawk es cuando lo estás distribuyendo tú mismo a otras personas a través de tu propio como, uh, como el tuyo, como servidor y esas cosas. No te preocupes por eso. APP almacena el que quieras. Bueno y click. Continuar escogiendo la idea que estamos buscando y estamos buscando el escaparate uno que no
pude encontrar un año encontrar en la parte inferior. Muy buen click. Continuar. Yo era distribución. Eso es genial. Podría continuar y vamos a llamar a esto Ah, escaparate destro para distribución. En
realidad, cambio de opinión. Lo vamos a llamar tienda de aplicaciones Showcase. Entonces es que sabemos con certeza está pasando en el caso de la tienda de aplicaciones escaparate tienda de aplicaciones. Entonces lo que estamos diciendo es que necesitamos un perfil que esté adjunto a nuestra app que nos permita enviarlo a la tienda de aplicaciones. De acuerdo, así que haz clic en generar, luego descarga, luego haz clic en la descarga. Debería sacar tu código ex como lo hizo aquí. Ve a tu configuración de compilación Desplázate aquí abajo. Y lo que queremos hacer es establecer el perfil de aprovisionamiento a ese nuevo. Escaparate Apstar. Ahora, recuerda, escaparate Deb es el que estás desarrollando a dispositivo y construyendo escaparate abstruso para el AB Start. Si tienes seleccionada la tienda APP de escaparate y intentas ejecutar tu aplicación en tu dispositivo. No va a correr. No lo hará en la tienda de aplicaciones es sólo para distribución absoluta. OK, así que adelante y haga clic en escaparate de la tienda de aplicaciones y cambie la versión. Vamos a cambiar la distribución liberada de iPhone. Vamos a cambiar este lanzamiento la distribución del iPhone. Eso se ve bien. Y solo quiero revisar mi esquema y asegurarme cuando construya, archivando esos tipos cosas que todo es correcto. Entonces sube a este proyecto aparece esta cosita aquí, el esquema activo y haga clic en editar esquema, y lo que queremos es hacer click archive. Entonces, cuando presentas una factura a la tienda APP, tienes que archivarla, ¿de acuerdo? Y lo que estamos diciendo es que queremos usar el perfil de lanzamiento cada vez que hacemos un archivo y el perfil de lanzamiento está actualmente establecido en la tienda APP. Perfil de aprovisionamiento Tan construido para que la configuración salga Eso es justo lo que queremos. Entonces,
uh, uh, escaparate de la tienda de aplicaciones. Es genial. Ese es nuestro perfil de aprovisionamiento. Obra en libertad. Obtuvimos el perfil de distribución seleccionado. Ya no podemos construir al dispositivo mientras estos aire seleccionado. Si eso vuelve a cambiar, si queremos hacer eso ahora, cómo te sometes a la clasificación de la APP es realmente fácil. Se va a producto y se va a archivar. Pero tú eres como, Oh, no, no está funcionando. ¿ Qué pasa? Excluye bugging out. No, no, Sólo se
puede archivar cuando se tiene un dispositivo seleccionado. Así que haz clic en tu pequeño iPhone para un simulador aquí, jode la parte superior y selecciona tu iPhone. Ahora bien, si tus iPhones no están conectados, está bien. Simplemente puedes usar el dispositivo iOS predeterminado. Simplemente no se puede tener seleccionado un simulador. OK, muy importante. Todo el mundo se topa con este problema, y yo le digo lo mismo cada vez. Entonces si no es tu iPhone, si no está conectado, dirá dispositivo IOS. Seleccione eso en su lugar. Entonces eso es lo que quieres hacer click ahora Si vas al producto y archivo, está bien, va a empezar a archivar la app. Vas a ver el proceso aquí mismo. ¿ De acuerdo? Y cuando esté hecho, va a aparecer
una pantalla y se llama el Organizador, que te permitirá presentarte a la tienda APP. Entonces tenemos que hacer en este punto es sólo esperar a que termine de archivar. Aquí viene. Se terminó de archivar la construcción ha tenido éxito. Y por cierto, esto podría tardar unos minutos. De acuerdo, El proceso de archivo tarda unos minutos. Además, vez hecho el
archivado, una
vez hecho el
archivado,puede tardar uno o dos minutos en que la pantalla del organizador aparezca los códigos X, haciendo lo suyo. Es pensar que solo tienes que esperar. ¿ De acuerdo? Y ahí está. A ver, sólo tomándose su dulce tiempo. Las cosas buenas llegan a los que esperan. De acuerdo, Así que aquí están tus archivos. En estos archivos hay facturas que podrías pegarle a la clasificación de la app. Por lo que antes de enviarte a la tienda de aplicaciones, quieres validar una compilación. Entonces lo que va a hacer una validación va a decir, Hey, ¿ hay basura y basura aquí dentro que nos va a hacer que nos rechacen y te permite
averiguarlo aquí mismo ahora mismo antes de enviar a la tienda APP alrededor de un año y 1 /2 hace. A lo mejor hace dos años. Esto ni siquiera existía. De acuerdo, antes de eso, tenías que presentarte aquí después del Absar. Espere siete días. Está bien, espera siete días. Y luego para que te den un problema o cosas así. Por lo que es muy bueno que tengan una funciones de validación. Adelante y hagamos eso. Ahora vamos a validarlo. Selecciono tu cuenta, ¿de acuerdo? Se está preparando. El archivo que está haciendo es pensar que está conectando. ¿ Todo bien? Es Ah, se trata de hablar de tus derechos, lo que estás usando en la APP. Oh, buenas cosas aquí. Entonces sigamos adelante y pinchemos. Validar. Eso va a hacer lo suyo. Nos va a decir si la cagamos. Si algo está roto. Si estamos usando una biblioteca, eso puede ser un no, no. Um, va a dar un montón de bajo el tipo de capó de chequear para que nos aseguremos de que estamos bien para ir. Es crear un I. P. Un archivo que pago archivos realmente sube a la tienda APP. Uh, si alguna vez has descargado APS a tus tiendas iTunes y extras, ellas en punto i p un formato. Sólo para que lo sepas, para referencia. Ahí vamos. Pasó la validación con varias advertencias. El archivo de análisis AP resultante es demasiado grande. No pudimos validar tu uso de A P I antes de la entrega. Esto es sólo un mensaje informativo. En realidad nunca había visto éste antes. Um, el archivo de análisis AP resultante es demasiado grande. Uh, no nos está dando un error empalmes persecución hacia adelante aquí. Y lo que queremos hacer ahora es simplemente subir a la tienda de aplicaciones, no tener en cuenta. Si no hubieras creado una app y no hubieras creado una versión, no te dejaría subir a la tienda APP. Adelante y dale una oportunidad. A ver qué pasa. Así que haz clic en tu cuenta y luego haz clic en elegir. Está bien, va a preparar el archivo, y luego va a empezar a subirlo. En caso de que no haya problemas, somete. Vamos a darle una oportunidad cruzando nuestros dedos La mitad del tiempo que hago que esto funcione. Tienes el tiempo no. A lo mejor he olvidado algo. Está bien. Te vas a olvidar cosas. Vas a romper cosas. Esto Esto es un proceso de aprendizaje, incluso a esta fecha, ya
sabes, haber construido todo lo absoluto tengo todavía que luchar con perfiles de aprovisionamiento? Y me detuve la pelea con código X yo mismo para pelear con sometiéndome a la tienda APP. Vas a pelear, y así es como es. Entonces está subiendo los archivos. Creo que está bien y sólo lo esperaremos. Teoh subir. Ahí vamos. Validación pasada. Neil. Sí, muy bien. Por lo que ahora se sube en la tienda APP. Entonces sigamos adelante y vayamos al lado derecho por aquí y volvamos a nuestros agentes Conéctate y solo
volvamos y solo
volvamosaquí y actualicemos la página Comando. Además son para refrescarse bien o el pequeño círculo ahí. Entonces es refrescar la página y mira eso. Aquí hay una construcción. Ahora, eso es realmente genial. Entonces voy a hacer clic en mi APS para volver atrás y sólo asegurarme de que todo esté actualizado. Mira, nuestros iconos de la app ahí se ve bien. Haga clic en él y eso se ve bien. De acuerdo, conseguimos sus capturas de pantalla. Um, genial. Ahora podemos presentar para revisión? Todavía no. De acuerdo, um, el problema es que necesitamos seleccionar una compilación aquí diciendo Hey, enviar con esto construido, OK, pero no podemos hacer eso todavía porque todavía se está procesando. Si vamos al prelanzamiento, se sube, pero no se hace el procesamiento. Si haces clic en la cosa aquí después de que se
suban las construcciones, pasarán por un estado de procesamiento antes de que puedan usarse. De acuerdo, entonces antes de que pudieran ser utilizados, tienen que procesar esto. Ven a tomar en cualquier lugar entre cinco minutos y cinco horas. Ha sido muy finicky últimamente, y si después de cinco horas no se está procesando, te
recomiendo tal vez cambiar tu número de versión aquí y en tu código ex y subir
uno nuevo porque de nuevo, últimamente ha sido finicky, sobre todo con la nueva beta. Um, ustedes estaban como, Hombre, he telefoneado apesta bien otra vez, proceso de
distribución de iPhone sí apesta. OK, absolutamente apesta todo esto. Tú lo eres. Es espantoso, pero solo es realmente el único dolor mayor que tienes que lidiar a la hora de desarrollar para iPhone. Entonces ya sabes, básicamente
podrías sentarte aquí y refrescar tu página hasta que termine de procesarse. Um, o puedes volver a las versiones año podemos desplazarnos hacia abajo, y, uh, lo que va a pasar es que vamos a ver una compilación aparecer aquí una vez que haya terminado de procesar. Entonces vamos a esperar a que eso suceda para poder enviar la app, y luego iremos a partir de ahí. Por lo que acabo de refrescar la página. Desplazemos hacia abajo y veamos. Y ahora podemos sumar nuestra construcción. Observe cómo esto está disponible para nosotros. Haga clic en Plus para agregar una compilación. Y si vamos al pre estreno, Ok, ahora
deberíamos ver nuestra construcción aquí. Está inactivo, y eso está bien. Inactivo para pruebas internas, inactivo para prueba externa. Y eso no nos importa ahora mismo. Sólo queremos asegurarnos de que esté aquí, que es. Entonces vuelve a las versiones, ¿de acuerdo? Y todo lo que tenemos que hacer es dar click aquí mismo. Va a sacar una lista de facturas. De acuerdo, El número de versión tiene que coincidir. Ahora mismo, estamos en versión one point. Ah, así que tienes que hacer click en un punto. Está bien. Aquí y luego haga clic. Hecho. Está bien. Y lo que me gusta hacer es simplemente revisar todo. Asegúrate de que las cosas donde necesita estar aquí en las capturas de pantalla. Ah, mi descripción. Mezclas de esos errores ortográficos, por cierto. Nunca debes escribir directamente en tu descripción. Hazlo como en Microsoft Word o en, ya
sabes, los documentos de apple o los muelles de Google. Cualquiera que sea la ortografía correcta, asegúrate de palabras clave o marcadas. Y ah, entonces todo lo que tienes que hacer es escuchar, tenemos su construcción aquí. ¿ Dónde está? Son reales seleccionados argumenta que se ve muy bien. Entonces todo lo que tienes que hacer es guardarlo después de haber seleccionado tu seguro de clic construido y luego todo lo que tienes que dio cuando toda tu información está aquí y se ve genial. Asegúrate de tener a alguien comprobarlo doble. No se limite a presentarlo o no vas a poder dormir. De acuerdo, uh, click Enviar para revisión spinning. Está girando su pensamiento. Es decidir si quiere dejarte enviar una app o no. Tu corazón empezó a golpear y uh, está bien, entonces ¿sabes por qué no funciona? Ya sabes, es porque IOS nueve aún no está fuera. OK, um 9 de septiembre allá. Oficialmente, creo que oficialmente lo están lanzando ahora también está hablando de las cosas nuevas que están liberando. Pero ahora mismo no puedes enviar la app. No obstante, por lo general lo que pasa es de aproximadamente una semana a unos 15 días antes de
que publicaran oficialmente que dicen que el te manden un correo electrónico diciendo Hey, ahora
estamos tomando iPhone nueve envíos AP. De acuerdo, así que aún no puedes hacerlo. Uh, eso está bien. Um deberías pasar algún tiempo perfeccionando tu app, preparándola para la tienda de aplicaciones. Sí te dan unos 10 a 14 días. Como dije, 10 a 15 días más o
menos, pero obviamente no está funcionando ahora mismo porque el no podemos presentar IOS nueve ups todavía
porque aún no está fuera. Pero eso es todo lo que tienes que hacer. Chicos y chicas es una vez todo esto estaba aquí, todo lo que tienes que hacer es dar click enviar para revisión. Y puedo añadir un video de adenda a esto cuando en realidad se estrena oficialmente. Pero así es como es ahora mismo. Acabas de fingir que enviaste tu app a la tienda APP. Pero todo aquí todavía se aplicará al 100% cuando el IOS nueve sí salga. Eso Felicidades por no enviar tu app a la tienda de aplicaciones. Uh pero, uh, otra vez perfecciona tu app prepárala el 9 de septiembre de 2015. Debería estar saliendo y te deberían dar 15 días para prepararte tu app. Así que el primer día cuando la app de ábside. Yo estaba nueves liberado. Podrás tener tu manzana en vivo, lo cual nos enfriamos. Ser el primero en comercializar siempre es muy valioso. E
121. Debugging una pantalla que no muestra datos: Hey, todos, Mark Price aquí, Deb pistas dot com Y hoy vamos a hacer algo realmente divertido. No realmente divertido. Será divertido para ti porque vas a ver cómo funciona mi cerebro en la solución de problemas. Recibo preguntas todo el tiempo sobre cómo resolver problemas y bloqueos. Y así cuanto más perspicacia puedas ver y cómo resuelvo
los problemas, mejor podrás resolver los problemas por tu cuenta. Entonces esta es una solicitud estudiantil que me fue enviada. Lo voy a abrir aquí arriba, tirar hacia arriba en el proyecto de código X aquí y el simulador, y vamos a seguir adelante y ejecutarlo. ¿ De acuerdo? El problema que me fue descrito fue que Hey, tengo datos en mi app. Pero cuando hago clic en el elemento de lista, la vista de detalle no muestra los datos. Entonces, por ejemplo, si hago clic en esta palabra aquí que dice igual, está completamente vacía excepto este mundo aquí abajo en la parte inferior. Y así la indicación o pensamiento fue Hey, mis datos no están funcionando. ¿ Por qué se acerca, Neil en la aplicación? Y así sigamos adelante y resolvamos este problema. Queremos que los datos se muestren ahí. Entonces voy a parar esto. Hagamos este código X más grande aquí, ¿de acuerdo? Y así sigamos adelante y echemos un vistazo a nuestro código aquí. Entonces tenemos un modelo tuyo y un controlador. Eso es genial. Código muy bien organizado en cuanto a la estructura del proyecto, fantasmas. Y OK, tenemos una mesa de ustedes aquí. Entonces si voy a mi storyboard principal, vamos a echar un vistazo a la aplicación aquí, ¿de acuerdo? Por lo que tenemos un controlador de vista con una vista de tabla, y tiene una vista de tabla vender aquí. Está bien, eso se ve bien y normal. Y luego tenemos un controlador de vista detallada, y si notas que aquí hay algunas etiquetas que definitivamente no se estaban mostrando en la aplicación, sigamos adelante y abramos nuestro asistente de editor. Este doble circula aquí mismo. Veamos cómo se iba a ver en nuestro modo de vista previa solo para asegurarnos de que nuestras restricciones sean correctas. Entonces voy a hacer clic en este automático, cambiarlo para previsualizar y ir a revisar aquí mismo. Por lo que se ve bien ahí. Parece que va a aparecer muy bien hasta donde nuestra vista de mesa se venda en todo lo que hay ahí. De acuerdo, así que eso se ve bien. Vamos a dar click en esta bonita por aquí. Y eso se ve bien, también. Entonces lo que esto me dice es que las restricciones están bien, así que son están apareciendo en modo de vista previa. Básicamente, lo que veas en modo bonito va a aparecer en la APP. Entonces es por eso que lo reviso muy primero. Porque si no viera nada aquí, sabría que las restricciones en estos puntos de vista están desactivadas. A lo mejor están fuera de la pantalla, ¿Quién sabe? Pero se ven bien ahí donde se supone que deben estar, así que podemos descartar ese problema. De acuerdo, voy a cerrar el asistente de editor aquí, y así nuestro problema es de nuevo que no podemos ver ningún dato en la pantalla. De acuerdo, entonces sabemos que no hay datos que muestren, o al menos visualmente, no
está mostrando remolcarnos. Realmente no sabemos cuál es el problema, pero nuestra primera suma es Quizás la fecha no se está mostrando. Entonces vamos a ver nuestro controlador de vista de detalle. Entonces la idea es que toques una de esas etiquetas y muestra una vista detallada, sobre la
que no estamos viendo información. Entonces tenemos algunos puntos de venta de hiedra aquí. Queremos asegurarnos de que tengan datos. Entonces lo que voy a hacer es justo aquí y actualizarte. Noté que en vista sí cargó cuando esta vista carga la actualización, sabio siendo llamado. Por lo que esto se llamará si esta vista se carga. Entonces lo que voy a hacer es que voy a poner un punto de descanso aquí mismo, como pueden ver, y voy a seguir adelante y ejecutar la aplicación y ver qué pasa. Ahí va. Está cargada. Voy a hacer clic en una celda aquí, y nos detuvimos en su punto de descanso. ¿ De acuerdo? Esto no es un choque. Nosotros fijamos deliberadamente este punto de freno aquí porque estamos depurando. A esto se le llama depuración. La idea de deshacerse de los bichos. Está bien. Y así estamos aquí, para que sepamos que llegamos aquí. Entonces sigamos adelante y solo pasemos por encima de estos así que los nombres de ejercicio. Esa es una cadena vacía, como puedes ver. ¿ Qué? Las comillas dobles ahí mismo. Está bien, echemos un vistazo a estos otros. Estos están todos vacíos. Eso es realmente interesante. Entonces, ¿por qué están vacías? Bueno, podría ser que no se les pasen datos, así que vamos a revisar y ver qué voy a hacer. ahora es trabajo al revés. Entonces desde el punto de esta pantalla cargando yendo hacia atrás Bueno, ¿cómo cargamos un nuevo muro de pantalla? Idealmente, el usuario tocó una celda y llamó auto Farella index path e intentó cargar la vista o algo así. Sabemos dónde sabemos básicamente dónde buscar. Entonces voy a detener este programa aquí, y voy a dar clic y arrastrar para deshacerme de ese punto de ruptura. Entonces volvamos atrás y miremos nuestro controlador de vista. Entonces esta es la que tiene la mesa de ti, ¿de acuerdo? Y vender ruta de índice fero. Eso es lo que genera las células. Y si mencioné esto antes, quise decir, sí seleccionó ruta de índice de fila. Eso es lo que comprobaremos para ver cuándo seleccionaron las celdas. Esta es la que realmente genera las células. De acuerdo, así que parece que estamos configurando una celda, así que parece que estamos agarrando datos de aquí mismo, y estamos configurando una celda. Entonces sigamos adelante y pongamos un punto de descanso aquí. Lo que quiero ver es que hay algún dato entrando en este ejercicio nombra constante
aquí solo para ver que se está pasando correctamente. Asegúrate de que no tengamos datos vacíos. Entonces sigamos adelante y corramos de nuevo. Otra vez. Vacío. Muerto. Significa que nada se muestra en la pantalla. Por lo que quiero asegurarme de que tenemos resuelto este problema. Entonces si rondo sobre esto, Vale, ¿qué tenemos aquí? De acuerdo, entonces hay datos aquí en igual principiante. Aquí hay una descripción, por lo que definitivamente hay datos en ella. Por lo que los datos definitivamente vienen en ruta de índice de auto fila. Y si mando click configurar celda, esta es su costumbre. Te una tabla de que vendes y él está pasando los datos aquí mismo. Parece que todo está funcionando y bien, y parece que hay un conectado estoy outlet aquí, así que voy a volver. Eso parece que está bien. Ahora hablemos de ¿seleccionó fila en ruta de índice. De acuerdo, entonces es cuando el usuario realmente toca la venta, carga la siguiente pantalla. De lo que quiero asegurarme es que se está llamando a esto y que los datos se están pasando aquí en el realizar Segway con identificador. Entonces pongamos un punto de descanso aquí mismo, y luego ejecutamos el programa. De acuerdo, haga clic en el botón. Interesante. ¿ Qué opinas? ¿ A qué te das cuenta? Si dijeras si Select Row Index Path no se está llamando estarías en lo correcto. Esto no se está llamando, lo cual es realmente interesante. Lo que significa que los datos nunca van a entrar en nuestro controlador de vista detallada, razón por la
cual está vacío. No está vacío porque no hay datos. Hay datos,
está vacío o algo está pasando, porque a esto nunca se le está llamando. Entonces pensemos en esto por un segundo. ¿ Por qué nunca se llamaría esto? Claramente se está tocando algo, y claramente está cargando otra pantalla. Bueno, lo único que se me ocurre es que nuestro storyboard está anulando. Esto sí seleccionó Ruta de índice de fila, significa que probablemente tengamos algún tipo de Segway ahí dentro que está impidiendo que esto suceda . Entonces sigamos adelante y pasemos a nuestro storyboard principal. Entonces echemos un vistazo a este Segway aquí. ¿ De acuerdo? Por lo tanto mostrar detalle ejercicio. Se está empujando. Está bien. Y veamos qué tenemos aquí. Entonces tengo una mesa de ti. Tenemos una breve celda. Está bien, Interesante. Entonces creo que es difícil decirlo completamente, pero creo que posiblemente Lo que está pasando es que este Segway Oh, ahí está. Observe cómo esta celda se resalta ahí mismo. Azul. Doy clic en el Segway y se resalta la celda. Significa que la persona que construyó este código creó un Segway a partir de la venta por aquí, lo cual está bien. Cargará la siguiente vista, pero nunca llamará. ¿ Seleccionó Ruta de índice de fila porque el Segway lo está anulando. Por lo que necesitamos deshacernos de esto. Pero primero, voy a copiar la identificación. O así tenemos eso en la parte superior. Correcto. De acuerdo, entonces voy a borrar este segway. Ahora, lo que voy a dio es que voy desde el controlador de vista aquí, voy a controlar arrastre sobre esto. Entonces vamos a hacer un metro genérico que va de una vista a la otra sin haberlo puesto en la celda de vista de tabla. De acuerdo, este es un Segway genérico, y vamos a decir mostrar vista de detalle. De acuerdo, entonces ahora tenemos un Segway, voy a darle click. Y ahora voy a volver a poner la identificación aquí. Esto ahora no está ligado a la tabla de que vendes, pero está ligado al controlador de vista en sí, lo que significa que esto tiene que activarse desde dentro del código. El realizar Segway con identificador comando la función. Entonces ahí está. Entonces sigamos adelante y lo ejecutemos. Bueno, volvamos a nuestro controlador de vista dot swift aquí y pongamos un punto de descanso de nuevo. Realiza Segway con identificador y vuelve a ejecutarlo. A ver si en realidad se le llama. De acuerdo, voy a dar click. Y ahora Vale, así que ahora se llama. Ahí se le pegó. Entonces eso es genial. Nosotros arreglamos ese problema. Adelante y solo sigamos adelante y haz clic en el botón de reproducción aquí para continuar y están cargados. Pero ten en cuenta cómo lo hice un par de veces y no funcionó al principio. Creo que tenemos otro problema que tenemos que arreglar. Y así vamos a seguir adelante y ocuparnos de eso ahora. Entonces voy a detener la ejecución y deshacerme de este punto de freno. Volvamos a este tablón de cuentos. Voy a hacer clic en ver controlador, ir a la mesa, ver la celda respiratoria y el contenido de la misma, y solo hago clic en esta cosa aquí. Parece que hay un botón ahí, así que parece que tenemos un pero aquí. Y mi conjetura es, ya que no se está utilizando en ninguna parte. Mi conjetura es que el desarrollador que estaba tratando de descifrar esto estaba tratando de poner un botón y conseguir cualquier cosa trabajo del dedo del pie. Pero tenemos un problema de botón. Entonces todo lo que voy a hacer es eliminar este botón, impresionado guardar y luego volver a ejecutar el proyecto. Aquí viene, y vamos a seguir adelante y hacer clic igual. Ahí va. Funciona. Entonces arreglamos el problema. Había un par de temas. Viste mi proceso de pensamiento y cómo empezamos donde estaba el problema. Hicimos un punto de ruptura todo el camino hasta la pantalla solo para asegurarnos de que la pantalla se estaba cargando. En realidad, antes incluso lo hizo. Eso verificaría el modo de vista previa para asegurarse de que las restricciones estuvieran bien y en segundo lugar. Después entramos en el controlador de vista de detalle y dijimos un punto de ruptura para asegurarnos de que
incluso se llamara a lo que waas. Pero los datos estaban vacíos, así que fuimos un paso atrás. Bueno, ¿de dónde vienen los datos? Bueno, debería estar viniendo de sí Select Row ruta de índice, pero nos enteramos de que no se estaba llamando y Así entonces entramos por dos o guión gráfico y dimos cuenta de que era un Segway atado a la celda de vista de tabla, que no va a llamar, sí seleccionó Ruta de índice de fila. Simplemente va a cargar la siguiente vista. Y así eliminamos que hicimos un Segway genérico directamente desde el controlador View y luego , en nuestro controlador de vista justo aquí llamamos al Segway realizado con identificador. Por último, se estaba llamando a
esto y tomamos esos datos, se pasa justo por aquí y luego se preparan para Segway se maneja como normalmente lo haría. Lo pasamos al controlador de vista de detalle. Cosas tan bonitas. Espero que esto ayude mucho con algo de su proceso de depuración y pensamiento y consumirlo . Apreciarlo y ve a resolver tus problemas. Mark Price Pasos esperanzas dot com Cerrar sesión y recuerda obtener tu ayuda en vivo gratis, ve a Deb pistas dot com y haz clic en chat Room. Yo estoy ahí todo el tiempo, así
como una enorme comunidad de otros estudiantes
122. Atajos de aplicación de iOS 9 3D Touch con la Touch: Hey, todos, Mark Price aquí en profundidad pendientes punto com y tenemos un emocionante episodio hoy. Vamos a hablar de los tres D touch de Apple con atajos de aplicación. Y si no sabes qué es un atajo de aplicación, déjame mostrarte. Puse mi teléfono aquí para que tipo de presionen y sostengan y arrastren hacia abajo. Pero no puedes presionar demasiado tiempo, o aparecerá el icono de borrar. Entonces, básicamente hay atajos para tu aplicación. Y si seleccionas una, digamos si selecciono notificaciones aquí, abrió la APP y te lleva a la sección de notificaciones. OK, también, si eres nuevo en el toque de fuerza este tres d Touch de Apple tiene, podría ser complicado a veces. A veces me encuentro yendo cinco o seis veces antes de poder conseguir que aparezca ese menú de
accesos directos de la aplicación . Por lo que se necesita un poco de triquismo. Seguro que lo conseguiremos con el tiempo. Ahora, para que esto funcione o para que construya APS que tengan atajos de aplicación, hay
que tener un dispositivo que lo soporte, que actualmente es el seis s más y el seis más. Sí, dije que completamente rock Son los nombres de los seis s y seis más s. Seis s y seis más s. los de los dispositivos que actualmente soportaban ir al futuro todos eran compatibles con dispositivos
más antiguos. No lo apoye actualmente. Y necesitas el código X 7.1 para hacer este tutorial. Y, eh, yo tenía nueve años. Entonces vamos a abrir aquí nuestro código X. Genial. Un nuevo proyecto de código X. Vamos a hacer una aplicación con tabulaciones. Vamos a llamar a esto cortes cortos. Eso suena tan guay. De acuerdo, click siguiente. Pero tú eres mi escritorio. Eso está bien. De acuerdo, esto es realinear la pantalla aquí, y ah, y luego hablaremos de lo que necesitamos para dio atajos de aplicación. Trabajan en tu app, delegado. De acuerdo, entonces básicamente, la idea es cuando alguien carga tu app. De acuerdo, usando uno de esos atajos, se va a cargar aquí, y ,
uh, vamos a implementar una función en tu delegado de app que pueda escuchar o escuchar cuando se inicie la APP con un atajo, ¿de acuerdo? Y luego conduces, um, un atajo configurado en tu did terminar de lanzar con opciones. Pero hay una cosa que tenemos que hacer primero, y eso es configurar nuestras listas p son info dot p list. OK, hay dos tipos de atajos de aplicación. Ahí hay estática y dinámica. Entonces si tienes atajos estáticos que significan atajos que no van a cambiar, el único cambio cuando cambias la versión de tu aplicación. Si quieres actualizar tu app, vuelve aquí y la cambias. Entonces en tu lista info dot p, aquí es donde vas a poner atajos estáticos una vez. No cambio de sentido. Lo que sea que esté aquí en la lista P va a aparecer como un atajo de aplicación. Y entonces lo que vamos a hacer en nuestra app es que vamos a tener que atajar uno usando un icono estándar del sistema que te lleva a una página de búsqueda y luego otra. Pero vamos a fingir que esto es ah, como una aplicación de citas. Está bien. Y así el otro va a ser dinámico, lo
que significa que cambia sobre la marcha en función de cómo se encuentre el estado actual de tu app o como
sea que esté configurada. De acuerdo, así que aquí en nuestra lista info dot p, necesitamos crear un nuevo elemento aquí para hacer clic en el signo más aquí, y necesitamos llamarlo usted. Yo aplicación, elementos de corte
corto, cambios a tipo array y luego expandió su haga clic en la flecha hacia abajo y luego haga clic en el
signo más de nuevo. Está bien. Y para cada elemento de esta matriz, o cada elemento de esta matriz va a ser uno de tus atajos estáticos. De acuerdo, entonces lo que vamos a hacer aquí es el punto cero. Eso es bueno. No necesitamos darle un nombre. Solo vamos a convertirlo en un diccionario y luego ampliaremos este. Y ahora haz clic en el signo más y pongamos aquí algunas propiedades. El 1er 1 que vamos a dio eres tú. Yo aplicación short cut item icon type. Está bien. Con uno largo lo sé y que estos son auto completos. Al momento de grabar, voy a hacer clic en este aire, aparecer a esta línea, aparecer para expandirlo. No se completan auto al momento de esta grabación. A lo mejor en el futuro, lo apoyarán. Tienden a manzana decenas de autocompletar apoyo en estos Ah,
en estos archivos de estas personas a lo largo del tiempo. Y esto va a ser una cuerda. Y aquí es donde estableces Qué tipo de icono quieres mostrar. Está bien. Y esto podría ser iconos del sistema. Bueno, Estos son iconos del sistema aquí. Por lo que hay que saber qué tipo de icono es. En nuestro caso, sabemos que eres tú. Yo aplicación Icono de acceso directo, compartir
apretado. ¿ Quién? Eso fue un bocado. Y si tiramos de abrir la documentación de desarrollador apple como así Ok, podemos ver qué tipos hay. Si quieres ir a esto. Justo positividad. Mira a la chica. Aquí. Obtienes marco de referencia te aplicaciones Orca icono, referencia de
clase, Por cierto. Tardó, como, cinco minutos en encontrar esta documentación porquería. Ah, Apple tiene un proyecto de muestra para atajos de aplicación. Era como 200 líneas de código. Fue una locura. Lo he hecho muy legible y fácil de hacer. Entonces a veces apple no es tan intuitiva y lo que están haciendo aquí. Pero aquí están los iconos del sistema que puedes elegir en nuestro caso, elegimos la búsqueda, como puedes ver aquí mismo. Entonces sigamos adelante y escondernos este año. ¿ De acuerdo? Por lo que mi aplicación atajo icono tipo share. Ese es el tipo de icono. Está bien. El siguiente que vamos a dio eres tú. Yo aplico corte corto frickin deletrearlo bien. Elemento de acceso directo. Subtítulo sub peaje apretado. De acuerdo, eso es una cuerda. Y este es solo el subtítulo que vas a mostrar son solo que vamos a decir, conseguir los mejores resultados y luego haremos otro, acuerdo? Y te llamaremos a esto. Yo aplicación Título de artículo de corte corto. Este es el título principal, y éste sólo dirá buscar y querer hacer uno más. Este vas a ser tú. I aplicación de atajo tipo de elemento. De acuerdo, ese es el tipo. Esto es lo que vamos a hacer referencia en nuestro código. Y vamos a llamar al tipo de búsqueda que puedes llamar a lo que quieras. El nuestro se va a llamar búsqueda. Ahora, puedes hacer una imagen personalizada aquí para que puedas escoger la imagen que puedes escoger la imagen creando imagen. Disculpe? Eso quieras, y puedes seleccionar lo que quieres que sea Aquí. Ah, y vamos a hacer eso. Vamos a hacer código Arjun en el icono dinámico. Pero también puedes hacerlo aquí, cual es realmente genial. ¿ Quieres hacer? Se sacó una imagen La documentación aquí. Este es el que quieres. Usted icono de acceso directo de la aplicación archivo una cadena opcional especificando una imagen de icono para usar desde el paquete apse ok. Y también te dice lo que necesita ser 35 por 35 necesita ser de un solo color. Vamos a crear uno en solo un poquito, pero no lo vamos a usar aquí en la p menos lo vamos a usar en nuestro código. Pero sólo tienes que saber que puedes ponerlo aquí en el archivo sin igual y apuntar a la imagen que
quieras . Realmente genial. Entonces lo que tenemos aquí es que hemos especificado el tipo de deistas icónicos. Esto es una acción. Iconos. De ahí va a venir nuestra imagen. Le hemos dado un título, un subtítulo. Y hemos dado un tipo. De acuerdo, esto es búsqueda. Podría haberla llamado Icono de búsqueda o lo que sea. No se confunda que estos dos digan búsqueda. Ambos podrían ser diferentes. El nuestro es simplemente se acaba de pasar a ser el mismo. Entonces este es un atajo de aplicación estática. Y así vamos a seguir adelante y construir esto en el teléfono y ejecutarlo y ver si funciona. Uh, necesito cambiar mi destino de despliegue porque aún no he actualizado mi teléfono. Voy a cambiar esto a objetivos de despliegue desde nueve punto. 0 10 o 9.1 esta noche punto. Ah, para poder construir mi teléfono. Si tienes ese problema, solo tienes que ir a construir ajustes tus objetivos y cambiar tu objetivo de implementación. De acuerdo, voy a seguir adelante y ejecutar esto por teléfono. Y lo que va a pasar es que tu aplicación se va a ejecutar. Se va a mostrar en la pantalla, pero no nos importa lo que aparece en la pantalla, porque solo voy a cerrar la app después de que se cargue y luego vamos a hacer es sólo
tratar de que la fuerza toque el toque forzado. Podemos poner el menú de acción. Y como puedes ver, ahí está nuestro icono de búsqueda. Entonces eso es realmente genial. Entonces justo en la caja, está funcionando. El problema es que, ahora mismo, sin embargo, no
tenemos ningún código para interceptar esto. Entonces si hago clic en
él, solo carga la app como de costumbre. De acuerdo
, te lleva derecho al punto de inicio. De acuerdo, que no es lo que queremos. Entonces sigamos adelante y escribamos el código para que realmente funcione. Pero conocemos los iconos que aparecen. Ve lo fácil que eso no fue gran cosa. Si vas a ver la documentación de Apple en su proyecto de muestra. Fue una pesadilla, como si fuera un poco aterrador al principio. Entonces es realmente simple, en realidad. Tan cool va a parar eso. Y vamos a entrar a nuestro delegado de aplicaciones ahora. Entonces ahora tenemos nuestros son,
uh, uh, icono
estático. Hagamos que el resto de nuestros abrigos se debilite, Apoya el icono dinámico, y luego podremos cargarlos a ambos. ¿ De acuerdo? Entonces cuando quieras crear un icono dinámico, lo
haces aquí en sí terminaste de lanzar con opciones K. Vale, entonces cuando se llame a esto, vas en lugar de tu código para iconos dinámicos de aplicaciones. Y, uh, esto, por
supuesto, se
llamará cuando cargue su aplicación. Entonces sigamos adelante y nos ocupemos de esto ahora. Entonces lo que necesitamos dio decir si dejamos que los ítems de corte corto es igual a aplicación respecto a la aplicación o dando ítems de atajo. Y dice que la pantalla de inicio acciones rápidas dinámicas para su aplicación disponible en dispositivos que
soportan tres d touch. Esto es muy importante. Estamos agarrando los elementos de acceso directo, pero no se confunda esto con atajos estáticos porque esta matriz sólo está sosteniendo los atajos
dinámicos. Está bien. Y así lo vamos a agarrar a Lee si está vacío. Entonces vamos a decir que somos artículos de corte corto punto está vacío. Entonces vamos a agarrar la matriz de artículos cortos en Lee si está vacío. Si no está vacío, significa que ya inicializamos esto en algún momento del tiempo. Y ah, no
necesitamos hacer nada con ello. Entonces eso es genial. Asegurar el atajo dinámico Cahir te iguala. Yo mutable elemento de acceso directo de aplicación. Es cuando queremos. Y podrías hacerlo con solo una cuerda y un tipo o podrías hacer con el tipo de cadena y subtitulado Eso es lo que vamos a hacer. Y entonces, ¿cuál es nuestro tipo? Bueno, necesitamos tener un segundo ícono y río. ¿ Cómo? Dijo que vamos a fingir que es una cita fuera. Y entonces lo que vamos a hacer es que vamos a tener uno llamado hookup como tú quieres engancharte con alguien. De acuerdo, ese va a ser del tipo. El nombre que le vamos a dar, el título localizado, esto sólo el título. Si tuviéramos cadenas localizadas, ahí es de donde lo sacas. Pero sólo vamos a decir esto y lo van a llamar Hook up. Y el subtítulo Esto es interesante Así que aquí es donde creo que el icono dinámico son dinámicos. Los atajos realmente tienen efecto. Tus subtítulos donde quizá deberías tener algún tipo de escritura aquí. Entonces, como, si digamos que fue una aplicación de mensajes y debería ir a mensajes, podríamos decir que podríamos decir aquí algo como esto. Ya sabes, tienes 10 mensajes nuevos. Está bien. Ah, En nuestro caso, finjamos que es una aplicación de citas y recibiste un mensaje de una chica, ¿de acuerdo? O chico o lo que sea que te interese. De acuerdo, animales, lo que sea. No estoy juzgando y vamos a decir, empieza una aventura con llegar al resto de eso en un segundo aquí. Simplemente dejaremos eso ahí por ahora. Entonces vayamos al ícono. Usted I icono de acceso directo de la aplicación. Entonces digamos que aplico icono de corte corto, ¿de acuerdo? Y lo vamos a hacer con una plantilla. Nombre de la imagen crea una pantalla de inicio. Acción rápida basada en una imagen en tu paquete APS, preferentemente en el catálogo de activos. Y así vamos a fingir que ya hemos creado una imagen. Sólo llamemos a este corazón. Va a ser una imagen de corazón e información de usuario. Vamos a poner a Neil aquí por ahora. Y, uh, si haces click en la derecha aquí para mirar lo que dice AP definió información sobre la pantalla de
inicio acción rápida para ser utilizada con tu hasta para implementar la acción. No necesitamos hacer esto ahora mismo. De acuerdo, Entonces, atajo
dinámico. Ahí está nuestro atajo. ¿ Ahora qué? Necesitamos dio se aplicación punto atajo elementos. Vamos a crear esos artículos cortos y decir atajo dinámico. Entonces esto es interesante. ¿ Por qué usar atajos dinámicos? Bueno, creo que un buen uso para los atajos dinámicos es cuando quieres fechado para ser dinámico como los mensajes . Entonces, por ejemplo, cuando cargamos la app que sabes que podríamos hacer es agarrar los mensajes. ¿ Cuántos líos? ¿ Cuántos mensajes tienes? Y podrías ponerlo en el icono de atajo. Ese es un buen uso para un icono dinámico o, en nuestro caso, comenzó a jugar con. Entonces vamos a fingir. De acuerdo, finjamos que hemos descargado el último gancho y dinámicamente Ah, bajo descargado lo último y cargarlo dinámicamente. De acuerdo, ¿qué más? Ah, ¿conoces un buen lugar donde podrías configurar esto también para que te guste para tus
iconos dinámicos de la aplicación . Siempre que estés cerrando la app. Entonces tal vez cuando la APP se cierre, actualiza el último gancho. Por lo que la próxima vez que lanzas, tiene nuevos datos, lo que sea. Solo te estoy dando algunos pensamientos aquí de lo que podrías hacer. Entonces en nuestro caso, finjamos que fuimos a Internet o a algún lugar. Y nos enteramos de que tienes un nuevo enganche o coquetear o lo que sea. Y digamos que era de Was de Kim. Entonces, uh, ¿dice que el gancho descargado es igual a Kim? Entonces lo que pudiste Dio está aquí en tu texto justo aquí. Podríamos simplemente usar la interpolación de cadenas y poner su nombre de su dinámicamente. Y ahora tienes un atajo dinámico, que es realmente genial. Hace que tu app parezca fresca y más actualizada. De acuerdo, entonces tenemos eso aquí. Eso es bueno. Adelante y saquemos nuestra imagen ahora. Entonces voy a entrar a Internet. Vamos al proyecto sustantivo y encontremos un ícono que nos guste. Vamos a decir coquetear, coqueto, Genial. A mí me gusta este. Vamos a darle un click y vamos a dar crédito. Teoh iconos sencillos por permitirnos usar este ícono en su aplicación porque estamos dando crédito, y voy a hacer comando turno cuatro y simplemente guardar esto como una captura de pantalla en mi escritorio y arrastrarlo alrededor para que no tenga que pasar por todo el proceso de descarga. Ahí está nuestro ícono. Y ahora si vas a nuestra yo era desarrollador biblioteca. ¿ De acuerdo? Si vamos a si haces una búsqueda aquí en el,
uh, uh, en la biblioteca desarrollador para tres D adoptando tres D toque en iPhone, Haz clic en eso. De acuerdo, entonces así es como llegas a esa pantalla, ¿ acuerdo? Y lo que queremos hacer es que queremos crear el icono de tamaño correcto, que es de 35 píxeles por 35 píxeles. Ah, yo siempre las llaves por aquí. Está bien. En la propiedad de información Referencia Lyski. Recuerda dónde vimos este 35 por 35 por aquí para el archivo de ítem de atajo de
aplicación U.
Y. Y. Aquí hay un enlace llamado archivos de plantilla. Vamos a hacer clic en eso. Nos va a descargar un archivo de Photoshopped. De acuerdo, Si no tienes photoshopped, no
tienes que hacer esta fiesta. Podrás obtener tus iconos. No obstante, estás acostumbrado a hacer eso. No me voy a preocupar por tres x por ahora mismo. Hagamos sólo dos x y una X. Voy a abrir esto con toma de fotos. ¿ De acuerdo? Nos da una bonita caja limitadora. ¿ De qué? De donde debemos hacer nuestro arte Donde no deberíamos. Está bien, está cargando. Cargando. Se está cargando. De acuerdo, ya basta de pop ups ya tenía suficiente de esos hoy. Está bien, voy a presionar a Zito. Acercar aquí. Vamos. Ahí vamos. Ahí está nuestro Ikonomou Ve a ver y apaga extras porque esas líneas azules
me están molestando . Si miras el lado derecho, tienen algunos ejemplos de íconos. Por lo que estos iconos tienen que ser de un solo color. Y por cierto, no importa de qué color los hagas. Se va a poner negro para ti en el set on the Iowa para que solo podamos dejar negro al artista porque sabemos que va a volverse el nuestro negro. Ni siquiera juegues con colorearlo. De acuerdo, así que sigamos adelante y llevemos nuestro ícono aquí y solo arrástrelo y presione Enter. Apague la capa con la cola del globo ocular. El otro cuando presidente voy a dar clic derecho en esta capa e ir a Rast surgen más tarde para que sea acreditable y luego Presidente W para la varita mágica Herramienta. Sólo voy a presionar borrar en ese blanco y borrar en ese blanco mantenga pulsado comando más t para entrar en trance remoto. Y mientras mantenemos el turno, vamos a hacer que este ícono sea un poco más pequeño. cierto,
la razón por la que mostré estos tips de Photoshopped es porque como desarrollador de IOS, he tenido que hacer esto un millón de veces. ¿ Al igual que qué? Un dolor. Vamos a buscar al diseñador teniendo diseños arriba cosa, enviárnoslo, volvamos a nosotros en dos días. Vamos o podríamos hacerlo justo aquí en cinco minutos. Entonces ahí está nuestro ícono. Si nos alejamos, empieza a lucir mejor. No tan pixelado. Entonces voy a apagar estas capas aquí. ¿ De acuerdo? Ese es el que yo quiero. Y por cierto, sí
comandé a para seleccionar todos. Y luego presioné V para entrar en modo selecto y en la parte superior aquí, seleccioné esta línea Centros horizontales en línea verticales centros para centrar este icono. De acuerdo, ahora
voy a ir a exportar archivo Legado web más seguro. Está bien. Y luego en el escritorio, voy a guardar esto como corazón a dos x dot p y G. Voy a ir un archivo exportar legado web más seguro y esta vez cambiarlo a 35 por 35. Este es el icono de uno X, su pestaña de prensa guardar. Y esto sólo va a ser corazón dot PNG. Está bien, se ve bien. Asegurémonos de que mis iconos estén aquí y se vean bien. Esa es mi captura de pantalla. Ese es mi corazón. Y ese es mi corazón a las dos X. Vale, Algo se ve fuera de esto aquí. No lo hagan Sólo asegúrense. De acuerdo, bueno, vamos a jugar por aquí. Voy a cerrar una tienda de fotos. Entonces ahora que simplemente renderizaron de manera diferente en tu computadora, ve a tus activos dot Exe c activos y agarra tu corazón a una X y arrástralo hasta aquí y luego agarra tu corazón a las dos X y arrástralo aquí en el medio. Está bien. ¿ Ves los corazones? Ahí están. Y, por
supuesto, interactúan Delegado, Nosotros sí fijamos el código para el corazón. Está justo ahí. Entonces si cargo esto en mi teléfono, deberíamos ver ambos iconos ahí. El de costumbre, que es el corazón que creamos, y el de búsqueda uno debería seguir ahí también. Voy a sostener mi teléfono aquí y ver si funciona. ¿ Entonces tus abdominales van a cargar? Entonces vamos a cerrarlo. Agarrándome el pulgar y arrastrando hacia abajo tan rápido. Está bien, ahí está mi búsqueda. Y ahí está mi enganche. Empezó a Fing con Kim. ¿ A quién? Por supuesto, nuevo, no
hace nada porque aún no dijimos que hiciéramos nada. Entonces ya casi estamos ahí. Nos dieron las imágenes, Nos dieron los atajos. Ese es un atajo dinámico ahí mismo. Adelante y hagamos la última parte. La parte muy menos. Lo cual es realmente fácil, en realidad, una cosa más. En primer lugar, preparemos nuestros storyboards. Acude a tu storyboard de punto principal. Está bien. Y, ah, tenemos nuestro controlador de vista de pestañas aquí, ¿
verdad? Vamos a usarlos limpios aquí. Vamos a llamar a esta búsqueda, ¿de acuerdo? Y en este, sólo voy a marcharme al texto aquí en este ícono. Esta haga clic y vamos a cambiarlo de personalizado a búsqueda. De acuerdo, ahí vamos. Y en el segundo 1 aquí, llamemos a éste. No esta restricción. Llamemos a este uno enganches, porque ahí es donde te conectas con la gente. Y vamos a seguir adelante y hacer clic en el icono aquí y para la imagen. Vamos a ponerlo en el corazón en vez de en segundo lugar. Vamos a llamarlo enganches. Está bien, está bien. Eso se ve bien enganches de cirujano. Muy bien, Ahora, sigamos adelante y volvamos con su delegado de aplicaciones y vamos a hacer es crear una nueva función aquí. Que lo por defecto. No está incluyendo la plantilla, pero puedes usarla. De acuerdo, ve aquí y vamos a hacer esto un poco más grande. Ahí vamos. Lo vamos a poner aquí. La función es aplicación. Y recuerda buscarnos. Realizar acción para elemento de acceso directo. Y lo deletreé mal. Funk. Ahí vamos. Aplicación. Ahí vamos. Realizar acción para artículo corto. Ese es el que queremos. Y así se llama a esto cada vez que se carga la aplicación a través de un atajo. OK, tan fácil. Entonces lo que vamos a dio es que si es la de búsqueda, vamos a cargar la pestaña de búsqueda. Y si no lo es, si es el otro, vamos a cargar el otro grifo. Ahora bien, si tuviéramos más pestañas, podríamos hacer esas. Si quisiéramos mostrar una alerta, podríamos hacer eso. Podemos hacer lo que queramos aquí. Cualquier cosa que se te ocurra puedes hacer aquí en nuestro caso. Es un tabulador. Son así si let tab V c es igual a ventana de auto punto que revisan controladores, vamos a agarrar el controlador de vista de ruta. Por supuesto, en nuestro caso, ya que estamos usando una pestaña son sabemos que el controlador de vista de ruta es una pestaña son por lo que necesitamos
lanzarlo . De acuerdo, mientes Tab, Controlador de
Bar. Entonces vamos a agarrar la barra de pestañas y luego lo que vamos a decir dio si el tipo de punto de atajo igual a la búsqueda, hagamos una cosa. Ahora tal vez te estés preguntando qué elemento de acceso directo tendrá aquí es el
elemento de acceso directo de la aplicación U Y . Al hacer clic en
él, lo pasa a su aplicación. Realmente genial. Y tiene una propiedad llamada tipo. Ahí es donde dijimos en la lista info dot p. El tipo. De acuerdo, lo
mismo aquí. Cuando dijimos tipo, retomó. En realidad podemos comprobar esas cuerdas ahí, lo cual es realmente genial. Y es que es de tipo string. OK, entonces si es de tipo de búsqueda, sigamos adelante y digamos, tabulador V c, ese índice seleccionado es igual a cero. Está bien. Y vamos a decir otra cosa si el tipo de elemento corto es igual a enganchar. Si es un gancho arriba. Entonces vamos a seleccionar, tener fácil que índice seleccionado sea igual a uno. Entonces vamos A continuación vamos a seleccionar el paso de conexión. Está bien. Entonces si si ¿Qué me está gritando por Michigan? Falta condición en estado if. Ah. Ah, sí. Ahí vamos. Está bien. Entonces si el tipo de búsqueda va a la oleada para tener de otra manera ir a la pestaña de enganche. De acuerdo, detengamos nuestra solicitud. Ahora, sigamos adelante y corramos. ¿ De acuerdo? Por lo que nota en este momento está en la pestaña de búsqueda. Voy a cerrar la aplicación o al menos presionar el botón de inicio. No voy a matar a la APP. No importa. Y voy a seguir adelante y correr el atajo. No ver. Es duro, vamos. Y así si hago clic en gancho, debería llevarme a la pestaña de enganche. Ahí está. Conectores ahora seleccionados. Ahora mira esto con la pestaña de conexiones seleccionada. Eso es lo que lo dejamos encendido. Ahora mismo. Si vuelvo a hacer este atajo esta vez para buscar, deberíamos ver la pestaña de búsqueda. Y ahí hay así que está funcionando. Entonces realmente, la idea detrás de los atajos es que tenías que encontrar un atajo, su título y subtítulo y la imagen y luego manejas cuando le das un tipo, y luego manejas lo que sucede cuando se selecciona ese tipo. En nuestro caso, solo
estamos cambiando de pestañas. Podrías hacer alertas, lo que quieras. Llegó muy importante. Punto. Necesito decirles, esto no funciona en el simulador al menos en el momento de la grabación. Tienes que hacer esto en un dispositivo. ¿ De acuerdo? El toque de fuerza tiene que hacerse en un dispositivo en el momento actual de grabación para los
atajos de aplicación , trabajo
del dedo del pie. Pero así es como lo haces. No tan grande de un trato. Bonito es bastante sencillo. Y solo para mostrarte, solo déjame mostrarte el valor que sacaste de este tutorial. Yo tiré abierto el proyecto de Apple. OK, así es como descubrí cómo hacer todo esto. Y, uh, sí, mira esto. Sí. Vamos, chicos. De verdad. Y sin mencionar esto en esto. De acuerdo, entonces, uh ,
sí, el sartorial es realmente corto, pero no fue tan fácil de armar. Entonces, de todos modos, ahora podrías hacer atajos de aplicación. Haz que tus aps sean mejores. Creo que los usuarios deberían pensar que los desarrolladores deberían estar haciendo esto porque agrega utilidad a tu aplicación. Nos estamos metiendo en un estado de desarrollo de iPhone y justo en general, donde queremos información cargando instantáneamente múltiples pantallas, cosas como esa se está convirtiendo cada vez menos en una funcionalidad deseada para los usuarios que
querían . Eso es todo. Atajos de aplicación. Volveré a ver la próxima vez en pendientes de muerte con Mark Price. Nos vemos pronto.
123. Swift y Objective-C en el mismo proyecto: Oigan, todos, Mark. Pricier deuda pendientes punto com Y hoy vamos a hablar de algo que ha sido altamente solicitado, que es la inter operabilidad entre asientos veloz y objetivo. Ahora, la prueba real es si se puede decir inter operabilidad 10 veces rápido. Yo lo probé. Parecía un idiota. OK, así que debe tratar mientras la capacidad de importar código rápido en objetivo ver un código C objetivo en Swift. Entonces voy a crear un nuevo proyecto siguiente código aquí, y vamos a crear nuevo proyecto. Y solo voy a hacer aplicación de vista única y dar clic en siguiente. Vamos a llamar a esto mi O B J c ap y lenguaje vamos a poner a un objetivo C y
sólo voy a poner esto en el escritorio. ¿ Todo bien? No es gran cosa. Entonces actualmente, ahora mismo, tengo un estricto proyecto objetivo c, ¿de acuerdo? Y, ah, igual que cualquier aplicación de una sola vista, Si cargo
esto, cargará mi controlador de vista única automáticamente. Ahora, digamos que quiero segundo controlador de vista, pero quiero hacer y Swift. Y por cierto, si no estás usando Swift, deberías estar bien. Todo proyecto por el que vengo a cada empresa por la que hago trabajo contractual? No dejo que se vayan hasta que me permitan convertir su proyecto a Swift. Ahora bien, no
tienes que cambiar tu código C objetivo. Esa es la belleza. Lo dejas todo igual. Pero, ¿algún código nuevo? Tienes razón. Creo que deberías estar escribiendo y Swift porque es un lenguaje mucho más poderoso y mucho más seguro. Entonces y no le hace nada a tu abrigo C objetivo. Todo corre simplemente bien y genial. No hay problema con tener veloz en proyectos objetivos basados en código C. Entonces deberías estar haciendo eso. Esa es mi opinión. Pero es mi opinión profesional, así que Ok, así que ahora mismo objetivo. ¿ Ver? ¿ Cómo nos ponemos velocísimos aquí? Buena pregunta. Bueno, lo
primero que vamos a hacer es crear un segundo controlador de vista. Va a la derecha. Haga clic en mi carpeta aquí, vaya al nuevo archivo, y vamos a hacer clase de Coco touch para Iowa. Y voy a llamar a esta subclase de un segundo VC de ustedes tienen su controlador. Eso está bien. Y el lenguaje va a ser rápido. Está bien, crea. Ah, interesante. Aquí te dejamos algo muy interesante que quieres señalar. ¿ Te gustaría configurar un objetivo C bridging header agregando este archivo a mi o b do say Oh bjc apple create and mixed swift and objective C target. ¿ Quieres x code configurar automáticamente un encabezado de puente para permitir que ambos idiomas
accedan a clases ? Sí. Ahora quiero señalar algo aquí sin embargo. Ahí hay cabecera de puente. De acuerdo, Es para que tus archivos rápidos puedan excederse de tus archivos C objetivo. De acuerdo, entonces técnicamente no necesito esto ahora mismo para que mi proyecto reconozca archivos swift . Pero al contrario, ya que lo haré. Entonces otra vez, esto aquí mismo este archivo de cabecera de puente. Aquí está la cosa. Eso justo abajo es si quieres rapido para poder acceder a clases objetivas C. De acuerdo, no al revés. No necesito hacer esto por mi objetivo. Seiko a exceso de un archivo veloz. Hay una forma diferente para eso. Pero voy a agregar eso De todos modos, ahora mismo, voy a dar click Gran cabecera de puente! Y lo que hizo aquí es que creó un archivo de encabezado de puente. Y aquí es donde importarás cualquier clase objetiva C que quieras poner a disposición Swift. Pero de nuevo, aún no
estamos ahí, Así que tenemos nuestro segundo controlador de vista aquí en Swift. Realmente genial. Muy bien. Entonces vamos a nuestro storyboard. Lo que quiero hacer es poner un botón aquí que cargará nuestro segundo controlador de vista. Entonces es una carga. Segundo VC me queda bien. Vamos a seguir adelante y alinearlo horizontal y verticalmente y darle un fijo dentro altura. Está bien, Genial. Dale, ahí está nuestro guión gráfico, Pero sigamos adelante y abramos el asistente de editor aquí y voy a controlar el arrastre desde el botón de aquí hasta el código. Y la acción es lo que queremos y vamos a llamar a esta carga segunda vista. ¿ Ver? Por lo que acabo de crear una acción hiedra en mi controlador objetivo de vista al mar aquí. Voy a cerrar el asistente editor entrar en view controller dot m y aquí arriba en la interfaz. Deseo declarar mi segundo controlador de vista. Correcto. Entonces hagamos una propiedad no atómica fuerte y,
digamos, digamos controlador de
segunda vista, espere un minuto. ¿ Por qué no está tirando hacia arriba el segundo V C? No está funcionando, ¿verdad? Bueno, la razón por la que no está funcionando es porque no hemos permitido que funcione, y así es como lo haces. Así es como lo que estoy a punto de mostrarte es cómo consigues que el objetivo C reconozca archivos swift . Y aquí está la llave. Tú importas. Hey, listo para mi o b g o b j c ap ok dot H Disculpe, Dash Swift dotage. Entonces lo que dio es en cualquier clase objetiva c que quieras importar swift en ti incluye esta declaración de importación aquí, y es el nombre de tu proyecto dash swift dot h. Ok. Y esto te va a dar acceso a todas las clases rápidas para que nunca,
nunca importarás clases rápidas individuales en cualquier archivo c objetivo cuando quieras exceso de veloz. De acuerdo, solo
importas el mi proyecto llamado Dash Swift touch dot h en la parte superior de ahí arriba y podrás excederlo. Así que intentemos esto de nuevo en propiedad en Atomic Strong, este tipo atemporal en controlador de segunda vista Y ahí está K. Es su segundo acuerdo v c cool, y vamos a asegurarnos de que funcione. Entonces cuando se haga clic en ese botón, cargará ese controlador de vista y se asegurará de que aparezca en la pantalla. Entonces lo que haremos es diremos, segundo V C igual a segundo VC. Alec Inicializar. De acuerdo, acabamos de inicializarlo y asignarlo. Adelante y tirámoslo a la pantalla. Por lo que auto punto presente controlador de vista, vamos a decir segundo VC animado. Sí, terminación. Neil, nos importa lo que pase después de que se cargue. Pero una cosa que sí quiero hacer sólo para asegurarme de que funcione es hagámoslo morado. Segundo V c Ese color de fondo punto de vista es igual a ti como color morado. De acuerdo, Tú siguiéndote conmigo aquí mismo. Entonces lo que estamos haciendo es que somos Hemos creado nuestro segundo do controller, cual, el
cual,
por cierto, está escrito y rápido. Si recuerdas justo donde? Entonces lo estamos asignando e inicializando. Estamos cambiando el color de fondo a morado, y luego lo estamos mostrando en pantalla. Entonces si ejecuto esta aplicación aquí, deberíamos ver cuando se presiona ese botón, deberíamos verlo aparecer en la pantalla. Está bien. Y así como puedes ver, hay una carga. Segundo botón VC. Si hago clic en él, es morado. Por lo que funcionó. Así son veloz. La clase se cargó con éxito. De acuerdo, Ahora hablemos del caso opuesto donde tenemos un proyecto rápido y queremos importar asiento
objetivo. OK, no
voy a crear un nuevo proyecto. Sólo te voy a mostrar en este porque es el mismo principio. Pero solo finge que tienes un proyecto rápido y quieres importar objetivo. Ves, así es como lo harías. Lo que dio es que crearías este archivo aquí mismo. ¿ De acuerdo? Goto a la derecha. Haga clic en su carpeta nuevo archivo, y crearía un archivo de encabezado. Está bien. Y lo que dio, como lo llamarías, ¿
justo cómo se llaman así? Recuerda cómo yo x code fue muy útil y lo hice por nosotros automáticamente, lo cual fue genial. Entonces mi o b j c ap dash bridging dash header dot hk. Por lo que le pondrías el mismo nombre. ¿ Es esto justo aquí? Está bien. Y tal vez estás pensando oh, así que automáticamente funciona ahora. Bueno, no, no
lo hace. En realidad hay que seguir adelante y poner eso. Entonces sigamos adelante y hablemos de eso aquí. Entonces aquí arriba en el ícono de tu proyecto, ve a construir ajustes y en la barra de búsqueda, solo escribe en puente B r I d Y ahí está. Y objetivo c bridging header, y es preguntar dónde lo puedes encontrar. Entonces lo que vas a querer dio es el nombre de tu proyecto slash el nombre de tu proyecto Dash bridging dash header dot h. bien, Bastante simple. Por lo que de nuevo, nombre de tu proyecto Srush. El nombre de tu proyecto Desesperado bridging dash header dot h y ah, eso es todo lo que tienes que hacer para que sea reconocido por la configuración de compilación en tu aplicación . Y luego por aquí aquí es donde importas tus archivos y muestras para mostrarte que
aún no está funcionando. Si entro a mi segundo controlador de vista, que está escrito y rápido y digamos que quiero excederme mi objetivo C primer
controlador de vista,¿a controlador de vista, ver qué pasa de nuestro primer Veasey de tipo? Se llama controlador de vista. Mira, no
está funcionando bien, ¿de acuerdo? Nada está apareciendo nada. Eso me da aire, OK, no
lo puede encontrar. Entonces lo que necesitamos dio es en nuestro archivo de encabezado bridging. Simplemente importa tus clases rápidas específicas. Ahora este es importante este tienes que importar las clases específicas que quieres
usar en Swift. De acuerdo, así que voy a decir de importar el u controlador dot h Así que vamos a importar ese archivo de view controller h aquí y volver a nuestra clase rápida y ver si funciona ahora. Var iba a decir primero Veasey de tipo view controller. Y ahí está. Se puede acceder a ella y crearla. Entonces todo lo que quería hacer aquí con eso pude así poder decir primero V c esa parada de
fondo Visto hasta color de fondo, segundo exceso todo simplemente bien. Entonces lo que acabas de ver es nosotros con éxito uh, accediendo a código rápido un objetivo C y accediendo al código objetivo C de forma rápida y note cómo aquí y Swift, no
tienes que importar nada. Este archivo de cabecera de aquí es todo lo que necesitas. Por lo que cualquiera de los archivos c objetivo que quieras rápido a exceso pondrás aquí y un objetivo. A ver si vas al View controller M. Si quiero importar mis clases de swift aquí y esto es para todos ellos, esto las importará todas. Importa el nombre de tu app. Dash swift dot h. se
trata de un archivo generado automáticamente. Si mando click en
él, en realidad auto genera esto y tiene la información de tu clase aquí justo aquí. Ver segunda NBC. Entonces en realidad son archivos reales. Simplemente golpear y archivar. Nunca lo tendrás. Nunca tocarás eso manualmente. Entonces así es como lo haces. No demasiado grande de un trato. Esto lo he hecho en todos mis proyectos desde que Swift salió muy poderoso, muy importante que te pongas rápido en tus proyectos. Soy un gran defensor de Swift, y no hay razón por la que no deberías estar haciéndolo porque la interoperabilidad es tan asombrosa . Y estoy muy contenta de que Apple dio esto tan marca Precio. Tus pendientes de muerte punto com Adelante y ponte rápido en tus proyectos ahora.
124. Dominar de LinkedIn: todos. Mark Precio aquí. Deb slips dot com Y hoy vamos a hablar un poco de preparación de carrera y vinculado en. Entonces voy a tirar hacia arriba en mi perfil de LinkedIn aquí. Y así cuarteto Prefacio. Lincoln ha sido una herramienta muy poderosa para mí. He conseguido múltiples proyectos,
múltiples trabajos fuera de Lincoln,
y, uh, uh, Lincoln no es tipo de cosa de la noche a la mañana. Eso es algo en lo que tienes que empezar a trabajar. Entonces si te interesa meterte en la comunidad de desarrollo, tal vez nunca antes has sido desarrollador y quieres empezar a construir una reputación en la que
quieres empezar a conocerte vinculado es el lugar para hacerlo. Al menos uno de los lugares. Entonces, uh, si no has creado cuenta, solo ve a Lincoln dot com y crea una cuenta. No voy a ir específicamente sobre cómo gustarme, dónde haces clic y dónde te encanta cargar imágenes y cosas así? Puedes experimentar con los tuyos propios. No es tan difícil, y te dan indicaciones e instrucciones. Pero voy a ir a dar clic a mi perfil aquí, y,
uh, así que tengo unas 1000 conexiones en LinkedIn, y ,
uh, básicamente ha sido un proceso de tres años. Para llegar ahí, puedes llegar un poco más rápido,
y, uh, uh, puedes ser muy efectivo en un periodo de tiempo mucho más corto también. No tienes que tener tantas conexiones para ser efectivo. Pero la idea detrás de vinculado es que empieces a hacer conexiones. Y cuando hablo de Lincoln, estoy hablando de lo que respecta al desarrollo. Empiezas a hacer conexiones con personas en tu área de experiencia, y empiezas a frotarte hombros con personas que tal vez no conozcas. Para que puedas empezar a involucrarte y ver qué está pasando en tu comunidad o en el desarrollo, el mundo del desarrollo. Eso, por ejemplo, cada semana ahora porque he construido mi longitud en cada semana hago que la gente me contacte sobre trabajos, pero aquí hay uno nuevo. Nunca lo he mirado. Vamos a verte. Veamos qué dice esta persona. Um, ésta es una solicitación. De acuerdo, entonces este es un mal ejemplo. Él está diciendo que estoy haciendo cosas. Entonces, uh, aquí está Aquí hay otro justo aquí. Hemos iniciado un proyecto y necesitamos un desarrollador de IOS, y así me contactó, Um hecho, cada semana, recibo correos de personas en alargar buscando desarrolladores de Android que buscan IOS desarrolladores. Yo sí disfruto el desarrollo también. Al momento de ser así, Islington podría ser seguridad laboral para ti si te tomas tiempo para llenarlo y cuidarlo . Entonces hablemos de algunas cosas. desvincula. De acuerdo, así que primero es tu nombre. Obviamente, es tu nombre. En segundo lugar, es su título ahora Esto es importante. Entonces una de las cosas sobre la longitud en es que los empleadores a menudo lo están buscando y Lincoln busca, um, te
encuentras por resultados de búsqueda por palabras clave. Y así una de las formas más prominentes y poderosas de ser encontrado es tu título principal aquí. Entonces ahora mismo, el
mío es un IOS senior y un ingeniero angular, y de hecho, probablemente
debería cambiarlo. Estoy haciendo mucha más enseñanza en estos días, y probablemente debería algo sobre instructor,
un instructor de campamento de arranque, instructor en línea, Tú instructor timmy, cosas así. Pero en su momento, este era el punto. El motivo por el que me puse esto aquí porque me veía interesado en conseguir
proyectos contractuales y cosas así. Entonces lo que quieres hacer es la posición que estás buscando cumplir es lo que quieres
poner su. Y así si yo fuera tú, me pondría su,
uh, uh, ingeniero de
IOS o desarrollador de IOS. Yo tendría mucho cuidado de poner la palabra Jr. En la razón por la que es ah, a veces Jr tiene una connotación negativa a ella. Y, uh, a veces los empleadores realmente no saben lo que están mirando hacia adelante que solo necesitan
a alguien que resuelva un problema para ellos. Y así solo pondría ingeniero de IOS o desarrollador de IOS y, uh, entonces dejaría que así te metieras en las entrevistas y luego puedes seguir adelante desde ahí, y, uh, ya
sabes, tu habilidades y personalidad, todo lo demás podría ser el factor decisivo. Y así Number Jr en su mantente como ingeniero, y, uh y entonces aquí hay algo interesante. El área que te pones aquí, um, pon el área ahí donde quieres trabajar. Entonces, por ejemplo, si quieres trabajar en Los Ángeles, vale, pero vives en Milwaukee, aquí
los de Los Ángeles. ¿ Obtienes más conexiones y esas cosas y luego, uh, ser conversaciones y discusiones como tu como tu trabajando con reclutadores o quien
puedas decir,
Hey, Hey, necesito reubicación Y la mayoría de las empresas estos días realmente están haciendo reubicación. Y por cierto, hay algunos centros tecnológicos diferentes. Fueron los salarios aire extra altos donde hay montones de trabajos? Está bien, y eso va a ser Los Ángeles. Está bien. San Diego, El Área de la Bahía. Seattle. Austin, Texas. Nueva York, Salt Lake City y Provo, Utah. Um, eso digo Boston, Nueva York Así y ya dije Seattle. Entonces hay alrededor de siete u ocho ciudades importantes que realmente están contratando en este momento para, um, ingenieros de
software. Y así, si te interesa mover alguna de esas ciudades, esos son grandes lugares para estar. Diré que ahora mismo estoy en Salt Lake City. Entonces, como, ciudad de todas las ciudades tiene el costo de vida más bajo, pero te pagan igual. Por lo que $110,000 salario en Salt Lake City va mucho más allá de lo que hace en Ah, en el Área de la Bahía, donde estás pagando $4000 en renta al mes o nosotros aquí afuera para conseguir la misma casa o lo que sea por lo que vas a vivir, como 800 dólares al mes. Tan gran diferencia. Pero de todos modos, muchas ciudades diferentes a las que puedes ir o podrías quedarte donde estás. Trabaja remotamente cosas así
también, también. Hay trabajo esparcido por todas partes. Entonces, de todos modos, la
ubicación es importante. Um, Y entonces, ya
sabes, esta es solo tu corriente donde estás trabajando, lo que estás haciendo. Ah, donde está tu educación. Pones eso todo en. Um, porque necesitas a Teoh. Y entonces tu verano es realmente importante. resumen debe ser fáctico. De acuerdo, No pongas soy un go getter, orientado a
resultados, individuo
súper poderoso. Mi mayor debilidad es que trabajo demasiado. Si ustedes todavía se ponen en ese tipo de chatarra en sus currículums Deténgase. Sólo detente. Nadie quiere escuchar eso. Quieren hechos. A nadie le importa lo que piensas de ti mismo. Se preocupan por lo que se puede dio. Entonces sé muy fáctico. Soy un desarrollador móvil de experiencia, app El desarrollador de aplicaciones, bla bla, bla, bla, bla. Construí 55 APS. Ya he hecho esto. Ya lo he hecho. Trabajé en esto. He trabajado en esos reclutadores y empleadores muy fácticos. Quieren ser fácticos. Decidirán qué piensan de ti. No necesitas explicarles lo que piensas de ti,
OK, OK, esto es realmente importante, en realidad. Al igual
que, no solo estoy inventando estas cosas como si te reunieras con los reclutadores y enviaras de vuelta tu currículum o algo de vuelta. Vas a ser como, No te pongas esto en tu Nadie quiere ver eso. Entonces, uh, detente con los currículums de 1995 donde eres grande y poderoso y asombroso. Lo harías tal vez. Pero no hace falta que anote eso. Basta con apuntar el fax. Además, una cosa que es bueno tener en tu resumen son las palabras clave para las tecnologías en las que te interesa trabajar. Entonces la mía dice desarrollo de IOS, desarrollo de
Android , programación
móvil objetivo
rápido C, etcétera, etcétera. Pero las tecnologías aquí que tú eres un fluido o que estás aprendiendo o que quieres aprender porque lo que va a pasar es, um cuando la gente te está buscando para trabajos y cosas como necesito desarrollador de IOS,
son va a teclear al desarrollador de Iowa y te va a sacar hacia arriba. Entonces, por ejemplo, aquí hay algo interesante. Recibo ofertas de trabajo o al menos invitaciones para trabajos todos los días, casi para IOS. De acuerdo, um, algunos para Android. Pero lo interesante es que nunca he conseguido uno para, como, pH B o para Java, como para Java enterprise o cosas así. Y eso es porque realmente no tengo interés en trabajar esas tecnologías, y no la tengo listada en mi portafolio en mi resumen. Entonces resume un gran lugar también enlistan palabras clave reales de las tecnologías, ya
sabes, porque solo para que lo
sepas, eres como un eres como un currículum digital que se lanza en el mundo de Internet. Y cuando la gente está buscando, van a estar buscando palabras clave en tu perfil sobre conseguir guardar y cosas así. Entonces, por cierto, toda la información que pones Arlington en su mayor parte es información pública. Entonces si no quieres que nada esté en manos del mundo, Internet, el gobierno, lo que sea, lo que sea, no te lo pongas vinculado en solo saber, vinculado en va a exponerte al mundo. Por lo que sólo mantente al tanto de que los resúmenes importantes. Y por cierto, estas cosas no son importantes en esto. Alguien va a mirar esto y decidir darme un trabajo o no. Es más así. Cuanto más tengo aquí, más impresionante. Parezco y miro al mundo exterior para que no lo lean todo. Pero tener todo esto es muy importante. Por supuesto. Um, podrías poner tu experiencia como tus trabajos pasados y cosas así. De acuerdo, hay algo realmente importante en esto que debes saber, sin embargo. No pongas todo tipo de experiencias absolutamente no relacionadas con la programación. Entonces si pasaste los últimos 10 años como gerente de restaurantes de comida rápida, ya
sabes, pesar de que quizá hayas hecho algunas cosas geniales, no está súper relacionado, y yo sugeriría altamente no ponerlo en su. Lo que yo sugeriría, en cambio, es que
si eres totalmente nuevo en la programación, lo que quieres hacer es poner proyectos. OK, dilo. Esto es experimentar empleos y cosas así. Yo tal vez lo dividiría en proyectos como si fueran productos, vale, y por eso es tan importante construir proyectos de cartera y ponerlos, conseguir hub y liberarlos. Si puedes liberar gracias a la tienda APP aún mejor. De acuerdo, cosas que están en vivo en la tienda APP técnicamente un producto. Entonces si dices que sí, construí y publiqué esta app. Está en la tienda de aplicaciones. Entonces lo que se puede hacer es, lugar de decir que trabajé en esta empresa, se
puede decir que trabajé para este producto, que podría ser su propia empresa. De acuerdo, así que si tuvieras, si tuvieras una app llamada receta Tiempo donde tuvieras un montón de recetas y cosas así, pero tiempo de receta aquí el tiempo que puedes poner el tiempo que trabajaste en ello, vale. Y luego ser muy fáctico. Implementado esto en este. En esto yo fui el diseñador principal y desarrollador on and put make it project focus. Entonces si no tienes experiencia en tecnología, Vale, antes que
nada, nadie va a Nadie va a importarle de verdad cuando te contraten. nadie le va a importar lo que hiciste en tus empresas. No sé que suena duro, pero no les va a importar. Entonces hazlo orientado al proyecto. Y, uh, muy fáctico. Yo hice esto y esto y este significado. Al igual que implementé solicitudes web que platicaban con un servidor. Analizé los datos. Esta APP cuenta con más de 15,000 líneas de código. Sé creativo y piensa e