Transcription
1. Introduction: Avez-vous toujours enseigné de créer votre propre application, mais dans la jambe Utah, comment vous devriez commencer et par où commencer, alors ce cours est exactement pour vous. Je vous apprendrais comment vous pouvez créer une application iOS. Nous utiliserons l'apprentissage automatique pour prédire les prix américains des voitures d'occasion. Et à cet effet, je vais vous montrer tout comme comment structurer votre application. Il doit s'agir d'une nouvelle application ou d'un CIO contenant plusieurs vues. Ensuite, nous rechercherions sur le web pour trouver le jeu de données approprié à partir duquel nous apporterions notre modèle Machine Learning. Maintenant, je vais vous montrer à quel point il est facile de créer un modèle d'apprentissage automatique à l'intérieur de Xcode lui-même en utilisant des outils de développement ouverts. Enfin, nous allons juste application de bureau avec les données correspondantes pour voir si nous avons réellement accompli ce que nous avons commencé pour. Bonjour, je suis votre instructeur pour ce cours. Je m'appelle Rebecca et je fais du développement. Je fais aussi de l'art numérique côte à côte. Donc, je serais comme vous enseigner tout dans cette classe. Et si nous utilisions cet ordinateur portable uniquement, et c'est le Mac avec Xcode installé. Donc oui, c'est tout ce dont vous avez besoin pour continuer avec cette classe. Alors, on se voit dans la classe.
2. Première étape: Ok, donc bienvenue à ce cours où nous transformions votre idée en une application iOS réelle. Donc, nous utiliserions l'apprentissage automatique pour ce projet spécifique, que je vais vous montrer. Et je vais vous dire comment l'idée m'est venue à l'esprit. J' ai vu beaucoup de sites qui vendent comme des voitures d'occasion, non ? Et c'est une énorme affaire. Donc, ils vendaient juste des voitures à des prix précis,
ce qui, je pense, pourrait varier selon les deux différents sites Web. Donc, j'ai enseigné comme utiliser les dossiers de vente de correctifs de n'importe lequel de ces sites Web. En fait, j'ai juste googlé, que je vais vous montrer dans la prochaine vidéo sur ce site. Et il contient un jeu de données pour la formation de vos modèles d'apprentissage automatique. Donc essentiellement, je viens d'en choisir un d'ici et puis je l'utilise à l'intérieur, créer ML pour faire un modèle ML. Donc la prochaine chose que je veux vous dire, c'est que je vais juste créer une feuille vierge d'abord. Ça devrait être facile à comprendre pour nous. Oui. Donc, la prochaine chose à laquelle j'ai dû faire face était comme, je ne sais pas vraiment tout sur le développement iOS. Et c'est, oh, ok. Comme vous n'avez pas vraiment besoin de connaître toutes les API et autres choses pour créer une application. Il y a toujours un moyen de sortir avec tout. Aussi, je voulais me concentrer uniquement sur notre seule vue et une application simple. Donc oui, je ne sais pas vraiment comment les données sont partagées. Je vois juste cela comme un point de vue commercial, comme si vous ne savez pas vraiment comment les données sont partagées entre différentes vues, ce
que vous pouvez faire est simplement de créer une seule vue Web. Oui. Et oui, donc dans ce point de vue précis, il contiendrait tout comme le Berlin pour le calcul. Ensuite, il y aurait des curseurs, il y aurait parce que l'étape ou tout ce que vous voulez inclure, j'irais dans beaucoup plus de détails dans les vidéos suivantes, comme comment vous les utilisez et comme vous lisez et écrivez deux valeurs à partir d'eux. Et puis comment vous intégrez votre modèle d'apprentissage automatique à cela. Donc, vous obtenez une sortie qui est comme vraiment le calculer et cela fonctionne réellement. Alors la première chose, papa, quand l'idée de créer une application m'est venue à l'esprit, c'
était seulement comme la revente de voiture ? Alors j'ai appris tout ça que j'aurais. Et c'est comme comment vous devriez aborder vos projets comme vous devriez d'abord le dessiner comme un,
une façon vraiment rude pour que vous sachiez ce que vous allez faire. Donc, nous créons juste cette chose de type d'interface et puis vous avez dans votre esprit que vous auriez des sélections comme. Supposons que ce soit pour les modèles. Ensuite, il y aurait une sélection pour en fonction de votre jeu de données à aimer, il devrait être une voiture de transmission automatique ou manuelle ou une voiture semi-automatique. Et il y aura un curseur pour le kilométrage. Ce sont des choses simples qui vous viennent à l'esprit quand vous passez par ce que je comprends que j'avais en tête, savoir la détection des prix de vente Cardi. Donc, comme exactement j'ai enseigné que j'apprendrais à propos de tout cela. Donc, la première chose était que je viens de chercher sur le web et j'ai trouvé quelques ressources très gratuites et comme site web tensile et je ne veux pas vraiment en choisir un, parce que j'ai effectivement utilisé des pommes dans Developer Forum lui-même aussi bien. Donc, il ya un couple de sites qui vient sur les résultats Faustina sont en fait vraiment vraiment utile la plupart du temps. Donc, vous ne seriez pas en mesure d'obtenir une réponse à votre question que vous avez en tête. C' est donc comme ça que vous abordez comme créer une application. Tout d'abord, comme vous cherchiez spécifiquement pour chaque composant. Je pense que tu ne sais pas très bien. Donc juste cherché cette chose de comme comment puis-je créer un sélecteur, comment puis-je créer pas à pas ? Et puis vous allez simplement chercher comme, comment dois-je intégrer ma valeur de fenêtre de modèle ML que j'ai dans mon application ? Il s'agit d'une recherche Google que vous devriez faire. Et essentiellement, j'ai fait tout cela et c'est ainsi que je suis venu à l'idée de créer cette application et je l'ai finalement fait. Donc, dans la prochaine vidéo, nous allons commencer par chercher l'ensemble de données, puis nous allons former notre modèle ML. Et ensuite, nous l'utiliserions dans notre application dans les vidéos abordables. Donc, j'espère vraiment que vous apprendrez beaucoup de choses avec cette vidéo. Donc, vous devriez continuer avec cette classe.
3. Trouver le bon ensemble de données pour notre modèle ML: Ok, donc la toute première chose que vous devez
faire est d'aimer la recherche sur Google pour ce jeu de données que vous recherchez. Et dans mon cas, je cherche le jeu de données de voiture RD usagée. Donc, le tout premier résultat, j'ai décidé d'aller avec. Là, je suis conduit à cette page. Et comme il a vraiment beaucoup d'
informations sur tout le codage nécessaire pour créer son application. Mais nous avons vraiment besoin d'un fichier CSV. Et voilà. Vous l'avez juste ici. Et lui, il y a beaucoup de fichiers CSV pour tous les différents modèles, mais nous n'en avons pas vraiment besoin. Alors téléchargeons celui-ci. Parce que nous nous concentrons principalement sur les modèles RD seulement, comme vu quand nous avons fini avec ce beaucoup moins juste ouvrir Xcode. Ouais, donc tu dois juste déplacer ton curseur sur le dessus. Et sous l'outil de développement ouvert, vous sélectionnez créer ML. Maintenant, je vais vous montrer à quel point il est facile de créer un modèle d'apprentissage automatique. Il vous suffit de sélectionner un emplacement et de cliquer sur le nouveau document pour sélectionner Régression de tableau. Et puis cliquez sur Suivant. Donnons-lui juste un nom que vous pourriez trouver comme pertinent. Et vous pouvez lui donner une description aussi bien, mais c'est tout à fait bien si vous ne savez pas, suffit de cliquer sur Suivant après avoir fini avec cela beaucoup. Donc, ici, nous sommes présentés avec ce type d'interface. Maintenant, nous prenons simplement notre fichier et le faisons glisser dans l'idée de données d'entraînement. Maintenant, vous nous demandez de sélectionner une cible. Target est la chose que le modèle identifie correctement et
les entités sont ce qu'il aimerait utiliser pour identifier la cible. Donc nous sélectionnons quatre d'entre eux. Et No.3, qui sont comme des tags et des trucs. On vient de le laisser pour l'instant. Après, vous avez fini. Il suffit de cliquer sur le vert, ce qui est comme oui, en haut. Ça ne prendrait que quelques secondes et c'est fait. Donc, une fois que c'est fait, vous pouvez voir l'erreur carrée moyenne racine est comme 4 000$ et c'est tout à fait correct. Maintenant, vous avez juste votre modèle prêt. Vous pouvez simplement cliquer sur obtenir et il vous demanderait un endroit où il l'enregistrerait. Donc tu peux juste le nommer comme tu veux. Et il suffit de sélectionner un emplacement où vous voulez enregistrer cette chose. Et il suffit de cliquer sur Enregistrer. Et voilà, vous avez vos modèles d'apprentissage automatique 3D. Et dans les classes suivantes, nous allons aimer plonger profondément dans la création de notre application et ensuite nous allons utiliser ce modèle en fin de compte.
4. Créer le projet de base: Alors maintenant, nous allons créer notre application. Donc, il est un retard vraiment simple iOS et puis vous lui donnez un nom pour le cycle de vie sélectionnez l'application Swift UI. Et vous n'avez pas vraiment besoin de cocher les cases. Vous allez simplement cliquer sur Suivant et il vous demandera, où voulez-vous enregistrer votre application ? Et vous pouvez simplement sélectionner n'importe quel emplacement de votre choix, puis cliquez simplement sur Créer. Et puis Xcode vous donnera cette mise en page de base. Donc, la première chose que vous devez faire est comme un changé comme humilié, j'utilise iOS, iPhone 11 simulateur pour cela. Tu pourrais en utiliser, c'est à toi de décider. C' est donc notre première étape de base. Maintenant, une fois qu'il se charge, vous avez juste besoin d'aimer prendre votre modèle que vous venez de l'effacer et vous allez le faire glisser à l'intérieur de votre projet. Et il vous demanderait des choses et s'assurerait que celles-ci sont vérifiées. Tu viens de cliquer sur Ok, risqué. Et maintenant, vous avez votre modèle dans votre application. Donc, une fois que vous avez fini avec autant de choses, vous pouvez juste aller ici et vérifier quelques détails à ce sujet. Et à l'intérieur de la prédiction, vous pouvez dire qu'il donne une sortie comme un prix, qui est souvent David double et il prend autour de la jambe quatre paramètres différents. Certains de démontrer et d'autres d'entre eux sont doubles. Nous traiterons de rétrogradés dans leurs prochaines vidéos.
5. Ajouter des propriétés importantes à notre application: Alors maintenant, nous allons commencer à construire notre application. Donc, la première chose est que nous allons juste vérifier ce fichier CSV que nous avons utilisé pour créer notre modèle d'apprentissage automatique. Et j'ai accidentellement ouvert un autre fichier. Alors maintenant, nous allons juste ouvrir le fichier principal. Oui. Ainsi, vous pouvez voir qu'il a un type de chaîne dans le modèle. Et aussi on peut vérifier ça ici résident. Nous devons donc créer pour l'option que nous donnerions à notre utilisateur. Nous aurions des noms exacts tels que donnés dans le fichier CSV comme manuel avec la majuscule M et automatique avec une majuscule et des trucs et l'orthographe exacte du type essence et diesel. Parce que si nous venons de foiré là-bas, alors le modèle ne serait pas en mesure de calculer le prix. Donc, pour cela, nous devons créer beaucoup de données
afin de créer nos sélecteurs et nos étapes également. Pour le kilométrage, nous allons utiliser un pas à pas. Commençons donc par créer une instance pour notre modèle d'apprentissage automatique. Donc notre nom de modèle d'apprentissage automatique est Adi voiture. Et vous, c'est comme ça que vous créez une instance. Maintenant, vous pouvez utiliser les propriétés à l'intérieur présent dans cette classe, qui est notre modèle ML, et l'utiliser dans notre structure. Maintenant, nous créerons la structure de base pour notre utilisation que nous allons montrer à l'utilisateur. Donc, l'une des vues serait parce que dans le style segmenté, vous en obtiendriez une main quand je vais réellement montrer la partie de l'interface utilisateur. Donc, pour l'instant nous permet d'écrire les différents noms de modèles que nous devons utiliser qu'un utilisateur choisirait entre et ceux-ci agiront éventuellement comme une entrée. Donc ce sont des noms de modèles Dao que j'utilise à cette fin. Comme les données sont beaucoup de modèles en fait. Mais ça fait mal qu'au lieu d'inclure chacun d'entre eux, il serait préférable d'inclure seulement les principaux
qui comme avaient la plupart des ventes à l'intérieur de ce fichier. Ce serait donc mieux, plus efficace, je dirais. Donc maintenant que nous avons fait cela pour le nom du modèle DA, alors nous allons procéder à la même chose pour le type de transmission, le type de carburant. Et aussi ce que l'année de fabrication. Ces trois choses que nous ajouterons également. Et ce serait un pour créer les points de vue que nous avons à l'esprit. Aussi, une chose est que cet avis que pendant que j'écris ces noms, ces noms comme l'essence et le diesel, je viens d'écrire. Ensuite, je retournerais au fichier CSV et le chercherais. J' ai écrit le bon nom ? Et je commence en fait avec les modèles 2013. Donc, nous allons juste d'abord vérifier si notre fichier a réellement un modèle 2013 ici. Donc, nous pouvons facilement le faire en utilisant la commande F dans ces fichiers. Alors oui, voilà. C' est 2013 disponible et nous pouvons aller jusqu'à environ comme 2020, je suppose. Je l'ai vérifié à l'avance aussi. Alors oui. On peut aller sur Al 2020. Nous devrions donc inclure toutes ces années. C' est environ sept ans, je suppose. Donc c'est ma préférence personnelle en fait. Et j'ai apprivoisé qui créent l'affichage de l'application comme la création de tableaux statiques. Et puis les utiliser comme sélecteur sous forme segmentée est préférable d'utiliser le sélecteur habituel et traditionnel. C' est donc un peu de personnalisation que vous donnez à votre application. Et quand nous allons passer plus dans notre partie 2, vous verrez comment j'ai structuré cette chose de manière
plus simple, mais puissante. Maintenant, puisque nous avons beaucoup fait, passons simplement au partenaire de l'interface utilisateur. Donc, pour cela, comme en fait il suffit de supprimer notre citation actuelle. On n'en a pas vraiment besoin. Et je pensais utiliser une image spécifique que j'avais déjà téléchargée à l'avance. Donc, à cette fin, nous utilisons une pile. Comme vous le savez tous, cette pile ingère en fait un axe zed. Donc, je vais juste coller l'image d'abord. Et c'est l'image et, et je viens de lui donner un nom simple aussi. Donc j'aime vraiment cette couleur et j'ai été formé à utiliser cette couleur directement à partir de la propriété de couleur, mais je ne l'avais pas vraiment. Donc, pour faciliter les choses, je suis juste en train d'importer l'image à partir du dossier assets. Et c'est assez facile, il suffit de le donner aux modificateurs et un serait redimensionnable, puis en ignorant la zone de sécurité. Et il fait le travail comme vous le verrez par vous-même aussi. Alors faisons juste ce truc et voyons à quoi ça ressemble. D' accord, donc ça a l'air bien. Donc, maintenant que nous avons fait autant, continuons à créer des libéraux, comme tout juste au-dessus. Parce que je pense à lui donner un nom. Donc, il fait, il est logique ce qu'un utilisateur à, quant à ce que l'application demande réellement. Nous allons donc utiliser la propriété de texte simple. Et en vertu de cela, commençons simplement par le nom du modèle. Donc, écrivons le modèle et nous lui donnerions certains
des modificateurs que je me sens sont vraiment, vraiment bons, comme importants. Donc, on serait politique-poids et donnons-lui juste de la lumière. Donnons-lui un autre type de Feel. Fais un Drake. Donc, à cet effet, j'utilise le poids de la police comme léger. Et puis nous utilisions le style de police comme titre. Et évidemment, je pense juste à lui donner une police ultralégère, Vietnam. Je pense que les deux le sont. D' accord. C'est tout à fait à vous de décider. C' est là que la personnalisation intervient. Personnellement, j'ai l'impression que l'ultraléger lui donne un mode et une approche différente, comme pas vraiment, beaucoup d'applications utilisent des textes en ce moment. Maintenant que vous avez fait cela beaucoup moins que lui donner un peu de couleur. Donc on l'appellerait noir. Et j'ai l'impression que c'est vraiment bon. Et puis donnons-lui juste un thème aussi. En fait, c'était une chose facultative pour moi parce que je pensais utiliser la propriété d'alignement à l'intérieur du cadre et juste aligner tout Bouddha côté gauche. Mais papa n'a pas marché. En fin de compte, j'ai dû utiliser un espaceur à l'intérieur d'une collation. Si vous ne savez pas ce qu'est une espèce, chaque fois que vous mettez un espaceur à l'intérieur d'une pile et que vous prenez tout l'espace. Par exemple, si vous le souhaitez, mettez-le à l'intérieur d'un bord déchiqueté après certaines choses. Donc, il prendrait tout cet espace à droite et juste pousser W vers la gauche. Donc, c'est essentiellement comme ça que fonctionnent les entretoises. De même, si nous devions utiliser un espaceur à l'intérieur de l'estab, alors il va juste pousser les choses à bord. Zone la plus vers le haut sur la zone vers le bas, selon l'endroit où vous le mettez. Avant W ou après la vue. Donc oui, je pense que tous les textos vont sur le côté gauche. Et ce point, il apparaît en fait en
plein milieu de l'application, la plage. Et je ne pense pas vraiment que ce soit bon, mais on y travaillerait aussi. En fin de compte, lorsque nous commencerons à construire de plus en plus de la vue, elle s'intégrerait directement dans l'endroit. Donc on n'a pas vraiment besoin de s'en soucier pour l'instant. Et vous pouvez simplement le plier pour qu'il ait l'air plus compact et que vous compreniez ce qui se passe. Donc maintenant, avant de créer plus grand, nous avons dû créer nos propriétés d'état. Et à cause de ses propriétés d'état, ce bécher ne fonctionnera pas réellement. Nous utiliserons des liaisons bidirectionnelles avec nos propriétés d'état pour réellement lire et écrire des valeurs de données, qui utiliseront davantage dans notre intégration de notre sortie de modèle ML. Cela aurait donc beaucoup plus de sens dans les deux ou trois prochaines vidéos. Mais pour l'instant, créons simplement une propriété d'état pour chacun de ces tourbillons que nous avons créés. Donc, évidemment, le plus dur serait pour le nom. Alors appelons-le simplement comme l'élection des noms. Et il contiendrait une valeur entière. Et vous savez tous que la valeur entière correspond à une position à l'intérieur de l'Adi. Donc, par exemple, si nous lui donnons une sélection de nom et une valeur entière d'un, cela signifie à l'intérieur du nom moderne, si nous devions utiliser cette propriété d'état spécifique avec l'ammonium, alors celui est le moderne E3. Et de la même manière,
cela n'aurait pas beaucoup plus de sens lorsque nous commençons à écrire le code pour le sélecteur. Mais pour l'instant, tout ce que nous avons à faire est de simplement effacer ces propriétés orientées que nous allons utiliser plus loin. Donc on en a fait trois et on n'en fait pas une de plus. Et une fois que nous en avons fini,
c' est en fait un grand nom dont j'ai parlé comme donner un petit nom plus compact. Donc je viens de supprimer la moitié de la sélection aurait du sens, je suppose. Maintenant, nous allons passer à beaucoup plus de choses dans la prochaine leçon. Et comment nous allons utiliser les propriétés d'état pur et simple à attacher. Et ils le font après ça.
6. Créer notre vue Picker: Depuis que nous avons fini de faire nos propriétés d'état, donc maintenant nous pouvons réellement utiliser le porc. Donc, l'ordre de syntaxe, parce que c'est en fait assez simple. Vous lui donnez juste un nom dans le nom comme un compteur de batterie que vous pourriez dire. Et vous vous êtes séparé par une virgule, puis vous lui donnez un podomètre de sélection. Donc, pour le meilleur compteur de sélection, vous utilisez réellement l'une de nos propriétés d'état. Et vous verrez que nous utilisons un signe dollar juste avant le nom, ce qui garantit qu'il y a une liaison bidirectionnelle, ce qui signifie qu'il ne lit pas seulement la valeur, mais aussi l'écrit. Donc, si nous devions changer l'élément sélectionné pour être dit trois, alors la sélection du nom pointerait sur la valeur trois. Et cela en fin de compte, puisque nous utilisons le nom moderne, n'importe quel initié pour chaque boucle, dont le haut-parleur montrerait les éléments à partir de. Il indiquerait donc le troisième point. Le quatrième élément à l'intérieur d'un modèle est numériquement identique. Vous savez donc que les zones commencent de 0 à 0, 1, 2, 3. Alors u. c'est comme ça que vous faites un bécher. Vous faites une boucle à l'intérieur et Eddie, et affichez ses valeurs dans une étiquette de texte. Et puis maintenant que nous avons fait cela beaucoup, nous devrions également lui donner un style segmenté mec plus grand segment HDL est essentiellement comme une pile horizontale d'options. Et il semble beaucoup plus présentable. Alors faisons-le. Il y a aussi un modifié pour cela et c'est assez facile à faire en fait. Et juste écrire segmenté parce que le temps. Et c'est à propos de ça. Et donnez-lui son propre support, je suppose. Oui. Maintenant que nous avons beaucoup fait, cela signifie essentiellement que notre sélecteur va se présenter. Reprenons donc notre zone d'aperçu. Et nous verrons ça à quoi ça ressemble ? Donc on aurait une idée à ce sujet. Oui, voilà. Donc, c'est essentiellement à quoi cela ressemble et nous pouvons juste
le vérifier aussi si cela fonctionne ou ne fonctionne pas. Ainsi, chaque fois que nous modifions simplement la sélection, la valeur de la sélection change également en raison de la liaison bidirectionnelle. Et nous pointons vers l'objet de données dans la diarrhée.
7. Remplir notre écran avec plus de vues: Très bien, Depuis que nous avons créé la vue de sélecteur pour le type de modèle, donc nous pouvons simplement copier en conséquence la discorde basée pour créer le choix de vous pour le reste des choses ainsi, qui ont réellement besoin. Par exemple, pour le kilométrage, nous allons réellement utiliser pas à pas. Donc ça n'a pas vraiment de sens à utiliser parce que vous là-bas. Mais pour le reste d'entre eux, nous devons en fait utiliser ce style de sélection. Donc maintenant que nous avons fait cela beaucoup moins pour énumérer les choses, c'est complet, mais pour les autres, nous devons faire quelques changements mineurs et cela les rend différents. Donc je me sépare des portes parce que vous étiez l'un à l'autre. Donc j'utilise cette propriété mark. C' est essentiellement de la jeunesse ou ceci seulement il vient de commenter et comme sépare ce code à différentes étapes dans notre application. Donc, je viens juste de nommer ce premier, il se réfère à un premier choix de u, chapeau v. Donc maintenant, nous allons le changer pour le type de carburant maintenant. Et quand nous faisons cela, nous devons changer l'ajouté à il est un pour chaque boucle est en cours d'exécution comme lorsque nous changeons essentiellement tout à l'intérieur en fait. Et aussi que notre liaison bidirectionnelle, nous utilisons l'élection des noms là-bas. Mais nous allons utiliser la sélection de carburant pour ce type de carburant en fait. allons donc commencer et nous ferons la même chose pour cette transmission aussi et aussi pour l'année par année de fabrication. Allons donc avec ça. Ce processus ne nécessite pas vraiment beaucoup de connaissances différentes et nous mettons juste des valeurs
différentes à la place des choses que nous avions plus tôt pour la première. Parce que maintenant que nous avons créé. C' est pour ça que j'accélère les choses pour la justice. Mais comme c'est assez simple à comprendre et vous pouvez utiliser votre propre pensée pour cela, comme quelle taxe vous avez besoin pour afficher les cheveux. Ce n'est pas vraiment une obligation que vous devriez utiliser le même texte que j'utilise. Même vous pourriez expérimenter avec Dar, sélection, notre type que vous essayez de donner à l'utilisateur. Peut-être que vous pourriez utiliser des champs de texte pour prendre les entrées de l'utilisateur. Ou peut-être sortir si vous deviez utiliser certaines choses comme le fabricant Irak sur le kilométrage ou quelque chose comme ça. Donc, pour l'instant, pour faire tout cela revient, juste en pliant les choses pour comprendre que jusqu'où nous sommes à l'intérieur de notre code. Alors maintenant que nous avons gagné beaucoup fait, Marquons juste cette chose comme un loyer. Et comme nous allons procéder, nous ajouterions le reste des composants qui manquent notre application de traumatisme. Donc, laissez-nous créer une nouvelle pile qui est important dans la création c'est en fait une vue de l'interface utilisateur peut contenir un maximum de 10 vues, seulement vu que nous créons un autre, nous utilisons Dagens ou la réception. Nous pouvons accueillir tous les w's.
8. Terminer tous les composants de notre application: Ok, alors continuons à construire notre application. Donc, la toute première chose que j'ai fait était comme écrire Aspasia juste au cas où, ouais, tout est maintenant poussé à abandonner la zone et nous avons évidemment besoin d' une pile de bord supplémentaire et plus grand combo parce que vous avez besoin de cela ajouté pour l'année de fabrication. Donc, je viens de copier rapidement l'un de ceux-ci et maintenant je vais le coller ici, et en conséquence je vais le changer à nouveau. Donc le téléphone détecte que chacun devrait écrire ici à la place. Et à l'intérieur de ces valeurs sont d'être monde contraignant, venez ici, sélection. Et puis à l'intérieur de la zone que traverse la boucle foreach, il utiliserait édité que nous avons créé comme yard ou tout ce que vous avez nommé. Il n'est pas obligatoire d'utiliser uniquement des noms spécifiques sur eux. C' est complètement à toi en fait. Alors allons juste y aller. Maintenant que nous avons beaucoup fait, nous devons créer une autre pile de bords. Et cette fois, je n'essaie pas de copier tout le truc parce que évidemment cela à la pile serait utilisé pour la propriété de kilométrage. Le kilométrage que nous ne allons pas utiliser plus grand. Nous allons faire un pas. Je pense que ça ne s'appelle pas Deborah après tout. Ça s'appelle un curseur. Mon erreur. Ouais, Donc, à cet effet, nous utilisons rapidement les modificateurs pour le texte comme il le fait dans la courroie. Mais maintenant, nous créons un curseur pour notre utilisation. Mais il y a une chose que j'ai ratée lors de la création de ces propriétés privées d'État. En fait, j'ai oublié d'en mentionner un pour le kilométrage, qui serait du type double comme évidemment. Donc oui, on doit juste revenir pour changer cette police. Je l'ai fait. Comme vous pouvez le voir, j'essaie d'aimer le code, mais évidemment je ne l'ai pas. Donc, je vais juste ajouter rapidement cette propriété maintenant puisque je vois cela. Oui, il n'est pas là. Il arrive parfois que vous oubliiez 1000. Il fallait qu'il y en ait un. Donc, évidemment, je suis juste en train de copier cette chose et je le changerais rapidement en kilométrage. Et nous allons lui donner un double sens de type si nous avons juste érodé égal à 0 ou nous pouvons écrire 0 aussi bien. Papa indiquerait aussi que c'est une propriété du type double. Alors maintenant que nous sommes alors écrits autant, nous pouvons simplement revenir à notre curseur et maintenant cela fonctionne parfaitement bien. Maintenant, nous devons nous donner une gamme plus tard. C' est ainsi que les curseurs et le travail. Et si vous ne savez pas vraiment comment les curseurs fonctionnent, vous pouvez juste Google les choses aussi bien que moi aussi en créant cette chose. En fait, je ne me souviens pas vraiment de la syntaxe exacte pour stop. Donc, comme tout le monde fait distinct. Donc, j'ai juste googlé et il
est vraiment venu très pratique et quelqu'un vient de poster à ce sujet. Donc, j'ai juste copié cette syntaxe à partir de là. Et maintenant, j'utilise ces propriétés que je vous ai mentionnées aussi. Donc, je fais de cela une vue de texte en tant que vue séparée, qui afficherait ce que la valeur des curseurs de curseur est à. Et en m'assurant que je n'utilise pas de liaison bidirectionnelle ici et c'est juste du kilométrage, ne renvoyez pas dollar disant que le texte passe,
changez quoi que ce soit juste là pour aimer, asseyez-vous là et montrez quels miles nous avons sélectionnés à l'intérieur de notre kilométrage curseur. Donc, c'est assez simple et nous lui donnons juste quelques propriétés simples. En gros. Que ce qui devrait être sa couleur qu'ils seraient un poids de police et un style de police. Donc juste pour correspondre à toute l'équipe de l'application que nous avons construit. Alors maintenant, nous avons nos retours et vous pouvez voir que ces béchers fonctionnent parfaitement bien. Donc enregistré, n'est-ce pas ? En fait, les choses. Donc, je ne sais pas ce qui ne va pas avec l'aperçu pourrait être un problème de bug ou autre, problème de performance de
mon ordinateur portable, mais notre application fonctionne bien pour l'instant. Alors allons juste y aller.
9. Intégrer le modèle ml dans notre application: Maintenant que nous avons fait la partie de l'interface utilisateur pour notre application, voici une partie vraiment importante, qui est comme la création de la fonction qui
contiendrait effectivement un appel pour l'utilisation de notre modèle d'apprentissage automatique, qui fournir à la fille comme la sortie de notre application, comme ce qu'elle fait vraiment. Tout dépend de la sortie de cette fonction qu'il donne. Donc, je vais juste vous montrer à quel point il est facile d'utiliser ce modèle d'apprentissage automatique. Alors donnons-lui juste un nom. On peut juste le nommer n'importe quoi. Je le nomme juste. Prix calculé. C' est à vous de décider comment le nommer. Et nous créons cette fonction à l'intérieur de notre structure et assurez-vous sur cela. Mais en dehors de notre propriété corporelle, les fonctions
sinc n'adoptent pas cependant, ne sont pas conformes au protocole. Donc nous faisons ça dans un bloc do catch. Nous allons donc créer une constante avec le même nom que notre modèle ML. Et je vous dis que c'est important et vous avez juste à attacher cette chose aussi, sortie. Maintenant, maintenant que vous avez fait autant, maintenant nous écririons cette méthode qui est modèle sec.predict, qui a, ce qui est une sorte de structure puisqu'il a un initialiseur de son propre. Et il nous demande d'écrire les différentes valeurs. Donc, comme puisque c'est dans cette chaîne, donc nous pouvons simplement utiliser la chaîne et l'intérieur du crochet, nous pouvons donner les noms de propriété d'état que nous avons utilisés, qui fait référence à la valeur. Comme je vous l'ai peut-être dit, puisque nous utilisons la liaison bidirectionnelle. Donc, quand nous regardons, sélectionnez quelque chose à l'intérieur, le plus grand, la valeur de cette propriété d'état change en fait vers, est sélectionné à l'intérieur du bécher, à l'intérieur de notre vague U, u et w stocke la propriété réelle. C' est pourquoi nous utilisons ces valeurs à l'intérieur de cette méthode. Valeur en dollars calculant cette constante. Maintenant, Swift nous lance et édite et voit que vous n'utilisez pas un bloc catch. Donc, évidemment, corrigeons ce problème aussi. Ce n'est pas vraiment quelque chose même si vous quittez complètement le bloc de gaz, MD, c'est toujours bon, comme si ça fonctionnait toujours. Mais nous allons abréger ajouter du code là aussi. Mais pour l'instant, nous allons juste effacer le blog et comme nous ferions quelque chose à ce sujet. Donc, nous pouvons juste laisser un commentaire comme nous y reviendrons plus tard ou autre chose. J' espère donc que vous comprenez que comment cela permet de laisser la constante de sortie de garde ADI fonctionne. En fait, il utilise cette capacité de prédiction de notre moderne. Et puis il prend des entrées que nous avons créées en utilisant ces propriétés d'état. Et les propriétés changent au fur et à mesure que l'utilisateur interagit avec notre application, il sélectionne différentes options. Ensuite, ces propriétés d'état Gibbs sur le stockage de ces choses. Et maintenant, nous venons de créer une nouvelle constante qui est du prix du nom, qui en fait vous avez vu que lorsque j'écrivais ce code, Swift m'a automatiquement suggéré le composant de prix de cette sortie du corps, une constante. Cela signifie qu'il détient la valeur de notre production. Donc maintenant, la sortie est à l'intérieur du prix. Nous devons trouver un moyen de le montrer dans notre application que nous ferons dans la prochaine leçon.
10. Apprendre à savoir les alertes dans Swift: Donc, puisque nous avons notre sortie stockée dans cette propriété de prix, allons juste trouver un moyen de le montrer à l'intérieur de notre application. Ce que je pense, c'est qu'on utiliserait un bouton qui mènerait ensuite à une alerte. Donc, pour cette alerte, nous allons en fait utiliser trois nouvelles propriétés d'état. Oui, trois nouvelles propriétés d'état car elles sont réellement requises. J' ai accidentellement retiré notre Canvas de la mutuelle. Je suis juste en train de trouver rapidement que comment corriger cette chose, démontrer que je viens de le faire. Mais pour papa, pendant que je te dis que pour alerte, on a besoin de trois propriétés. Et pourquoi c'est ça ? Parce que le premier serait un booléen qui
voudrait rendre le magasin, l'alerte est affichée ou non. Je vous dirais plus en détail comme comment tout fonctionne ? Ensuite, il y aurait un titre d'alerte et un message d'alerte envoie une alerte a contient trois composants. Il y a un titre, puis il y a un petit message, et il y a notre fardeau rejeté, qui se compose normalement de ok. Vous pouvez écrire n'importe quel texte ici, mais nous avons généralement raison. D' accord. Donc, sa propriété serait évidemment un booléen comme un toluène, qui serait utilisé pour savoir s'ils alerte est montré ou non. Montrez à quel point il est facile de créer des analogiques. Maintenant, revenons à notre fonction et nous nous contenterons de combler
les lacunes que nous avions laissées de la vidéo précédente, ce qui serait à peu près comme, oui, nous avons finalement trouvé notre sortie, qui est le prix intérieur. Alors qu'est-ce qu'on fait maintenant ? Donc, nous allons changer la valeur du message d'alerte et le titre d'alerte à cette chose. Donc, hold est tout à l'intérieur de la chaîne, évidemment, car il accepte uniquement les chaînes. Et maintenant, nous écririons la valeur, ce qui serait le prix. Et puisque le prix serait en dollars américains, quand on pense à ajouter un signe de dollar aussi. La raison pour laquelle je l'ai fait,
pourquoi je me suis adapté à l'intérieur et dans la maladie parce que le prix est nos doubles propriétés. Donc, il aurait beaucoup de décimales après le prix réel. Donc, pour arrondir les choses, je l'ai enveloppé dans la valeur entière en fait. Et maintenant, nous donnons le titre d'alerte certains textes sont totalement à vous, comme ce que vous aimeriez vraiment faire à ce sujet. Ici, vous pouvez être créatif et écrire quelque chose vraiment différent sur certains autres ou tout ce que vous voulez, peut-être que vous pouvez simplement le laisser vide aussi. Et à l'intérieur d'une prise, Ajoutons juste quelques choses. Si les choses tournent mal, ce que vous devriez afficher. Donc oui, nous allons afficher comme edit évidemment, et ensuite nous utiliserons quelque chose comme s'il y avait un problème dans l'
affichage du prix de la carte que vous avez demandée ou quelque chose comme ça. Et que essentiellement une configuration. Et maintenant, ajoutons le reste des choses. Nous avons donc des choses à faire. A l'intérieur de ça. Nous empilons la nucléation standard secondaire. Nous devons ajouter quelques entretoises de location parce que vous pouvez voir cette année de fabrication et entre le temps de transmission, il y a beaucoup d'écart, écart inhabituel. Je ne sais pas pour quelle raison en fait, mais c'est là pour donner des espaces de taille spécifiques. Vous pouvez utiliser la propriété frame. Et maintenant, juste quand j'ai repris ce truc, il va me montrer la vue mise à jour,
ce qui, je pense, va fonctionner. Et voilà, ça a l'air mieux maintenant. Donc, dans la prochaine vidéo, nous allons ajouter plus de fonctionnalités à notre application.
11. Terminer notre application: Maintenant, nous allons créer le bouton. Donc, il y a en fait comme 23 façons différentes de créer un fardeau. Mais pour ce but précis, nous utilisons celui-ci. Donc, dans la première fermeture, nous écririons réellement l'action qu'il effectue. Donc juste appeler la fonction ici les marques calculées, ce qui fait en fait toute la majeure partie. Quand ça s'appelle. Il fait en fait toute la chose d' assigner la valeur du prix à l'alerte, le titre et tout. Et il définit également la valeur de montrer alerte à brasser. Et maintenant, nous allons concevoir l'interface utilisateur pour notre bouton, l'étiquette à l'intérieur de cette fermeture, nous allons réellement écrire toutes les choses qui sont importantes. Comment devrait-il ressembler ? Donc, créons-le comme un bouton normal. Nous allons juste le nommer, calculer puis lui donner notre couleur de premier plan. Et je pensais que je devrais lui donner une couleur de premier plan, peut-être noir ou vert, peu importe. Ajouter n'importe quel est comme si tout allait bien. C' est tout à fait à votre choix et comment vous voulez le créer. Vous pouvez utiliser une image ainsi qu'un bouton. Et c'est assez intéressant. Vous pouvez simplement utiliser une application de concepteur et de conception. Supposons que vous utilisiez Illustrator pour concevoir ce bouton, puis que vous l'importiez et l'utilisiez. Donc, vous pourriez avoir des tonnes de créativité en rendant l'interface utilisateur de l'art vraiment belle. Donc maintenant, je suis juste d'abandonner quelques valeurs simples pour ce bouton. Et donnons-lui juste un peu de rembourrage aussi. Et nous devons lui donner une couleur de fond au premier plan aussi. Il a l'air vraiment peu profond. Donc, pour donner la couleur de fond, nous avons utilisé un modificateur d'arrière-plan puis à l'intérieur duquel nous allons utiliser le point de couleur ou y. Je pense que vous pourriez lui donner n'importe quelle couleur que vous aimez. C' est totalement à la hauteur de la combinaison et des trucs. Et enfin, pour le faire ressembler à un bouton, nous lui donnerions une forme de clip de capsule, qui en fait la plupart des fardeaux de cette époque moderne abs sont lexiquement. Vous ne concevez que comme vous pouvez le voir n'importe où. Il est totalement comme si vous pourriez créer un rectangle arrondi ainsi, ce qui vous donne plus de liberté de 2S2, Quelle largeur et comme combien il est dû uniquement sur les coins supérieurs d'être. Donc, je pourrais juste expérimenter avec ça aussi. Et vous pouvez être vraiment créatif et avoir une interface utilisateur vraiment différente. Maintenant, nous attachons juste cette vue d'alerte en bas de notre bouton. Et c'est à l'intérieur de la seconde que nous empilons et au bas de notre bouton. Et pour être très honnête, cela n'a pas vraiment d'importance tant que la règle d'alerte est à l'intérieur de la propriété body, vous pouvez simplement l'attacher à n'importe quelle SEC. Je pourrais en fait l'attacher à la pile Zen finale aussi bien. La chose principale est que nous définissons la propriété d'alerte d'affichage true lorsque le bouton a été tapé ici dans notre niveau le plus élevé, que deux lignes que nous avons écrites pour nous appelle la fonction, qui détermine essentiellement simplement la valeur du prix. Le modèle d'apprentissage automatique fonctionne et il stocke sa finale vers l'extérieur à l'intérieur de cette constante de prix. Ensuite, nous attribuons le titre de l'alerte à cette valeur que nous obtenons du modèle d'apprentissage automatique. Et maintenant, c'est juste une syntaxe simple pour l'alerte. Donc, ici, il a une liaison bidirectionnelle évidemment parce que nous allons utiliser et rejeter la modélisation. Donc, quand nous tapons sur le rejeté, mais alors il bascule juste montrant la propriété d'alerte qui est un booléen et le définir sur false. Et quand c'est faux, cela signifie
qu'ils sont bruyants ne peuvent pas être montrés et qu'il rejette en fait, c'est vraiment aussi simple que ça. Donc maintenant, nous sommes juste en train d'écrire des trucs. Et je pense que j'ai oublié d'écrire du texte avant le titre d'alerte que je viens d'écrire. Et je reviendrai pour le changer aussi. Et maintenant dans la prochaine vidéo, je vais vous montrer cette utilisation pratique pour cela. On retirerait ce fichier CSV, puis on y ferait correspondre W. Et s'il est capable de prédire cette chose ou non. Et nous serions en mesure d'obtenir une meilleure compréhension que si cela fonctionne vraiment ou non. Donc, pour l'instant, à moins que les majors et laissez-moi juste corriger cette erreur que je cause. Et oui, notre application est complètement faite pour l'instant.
12. Tester notre application: Donc oui, on en a fini avec une obligation élevée. Alors ouvrons le fichier papa CSV aussi. Et vous pourriez utiliser un levier à cette fin aussi bien. On teste juste l'application. Donc là, je vais juste sélectionner une de ces valeurs aléatoires d'ici, le fichier. Et nous vérifierons simplement si cela fonctionne réellement, ni Sulla
crée simplement en utilisant le modèle Audi A3 2019, qui est en fait une boîte manuelle, essence, carburant. Et puis l'année de fabrication ou quelque chose comme ça. Et il y a le kilométrage autour de 1980 quelque chose
que je suppose à un sélectionné 1946 parce qu'il allait au-delà de cela. Après. Vous hors fabricant est en fait 2019. Pourrait voir le prix pour elle est donné un cheveu à $17,500, je suppose. Donc notre modèle suggère de le savoir. Ouais, donc 17 900$ et notre modèle pour le donateur 17 et 539$. Donc, c'est tout à fait exact, je dirais pour ce cas spécifiquement. Donc une cour, c'est Davos pour le modèle. Il passe juste en revue tout, puis il sélectionne
ce qui serait un prix inactif d'après les données d'IED qu'il a capturées. Et une chose que vous devriez garder à l'esprit est que cet ensemble de données comprenait en fait trois valeurs supplémentaires, et je ne les ai pas incluses lors de la création du modèle. C' est pourquoi le prix n'est pas exactement ce qui se trouve à l'intérieur d'un fichier CSV. Quant à quelqu'un qui se demande cette semaine, utilisez ce même jeu de données pour créer ce modèle, alors comment se fait-il que cela ne fonctionne pas ? Et je me disais que ça a l'air clair. Donc, j'aime juste le donner et fermer tout à l'intérieur d'une vue de navigation et je vais simplement lui donner un titre. Donc ça aurait l'air mieux. Mais je ne savais pas ça. Ça n'a pas vraiment l'air comme ça. Je peux dire, vous allez savoir ce que je veux dire maintenant, je vais juste ajouter un titre de barre de navigation et je gâche juste les choses. J' ai enseigné qu'au lieu de faire tout cela, je pourrais juste important un plus invasif, qui inclurait un intéressant formé avec mon nom d'application. Donnons un nom à cette application, créez mon RD ou quelque chose comme ça. Et ça semble cool en fait. Donc, nous pouvons simplement ajouter, j'échange mon Audi en utilisant Adobe Illustrator ou Photoshop d'une manière vraiment fantaisie. Et puis nous pourrions juste importer cette image en haut de la pile. Et vous pouvez faire des entretoises pour espacer les choses. Et j'ai l'impression qu'on a encore un peu d'espace entre ce bouton Calculer n miles, un curseur, on peut juste pousser les choses vers le bas. Un mot que tu peux dire juste foiré. Donc je me sentais comme une vision méchante. Utilisez la vue de navigation après tout. Donc je suis décuplé pour chacun d'entre vous qui suivent ce cours. Et comme, j'espère que vous avez beaucoup appris et à l'avenir je trouverais plus de vidéos, ce qui serait deux choses de plus. Donc, ce serait vraiment génial si vous laissez juste un commentaire et je vous verrai dans ma prochaine classe. Encore une fois. Merci beaucoup.