Crie um aplicativo para iOS de aprendizado em máquina com SwiftUI como iniciante! | Aaditya Singh | Skillshare

Velocidade de reprodução


1.0x


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

Crie um aplicativo para iOS de aprendizado em máquina com SwiftUI como iniciante!

teacher avatar Aaditya Singh, IOS Dev, Digital Artist

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Apresentação

      1:23

    • 2.

      Primeiro passo

      4:55

    • 3.

      Como encontrar o conjunto de dados certo para o nosso modelo ML

      2:53

    • 4.

      Como construir o projeto básico

      1:39

    • 5.

      Como adicionar propriedades importantes ao nosso aplicativo

      10:10

    • 6.

      Como criar nossa exibição de escolha

      2:18

    • 7.

      Como atualizar nosso ecrã com mais visualizações

      3:05

    • 8.

      Como concluir todos os componentes de IU do nosso aplicativo

      4:37

    • 9.

      Como integrar o modelo ml em nosso aplicativo

      3:41

    • 10.

      Como aprender alertas em Swift

      4:01

    • 11.

      Como terminar nosso aplicativo

      4:53

    • 12.

      Como testar nosso aplicativo

      3:23

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

72

Estudantes

1

Projetos

Sobre este curso

Este curso vai ensinar como criar um aplicativo de previsão de preço para carros em segunda mão que usa aprendizado de máquina para determinar sua saída, você vai aprender sobre muitas coisas e estratégias diferentes dentro do SwiftUI

Conheça seu professor

Teacher Profile Image

Aaditya Singh

IOS Dev, Digital Artist

