Transcripciones
1. Introducción: ¿ Siempre has enseñado de crear tu propia aplicación, pero en pierna de Utah, cómo debes empezar y desde dónde empezar, entonces este curso es exactamente para ti. Te enseñaría cómo puedes crear una aplicación iOS. Haremos uso del aprendizaje automático para predecir los precios de Estados Unidos para los autos de segunda mano. Y para ello, te
mostraré todo como estructurar tu aplicación. Debe ser una aplicación nueva o un CIO contener múltiples vistas. Entonces buscaríamos en la web para encontrar el conjunto de datos correcto del cual traeríamos nuestro modelo de Machine Learning. Ahora te mostraré lo fácil que es crear un modelo de aprendizaje automático dentro del propio Xcode usando Herramientas de Desarrollador abiertas. Por último, nos limitaremos a la aplicación de escritorio con los datos correspondientes para ver si realmente hemos logrado lo que empezamos. Hola, soy tu instructor para este curso. Mi nombre es Rebecca y hago desarrollo. También hago algo de arte digital lado a lado. Por lo que yo sería como enseñarte todo en esta clase. Y si estaríamos usando sólo esta laptop, y este es el Mac con Xcode instalado. Entonces sí, eso es todo lo que básicamente necesitas para continuar con esta clase. Entonces nos vemos en la clase.
2. Primer paso: De acuerdo, Así que bienvenidos a este curso donde convertiríamos tu idea en una aplicación de iOS real. Entonces estaríamos usando el aprendizaje automático para este proyecto específico, cual les voy a mostrar. Y les diré eso como la idea vino a mi mente. Entonces vi un montón de sitios web que se venden como autos usados, ¿verdad? Y es un negocio enorme. Por lo que sólo estaban vendiendo autos a como algunos precios especificados, que creo que podría ser variable de forma los diferentes dos sitios web diferentes. Por lo que enseñé como usar los registros de venta de parches de cualquiera de estos sitios web. De hecho acabo de buscarlo en Google, cual te mostraré en el siguiente video en este sitio web. Y contiene conjunto de datos para capacitar a sus modelos de aprendizaje automático. Entonces esencialmente acabo de escoger uno de aquí y luego lo uso por dentro,
creo ML para hacer modelo ML. Entonces lo siguiente que quiero decirles a todos es que me dejen solo crear primero una hoja en blanco. Deberíamos ser fáciles de entender para nosotros. Sí. Entonces lo siguiente a ese reto que enfrenté fue como, realmente no lo sé todo sobre el desarrollo de iOS. Y eso es, oh, está bien. Al igual que realmente no necesitas conocer todas las API y esas cosas para poder crear una aplicación. Siempre hay una salida con todo. Además, quería enfocarme solo en nuestra única vista y una aplicación sencilla. Entonces sí, realmente no sé cómo se están compartiendo los datos. Solo estoy viendo esto como un punto de vista de negocios, como si realmente no sabes cómo se están compartiendo los datos entre diferentes vistas, que lo que puedes hacer es simplemente crear una web de vista. Sí. Y sí, así que en esa visión específica
, contendría todo como el Berlín para el cálculo. Entonces habría deslizadores, habría porque paso o lo que quieras incluir, entraría en mucho más detalle en los próximos videos, como cómo los usas y como lees y escribes dos valores de ellos. Y luego cómo integras tu modelo de aprendizaje automático en eso. Entonces obtienes una salida que es como realmente lo calculas y en realidad funciona. Entonces, lo primero, papá, cuando me vino a la mente la idea de crear una app, ¿ esto solo
fue como lo de la reventa de autos? Por lo que enseñé todo esto que tendría. Y así es como debes acercarte a tus proyectos como primero debes dibujarlo como una, una manera realmente ruda para que sepas lo que vas a hacer. Por lo que solo creamos esta cosa del tipo de interfaz y luego lo
tienes en tu mente que tendrías como selecciones. Supongamos que esto sería para los modelos. Entonces habría selección para dependiendo de tu conjunto de datos a
gustar, debería ser un auto de transmisión automática o manual o un auto semiautomático. Y habrá un deslizador para el kilometraje. Estas son cosas sencillas que te vienen a la mente cuando
pasas por lo que consigo que tenía en mente, que era sobre la detección de precios de venta de Cardi. Entonces como exactamente enseñé que me enteraría de todo esto. Entonces lo primero fue que acabo de buscar en la web y encontré algunos recursos gratuitos realmente geniales y como sitio web de tracción y realmente no quiero escoger uno, porque en realidad usé manzanas en el propio Foro de Desarrolladores también. Por lo que hay un par de sitios web que viene en los resultados de Faustina son realmente útiles la mayor parte del tiempo. Por lo que no serías capaz de obtener una respuesta a tu pregunta que tienes en mente. Entonces así es como te acercas como crear una aplicación. En primer lugar, al igual que buscarías específicamente todos y cada uno de los componentes. Yo sí creo que no lo sabes muy bien. Entonces solo busqué esta cosa de me gusta como creo un picker, ¿cómo creo stepper? Y luego simplemente te dedicas a buscar como, ¿cómo debo integrar mi valor de ventana modelo ML que tengo en mi aplicación? Esta es una búsqueda en Google que debes hacer. Y esencialmente, hice todo esto y así es como
llegué a la idea de crear esta aplicación y finalmente lo hice. Por lo que en el siguiente video comenzaremos por buscar el conjunto de datos y luego entrenaremos a nuestro modelo ML. Y después lo utilizaríamos dentro de nuestra aplicación en los videos asequibles. Por lo que realmente espero que aprendas muchas cosas con este video. Por lo que debes seguir con esta clase.
3. Encontrar el conjunto de datos adecuado para nuestro modelo ML: De acuerdo, entonces lo primero que tienes que
hacer es gustarte buscar en Google ese conjunto de datos que estás buscando. Y en mi caso, busco el conjunto de datos de autos RD usados. Entonces el primer resultado, decidí ir con él. Ahí me llevan a esta página. Y como él realmente tiene mucha información sobre toda la codificación necesaria para crear su aplicación. Pero realmente necesitamos solo archivo CSV. Y ahí tienes. Lo tienes justo aquí. Y él, hay muchos archivos CSV para todos los diferentes modelos, pero realmente no los necesitamos. Entonces, solo descarguemos este. Porque nos estamos centrando principalmente en modelos de RD solamente, como sierra cuando terminamos con esto mucho menos solo abrir Xcode. Sí, así que solo tienes que mover el cursor en la parte superior. Y bajo herramienta de desarrollador abierta, seleccionarías crear ML. Ahora te voy a mostrar lo fácil que es crear realmente un modelo de aprendizaje automático. Tan solo tienes que seleccionar una ubicación y dar click en nuevo documento allí para seleccionar Regresión de tabla. Y luego dar click en Siguiente. Vamos a darle un nombre que podría encontrar Como relevante. Y puedes darle una descripción también, pero está completamente bien si no lo sabes,
solo tienes que dar click en Siguiente después de que hayas terminado con esto tanto. Por lo que aquí se nos presenta con este tipo de interfaz. Ahora solo tomamos nuestro archivo y lo arrastramos en la idea de datos de entrenamiento. Ahora nos pedirías que seleccionemos un objetivo. Target es lo que el buen modelo identifica y las características es lo que le gustaría que se usara para identificar al objetivo. Por lo que estamos seleccionando cuatro de estos. Y No.3, que son como etiquetas y esas cosas. Acabamos de dejarlo por ahora. Después ya terminas. Solo tienes que hacer click en verde, que es como si, arriba. Eso sólo tomaría unos segundos y ya está hecho. Entonces una vez hecho, se puede ver el error cuadrado medio raíz es como 4 mil dólares y eso está bastante bien. Ahora solo tienes listo tu modelo. Simplemente puedes hacer click en get y te pediría una ubicación donde lo guardaría. Por lo que sólo puedes ponerle el nombre que quieras. Y sólo tienes que seleccionar una ubicación para donde quieras guardar esa cosa. Y basta con hacer click en guardar. Y ahí tienes, tienes tus modelos de aprendizaje automático 3D. Y en las próximas clases nos va a gustar sumergirnos
profundamente en la creación de nuestra aplicación y luego usaremos este modelo en última instancia.
4. Crea el proyecto básico: Por lo que ahora estaremos creando nuestra aplicación. Por lo que es un lag realmente simple iOS y luego le das un nombre para el ciclo de vida seleccionar Swift UI app. Y realmente no necesitas marcar ninguna casilla. Simplemente pincharás en Siguiente y te preguntará, ¿
dónde quieres guardar tu aplicación? Y solo puedes seleccionar cualquier ubicación de tu propia elección y luego solo tienes que hacer click en Crear. Y luego Xcode te dará este diseño básico. Entonces lo primero que tienes que hacer es como un cambiado como humillado, estoy usando iOS, iPhone 11 simulador para esto. Podrías usar cualquiera, Depende totalmente de ti. Entonces este es nuestro primer paso básico. Ahora una vez que se cargue, solo
necesitas gustarte tomar tu modelo que
acabas de despejar y lo arrastrarás dentro de tu proyecto. Y te preguntaría algunas cosas y asegurarte de que esas se revisen. Acabas de dar click en Vale, arriesgado. Y ahora tienes tu modelo dentro de tu aplicación. Por lo que una vez que hayas terminado con esto, solo
podrías ir aquí y revisar algunos detalles al respecto. Y dentro de la predicción se puede decir que da una salida como premio, que a menudo es ser David doble y toma alrededor de la pierna cuatro parámetros diferentes. Algunos de manifestarse y algunos de ellos son dobles. Trataremos con demoed en sus próximos videos.
5. Añadir propiedades importantes a nuestra aplicación: Por lo que ahora empezaremos a construir nuestra aplicación. Entonces lo primero es que solo echemos un vistazo a ese archivo CSV que hemos usado para crear nuestro modelo de aprendizaje automático. Y accidentalmente abrí un archivo diferente. Entonces ahora sólo vamos a abrir el archivo principal. Sí. Por lo que se puede ver que tiene un tipo de cadena en el modelo. Y también podemos comprobar que aquí fuera residente. Por lo que necesitamos crear para la opción que le daríamos a nuestro usuario. Tendríamos nombres exactos como se da en el archivo CSV como manual con el M capital y automático con un capital y cosas y ortografía exacta del tipo de combustible gasolina y diesel. Porque si acabamos de estropear ahí, entonces el modelo no sería capaz de calcular el precio. Entonces para eso, tenemos que crear una gran cantidad de datos con el
fin de crear nuestros recolectores y pasos también. Para el kilometraje, vamos a usar un paso a paso. Entonces comencemos primero creando una instancia para nuestro modelo de aprendizaje automático. Por lo que nuestro nombre de modelo de aprendizaje automático es Adi car. Y tú solo, así es como se crea una instancia. Ahora podrías usar las propiedades dentro presentes dentro de esta clase, que es nuestro modelo ML, y usarla dentro de nuestra estructura. Ahora, crearíamos la estructura básica para nuestro uso que vamos a mostrar al usuario. Entonces una de las vistas sería porque en estilo segmentado, obtendrías un control de la misma Cuando realmente voy a mostrar la parte de la interfaz de usuario. Entonces por ahora nos deja anotar los diferentes nombres de modelos que necesitamos usar que un usuario seleccionaría entre y esos actuarán como entrada eventualmente. Entonces estos son los nombres de modelos de Dao los cuales estoy usando para este propósito. Al igual que los datos son bastantes modelos en realidad. Pero dolió que en lugar de como incluir a cada uno de ellos, sería mejor si incluyera solo las principales que como tenían la mayoría de las ventas dentro de ese archivo. Entonces sería mejor, más eficiente, diría yo. Entonces ahora que hemos hecho esto para el nombre del modelo DA, entonces procederíamos a hacer lo mismo para el tipo de transmisión, el tipo de combustible. Y también lo que el año de fabricación. Estas tres cosas también vamos a sumar. Y sería una a para crear los puntos de vista que tenemos en mente. Además, una cosa es que este aviso de que mientras escribo esos nombres, estos nombres como gasolina y diesel, acabo de escribir. Entonces volvería al archivo CSV y lo buscaría. Al igual, ¿he escrito el nombre correcto o así? Y en realidad estoy empezando con modelos de 2013. Entonces, solo primero asegurémonos de si nuestro archivo realmente tiene un modelo 2013 aquí. Por lo que podemos hacer fácilmente eso usando el Comando F en estos archivos. Entonces sí, ahí tienes. Este es el 2013 disponible y podemos ir hasta cerca como 2020, supongo. Acabo de comprobarlo de antemano también. Entonces sí. Podemos ir por al 2020. Por lo que tendríamos que incluir todos estos años. Son como siete años, supongo. Entonces esta es mi preferencia personal en realidad. Y domé que están creando la pantalla de la aplicación como crear matrices estáticas. Y luego usarlos como picker en forma segmentada es mejor que usar el recolector habitual, tradicional. Entonces esto es un poco de personalización que le estás dando a tu aplicación. Y cuando nos estaremos moviendo más a nuestra Parte 2, verán cómo estructuré todo esto para que se vea más y de manera realmente simple, pero poderosa. Ahora ya que hemos hecho esto, Pasemos al socio de la interfaz de usuario. Entonces para eso, como en realidad acaba de borrar nuestra presente cita. Realmente no lo necesitamos. Y estaba pensando en usar una imagen específica que ya había descargado de antemano. Entonces para ese propósito, estamos usando una pila. Como todos saben, esa pila en realidad están ingiriendo un eje zed. Por lo que solo pegaré la imagen primero. Y esta es la imagen
y, y acabo de darle un nombre sencillo también. Entonces me gusta mucho este color y me entrenaron para usar este color directamente desde la propiedad de color, pero realmente no lo estaba consiguiendo. Entonces para facilitar las cosas, solo
estoy importando la imagen desde la carpeta de activos. Y es bastante fácil, solo tienes que dárselo a modificadores y uno sería redimensionado, luego ignorando el área segura. Y hace el trabajo como verás por ti mismo también. Entonces, solo hagamos esto y solo veamos cómo se ve. Está bien, así que se ve bien. Entonces por ahora que hemos hecho tanto, Vamos a seguir creando algunos liberales, como justo arriba. Porque estoy pensando en darle un nombre. Por lo que hace, tiene sentido lo que un usuario a, cuanto a lo que realmente está pidiendo la aplicación. Entonces vamos a utilizar la propiedad de texto simple. Y bajo eso, empecemos con el nombre del modelo. Entonces escribamos modelo y le daríamos algunos de los modificadores que siento que son realmente, realmente buenos, como importantes. Entonces uno sería font-weight y vamos a darle luz. Vamos a darle un tipo diferente de Feel. Haz un Drake. Entonces para ese propósito, estoy usando el peso de la fuente como ligero. Y entonces usaríamos el estilo de fuente como título. Y obviamente, solo pensando en darle una fuente ultraligera, Vietnam. Creo que ambos lo son. Está bien. Depende totalmente de ti En realidad lo hay. Aquí es donde entra la personalización. Personalmente siento que el ultraligero le da un modo y un enfoque diferente, como no realmente, muchas apps usan textos en este tiempo. Ahora que has hecho esto mucho menos como darle algo de color. Entonces lo llamaríamos negro. Y siento que está realmente bien. Y entonces vamos a darle un poco de tema también. En realidad, esto fue algo opcional para mí porque pensé que usaría la propiedad de alineación dentro del marco y simplemente alinear todo el lado izquierdo de Buda. Pero papá no funcionó. En última instancia, tuve que usar un espaciador dentro de un refrigerio. Si no sabes qué es una especie, cada vez que pones un espaciador dentro de una pila y solo ocupa todo el espacio. Por ejemplo, si quieres, ponlo dentro de un borde dentado después de algunas cosas. Por lo que tomaría todo ese espacio de la mano derecha y simplemente empujaría W hacia la izquierda. Entonces así es esencialmente como funcionan los espaciadores. De igual manera, si tuviéramos que usar un espaciador dentro de estab, entonces simplemente empujará las cosas a bordo. Zona más ascendente en la zona descendente, dependiendo de dónde lo pongas. Antes de W o después de la vista. Entonces sí, creo que todos los mensajes de texto pasarían al lado izquierdo. Y este punto, en realidad está apareciendo justo en medio de la aplicación, la playa. Y realmente no creo que sea bueno, pero también trabajaríamos en eso. En última instancia, cuando empezaremos a construir más y más de la vista, entraría justo en encajar justo en el lugar. Por lo que realmente no necesitamos preocuparnos por eso por ahora. Y solo puedes plegarlo para que se vea más compacto y entiendas lo que todo está pasando. Entonces ahora antes de crear más grande, en realidad
teníamos que crear nuestras propiedades estatales. Y por sus propiedades estatales ese vaso no funcionará en realidad. Estaremos utilizando fijaciones bidireccionales con nuestras propiedades de estado para leer y escribir realmente valores de datos, los cuales estarán utilizando aún más dentro de nuestra integración de nuestra salida de modelo ML. Por lo que tendría mucho más sentido en los próximos dos o tres videos. Pero por ahora, solo creemos una propiedad estatal para cada uno de estos remolinos que hemos creado. Por lo que obviamente el más duro pasaría por el nombre. Entonces vamos a nombrarlo simplemente como nombres elección. Y mantendría un valor entero. Y todos saben que el valor entero corresponde a una posición dentro del Adi. Entonces, por ejemplo, si le estamos dando una selección de nombre y valor entero de uno, eso significa dentro del nombre moderno, si fuéramos a usar esta propiedad estatal específica con el amonio, entonces el uno es el E3 moderno. Y de igual manera, no tendría mucho más sentido cuando empezamos a escribir el código para el recolector. Pero por ahora, todo lo que tenemos que hacer es sólo limpiar esas propiedades dirigidas que estaremos usando más. Entonces hemos hecho tres y simplemente no vamos a hacer uno más. Y una vez que terminemos con
ello, en realidad son unos nombres bastante grandes de los que hablé como darle un nombre pequeño más compacto. Por lo que acabo de borrar la mitad de la selección tendría sentido, supongo. Ahora pasaremos a muchas más cosas en la siguiente lección. Y cómo vamos a estar usando propiedades estatales de forma abierta para adjuntar. Y lo hacen después de esto.
6. Crea nuestra vista de Picker: Ya que hemos terminado de hacer nuestras propiedades estatales, por lo que ahora en realidad podemos usar cerdo. Entonces el orden de sintaxis, porque en realidad es bastante simple. Simplemente le das un nombre en el nombre como medidor de batería se podría decir. Y te separaste con una coma y luego le das un podómetro de selección. Por lo que para la selección mejor medidor, en realidad
se utiliza una de nuestras propiedades estatales. Y verías que estamos usando un signo de dólar justo antes del nombre, lo que asegura que hay un enlace bidireccional, lo
que significa que no sólo lee el valor sino que también lo vuelve a escribir. Entonces si cambiáramos el elemento seleccionado para que le dijeran tres, entonces la selección del nombre apuntaría al valor tres. Y eso en última instancia, ya que estamos usando el nombre moderno, cualquier insider para cada bucle, del
cual el orador mostraría los ítems. Por lo que señalaría el tercer punto. El cuarto elemento dentro de un modelo es numéricamente mismo. que sepas que las zonas empiezan de 0 a 0, 1, 2, 3. Entonces u Así es como esencialmente haces un vaso de precipitados. Estás en bucle por dentro y Eddie, Como y mostrando sus valores dentro de una etiqueta de texto. Y entonces ahora que hemos hecho esto, también
deberíamos darle un tipo de estilo segmentado hasta
segmento más grande HDL es esencialmente como una pila horizontal de opciones. Y se ve mucho más presentable. Entonces, solo hagámoslo. También hay un modificado para ello y es bastante fácil de hacer en realidad. Y sólo escribir segmentado porque el tiempo. Y eso es todo. Y sólo darle su propio soporte, supongo. Sí. Ahora que hemos hecho esto, esencialmente
significa que nuestro recolector se presentará. Entonces, solo retomemos nuestro área de previsualización. Y veremos eso ¿cómo se ve todo? Entonces nos haríamos una idea al respecto. Sí, ahí tienes. Entonces esto es esencialmente como se ve y podemos simplemente
comprobarlo también si está funcionando o no funciona. Por lo que cada vez que simplemente cambiamos la selección, el valor de la selección también cambia debido al enlace bidireccional. Y señalamos objeto de datos en diarrea.
7. Populating nuestra pantalla con más vistas: Muy bien, Ya que hemos creado la vista picker para el tipo de modelo, por lo que podemos simplemente copiar en consecuencia discordia basada para crear el pick de ti para el resto de las cosas también, que realmente necesitan. Por ejemplo, para el kilometraje, en realidad
vamos a usar stepper. Por lo que realmente no tiene sentido usar porque tú ahí. Pero para el resto de ellos, en realidad
necesitamos usar este estilo de selección. Entonces ahora que hemos hecho esto mucho menos en cuanto a enumerar las cosas, está completo, pero para los demás, tenemos que hacer algunos cambios menores y eso simplemente los hace diferentes. Entonces solo me estoy separando y puertas porque ustedes estaban el uno al otro. Entonces estoy usando esta propiedad mark. Es esencialmente juvenil o esto solo solo comenta y como separa ese código en diferentes etapas dentro de nuestra aplicación. Por lo que acabo de nombrar a esto primero, se refiere a una primera selección de u, v hat. Entonces ahora lo cambiaríamos a tipo de combustible ahora. Y cuando hacemos eso, tenemos que cambiar el agregado en que es un para cada bucle se está ejecutando como cuando esencialmente estamos cambiando todo dentro de él en realidad. Y también que nuestro enlace bidireccional, estamos usando nombres elección ahí. Pero vamos a utilizar la selección de combustible para este en particular en realidad. Entonces vamos a empezar y vamos a hacer lo similar para esa transmisión también y también para el año por año de fabricación. Entonces vamos a seguir adelante con esto. Este proceso realmente no requiere mucho de algún conocimiento diferente y simplemente estamos poniendo en diferentes valores en lugar de las cosas que teníamos antes para la primera. Porque ahora que creamos. Entonces por eso estoy acelerando las cosas para la justicia. Pero como es bastante sencillo de entender y podrías usar tu propio pensamiento para esto, como qué impuesto necesitas para mostrar el cabello. No es realmente una obligación que se use el mismo texto que estoy usando. Incluso podrías experimentar con Dar, selección, nuestro tipo que estás tratando de darle al usuario. A lo mejor podrías usar campos de texto para tomar en la entrada del usuario. O tal vez salgas si fueras a usar algunas cosas como fabricante de Irak en kilometraje o algo así. Entonces por ahora por hacer que todo vuelva a bajar, simplemente plegando las cosas para entender que hasta dónde estamos dentro de nuestro código. Entonces ahora que nos hemos ganado hizo esto, Sólo
vamos a marcar esta cosa como renta. Y así conforme procederemos, añadiríamos el resto de los componentes a los que faltan nuestra aplicación de trauma. Entonces vamos a crear una nueva pila que es importante en la creación de esto es realidad una UI vistas pueden contener un máximo de 10 vistas, solo vimos estamos creando otra, usamos Dagens fuera o recepción. Podemos acomodar todos los w's.
8. Terminar todos los componentes de UI de nuestra aplicación: De acuerdo, así que sigamos construyendo nuestra aplicación. Entonces lo primero que hice fue como anotar Aspasia por si acaso como, sí, ahora
todo está empujado para abortar área y obviamente necesitamos una pila de borde más y combo más
grande porque necesitas eso agregado para el año de fabricación. Por lo que acabo de copiar rápidamente uno de estos y ahora lo pegaré aquí, y en consecuencia lo volveré a cambiar. Por lo que el teléfono detecta cada tendría que escribir aquí en su lugar. Y dentro de esos valores están para ser mundo vinculante, ven aquí, selección. Y luego dentro del área por la que está pasando el bucle foreach, usaría editado que creamos como patio o como sea que hayas nombrado. No es obligación utilizar nombres específicos únicamente en ellos. Depende completamente de ti en realidad. Entonces, sólo vamos a seguir adelante con ello. Ahora que hemos hecho esto mucho, necesitamos crear otra pila de bordes. Y esta vez no estoy tratando de copiar todo el asunto porque obviamente esto en la pila se usaría para la propiedad kilometraje. El kilometraje que no vamos a usar más grande. Vamos a usar un paso. Creo que no se llama como Deborah después de todo. Se llama deslizador. Mi error. Sí, Entonces para ese propósito solo estamos usando
rápidamente los modificadores para el texto como lo hace en el belting. Pero ahora crearíamos un deslizador para nuestro uso. Pero hay una cosa que me perdí al crear esas propiedades privadas estatales. De hecho se me olvidó mencionar uno por kilometraje, que sería del tipo doble como obviamente. Entonces sí, así que necesitamos simplemente volver a cambiar esa fuente. Yo lo he hecho. Como puedes ver, estoy tratando de que me guste codificar esta cosa, pero obviamente no lo tengo. Por lo que voy a añadir rápidamente esa propiedad ahora ya que veo eso. Sí, no está ahí. A veces sucede que te olvidas de 1000. Había que estar ahí uno. Entonces obviamente solo estoy copiando esta cosa y
rápidamente lo cambiaría a kilometraje. Y le vamos a dar un tipo doble sentido si simplemente
erosionamos igual a 0 o podemos escribir 0 también. Papá también indicaría que se trata de una propiedad del tipo doble. Entonces ahora que estamos entonces escritos tanto, sólo
podemos volver a nuestro slider y ahora funciona perfectamente bien. Por lo que ahora nos tenemos que dar un alcance más adelante. Es así como funcionan los deslizadores y. Y si realmente no sabes cómo funcionan los deslizadores, podrías simplemente Google las cosas tan bien como yo también lo hice al crear esta cosa. En realidad, realmente no recuerdo la sintaxis exacta para stop. Entonces como todo el mundo hace distinto. Así que simplemente lo busqué en Google y en realidad me
fue muy útil y alguien acaba de publicar al respecto. Por lo que acabo de copiar esa sintaxis de ahí. Y ahora estoy usando esas propiedades que también te mencioné. Entonces estoy haciendo de esto una vista de texto como una vista separada también, que mostraría lo que hace sliders valor está en. Y asegurándome de que no estoy usando enlace bidireccional aquí y es solo kilometraje, no devolver dólar diciendo ya que el texto sigue adelante, cambiar cualquier cosa en justo ahí para gustar, sentarse ahí y mostrar qué millas hemos seleccionado dentro de nuestro kilometraje deslizador. Por lo que es bastante simple y sólo le estamos dando algunas propiedades simples. Básicamente. Deja lo que debería ser su color de lo que serían un peso de fuente y estilo de fuente. Entonces solo para igualar a todo el equipo de la aplicación que hemos venido construyendo. Entonces ahora aquí tenemos nuestras devoluciones y se puede ver que esos vaso funcionando perfectamente bien. Tan grabado, ¿verdad? Cosas en realidad. Entonces no sé qué estaba mal con la vista previa podría ser algún problema de bug o lo que sea, problema de rendimiento de
mi portátil, pero nuestra aplicación funciona bien por ahora. Entonces, sólo vamos a ir.
9. Integrar el modelo ml en nuestra aplicación: Ahora que hemos hecho la parte de la interfaz de usuario para nuestra aplicación, aquí llega a una parte realmente importante, que es como crear la función que
en realidad contendría una llamada para usar nuestro modelo de aprendizaje automático, que entonces sería proporcionar a la hija como la salida para nuestra app, como lo que realmente hace. Todo depende de la salida de esa función que dé. Entonces solo voy a mostrarles lo fácil que es usar ese modelo de aprendizaje automático. Entonces démosle un nombre. Podemos simplemente nombrarlo cualquier cosa. Sólo lo estoy nombrando. Precio calculado. Depende totalmente de ti como ponerle nombre. Y estamos creando esta función dentro de nuestra estructura y asegurarnos de eso. Pero fuera de nuestra propiedad corporal, las funciones
sinc no adoptan sin embargo, no se ajustan al protocolo. Entonces estamos haciendo esto dentro de un bloque do catch. Entonces vamos a crear constante con el mismo nombre que nuestro modelo ML. Y te digo que esto es importante y solo
tienes que adjuntar esta cosa también, salida. Ahora, ahora que has hecho esto, ahora escribiríamos este método que es modelo seco.predicción, que tiene, que es una especie de estructura ya que tiene un inicializador propio. Y nos está pidiendo que anotemos los diferentes valores. Entonces como ya que está en esa cadena, así que solo podemos usar string y dentro de corchete, podemos dar los nombres de propiedad de estado que hemos usado, que en realidad se refiere al valor. Como pude haberles dicho como, ya que estamos usando encuadernación bidireccional. Entonces cuando miramos, seleccionamos cualquier cosa dentro, cuanto más grande, el valor de esa propiedad estatal realmente cambia hacia, se selecciona dentro del vaso, dentro de nuestra onda U, u y w almacena la propiedad real. Por eso estamos usando esos valores dentro de este método. Valor del dólar calculando para esta constante. Ahora, Swift nos está lanzando y editando y viendo que no estás usando un bloque de captura. Entonces, obviamente, arreglemos ese tema también. En realidad no es algo incluso si dejas el bloque de gas por completo, MD, sigue bien, como si todavía funciona. Pero vamos a sumar un poco de código ahí también. Pero por ahora solo despejemos el blog y como haríamos algo al respecto. Por lo que sólo podemos dejar un comentario como si volviéramos a él más tarde o algo más. Entonces espero que entiendas que cómo esto no deja que la constante de salida de la guardia ADI está funcionando. En realidad está usando esa capacidad de predicción de nuestro moderno. Y luego está tomando entradas que acabamos de
crear usando esas propiedades estatales. Y las propiedades cambian a medida que el usuario interactúa con nuestra aplicación
, selecciona diferentes opciones. Entonces esas propiedades estatales Gibbs en almacenar esas cosas. Y ahora acabamos de crear una nueva constante que es del nombre precio, que en realidad viste que cuando estaba escribiendo este código, Swift me sugirió automáticamente el componente de precio de esta salida de cuerpo, una constante. Eso significa que tiene el valor de nuestra salida. Por lo que ahora la salida está dentro del precio. Tenemos que encontrar una manera de cómo mostrarlo dentro nuestra aplicación que haremos en la siguiente lección.
10. Aprende a alertas en Swift: Entonces como tenemos nuestra salida almacenada en esta propiedad de precio, solo
encontremos una manera de mostrarla dentro de nuestra aplicación. Lo que estoy pensando es que usaríamos un botón el cual luego conducirá a un ala de alerta hacia arriba. Entonces para esa alerta, en realidad
vamos a usar tres nuevas propiedades estatales. Sí, tres nuevas propiedades estatales porque en realidad se requieren. Acabo de quitar accidentalmente nuestro Lienzo de la mutua. Simplemente estoy descubriendo rápidamente que cómo corregir esa cosa, demostrar que acabo de hacerlo. Pero para papá, mientras solo te digo que Para alerta, en realidad
necesitamos tres propiedades. ¿ Y por qué es eso? Porque primero sería un booleano que
le gustaría hacer tienda la alerta se muestra o no. Te diría con más detalle como ¿cómo funciona todo? Entonces habría un título de alerta y un mensaje de alerta envía alerta a contiene tres componentes. Ahí hay un título, luego hay un pequeño mensaje, y ahí está nuestra carga descartada, que normalmente se compone de bien. En realidad se podría escribir cualquier texto aquí, pero generalmente tenemos razón. Está bien. Por lo que su propiedad sería obviamente un booleano como tolueno, que se utilizaría para si alertan se está mostrando o no. Muéstrale lo fácil que es crear analógico. Entonces ahora volvamos a nuestra función y sólo llenaríamos
los vacíos que habíamos dejado del video anterior, que sería como, sí, finalmente
encontramos nuestra salida, que es precio interior. Entonces, ¿qué hacemos ahora? Por lo que cambiaríamos el valor del mensaje de alerta y el título de alerta a esta cosa. Por lo que hold es todo dentro de la cadena, obviamente, ya que sólo acepta cadenas. Y ahora escribiríamos valor, que sería precio. Y ya que el precio sería en dólares estadounidenses, al pensar en agregar también un signo de dólar. El motivo por el que hice esto, por qué me adapté dentro y en enfermedad porque el precio es nuestras dobles propiedades. Por lo que tendría muchos decimales después del precio real. Entonces para redondear las cosas, lo
envolví dentro del valor entero en realidad. Y ahora estamos dando el título de alerta algunos textos depende totalmente de ti, como lo que realmente te gustaría hacer al respecto. Aquí puedes ponerte creativo y escribir algo realmente diferente sobre algunos otros o lo que quieras, tal vez solo puedas dejarlo en blanco también. Y dentro de una captura, Sólo agreguemos algunas cosas. Si las cosas salen mal, lo que debes mostrar. Entonces sí, mostraremos como editar obviamente, y luego usaríamos algo como si hubiera un problema en mostrar el precio de la tarjeta que pediste o algo así. Y eso esencialmente alguna configuración. Y ahora sumemos el resto de las cosas. Entonces tenemos algunas cosas que hacer. Dentro de eso. Apilamos el nucleado estándar secundario. Tenemos que añadir algo de alquiler espaciador porque se puede ver ese año de fabricación y entre el tiempo de transmisión, hay mucha brecha, brecha inusual. No sé por qué razón en realidad, pero está ahí para dar espacios de tamaño específico. Podría usar la propiedad frame. Y ahora, justo cuando retomé esta cosa, me
va a estar mostrando la vista actualizada, que creo que va a funcionar. Y ahí tienes, ahora se ve mejor. Por lo que en el siguiente video, vamos a agregar más funcionalidad a nuestra aplicación.
11. Terminar nuestra aplicación: Ahora vamos a crear el botón. Por lo que en realidad hay como 23 formas diferentes en las que se puede crear una carga. Pero para este propósito específico, estamos usando éste. Por lo que en el primer cierre, en realidad
escribiríamos la acción que realiza. Entonces sólo llamar a la función aquí las marcas calculadas, que en realidad hace toda la parte mayor. Cuando se llama. En realidad hace todo el asunto de asignar el valor de precio a alerta, título y todo. Y también establece el valor de mostrar alerta para preparar. Y ahora vamos a diseñar la interfaz de usuario para nuestro botón, la etiqueta dentro de este cierre, en realidad vamos a escribir todas las cosas que son importantes. ¿ Cómo debería verse? Entonces vamos a crearlo como un botón normal. Simplemente lo nombraríamos, calculamos entonces vamos a darle un poco de nuestro color de primer plano. Y estaba pensando que debería darle un color de primer plano de tal vez negro o verde, lo que sea. Agregar cualquiera es como cualquier cosa está bien. Depende totalmente de tu elección y cómo quieres crearla. Podrías usar una imagen así como un botón. Y eso es bastante interesante. Simplemente podrías usar alguna aplicación de diseño y diseño. Supongamos que usas Illustrator para diseñar ese botón y luego simplemente lo importas y lo usas. Por lo que podrías tener toneladas de creatividad con hacer que el arte UI se vea realmente bien. Por lo que ahora solo estoy renunciando a algunos valores simples para este botón. Y vamos a darle un poco de relleno también. Y tenemos que darle algo de color de fondo de primer plano también. Se ve realmente poco profundo. Entonces para dar color de fondo, usamos un modificador de fondo luego dentro del cual usaremos punto de color o y. creo que podrías darle cualquier color que te guste. Está totalmente a la altura de la combinación y esas cosas. Y por último, para que pareciera un botón, le
daríamos una forma de clip de cápsula, que en realidad la mayoría de las cargas en esta era moderna abs son léxicamente. Diseñas eso solo como puedes ver en cualquier lugar. Es totalmente como si fueran o bien podrías crear un rectángulo redondeado también, lo que te da más libertad de 2S2, Qué ancho y como cuánto solo se debe en las esquinas superiores para ser. Por lo que podría simplemente experimentar con eso también. Y puedes ponerte realmente creativo y como tener una interfaz de usuario realmente diferente. Ahora solo estamos adjuntando esa vista de alerta en la parte inferior de nuestro botón. Y está dentro del segundo que apilamos y en la parte inferior de nuestro botón. Y para ser muy honesto, realmente no importa mientras la regla de alerta esté dentro de la propiedad del cuerpo, solo
puedes adjuntarla a cualquiera de la SEC. En realidad podría adjuntarlo a la pila final Zen también. El principal es que establecimos la propiedad de alerta mostrando a true cuando se tocó el botón aquí en nuestro nivel más alto, que dos líneas que escribimos para nosotros están llamando a la función, que esencialmente sólo determina el valor del precio. El modelo de aprendizaje automático se ejecuta y almacena su final hacia afuera dentro de esta constante de precio. Y luego asignamos el título de alerta a este valor que obtenemos del modelo de aprendizaje automático. Y ahora es solo sintaxis simple para alerta. Entonces aquí tiene un enlace bidireccional obviamente porque vamos a estar usando y descartar el modelado. Entonces cuando tocamos el despedido, pero luego solo alterna mostrando propiedad de alerta que es un booleano y lo configuramos en falso. Y cuando se pone en falso, eso significa que son ruidosos no se pueden mostrar y desecha en realidad, es realmente así de simple. Entonces ahora solo estamos anotando cosas. Y creo que en realidad me olvidé de escribir texto antes del título de alerta que acabo de escribir. Y volveré a cambiarlo también. Y ahora en el siguiente video, les voy a mostrar ese uso práctico para ello. En realidad sacaríamos ese archivo CSV y luego coincidiríamos con W de él. Y si en realidad es capaz de predecir esa cosa o no. Y podríamos conseguir una mejor comprensión que si realmente funciona o no. Entonces por ahora a menos que mayores y déjame solo corregir este error que yo causo. Y sí, nuestra app está completamente hecha por ahora.
12. Pruebas de nuestra aplicación: Entonces sí, finalmente terminamos con alta obligación. Entonces abramos papá archivo CSV también. Y en realidad podrías usar una palanca para este propósito también. Solo estamos probando la aplicación. Entonces ahí solo voy a seleccionar uno de esos valores aleatorios de aquí, el archivo. Y nos limitaríamos a comprobar si realmente está funcionando ni Sulla simplemente crear esto usando el modelo Audi A3 2019, que en realidad es un tipo de combustible de
gasolina, gasolina. Y luego el año de fabricación o algo así. Y ahí está el kilometraje alrededor de 1980 algo
que supongo en un 1946 seleccionado porque iba más allá de eso. Después. You off manufacturer es en realidad 2019. Podría ver el precio por ello se le da un pelo en $17,500, supongo. Por lo que nuestro modelo sugiere conocerlo. Sí, así que $17,900 y nuestro modelo al donante 17 y $539. Por lo que es bastante preciso, diría para este caso específicamente. Entonces un patio, este es Davos para la modelo. Simplemente pasa por todo y luego selecciona lo que sería precio inactivo de acuerdo a los datos de IED que captó. Y una cosa que debes tener en cuenta es que este conjunto de datos incluía tres valores más en realidad, y no los incluí al crear el modelo. Entonces por eso el precio no es exactamente lo que hay dentro de un archivo CSV. En cuanto a alguien preguntándose eso semanalmente, usa este mismo conjunto de datos para crear este modelo, entonces ¿cómo es que no está funcionando? Y yo estaba pensando que eso se ve un poco llano. Entonces me gusta darle y cerrar todo
dentro de una vista de navegación y simplemente le daré un título. Por lo que se vería mejor. Pero eso no lo sabía. Realmente no se ve así. Eso podría decir, tú llegarás a saber lo que quiero decir ahora, solo
estoy pasando a añadir un título de barra de navegación y solo estropeo las cosas. Enseñé que en lugar de hacer todo esto, sólo podría importante uno más invasivo, que incluiría algunos interesantes formados con mi nombre de aplicación. Vamos a nombrar esta app, crear mi RD o algo así. Y esto suena genial en realidad. Por lo que solo podemos añadir, cambio
mi Audi usando Adobe Illustrator o Photoshop de una manera realmente elegante. Y entonces podríamos simplemente importar esa imagen en la parte superior de la pila. Y puedes hacer espaciadores para espaciar las cosas. Y siento que todavía tenemos un poco de espacio entre ese botón Calcular n millas, un deslizador, podemos simplemente empujar las cosas hacia abajo. Palabra que puedes decir simplemente estropeado. Entonces me sentí como la visión traviesa. Utilice la vista de navegación después de todo. Por lo que realmente soy diez veces por cada uno de ustedes que están tomando esta clase. Y como, espero que hayas aprendido mucho y en el futuro se me ocurriría más videos, que serían dos cosas más. Por lo que sería realmente genial si solo dejas una reseña y te veo en mi próxima clase. Otra vez. Muchas gracias.