Professor
Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução: Você sempre ensinou a criar sua própria aplicação, mas na perna Utah, como você deve começar e por onde começar, então este curso é exatamente para você. Eu ensinaria como você pode criar um aplicativo iOS. Faremos uso do aprendizado de máquina para prever os preços dos EUA para os carros usados. E para este propósito, vou mostrar-lhe tudo como estruturar sua aplicação. Deve ser um aplicativo novo ou um CIO conter várias visualizações. Em seguida, procuraríamos na web para encontrar o conjunto de dados certo a partir do qual traríamos nosso modelo de Machine Learning. Agora vou mostrar como é fácil criar um modelo de aprendizado de máquina dentro do próprio Xcode usando Ferramentas de Desenvolvedor abertas. Por último, vamos apenas aplicação desktop com os dados correspondentes para ver se temos realmente realizado o que começamos para. Oi, sou seu instrutor para este curso. Meu nome é Rebecca e faço desenvolvimento. Também faço arte digital lado a lado. Então eu estaria ensinando tudo nesta aula. E se pudéssemos usar apenas este laptop, e este é o Mac com Xcode instalado. Então sim, isso é tudo o que você precisa basicamente para continuar com essa aula. Vemo-nos na aula. 2. Primeiro passo: Ok, então bem-vindo a este curso onde nós transformaríamos sua idéia em um aplicativo iOS real. Então nós estaríamos usando aprendizado de máquina para este projeto específico, que eu vou mostrar a vocês. E eu vou te dizer isso como a idéia veio à minha mente. Então eu vi um monte de sites que estão vendendo como carros usados, certo? E é um grande negócio. Então eles estavam apenas vendendo carros a preços específicos, o que eu acho que poderia ser variando de forma diferentes dois sites diferentes. Então eu ensinei como usar os registros de vendas de patches de qualquer um desses sites. Eu só pesquisei no Google, que vou mostrar no próximo vídeo deste site. E contém um conjunto de dados para treinar seus modelos de aprendizado de máquina. Então, essencialmente, eu só escolhi um daqui e, em seguida, eu usá-lo dentro, criar ML para fazer modelo ML. Então, a próxima coisa que eu quero dizer a todos vocês é que deixe-me apenas criar uma folha em branco primeiro. Deve ser fácil para nós entendermos. - Sim. Então, a próxima coisa que eu enfrentei foi como, eu realmente não sei tudo sobre o desenvolvimento iOS. E isso é, oh, ok. Como você realmente não precisa saber todas as APIs e outras coisas, a fim de criar um aplicativo. Há sempre uma saída com tudo. Além disso, eu queria focar apenas em nossa visão única e uma aplicação simples. Então, sim, eu realmente não sei como os dados estão sendo compartilhados. Eu só estou vendo isso como um ponto de vista comercial, como se você realmente não sabe como os dados estão sendo compartilhados entre diferentes pontos de vista, então o que você pode fazer é apenas criar uma visualização web. - Sim. E sim, então nessa visão específica, conteria tudo como Berlim para o cálculo. Em seguida, haveria controles deslizantes, haveria porque passo ou o que quer que você quer incluir, Eu entraria em muito mais detalhes nos próximos vídeos, como como você usá-los e como você lê e escreve dois valores a partir deles. E então como você integra seu modelo de aprendizado de máquina nisso. Então você obtém uma saída que é como realmente calculá-lo e ele realmente funciona. Então, a primeira coisa, pai, quando a idéia de criar um aplicativo veio à minha mente, isso foi apenas como a coisa de revenda de carros? Então eu ensinei tudo isso que eu teria. E isso é como você deve abordar seus projetos como você deve primeiro desenhá-lo como um, uma maneira realmente difícil para que você saiba o que você vai fazer. Então nós apenas criamos essa coisa tipo de interface e então você tem em sua mente que você teria como seleções. Suponha que isto seja para os modelos. Em seguida, haveria seleção para dependendo do seu conjunto de dados para gostar, ele deve ser um carro de transmissão automática ou manual ou um carro semi-automático. E haverá um controle deslizante para quilometragem. Estas são coisas simples que vêm em sua mente quando você passa pelo que eu entendo que eu tinha em mente, que era sobre a detecção de preço de venda da Cardi. Então, exatamente como eu ensinei que eu iria aprender sobre tudo isso. Então, a primeira coisa foi que eu apenas procurei na web e eu encontrei alguns realmente grandes recursos livres e como site tração e realmente não quero escolher um, porque eu realmente usei maçãs no próprio Developer Forum também. Então, há um par de sites que vem sobre os resultados da Faustina são realmente útil a maior parte do tempo. Então você não seria capaz de obter uma resposta para sua pergunta que você tem em mente. Então é assim que você aborda como criar um aplicativo. Primeiro de tudo, como você procuraria especificamente por cada componente. Eu acho que você não sabe muito bem. Então apenas procurou essa coisa de como eu criar um seletor, como eu criar stepper? E então você apenas vai sobre a pesquisa como, como devo integrar meu valor de janela de modelo ML que eu tenho em minha aplicação? Esta é uma pesquisa do Google que você deve fazer. E essencialmente, eu fiz tudo isso e foi assim que cheguei à ideia de criar esse aplicativo e finalmente consegui. Então, no próximo vídeo vamos começar procurando o conjunto de dados e, em seguida, vamos treinar nosso modelo ML. E depois usaríamos dentro de nosso aplicativo nos vídeos acessíveis. Então eu realmente espero que você aprenda um monte de coisas com este vídeo. Então você deve continuar com essa aula. 3. Encontrando o conjunto de dados certo para nosso modelo ML: Ok, então a primeira coisa que você precisa fazer é pesquisar no Google o conjunto de dados que você está procurando. E no meu caso, estou procurando o conjunto de dados do carro RD usado. Então, o primeiro resultado, decidi ir com ele. Lá estou eu conduzido a esta página. E como ele realmente tem um monte de informações sobre toda a codificação necessária para criar seu aplicativo. Mas nós realmente precisamos apenas de arquivo CSV. E lá vai você. Você tem aqui mesmo. E ele, há muitos arquivos CSV para todos os modelos diferentes, mas nós realmente não precisamos deles. Então vamos baixar este. Porque estamos focando principalmente em modelos de RD apenas, como viu quando terminamos com isso muito menos apenas abrir Xcode. Sim, então você só tem que mover o cursor para cima. E sob a ferramenta de desenvolvedor aberto, você selecionaria criar ML. Agora vou mostrar a vocês como é fácil criar um modelo de aprendizado de máquina. Você só tem que selecionar um local e clicar no novo documento lá para selecionar Regressão de tabela. E, em seguida, clique em Avançar. Vamos dar um nome que você possa achar relevante. E você pode dar uma descrição também, mas está completamente bem se você não sabe, basta clicar em Avançar depois que você terminar com ele tanto. Então aqui somos apresentados com este tipo de interface. Agora basta pegar nosso arquivo e arrastá-lo para a idéia de dados de treinamento. Agora você nos pediria para selecionar um alvo. Target é a coisa que o modelo bom identificar e os recursos é o que ele gostaria usado para identificar o alvo. Então, estamos selecionando quatro desses. E No.3, que são como etiquetas e outras coisas. Deixámo-lo por enquanto. Depois você está feito. Você só tem que clicar em verde, que é como sim, para cima. Isso levaria apenas alguns segundos e está feito. Então, uma vez feito, você pode ver que a raiz média de erro quadrado é como US $4 mil e isso é muito bem. Agora você só tem seu modelo pronto. Você pode apenas clicar em obter e ele iria pedir-lhe para um local onde ele iria salvá-lo. Então você pode dar o nome que quiser. E basta selecionar um local para onde você deseja salvar essa coisa. E basta clicar em salvar. E lá vai você, você tem seus modelos de aprendizado de máquina 3D. E nas próximas classes vamos gostar de mergulhar profundamente na criação da nossa aplicação e, em seguida, vamos usar este modelo em última análise. 4. Construindo o projeto básico: Então, agora vamos criar nossa aplicação. Então, é um iOS muito simples lag e, em seguida, você dar-lhe um nome para o ciclo de vida selecione Swift UI app. E você realmente não precisa marcar nenhuma caixa. Você só vai clicar em Avançar e ele vai perguntar-lhe, onde você deseja salvar o seu aplicativo? E você pode simplesmente selecionar qualquer local de sua própria escolha e, em seguida, basta clicar em Criar. E então o Xcode lhe dará esse layout básico. Então, a primeira coisa que você precisa fazer é como um mudou como humilhado, Eu estou usando iOS, iPhone 11 simulador para isso. Você poderia usar qualquer, é totalmente com você. Então este é o nosso primeiro passo básico. Agora, uma vez que ele carrega, você só precisa como pegar o seu modelo que você acabou de limpá-lo e você vai arrastá-lo para dentro do seu projeto. E pediria algumas coisas e certificar-se-ia de que elas são verificadas. Basta clicar em Ok, arriscado. E agora você tem seu modelo dentro de sua aplicação. Então, uma vez que você está feito com isso, você pode apenas ir aqui e verificar alguns detalhes sobre isso. E dentro previsão você pode dizer que dá uma saída como um prêmio, que é muitas vezes ser David duplo e leva em torno perna quatro parâmetros diferentes. Alguns de demonstração e alguns deles são duplos. Vamos lidar com demoed em seus próximos vídeos. 5. Como adicionar propriedades importantes ao nosso aplicativo: Então agora vamos começar a construir nossa aplicação. Então, a primeira coisa é que vamos apenas verificar arquivo CSV que usamos para criar nosso modelo de aprendizado de máquina. E acidentalmente abri um arquivo diferente. Então agora vamos abrir o arquivo principal. - Sim. Então você pode ver que ele tem um tipo de string no modelo. E também podemos verificar isso aqui fora residente. Então precisamos criar para a opção que daríamos ao nosso usuário. Teríamos nomes exatos como dados no arquivo CSV como manual com o capital M e automático com um capital e outras coisas e ortografia exata do tipo gasolina e combustível diesel. Porque se nós apenas bagunçamos lá, então o modelo não seria capaz de calcular o preço. Então, para isso, temos que criar muitos dados para criar nossos seletores e etapas também. Para a quilometragem, vamos usar um degrau. Então, vamos primeiro começar criando uma instância para o nosso modelo de aprendizado de máquina. Então, o nome do modelo de aprendizado de máquina é Adi car. E você apenas, é assim que você cria uma instância. Agora você pode usar as propriedades dentro presente dentro desta classe, que é o nosso modelo ML, e usá-lo dentro de nossa estrutura. Agora, nós criaríamos a estrutura básica para o nosso uso que vamos mostrar ao usuário. Então, uma das vistas seria porque no estilo segmentado, você teria um porão disso quando eu estou realmente indo para mostrar a parte da interface do usuário. Então, por enquanto, vamos anotar os diferentes nomes de modelos que precisamos usar que um usuário selecionaria entre e aqueles irão atuar como uma entrada eventualmente. Então estes são nomes de modelos Dao que estou usando para este propósito. Como os dados são um monte de modelos, na verdade. Mas doeu que em vez de incluir cada um deles, seria melhor se eu incluísse apenas os principais que tinham a maioria das vendas dentro desse arquivo. Então seria melhor, mais eficiente, eu diria. Então, agora que fizemos isso para o nome do modelo DA, então nós continuaríamos fazendo a mesma coisa para o tipo de transmissão, o tipo de combustível. E também o que o ano de fabricação. Estas três coisas também vamos acrescentar. E seria um “A” para criar os pontos de vista que temos em mente. Além disso, uma coisa é que este aviso que enquanto eu estou escrevendo esses nomes, esses nomes como gasolina e diesel, eu acabei de escrever. Então eu voltava para o arquivo CSV e procurava por ele. Tipo, eu escrevi o nome certo ou algo assim? E estou começando com modelos de 2013. Então vamos primeiro ter certeza se nosso arquivo realmente tem um modelo 2013 aqui. Então, podemos facilmente fazer isso usando o Command F nesses arquivos. Então, sim, lá vai você. Este é 2013 disponível e podemos ir até cerca de 2020, eu acho. Eu só verifiquei isso de antemão também. Então, sim. Podemos ir cerca de 2020. Então teríamos que incluir todos esses anos. São cerca de sete anos, suponho. Então, esta é a minha preferência pessoal, na verdade. E eu domei que estão criando a exibição do aplicativo como criar matrizes estáticas. E, em seguida, usá-los como selecionador em forma segmentada é melhor do que usar o seletor tradicional habitual. Então este é um pouco de personalização que você está dando para o seu aplicativo. E quando vamos estar nos movendo mais para a nossa Parte 2, você vai ver como eu estruturei tudo isso para parecer mais e realmente simples, mas maneira poderosa. Agora, uma vez que temos feito isso muito, Vamos apenas passar para o parceiro de interface do usuário. Então, para isso, como na verdade apenas excluir nossa citação atual. Nós realmente não precisamos dele. E eu estava pensando em usar uma imagem específica que eu já tinha baixado de antemão. Então, para esse propósito, estamos usando uma pilha. Como todos sabem, essa pilha está ingerindo um eixo Zed. Então eu vou apenas colar a imagem primeiro. E esta é a imagem e, e eu acabei de dar a ela um nome simples também. Então eu realmente gosto dessa cor e eu fui treinado para usar essa cor diretamente da propriedade de cor, mas eu não estava realmente entendendo. Então, para facilitar as coisas, estou apenas importando a imagem da pasta de ativos. E é muito fácil, você só tem que dar para modificadores e um seria redimensionável, então ignorando área segura. E ele faz o trabalho como você verá por si mesmo também. Então vamos fazer essa coisa e ver como ele se parece. Tudo bem, então parece bom. Então, por enquanto, temos feito isso muito, vamos apenas continuar sobre a criação de alguns liberais, como logo acima. Porque estou pensando em dar um nome a ele. Então ele faz, faz sentido o que um usuário para, quanto ao que o aplicativo está realmente pedindo. Então vamos usar a propriedade de texto simples. E por baixo disso, vamos começar com o nome do modelo. Então vamos escrever modelo e nós daríamos a ele alguns dos modificadores que eu sinto que são realmente, muito bons, como importantes. Então, um seria o peso da fonte e vamos apenas dar-lhe luz. Vamos dar um tipo diferente de Feel. Faça um Drake. Então, para esse propósito, estou usando o peso da fonte como leve. E então usaríamos o estilo da fonte como título. E obviamente, só pensando em dar uma fonte ultraleve, Vietnã. Acho que os dois estão. Está bem. Cabe a você, na verdade, lá. É aqui que entra a personalização. Eu pessoalmente sinto que o ultraleve dá-lhe um modo e uma abordagem diferente, como não realmente, um monte de aplicativos usar textos neste momento. Agora que você fez isso muito menos como dar-lhe um pouco de cor. Então chamaríamos de preto. E sinto que está tudo bem. E então vamos dar um pouco de tema também. Na verdade, isso foi uma coisa opcional para mim porque eu pensei que eu iria usar a propriedade de alinhamento dentro do quadro e apenas alinhar a coisa toda Buda lado esquerdo. Mas o pai não deu certo. Em última análise, tive que usar um espaçador dentro de um lanche. Se você não sabe o que é uma espécie, sempre que você coloca um espaçador dentro de uma pilha e apenas ocupa todo o espaço. Por exemplo, se você gosta, colocá-lo dentro de uma borda irregular depois de algumas coisas. Então ele iria ocupar todo aquele espaço à direita e apenas empurrar W para a esquerda. Então é essencialmente assim que os espaçadores funcionam. Da mesma forma, se usássemos um espaçador dentro do estab, então ele apenas empurrará as coisas a bordo. A maior parte da área para cima na área para baixo, dependendo de onde você colocá-lo. Antes de W ou depois da vista. Então, sim, eu acho que todas as mensagens de texto iriam para o lado esquerdo. E este ponto, ele está realmente aparecendo bem no meio do aplicativo, a praia. E eu realmente não acho que seja bom, mas nós trabalharíamos nisso também. Em última análise, quando começaremos a construir mais e mais da vista, ela se encaixaria diretamente no lugar. Então, não precisamos nos preocupar com isso por enquanto. E você pode simplesmente dobrá-lo para que pareça mais compacto e você entenda o que tudo está acontecendo. Então agora antes de criar maior, nós realmente tivemos que criar nossas propriedades de estado. E por causa de suas propriedades de estado, esse copo não funcionará de fato. Nós estaremos usando ligações bidirecionais com nossas propriedades de estado para realmente ler e gravar valores de dados, que será ainda mais usando dentro de nossa integração de nossa saída de modelo ML. Então faria muito mais sentido nos próximos dois ou três vídeos. Mas, por enquanto, vamos criar uma propriedade de estado para cada um desses redemoinhos que criamos. Então, obviamente, o mais difícil seria sobre o nome. Então vamos apenas nomeá-lo simplesmente como nomes eleição. E ele iria conter um valor inteiro. E todos vocês sabem que o valor inteiro corresponde a uma posição dentro do Adi. Então, por exemplo, se nós estamos dando a ele uma seleção de nome e valor inteiro de um, isso significa dentro do nome moderno, se nós fôssemos usar esta propriedade de estado específico com o amônio, então o um é o E3 moderno. E da mesma forma, não faria muito mais sentido quando começássemos a escrever o código para o seletor. Mas, por enquanto, tudo o que precisamos fazer é limpar essas propriedades direcionais que usaremos ainda mais. Então fizemos três e não fazemos mais um. E uma vez que terminamos com isso, é realmente um grande nome que eu falei como dar um nome mais compacto. Então eu apaguei metade da seleção faria sentido, eu acho. Agora vamos passar para muito mais coisas na próxima lição. E como vamos usar propriedades de estado para anexar. E eles fazem depois disso. 6. Como criar nossa visualização de Picker: Desde que terminamos de fazer nossas propriedades do estado, então agora podemos realmente usar porco. Então a ordem da sintaxe, porque na verdade é bastante simples. Basta dar-lhe um nome no nome como um medidor de bateria que você poderia dizer. E você se separou com uma vírgula e então você dá um pedômetro de seleção. Então, para o melhor medidor de seleção, você realmente usa uma de nossas propriedades de estado. E você veria que estamos usando um cifrão pouco antes do nome, o que garante que há uma ligação bidirecional, que significa que ele não apenas lê o valor, mas também o escreve de volta. Então, se fôssemos alterar o item selecionado para ser dito três, então a seleção de nome iria apontar para o valor três. E isso, em última análise, uma vez que estamos usando o nome moderno, qualquer insider para cada loop, que o alto-falante mostraria os itens de. Então apontaria para o terceiro item. O quarto item dentro de um modelo é numericamente o mesmo. Então você sabe que as áreas começam de 0 a 0, 1, 2, 3. Então, é assim que se faz um copo. Você está looping dentro e Eddie, Como e exibindo seus valores dentro de um rótulo de texto. E então agora que temos feito isso muito, devemos também dar-lhe um estilo segmentado cara até maior segmento HDL é essencialmente como uma pilha horizontal de opções. E parece muito mais apresentável. Então vamos fazer isso. Há também um modificado para ele e é muito fácil de fazer na verdade. E apenas escrever segmentado porque o tempo. E é só isso. E apenas dar-lhe o seu próprio suporte, eu acho. Sim. Agora que fizemos isso, isso significa essencialmente que o nosso colhedor irá aparecer. Então vamos retomar nossa área de pré-visualização. E vamos ver como é que tudo se parece? Então teríamos uma ideia sobre isso. Sim, lá vai você. Então isso é essencialmente o que parece e nós podemos apenas verificar se ele está funcionando ou não. Então, toda vez que apenas alterar a seleção, o valor da seleção também muda devido à ligação bidirecional. E apontamos para objeto de dados na diarréia. 7. Populando nossa tela com mais visualizações: Tudo bem, Desde que criamos a visão do seletor para o tipo de modelo, então podemos apenas copiar discórdia baseado para criar a escolha de você para o resto das coisas também, que realmente precisa. Por exemplo, para quilometragem, vamos realmente usar stepper. Então não faz sentido usar porque você está lá. Mas para o resto deles, nós realmente precisamos usar esse estilo de seleção. Então, agora que fizemos isso muito menos quanto a listar as coisas, está completo, mas para os outros, temos que fazer algumas pequenas mudanças e isso as torna diferentes. Então eu só estou separando as portas porque vocês estavam um com o outro. Então estou usando essa propriedade Mark. É essencialmente juventude ou isso apenas comentar e como separa esse código em diferentes estágios dentro da nossa aplicação. Então eu só nomeei isso primeiro, ele se refere a uma primeira escolha de u, v hat. Então agora vamos mudá-lo para o tipo de combustível agora. E quando fazemos isso, temos que mudar o adicionado a ele é um para cada loop está sendo executado como quando estamos essencialmente mudando tudo dentro dele na verdade. E também que a nossa ligação bidirecional, estamos usando a eleição de nomes lá. Mas nós vamos usar a seleção de combustível para este em particular, na verdade. Então vamos apenas ir e vamos fazer a coisa semelhante para essa transmissão também e também para o ano a ano de fabricação. Então vamos continuar com isso. Este processo realmente não requer muito de algum conhecimento diferente e apenas estamos colocando em valores diferentes no lugar das coisas que tínhamos anteriormente para o primeiro. Porque agora que criamos. Então é por isso que estou acelerando as coisas por justiça. Mas uma vez que é bastante simples de entender e você poderia usar seu próprio pensamento para isso, como o imposto que você precisa para exibir o cabelo. Não é uma obrigação que você use o mesmo texto que eu estou usando. Mesmo você poderia experimentar com Dar, seleção, nosso tipo que você está tentando dar ao usuário. Talvez você possa usar campos de texto para receber entrada do usuário. Ou talvez sair se você fosse usar algumas coisas como o fabricante do Iraque em quilometragem ou algo assim. Então, por agora, para fazer a coisa toda voltar para baixo, apenas dobrando as coisas para entender que o quão longe estamos dentro do nosso código. Então, agora que ganhamos isso, vamos marcar essa coisa como aluguel. E assim que prosseguirmos, adicionaremos o resto dos componentes que estão faltando nossa aplicação de trauma. Então vamos criar uma nova pilha que é importante na criação deste é realmente uma UI views pode conter um máximo de 10 visualizações, só vi que estamos criando outro, usamos Dagens fora ou recepção. Podemos acomodar todos os w's. 8. Como concluir todos os componentes de UI do nosso aplicativo: Certo, então vamos continuar construindo nossa aplicação. Então a primeira coisa que eu fiz foi como escrever Aspasia apenas no caso de, sim, tudo agora é empurrado para abortar a área e nós obviamente precisamos mais uma pilha de borda e maior combinação porque você precisa disso adicionado para o ano de fabricação. Então eu copiei rapidamente um desses e agora vou colá-lo aqui e, consequentemente, vou mudá-lo novamente. Então o telefone detecta cada teria que escrever aqui em vez disso. E dentro desses valores são para ser mundo vinculativo, venha aqui, seleção. E, em seguida, dentro da área que o loop foreach está passando, ele usaria editado nós criamos como jarda ou qualquer coisa que você tenha chamado. Não é uma obrigação utilizar apenas nomes específicos neles. Na verdade, cabe a você. Então vamos continuar com isso. Agora que fizemos isso muito, precisamos criar outra pilha de borda. E desta vez eu não estou tentando copiar a coisa toda para fora porque obviamente isso na pilha seria usado para a propriedade quilometragem. A quilometragem que não vamos usar maior. Vamos dar um passo. Acho que não é chamado de Deborah afinal. É chamado de controle deslizante. Meu erro. Sim, então, para esse propósito, estamos apenas usando rapidamente os modificadores para o texto como ele faz no cinto. Mas agora nós criaríamos um controle deslizante para nosso uso. Mas há uma coisa que eu perdi ao criar essas propriedades privadas do estado. Eu realmente esqueci de mencionar um para quilometragem, que seria do tipo duplo como obviamente. Então, sim, então precisamos voltar para mudar essa fonte. Eu fiz. Como você pode ver, estou tentando codificar essa coisa, mas obviamente eu não tenho. Então eu vou adicionar rapidamente essa propriedade agora, já que eu vejo isso. Sim, não está lá. Às vezes acontece que você esquece cerca de 1000. Um precisava estar lá. Então, obviamente, eu estou apenas copiando essa coisa e eu rapidamente apenas transformá-lo em quilometragem. E vamos dar-lhe um tipo duplo sentido se nós apenas erodido igual a 0 ou podemos escrever 0 também. Papai também indicaria que é uma propriedade do tipo duplo. Então agora que estamos, em seguida, escrito tanto, podemos apenas voltar para o nosso controle deslizante e agora ele funciona perfeitamente bem. Então agora temos que dar um alcance para nós mais tarde. É assim que os controles deslizantes e funcionam. E se você realmente não sabe como os controles deslizantes funcionam, você poderia apenas Google as coisas tão bem como eu também fiz criando essa coisa. Na verdade, não me lembro da sintaxe exata para parar. Então, como todo mundo faz distinta. Então eu só pesquisei no Google e ele realmente veio muito útil e alguém acabou de postar sobre isso. Então eu apenas copiei essa sintaxe de lá. E agora eu estou usando as propriedades que eu mencionei para você também. Então eu estou fazendo isso uma exibição de texto como uma exibição separada, bem como, que iria exibir o que faz controles deslizantes valor é em. E certificando-se de que eu não estou usando ligação bidirecional aqui e é apenas quilometragem, não retorno dólar dizendo desde o texto seguir em frente, mudar qualquer coisa em apenas lá para gostar, sentar lá e mostrar que milhas nós selecionamos dentro de nossa quilometragem controle deslizante. Então, é bastante simples e estamos apenas dando algumas propriedades simples. Basicamente. Deixe o que deve ser a sua cor do que seria um peso de fonte e estilo de fonte. Então, apenas para combinar com toda a equipe da aplicação que temos vindo a construir. Então, agora aqui temos nossos retornos e você pode ver que esses provetes funcionam perfeitamente bem. Tão gravado, certo? Coisas, na verdade. Então eu não sei o que estava errado com a visualização pode ser algum problema de bug ou qualquer coisa, problema de desempenho do meu laptop, mas nosso aplicativo funciona bem por enquanto. Então, vamos andando. 9. Integrando o modelo ml em nosso aplicativo: Agora que fizemos a parte da interface do usuário para nossa aplicação, aqui vem para uma parte realmente importante, que é como criar a função que realmente continha uma chamada para usar nosso modelo de aprendizado de máquina, que então fornecer a filha como a saída para o nosso aplicativo, como o que ele realmente faz. Tudo depende da saída dessa função que ela dá para fora. Então eu só vou mostrar a vocês como é fácil usar esses modelos de aprendizado de máquina. Então vamos dar um nome a ele. Podemos dar o nome de qualquer coisa. Só estou dando um nome. Preço calculado. Cabe a você gostar do nome. E estamos criando essa função dentro de nossa estrutura e certifique-se sobre isso. Mas fora de nossa propriedade corporal, funções sinc não adotam, não estão em conformidade com o protocolo. Então estamos fazendo isso dentro de um bloco de pegar. Então vamos criar constante com o mesmo nome que o nosso modelo ML. E eu estou dizendo que isso é importante e você só tem que anexar essa coisa bem, saída. Agora, agora que você fez isso muito, agora nós escreveríamos este método que é dry model.predict, que tem, que é uma espécie de estrutura, uma vez que tem um inicializador próprio. E está nos pedindo para anotar os diferentes valores. Então, como uma vez que está nessa string, então podemos apenas usar string e dentro do colchete, podemos dar os nomes de propriedades de estado que usamos, que na verdade se refere ao valor. Como posso ter dito, já que estamos usando ligação bidirecional. Então, quando olhamos, selecione qualquer coisa dentro, quanto maior, o valor dessa propriedade de estado realmente muda para, é selecionado dentro do copo, dentro da nossa onda U, u e w armazena a propriedade real. Então é por isso que estamos usando esses valores dentro deste método. Valor em dólar calculando para esta constante. Agora, Swift está nos jogando e editando e vendo que você não está usando um bloco catch. Então, obviamente, vamos corrigir esse problema também. Não é realmente algo mesmo se você deixar o bloco de gás completamente, MD, ainda está bem, como se ainda funcionasse. Mas vamos adicionar um pouco de código lá também. Mas, por enquanto, vamos limpar o blog e como se fôssemos fazer algo sobre isso. Então podemos deixar um comentário como se voltássemos a ele mais tarde ou outra coisa. Então eu espero que você entenda que como isso permite que a constante de saída de guarda ADI está funcionando. Na verdade, está usando essa capacidade de previsão do nosso moderno. E, em seguida, ele está tomando em entradas que nós criamos apenas agora usando essas propriedades de estado. E as propriedades mudam à medida que o usuário interage com nosso aplicativo, ele seleciona diferentes opções. Então essas propriedades do estado Gibbs em armazenar essas coisas. E agora nós apenas criamos uma nova constante que é do preço do nome, que na verdade você viu que quando eu estava escrevendo este código, Swift automaticamente me sugeriu o componente de preço desta saída do corpo, uma constante. Isso significa que ele detém o valor de nossa saída. Então, agora a saída está dentro do preço. Precisamos encontrar uma maneira de mostrá-lo dentro nossa aplicação que faremos na próxima lição. 10. Aprenda sobre alertas no Swift: Então, uma vez que temos nossa saída armazenada nesta propriedade de preço, vamos apenas encontrar uma maneira de mostrá-lo dentro de nossa aplicação. O que estou pensando é que usaríamos um botão que levaria a um alerta para cima. Então, para esse alerta, vamos realmente usar três novas propriedades de estado. Sim, três novas propriedades de estado porque eles são realmente necessários. Acidentalmente removi nossa Canvas do Mutual. Eu só estou descobrindo rapidamente que como corrigir aquela coisa, demonstrar que eu acabei de fazer. Mas para o pai, enquanto digo que para alerta, precisamos de três propriedades. E por que isso? Porque o primeiro seria um booleano que gostaria de armazenar renderizar o alerta é mostrado ou não. Eu diria mais detalhadamente, como tudo funciona? Em seguida, haveria um título de alerta e uma mensagem de alerta envia alerta um contém três componentes. Há um título, depois há uma pequena mensagem, e há o nosso fardo dispensado, que normalmente consiste em “ok”. Você poderia realmente escrever qualquer texto aqui, mas nós geralmente certo. Está bem. Então sua propriedade seria obviamente um booleano como um tolueno, que seria usado para se eles alerta está sendo mostrado ou não. Mostre como é fácil criar analógico. Então agora vamos voltar para a nossa função e nós apenas preenchemos as lacunas que tínhamos deixado do vídeo anterior, que seria sobre como, sim, nós finalmente encontramos nossa saída, que é dentro do preço. Então o que fazemos agora? Então nós mudaríamos o valor da mensagem de alerta e título de alerta para esta coisa. Então hold está tudo dentro da string, obviamente, uma vez que aceita apenas strings. E agora nós escreveríamos valor, que seria preço. E uma vez que o preço seria em dólares americanos, ao pensar em adicionar um sinal de dólar também. A razão pela qual eu fiz isso, por que eu me adaptei dentro e na doença porque o preço é nossas propriedades duplas. Então teria um monte de casas decimais após o preço real. Então, para arredondar as coisas, eu embrulhei dentro do valor inteiro na verdade. E agora estamos dando o título do alerta alguns textos é totalmente com você, como o que você realmente gostaria de fazer sobre isso. Aqui você pode ser criativo e escrever algo realmente diferente sobre alguns outros ou o que você quiser, talvez você possa simplesmente deixá-lo em branco também. E dentro de uma pegadinha, vamos adicionar algumas coisas. Se as coisas derem errado, o que você deve exibir. Então, sim, vamos exibir como editar obviamente, e então nós usaríamos algo como se houvesse um problema em exibir o preço do cartão que você pediu ou algo assim. E isso essencialmente alguma configuração. E agora vamos adicionar o resto do material. Então, temos algumas coisas para fazer. Dentro disso. Empilhamos a nucleação padrão secundária. Temos que adicionar um pouco de aluguel de espaçadores porque você pode ver aquele ano de fabricação e entre o tempo de transmissão, há um monte de lacuna, lacuna incomum. Eu não sei por que razão, na verdade, mas ele está lá para dar espaços de tamanho específicos. Você poderia usar a propriedade frame. E agora, quando eu retomei essa coisa, ele vai estar me mostrando a visão atualizada, que eu acho que vai funcionar. E aí está, agora parece melhor. Então, no próximo vídeo, vamos adicionar mais funcionalidade em nosso aplicativo. 11. Concluindo nosso aplicativo: Agora vamos criar o botão. Então, na verdade, há 23 maneiras diferentes de criar um fardo. Mas para este propósito específico, estamos usando este. Então, no primeiro fechamento, nós realmente escreveríamos a ação que ele executa. Então, apenas chamando a função aqui as marcas calculadas, que na verdade faz toda a parte principal. Quando é chamado. Ele realmente faz toda a coisa de atribuir o valor do preço para alerta, título e tudo mais. E também define o valor de mostrar alerta para preparar. E agora vamos projetar a interface do usuário para o nosso botão, o rótulo dentro deste fechamento, nós estamos realmente indo para escrever todas as coisas que são importantes. Como deve parecer? Então vamos criá-lo como um botão normal. Nós apenas nomeá-lo, calcular, então vamos dar-lhe um pouco de nossa cor de primeiro plano. E eu estava pensando que eu deveria dar uma cor de primeiro plano, talvez preto ou verde, o que seja. Adicionar qualquer é como se tudo estivesse bem. Cabe totalmente à sua escolha e como você quer criá-lo. Você pode usar uma imagem, bem como um botão. E isso é bastante interessante. Você poderia apenas usar algum designer e design aplicativo. Suponha que você use o Illustrator para criar esse botão e, em seguida, basta importá-lo e usá-lo. Então você poderia ter toneladas de criatividade em fazer arte UI realmente olhar bom. Então agora eu estou apenas desistindo de alguns valores simples para este botão. E vamos dar um pouco de estofamento também. E precisamos dar a ele alguma cor de fundo em primeiro plano também. Parece muito superficial. Então, para dar cor de fundo, usamos um modificador de fundo, em seguida, dentro do qual vamos usar ponto de cor ou y. Eu acho que você poderia dar-lhe qualquer cor que você gosta. É totalmente até a combinação e tal. E, finalmente, para fazer parecer um botão, nós daríamos a ele uma forma de clipe de cápsula, que na verdade a maioria dos fardos neste abs era moderna são lexicamente. Você desenha isso apenas como você pode ver em qualquer lugar. É totalmente como que são ou você poderia criar um retângulo arredondado, bem, que lhe dá mais liberdade de 2S2, Quão grande e como o quanto ele só devido em cantos superiores para ser. Então poderia apenas experimentar com isso também. E você pode ser muito criativo e ter uma interface muito diferente. Agora só estamos anexando aquela visão de alerta na parte inferior do nosso botão. E está dentro do segundo que empilhamos e na parte inferior do nosso botão. E para ser honesto, não importa, desde que a regra de alerta esteja dentro da propriedade do corpo, você pode apenas anexá-la a qualquer um dos SEC. Eu poderia realmente anexá-lo à pilha Zen final também. O principal é que definimos a propriedade de alerta mostrando true quando o botão foi tocado aqui em nosso nível mais alto, que duas linhas que escrevemos para nós estão chamando a função, que essencialmente apenas determina o valor do preço. O modelo de aprendizado de máquina é executado e armazena seu final para fora dentro dessa constante de preço. E então atribuímos o título do alerta a esse valor que obtemos do modelo de aprendizado de máquina. E agora é apenas uma sintaxe simples para alerta. Portanto, aqui tem uma ligação bidirecional , obviamente, porque vamos usar e descartar a modelagem. Então, quando tocamos no dispensado, mas, em seguida, ele apenas alterna mostrando propriedade de alerta que é um booleano e configurá-lo como falso. E quando está definido para falso, isso significa que eles são altos não podem ser mostrados e ele rejeita na verdade, é realmente tão simples. Então agora estamos apenas escrevendo coisas. E eu acho que eu realmente esqueci de escrever texto antes do título do alerta que eu acabei de escrever. E eu voltarei para mudá-lo também. E agora, no próximo vídeo, vou mostrar a vocês esse uso prático para isso. Nós realmente retiraríamos esse arquivo CSV e então combinaríamos W dele. E se é realmente capaz de prever essa coisa ou não. E nós seríamos capazes de obter uma melhor compreensão que se realmente funciona ou não. Então, por enquanto, a menos que majors e deixe-me apenas corrigir este erro que eu causar. E sim, nosso aplicativo está completamente feito por enquanto. 12. Testando nosso aplicativo: Então sim, finalmente terminamos com alta obrigação. Então vamos abrir o arquivo CSV pai também. E você poderia realmente usar uma alavanca para este propósito também. Estamos apenas testando o aplicativo. Então lá eu vou apenas selecionar um desses valores aleatórios a partir daqui, o arquivo. E nós vamos apenas verificar se ele está realmente funcionando ou Sulla apenas criar isso usando o modelo Audi A3 2019, que é na verdade uma transmissão manual, gasolina, combustível combustível combustível tipo. E então o ano de fabricação ou algo assim. E há a quilometragem em torno de 1980 algo que eu acho em um 1946 selecionado porque estava indo além disso. Depois. Você fora fabricante é realmente 2019. Poderia ver o preço para ele é dado um cabelo em US $17.500, eu acho. Então nosso modelo sugere saber. Sim, então $17.900 e nosso modelo para o doador de 17 e $539. Então é bastante preciso, eu diria especificamente para este caso. Então um quintal, este é Davos para o modelo. Ele só passa por tudo e, em seguida, ele seleciona o que seria preço ocioso de acordo com dados de IDE que ele pegou. E uma coisa que você deve ter em mente é que esse conjunto de dados incluiu mais três valores, na verdade, e eu não os incluí ao criar o modelo. É por isso que o preço não é exatamente o que está dentro de um arquivo CSV. Quanto a alguém querendo saber que semanalmente, use este mesmo conjunto de dados para criar este modelo, então como é que ele não está funcionando? E eu estava pensando que isso parece um pouco simples. Então eu meio que gosto de dar e fechar tudo dentro de uma visão de navegação e vou simplesmente dar-lhe um título. Então ficaria melhor. Mas eu não sabia disso. Realmente não parece assim. Isso poderia dizer, você vai vir a saber o que eu quero dizer agora, eu estou apenas falando sobre adicionar um título da barra de navegação e eu apenas estrago as coisas. Eu ensinei que em vez de fazer tudo isso, eu poderia apenas importante um mais invasivo, que incluiria alguns interessante formado com o nome do meu aplicativo. Vamos nomear este aplicativo, criar meu RD ou algo assim. E isso parece legal, na verdade. Então, podemos apenas adicionar, eu troco meu Audi usando Adobe Illustrator ou Photoshop de uma maneira realmente chique. E então poderíamos importar essa imagem no topo da pilha. E você pode fazer espaçadores para espaçar as coisas. E eu sinto que ainda temos um pouco de espaço entre aquele botão Calcular n milhas, um controle deslizante, podemos apenas empurrar as coisas para baixo. palavras que você pode dizer apenas bagunçadas. Então eu me senti como uma visão impertinente. Depois de tudo, use a visualização de navegação. Então eu sou realmente dez vezes por cada um de vocês que estão fazendo essa aula. E assim, espero que você tenha aprendido muito e no futuro eu criaria mais vídeos, o que seria mais duas coisas. Então, seria ótimo se você deixasse um comentário e eu o verei na minha próxima aula. Novamente. Muito obrigado.