Transcription
1. Introduction: Hé, tout le monde, Mark Price ici avec des ordinateurs de bureau dot com, et voici les neuf de l'Iowa de débutant à professionnel rémunéré, je vais vous apprendre tout ce que vous devez savoir sur le développement IOS afin d'obtenir un emploi comme un programmeur à temps plein, représentant jusqu'à 70 000$ par an dès le départ,
ou pour construire un professionnel apt à l'Apple App Store. J' ai construit 57 application mobile sedate, et j'enseigne aussi dans le camp de démarrage de codage, et je sais ce qu'il faut pour apprendre. Et j'ai eu beaucoup d'étudiants qui m'ont dit que
j'ai suivi des cours en ligne, mais je ne peux pas obtenir ce dont j'ai besoin. Je ne peux pas retenir les connaissances. Voilà 10 000$. Aide-moi à sortir. Et donc j'ai commencé à penser, Et si je pouvais prendre cette expérience de camp de démarrage immersif et l'amener en ligne des étudiants, mais pour une fraction du coût ? Et je l'ai fait et il y a une formule pour le succès, et laissez-moi vous dire comment je vais faire de vous un développeur IOS professionnel dans quelques semaines. abord, vous allez apprendre tous les principes de programmation de base tels que les fonctions, boucles, les tableaux, tout ce dont vous avez besoin pour réussir dans n'importe quel langage de programmation. Vous allez également construire plus de 15 APS, et ce ne sont pas seulement l'écrasement jouet APS. L' appétit professionnel peut mettre sur votre portefeuille ou soumettre à l'APP Store. Nous vous offrons également plus de 40 heures de contenu. Aucun autre Iowa ne fait du sport sur toi. Timmy offre tout ce qui est proche de ça. Nos cours sont également super amusants sur leur vidéo. C' est comme une vraie salle de classe immersive. On va passer par les problèmes ensemble. Ce n'est pas écrit, alors on va apprendre à vraiment apprendre. Et donc quand je suis parti, sais
même comment résoudre les problèmes par vous-même. Enfin et le plus important moyen, offrir un salon de chat en ligne gratuit et un forum gratuit où vous pouvez aller obtenir de l'aide instantanément, je vais être là. Les aides de mon prof seront là, et la communauté sera là un outil super puissant pour vous aider à la place. Donc, si vous voulez faire de l'argent construire AP, que ce
soit la création de votre propre EPS pour la construction APS professionnel, Oui, développeur mince. Ce cours est pour vous. Je ne suis pas juste un gars assis dans son sous-sol qui fait des vidéos. Je suis un développeur professionnel. Je suis aussi professeur professionnel et j'enseigne dans un camp de codage tous les jours et j'aide les
gens à passer de rien savoir à trouver un emploi. programmeurs de l'Iowa. Donc, consultez les aperçus gratuits, Cliquez sur le bouton Inscrire et je vous verrai en classe.
2. Comment obtenir une aide GRATUITE en direct: Hey, qu'est-ce qui se passe, tout le monde ? Mark Price for depth, Celts dot com Et dans cette vidéo, nous allons parler du salon de chat en ligne gratuit que vous pourriez rejoindre pour obtenir de l'aide instantanément. Et la raison pour laquelle je ne veux pas que vous manquiez ceci est parce qu'obtenir de l'aide est si important quand vous essayez d'apprendre, surtout quand vous essayez d'apprendre la programmation, parce que cela pourrait être très déprimant et vous pouvez être très déçu facilement. J' ai donc fourni une communauté en ligne. Il y a déjà des tonnes de gens ici s'entraident tout le temps. Je suis là. Il y a des modérateurs là-bas. Il y a des gens qui sont enrobés pendant des années là-bas, et on est là pour s'entraider. Les étudiants s'entraident. Vous devez rejoindre ce salon de discussion si vous voulez vraiment tirer le meilleur parti de votre éducation dans ce programme. Et donc il utilise la plateforme de discorde. C' est en fait une plate-forme de jeu, mais fonctionne fantastiquement pour notre communauté, et je garde tous les spammeurs et toutes les ordures dehors de là, donc c'est vraiment un environnement d'apprentissage pur. Et pour accéder à ce salon de chat, tout ce que vous devez dio est d'ouvrir un navigateur et d'aller à def pentes dot com et de cliquer sur Chat Room , qui vous donnera une invitation à notre communauté et salon de chat ici. Et donc ce que je recommande que vous dio est que vous rencontrez des problèmes au travail sur eux pendant environ une heure. Et si vous vous cognez la tête après une heure et que vous ne pouvez absolument pas résoudre un problème, venez dans le salon de chat, obtenez de l'aide ou tout simplement être là en général et aidez à participer parce que pendant que vous enseignez, vous apprenez et grandissez vous-même. Donc il y a la salle de chat et laissez-moi juste vous montrer comment ça marche. Donc, si j'étais orteil post un problème, voici un code juste ici. Je pourrais juste copier cette commande Code, vous voyez ? Et si je veux le poster ici dans le salon de chat, nous pouvons utiliser la marque vers le bas. Donc,
cochez ,
cochez, cochez la touche supérieure gauche sous la touche d'échappement de votre clavier et tapez le nom de la langue dans notre cas, rapide sur la touche de maintien et appuyez sur Entrée, entrez à nouveau et faites trois plus de ticks, et à l'intérieur, je vais faire commande V pour coller le code, accord. Et puis je vais juste appuyer sur Entrée. Et comme vous pouvez le voir, le code est là. Laissez-moi juste dire aux étudiants que c'est un test parce que cet enregistrement du temps d'Israël. Donc, c'est comme ça que vous pouvez accélérer le code. C' est aussi d'autres choses simples que vous pouvez faire pour,
comme, comme, mots
audacieux. Donc, vous pouvez faire un double astérisque ici pour dire que c'est gras ou vous pouvez faire un seul. C' est moi Tallix. Ok
, des trucs vraiment cool. Une immense communauté là pour vous aider. C' est vraiment important que tu te joins à toi apprennes sur leur que je fais ça depuis
longtemps . Viens chercher de l'aide de moi. Je suis un programmeur professionnel. Je suis là pour t'aider. De toute façon, est-ce que les têtes se sont jointes au salon de chat ? Prends quelques compétences et je te verrai là, j'espère.
3. Pourquoi suivre ce cours ?: Mark Price,
écoutez avec les pentes sourdes et je voulais juste prendre un moment et avoir une
conversation individuelle avec vous. Mark Price, écoutez avec les pentes sourdes et je voulais juste prendre un moment et avoir une Fais semblant d'être ton professeur et tu es l'élève ou je suis ton mentor et ton mentoré . Peut-être que vous décidez si vous devriez acheter le cours ou non. Et si oui, je veux vous aider à atténuer vos inquiétudes ou vos craintes. C' est une conversation que je pourrais avoir dans la vraie vie quand quelqu'un vient dans
les camps de bottes où j'enseigne. D' accord ? Je veux donc vous donner toute la confiance dont vous avez besoin pour suivre ce cours. Et alors pourquoi suivre ce cours ? Eh bien, j'ai vu qu'il y avait beaucoup d'étudiants qui venaient me voir dans des camps de bottes de la vie réelle, disant que j'ai suivi des cours en ligne, mais je n'ai pas vraiment tout conservé. C' était un bon départ et de l'aide, mais je ne pouvais pas l'avoir dans ma tête. Et je me sens comme un nulle part plus proche que là où j'ai commencé à trouver un emploi, et j'ai commencé à le voir encore et encore. Et donc j'ai eu une idée. Et si je pouvais apporter l'expérience de 10 000$ de camp de démarrage à un cours en ligne. Et je t'ai choisi pour cette plateforme, et je pense qu'on peut le faire. D' accord. Alors ce qu'on va faire, c'est qu'on va traiter ça comme un camp de bottes. Sauf que tu ne paieras pas les 10 000$. Tu ne paieras que les quelques 100$ des frais de cours. D' accord ? Et ce que ça va faire, c'est que ça va le prendre de ne rien savoir. D' accord. Tout le chemin pour pouvoir travailler en tant que développeur junior ou être en mesure de publier votre propre APS sur l'APP Store. D' accord. Et alors pourquoi ce cours est-il différent ? C' est parce
que je te traite comme une étudiante. Comme si je me souciais de toi. Parce que je le sais. Je veux que tu réussis. Et si vous êtes ici pour suivre ce cours, c'est probablement parce que vous n'avez pas trouvé ce que vous cherchez. Ok, si vous cherchez une référence où vous pourriez juste frapper ligne, élément par ligne, élément X, Y et Z trouver la syntaxe pour quelque chose, vous savez, vous ne trouverez probablement pas que ici. C' est probablement une meilleure chose pour un débordement de pile dot com ou un développeur dot apple dot com En regardant la documentation. Il ne s'agit pas de référence. Il s'agit de changer la façon dont vous pensez en tant que programmeur. Ainsi, vous pouvez travailler professionnellement ou ainsi vous pouvez publier des applications professionnelles et tout ce que nous faisons ici vous guide dans cette voie. On ne va pas construire un jouet poubelle APS. D' accord. Tout ce que nous faisons va être de haute qualité, et cela aidera à construire votre portefeuille et vous aidera à devenir un développeur d'applications professionnel. Qui, en passant, certains développeurs d'applications gagnent jusqu'à 150 000$ par an. Donc, quand je sais que récemment postulé pour un emploi en tant que junior, développeur de l'
Iowa gagnait 100 000$ par an, et il ne fait ça que depuis six mois. Imaginez de faire ce que vous faites en ce moment jusqu'à gagner 100 000$ en six
mois . C' est très possible. Et donc j'ai toutes ces choses en tête pendant que je t'enseigne, ok ? Et donc quelques-uns des points de base rendra notre cours différent des autres est un. Nous avons une communauté en ligne fantastique, salons de chat en
direct et des formulaires. Vous pouvez obtenir de l'aide à tout moment car obtenir de l'aide pendant que vous apprenez le code est si critique. Deuxièmement, nous ne lisons pas les scripts. Comme vous pouvez le voir, je ne lis pas d'un script ici et maintenant, ok ? Je t'apprends juste ce que je sais être vrai et ce qui est efficace. D' accord ? Et aussi, nous planifions tout du début à la fin très soigneusement, mais nous ne lisons toujours pas à partir d'un script. Et pourquoi, c'est parce que je veux que vous puissiez passer par le
processus de développement et de codage . Je veux que vous fassiez les erreurs que vous allez découvrir que nous construisons quelques pommes ont des accidents tout au long du cours. On va les arranger ensemble. On va faire tout ce que tu vas faire est développeur professionnel pour que quand tu finiras ce cours et que tu veux construire quelque chose de nouveau, tu n'es pas comme, oh, foule. Ils n'ont pas enseigné ça dans les cours. Qu' est-ce que je fais ? Sachez que vous allez savoir comment le faire parce que vous avez appris les principes et
concepts sous-jacents et aucun autre cours ni aucun autre cours IOS sur vous, pour moi ou ailleurs ne fait ça. Ils apprennent vos X, y et Z, vous l'apprendrez. Et puis tu passes à la prochaine chose. Il est très scripté et vous ne savez pas comment résoudre les problèmes, comment utiliser l'outil pour résoudre les problèmes. C' est donc une chose qui nous sépare de tous les autres cours, c'est notre souci de vous aider à devenir un meilleur programmeur et développeur IOS. Et nous le faisons par quelques moyens. On est des échauffements au début de chaque section façon avoir un échauffement, aide à former votre cerveau à penser comme un programmeur. Vous pensez comme un programmeur est différent de ce que vous avez jamais pensé avant. Tu as un train. Comment orteil pense algorithmes, Comment résoudre les problèmes. Donc, nous allons faire que chaque section et le plus important, après chaque application que nous construisons et après quelques autres concepts est bien, aussi. Nous avons des exercices, et fondamentalement ce qu'est un exercice est une façon. Vous donner une liste de choses à faire pour construire votre propre application,
et fondamentalement, ils sont très similaires à l'application que nous venons de construire ensemble dans les vidéos. La différence est que vous devez utiliser votre propre puissance cérébrale pour essayer de résoudre certains de ces problèmes. Certains exercices ont des solutions, et certains d'entre eux ne le font pas, alors vous allez devoir trouver comment résoudre ces problèmes. Mais fondamentalement, les choses que nous venons de penser que nous construisons une application légèrement différente. Pas exactement la même chose à, parce que c'est juste copier. Et ça ne vous aidera pas à conserver. Nous construisons une application différente avec les mêmes principes, sorte que vous pouvez immédiatement conserver les choses que vous apprenez. D' accord ? Et donc je veux vous donner mon engagement personnel de vous aider. D' accord. Si vous avez besoin d'aide, hésitez pas à
contacter le chat sur les formulaires en ligne. Je vais être là
, sortir des discussions ici. Et toi à moi. Faisons de ce cours immersif en ligne. Donc vous ne payez pas les 10 000$ de frais de camp de démarrage, mais vous obtenez l'expérience du camp de démarrage, et j'espère que c'est excitant pour vous. Je veux que tu prennes ce cours. Je veux que tu réussis, et c'est Mark Price avec les pentes de mort point com, et je vais te voir en classe. Espérons que
4. Comment exécuter Mac sur un PC: Tout le monde. Qu' est-ce qui se passe, Mark ? Pricier Deb savons dot com. Et voici une courte vidéo sur la façon d'exécuter Mac sur un PC. Peut-être que vous n'avez pas d'ordinateur Mac, et tout ce que vous avez, c'est un PC, et que vous voulez essayer de faire fonctionner Mac dessus. Donc, ce que vous devriez dio est d'ouvrir un navigateur et il suffit de taper et d'exécuter Mac sur PC. Et la vidéo que vous voulez vraiment est juste ici comment installer Mac OS X. Euh, celle-ci juste ici. Ok, donc voilà le gars. C' est la meilleure vidéo que j'ai trouvée. Passe tout le processus en profondeur. Je ne vais pas le faire pour toi parce que ce type connaît ses affaires et peut t'aider. Maintenant, cela
étant dit, j'ai un PC très puissant en plus de mon Mac et j'ai essayé de suivre ces étapes. Et cela n'a pas fonctionné parce qu'il ne fonctionne pas sur tous les PC et les esprits d'environ cinq ans. Donc tu dois en avoir une plus récente. Si vous voulez que ça marche, c'est que je vous recommande de le faire fonctionner avant essayer Teoh, de
prendre ce cours ou de l'acheter, euh,
parce euh, que je ne voudrais pas que vous le fassiez. Je ne voudrais pas te dire que ça va marcher parce que ça ne marche pas sur tous les ordinateurs. Cela étant dit, si vous voulez être un développeur professionnel, si vous voulez vraiment entrer dans cette industrie et si vous voulez vraiment Teoh être
développeur iPhone soit comme, ah programme à temps plein ou faire votre propre APS, vous devez avoir un Mac. Maintenant, si vous êtes un programmeur en général, vous devez sortir de l'idée d'être biaisé vers une autre plate-forme. Oh, je déteste Mac. Je déteste Apple. Je déteste Steve Jobs. Ou, tu sais, ou de l'autre côté, je déteste PC. Je déteste Lennox. Peu importe. Je déteste l'androïde que tu as. Tu dois arrêter. Tu dois être agnostique de la technologie, et tu dois commencer à les aimer tous. Les vrais développeurs et les bons développeurs savent comment utiliser plusieurs plates-formes, donc je vous recommande d'obtenir un Mac, et il y a plusieurs façons de le faire pour un prix assez bon marché. abord, vous pouvez aller à Google et taper Apple remis à neuf. Ok, un ordinateur remis à neuf est essentiellement un ordinateur qui a eu un problème, et ils ont sorti la partie problématique. Mettez un tout nouveau. Et donc c'est presque comme si c'était vraiment, comme un tout nouvel ordinateur. Mais légalement, ils ne peuvent pas appeler ça un tout nouvel ordinateur. Il est remis à neuf. Alors pensez juste à avoir un nouvel ordinateur. Et ce que je recommanderais, c'est celui-là, le Mac Book air remis à neuf. Ok, euh, et donc si vous descendez à gauche, cliquez sur Mac Book Air 13. Nous verrons tous ceux qu'ils ont disponibles. Et voici quelques rénovations qu'ils ont disponibles. Vous obtenez de très bons ordinateurs pour, hum, pour un prix plus bas. Et tu es genre, 1000$. C' est ce genre de vous. C' est trop cher. Eh bien, euh, il faut que tu investis en toi-même. D' accord. Je ne veux pas paraître grossier ou méchant. Quoi ? Vous devez investir en vous-même Si vous êtes vraiment sérieux à propos de faire ça dans la vraie vie en personne, les gens qui prennent mes camps de bottes, on fait en sorte que tout le monde ait Max parce qu'il y a tellement de prévalence, surtout dans le monde. Technologies open source, sans parler de pomme. Mais en général, si vous voulez utiliser des technologies open source. Ils commencent vraiment à s'occuper de Max. Ok, une autre option est ah, mieux acheter boîte ouverte. D' accord. Et ce que j'aime faire, c'est cliquer ici et regarder tous les trucs de la boîte ouverte. Et alors cliquez sur les ordinateurs et les tablettes et ah, c'est cool. Mais nous ne voulons pas de PC. On veut Max. Allons donc trouver le maximum. Liken. Euh, eh bien, nous allons cliquer sur les ordinateurs portables. D' accord. Et puis nous y voilà. Voici la marque. Tu cliques sur pomme, d'accord ? Et ils ont des ordinateurs remis à neuf ici aussi pour vous l'a confiné. En fait, j'ai un super album Mac pour, genre, 680$ par 13 pouces. C' était sur la cellule Ultra, au fait. Au mieux, Buy. Si tu es vraiment gentil, tu peux parler au gérant du magasin et dire, Hey, j'essaie d'apprendre quelque chose de nouveau. Je n'ai pas beaucoup d'argent. C' est la boîte ouverte peut me donner une réduction. Je l'ai déjà fait, et ils vous donneront et ils vous donneront
encore 50 ou 100$ de rabais. Donc, le meilleur achat est un excellent endroit pour aller et obtenir un livre Mac d'occasion. Um, je prendrais un album sur Mac. Très puissant. Exécute tout ce que tu dois faire. Donc encore une fois, si vous êtes vraiment sérieux à propos de faire iPhone APS. Ok, prends un Mac. Euh, vous pouvez essayer d'installer sur un PC. Je ne peux pas garantir que ça marchera. Ça n'a pas marché pour moi. Cela fonctionne pour beaucoup de gens, cependant. Bref, il y a des conseils gratuits Street. Voilà l'euro. Ce type est génial, et j'espère que vous pourrez le faire et suivre ce cours en vous investissant et nous
allons travailler.
5. NE PAS DO CETTE VIDÉO: Hey, qu'est-ce qui se passe, tout le monde ? Mark Price for depth, Celts dot com Et dans cette vidéo, nous allons parler du salon de chat en ligne gratuit que vous pourriez rejoindre pour obtenir de l'aide instantanément. Et la raison pour laquelle je ne veux pas que vous manquiez ceci est parce qu'obtenir de l'aide est si important quand vous essayez d'apprendre, surtout quand vous essayez d'apprendre la programmation, parce que cela pourrait être très déprimant et vous pouvez être très déçu facilement. J' ai donc fourni une communauté en ligne. Il y a déjà des tonnes de gens ici s'entraident tout le temps. Je suis là. Il y a des modérateurs là-bas. Il y a des gens qui sont enrobés pendant des années là-bas, et on est là pour s'entraider. Les étudiants s'entraident. Vous devez rejoindre ce salon de discussion si vous voulez vraiment tirer le meilleur parti de votre éducation dans ce programme. Et donc il utilise la plateforme de discorde. C' est en fait une plate-forme de jeu, mais fonctionne fantastiquement pour notre communauté, et je garde tous les spammeurs et toutes les ordures dehors de là, donc c'est vraiment un environnement d'apprentissage pur. Et pour accéder à ce salon de chat, tout ce que vous devez dio est d'ouvrir un navigateur et d'aller à def pentes dot com et de cliquer sur Chat Room , qui vous donnera une invitation à notre communauté et salon de chat ici. Et donc ce que je recommande que vous dio est que vous rencontrez des problèmes au travail sur eux pendant environ une heure. Et si vous vous cognez la tête après une heure et que vous ne pouvez absolument pas résoudre un problème, venez dans le salon de chat, obtenez de l'aide ou tout simplement être là en général et aidez à participer parce que pendant que vous enseignez, vous apprenez et grandissez vous-même. Donc il y a la salle de chat et laissez-moi juste vous montrer comment ça marche. Donc, si j'étais orteil post un problème, voici un code juste ici. Je pourrais juste copier cette commande Code, vous voyez ? Et si je veux le poster ici dans le salon de chat, nous pouvons utiliser la marque vers le bas. Donc,
cochez ,
cochez, cochez la touche supérieure gauche sous la touche d'échappement de votre clavier et tapez le nom de la langue dans notre cas, rapide sur la touche de maintien et appuyez sur Entrée, entrez à nouveau et faites trois plus de ticks, et à l'intérieur, je vais faire commande V pour coller le code, accord. Et puis je vais juste appuyer sur Entrée. Et comme vous pouvez le voir, le code est là. Laissez-moi juste dire aux étudiants que c'est un test parce que cet enregistrement du temps d'Israël. Donc, c'est comme ça que vous pouvez accélérer le code. C' est aussi d'autres choses simples que vous pouvez faire pour,
comme, comme, mots
audacieux. Donc, vous pouvez faire un double astérisque ici pour dire que c'est gras ou vous pouvez faire un seul. C' est moi Tallix. Ok
, des trucs vraiment cool. Une immense communauté là pour vous aider. C' est vraiment important que tu te joins à toi apprennes sur leur que je fais ça depuis
longtemps . Viens chercher de l'aide de moi. Je suis un programmeur professionnel. Je suis là pour t'aider. De toute façon, est-ce que les têtes se sont jointes au salon de chat ? Prends quelques compétences et je te verrai là, j'espère.
6. Compte sur Apple Developer et Xcode: Hé, tout le monde, Mark Price ici à la profondeur des pentes point com. Et c'est une journée passionnante. Vous arrivez à vous inscrire en tant que développeur Apple, première étape dans un monde plus grand, alors allons-y et allons au développeur dot apple dot com. Pullup N'importe quel navigateur et développeur point pomme dot com est le site Web pour toute la ressource est que vous allez avoir besoin de vidéos, de
documentation , d'
outils, etc. Il est là, alors cliquez sur un centre de membre en haut à droite, et ce que nous allons faire est de créer une nouvelle pomme I d. Donc cliquez sur ce bouton là et il va demander avant quelques informations de base. Une grande partie de votre prénom, votre nom, votre pomme. Je,
euh , qui, euh, va rester avec votre compte iTunes. Et, euh, mais dans votre mot de passe, confirmez le mot de passe tous les trucs de base. Je veux juste m'assurer qu'on marche à travers ça pour que tu vois exactement ce que je fais en posant tes questions de sécurité. Et si vous vous demandez si ce sont vraiment des questions et des réponses ont à voir avec moi, elles ne le sont pas. Donc tu ne peux pas pirater mon compte Apple. Il y a un hein ? On verra ça. Eh bien, c'est bon, tout est faux. Alors passons par ici. Questions de sécurité. C' est plutôt cool. Le réel utilisé pour coûter de l'argent, même juste pour devenir un développeur de pomme. Donc, ils ont vraiment ouvert et ont permis aux gens Teoh d'embrasser la plate-forme. anniversaire se rapproche. Nous allons mettre votre adresse postale et obtenir des informations de base ici. Tu es comme je le pensais, ces vidéos, on va être excitant. Eh bien, je ne sais pas à quel point je peux rendre plus excitant de remplir Ah, formulaire pour moi. Mais si je n'ai pas fait cette vidéo, assez
sûr, quelqu'un pour être comme je ne peux pas le faire fonctionner Qu'est-ce qui se passe ? Et c'est là. Si vous avez des problèmes, vous pouvez regarder cette vidéo, et tout est ici enregistré. Mettez dans le code de sécurité ici qu'il est sur l'image et créer apple i D. Qui va vous envoyer un e-mail à votre adresse e-mail. Et bien sûr, on l'a eu. Si vous ne l'avez pas reçu, vérifiez votre dossier de spam. Il aurait pu y aller. Utilisez cliquez sur Vérifier maintenant, mais là et allez-y et entrez votre nom d'utilisateur et mot de passe que vous venez de créer pour votre compte. Adresse e-mail vérifiée whoa ! Succès. Je pense que nous venons de devenir un développeur de pommes. Connectons-nous. Très bien. Connectez-vous. Tu dois être d'accord. Vous pouvez lire tout ou vous pouvez accélérer le lire ou non. Lisez tout. Vraiment ? Ne vous en souciez pas et soumettez. Et maintenant, nous sommes dans tous les laissez-passer d'accès. Donc le cas SD est ce que nous voulons parce que c'est ce qui a tous les outils dont nous allons avoir besoin que nous allons pouvoir télécharger. Très joli site web. C' était vraiment moche, au fait. Ils ont vraiment ouvert à nouveau aux développeurs, ce qui en fait une grande expérience. Cliquez sur le manteau X, laide cliquez sur le code X. Et il parle de quelques-uns des principes de base de l'extra. Tu veux vraiment lire ce truc vraiment cool. Se familiarise avec tout ce que vous pouvez sur le site Web sur tout ce qui a à voir
avec le développement de la pomme ou de l'Iowa. Lisez tout ce que vous pouvez. Plus vous
lisez, plus vous serez intelligent. Plus vous apprendrez, cliquez sur Télécharger. Et en ce moment, c'est la bêta. Ok, X code sept, bêta quatre. Ça pourrait être bêta 5 dans le futur. Si l'export sept est en ligne, vous allez télécharger réellement à partir de l'APP Store. Vous pouvez donc avoir différentes versions bêta ici, selon le moment où vous regardez cette version, ou vous l'avez peut-être téléchargée depuis l'APP Store. Espérons que nous avons mis à jour notre code à l'intérieur de notre programme pour fonctionner avec n'importe quelle aversion bêta que vous pourriez avoir. Ils devraient tous être très semblables. Et pour le télécharger, vous pouvez simplement cliquer sur ce téléchargement ex coach sept données et il va télécharger et installer. Et c'est tout. Tout ce que tu dois faire, c'est le télécharger. Maintenant, nous allons parler de l'installer dans la prochaine vidéo.
7. Augmenter et réduire la taille de polices Xcode: toi-même, tout le monde. Mark Pricier. Deb savons dot com Aujourd'hui, vous allez avoir un aperçu des conseils et astuces que j'ai utilisés pour
augmenter la taille de la police et la diminuer à la volée. Peut-être que quelqu'un que tu te demandais, c'est magique ? Comment fait-il ça ? Parce que je ne peux pas le faire. Laisse-moi te montrer. Je fais en sorte que ça sonne plus excitant que ça ne l'est en fait. Il est en fait brancher un code X n'est pas fourni par défaut. Si vous avez remarqué sur le code X. Eh bien, nous allons juste ouvrir ici sur le code X. Vous savez, je pourrais aller aux préférences de code x, polices et couleurs, et ensuite je peux changer manuellement la taille ici. Quelle grande douleur. Mais parfois, vous voulez juste être capable de rapidement, euh, à augmenter ou diminuer la taille comme vous le pouvez et beaucoup d'autres je d soulager. Alors quoi, nous allons dio nous allons télécharger ce plug ici, obtenir hub dot com slash Zatz slash ajuster la taille de la police Dash X code Dash plug in. Maintenant, si c'est beaucoup, vous pouvez simplement aller à Google et taper Ah x code taille de police augmentée et ce
débordement de pile supérieure ici. OK,
cliquez dessus, puis faites défiler vers le bas. Et tu vois celui-là ? Ce 13 13 votes en haut peut être différent quand on le regarde,
il est 14 maintenant. Ha, ha. Allez-y et cliquez sur ce lien et je vous emmènerai au même endroit. Et ce que tu vas dio, c'est que tu vas télécharger le zip. D' accord ? Cliquez sur le fichier lui-même. Le fichier zip. Allez dans le dossier et ce projet juste ici. Tu vas bien. Cliquez dessus et ouvrez avec le code X Beta. Si vous travaillez dans le code bêta X que vous avez, vous avez ouvert avec bêta. D' accord ? Si vous voulez installer sur votre code X normal, vous devez faire la même chose est ce que vous devez aussi l'ouvrir avec le
code X sur lequel vous vouliez travailler. Dans notre cas, nous utilisons le code X bêta pour Apple TV parce qu'il n'a pas été publié. Étape si elle a été libérée. Utilisé la version 7.1 en direct, que vous aurez téléchargé à partir de l'APP Store afin d'ouvrir avec X code bêta application. D' accord. Et vous le tirez ici et tout ce que vous Dio, c'est que vous l'exécutez,
c' est tout. Vous l'exécutez. Et une fois qu'il dit courir, euh, faisons-le maintenant en exécutant X codebuild réussi. C' est ça. Fait. Deal. D' accord. Rien d'autre que tu dois faire. Vous pouvez cliquer hors de celui-ci. Arrêtez la tâche. C' est très bien. Et puis si vous ouvrez votre projet, vous compresser la commande. Et le signe plus devient plus grande commande dans le signe moins et devient plus petit. , Quoi qu'il en soit, c'est un autre conseil de Marks. Cool X conseils de code, quelque chose qui n'existe pas vraiment. Mais tu sais quoi ? Je dio si cool. Deal. Amusez-vous, buvez
heureux et grandissez.
8. Introduction à l'application iOS 9: Bonjour, tout le monde. Mark Price avec Deb pentes dot com Je vais donner introduction à l'application que nous allons
construire en fait, notre toute première application Super cool. En fait, c'est le nom de l'APP. Je vais ouvrir le simulateur de code X ici. Et comme vous pouvez le voir, c'est un écran blanc avec du texte bleu, et il se trouve que c'est juste un bouton. Et quand vous cliquez sur le bouton qui dit me rendre super cool parce que maintenant c'est super ennuyeux. Boom, ap, on a des antécédents. On a une image là-bas. Donc ce que nous allons couvrir, ce sont quelques principes. Comment obtenir le code X en marche. On va parler de je serais des points de vente. On va parler des réactions de moi. Ah, vous vue d'image. Et ah, est-ce que vous avez des vues d'image, en fait, et le bouton u A et ah, ça peut sembler simple, mais il y a des choses que vous allez apprendre, donc ça va être très amusant, excitant. Et c'est le début d'un voyage dans le monde du développement d'applications. Il devient seulement plus aventureux, plus amusant et étaient complexes à partir d'ici. Mais c'est le point de départ. Je suis excité de t'avoir ici en classe. Allons de l'avant et amusez-vous et construisez une application. Tout le monde, nous allons parler un peu de cette application à venir étaient sur le point de construire ainsi quelques outils qui peuvent nous aider à renverser avant de le construire. Ça a un sens. Donc on va parler de cadrage métallique, donc très cool site web. Um, je peux vous faire monter et courir très vite est https colon slash slash frame dot cc. D' accord. Et, euh, je vais aller de l'avant et juste cliquer sur le bouton Commencer à dessiner ici, et ils ont quelques options différentes, donc vous pouvez choisir une, vous savez, tablette, celle-ci est un mobile. Celui-ci est un paysage mobile. Et donc notre application va juste être mobile. Donc je vais juste cliquer dessus et comme ça me fait un joli petit iPhone. Ce qu'on veut et tout ce qu'on va faire, c'est avoir une idée approximative de ce qu'on va faire. Maintenant, vous pouvez construire des cadres de fil de différentes manières. Vous pouvez le faire à travers son outil logiciel comme celui-ci. Vous pouvez le faire sur un stylo et du papier. Prenez des photos que vous pouvez faire dans Photoshop avec un tapis de croquis, ce que je fais. Parfois, l'idée est juste d'obtenir votre application visuellement devant vous afin que vous puissiez savoir ce que vous allez faire avant de commencer à enduire. Donc notre application s'appelle Boom AP. Et ce que ça va faire, c' est être très ennuyeux au début et avoir un bouton sur l'écran, ok ? Et puis lorsque vous appuyez sur ce bouton, il charge un fond cool dans un logo cool. Ça ne devrait pas être beaucoup qu'on va faire ici à l'écran. Donc, nous voulons faire est juste aller de l'avant et cliquez et faites glisser quelque chose. Donc ce qu'on va faire, c'est dire, on sait qu'on a besoin d'un titre, d'un gros titre qui va là-haut. D' accord. Et, ah, ça va être une image qui nous dit en image, ok ? Et puis on va juste cliquer et faire glisser ici, et on sait qu'on va avoir besoin d'une boîte ronde, mais ici, il y a des choses différentes. Vous savez, beaucoup de petites options cool ici. Alors ils vont dire que c'est un bouton,
ok. Alors ils vont dire que c'est un bouton, Et ah, tu as mis un coup dessus. Des choses comme ça. Euh, donc voici votre bouton. Très cool. Donc on sait quand on clique sur ça, mais dans ,
hum, que ça va faire apparaître ça et Accord va faire apparaître un arrière-plan si on veut
vraiment, um, rendre parfait avec leur autre image. Je sais qu'on a perdu nos autres trucs. Eh bien, nous pourrions probablement juste aller ici pour arranger les éléments et nous voulons être renvoyés à l'arrière, donc c'est le surlignement qu'il est renvoyé. On y va. Donc, nous devons image ici une image ici et chaque acclamation représentant notre application, l'image du logo, l' image de
fond sur le bouton qui va les faire apparaître. Donc, il est probablement seulement nécessaire pour le moment, vous pouvez laisser cet écran ouvert. Si vous obtenez la version premium, vous pouvez le télécharger. Uh, fais tout ce dont tu as besoin avec, mais je pense que c'est assez bon pour l'instant pour que nous puissions commencer sur notre application et nous allons de l'avant et obtenir un revêtement
9. Ressources d'apprentissage - Entraînez-vous votre cerveau !: cependant, un que je voulais juste prendre quelques minutes et parler d'une
ressource d'apprentissage super importante est que vous allez suivre ces cours. Alors que vous devenez un développeur de bébé junior, vous allez vouloir manger, dormir et respirer le code à chaque instant à chaque fois parce que vous devez former votre cerveau à penser d'une certaine façon. Beaucoup d'entre nous n'ont pas utilisé ces types de compétences que nous allons utiliser un programme. C' est juste la résolution de problèmes avec la logique et des choses comme ça. Donc, vous devez former votre cerveau continuellement. Donc, à la ressource est, je veux recommander dès la sortie de la boîte. Voici les vidéos WWDC. Chaque année, l'Apple Worldwide Developer Conference met sur Big Conference, plein de présentations sur le développement, en plus de publier de nouveaux produits et des choses comme ça de toute façon,
Donc, si vous êtes une pomme enregistrée développeur, que vous devriez être à ce stade, vous pouvez simplement aller au développeur, pas pomme dot com pour elle slash vidéos pour un wwdc slash pour son dernier 2015. C' est l'année qui va changer au fil des années, ils ont mis en vedette des vidéos ici. Ressource fantastique est ce qui est nouveau et rapide ? Quoi de neuf dans le code X ? Concevoir pour un futur port. Certains d'entre eux sont très, très avancés. Certains d'entre eux sont très basiques. Alors faites juste quelques recherches. Déterminez ceux qui semblent être un bon point de départ. Mais tu devrais regarder. Vous devriez devenir un expert en pomme. Vous devriez commencer à vivre et à respirer ces choses parce qu'ils vont vous apprendre les principes de la programmation sur et le SDK IOS. Mais ils vont vous apprendre ce qui fait une bonne application ce que Apple attend dans leur conception et leur ah, dans leur système. Donc, quand vous allez à soumettre après l'APP Store, vous pouvez savoir que votre application suit les meilleures directives et principes et pratiques si très fantastique. Développeur de ressources top dot com slash vidéo slash wwdc slash 2015 Découvrez tout sur Iowa s et toutes les nouvelles choses. Super cool. Le 2ème 1 dont je veux parler est le Projet Euler ou le Projet Oiler. Dépend comment vous voulez prononcer tomate,
tomate Mais fondamentalement ce site est un site Web où vous pouvez pratiquer des
compétences de résolution de problèmes . Ok, donc quand vous écrivez un Sûr, il y a une série
de questions qu' ils vous demanderont de résoudre. Fondamentalement, chacun a une réponse très spécifique, et ils vous diront ce que vous devez faire pour la résoudre. Et puis dans ce que la programmation que vous voulez, vous résolvez le problème. Vous devriez viser à résoudre un de ces projets sur Project Euler une fois par semaine et continuer former votre cerveau pour être programmeur. Ça prend beaucoup de temps. Tu vas suivre ce cours et tu vas apprendre beaucoup. Mais il n'y a pas de trucs là ? En fait, chaque moment où vous ne travaillez pas sur le travail de cours ici, vous devriez vous entraîner et programmer et vous abonner à des blocs technologiques vraiment être
injecté dans. Si vous voulez vraiment faire un changement de carrière ou si vous voulez vraiment faire quelque chose de génial avec le développement d'
iPhone, vous devez injecter votre cerveau et décoder tous les jours. Alors projet Euler WWDC. Assurez-vous que vous passez beaucoup de temps à étudier sur ces ressources est et à apprendre
autant que vous le pouvez
10. Application iOS 9 : votre première application !: Bienvenue de retour, Mesdames et Messieurs façon sont sur rempli notre toute première application. Super excitant. Super cool. En fait, c'est le nom du projet. Super cool. Alors passez à votre ex code bêta et cliquez dessus. Ça va rebondir. Ça va apparaître avec un menu. Maintenant, vous devriez voir l'écran. Si vous ne partez pas à nos forums et ne publiez pas ce que vous voyez, nous pouvons vous aider. Mais c'est l'écran commun que vous voyez chaque fois que vous voulez créer un nouveau projet. Donc ce qu'on va faire, c'est qu'on va cliquer sur celui-là juste au milieu, créer un nouveau projet de code X. Ils sont gentils. D' accord ? Non, c'est notre première fois. On va aller beaucoup plus en profondeur plus tard, Ron. Donc nous allons passer par le semi-rapide. Je ne vais pas expliquer tout ce que vous voyez ici, mais fondamentalement, nous allons cliquer que nous voulions une application IOS et que nous voulions être une seule application de vue. OK, une vue unique signifie une étendue de vue. Cliquez sur le bouton suivant. Nom du produit, nom l'organisation
super cool que vous pouvez y mettre tout ce que vous voulez. Votre nom ou votre entreprise, nom et organisation. Identifiez où il est conventionnel avec Ivo siestes d'utiliser un domaine inverse tel que com, votre entreprise nom de point de l'application. Donc un Z, vous pouvez voir juste là l'identifiant du bundle. Il remplit le nom pour nous automatiquement, donc com dot Deb pentes super cool. Eh bien, ce sont des langages supercool. Rapide. Bien sûr, nous allons aller dans l'objectif voir plus tard, mais Swift est le langage de programmation
le plus grand et le plus méchant là-bas récemment. Classé numéro un langage de programmation dans le monde. En ce qui concerne le plus populaire et les appareils que je téléphone, je pad dans Universal Universal. Évidemment rencontrer les deux. Nous allons juste sélectionner l'iPhone pour maintenant pour rendre notre vie plus facile. Ok, tout ce qui se passe maintenant, c'est qu'on sauve le projet, et je vais juste mettre sur le bureau pour l'instant. Il y a un contrôle de la source. Créer un dépôt get sur mon mac. Maintenant. Nous n'avons pas vraiment besoin de ça maintenant, mais vous le ferez à l'avenir. Et quand vous créez vos propres projets en utilisant la version mitral, qu'Oslo va parler de contrôle de version plus tard ? Alors allez-y et cliquez sur Créer, Et si vous remarquez apparaître en haut, à droite, ils ont créé un projet pour moi. Très gentil. Voici nos informations générales d'application. Ici. On a une cible. D' accord. La cible est super cool, et c'est des paramètres généraux. Ok, sont juste là. Et ce qu'on va faire. Gardez-le sur iPhone. On va décoller le paysage à gauche et le paysage, non ? On va tourner à l'envers. On veut juste le garder comme une application de portrait, d' accord ? Et l'idée est que nous allons avoir une application très simple et ça comme un biden, et ensuite nous allons appuyer sur ce bouton et l'APS va tourner super cool et montrer des
images cool . Alors allons de l'avant et Mosey sur notre travail principal de l'histoire sur les points. D' accord. Et un storyboard en manteau X est comme une histoire. Il vous emmène d'un écran à l'autre, vous
montrant ce qui vient à l'autre bout ce qui vient ensuite. Et, euh, c'est comme ça qu'ils fonctionnent. Fondamentalement, comme si tu construisais un livre de contes pour un enfant, tu mettrais une page ensemble, et c'est comme ça que les storyboards étaient. Très, très gentil s. Oh, le
voilà. D' accord. Nous avons le côté droit, qui a l'inspecteur, plein de tout un tas d'informations, aller dans les détails. Nous allons ici sur le côté gauche, il vous montre ce qui est actuellement sur votre storboard pour cela. Ce qu'on appelle le contrôleur de vue. Ok, alors quoi ? Je vais encore dio. C' est juste pour faire une sieste et le rendre vraiment simple et ne pas trop vous confondre au début. Donc ce que je vais faire, c'est que je vais cliquer sur le contrôleur de vue ici sur le côté gauche et par ici. Vous voulez vous assurer que l'inspecteur des attributs d'affichage est sélectionné et sa taille. Je vais changer ce Teoh un iPhone six, qui est ce quatre points de pouce. Ok, tout ce dicton est, Hey, faisons en sorte que ça ressemble à un iPhone 6. Euh, pour que vous puissiez concevoir les choses en conséquence. Donc encore une fois, ce que nous voulons avoir arrive, vous appuyez sur un bouton, et cela rend votre application super cool. Donc ici, vous avez une liste de contrôles, est-ce
pas ? Euh, tu as ce qu'on appelle ici. Bibliothèque d'objets. Ok, donc je vais chercher ce qu'on appelle un
bouton U I. Je vais juste cliquer et le faire glisser ici. Très, très gentil. Il s'alignera. Je vais cliquer dessus et l'allumer. au milieu. Parfait. Je vais l'étirer bien et long. Je vais lire Glisser-le ici et au centre et encore. D' accord. Maintenant, par ici, à droite à l'intérieur. Je peux changer ce qu'il dit. Ok, c'est le titre ici, et je vais vous dire que je suis super cool. C' est un bouton. Rends-moi super cool. Alors je vais le sauver. Je vais aller de l'avant et par là à droite, à l'intérieur de vos simulateurs. C' est ce que vous pouvez tester votre application sur afin de déployer sur un appareil que vous avez orteil ont ah payé compte développeur Apple enregistré. Mais vous pouvez utiliser le simulateur pour l'instant. Et donc je vais sélectionner dans cette affaire iPhone six. Parce que c'est là que la construction et les tests pour, euh, et si vous ne voyez pas
ça ici, ça peut signifier que ces composants et l'étape d'isolation nécessaires n'ont pas été installés. D' accord ? Et alors, euh, allez sur nos forums, postez votre problème, et nous pouvons pointer vers la bonne direction pour obtenir une insulte, mais il aurait dû l'installer avec l'installation. Donc l'iPhone six va cliquer dessus. D' accord. Et tout ce que je vais faire, c'est appuyer sur ce bouton de lecture ici. Donc, il construit notre toute première construction d'application a réussi à exécuter supercool sur iPhone six. Donc, il se charge, et c'est là. Notre application est chargée et regarde, le bouton clique et tout. Nous venons de construire notre toute première application iPhone. Prenez votre main et vous tapotez sur le dos et la réalisation passionnante. Et ce n'était pas si compliqué. Et le développement de l'iPhone est en fait assez simple. Comparé à de nombreuses autres plates-formes, il peut devenir intrinsèquement complexe à mesure que vous construisez des applications plus robustes. Mais pour commencer est dans l'article quelques pointeurs ici avec le simulateur. Si c'est trop grand sur votre écran, il y a des choses que vous pouvez dio. Ok, vous pouvez, euh Eh bien, abord, vous pouvez changer vos appareils ici à partir de l'iPhone six et six plus etcetera. D' accord, euh, vous pouvez enregistrer des captures d'écran en cliquant. Cela permettra d'enregistrer une capture d'écran de cela pour mourir. Arrêtez là où vous pouvez nous commander. Ok
, on va voir ici. Mais je suis en fait à la recherche est ah, cherchant tourner à gauche et à droite pour simuler le paysage. Et ce que nous voulons faire ici, c'est en changer la taille. Donc, si j'appuie sur la commande du clavier Commande plus un rend super grand par Appuyez sur Commande plus deux. Il le rend de taille moyenne Commande plus trois rend de petits sites. Donc, si vous avez des problèmes de dimensionnement sur votre ordinateur parce que vos moniteurs à petite commande plus un ou commande Plus deux ou commande Plus trois redimensionnera le bouton de commande eso sur votre clavier est dit commande et maintenez-le enfoncé pendant que vous appuyez sur +12 ou trois. Alors on y va. Vous avez une application iPhone de base en cours d'exécution, mais ce n'est pas encore terminé. Maintenant ce qu'on doit faire, c'est trouver sont aptes à pointer où ça commence à paraître super cool, et je pense qu'on va avoir besoin de graphiques pour ça. Donc je vais aller sur Google Chrome, le
tire ici. Et au fait, si vous avez vu ça apparaître sur l'écran, ça s'appelle Spotlight Search. Vous pouvez y accéder en appuyant sur la commande de votre clavier, plus la barre d'espace, et c'est super utile. Vous pouvez taper n'importe quoi et vous mènera directement à cette application. C' est ce que nous venons de faire pour Google Chrome. Je vais sur ce site de fonds appelé Text Craft dot net. Et nous allons juste obtenir un graphique cool pour notre application. Vous pouvez donc choisir un tas de lettres et de fonds et le type de choses ici, et ensuite vous pouvez le télécharger. Je vais aller avec le pré-construit,
mais ils ont ici que quelqu'un a fait des super choix. Je vais aller avec le pré-construit, Et je vais dire,
euh, euh, boum ap parce que c'est une application et c'est boum. Cool. Ok, alors boum au frais. J' ai fait un petit logo ici. Vous pouvez jouer avec ce que vous voulez de votre côté. Je vais le télécharger. Et c'est penser et penser, et ce sont ces boum. Donc, si je clique sur ce pour aller la montrer et la trouver ou si vous utilisez safari, vous pouvez utiliser safaris, outil de
téléchargement, dans tous les cas, il à ma section de téléchargement sur mon finder sur mon dos. Et là, ISS Donc ce que je vais faire est de faire glisser des dossiers et de revenir un code X
ici . Je vais cliquer sur les actifs. D' accord. Ce dossier bleu ici dans le côté gauche quand je clique dessus et je vais Teoh, ouvrez mon finder là à nouveau. Et ce que je vais faire, c'est simplement cliquer dessus et faire glisser dessus. Maintenant, cette image est dans mon projet et je peux l'utiliser. Super cool clic. Le tableau principal ici, à gauche, c'est là que nous avons travaillé. D' accord ? Et, euh, ce que nous voulons avoir dans un rap, c'est que nous voulons que ce logo cool dans le fond de l'école apparaisse quand nous cliquerons. Rends-moi super cool. Avant ça, ça va être super ennuyeux. Mais alors quoi ? On doit faire le sien en premier. Mettez-le à l'écran. Donc je vais taper ce qu'on appelle une image U I de toi. Ok, je l'ai tapé dans le côté droit de l'objet, inspecteur. Juste ici. Bibliothèque d'objets. Je vais cliquer sur ça et le faire glisser ici au milieu. La taille n'a pas d'importance. Donc, les vues
d'image , bien sûr, ont une image derrière eux. Ok, donc je vais prendre cette icône du côté droit ici sur l'inspecteur, et je vais juste choisir l'avis d'image qui trouve automatiquement le nom de votre image qu'on le fait glisser. C' est un super cool. C' est clair et oh, mon Dieu, ça l'a rendu super moche. Et on dit super beaucoup, donc on doit le rendre super moche. Donc je vais cliquer sur ce mode ici, et je vais mettre ici l'aspect si c'est gentil. Maintenant, il a l'air du rapport d'aspect, et je vais juste le faire glisser vers le haut. Ok, hum, si je clique sur ce truc ici, je pourrais le faire traîner, et je vais juste le rendre plus grand. Et c'est le maintien du rapport d'aspect, ce que nous voulons. D' accord ? Et c'est un peu désactivé maintenant, mais c'est bon. Donc je clique et je le fais glisser pour le rendre un peu plus grand et plus agréable,
et je vais juste le faire glisser jusqu'à ce qu'il s'aligne là où on le veut. Très cool. Très, très, très cool. Mais maintenant, nous avons besoin d'un fond super cool pour aller avec notre texte super cool. Donc, je suis sur libre pick dot com. Ok, le lien est là. Désolé qu'il est long, vous pouvez le copier si en mettant en pause la vidéo, mais fondamentalement sur ces gars ont ah images libres de redevances à utiliser tant que vous donnez l'attribution. Donc, nous vous donnons l'attribution de choix gratuit et conçu par libre pick dot com, et nous allons aller de l'avant et le télécharger avec la licence gratuite avec attribution
téléchargement gratuit . Vous devez créditer l'auteur que nous venons de vous créditer. Arrêtez de demander l'accréditation. Bon, attrape-le. Se télécharge maintenant 5.1 mégaoctets. C' est un gros, gros fichiers zip. Je vais cliquer dessus. Ça va ouvrir mon dossier et le décompresser. Et je vais juste prendre cette cheville en J, et on va juste retourner ici à notre dossier de projet. Et je vais faire un autre moyen de se déplacer sur Mac est l'onglet de commande. Vous vous déplacez entre les fichiers. Si vous maintenez la commande enfoncée tout en appuyant sur la touche Tab, nous allons appuyer dessus pour la trouver. Et appelons ce BG pour le fond juste pris. Glissez-le ici à nouveau dans votre section d'image. Rappelez-vous, nous avons une image. Nous avons des actifs. Pensée ressources xsi mis en évidence. Ok, ce qu'on va faire maintenant, c'est retourner au plateau principal et comme c'est une autre image, on a besoin d'une autre vue d'image. Donc ce que je vais dio traîner maintenant. Ce n'est pas la bonne taille. Nous avons évidemment besoin que ce soit le plein écran et euh, Ce que je vais dio c'est juste aller de l'avant et sélectionner l'image BG. Bien sûr que non. Ce que nous voulons, c'est la rétrécir. Et disons,
euh, l' aspect en forme. Ok, donc c'est vraiment petit en ce moment, mais je vais juste nous amuser. Prends juste ce petit gars. Cette petite flèche ici dans le coin supérieur gauche. Rends-le vraiment, vraiment, vraiment gros. Je vais traîner sur le bord. C' est bon. D' accord. Il n'a pas besoin d'être parfait pour le glisser vers le haut. C' est juste pour le plaisir et le rendre agréable et comme, OK, super. Il est là. Vous pouvez aussi le déplacer comme appuyer sur les flèches. Tant qu'il est sélectionné ici dans le côté gauche comme il est,
vous pouvez, euh, euh, um, déplacer avec l'air. Lucky aussi. Ok, alors on y va. Ça a l'air assez bon pour maintenant et puis remarquez. Comment les autres contrôles sont-ils disparus ? Eh bien, c'est parce
que sous revue ici ces choses ont été commandées d'une certaine manière, et notre expérience est au-dessus de tout le reste. La couche inférieure serait ici, donc nous avons besoin de l'arrière-plan pour être juste là. Comprendre ? Cliquez sur. Glissez-le là-bas sur le côté gauche là-bas et bannissez. Voilà notre logo. Il y a notre libellé maintenant. Bien sûr, nous ne voulons pas que le logo et l'arrière-plan apparaissent dès le début, nous devons
donc écrire du code. Alors, qu'est-ce qu'on va faire ? Enlevez ça ici, faites glisser ce petit plus grand c'est qu'on va cliquer sur les deux petits cercles. Apparaissent l'éditeur assistant. Si vous êtes dans une version différente du système d'exploitation Mac, cela peut être une icône différente, comme une personne ou quelque chose comme ça, mais c'est toujours le même. Il suffit de cliquer sur celui au milieu, et, euh, ça va ouvrir l'éditeur assistant ici. Et ce qu'il fait, c'est qu'il ouvre le fichier de code correspondant. Ok, Donc notre vue peut notre plateau principal dans ce contrôleur de vue que vous voyez ici, il est attaché à ce contrôleur de vue point rapide ici. D' accord. Attaché à elle. Et de toute façon, donc il a ouvert le fichier Associated Code à ceci, votre contrôleur. Maintenant, ce que nous devons faire sur iPhone, c'est que nous devons nous connecter, connecter des choses pour le faire fonctionner. Notre code doit savoir ce que fait notre interface utilisateur et vice versa. Et il y a deux types de choses que vous avez. En ce qui concerne ces interactions, vous avez des sorties I D et des actions Ivy, et je serais sortie est une variable que vous définissez dans votre code qui stocke une référence aux éléments de l' interface
utilisateur. Il pointe juste vers elle, donc il sait comment l'utiliser et le changer. Et je L'action est une action. Lorsqu' il est effectué sur l'application iPhone sur le vous je qui aura lieu dans le code. Il appellera le code et le fera faire quelque chose. Nous devons donc le faire. Donc ce qu'on va faire, c'est s'assurer que ce gars est sélectionné ici. Il y a plusieurs façons de le faire. Et ce qu'on va faire, c'est qu'on va aller de l'avant et tenir la touche de contrôle sur ton clavier. Ça dit le contrôle. OK, maintenez-le enfoncé, puis cliquez. Et si vous utilisez des clics gauche et droit, il est à gauche, cliquez, cliquez et faites glisser. Tu vois une petite chose ici pour toujours. Je maintiens le contrôle et je clique et je fais glisser de cela. Je vais le traîner à l'intérieur et à l'intérieur en dessous de la classe. Mais sur la vue a fonctionné le chargement ici. On va lâcher le clic et il veut un nom. Et on va appeler ce logo cool. C' est notre logo cool. Et vous pouvez appuyer, entrer ou cliquer, connecter, appuyer, entrer, cliquer, connecter et bam ! Il est là, sur le côté droit. Et ce petit point qui est rempli montre que c'est ce qu'il est connecté. Et si je survole,
il le montre sur le constructeur d'interface côté gauche. C' est une
image
U.S. U.S On vous a donné un nom de logo cool. Maintenant, nous devons aussi faire la même chose avec la sauvegarde parce que nous avons besoin d'orteil. Unhygiénique est des choses lorsque le bouton est pressé. Donc ce qu'on va faire, c'est le faire différemment cette fois. D' accord ? Cette fois, on va écrire le code ici sur le côté droit, je suis le bar de la semaine. Tu es genre, qu'est-ce que ça veut dire ? Faible ? Cette semaine est une forte Est-ce que c'est mauvais ? J' expliquerai ces choses plus tard au bar de la semaine, et on appellera ce bijie cool et ça va être un genre. Vous êtes en vue d'image. Regarde ça. Belle auto. Compléter les points d'exclamation. D' accord, donc on a une autre variable de sortie Ivy. Et cette fois, ce que nous allons faire, c'est que vous savez comment c'est déjà. Je pourrais effectivement cliquer et faire glisser cette année sur l'arrière-plan et cela fonctionnerait. Mais je veux te montrer autre chose. Une autre façon de le faire. , Ce que je veux faire,c'est cliquer sur ce type ici, ce contrôleur de vue. Souviens-toi, il est lié à ça ici sur le code à droite, et donc il sait pour ces variables. Donc, je vais faire un clic droit sur le contrôleur de vue et remarquer comment vous pouvez voir ce clic droit ou un clic deux doigts. Cependant, vos bouches est mis en place, vous pouvez voir qui a quelques taches ici. Et regarde notre Kool. BG est là. Ne vous inquiétez pas pour les autres choses, mais vous inquiétez pour son Kool BG. Donc c'est le cas. Il y en a. Ce que je peux faire, c'est que je peux cliquer dessus et en fait ici sur le côté gauche. Je peux
aussi le sélectionner de cette façon . Il y a plusieurs façons de lier votre interface utilisateur à votre manteau, ce qui est vraiment cool maintenant, bien
sûr, um nous avions besoin d'action pour ces choses aussi. Être caché Sont désolés de montrer dans le mais dans cette presse. Et on a besoin que le bouton soit caché quand on appuiesur
le bouton,
donc on a besoin d'une mawr avec qui je sortirais. sur
le bouton, Donc ce que je vais faire, c'est que je vais juste d'ici, je vais contrôler la traînée sous ces autres, et on va appeler ça cool, mais parce qu'il n'est pas cool. Ok, donc il est là-bas maintenant et maintenant, pourriez-vous encore une chose à faire la même drogue de contrôle. Nous allons maintenant aller par ici et en dessous de notre fonction d'avertissement de mémoire reçue. On va lâcher. Tu aimes quoi ? On vient de faire ça. Eh bien, voilà la différence. Faites attention. Au lieu de la connexion comme un point de vente, nous allons créer une action. Fait. Est-ce que ça, euh, et on va appeler ça me rendre pas si cool. Ça semble être une bonne fonction. Nom Connect, centre de
presse. Cette fois et il y a notre fonction. Cela signifie que chaque fois que ce bouton est pressé. Ok, cette fonction va être appelée, donc on a l'air assez bien ici. Il y a des choses connectées. Écrivons un peu de code, accord ? On va aller de l'avant et prendre notre logo cool et on va appeler Dot Hidden égal à True. C' est une propriété sur l'image. Toi, c'est vraiment cool. Et kool BG point caché est vrai. D' accord. Et puis un cool et point caché égal. En fait, j'ai fait ça à l'envers. Ça devrait être faux. Nous voulons que Thies ne soit pas caché quand nous appuyons sur le bouton et que nous voulons que le bouton soit caché quand nous appuyons dessus, C'est exactement ce
que nous voulons avoir lieu. Maintenant, il n'y a qu'un seul problème. Ces choses ne seront pas cachées par défaut. Alors allons de l'avant dans le constructeur d'interface ici dans le storyboard je vais cliquer sur le logo de boom ici et je suis juste caché, ok ? Et je clique sur l'arrière-plan et je vais cliquer sur le frapper pour qu'ils soient tous les deux touchés. Et maintenant Ok, comme vous pouvez être un peu fané ici et donc si j'appuie sur arrêter pour arrêter la construction actuelle et que je reconstruis ça ok, tout devrait être prêt à aller me rendre super cool. Donc, nous avons un arrière-plan super ennuyeux et boom il iss votre première application et il est supercool boom ap Félicitations pour faire votre première application et il est en direct et en exécution sur être simulateur. Donc là, vous l'avez
11. Comment fonctionnent les exercices et les réchauffements de la: Hey, tout le monde, je veux parler brièvement des exercices et des échauffements, comment ils tombent dans le cours et pourquoi ils sont importants. Puisque je n'ai rien à montrer, je vais te donner un objet pour que tu regardes ce qu'on parle d'exercice. Ok, donc voici le marché. J' ai appris beaucoup de gens, et j'ai appris comment les gens apprennent. Et j'ai appris ce qu'il faut pour apprendre et conserver les choses. Et mais je sais pour un fait, c'est que vous ne pouvez pas simplement regarder ces vidéos l'une après l' autre tout en une journée et apprendre à conserver ces trucs. Ça va passer par un air de l'autre. Donc, si vous êtes intéressé à vraiment apprendre le développement de l'iPhone, faites chaque exercice à chaque échauffement et vous verrez les échauffements dans les sections
suivantes. Après sa première partie et les warmups aident à rafraîchir ce que vous avez déjà appris, ainsi que vous apprendre à penser comme un programmeur. Donc, le problème très orienté programme résoudre des problèmes de mathématiques simples, choses comme ça, choses qui vous aideront à commencer à penser comme un programmeur pour former votre cerveau. D' accord. Et les exercices comment ils sont conçus est que je vous enseigne un concept visuellement dans une vidéo sur tous
les principes qu'il contient, puis par vous-même, vous construisez une sieste sans instruction vidéo. C' est très similaire. Tous les principes et concepts sont similaires à ce que vous venez d'apprendre dans la vidéo, mais leur application un peu différente. Donc, vous devez utiliser votre propre puissance cérébrale pour traduire comment les choses fonctionnent, euh, et comment les choses se connectent et vous pouvez regarder en arrière les vidéos que j'ai faites comme référence. Et donc ne sautez pas les échauffements. Ne sautez pas les exercices si vous voulez vraiment apprendre ces choses. Si vous sautez ces choses, alors il sera beaucoup plus difficile de le conserver,
OK, OK, et l'idée est qu'en plus, pour pouvoir faire ces exercices et conserver les principes qui ont été enseignés, vous pouvez également vous rendre sur notre site Web dans notre forum et afficher les problèmes que vous rencontrez et en fait faire comme une salle de classe interactive de la vie réelle. Alors considérez cela comme un camp de démarrage en ligne où vous obtenez la meilleure aide
possible sans avoir un professeur là-bas, connaître votre nom et mettre toutes ces choses à bon usage. Et c'est donc ma rave et ma rave au sujet des exercices et des échauffements. Si vous voulez vraiment apprendre et vous soucier si vous vous êtes vraiment engagé dans ce cours, vous allez faire ces choses et je suggère même que vous les soumettiez pour que les
gens Hub Eso puissent regarder votre code plus tard, Ron, comme vous êtes interviewer pour des emplois, etc. Alors s'il vous plaît, faites ces exercices chauds et, euh, allons y arriver.
12. Introduction à Swift 2: Hé, tout le monde, Mark Price ici les pentes mortes dot com et aujourd'hui vous allez être introduit dans le monde de Swift. On va parler de l'endroit où tu peux apprendre seul quand tu ne regardes pas ces vidéos. Alors allez sur votre Mac et les commandes. De plus, l'espace ouvre votre recherche de projecteurs et tapez dans iBooks. Ok, tous les livres. Vous pouvez ou non avoir des livres rapides ici. Ces pommes d'air, des fonctionnaires, des livres
rapides. Si vous ne l'avez pas, cliquez sur iBooks store. Ok, et tapez Swift en haut, directement dans votre barre de recherche. Et tu devrais voir celui-là. Langage de programmation rapide actuellement rapide 2.1. Et allez-y et cliquez. Obtenez, ou si vous l'avez déjà lu ouvrira. Et il y a un livre. Il s'ouvre. Et c'est exactement ce que nous voulons voir. Je vais agrandir la taille de ma police ici, accord ? Et je vais juste vous donner l'aperçu de la formulation rapide par pommes
pour que vous puissiez avoir une idée de ce que vous êtes sur le point d'entrer dans. Swift est un nouveau langage de programmation pour IOS et OS X. APS qui s'appuient sur le meilleur de voir un objectif C sans les contraintes de compatibilité
C. Swift adopte des modèles de programmation sûrs et ajoute des fonctionnalités modernes pour rendre la programmation plus facile , plus flexible et plus amusante. Swifts Clean Slate soutenu par les cadres matures et beaucoup d'amour Coco et Coco Touch, est l'occasion de réimaginer comment le développement logiciel fonctionne maintenant. C' est vraiment important. Voici la raison pour laquelle nous allons faire un pas en arrière lorsque l'objectif C est sorti. Ok, si vous êtes familier avec l'objectif,
vous savez, il y a beaucoup de cours à Objective City. Commencez par les lettres N s comme N s chaîne ok, ou tout objet, Qu'est-ce que c'est ? Et S Will N représente l'étape suivante. Lorsque Steve Jobs a quitté Apple la première fois, il a créé une société appelée Next Step. C' était comme la renaissance d'Apple, mais à ses propres yeux et à sa manière, et ils ont créé un langage de programmation qui était basé sur C, et c'était un langage de programmation objet, orné. Et il est développé au fil des ans maintenant quand IOS est sorti pour la première fois, c'est ainsi
que les AP ont été construits. Objectif C. Et il existe depuis longtemps,
mais il a été construit, construit sur et
construit sur un amélioré et amélioré au fil du temps. Et ce pour quoi nous l'utilisions au début du développement de l'Iowa n'était jamais ce qu'il était prévu d'utiliser à
l'origine. Voici donc Swift et Swift a été construit à partir de zéro pour être un langage puissant, utilisant des principes de programmation modernes pour soutenir complètement le développement d'applications IOS et OS X. Et donc mon point de vue est, Swift est construit pour que nous puissions faire de étonnants APS IOS et OS X avec toutes les fonctionnalités puissantes que nous pourrions jamais vouloir, pensé et pensé et créé juste pour nous et rendre notre vie plus facile. C' est pourquoi Swift est une grosse affaire. Et si vous connaissez déjà l'objectif C, vous savez probablement que les sauts assez étonnant. La plupart des programmeurs que je connais moi-même inclus ont déjà fait le saut vers Swift. Bref, c'est un bref historique de la raison pour laquelle Swift est si puissant, et je vais vous apprendre à utiliser Swift de manière professionnelle. Non seulement nous allons lire du livre et faire X, y et Z. En fait,
nous allons vous apprendre comment construire des AP rapides que vous pouvez mettre sur le magasin APP dont un employeur serait fier Et donc je vais vous apprendre tout ce que je sais est un développeur professionnel. Et je vais injecter ça dans notre apprentissage de Swift. Donc, ce qui est dit, allons de l'avant et juste plonger et construire un APS rapide.
13. Swift 2 Variables et constantes: Hey, qu'est-ce qui se passe, tout le monde ? Mark Pricer mort pentes point com et aujourd'hui nous allons parler de variables et de constantes. Alors allons de l'avant et ouvrons notre code X ici, cliquez sur un et cliquez sur Commencer avec un terrain de jeu, et je vais en créer un ici appelé Variables. IOS va bien. Cliquez sur Suivant, et je vais mettre ça sur le bureau pour l'instant. Ok, laisse-moi faire ça pour que tu puisses voir ce qui se passe. Ok, alors qu'est-ce qu'une variable ? Eh bien, variable est un nom et une représentation d'un type de valeur. Ok, si cela a du sens, Donc fondamentalement, en programmation, vous avez différents types avec lesquels vous pouvez travailler. Vous pouvez travailler avec des chaînes comme celle-ci ici. Il s'agit d'un type de chaîne avec des mots et des caractères. Vous pouvez travailler avec des nombres tels que des doubles et des flotteurs. Entiers. Tu sais, tu peux faire des opérations de maths avec des chiffres. Pensez-y une seconde. Si vous êtes tout nouveau dans la programmation, pensez quand vous allez sur votre site bancaire, banque
américaine Wells Fargo, Whatthing it is ok, et ils vous donnent des messages tels que de nouvelles alertes. Vous savez, votre compte a été mis à jour ou vous avez été découvert. Il y a donc des mots et des caractères réels, puis il y a des nombres réels aussi. Pour tel que celui-ci est mon solde bancaire, vous savez, négatif 500$. Vous savez de quoi je parle, non ? Et Ah, donc vous avez des nombres et vous avez des personnages Donc la même chose avec la programmation est construite sur ces constructions. Et donc dans ce cas, ici, ce que vous voyez est une variable indiquée par le mot var une variable appelée str et sa valeur est égale à hello playground maintenant str vous pouvez nous appeler ce que vous voulez. C' est le nom de votre variable. Donc, vous nommez réellement ah type de données, un morceau de données spécifique. Vous lui donnez un nom pour pouvoir le réutiliser plus tard, ce qui est vraiment intéressant. Donc c'est un terrain de jeu rapide, ok ? Et je vais agrandir ça ici. Et donc il imprime exactement ce que vous mettez ici à l'écran maintenant dans une application sur IOS ou Mac, vous pourriez faire quelque chose comme cette impression str et effectivement l'imprimer au consul. Maintenant, comme vous pouvez le voir, juste là, il est en train d'imprimer et ajoute un nouveau caractère de ligne à la fin pour nous ici. Et ah, c'est ce que vous faites pour imprimer cette variable. On n'a pas besoin de faire ça maintenant, alors bonjour. L' aire de jeux est ce qui se passe ici. Et c'est une chaîne qui est vraiment cool et qui comprend un peu les ordinateurs. Vous devez comprendre que lorsque vous créez une variable qui est réellement stockée dans la mémoire sur votre ordinateur, peut-être que vous pensez, Que voulez-vous dire en mémoire ? Sur votre ordinateur,
rappelez-vous comment vous êtes allé au magasin et le vendeur était comme,
Oh,
vous devriez prendre cet ordinateur. Sur votre ordinateur, rappelez-vous comment vous êtes allé au magasin et le vendeur était comme, Oh, Il a 512 gigaoctets de RAM. Eh bien, enroulez la mémoire d'accès aléatoire. C' est là que les variables sont stockées. Ainsi, plus vous avez de RAM, plus
les programmes s'exécutent rapidement car ils pourraient stocker plus de variables et de données plus d'informations. Donc, quand vous créez ceci ici, ce projet de loi ici appelé str Okay, il a été stocké dans une fente en mémoire sur votre matériel physique. C' est cool ? Donc, c'est une variable de type string, qui est vraiment cool, et il y a d'autres types de variables à ou d'autres types que vous pouvez utiliser tels que je pourrais dire nombre, et je pourrais dire 20. Intéressant. C' est donc une autre variable. Mais c'est un entier correct de 20. Je peux aussi faire des nombres décimaux qui pourraient être flottants ou doubles ainsi ou d'autres types. Donc, je pourrais dire que décimal est égal à 50,5. Et vous pourriez le faire dans la programmation est bien aussi. Donc ces variables d'air Ok, Chaque fois que j'ai créé une variable, je lui donne un nom et je peux y mettre une valeur. Et ce nom est stocké en mémoire afin que je puisse l'utiliser plus tard, ce qui est vraiment cool. Et vous pouvez changer les variables comme ça. Donc, je pourrais dire que décimal est maintenant égal à 20 point 23. Et j'ai maintenant changé la valeur de cette variable pour l'égaler. Maintenant, cette variable est toujours au même endroit en mémoire. Mais nous y mettons une nouvelle valeur, ce qui est vraiment cool. Tu peux le changer. Donc, c'est une variable variable à nouveau est une représentation sans nom d'une valeur d'une sorte. Casey des variables. Et vous avez aussi quelque chose qui s'appelle Constance. Et une constante est quelque chose qui est immuable. Et vous définissez une constante avec le mot-clé let afin que je puisse dire Laissez nouvelle décimale égale, disons, 40,4 cinq. Nouvelle décimale Eco 40.5. Maintenant, regardons ce qui se passe si j'essaie de changer la valeur de ceci afin que je puisse dire que la nouvelle décimale est égale à 6,4. Voyons si ça va me laisser changer cette valeur. Si je regarde par ici, il y a un air rouge. Corrigez le changement, laissez trop loin pour le rendre mutable. Mutable signifie modifiable, mais nous ne voulons pas le faire. Ce n'est pas la solution qu'on veut. Il nous donne une ère, dit que vous ne pouvez pas changer sa valeur. Donc, les deux choses de base que vous pouvez faire avec swift est Vous pouvez créer une variable, qui est une valeur modifiable, une valeur modifiable ici, OK ? Ou vous pourriez faire une constante, ce qui est immuable. Une fois que vous l'avez affecté,
il ne peut pas être modifié. Ok, donc il y a des avantages quand vous allez les utiliser dans différentes applications et ah, et vous verrez cela à venir ici. Mais ce sont des variables et des constantes. Dans sa forme la plus basique, votre variable peut principalement être nommée n'importe
quoi, tout ce que vous voulez, ce qui est vraiment cool. Donc il n'a pas eu à dire, Str pourrait-il dire, Message de
bienvenue. Bonjour, Playground. C' est plutôt cool. Ou si nous avons fait l'exemple de la banque, disons que vous connaissez votre Wells Fargo. Message de bienvenue. Ça pourrait dire bonjour. Votre compte est à découvert. Tu ne sais pas comment gérer ton argent, imbécile ? D' accord. Et ceci au lieu de nombre Cela pourrait être le solde du compte est égal à 500 négatif parce que c'est ça
qu'il semble. Nos comptes bancaires vont toujours dans la mauvaise direction. Donc, des trucs vraiment cool, différents types que vous pouvez faire ici. C' est juste à peine gratter la surface. Si vous voulez voir quelque chose de vraiment stupide que vous pouvez dio si nous commandons de l'espace et ouvrons notre livre de polices, Ok, je pourrais faire une recherche d'emoji. Au fait, ne fais jamais ça. Les gars et les filles, c'est ridicule. Je vais juste te montrer. Je mets juste en évidence cet emoji et cette commande. Tu vois ? Et je peux sauver notre singe égal cheval. Tu es genre, Attends, qu'est-ce qui se passe ici ? Eh bien, emojis sont basés sur des caractères Unicode et vous pouvez donc utiliser Unicode comme noms de variables. Ah, et tu pourrais lui donner une valeur. Encore une fois, ne fais jamais ça. C' est ridicule. Et absolument lumiettement. ne sert à rien de le faire. Je te montre juste que tu peux faire ça. Donc, ce sont des variables et des constantes. Dans sa forme la plus basique, nous voulons être un peu plus avancés. Nous pouvons déclarer plusieurs variables sur la même ligne, comme le compte lointain. Un est égal à 0,0. Et je pourrais faire une virgule et dire compte deux égal à 1.1 et compte virgule trois égal à 3.6 Et ce que nous avons fait ici comme nous avons déclaré trois variables différentes, La seule différence est que nous n'avons pas mis le mot-clé var devant ces deux autres. Nous l'avons exclue et l'avons mise sur la même ligne juste pour rendre notre vie un peu plus facile et peu plus lisible. Donc, vous pouvez également déclarer des variables sur la même ligne, comme celle-ci maintenant ce type de variables que nous avons créé jusqu'à présent, nous avons déduit leur type. Donc, fondamentalement, nous avons dit décimal, et nous avons dit ,
Oh ,
hey, ça va être un double parce que c'est 50,5. Donc swift est vraiment intelligent, et il vous donne un type de données. D' accord. Toutes ces variables ont des types de données et nous n'avons pas spécifié explicitement ce que sont ces
types de données . Mais je peux le faire. Je pourrais enregistrer notre nouveau message est de type String. Donc, ce que cela dit, c'est ,
Hey, je n'ai pas encore mis de données dedans, mais quand les données y entrent, ça doit être une force. Ok, Donc, par
exemple, voyez ce qui se passe si je dis que le nouveau message est égal à 50 Ce que vous pensez va arriver me donne une erreur, ne peut pas affecter la valeur du type fin étant entier à la force. Donc on ne peut pas mettre inter voyage ici. Nous avons donc fait une annotation de type. Ok, tapez une annotation. C' est le mot clé. Donc c'est une annotation de type, et nous avons essentiellement dit, Hey, cette variable va être de ce type. Et donc au lieu des 50 si je dis bonjour, c'est un nouveau message. Je sais que ce n'est pas très créatif. Ça marche. Ok, donc très cool. Vous pouvez également taper des annotations avec plusieurs variables. Donc, je pourrais dire loin rouge, vert bleu est de type double. Et donc les trois de ces variables sont de type double. Donc maintenant, si je dis que le rouge est une corde rose, voyons ce qui se passe. Comme avant, Ok, on a un air. C' est ainsi que vous pouvez définir plusieurs variables avec des annotations de type avec une seule annotation ici. Donc, si vous avez beaucoup de variables que vous vouliez définir qui sont de type double et liées, alors c'est une bonne façon de faire sur une ligne. Donc, des trucs vraiment cool, hein ? Tu crois que c'est quoi cette folie ? La folie ? Je pense que oui. Mais si vous ne comprenez pas complètement, c'est bon. Vous l'obtiendrez au fil du temps lorsque vous construisez réellement des applications. Il s'agit donc d'une vue d'ensemble complète des variables et des constantes. Il suffit de gratter la surface, mais très fondamental. Et donc on va dire que cette vidéo est terminée et aller de l'avant.
14. Swift 2 commentaires et semi-colons: Hey, qu'est-ce qui se passe, tout le monde ? Mark Pricier pentes de mort dot com et aujourd'hui nous allons parler de commentaires et de points-virgules . Je sais, non ? Pas vraiment excitant. Et ce ne sont pas les commentaires comme, vous savez, quand vous allez sur Reddit, je sais qui vous êtes. Et tu commences à la traîne, hein ? Tu es la plus grosse bulle de Belova. Vous faites un commentaire et personne ne sait qui vous êtes parce que c'est anonyme et vous pensez que vous êtes vraiment cool. Mais tu ne l'es vraiment pas. Ce n'est pas du tout ce genre de commentaire, quelque chose de complètement différent. Alors allez-y et ouvrez votre code ex et ouvrons le dernier terrain de jeu que nous avons fait. Ou si vous ne voulez pas faire ça et faire tomber un autre code, vous voulez ouvrir, hésitez pas à le faire. On va ouvrir notre dernière aire de jeux ici. Comme vous pouvez le voir, il est juste ici et remarquez ici en haut. Il y a ce truc en vert ici. C' est un commentaire et un commentaire est quelque chose qui est ignoré par le compilateur. Ok, donc lorsque vous construisez des applications rapides, un compilateur compilera votre code et autorisé à être utilisé par l'utilisateur et les différentes fonctions etcetera seront appelées. Mais les commentaires ou sauter, ils n'ont aucun impact sur l'utilisateur. Donc, fondamentalement, vous venez de commenter les choses en faisant pour transférer des barres obliques. Ok, c'est ça. Ça veut dire qu'il ne va plus lire. Et donc, par
exemple, si vous voulez avoir un message disant, Vous savez que cette variable est de faire savoir à l'utilisateur quand son compte est dépassé. Donc, si vous avez du code, vous pouvez laisser des commentaires pour le développeur qui pourrait regarder votre code pour leur donner une indication de ce que votre code fait maintenant avec cela étant dit, OK, abord, ne pas passez en mettant des commentaires et tout votre code parce que c'est un principe de conception important. Je veux forer dans ton cerveau maintenant. Les bons documents de code lui-même. Ok, donc les noms de vos variables et le coda serveur structuré devraient être assez faciles pour qu'un développeur puisse entrer et comprendre ce qui se passe sans avoir à lire des commentaires. Donc, si vous avez des commentaires partout,
vous le faites probablement mal, accord ? Mais c'est ainsi que vous pouvez ajouter un commentaire. Parfois, il est agréable de commenter le code dont vous n'avez pas besoin juste une minute. Ou parfois, vous avez besoin d'expliquer des choses. Peut-être qu'il y a un bug que vous devez corriger plus tard. Et un commentaire pourrait être une bonne chose pour ça. Mais n'allez pas faire de commentaires partout. Bon Coach. Un document lui-même. Ok, donc j'ai juste fait des doubles barres obliques. Vous pouvez également en code X. Vous pouvez mettre en surbrillance ce que vous voulez commenter et maintenir la commande sur le clavier. Vous pouvez commander Ford Slash. Et il va commenter toutes ces lignes à la fois, ce qui est vraiment cool. Je peux le mettre en évidence à nouveau et faire une barre oblique de commande à nouveau et rare. Asseyez-vous C' est donc une façon de partager rapidement le commentaire d'un bloc de code plutôt que de le faire manuellement. Une autre façon de commenter beaucoup de code est en faisant slash star Le pasteur Rick a demandé le risque. Quelqu' un peut-il prononcer cela correctement et le fermer ? Tu mets une fin. Je vais juste appeler ça star. Est-ce que ça va ? Étoile et barre oblique. Ok, donc fente de départ. Donc, la dernière star de Ford, Ford slash, c'est comme ça que tu as fini qui viendra dans un bloc de code . D' accord. Plutôt cool. Donc très utile et commentant. Les choses que j'utilise des commentaires tous les jours, mais ce n'est surtout pas dans le code de production. C' est surtout quand je me développe. Je veux essayer les choses et foiré. Ok, je pourrais commenter du code,
essayer différentes choses. C' est pour ça que ça sert beaucoup. Et donc c'est plutôt cool. Remarquez comment en mouvement rapide sur, d'ailleurs, les commentaires. Vous pouvez parler de commentaires ou si longtemps passer ici. Nous n'avons pas de demi-Coghlan dans Swift avis. Comment les autres langues ont des demi-deux-points ? Eh bien, Swift ne le fait pas, ce qui est vraiment cool. Je déteste les demi-deux-points, mais tu peux les utiliser plutôt cool, non ? Donc, le truc à propos de Swift est, il lit jusqu'à la fin de la ligne, puis il passe à la ligne suivante. C' est pourquoi il n'a pas besoin de points-virgules. Cependant, si vous voulez des choses sur la même ligne, plusieurs déclarations, ok, ces déclarations aériennes. Voici le mot clé pour les déclarations du jour. C' est une instruction, n'importe quel morceau de code qui va être exécuté. C' est donc une déclaration. Si je veux une autre déclaration sur la même ligne, je peux alors utiliser un point-virgule et sauver notre nouveau solde est égal à 50. Ok, et donc il y a une nouvelle instruction donc si vous voulez plusieurs instructions sur la même ligne, vous pouvez utiliser un point-virgule. Ce n'est pas commun et rapide du tout. En fait, personne ne fait vraiment ça. Et je recommande que vous ne le faites pas, c' est ce
que les gens font dans d'autres langages de programmation. Ce n'est pas commun à Swift, donc vous pouvez utiliser des points-virgules pour mettre les choses sur la même ligne. En outre, vous utiliserez des point-virgules lorsque vous utilisez des boucles ou des boucles d'une sorte, et nous allons en parler à l'avenir. Mais je vais vous montrer ici maintenant à quoi ça ressemble. Donc, je pourrais dire que quatre pour nos X égal à zéro X est inférieur à ce que vous savez 50 x plus, et nous avons cette boucle ici, cette quatre boucle et remarquez comment il y a des demi-deux-points entre ces différentes déclarations ici. Donc c'est une autre fois où vous utilisez des trucs plutôt cool. Des trucs assez simples, demi-deux-points et des commentaires. C' est tout ce que tu as vraiment besoin de savoir sur eux. Alors allons de l'avant et passons à autre chose et Ford
15. Swift 2 Numbers et sécurité des caractères: Yo, qu'est-ce qui se passe, tout le monde ? Mark Pricier pentes sourds point com. Et maintenant, on va parler de chiffres. Mes numéros. Je veux dire, des entiers, des doubles et des flotteurs. Ok, à
ne pas confondre avec les chars de bière racine ou les chars de défilé ou toute autre chose stupide que je pourrais dire, nous allons cliquer sur le code Rx et une autre façon d'ouvrir le prochain projet de code. En fait, si vous voulez savoir, cliquez sur votre code ex ici et allez en haut quand il décide de charger. Allez. On y va. Fichier nouveau projet ou terrain de jeux. Dans notre cas, nous sommes juste de cliquer sur le terrain de jeu ici à nouveau, Commencer avec une aire de jeux et celui-ci nous allons juste rester chiffres. Cool. Deal. Lancer honnête cette année dossier. Mettez le vôtre où vous voulez. Ok, alors on y va. Rendons ça beau et grand ici pour que tu puisses le voir. Donc nous avons brièvement parlé des chiffres que je vous ai montrés avant. Allons vraiment là-dedans. Donc, en programmation, nous avons quelque chose appelé un entier. Hé, regarde ça. Ces commentaires entrent en jeu un entier et regardons ce que Inter juris ici. Ok, les imageurs sont des nombres entiers sans composant fractionnaire, dit juste 42 négatif 23. Les entiers sont signés : zéro ou négatif ou non signé, positif ou zéro. C' est intéressant. Il y a donc deux types d'entiers avec lesquels vous travaillerez principalement. Il existe d'autres types que vous pouvez utiliser, mais il y a signé et non signé et le standard est signé, ce qui signifie qu'il peut avoir des valeurs négatives et des valeurs positives. Donc, par
exemple, vous savez que je pourrais sauver notre compte bancaire est égal à 500. Ok, c'est intéressant. C' est de type entier. J' aurais aussi pu le faire. Rappelez-vous une annotation de type que j'aurais pu dire loin dans, ou mon compte bancaire. Fin deux-points égale négatif 500 Cela fonctionne exactement de la même façon. Ok, et remarquez comment c'est le mot clé dans avec le capital. Je ne suis pas entier comme, donc c'est int. Ok, maintenant essayons autre chose. Var. Cliquez ici mon deuxième compte bancaire. En passant, vous pouvez mettre des nombres dans vos variables. C' est plutôt cool. Mon deuxième compte bancaire, et cette fois nous dirons de type. Vous finissez par non signé à moins qu'un négatif 200 Voyons ce qui se passe. Oh, intéressant. Une erreur. Dépassement d'entier négatif lorsqu'il est stocké dans le type non signé dans. Ok, donc ce n'est pas assez grand pour permettre des nombres négatifs. On ne peut pas faire ça. Ok, donc Onley utilise des entiers non signés ce que vous int chaque fois que vous voyez un vous en face de l'entier Onley
Ever,
jamais Ever, ,
jamais, jamais utilisé cela quand vous pouvez absolument garantir qu'il va y avoir un non valeur négative. Ok, donc zéro et plus. D' accord. Ne le fais jamais comme ça. Ça ne marchera pas. Vous pouvez planter votre application si clairement un compte bancaire n'est pas une bonne chose pour utiliser un entier
non signé pour. Ok, donc Ah, ce que vous pourriez utiliser est ah, quelque chose de mieux. Comme, disons de notre âge. Hmm. Intéressant. Tu finis égal à 22 qui fonctionne. Tu sais, cause de l'âge, tu n'auras jamais d'âge négatif à moins d'être Benjamin Button. Et Ah, donc ça pourrait être un bon choix pour un entier non signé. Ok, c'est un peu cool. Maintenant peut-être que vous vous demandez à quelle hauteur puis-je aller dans un entier ? Voyons ce que Swift a à dire à ce sujet. Le livre rapide ici, c'est le cou. Je l'ai perdu. Il est là. Ok, rendons ça plus grand. Un peu plus gros. D' accord, essayons encore ça. Maintenant. Ok, voilà le numéro qu'est-ce que c'est ? Négatif ? 2 147 487 648 jusqu'au positif. 2 147 483 647. Ok, donc votre entier standard normal va tenir dans cette plage, qui est vraiment cool. Donc, si vous avez des nombres dans cette plage que la plupart des applications vont orteil être OK avec cela avec un entier standard. Sauf si vous êtes Donald Trump, qui a plus que cet argent dans son compte bancaire, si vous voulez plus. Ok, alors vous devez utiliser un n 64. Allons-y et essayons-le ici. Copions ce numéro ici, d' accord ? Et quoi ? Je vais enregistrer notre grand numéro et sortons les commentaires. Ok, donc c'est notre entier. Voyons si j'en ajoute sept autres. Voyons ce qui se passe. Oh, intéressant. Tu n'auras pas l'air. C' est plutôt cool. Continuons. Eh bien, c'est vraiment cool à propos de Swift est qu'il fait une inférence de type, et il vous dira quel type vous avez, mais disons que cela signifie que cela fera un entier 64 afin que nous puissions soutenir cela. Mais disons que nous avons fait ça à la place, voyons ce qui se passe. Toujours pas d'air. Mais le problème est que nous pouvons avoir des problèmes de débordement et d'autres problèmes de mémoire ainsi,
si vous savez que votre nombre va être supérieur à ce montant de deux milliards. Ce que vous allez vouloir dio est d'utiliser entier 64. Et quel numéro ça va aussi ? Je ne sais pas. Il y a beaucoup de choses qui se passent et encore et encore. Donc, si vous avez vraiment des nombres à peine gros travailler dans 64. Mais avec tout cela étant dit 99,999% du temps, vous allez utiliser un entier standard comme nous avons fait leur sept en ligne jusqu'à présent, un NUM est égal à cinq. Ça va être votre référence en juré. OK, donc tu ne vas pas voir ça en commun ou ça. En fait, je n'ai jamais écrit et application IOS qui a jamais utilisé un entier non signé ou qui a jamais utilisé un entier 64 Donc et j'ai construit beaucoup de choses APS comme 58 maintenant. Donc, entier standard est ce que vous voulez, mais et indigent n'a pas de décimales à virgule flottante. Donc, si j'ouvre mon livre sont rapides à nouveau ici,
Ok, Ok, Si nous regardons les nombres à virgule
flottante ici, les nombres à virgule flottante sont des nombres avec des composants fractionnels tels que 3.14159 point un négatif à 73.15. types à virgule flottante peuvent représenter une plage beaucoup plus large. D' accord. Euh, beaucoup. Droit. Plage de valeurs et de types entiers et de nombres de consort qui sont beaucoup plus grands ou
plus petits que ceux qui pourraient être stockés en entier. Ok, donc un double représente un nombre à virgule flottante 64 bits, et il représente un nombre à virgule flottante 32 bits. Alors j'ai parlé de ça. On a des doubles, et des chars. Quand utilisez-vous lequel ? Eh bien, lisons la note. Ici. Double a une précision d'au moins 15 chiffres. Chiffres décimaux. D' accord. Alors que la précision d'un flotteur peut être aussi petite que six chiffres décimaux. Oh, intéressant. Donc voici quelque chose d'important. Si tu veux plus de six chiffres décimaux, ok. Alors utilise un double parce que tu vas en avoir au moins 15. Si c'est ce dont vous avez besoin, utilisez un double, accord ? Et ce n'est pas le cas, ça n'a pas vraiment d'importance. Sinon, vous pouvez garder. C' est un peu un six chiffres décimaux avec un nombre à virgule flottante ici. Donc, si vous voulez travailler avec des chiffres décimaux plus petits, mais vous voulez toujours des décimales, mais vous voulez vraiment le forcer à être plus petit que d'utiliser à flot. Sinon, utilisez un double ce double préféré sur le développement IOS avec swift. Et c'est ce que vous devriez utiliser partout est le double ok ? Ça n'a pas vraiment d'importance. Honnêtement, ça n'a vraiment pas d'importance. Hum, en ce qui vous concerne, accord, je n'ai jamais eu un point où je devais le faire. Absolument. Pour le bien de ma demande. Utilisé un flotteur ah, ou double ou vice versa Maintenant ont utilisé des flotteurs ou doubles en raison de la façon dont la pomme est droite. Et je n'ai jamais eu une situation où j'ai foiré, absolument utilisé l'un ou l'autre. Dans la plupart des cas, ils ont tous deux bien fonctionné, mais la valeur par défaut est double. Donc si je garde notre ah, un autre compte bancaire est égal à 55,5. Qu' est-ce que tu crois que ça va être ? Eh bien, ça va être un double par défaut. D' accord ? Et en passant, Quel type de type pensez-vous que vous devriez utiliser pour un compte bancaire ? Seriez-vous un entier ou un double ? Tu fais le double parce que tu as de la monnaie,
non ? Tu fais le double parce que tu as de la monnaie, Si double. Maintenant peut-être que vous pensez, Eh bien, peut-être que ça flotte mieux pour la monnaie parce qu'il y a moins de chiffres décimaux. Et peut-être que tu as raison. Peut-être que si vous construisez une banque et une application au lieu d'utiliser double, vous pourriez utiliser float, mais cela n'a pas vraiment d'importance. Le double prend un peu plus de mémoire. Peut-être. Mais ça n'a pas vraiment d'importance. D' accord ? Et donc c'est vraiment cool. Vous pouvez stocker des doubles. Vous pouvez aussi stocker flotteur pour que je puisse sauver notre Ah, un voeu est égal à cinq. Excusez-moi de type flotteur est égal à 5,5. Maintenant, nous avons un flotteur. instant, disons que je voulais multiplier ces barres. Certains équivaut à un autre compte bancaire, multiplié par une valeur. Et vous n'avez pas encore vu d'opérations sur les variables. Mais je vous montre ici pour la première fois. Je voulais multiplier ces deux valeurs. Ça ne me laissera pas. Ok, la multiplication de l'opérateur
binaire ne peut pas être appliquée aux opérations de type, double et float. Ok, donc vous ne pouvez pas juste faire le tour et utiliser ces valeurs de façon interchangeable. Ok, n'est-ce pas ? Ne fonctionne pas comme ça, et la raison en est rapide est un langage sûr de type. Donc si je m'ouvre, ouvrirons juste ici. Type de sécurité et type. L' inférence. Sarah lit beaucoup du livre, mais il est important que vous appreniez à lire par vous-même et à comprendre où aller pour obtenir de l'aide lorsque vous ne regardez pas des vidéos si rapide est un langage sûr de type. Il type de langage sûr vous encourage à être clair sur les types de valeurs avec lesquelles votre code peut fonctionner. Si une partie de votre code attend une chaîne, vous ne pouvez pas la passer par erreur. Parce que Swift est la sécurité de type effectue des vérifications de type lors de la compilation de votre code et drapeaux. Tout type de non-correspondance se termine en tant qu'héritiers. Cela vous permet de capturer et de fixer des airs dès que possible dans le processus de développement. Alors pourquoi est-ce important ? Pourquoi est-il important que vos variables ne puissent avoir qu'un seul type ou un autre
langage de programmation ? Ok, vous n'avez pas besoin d'avoir des types spécifiques. En fait, je pourrais avoir compte bancaire a été entré votre ici, puis plus tard un autre langage de programmation . Je pourrais mettre une chaîne là-dedans bien, et certaines de ces langues. Disons que cela se passe au moment de l'exécution, et quand je dis temps d'exécution, cela signifie les utilisateurs sur le programme. Nous avons mis la mauvaise valeur et ce que votre application se bloque, n'est-ce pas ? Votre application se bloque complètement alors qu'ils l'utilisaient. Donc, la raison pour laquelle swift utilise la sécurité de type est parce que nous pouvons résoudre ces plantages et problèmes avant même que le code n'ait jamais été expédié. Ok, quand c'est compilé, on pourrait dire, Hey, tu mets la mauvaise chose ici, ok ? Et c'est pourquoi c'est si important. C' est pourquoi Swift est si puissant. C' est une de mes choses préférées. J' ai travaillé avec de nombreux langages de programmation, et certains ont la sécurité de type et d'autres pas. Et pourquoi cela est si important est parce que votre APS a moins de plantages en eux, moins que des problèmes au moment de l'exécution, en ayant ceci ici en ne permettant pas à un utilisateur de stocker de mauvaises valeurs ici, donc un autre temps de compte bancaire, une certaine valeur ne fonctionne pas. Donc, si je veux ce travail d'orteil, ce que je dois d'abord faire, c'est de mettre cette valeur dans quelque chose que le double peut fonctionner, ou vice versa. Donc si je le lance comme ça, mettez le mot double devant un voeu. D' accord ? Ce que ça va faire, c'est qu'il va prendre ce flotteur ici, et il va le convertir en un double, puis prendre le résultat de ça et le multiplier par cette valeur ici et ainsi de suite. Quel est, selon vous, le genre de certains ? Et si j'essayais de faire ça ? Que faire si je dis var être vœu de type ? Flotteur ? Ok, égal, disons 5.6. Mon 0,7, bien
sûr. Et puis je dis que certains égalent le vœu B. Voyons ce qui se passe. Ça ne me laissera pas le signer, donc c'est intéressant. Donc, pour répondre à la question, cette somme est de double parce qu'elle a pris ce double et nous l'avons convertie en un double et multipliée. Donc ça reste un double. Et ici, nous avons essayé de prendre ce flotteur et de le mettre dans le Some Valium existant ne
fonctionnera pas parce que ce n'est pas un double. Donc si on s'est retourné ici, a enlevé ce casting juste ici et au lieu de lancer un autre compte bancaire sur un flotteur comme ça
alors où cette fois on fait le contraire. Nous le jetons à flot pour le réconforter à flot. Et puis si j'ai dit que certains égalent B vœu, nous ne devrions pas prendre l'air cette fois. Pourquoi ? Parce que certains sont maintenant à flot. Ok, donc tapez sécurité, très important et très grand principe avec Swift. Tu ne peux pas mettre ce que tu veux dans quoi que ce soit. Chaque fois que vous voulez une variable, vous devez réfléchir clairement au type de données que vous voulez. Pensez à votre application. S' agit-il d'une application bancaire ? Dois-je utiliser un double ou un flotteur ou un entier ou un entier non signé ? Puis-je avoir des nombres négatifs ? Vous devez penser à toutes ces choses lorsque vous travaillez avec vos types de données,
puis Swift ne vous laissera pas juste les modifications à la volée ne laissera pas vos utilisateurs les modifier. Vous arrivez à décider comment votre code fonctionne et ce qui se passe et quelles variables tellement cool choses . C' est donc les bases des entiers en flotteurs et doubles, et je vous ai appris quelques choses importantes. Maintenant, vous savez quand utiliser les choses et quand ne pas les utiliser. Et au fur et à mesure que nous continuons et que
vous construisez réellement des applications, vous allez voir la valeur de ce type de sécurité et de façon besoin d'avoir ces
nombres à virgule flottante aussi. Vous avez fini. C' est tout pour l'instant. Marquer le prix. Vous vous déconnectez avec les pentes de dette dot com et à bientôt.
16. Les bases de terminal: Nous voilà à nouveau. Tout le monde, et on va parler aujourd'hui du terminal. Maintenant, le terminal est un outil que vous allez utiliser tous les jours en tant que
programmeur professionnel . Et plus vous l'utilisez, mieux vous y arrivez. Et, euh, il n'y a pas beaucoup de jour qui passe quand je programme que je n'utilise pas de terminal toute la journée. Donc, j'ai en fait médecin ici sur ma barre latérale, mais il y a plusieurs façons d'y arriver. Si vous appuyez sur Commande plus d'espace sur votre clavier et que vous commencez à taper dans le terminal, il va l'éclater juste là. D' accord ? Ou tu peux aller à ton lanceurs, accord ? Et faites défiler jusqu'à ce que vous voyez ou est-ce là ? Préférences système ? Pas d'autre Curtis autre K et c'est juste dans leur terminal. Vous cliquez dessus. Ok, donc j'ai déjà ouvert le mien. Donc je vais y aller et ah, ouvre-l' ici. Je vais le rendre beau et grand pour que vous puissiez le voir. En passant, si jamais vous tapez de fumier vert et que vous ne ferez pas les lettres plus grandes ou plus petites, il suffit de maintenir la commande enfoncée, plus le signe plus par la touche de suppression en haut. Droit ? Travaillez mon extrémité plus la touche moins juste à côté, ce qui rendra un plus petit et donc votre terminal peut sembler différent. Il peut avoir un mot différent. Ton nom ici. C' est très bien. Um, l'esprit le montre tout de suite. Et fondamentalement, un terminal est un système basé sur des commandes qui vous permet de naviguer sur votre ordinateur et d'effectuer des opérations sur votre ordinateur. Ça, euh, que tu pourrais aussi faire graphiquement. Donc, par
exemple, ici, euh dit bash. D' accord. Une des premières choses que tu vas apprendre, c'est que ça va. Fondamentalement, il énumère le contenu du réalisateur dans lequel vous êtes. Donc, le terminal ici commence dans votre répertoire racine. Donc si j'y vais et ouvre une fenêtre de recherche Ok, voici ma fenêtre trouver une fenêtre. Voici mon terminal. D' accord. Et si je clique ici, c'est la même chose. Ok, donc c'est mon ordinateur. Ça s'appelle dépensé,
et en gros, ça m'a montré le même réalisateur. Bien sûr, j'ai quelques-unes des choses ici montrant des fichiers cachés et des trucs, mais fondamentalement c'est tout ici. D' accord. Même chose exacte. Donc, si je tape une commande appelée CD Okay, cela s'appelle le répertoire de changement. Et disons que je veux un CD dans mon dossier de documents. Je peux commencer à taper des documents, appuyer sur Entrée. Et si je tape Is cette fois, ça va me montrer tous mes documents. Ok, donc ce qu'on va dio c'est ah, allez-y et faites un répertoire en utilisant em que de ir. Faisons la commande de répertoire et on va lui donner un nom. On va appeler ce terminal Dash Fund Gay M K D a r Espace Terminal Dash Fund. Et voici la chose vraiment cool si moi et organisé par nom Ok, allons à peu près où il devrait être votre sur ici quelque part. Et si je vais de l'avant et appuie sur Entrée, regardez ça. Le dossier est apparu, et il est là. cas de ce que vous faites dans votre terminal va se produire et se refléter ici dans vos vrais détecteurs. , Bien
sûr, ce n'est pas super utile. Peut-être deux. Allez-y et naviguez tout votre ordinateur à travers le Terminator en tant qu'utilisateur d'un
ordinateur Mac , Mais en tant que développeur, vous allez commencer à l'utiliser de plus en plus pour créer des fichiers pour gérer co deux travail avec contrôle de
version à travailler avec git et si important que vous apprenez ces choses. Jusqu' à présent, nous avons parlé de ls pour montrer que le contenu actuel d'un répertoire. Nous avons également parlé de make directory pour créer un répertoire. Et nous avons parlé de CD pour changer de répertoire. Maintenant que j'ai un fonds terminal, je peux commencer à le taper et regarder ça. C' est comme ça qu'il vient de remplir automatiquement. Ce qui s'est passé, c'est parce que j'appuie sur la touche de tabulation. Alors vous commencez à taper. Et comme il devient une phrase unique lorsque vous arrivez à ce point où ce que vous tapez est unique lorsque vous appuyez sur la touche Tab, il remplira le reste pour vous. C' est intelligent comme ça. Donc j'appuie sur Entrée ici nous sommes dans un dossier vide. Ok, par ici, à droite, à l'intérieur du dossier. Toujours là. Maintenant, disons que nous voulons rapidement faire un nouveau fichier JavaScript juste pour le plaisir. Ok, je peux taper une touche chimique finale, ok. Et je peux enregistrer mon fichier point Js présentateur. Regardez que par ici, à droite à l'intérieur, je viens de créer un fichier javascript. Donc, la commande tactile est vraiment utile aussi. 200 naviguer autour, Vous pouvez créer des fichiers et vous êtes comme, Oh, j'ai besoin d'un fichier texte très vite. Ok, touchez un texte dot txt plus tôt que votre système d'exploitation sait déjà exactement quel type de fichier il est bien à Issa. Ah, choses super cool que tu peux faire ici. Disons que je n'ai pas aimé ça, que je veux m'en débarrasser. Quel type de RM. Commencez à taper du texte et supprimez-le. Ok, donc notre m et ensuite le nom de fichier le supprime. Ok, faisons un nouveau répertoire. Disons faire le répertoire. Appelons cela un dossier et allons de l'avant et CD dans un dossier. Il n'y a rien là-bas. OK ? Et je vais aller de l'avant et toucher un nouveau fichier point Js faire un autre fichier de script de travail. Et bien sûr, c'est là que je vais ici, c'est là. Disons que je veux sortir de ce dossier, d' accord ? Et maintenant je peux voir mon dossier et je pouvais voir mon père. Disons juste que je veux me débarrasser de tout le dossier lui-même. Si je viens de dire rm, un dossier Oh, Non, ça me donne une erreur. Certains dossiers sont un répertoire. Je ne vais pas l'enlever. Donc, si vous voulez supprimer un répertoire avec tous les fichiers qui sont dans ce RM space Dash capital sont, puis le nom du répertoire. D' accord. Cachez notre sens pour un sens cursif à passer juste. Tout ce qu'il contient. Et bien sûr, c'est parti. Ok, donc c'est comme ça que vous supprimez les fichiers Enregistrer le nouveau terminal ainsi que les répertoires. Des trucs vraiment cool. C' est comme ça que vous créerez des pères aussi. Si vous voulez savoir où vous êtes actuellement comme vous avez navigué,
vous pouvez taper dans PWD President Working directory qui vous dira exactement où vous êtes dans votre système de fichiers. Et ah, encore une fois, ls vous montre ce qu'il y a dans ce répertoire spécifique que vous êtes dans des trucs vraiment cool. Maintenant, nous avons appris à voir le dans quelque chose, et vous avez peut-être vu apparaître. J' ai fait dot cd tandis que citi dot dot dit prendre un niveau. Ok, juste en haut d'un niveau. D' accord. Et on est là. Nous sommes de retour à l'endroit où nous avons commencé. Maintenant, revenons au fonds terminal. Faisons un nouveau répertoire. Allez appeler le niveau 1, d'accord ? Et puis Ah, voici quelque chose d'intéressant. Vous pouvez réellement créer des répertoires sans avoir à y aller. Donc, je pourrais faire du niveau du répertoire un barre oblique niveau deux. Et si je regarde dans leur il a créé un peu trop. Ok, donc ce qu'on va faire, c'est d'aller de l'avant et de créer le niveau 3 maintenant, alors faites du répertoire de niveau un sash niveau 2. On sait que c'est là. Slash niveau trois. Il nous faut un niveau 3. Alors j'y vais. Bien sûr, il est là maintenant, nos écrans sont un peu encombrés. D' accord. Donc, si je veux l'effacer, je peux taper commande plus K, et il l'effacera. D' accord. Super cool. Vous pouvez également taper le mot clear, et il va effacer il est bon que je fais généralement commande plus K parce qu'il est plus court. Donc, ce que nous avons fait, si je tape ls, nous savons qu'ils étaient là avec le niveau 1 et mon fichier que Js Maintenant, disons que nous voulons rester dans ce répertoire. Nous allons créer un fichier jusqu'au niveau 3. Donc, ce que je peux faire, c'est que je peux dire toucher et que je pourrais dire que le niveau un barre oblique niveau deux barre oblique niveau trois va dans un dossier ici. Et puis je pourrais dire,
Ah, Ah, un autre dossier que Jess. Et bien sûr, il l'a mis là pour que vous puissiez réellement mettre des noms de chemin entiers et travailler directement à partir du terminal, ce qui est vraiment cool. On a fait un dossier tout le long du chemin. Trois niveaux vers le bas et nous sommes toujours là dans le répertoire ci-dessus. Maintenant, disons que vous voulez que Toe copie un fichier. D' accord. Eh bien, il y a une commande pour ce Cp. Ok, comme un CP donc tu es là. J' ai une copie, mon point de fichier Js et je veux une copie dans le niveau un barre oblique niveau deux barre oblique, trois barre oblique Et il est là. Je l'ai copié. C' est vraiment cool. Disons que je veux renommer quelque chose. C' était un moyen très rapide et facile pour cela d'utiliser l'envie, l'
envie, envie, bouger quelque chose. Mais il peut aussi renommer quelque chose
aussi . Donc on va vouloir renommer quelque chose qu'on peut juste dire. Déplacez mon point de fichier Jess, et nous allons juste le déplacer ici dans le même répertoire. On appellera ça comme ça. On appellera ça la même chose. Je suis désolé. Nous allons l'appeler une chose différente dans le même répertoire, donc nous l'appellerons point de nom changé Js J'ai assez sûr, il a maintenant changé de nom point Js Très cool. Bien sûr, vous pouvez également le déplacer. Je pourrais dire bouger le changement. Nommé à Jess au niveau 1 avec barre oblique. Il est maintenant parti. D' accord. Et si je passe ici au niveau 1, il y a changé de nom. Donc il n'y a rien que je veux montrer que vous alliez voir le niveau un CD niveau 2. Ok, niveau
CD 3. On dirait jouer à Mario ici. Ok, disons que je veux remonter jusqu'à mon répertoire racine. Eh bien, tout ce que j'ai à faire est de taper sur CD et d'appuyer sur Entrée ont été pwd. Voyez où nous sommes. Et bien sûr, nous sommes de retour au niveau de départ de notre directeur ici. Donc, fur et à mesure de votre développement, vous allez utiliser ces commandes tout le temps. Ce sont ceux que vous utilisez probablement plus que toute autre chose. En plus de quelques commandes git dont nous parlerons plus tard, Mais fondamentalement, vous devez vous familiariser avec se déplacer, créer des dossiers et faire des choses comme ça dans le terminal parce que comme vous
devenez un et si vous commencez à faire comme le travail de serveur où vous avez obtenu une base de données et un serveur en cours d'exécution pour que votre application iPhone puisse parler au serveur. Les serveurs sont tous basés sur Lennox, et vous n'aurez pas à vous connecter. Et il n'y a pas d'interface utilisateur graphique. Tout est fait ici, dans le terminal. Eso chose importante à savoir et aussi vous savez, vous ne pouvez pas faire des choses normales comme vous êtes habitué. Vous ne pouvez pas Vous ne pouvez pas mettre en surbrillance toutes ces choses et appuyez simplement sur retour arrière et supprimez-le. Ah, il y a des
manières très spécifiques il y a des
manières très spécifiquessur lesquelles fonctionne le terminal. Et voici quelques-uns du début de base qui pourrait être utilisé tous les jours comme développeur, et nous allons faire quelques exercices sur ce sujet aussi, et nous allons le pratiquer tout au long du cours, mais à peu près pour personne si vous le pouvez, lorsque vous utilisez git et que vous travaillez avec des fichiers, allez-y et commencez à utiliser le terminal. Pratiquez avec elle parce que vous en aurez besoin pour votre travail ainsi que pour
le développementprofessionnel le développement
17. Contrôle de versions: Bienvenue à une autre journée passionnante de revêtement Aujourd'hui, nous allons parler de
contrôle Birgit . Ok, donc vraiment un peu de dessin aujourd'hui. C' est une boutique photo. L' amour Photoshopped. Outil fantastique. Bon, donc le contrôle de version, qu'est-ce que c'est ? Vous avez peut-être entendu parler de quelque chose appelé get G i t. Ou peut-être que vous avez entendu parler de quelque chose appelé get Hub peut-être flottant quelque part dans le monde. OK, et puis il y avait d'autres choses dont vous avez peut-être entendu parler ou non, comme Mur Curiel ou SD N ou Ah perforce. Ok, ce sont des systèmes de contrôle de version. D' accord ? Et l'idée derrière le contrôle de version est qu'un gère les versions de votre code. Ça ne veut peut-être rien dire pour toi en ce moment. Ce n'est pas la couleur que nous voulons. Nous voulons que le blanc apparaisse. Bon, donc on va s'asseoir. Parfait. Ok, donc je veux parler de la gestion des versions de code. Parlons donc de la façon dont les choses pouvaient avoir l'habitude d'enchérir. On aurait pu l'habitude d'être dans les vieux jours de revêtement à travers une telle chose. Imaginez qu'on ait Ah, on a Bob Conehead ici. D' accord ? Le revêtement de Bob, il a un super projet. Excusez-moi ? Il apporte beaucoup de changements sur sa mission, son projet ou tout ce sur quoi il travaille. C' est du code, d'accord ? C' est son manteau. Eh bien, c'est beaucoup à changer. Ces choses se passaient très bien. Les patrons sont heureux, mais oh, non. Le patron dit que vous savez quoi ? Nous devons reprendre le rythme. Embauchons un autre développeur. Ok, donc le patron embauche Steve. Ok, c'est Steve et Steve a aussi besoin de commencer à travailler sur le code. Non, disons qu'on n'a pas de contrôle de version en place, accord ? Et disons que Bob travaille sur la page principale, mais Steve travaille aussi sur la page Web principale. Que se passe-t-il si Bob fait des changements ? A, B et C, puis Steve fait ses propres changements A, B et C. Maintenant, nous devons avoir cette vie sur le serveur. Disons que c'est le serveur. On doit faire ça ici la vie. Mais le problème, c'est Steve a fait des changements que nous voulons, et Bob a fait des changements que nous voulons. Comment les faire travailler ensemble ? Donc, dans les temps anciens, Bob aurait dû envoyer son fichier de code à Steve et ce que Steve ferait c'est qu'il copierait et collerait. Copiez et collez les modifications de Bob ligne par ligne et injectez-les là-dedans. D' accord. Maintenant, fois la copie et le collage terminé, Steve a peut-être renvoyé ce fichier à Bob et Bob. Débarrassez-vous de son dossier. Et toi, Steve est maintenant, parce que maintenant ils sont tous les deux debout aujourd'hui et leur évier. Bon, il ne faut pas un scientifique de fusée pour comprendre et voir pourquoi c'est un
processus très douloureux . Copier et coller manuellement des lignes pour faire face à quelque chose se casse. Oh, mon Dieu, quelle douleur. Quelle douleur à gérer. Et bien sûr, à ce stade, quand tout est synchronisé, cela irait au serveur. Ok, donc c'est ce que ça aurait pu arriver dans le passé, OK ? Et en fait, beaucoup de nouveaux programmeurs, ils finissent par faire des choses comme ça, copier des manteaux de bizutage, faire des sauvegardes tous les jours. Et il y a un meilleur moyen. Ok, il y a un meilleur moyen. Mais d'abord, parlons de l'autre. Parlons de l'autre problème que nous avons ici. D' accord ? Donc, en plus de gérer différents changements dans le code lui-même. Ok, parlons juste des sauvegardes. Disons que Bob fait un tas de changements ici. Boum, boum, boum, boum, boum, boum. Disons que c'est 1000 lignes de code. C' est beaucoup de lignes de code. Ok, 1000 lignes de code, et tout d'un coup il y travaille depuis deux heures et il casse son code. Elle est cassée. Il le casse. Ok, hum, maintenant il a un problème. Bob ne sait pas où son code s'est brisé et il a écrit tellement de code et il a écrit de très
bonnes choses. Mais quelque part là-dedans, il a cassé quelque chose. Et il n'a pas trouvé qu'il a écrit 1000 lignes de code. Qu' est-ce qu'il va devoir faire ? , Dans le passé, il va devoir passer par chaque ligne de code jusqu'à ce qu'il trouve le problème. Et ça pourrait être 500 lignes de code en arrière. Qui sait ? Ça pourrait lui prendre du temps. Ça va être un gâchis très douloureux. OK, pas une idée. Voici donc le contrôle de version à la rescousse dans le contrôle de version. Ce que tu fais, c'est des clips. Ce que vous faites, c'est que vous apportez des modifications à votre code. Disons trois changements ici. Alors à ce stade, ce que vous faites, accord, c'est que vous commettez ce changement. Ok, vous stockez dans le contrôle de version. D' accord ? Vous dites à ce stade, je veux prendre un instantané de ce que mon code ressemble à un instantané. Donc, chaque fois que vous obtenez une nouvelle fonctionnalité, à droite, Seaver commit, vous vous
engagez , vous vous engagez. Donc maintenant, disons que c'était brillant ici, travaillant sur le quatrième, s'engager, ok ? Et puis on casse quelque chose, et on ne peut absolument pas le trouver. Eh bien, peut-être que c'est juste plus facile de sortir complètement de ça et de revenir à notre précédent commit. Donc, au lieu de passer en revue toutes les lignes de code que nous
avons écrites ou de tout perdre, nous revenons juste quelques pas au comité. Nous pouvons effectivement vérifier parce qu'un instantané de cigogne de chaque point de l'histoire de votre code, ce qui est super cool car cela signifie que vous êtes votre ricotta sûr. Votre code est en sécurité. Tu peux y retourner comme tu en as besoin. Donc Bob est très heureux parce qu'il peut maintenant ah, son manteau et garder des versions de celui-ci. C' est donc ce qu'est le contrôle de version. Il s'agit de vous faciliter la vie. Donc, en revenant à notre autre exemple, où nous avions Bob et Steve. Ok, disons que nous avons maintenant Bob et Jenny. D' accord ? Il y a de super cils, et elle est super heureuse. Ok, c'est une super monstre. Bon, on
y va. Alors voici Jen. Ok, maintenant on a deux choses. Un code ici. OK, on a le code de Bob. On a le code de Jen. Disons que Bob fait des changements. A, B et C et Jen apporte des changements. A, B et C. Eh bien, c'est super cool. Qu' est-ce que le contrôle de version va faire pour vous ? Ça va faire ça pour toi. Automatique étaient avant où ils l'ont fait manuellement copier et coller des trucs de votre
contrôle de version et spécifiquement obtenir que nous allons utiliser exclusivement dans cette classe. Mais en gros, ce qui va se passer, c'est ta version. Contrôlez votre get qui est super intelligent. Ok, c'est ça, c'est le cerveau K le cerveau de l'opération qui est un cerveau d' sorte. Fondamentalement, il va aller de l'avant et il va s'injecter là pour vous automatiquement. Il va saisir cela, injecter là pour vous automatiquement injecter pour vous là-bas automatiquement et injecté pour vous là-bas automatiquement. Ok, donc ça va faire toute cette réflexion, et ça va fusionner ce code pour toi, et ça va te rendre la vie beaucoup plus facile. Tout d'un coup, beaucoup de programmeurs. Bon, beaucoup de programmeurs. Voici Ah, voici Biker Steve. Ce n'est pas très heureux. D' habitude, il a un visage malheureux. Ok, euh, donc il a son code, tu sais ? Et là, on a, tu sais, certains que tu cherches, mec. 02 manteaux sur le côté et ces gars codent ici. Donc maintenant vous obtenez Il parle à toutes les différentes sources de code toutes les différentes versions. Et c'est injecter des choses là où elles doivent être injectées et rendre votre vie beaucoup plus facile pour qu'une équipe puisse travailler ensemble. Teoh pousse un projet. Donc, le contrôle de version est très, très puissant. Tu vas l'utiliser tous les jours en tant que développeur professionnel. Et l'une des grosses erreurs que font les développeurs novices est qu'ils n'utilisent pas le contrôle de version à leur avantage. Vous pouvez ouvrir un nouveau projet Exco et il dit créer un dépôt git. Tu es genre, OK, peu importe. Et vous ne l'utilisez plus jamais. Mais je vais vous dire ce que vous devriez commettre très,
très souvent chaque fois que vous faites la plus petite fonctionnalité ou que vous changez parce que plus vous commettez, plus vous avez de chance de sauvegarder votre code de cas un problème, vous pouvez revenir en arrière à une meilleure pratique tout au long de la journée. Donc le contrôle de version est super important, et vous allez l'utiliser à nouveau tout au long de votre carrière de développement professionnel. Il est donc important que vous l'obteniez tout de suite.
18. Les bases de Git: Bienvenue, tout le monde. Et aujourd'hui, nous allons parler de get. Nous avons déjà parlé du contrôle de version, des principes qui le sous-tendent. Mais maintenant, on va parler de comment l'utiliser, et tu vas le voir en action. Alors allez-y et ouvrez votre terminal. Je vais appuyer sur l'espace de commande. D' accord ? Tapez le terminal. Et c'est là. Ok, maintenant mon terminal a l'air un peu différent. Deux ans, j'ai beaucoup de choses personnalisées là-dessus, donc ne vous inquiétez pas des différences. Les commandes seront les mêmes. D' accord. Et donc j'ai mon terminal ouvert ici. En fait, je vais aller de l'avant et le déplacer ici. Et ce qu'on va faire, c'est ouvrir notre détecteur ici, et on va le mettre sur le bureau. Donc, en utilisant votre terminal, allez-y et naviguez dans votre bureau Si vous voulez voir où vous êtes, vérifiez
juste pwd. J' ai rencontré mon niveau racine, donc je sais que je dois voir le dans le bureau. Ok, donc je suis maintenant sur le bureau PWD Guess Stop. Très bien. Maintenant, je veux faire un fichier et un dossier dossier d'abord faire le répertoire et K D N r. Faisons un peu plus grand là, faire le répertoire. Et on va appeler ça Get Dash Fund, parce que c'est tellement amusant. Et on va voir le dedans. Au fait, si vous ne vous souvenez pas de la raison pour laquelle il est automatique remplir ce que je tape est parce que
impressionnant Tabas je commence à taper et il se sent le reste pour moi. Bon, maintenant et amusez-vous. n'y a rien ici en ce moment si je ne suis pas vide. Alors allons de l'avant et faisons un fichier c'est quel. Donc, il est une touche va dire get fun point rapide. D' accord. Et je regarde mon annuaire par ici. Il est là. Un fonds cadeau point rapide. Fantastique. Ok, donc on a un dossier là-dedans maintenant. En ce moment, nous ne gérons rien avec le contrôle de version. Ok, ce n'est qu'un dossier, et il est juste assis ici à faire son truc. Donc, si je tape dans la ligne de commande, ça va. McCurdy sait ce que l'ISS a un tas de commandes ici. C' est comme, Oh, qu'est-ce que tu veux faire ? Ad Bisek Branch vérifié cologne, etcetera,
etcetera , etcetera, etcetera. Donc il sait. Excusez-moi. Il sait exactement ce que nous essayons de faire, um, quand nous avons tapé et obtenu parce que Mac est génial et est pré-installé avec. Donc je vais demander à K de l'effacer. Donc je n'ai pas tout ça à l'écran. Et donc, pour d'abord utiliser get, nous devons être dans un dépôt git ou obtenir un répertoire. Et si je tape get status, qui est une commande get, voir l'état actuel de get Taito pas get repository ou l'un des répertoires parents. Ok, donc ce n'est pas un get qu'on n'aura pas ce dépôt. Obtenez un dossier amusant. Il n'est pas obtenir le dépôt. Et donc nous devons en faire un dépôt get. Et donc vous le faites en tapant git dedans. Ok, ça va faire obtenir le dépôt et s'assurer que lorsque vous tapez get et que vous êtes dans le dossier, ok, que vous êtes dans le dossier sur lequel vous voulez le faire. C' est très important. Vous pouvez simplement le faire partout où vous devez être dans ce dossier que vous initialisez lorsque
vous obtenez le référentiel. Donc rien. Ce que nous voyons est quelque chose dans ce dossier que nous voulons suivre avec le contrôle de version. Nous voulons suivre avec git. Donc maintenant, si j'ai le statut, regardez les fichiers non suivis. Ok, donc avant d'ajouter des fichiers, accord, avant de les ajouter à votre contrôle des naissances, leur non suivi. Donc, ce que ça veut dire, c'est que vous avez des fichiers dans ce dossier que la contraception ne
gère pas en ce moment. Voulez-vous les gérer ? Tu veux le laisser ici ? On ne fait rien avec ça, alors juste pour te dire que c'est non suivi. Eh bien, nous voulons le suivre, bien sûr, parce que nous voulons vérifier les changements de version dessus. Donc, ce que vous faites pour faire quelque chose de tracé est que vous dites, obtenir ajouter dans le nom du fichier. Ok, ajoute le nom du fichier. Alors j'appuie sur Entrée. Il est juste ajouté. Cela a déposé un contrôle de version. Donc si j'ai un statut, regarde ça. Il dit que les changements doivent être engagés. D' accord. Et il y a de nouveaux fichiers et vert. Je n'étais pas juste avant, et maintenant c'est en vert. Donc quand vous avez de nouveaux fichiers, vous avez d'abord Adam pour qu'ils soient suivis. Et puis une fois là-bas, une fois qu'ils sont suivis, vous pouvez vous engager maintenant, quand vous commettez. D' accord ? Ce que vous dites, c'est que je veux faire un changement. Et donc le seul changement que nous avons fait jusqu'à ce que nous ayons ajouté un nouveau fichier afin que nous puissions aller de l'avant et le faire. Maintenant, engagez-vous, Dash M. Okay, engagez-vous, Dash M signifie que vous allez vous engager. Et tu vas ajouter un message. Vous et ensuite vous mettez entre guillemets. D' accord ? Le message que vous voulez mettre avec ce commit. Donc je vais dire, ajouté, notre premier dossier. Pouvez-vous vous engager ? Dash M a ajouté notre premier fichier plus tôt qu'un dossier a changé zéro relations insurrectionnelles. On n'a pas changé de code dessus. Nous n'avons supprimé aucun code. Et tout ce qu'on a fait, c'est qu'on a ajouté un fichier. Alors je vais chercher le statut maintenant. Rien à commettre. Le répertoire de travail est propre. Ok, donc je n'ai rien à commettre. Ce fichier a été ajouté. Il n'y a pas de changements. C' est bon d'y aller. Maintenant, commençons à regarder la beauté de Get Ok. Donc, si je tape, prends le journal. D' accord. Je vais voir que j'ai un commit ici, et il a le message que nous venons d'entrer. C' est génial. Donc je vais appuyer,
euh, contrôler, contrôler, appuyer sur quelque chose. Mon Dieu, c'est un Q mignon qui va te sortir de cet écran si tu te fais piéger dans leur presse. Q Bonté. Bon, donc, , on a vu que notre comité ne sait pas. Faisons-le encore. Prends le journal. Ok, sont commit est juste là. Il montre qu'il a un numéro spécial dessus. Et là, c'est encore. D' accord. Appuyez sur mignon. Échappé. Bon, donc maintenant ce qu'on va dio, c'est avoir un statut. Et encore, il n'y a rien. Rien n'est différent. Rien n'a changé. Ok, je vais demander à K d'effacer ça, donc je vais aller dans mon dossier maintenant. Droit ? Cliquez dessus et ouvrez avec l'application Xcode Beta. Sept. D' accord. Et c'est un fichier rapide, non ? Donc ce que je vais faire, c'est que je vais faire une variable appelée bar. Mon premier changement est égal à ceci est un changement. Je vais créer une variable de type string et juste mettre une valeur, et je vais la sauver. Ok, maintenant, voici quelque chose de vraiment cool. Si je tape et obtiens le statut, regardez ça. Il a détecté automatiquement. Il a détecté ce changement. Il dit qu'il a été modifié. Nous devons donc prendre une décision. Voulons-nous ajouter ceci à je suis engagé. Bien sûr que nous le faisons est là où nous ne nous sommes pas engagés. On n'a pas dit que je voulais garder ce changement. C' est tout ce qu'on dit,
c'est ,
c' que tu changes ça. , Ce que je vais faire,
c'est la même chose avant d'y aller. Donc, même si avant qu'il ne soit pas suivi et que nous avons ajouté le fichier get annonce va également ajouter des modifications. D' accord. Et la suppression. Donc, et vous pouvez utiliser exactement cette même commande. Obtenir ajouter, obtenir amusant point Swift. Ok, donc chaque fois que vous avez des changements à nouveau, recevez de l'annonce afin que je tape et obtienne le statut. D' accord. Modifications à valider. Donc il a été ajouté, et maintenant il veut que nous le commettions à nouveau. Alors que c'est super cool, on pourrait faire la même chose. Ok, obtenez commit Dash m pour le message, et on peut dire ajouté une variable. Et si je reçois le statut et remarque comment cela est ajouté une variable dans mon message Un fichier a changé une insertion. Je n'ai changé qu'une seule ligne de code. C' est l'insertion. Je n'ai pas de statut. Rien à commettre. Ok, donc nous l'avons engagé et maintenant les répertoires fonctionnent à nouveau. Donc nous l'avons suivi et nous l'avons coincé dans un commit. Maintenant, si je vais chercher le journal, tu verras deux commits très cool. Le plus récent en haut. Voici notre premier commit. Voici notre deuxième poursuite pour échapper à cet écran. Ok, très bien. Faisons 1/3 changement pour un second changement. Ok, deuxième changement a commencé engagé sont mon deuxième changement est égal à 1.568123 Juste pour le plaisir. Ok, obtiens le statut. Bien sûr, il a encore été modifié. Super cool. Alors faisons-le différemment cette fois, on va l'ajouter à nouveau. Mais cette fois, nous allons faire ajouter un point Eh bien, ça va faire est quel que soit le directeur que vous êtes dans Tous les fichiers ont été modifiés dans ce
répertoire que vous voulez ajouter. Ça va les ajouter tous. C' est donc juste un raccourci pour ajouter à tout ce qui a été modifié dans ce
répertoire courant . Donc, obtenez ajouter point obtenir le statut. Elle a été ajoutée, mais elle doit maintenant être engagée. Donc on va répéter ce processus à nouveau. Alors, engagez-vous. Dash M, c'est ma deuxième variable. Ok, un fichier change trois assertion. Une des suppressions, si je vais obtenir le statut, était propre. C' est génial si je vais chercher le journal, accord, il y a trois commits là-dedans maintenant, juste à ce que je m'attendrais. Ok, ça a l'air super. Oh, non. Tout d'un coup, nous avons réalisé que nous n'avons pas besoin de ce changement. Disons qu'on s'est cassé. Voyons en fait ce que ce code n'est pas ce que nous voulions dio, et nous ne voulions pas seulement le supprimer. Nous voulons simplement revenir à notre précédent commit que nous savons qu'il est sûr que nous savons que c'est faire ce que nous voulons faire. Donc, en tapant, obtenez le journal, vous voyez vos commits. Disons qu'on ne veut pas de ce type ici comme si on avait fait ces changements et qu'on n'en était pas
content . Et je ne veux pas d'homme et puis reviens et effacé. Je veux juste revenir à l'état avant que ce soit parce que j'aime vraiment que c'est ce que vous
pouvez faire en allant à ce numéro de commit ici et en copiant les 7 premiers caractères. 1234567 OK, copiez les 7 premiers caractères que vous pouvez cliquer avec le bouton droit de la souris et aller à la copie ou vous pouvez simplement appuyer sur stratégie de
commande pour copier les 7 premiers caractères du commit avec lequel vous voulez travailler. D' accord, poursuivant. Évasion. C' est ce que je peux faire maintenant, comme je pourrais le dire, faire vérifier, ok. Et mettez ça ici. Et quand je fais ça, je veux que tu regardes l'écran du coach sur le côté droit. D' accord ? Faites vérifier. On va vérifier un précédent coup d'oeil sur ça. Si vous avez remarqué le changement que nous avons fait sur le troisième commit a disparu. Pourquoi ? Parce que nous avons vérifié un commit précédent et encore une fois, c'est l'une des beautés du contrôle de version avec get, Surtout parce que vous pouvez vérifier les commits précédents et vous enregistrer au cas où vous auriez fait erreurs. Donc c'est plutôt cool. On fait de bons progrès. Vous apprenez les bases de get afin d'ajouter toujours des fichiers d'abord en utilisant get ad, puis vous validez des fichiers pour faire vos commits, et vous devriez valider aussi souvent que vous complétez les fonctionnalités. Et aussi souvent que vous ne pouvez pas commettre des choses cassées dans votre base de code. Mais chaque fois que vous avez quelque chose qui est terminé et qui fonctionne, allez-y et engagez-le parce que vous voulez rester en sécurité. Plus vous avez d'engagement, moins vous perdrez de code. L' affaire. Vous avez un gros problème ou une erreur. Committez tôt et commettez souvent est le monde est la phrase que vous allez entendre dans le
monde du développement très souvent. Donc on est une chose dont je veux parler ici. Ses branches. OK, alors revenons au maître. D' accord ? Notre code va revenir ici. Tu aimes ? Qu' est-ce que c'est ? Qu' est-ce qu'il vient d'avoir ? Départ ? Ok, donc si je tape clairement cette année, je tape clairement cette fois par type et obtenir branche. Ça va me dire que je suis dans une branche spécifique, accord ? Et comment cela fonctionne est quand vous écrivez du code, vous le mettez dans un seau que vous obtenez Vous lui donnez un nom. Tu dis tous mes changements. Je veux être dans ce seau. Ok, donc en
ce moment on est maître, c'est juste que c'est le nom de notre branche qui détient tout. Ok, disons cependant que j'ai un nouvel avenir que je veux que les patrons m'ont demandé de créer, et l'avenir est de créer une fonction. D' accord. Oui, on n'en a pas parlé aussi. Super. Une fonction qui ajoute aux nombres. Ok, donc je ne mets pas ça dans la branche principale. Je veux le faire sortir parce que la branche principale a tout le code qui est sûr. Et c'est bon. Et ce que je veux faire est de casser ça dans sa propre branche pour que je puisse le tester et jouer avec. Ok, donc ce que je vais faire, c'est que je vais te dire, Dash, va bien. Quand vous obtenez le rythme de départ, vous dites que je veux créer une nouvelle branche. D' accord ? Et tu vas donner un nom dans celui-là. Je vais l'appeler l'ajout de fonction. D' accord. Passez à une nouvelle branche appelée ajout de fonctions en tapant get branch. Je l'ai mal orthographié. C' est à un âge. En passant, si vous appuyez sur votre clavier, il mettra dans la dernière commande que vous avez tapée dans le terminal, ce qui est utile. Obtenez des branches. Maintenant, nous avons deux branches, à droite, en ajoutant une fonction, que je viens de créer et de maîtriser. Donc maintenant, tous les changements que je fais vont être ajoutés à cette branche de fonction d'ajout , par
exemple, je vais ici à mon code. Maintenant tu es comme, Eh bien, rien n'a changé là-bas sur le manteau. Eh bien, c'est vrai. Nous avons fait, c'est que nous avons pris tout le code existant du maître. On l'a divisé en une nouvelle branche. Maintenant, je peux dire, euh, Funk, c'est le raccourci pour la fonction qui couvrira ça plus tard sur couchette. Ajouter deux nombres et cela va prendre un, euh nous appellerons ce num un de type int numéro e de type int. D' accord. Et, euh, nous allons avoir ce retour et et tout ce qu'on va dire, retour numéro A plus num B. Ok, je vais sauver ça. Donc, je viens de créer une fonction qui prend en nombres et les ajoute et retourne le résultat. Ok, ne vous inquiétez pas pour ça en impôt, on vous donne juste un intérieur pour ce qui se passe à venir. Mais nous avons une fonction ici maintenant elle a un statut dans le terminal. Et bien sûr, les changements là, faisons une autre façon d'ajouter des fichiers. Obtenir ajouter le capital de tiret A. Maintenant, ce que cela va faire ? Est-ce que cela va ajouter tous les fichiers modifiés dans ce répertoire actuel ainsi que tous les dossiers
ainsi que tous les fichiers modifiés dans les sous-dossiers, tout et tous les répertoires qui ont été modifiés tout le chemin vers le bas. Ça va les ajouter tous à la fois, et c'est très, très utile. Mais attention. S' il y a des fichiers que vous ne voulez pas ajouter, cela va tous les ajouter. Soyez donc très prudent pour obtenir Ad Dash Capital A. Je veux dire obtenir le statut, et il est prêt à être engagé. Donc, nous allons commettre Dash M et disons ajouté et ajouter la fonction ajoutée dans une implosion. Un fichier a changé cinq insertions. Une suppression Obtenir le statut. On est bien d'y aller maintenant. Tu es genre, OK, et c'est cool. Mais qu'est-ce qui se passe vraiment ? Regardons nos succursales ici. Rappelez-vous, nous avons deux branches maintenant Disons que nous voulons revenir en arrière et vérifier la
branche principale . Nous voulons aller voir à quoi ressemblait notre code. Ok, c'est ainsi que vous allez voir la différence entre les branches et comment elles gèrent leurs propres versions de code. Ok, donc, en tapant, va vérifier. Pas le tableau de bord B cette fois, parce que nous ne faisons pas la nouvelle branche. Étaient juste vérifier un ranch existant, obtenir vérifier Maître, Regardez ce qui se passe sur le côté droit sur l'écran de l'entraîneur. Bam ! Il est parti. Eh bien, la raison en est qu'ils ont été changés nous aussi. Notre branche principale, qui a une autre, euh version, contrôle son code de gestion différemment et tous nos changements sur cette branche, et c'est donc vraiment cool. Alors maintenant, nous commençons à voir un peu l'avantage des branches. Vous pourriez commencer à construire de nouvelles choses comme, disons que j'ai dit, vous savez, j'avais dans une autre branche pour vérifier Dash B. Appelons cette fonction, euh, euh,
soustraire. D' accord, donc j'ai une nouvelle branche appelée Subtract Function et ah, et donc je suis genre, ok, mec, soustraire. Et je vais juste mettre dans ton engourdi un type int et être de type fin. Et nous voulions revenir, vous savez, et en nous. D' accord. Et puis nous pourrions juste dire retourner un moins engourdi, être gardé. Non, c'est cool. Allons-y et,
vous savez, vous savez, obtenir le statut et,
euh, euh, obtenir ajouter le capital de tiret, un tiret get commit m créé, fonction de
soustraction. Ok, alors obtiens le statut. Toujours vous obtenez le statut pour toujours vous assurer que vous n'avez pas un air de syntaxe, quelque chose que vos fichiers font avec la nécessité de travailler les répertoires propres, ce qui est ce que nous voulons voir. Maintenant, disons,
hum, hum, nous avons construit cette fonctionnalité et les patrons comme je n'ai pas besoin d'une fonction de soustraction puante. Nous ajoutons seulement dans notre entreprise. Donc tu es genre, OK, eh bien, je n'ai plus besoin de cette branche. Pour que je puisse vérifier, maître. Ok, donc si j'ai des branches, pas trois branches, K. Donc je suis genre,
OK, OK, eh bien, on n'a plus besoin de cette fonction d'attraction. que La bonne nouvelle, c'est nous l'avons
mis dans sa propre branche n'aurait plus à s'en soucier. Ce n'est même pas dans le maître. Nous n'avions pas besoin de revenir en arrière et de changer de code et de réparer les choses
que veulent les Boston,
pour que je puisse juste avoir une branche. veulent les Boston, Hum, Dasha. Oui, D Ok. Obtenez un test de branche que vous supprimez, et nous allons dire soustraire fonction, fonction piste de branche
supprimée, obtenir le statut. Rien à commettre. Directeur de travail. Propre, bonne, bonne branche. Et il s'est tellement bien passé que vous cassez assez de fonctionnalités et vous débarrasser de, hum il maintient le module très arisé. C' est ainsi que vous devriez travailler dans vos environnements de programmation. Lorsque vous commencez à faire beaucoup de nouvelles fonctionnalités et de modifications, essayez de les placer dans différentes branches. Donc, vous gardez votre branche maîtresse propre et sûre. Ok, donc maintenant, cependant, nous avons une branche maître qui n'a pas de fonction d'ajout. Et le patron dit qu'il est temps de faire la fonction d'ajout. Aller à la vie sur l'APP Store K nous avions besoin Faire ce changement le forge Absar. Donc, si je reçois un avis d'ajout de fonction, c'est là-bas sur le côté droit. Super. Il est toujours là. C' est tout ce que je veux montrer qu'il est toujours là. Revenons maintenant, en fait, deux Maître quand nous voulons apporter des changements dans une branche. D' accord ? Et c'est un peu comme notre exemple précédent avec nos personnages. Bob ou il travaille avec ses coéquipiers,
et ils ont besoin de Teoh. Bob ou il travaille avec ses coéquipiers, Ils ne veulent pas de copie. Coller les choses manuellement, non ? Ils veulent que cela se produise automatiquement. Eh bien, voilà où ça se passe. Ce qu'on va faire, c'est prendre les changements. D' accord ? Prenez les changements de la fonction d'ajout Branche K. Nous prendrons ces changements et nous allons les fusionner en maître. Ok, c'est tout ce qu'on va faire, c'est ça. Obtenir la fonction d'ajout de fusion. Ok, et regarde ça. Il vient d'apporter nos changements de l'ajout de fonction automatiquement dans notre base de code. Ici, voici la beauté de get and version control dead cette première automatiquement si vous remarquez ici un changement de fichier cinq insertion. Donc, il a pris le code de l'ajout de la fonction et l'a inséré dans le maître. Donc si je vais obtenir le statut, rien à engager directeur de travail propre. On est prêts à y aller. Ça vient d'apporter ces changements. Donc je dois prendre branche maintenant. Je peux me débarrasser de cette branche. Obtenir Branch Dashti pour supprimer l'ajout de fonction. Ok, et bien sûr que les changements sont là. Ok, donc vous remarquez tous vos projets. A partir de maintenant, vous allez créer un dépôt pour cela et vous allez aller de l'avant et ajouter et valider aussi souvent que possible. Et il y a une autre façon que je voulais te montrer. Comment a-t-elle travaillé avec le code git et Ex spécifiquement ? Donc si on va fouiller vos Michels hors de ce dossier maintenant, fermez ça. D' accord ? Si je clique sur le code X et que je clique sur New Mexico Project. Allons-y et cliquez. Application à vue unique. C' est très bien. Je clique sur le nom du produit suivant. Appelons ça « get test ». Très bien, c'est bon. Mettez ceci sur le bureau à l'intérieur de se amuser. Ok, en fait, mettez-le quelque part. Mettons-le quelque part nouveau où il n'y a pas de dépôt get. Donc, nous allons cliquer sur le bureau nouveau dossier. Appelons ça un autre test de test. Ok, la création rapide. Eh bien, voici la clé. Ok, juste ici sur l'écran. Tu vois ? Comment dit contrôle de la source, Créer un référentiel git Exco pour remplacer votre projet sous contrôle de version. Ça va le faire gratuitement Automatique. Donc ça va sauter l'étape où vous devez faire entrer dedans, et ça va le faire automatiquement pour vous sur votre projet ex code. OK ? Et si je clique sur Créer OK, je clique sur créer lisse ceci ici. Naviguons Donc, point de point de l'espace fuyant Allons sur le répertoire parce que nous savons que nous devons sortir de nous amuser. On veut un CD dans un autre test. C' est ce qu'on vient de créer par L. Il y a mon projet ex code. Ok, alors nous allons voir le dedans. C' est là qu'un projet est correct. Maintenant, si j'ai le statut, regarde ça. C' est déjà initialisé. C' est Hey, on a des changements. Vous avez créé un nouveau projet. Oh, super. Allons au tableau de bord A obtenir le statut pour s'assurer qu'ils sont tous ajoutés Maintenant, ils sont verts. Ils ont été lus avant d'obtenir commit Dash M a créé un nouveau projet de code X et attirer cela. C' est cool ? Comment ? Super cool. Maintenant, voici quelque chose qui est vraiment cool aussi. Si je vais à mon code ici, disons que je fais un changement. Faisons juste un commentaire ici en faisant un changement et je l'enregistre. Ok, si je vais obtenir le statut, c'est là. Voir le point de contrôleur Swift Il l'a trouvé. C' est très cool maintenant ? Aussi. Ok, un jour, vous pouvez Dio est en fait dans le code X lui-même. Voir le M juste là. Que pensez-vous que cela signifie ? Ok, ça veut dire modifié. Il dit même qu'il y a un pop-up pour que vous puissiez le faire au lieu de même
le faire correctement dans votre terminal pour que je puisse obtenir le statut et c'est rouge. Il doit être d'accord qu'on doit l'ajouter d'abord, pas vrai pour que je puisse vraiment aller par ici, non ? Cliquez dessus, allez dans le contrôle de la source et je peux réellement valider. C' est ce qu'il va faire, c'
est, en fait , il va l'ajouter d'abord, et ensuite il va le commettre pour nous ici. Donc je le commet et et réponds à votre message de commit. Disons fait un commentaire, qui est ce que nous avons fait valider un fichier et il vient de le faire d'abord automatiquement à priser. Je vais chercher le statut. Regarde ça. Non. D' accord. Euh, tu es là. Obtenir le statut. Fais nettoyer ici. Trop de choses se passent. Ok, donc il a ajouté ce fichier. Vous avez remarqué comment cela a changé le fichier spécifique de votre contrôle sur Swift. C' est qu'il a été changé. Nous n'avons pas ajouté ce fichier ici, bien
sûr, mais si je tape, obtenez le journal. Regarde ça. Fait un commentaire afin que vous puissiez le faire directement à partir du code X
aussi, aussi, si vous voulez. Hum, tous les environnements intégrés de I d E ont des fonctionnalités cool comme ça, mais Exco fait tellement cool. Nous avons fait ce que nous avons fait, c'est que nous avons fait obtenir des commits, nous ajoutons que nous travaillons avec des branches git, assurez-vous qu'ils se souviennent toujours, vous faites toujours un changement, puis ajoutez puis validez. Ok, changer, ajouter, valider le changement, ajouter, valider, et puis vous pouvez fusionner brillant. Vous pouvez fusionner des branches dans d'autres branches, et c'est le contrôle de version. Ces air, les bases du contrôle de version 90% de ce que vous faites avec get et version control
va être ce que nous venons de faire ici. Il y a des choses plus complexes dans lesquelles vous vous engagez, mais 90% du travail que vous ferez sont ces choses vaccinales que nous avons faites en ce moment. Donc c'est plutôt cool. Vous avez un vrai bon aperçu de celui-ci maintenant et bienvenue dans le monde de contrôle de version et obtenir et être un codeur professionnel.
19. Travailler avec Github: Hé, tout le monde. Donc, nous avons parlé de Get déjà et de contrôle de version. Maintenant, on va parler de Get Hub maintenant. Gave Hub n'est pas égal à obtenir. Ok, ce que le Hub est un site web. C' est un service. Quelqu' un a créé. Ok, vas-y. Maintenant, obtenez hub dot com C'est un service que quelqu'un a créé pour stocker réellement des dépôts. Ok, donc il les stocke pour toi. Et donc, fondamentalement, toute
votre organisation, si vous avez plusieurs membres de l'équipe, vous pouvez tous poster votre code sur vos comptes de dons et partager et télécharger du code et publier des modifications. Et c'est ainsi que votre code parle avec le code des autres membres de l'équipe. C' est aussi un endroit idéal pour stocker vos projets. Donc les employeurs potentiels et les gens qui veulent regarder votre manteau et les regarder. Donc nous avons un hub dot com. C' est un service. Ok, les usages se trouvent dans les coulisses. Il y a aussi un autre service que je veux parler appelé bit seau point ou coke un peu. Bucket est un service compétitif, ok. Et, ah, fait exactement la même chose est d'obtenir de l'aide. Juste un service différent. Un service fantastique est en fait à la fois et une chose à noter est sur. Lève-toi. Si vous voulez l'utiliser gratuitement, tous vos dépôts doivent être publics. Ce qui veut dire que n'importe qui peut regarder votre manteau. Donc, si vous avez du code propriétaire, vous construisez une application que vous connaissez quelqu'un à voir. Vous devez créer un compte d'aide payant. D' accord ? Ainsi, vous pouvez avoir des dépôts privés sur le livre. C' est la même idée. Sauf que la chose cool à propos de bit bucket est qu'il vous donne cinq dépôts privés gratuits. Donc, si vous voulez l'utiliser gratuitement avec un projet propriétaire, ils ne le font pas. N' importe qui d'autre pour voir un gros seau pourrait être le chemin à faire, parce qu'il vous permet de faire cinq dépôts privés avant de commencer à payer des trucs
tellement cool que nous allons parler de Get hub aujourd'hui. Je ne vais pas m'inquiéter pour ça maintenant, alors on va aller se lever et, ah, si je dois me déconnecter. Voilà pour que vous puissiez voir ce que je vois ici. Fondamentalement, tu vas avoir un point com, et ça va te demander de signer Anderson ou de t'inscrire pour aller de l'avant et t'inscrire ici. Mettez un nom d'utilisateur, un
mot de passe, mot de passe, e-mail et un mot de passe. D' accord. Et je suis sûr qu'ils vont vous envoyer un courriel de vérification. Tu vas vouloir entrer dans ton email et vérifier. Donc je vais juste me connecter depuis que j'ai quitté créé un compte. Ok, donc ils étaient super faciles. Super cool. Hum, maintenant on va juste plonger ici et juste ici sur le côté droit. Les années peuvent être différentes selon la configuration de vos systèmes, mais vous recherchez un bouton appelé Nouveau référentiel. Ok, je vais cliquer dessus, et je vais lui donner un nom. Maintenant, comme nous avons déjà fait un projet, OK, nous avons fait l'AP super cool. D' accord. Très ont un projet. C' est ce qu'on va télécharger ici. Et tu vas vouloir faire la même chose avec ton projet dans l'exercice suivant, alors regarde comment je le fais. Maintenant, cependant, c'est un nom de dépôt, donc ça va être dépensé d'impôt. Je suppose mon compte pour ça. Slash et tout ce que je veux appeler ça. Donc je vais appeler ce cours IOS super cool AP beaucoup de tiret. C' est bon. Le chèque signifie qu'il est bon d'aller description. C' est la première application que nous avons construite dans le cours IOS. D' accord, Soldat. Oh, d' accord. Qu' il veut mon argent. 7 $ par mois. D' accord. Si je veux un privé, on va le rendre public. Donc, il est agréable et gratuit initialisé ce dépôt avec un fichier me lire ? Bien sûr. Pourquoi pas ? Sois amusant. D' accord. Et point obtenir ignorer. Donc il ignore est un fichier dans votre dépôt git sur votre système local qui dit essentiellement, quels fichiers ? Il ne veut pas mettre dans le contrôle de version. On ne parlera pas de ça à tout moment. Si jamais vous voulez des choses que vous ne voulez pas Adam Version patrouille, vous pouvez l'ajouter au point get ignore fichier, et il va ignorer ces fichiers et ne pas le pousser jusqu'à votre positif. Donc, si je clique, créer un dépôt où et bam Il iss. Nous avons un nouveau dépôt assis là, mais il n'y a pas de code dedans en ce moment. D' accord ? C' est juste assis ici à ne rien faire. Donc, ce que nous voulons dio est de pousser notre couche existante dans ce dépôt ici, donc il y a quelques choses que nous devons faire d'abord, votre ordinateur a la capacité de générer une clé ssh. C' est fondamentalement ssh est un moyen de se connecter à distance dans les choses, pousser les choses vers le haut. Et de toute façon, vous avez une clé que vous générez à partir de votre ordinateur qui vous identifie avec get up ou si vous vous connectez à un serveur, etc. Donc, nous devons mettre ça en place, en fait. Donc je vais aller sur Google et chercher ça. Obtenez Hub. Ssh ! Clé. Il allait le chercher. Et bien sûr, ça pose de l'aide ouverte. Obtenez. Avoir un point com dans cet article ici. Et c'est en fait ce qu'on cherche. Ce top ici. Ok, maintenant ça va te donner quelques pas. Il y a des fenêtres Mac. Linux, c'est tout. On va évidemment utiliser les marches de Mac ici, accord ? Et on va juste passer par ça ensemble. Donc, étape une vérifier les clés ssh lorsque mon ordinateur en a une. Si vous êtes nouveau, vous n'en avez probablement pas. Supposons que tu n'en as pas, OK ,
alors quoi, tu vas passer par ces exemples ici ? D' accord. Et dans votre terminal, vous suivez ces étapes ici. D' accord. D' accord. Et donc je veux dire Ssh Key. Jen Dashti Arce. Dash B 4096 vous devez comprendre tout cela, vous devez faire ce qu'il dit que je ne fais même pas attention. Eh bien, ces détails signifient que c'est comme ça que vous l'avez configuré, et que vous pourriez mettre votre email ici, donc j'ai été mis, euh, mien ici maintenant. Donc, euh, et ,
ah, ça va générer un nouveau SSH. Utilisation de l'e-mail fourni comme étiquette générant une paire de clés RSC privée slash publique. D' accord. Et elle quels dossiers ? Pour enregistrer la clé. Maintenant, tu devrais juste appuyer. Vous devriez juste appuyer sur Entrée. D' accord ? Je ne vais pas faire ça parce que j'ai déjà une clé Nexus h. Et je ne veux pas en faire un autre. Donc je vais juste appuyer sur ça, et vous pouvez mettre votre mot de passe dedans. J' utilise généralement la phrase de passe d'ordinateur que vous avez pour votre ordinateur. D' accord ? Il ne montrera pas de personnages au fur et à mesure que vous l'entrez,
c' est et le demander à nouveau. D' accord. Excusez-moi. Alors le mien n'a pas dit,
mais c'est bon,
parce que je ne voulais pas le mettre nulle part,
parce que j'en ai déjà un. Alors le mien n'a pas dit, mais c'est bon, parce que je ne voulais pas le mettre nulle part, Donc, dans votre cas, vous devriez juste appuyer sur entré, il aurait dû fonctionner très bien. D' accord ? Et puis tu verras quelque chose comme ça ici. Ok, qui a quelques détails là-bas. Ensuite, c'est juste ici. Donc, vous pouvez simplement copier à pas. OK, viens te voir pour copier. Approchez-le juste ici. Et tu sais, j'en ai un qui a un agent SSH en arrière-plan, ok ? Et puis tu vas exécuter cette commande. J' ai déjà fait ça. D' accord ? Tu vas exécuter cette commande, et ça va ajouter ta clé à ça. Ssh. Agent, jusqu'à présent, vous ne devriez toujours pas avoir de problèmes. C' est pour être très simple,
En passant, sur Lenox et Windows, sur Lenox et Windows, il y a plus d'étapes dans ce, et vous pouvez rencontrer plus de problèmes. Mais heureusement, nous sommes un Mac, qui fait beaucoup de choses pour nous très bien. D' accord. Excusez-moi. Donc la prochaine chose ici est de simplement copier cette clé. Ok, donc tu devrais avoir Aquino. D' accord. Ah, Et si vous avez des problèmes ici, allez sur le site Web, allez sur les formulaires que vous pouvez obtenir de l'aide leur poste votre problème spécifique, ou vous pouvez google problème spécifique. C' est qu'il y a beaucoup de problèmes communs associés aux clés ssh. Et je suis sûr que je sais qu'il y a
beaucoup, beaucoup de réponses là-bas pour chaque type de problème. Alors allez-y et copiez cette commande ici. Et ce qu'il va faire, c'est copier ta clé. Il va le copier dans votre presse-papiers. D' accord ? Et donc chaque fois que tu le colles, ça va. Tout ce que vous cliquez sur Coller va accélérer cette clé ici. Donc maintenant tout ce dont vous avez besoin pour dio, revenons chercher de l'aide, revenons à votre compte, accord ? Et tu vas aller à la mise en scène. Alors cliquez sur cette icône, apparaissez en haut, non ? Tu vas aller dans les réglages. Et si ce n'est pas
là, allez voir où sont les paramètres pour votre profil, accord ? Paramètres. Et puis tu vas aller aux clés SSH. D' accord. Et ce que tu vas faire, c'est que tu vas l'ajouter. Vous allez mettre un nom et juste ici la Syrie pour dire la clé SSH de mon ordinateur. Et ce que tu vas faire, c'est que tu vas le coller ici. Maintenant, c'est une clé sécurisée. Tu ne veux montrer à personne, c'est pour ça
que le nôtre est bloqué ici. Mais en gros, je vais juste suivre partout où il met sur votre presse-papiers. , puis vous devez cliquer sur Ajouter une clé, et c'est tout. Et la raison pour laquelle vous deviez le faire est de pouvoir pousser vers votre dépôt. Vous pouvez pousser le code vers votre référentiel. Ok, donc je vais retourner ici maintenant, accord ? Et nous avons créé notre référentiel. C' est juste là. Super cool ap. Je vais cliquer dessus. Tout est là où il doit être. Ok, maintenant, sur votre terminal, par ici, sur le côté gauche. Allez-y et naviguez pour porter votre projet. ISS. Donc, dans notre cas, c'est sur le bureau. Super cool. Avoir un CD, CD
Intuit. Super cool. D' accord. Et très gentil. Donc, tout est bien là maintenant. Nous n'avons jamais initialisé cela à un dépôt get, donc nous devrions le faire comme nous l'avons fait auparavant. Mettez-y maintenant. Il est initialisé. J' ai le statut. Il y a beaucoup de changements. Je vais juste aller à Dash Capital 8, les
adultes et puis retrouver le statut. D' accord ? Ils sont tous verts. C' est bien. Cela signifie même ajouté, nous allons le commettre. Obtiens la validation. Dash M Ajout de fichiers pour super cool. Bon, donc on vient d'ajouter des fichiers. Maintenant, il n'y a qu'une chose à faire. Nous devons dire à notre dépôt git local, ce dépôt local ici et notre dossier sur notre ordinateur. On doit le faire parler à l'un et avoir un point com Ils doivent se parler. Ok, donc ce qu'on va à Dio, c'est par ici, dans le côté droit, tu vas voir quelque chose qui dit SSH. Tu vas cliquer dessus. OK, vous pouvez cliquer sur ce bouton pour le copier ici. Ok, donc c'est maintenant. Copie dit copie. Tout le monde reste à l'intérieur ? Si je tape get remote, Dash V, ça va la liste sur mes dépôts distants en ce moment. Il n'y a rien. Donc, obtenez Dash V à distance liste tous les serveurs, genre, se lever que nos histoires de maison parlent en ce moment, il ne parle à aucun d'entre eux, donc nous devons en ajouter un. Donc ce qu'on va faire, c'est obtenir une annonce à distance. D' accord ? On doit lui donner un nom, tu sais, pour que je puisse dire mon hub. Ah, la convention
très courante est juste d'appeler l'origine, donc je vais m'éloigner, ajouter de l'espace d'origine, et je vais coller. Ok, je vais coller dans ce lien juste ici. Alors fais distance, ajoute l'origine, ok ? Et nous allons accélérer un péché
juste ici, comme vous le voyez ici lors d'un dîner de presse. D' accord ? Je viens de l'ajouter. Donc, si je tape et que je reçois Dash V à distance assez
sûr, il a deux origines. Il en a fait un pour récupérer Ce que la récupération signifie est de saisir, donc de saisir et de télécharger. Et ça nous a donné un pour pousser le haut maintenant ça pourrait être différent. Vous savez, l'un pourrait être un lien pour télécharger un comme pousser vers le haut. Cela dépend de la configuration de vos serveurs et de votre ordinateur. Tu te lèves. Dans notre cas, ils sont exactement les mêmes. Donc c'est très cool. Tout ce que nous avons fait jusqu'à maintenant, c'est qu'ils se parlent. K, votre terminal parle maintenant à Eh bien, votre dépôt local pour vos terminaux. Maintenant, parler à travers votre compte get hub dot com. Donc tout ce qu'il faut faire maintenant c'est vraiment cool. Malgré avoir obtenu le statut, rien à valider, le répertoire
de travail propre. Tout ce que vous avez à faire est de le pousser vers le haut. Alors ce que tu pourrais faire. Dites obtenir pousser Origin Master. Maintenant on sait qu'on a roulé sur la branche principale, OK ? Parce que c'est de ça que nous avons travaillé. Si j'étais un type dans get branch, ceci est remasterisé par défaut. C' est cool. Donc je veux juste le pousser à la branche principale pour obtenir le maître d'origine, OK ? Et Oh, non, ça nous donne un air. Qu' est-ce que ça dit ? Dire est tombé pour pousser un peu de repos pour se lever parce que la télécommande contient du travail que vous
ne devez pas que je n'ai pas un local. Donc, si vous remarquez ici, nous avons ajouté un fichier de lecture quand nous avons créé un dépôt. Et nous ne l'avons pas encore localement sur notre ordinateur. Donc avant de pousser, il y a quelque chose que vous avez toujours besoin de dio. Et je veux vous montrer cet air, donc vous savez, vous allez courir avant de pousser. Tu veux toujours un poteau. Obtenez l'origine des pôles, Maître. Ce qu'on va faire, c'est qu'on va tirer tous les changements qui sont sur le hub dot com et on
va le mettre dans notre base de code en premier. De cette façon, nous pouvons avoir le coach le plus à jour. Donnons-lui un coup de feu. Prenez Pole Origin, Maître. Et c'est là. D' accord. Il a trouvé un écran ici, et au fait, l'écran qui est apparu ici comme, que se passe-t-il ? Je suis coincé ici. C' est ce qu'on appelle Vim. C' est un éditeur de texte à l'éditeur de texte basé sur le terminal a des commandes très funky. C' est un peu compliqué de prendre du temps pour apprendre. Donc avant de faire quelque chose de fou ici, allez-y et appuyez évasion quelques fois. Ok, maintenez. Maj et appuyez une fois sur les deux points. Ok, Shifted et Colin une fois. Et puis appuyez simplement sur x X signifie économiser. Arrêtez encore. Très funky presse échapper quelques fois si vous avez obtenu un état bizarre, puis déplacer et appuyer sur Colin une fois et laisser aller et puis appuyez sur X pour enregistrer rapidement. D' accord ? Tout ce qui a fait, c'est qu'il était dit Hey, nous fusionnons ces changements dans l'avis juste ici. Il a fusionné. Il a tiré dans le fichier de lecture, il l'a mis ici. Donc j'ai juste un statut. Rien à commettre, le répertoire
de travail propre. Et puis je peux aller de l'avant et faire maintenant qu'il a été tiré et fusionné, je peux le faire. Poussez Origin, Maître. D' accord. Et voilà va la compression, compression, conduite totale et puis elle l'envoie vers le haut. Donc, si je vais ici à ma page ici et rafraîchir la commande sont à rafraîchir Regardez mes codes ici maintenant, il existe là. Maintenant, à quel point c'est cool ? Certains obtiennent maintenant Hub est officiellement le suivi des changements. Donc si je devais mettre un autre fichier ici comme, disons, toucher et disons juste, hum, un fichier aussi rapide, j'ai le statut. Bien sûr, je dois l'ajouter, obtenir un fichier qui rapidement obtenir le statut et c'est vert. Donc, il a été ajouté et obtenez commit. Dash M a ajouté un fichier. Et puis je veux que vous fassiez cette fois nous n'avons pas vraiment besoin de tirer parce que personne n'a fait changements sur le serveur du hub get. Mais c'est toujours une bonne pratique de le faire d'abord. Alors prenez l'origine du pôle, Maître, et c'est déjà à jour. Donc personne n'a fait des changements connus, encore
poussé. C' est bon, alors allons-y maintenant et poussons le maître d'origine pour pousser vers le haut ce changement de fichier que nous avons fait, alors
faites la même chose maintenant qu'il est en train de lire et c'est penser. Et si je rafraîchis la page, bien sûr, un fichier que Swift est juste là. Des trucs très cool. Euh, ça. Je veux dire, je peux comprendre comment ça pourrait être un peu déroutant. Il faut un peu de pratique. Vous le ferez beaucoup avec le temps, mais vous pouvez vous référer à cette vidéo Donc, les choses à retenir sont une fois que vous avez configuré votre
clé ssh . Ok, c'est fondamentalement nous allons obtenir le hub. Sachez que cet ordinateur a accès à ce compte dans ce référentiel. C' est ce que fait la clé ssh. C' est pourquoi nous l'avons ajouté ici dans les paramètres de Rentrer à la maison. On l'a généré ici. Donc, une fois get hub est de parler à votre ordinateur local. Ensuite, lorsque vous apportez des modifications, vous pouvez d'abord les annoncer et les valider comme vous êtes habitué à le faire maintenant et puis vous tirez vers le bas, obtenir l'origine du pôle, Maître, vous pouvez extraire de ce référentiel et ensuite vous pouvez également obtenir l'origine push pour repousser les modifications ici et encore. Une autre chose que nous avons fait est que nous avons ajouté, obtenir hub Archaea ont compte et le dépôt spécifique Nous avons ajouté un dépôt distant za. Ok, en utilisant get remote ou get remote, ajoutez l'origine, puis le rythme dans le lien vers le référentiel. Donc, c'est comme ça que vous allez mettre les référentiels sur pour obtenir le hub. Faites exactement les mêmes étapes que nous avons faites ici pour tous vos projets ici sont de temps en temps . Vous pouvez utiliser le site Web pour obtenir toute aide dont vous pourriez avoir besoin, et c'est se lever.
20. Swift 2 Conditionals (si / ailleurs) Partie 1: Bienvenue, tout le monde. Aujourd'hui, on va parler de l'état de la SLA. Ok, c'est, si dans les déclarations de l aussi, c'est comme ça que tu penses ton manteau. Et en fait, à son niveau de base. Une fois que vous connaissez les variables et, vous savez, conditionnez la SLA, vous pouvez à peu près programmer la plupart des choses d'une manière antérieure à son niveau le plus basique. Des trucs tellement cool. Fondationnel. Super important. Commençons. Passons à votre ex code bêta. D' accord ? Et ce qu'on va faire, c'est créer une nouvelle aire de jeux. Alors commencez avec le terrain de jeu de l'Iowa. Et appelons cette arme supplémentaire, d' accord ? Et allez-y et enregistrez-le ici sur votre bureau ou n'importe où vous voulez le sauvegarder, et ça va ouvrir notre terrain de jeu. Donc, pour comprendre la condition, ALS, nous devons parler d'un autre type de données appelé un booléen. Ok, donc l'esprit de notre corde ici, si je sauve notre est ma maison en feu, nous considérons du type taureau. Ok,
c' est faux. D' accord, donc, valeurs de Vala sont soit vraies, soit fausses. Ok, plus zéro ou un. D' accord. Donc un étant vrai, zéro étant faux. Ok, donc c'est un booléen, tu sais que j'aurais pu dire qu'un autre taureau est vrai. Vous savez, le 1er 1 est juste un type explicitement et explicitement défini. Ok, donc ça a du sens. L' un des fondements de base, en
fait, tout ce que vous faites, en ce qui concerne les opérations, se résume à une simple, vraie fausse valeur. Parlons donc des déclarations if ou else. D' accord ? Donc on peut dire si ma maison est en feu. Ok, c'est ma maison en feu. Alors, nous allons, euh, faire l'impression. Ça va imprimer sur votre console ici dans le cas,
le terrain de jeu sur le côté droit. Prends quelqu'un me chercher de l'eau. D' accord. Je suis juste en appuyant sur l'onglet pour compléter automatiquement ici autre. D' accord, Brent. Donc si ma maison est en feu, alors donne-nous de l'eau. Sinon, imprimez quelqu'un prendre du feu pour ma maison, je le sauve. On dit que quelqu'un prend le feu pour ma maison. Donc c'est faux, non ? Donc nous disons que si c'est vrai, quelqu'un me donne de l'eau, sinon, alors je prends du feu. Ma maison est en feu ? Des spots égaux que nous avons mis en place ici. Donc, cela est en fait en train de sortir à faux Cela est égal à faux et donc puisque cela est égal à faux, il va dans la condition else. Donc, nous disons, si c'est vrai, faites-le autrement. Eh bien, ce n'est pas vrai. Donc on va faire ça. Ok, donc ce sont des déclarations simples si un autre. Ok, alors parlons de la logique booléenne en général. D' accord ? Pour que nous puissions le faire. Le résultat Var est égal, si vrai est vrai. Quel est le résultat : les résultats seront vrais ? Parce que vrai est égal à vrai Et remarquez comment nous utilisons la science double égale. C' est ainsi que nous faisons la vérification conditionnelle et rapide est double égal. Ok, si c'était un seul égal, comme ici serait assigner les résultats. Donc, nous assignons le résultat de ceci. Donc, cela va générer soit vrai ou faux valeur en elle, et il va le stocker et le résultat. D' accord. Et si nous disons que le résultat est égal à vrai égal à faux Si vrai est égal à faux. Le résultat sera ce que la fausse cause vraie n'est pas égale au patron. D' accord. Toi avec moi jusqu'à présent, ça devient un peu fou ici, donc les résultats auraient un résultat égal à force égale à faux, cette fausse force égale. Oui, c'est le cas. C' est vrai. Tu aimes. Attends, qu'est-ce qui se passe ici ? Faux est égal au vrai. Ce n'est rien que j'ai appris. Eh bien, cette folie Eh bien, c'est en fait la vérité. Faux. Si false est égal à false. Eh bien, que vous vous rapportiez à vrai parce que c'est vrai. J' ai du sens. Et puis nous avons couvert tout ce qui est vrai ici. C' était faux. Faux est égal à faux. Oui. Je veux dire, est-ce que vos contrôles
conditionnels simples pour que vous puissiez commencer vraiment ? Faire des trucs amusants, c'est maintenant qu'on peut imaginer qu'on a un compte en banque, non ? Jusqu' à présent, le total du
compte est égal. Disons que nous avons Nous avons 300.33$ dans notre compte. Ok, très bien. Maintenant, disons qu'il y a un article que nous avons acheté au magasin a donné notre appel à ce nouveau jeu d'appel de service, et ça va égaler 59 99. Bon, donc le jeu coûte 59 99. Le total de mon compte est de 300 dollars et 33 cents. Il est temps d'aller au registre. D' accord. Donc, je pourrais faire quelque chose comme ça si le total du compte est supérieur ou égal à la nouvelle impression de jeu d'appel de service Je viens d'acheter le jeu. D' accord. Sinon, mon ami, je n'ai pas assez d'argent. D' accord ? Et regarde ça. Il vient d'acheter le jeu. Disons que mon compte bancaire n'avait que 30,33$. Bien sûr, je n'ai pas assez d'argent pour que vous puissiez mener des opérations d'intimidation sur n'importe quoi. OK, donc cela va équivaloir à une valeur vraie ou fausse si le total du compte, si 30,33$ est supérieur ou égal au nouveau jeu d'appel de service, qui est 59 points et non 59 99. Alors fais ça. Eh bien, nous savons que ce n'est pas vrai parce qu'il n'a que 30$, mais qu'il soit vrai. Nous savons que c'est le cas maintenant. Ce n'est pas vrai parce que nous avons maintenant $300 vous venez d'acheter le jeu. Excusez-moi. Alors je commence juste à avoir un sens, OK ? Nous avons des valeurs que nous comparons avec d'autres valeurs, et nous pourrions faire des choses similaires avec des chaînes aussi bien à Donc, par exemple,
disons Ah, disons Ah, j'ai dit que le nom de la barre est égal à Jack. D' accord. Je pourrais dire si le nom est égal à Jack. Alors fais ça. C' est une empreinte. Ton nom est Jack. Sinon imprimer. Ton nom n'est pas Jack. Ça a du sens. Eh bien, c'est l'impression. Ton nom est Jack. Disons que j'ai mis ici,
Jackie, Jackie, ton nom n'est pas Jack. D' accord ? Donc, comme vous pouvez le voir, euh, vous pouvez faire d'autres types de comparaisons ici est bien, aussi, ce qui est vraiment, vraiment cool. Donc, si des déclarations anel, vous pourriez commencer à construire urologique comme ceci. Et donc si vous remarquez ici, genre, si je construisais une sorte d'application de caisse enregistreuse pour un magasin, vous savez, je pourrais avoir la même logique. C' est très basé, mais j'ai une logique similaire à, vous savez, refuser une carte de crédit ou d'accepter ou de faire un achat, ou cela pourrait être quelque chose pour que vous puissiez commencer à faire beaucoup et beaucoup de choses différentes . Donc, par
exemple, si je dis que de notre certain nombre est égal à 25 ok. Et, euh, appelons ce numéro un ok. Numéro a sauver notre numéro B est égal à 30 40. Notre nombre C est égal à 45 sont le nombre D égal à 50. Ok, juste un tas de variables. A, B, C d. Et maintenant on peut faire toutes sortes de choses amusantes que je pourrais sauver notre,
euh, euh, numéro
final est égal à 100 et affaiblir le dio un contrôle conditionnel ici. Ce qu'on peut faire, c'est dire si le numéro A est égal au numéro final. Faites ceci autrement si le nombre D est égal au nombre final. Faites ceci autrement si le nombre C est égal au nombre final. OK, fais ça d'autre ici. Ceci Donc nous présentons quelque chose de nouveau ici. C' est d'autre, si oui, avant nous. Si cela, faites-le. Donc c'est soit ceci et si ce n'est pas vrai, alors allez-y et faites-le. Mais dans ce cas, nous disons que si c'est vrai, alors faites-le autre. Si cela est vrai dans cela aussi, si c'est vrai, alors faites-le. Sinon, le dernier cas. Allez-y et faites ça ici. Donc, bien sûr, nous pouvons imprimer. On peut juste dire Ah, imprimer le numéro A. Il suffit d'imprimer le numéro réel et nous pourrions aller de l'avant et copier et coller ceci ici, ici et ici. Imprimer numéro B numéro C. Sinon, nous pourrions utiliser quelque chose de totalement différent. Nous pouvons dire qu'aucune des valeurs n'était égale au nombre final et nous devrions voir cette impression car aucun de ces nombres n'est égal à 100. Si j'en ai fait 100, vous devriez voir 100 imprimés juste là. Et cela n'est pas appelé parce que le nombre A fait cela égal. Trouver un numéro ? Non. 25 n'est pas égal à 100. Et si le nombre bec était bon nombre ? Eh bien, le numéro B est 100 le numéro final est 100. C' est donc vrai. Donc il l'imprime là. OK, donc tu pourrais commencer à voir à quel point If et Ellis sont simples. Et si un autre si les déclarations peuvent vous aider à comprendre comment résoudre ah tout un tas de différents types de problèmes. Donc, c'est un aperçu de base de, si d'autres déclarations milliards, les choses équivaut à vrai. Ok, alors remarquez comment si c'est supérieur ou égal à Ok, on pourrait aussi dire, si c'est inférieur ou égal à OK ou si c'est égal à ça c'est une autre chose qu'on pourrait dire. Ou nous pourrions aussi dire, si ce n'est pas égal à ce que représente le point d'exclamation. Donc, si le total du compte, si 300.33 n'est pas égal à 59 99 alors c'est un
certain, bien sûr, ce n'est pas égal à cela. Donc ça va équivaloir à. Vrai. Donc il y a différentes façons de jouer avec conditionnel et,
euh, euh, vous faites avec des cordes ou
des nombres, bien sûr, avec des cordes. Vous savez, évidemment, vous ne voulez pas faire des choses comme, hum, vous savez, si le nom est supérieur ou égal à Jack, ça va vous donner des résultats incohérents, pas ce que vous êtes à la recherche. Vous allez juste vouloir utiliser l'égalité ou les opérateurs d'inégalité sur les chaînes. Tu ne feras pas moins que ça ou égal à ça. Mais c'est un aperçu de base de
21. Swift 2 Conditionals ( && ||), partie 2: Hey, Ron, on va creuser dans les déclarations conditionnelles est un peu plus si autre. Alors allons-y et ouvrons le manteau X. On va créer une nouvelle aire de jeux. Appelez cette condition ALS pour l'enregistrer où vous le souhaitez. Ok, parfait. Donc je vais me débarrasser de ça. Donc, nous avons parlé de milliards dont nous avons parlé si une instruction AL, parlons simplement d'avoir plusieurs vérifications conditionnelles sur la même ligne dans la même déclaration. Donc, disons que j'ai une banque loin mon compte est égal à 1000$ sont mes amis. Compte est égal à 2000$ sont mes amis Le compte est égal à 3000$. Disons
que si mon compte est supérieur à 900 et si mon compte d'amis, mon compte
d'amisest supérieur à 1500. Disons
que si mon compte est supérieur à 900 et si mon compte d'amis, mon compte
d'amis Et si le compte de l'ami de mon ami est supérieur à 2000, nous allons imprimer. On a un mouvement théorique de Joe. Tu vois, ça équivaut au vrai C'est vrai. Parlons de ce qui se passe ici. Donc double esperluette. Ok, c'est le symbole de l'esperluette sur les sept claviers, et fondamentalement ce que nous disons c'est, si c'est vrai, et si c'est vrai, alors faites ça. D' accord, et mon compte aussi. Plus de 901 000 est certainement supérieur à 900. Donc, c'est vrai. Donc nous disons, si c'est vrai et vrai, parce que c'est séquestré vrai. Et les troupes disaient si vrai, intérimaire, vrai, vrai égal vrai vrai est vrai vrai. Donc c'est vrai, si c'est vrai, alors imprimez ça ici très bien. Et ils correspondent toujours de gauche à droite. Ok, donc ça va aller en premier et ça et ils devront être vrais pour que ça marche. Bon, parlons d'un autre exemple. Disons que nous avons un jeu multijoueur coopératif et que nous devons savoir si l'un des
membres de notre équipe est mort pour que nous puissions envoyer un médecin pour le relancer. Parce que si nous mourons tous, le jeu est fini. Alors quoi ? On va faire quelques variables joueur A.
Une vie est égale à la vérité. Notre joueur être vivant est égal à vrai. Notre joueur voit vivant égaux troupes. ce moment, ils sont tous vivants. C' est génial. Si le joueur a vivant est égal à faux ou si le joueur B vivant est égal à faux ou si le joueur voit une vie égale à false. Donc, l'un de ces joueurs, l'un de ces joueurs est mort. Apportons un message. Un des membres de votre équipe est en panne. Ok, donc pour l'instant, tout ça est vrai. Donc ce n'est pas Cela ne fonctionne pas,
Cependant, Cependant, Que se passe-t-il si je fais le joueur être mort ? Il s'est fait tirer dessus. Je le suis. L' un des membres de votre équipe est maintenant. D' accord. Alors qu'est-ce qui s'est passé, c'est passé ça ici ? Le joueur A a live est égal à faux. Eh bien, ce n'est pas faux, donc ça saute. Il passe à la suivante. Et juste ici. Bam ! C' est maintenant ce joueur Être en vie maintenant. Vous pourriez être en vie. Donc faux est faux. C' est vrai. Donc on a frappé ça juste ici. Donc, ce qui va se passer sur cette déclaration, c'est que ça va cesser de courir. Ça ne va même pas faire ça ici. Ça va juste dire Ok, c'est vrai. Allons donc là-dedans. Donc c'est ou Ok, fais ça. Et si c'est faux, essayez ceci et c'est faux. Essaie ça. Continuez à le faire jusqu'à ce que l'un d'eux soit vrai. Si aucun d'entre eux n'est vrai, ça le fera. Il entrera dans le bloc ici. D' accord ? Et vous pouvez en avoir autant sur ceux-ci sur la même ligne que vous le souhaitez. Bien sûr, votre code pourrait devenir plus complexe si vous commencez à le faire en tant que développeur professionnel , vous ne serez pas en train de faire plus de deux ou trois d'entre eux sur la même ligne. Ok, si tu fais ça, c'est probablement un meilleur moyen. Teoh, fais ta logique dans ton manteau. D' accord. Tellement cool. Donc l'un des membres de notre équipe est en panne, donc nous savons que nous sommes des déclarations fonctionnent. Cool. Donc aussi, une autre chose est, euh Eh bien, vous pouvez aussi faire, puisque c'est un tyran ici. Mais nous pourrions aussi le faire. On pourrait vraiment décoller, c'est faux, et on peut juste mettre un panneau de livre devant lui, ok ? Et ce que cela dit est le contraire de ce que c'est. Donc fondamentalement, joueur en direct égal. Les troupes disaient, si ce n'est pas vrai, si ce n'est pas vrai, alors allez dans cette déclaration ici. D' accord ? Donc c'est une autre façon de l'écrire,
mais nous allons le remettre à ce qu'il était juste pour l'amour. Clarté. Ici et vous n'avez pas besoin d'envelopper trop la tête autour de le faire. Ces autres façons de cette façon sont complètement bien et un peu plus lisibles. Parlons donc un peu plus de ces ALS état et peut-être faire un peu de mixage et correspondance. Ok, on veut tous prendre sa retraite à un moment donné. Voyons si nous sommes autorisés à prendre notre retraite et nous verrons si la sélection naturelle dans la nature ou ce que vous voulez appeler ça nous permet de faire. Alors. Je peux prendre ma retraite ? Ok, de notre âge est égal à 23 notre compte, c'est votre compte bancaire équivaut à 100 000$. Sans fin. Ajoutez encore une chose ici, Disons de notre riche oncle qui est mort, qui m'a laissé un héritage égal à faux. Euh, c'est intéressant. Vous pouvez faire des noms de variables qui sont vraiment longs. C' est plutôt cool. Disons que si le compte est supérieur à 70 000$. D' accord ? Et si l'âge est supérieur ou égal à, disons 60. D' accord. Donc si notre compte a plus de 70 000$ et que notre âge est supérieur ou égal à 60 ans ou si Rich Oncle qui est mort m'a laissé héritage égal à vrai. Très bien, donc c'est vrai. Rends ça un peu plus gros, ma fille. Ok, alors écoutons cet Oregon. Donc si mon compte est de plus de 70 000$, j'ai 60 ans ou plus, OK. Donc, si cela équivaut à vrai, ces deux-là ont construit ces deux-là ce vérificateur conditionnel. Donc si cette condition est vraie, et si cette condition est vraie, on va entrer ici pour que je puisse imprimer que tu puisses prendre ta retraite, accord. Alors, ou si l'oncle Rich est mort, qui m'a quitté ? L' héritage est vrai signifie qu'on a tout un tas d'argent. Et peu importe l'âge où ou combien est actuellement ou faire compte, parce que nous sommes sur le point d'obtenir une grosse somme d'argent. Alors maintenant, sauve-le. Donc, grader des comptes. Eh bien, mon âge. Oh, donc voici un problème. Donc mon âge n'est pas supérieur à 60 ans. J' ai 100 000$, mais je n'ai pas le droit de prendre ma retraite parce que mon âge n'est pas encore
assez vieux . Et mon oncle n'est pas mort malheureusement. Donc, je n'ai pas eu cette somme d'argent. Et si mon oncle regarde Sorry, je ne veux pas que tu meures. prendrai Jeprendraiton argent de toute façon. Ok, donc compte d'âge. Ok, donc nous savons que cela équivaut à la valeur par défaut. Pourquoi ? Parce que l'âge vieillit. Faux. Disons maintenant que j'ai 61 ans. Eh bien, c'est sorti pour être vrai. Tu peux prendre ta retraite. Ok, donc si le compte est supérieur à 70 000 et que l'âge est supérieur à 60 ans, je peux prendre ma retraite. Fantastique. D' accord. Super cool. D' accord, donc on prend sa retraite. Maintenant. Disons que nous retournons à l'âge de 23 ans sur notre compte. Le solde a 50$ dedans. Nous sommes un étudiant affamé qui vit des meilleurs ramen et des crêpes. Mélange de crêpes. Ok, Donc si le compte est supérieur à 70 000 et que l'âge est supérieur à 60 ans, vous pouvez vous fatiguer. Je ne prendrai plus ma retraite,
mais bonne nouvelle,
tout le monde. Je ne prendrai plus ma retraite, mais bonne nouvelle, L' oncle est mort et il nous a laissé comme un million de dollars. Je vois. Hey, on pourrait prendre sa retraite. Donc, même si mon âge est inférieur à 60 ans, mon compte est certainement inférieur à 70 000$. Euh, cette condition équivaut maintenant à faire vrai. D' accord, donc ce qui a été dit ici est ce que nous avons dit ici, c'est si ceci et cela est vrai. Donc aucune de ces trêves dans ce cas n'est fausse ? Ou voici le mot clé. Ou si oncle riche
qui est mort, qui a quitté l'héritage est vrai aller entendre ? Eh bien, ça arrive. Alors maintenant, on peut y aller. C' est ainsi que vous pouvez mélanger et mettre en correspondance les instructions et les vérifications conditionnelles avec ou des vérifications
conditionnelles. Et vous les utiliserez tout le temps dans votre revêtement. Donc, c'est conditionnel est la deuxième partie, et nous avons vraiment couvert une bonne compréhension de la façon dont cela fonctionne à son niveau le plus basique. Et donc vous vous connectez pour être un programmeur très fonctionnel, sachant ce que vous savez en ce moment.
22. Swift 2 Fonctions: une autre journée passionnante ici dans le monde de la programmation IOS. Et aujourd'hui, on va parler de fonctions. Les fonctions sont une autre composante essentielle de la programmation. Ok, vous allez les utiliser tous les jours comme programmeur, peu
importe la langue que vous utilisez. Donc je vais y aller et, euh, ouvrir un nouveau projet Exco. D' accord ? J' ai déjà, hum, le prochain fichier de code ouvert ici. Quelqu' un va déposer une nouvelle aire de jeux, et on va appeler ça Ah, fonction de
la ville. Toi. J' ai fait ce nom toute seule. D' accord. D' accord. Donc, bien sûr, ça nous donne ce mal à cordes. Bonjour. Playground supprimera cela. Et c'est construire notre toute première fonction. Vous utilisez le mot-clé funk pour ne pas être confondu avec la fonction, juste funk. Et on va appeler ça un funk A qui est funk avec le K et ils étaient dans un bon sens. C' est une fonction. Et il y a la fin de la leçon. Je plaisante. Bon, disséquons ça un peu ici, donc on a une fonction. Eh bien, c'est un nom de fonction, tout comme vous donnez un nom de variable tel que la barre. Ma variable est égale à quelque chose comme vous lui donnez un nom. Vous donnez ce nom de fonction afin qu'il puisse être réutilisé. D' accord. Et l'idée derrière une fonction est qu'elle effectue un type d'action. Ok, donc si vous deviez transformer un être humain en un exemple de pratiques de codage, une personne pourrait avoir ce qu'on appelle des propriétés et des fonctions, donc certaines des propriétés peuvent être l'âge, vous savez, euh, hauteur. D' accord. Tu sais, leurs propriétés. Personnalité personne. L' alité est en colère. D' accord. Ces propriétés et fonctions sur une personne peuvent être telles que marcher correctement, parler ou s'engager dans un combat. Ok, donc il y a une fonction. Nous avons donc une personne avec des propriétés et des fonctions pour les actions. Ok, donc c'est comme ça que les fonctions fonctionnent là. Comme des actions. Ils ont effectué un certain type d'action pour le compte de votre programme. Bon, c' est bon de les laisser là. Alors revenons et pour trouver Funk A.
Ok , on va juste imprimer une valeur. Donc on va imprimer. C' est ma première fonction. D' accord. Tout ce que tu es, eh bien, quoi ? Qu' est-ce qu'il fait ? Il ne met rien de bien, pour faire fonctionner une fonction, vous faites quelque chose appelé appeler une fonction funk. Un présentateur. Et maintenant ma fonction fonctionne Ok. Donc, même si ce code ici a été écrit. Ça ne fonctionnera
jamais jamais tant
que tu ne l'appelleras pas d'accord. Et sachez toujours que vous n'appelez jamais une fonction tant que vous n'avez pas mis une
parenthèse d'ouverture et de fermeture dessus. Donc tout ce qu'on fait, c'est qu'on appelle funky. On l'appelle ainsi, ce moment dans le temps arrive juste ici. En fait, il va sauter ici et à la ligne 6. Et ça va l'imprimer pour nous. Ok, donc on vient d'appeler notre première fonction. Et les fonctions sont vraiment simples Est-ce que ça va ? Il a un nom, le funk devant lui. Et vous l'appelez pour effectuer un type d'opération. Ok, un type d'action. Faisons quelques fonctions supplémentaires. Funk, funk va bien. Et je les nomme tout ce que je veux. Tu peux les appeler comme tu veux. Les analystes ont défini le funk. Tu vois, on a trois fonctions. D' accord ? Maintenant, les fonctions peuvent appeler d'autres fonctions. Ok, donc ce qu'on va faire, c'est dire qu'appeler funk va bien, et ah, mettre ça là. Et puis ça allait appeler funk, vois ? Et celui-ci va imprimer autre chose à dire. Je suis la meilleure fonction de tous. C' est discutable. Ok, très bien. Maintenant rien ne se passe. C' est parce
que nous n'avons pas encore appelé les autres fonctions. Donc c'est faire ça maintenant. Funk. Notez comment il reconnaît même la fonction. Même si c'est en dessous. Peu importe si c'est en dessous ou au-dessus. Ils se reconnaissent tous, ce qui est vraiment cool. Ça s'appelle Funk, vois, et c'est bien sûr que rien n'appellera. , Bien
sûr,il se passe
rien. Eh bien, nous n'avons pas encore appelé la première fonction funk A Et comme nous l'appelons aller appeler funk. Tu vois, je suis la meilleure fonction de tous. Ça l'a fait ? Ah. Donc, là, vous avez il fonctionne dans sa forme la plus simple. Ok, maintenant laissez-moi démontrer un non, non. Ok, vous pouvez en fait vous mettre dans ce qu'on appelle une boucle infinie, et vous pouvez faire planter votre programme. Oh, non. Faisons-le. C' est toujours amusant de faire planter les choses. Comment mon oeil provoque un puits infini, que se passe-t-il si j'appelle Funk A du funk ? Voyons, réfléchissons à ça ici. Comme vous pouvez le voir, il va et il va et il peut éventuellement s'arrêter et se casser, ou mon programme peut se bloquer. Euh, mais c'est une boucle infinie, accord ? Et ce qui se passe est de rappeler la fonction A qui appelle la vue de la fonction, qui appelle la fonction. Vous voyez, qui revient à fonctionner un et l'appeler encore et encore et encore et encore et effet juste dans ces quelques moments de moi parler, il est passé par 19,355 fois. Les ordinateurs sont très rapides. Allons-y et enlevez ça donc vous ne voulez pas de boucle infinie, alors essayez de ne pas le faire. Et en fait, ça va s'écraser pour qu'il puisse se rétablir. Il ne peut pas. On verra ici. Mais c'est un parfait exemple de ce qu'il ne faut pas faire. Donc, de la fièvre Trouvez votre programme ou ex code gel. Ok, il est possible que vous vous mettiez dans une boucle infinie. Ok, donc il y a des fonctions à son niveau le plus basique, mais ce n'est pas vraiment super utile. Je fous un maladroit, c'est que tu sais, quand tu peux utiliser ça dans le monde réel. Alors parlons,
euh, euh, d'autres exemples du monde réel. Disons que vous avez un compte bancaire. Compte bancaire loin équivaut à $500.50. Disons que nous voulons faire un achat. On va acheter quelque chose. On pourrait utiliser une fonction pour ça. Ok, disons
que j'ai notre montant de l'objet est égal à 200 $12.23. Et alors quoi ? Nous connectons les nouvelles, nous pouvons dire que Funk fait l'achat, OK. Et ce qu'on peut faire, c'est qu'on pourrait bien sûr, tu voudras obtenir une validation ici pour certains. Je ne vais pas appeler le traitement de l'air, mais une certaine logique. Ok, Donc si le compte bancaire est supérieur ou égal à l'article,
évidemment, nous voulons nous assurer que vous n'avez pas les moyens de le faire. Donc, si nous pouvons nous le permettre maintenant, nous pouvons dire que le compte bancaire moins est égal à la fonte
des articles, bien sûr. Moins égal est juste abrégé pour le compte bancaire est égal compte bancaire moins montant de l'article. Maintenant, c'est plus de code que nous ne voulons écrire le même principe. Ok, alors revenons en arrière et disons que moins est égal au montant de l'objet. D' accord ? Et comme vous pouvez le voir, une fois qu'il est décidé de réfléchir pour une seconde ici compte bancaire. Oh, ce n'est pas l'impression pour nous. Ceci est imprimé ici. Imprimer. Compte de remerciement. Oh, tu sais quoi ? Si le compte bancaire est supérieur ou égal à je suis le montant. Compte bancaire moins est égal au montant de l'article. D' accord. Euh, si idiot. Je n'ai même pas appelé la fonction burger. Je dois appeler la fonction. Bien sûr. Je t'explique juste ça, et je ne l'appelle même pas. Votre fonction ne s'exécute jamais jusqu'à ce que quelqu'un l'appelle avec les parenthèses à la fin. Et c'est là. Remarquez comment exploser, Au moins dans le jeu de couleurs par défaut, il le rend rose. Ça veut dire que vous appelez la fonction. Donc nous venons de faire un achat. L' équilibre est tombé comme un excellent exemple de comment,
euh, euh, comment utiliser la fonction dans les ensembles du monde réel. Maintenant, nous n'utilisons pas les fonctions de la meilleure manière possible à ce stade. On a des variables ici, d'accord ? Et c'est les manipuler, mais fonctionne autant qu'ils le peuvent. Ils devraient pouvoir rester seuls. Ce qui signifie qu'ils ne devraient pas avoir à compter sur des données qui sont au-dessus. D' accord. La fonction doit être autonome, si possible. Et donc on va parler de ce qu'on appelle les paramètres de fonction, OK ? Les paramètres de fonction rendent les fonctions plus réutilisables. D' accord ? Et il les extrait de la manipulation directe des données dans votre programme. Ok, alors essayons encore ça. Disons à la place que c'est cette fois. Appelez cette tentative d'achat. On ne sait pas si ça va vraiment faire l'achat. Pas surtout si tu n'as pas assez d'argent. Ok, on va essayer d'acheter. On va mettre une variable ici nommée Amount. D' accord. Et on va le faire de type double. Parlons de ça ici. D' accord ? Donc la même chose est, avant de lui donner un nom que nous avons défini C'est une fonction, mais voici une chose différente. Alors qu'avant il était vide ici. Maintenant, nous mettons quelque chose ici, et c'est ce qu'on appelle un paramètre. Ok, Qu'est-ce que c'est quand quelqu'un appelle une fonction, d'
accord, ils peuvent déposer un élément dans cette variable afin qu'ils puissent y déposer un élément, et ensuite ils peuvent le faire. La fonction peut utiliser ces données. Donc, par
exemple, si je voulais appeler cette fonction, je pourrais dire tentative,
achat, achat, je pourrais passer le montant de l'article, ok. Et puis je peux réellement imprimer le montant. Ok, alors parlons de ce qui se passe ici. Donc, juste ici,
en fait, appelant la fonction et ils tombaient dans cette variable. Bien sûr, il
s'agit d'un projet de loi de type double. Nous ne l'avons pas défini explicitement, mais il le sait automatiquement en raison de la valeur que nous lui avons assignée. Donc on va passer un double. Tu es genre, attends une minute. Il s'agit du montant de l'article, mais cela indique le montant. Quoi ? Que se passe-t-il ici ? Eh bien, que se passe-t-il ? Ok, est-ce que le montant de l'article est déposé dans le compartiment juste ici et est renommé en montant afin qu'il puisse être réutilisé. Ok, alors laisse-moi dessiner. Dessinez quelques choses ici. Donc c'est la ligne qui s'appelle d'abord ici. Ok, ça s'appelle d'abord. Bon, alors ce qui se passe c'est ah, si tu passes ce paramètre ici, tu vas beaucoup entendre ça. Vous transmettez une valeur ou une variable dans une fonction, donc nous allons passer ce montant d'objet, va le déposer ici. Donc on l'a attrapé,
on l'a laissé tomber, et puis il arrive juste ici. Et puis on dit :
Hey, Hey, donnons-lui un nouveau nom. On va appeler ça le montant. On le renomme, d' accord ? Et ensuite on pourrait faire ce qu'on veut avec ça ici. C' est ainsi que fonctionnent les fonctions. Vous pouvez passer des choses dedans, et il le renomme presque comme un alias et vous permet de ah, de jouer avec elle. Tellement cool. Maintenant, dans ce cas. Ok, eh bien, on passe le montant et on lui donne un nom. Nous avons en fait ceci est un let Ceci est une constante que vous ne pouvez pas modifier. Donc c'est en fait la copie. Ok, pour les types de valeur tels que le double dans les choses de chaîne flottante comme ça. Ok, pour ces types de valeur, quand vous les transmettez,
il en fait une copie. Et vous ne pouvez pas modifier la version d'origine. Tu es genre, quoi ce gars parle, c'est de devenir fou. Eh bien, allons,
euh, essayons ça ici. Donc si je sais que le montant de l'article est passé, non ? Donc, disons que je voulais être un petit programmeur méchant et a changé le montant de l'article à partir d'ici . Tu sais, je pourrais le faire comme ça. Bien sûr que je suis un montant égal à cinq, n'est-ce pas ? Je pourrais vraiment faire ça. Euh, et ça va y accéder, mais on parle de ce type ici. Montant. Ok, donc on a passé le montant de l'article. Ici, il entre ici. On l'a renommé. Voyons si on pouvait faire la même chose avec eux. parce que le montant. Si nous nous souvenons, Si nous imprimons le montant de la valeur est égal au montant de l'article. Donc, comme, OK, c'est pareil, non ? Eh bien, que se passe-t-il si nous essayons de modifier le paramètre lui-même ? Le montant est égal à cinq points. Oh, qu'est-ce que ça dit ? Impossible de signer une valeur ou Désolé. Impossible d'affecter au montant de la valeur est une constante de let. Ooh, c'est intéressant. C' est vraiment intéressant. Et puis, euh, ce qui est vraiment intéressant, c'est que ça me donne la possibilité de faire de mon paramètre une variable. Donc par défaut, si je n'ai rien là-dedans, ça va en faire une constante. D' accord ? D' accord. Mais si j'ai mis un bar là-dedans, si j'avais pu être là, accord, donc je peux le changer maintenant. Voyons si je peux. On vient d'être imprimé. Je n'ai pas l'impression de voir ce que c'est, n' est-ce pas. Donc j'ai eu le montant est toujours le même. Donc, ce qui s'est réellement passé ici, c'est cette fois que nous l'avons effectivement copié, et quand même, mais nous avons fait une variable. Maintenant, nous pouvons le modifier. Maintenant, c'est toujours la copie, et cela change. Ça ne va pas changer. Nous pouvons le copier, gâcher avec elle, et parfois vous voulez que dans la plupart des cas, garder laissé est probablement ce que vous voulez dio. Ok, donc c'est ah, paramètre. Alors allons-y maintenant. Ne pensons pas au problème que nous essayons d'auto-essayer d'acheter. Donc, si le compte bancaire est supérieur ou égal au montant Ok, alors allons-y. Et ah, c'est un compte bancaire moins égal au montant d'autre. Euh, imprimez, hum, avec suffisamment de fonds. Donc vous détestez que vous soyez si excités d'aller chez McDonald's, prendre mon hamburger ,
et il y avait ,
et il y avait
20 personnes derrière vous. Et puis vous balayez votre carte, et c'est comme le déclin de la voiture. Vous êtes gêné de quelque façon que ce soit. Telle est la vie. Exemple du monde réel. Comme je l'ai dit sur vous les gars pourraient être ceux pour imprimer ces messages désagréables afin que nous merveilleux et les utilisateurs puissent profiter de la douleur de cette expérience. Ok, donc les fonds sont insuffisants. Très cool. Changeons le melon et voyons si notre autre déclaration fonctionne. Donc, je ne le montant est ah, 600$. Ok, mes propres fonds
sont insuffisants. Ok, maintenant tu es gêné dans la vie. Bon, donc on fait quelque chose qui est très utile ici. Ok, c'est tellement mauvais. Eh bien, vous savez, je pense que nous pouvons reconsidérer cela même un peu pour faire un meilleur code mo. D' accord ? Ça va supprimer ces trucs ici. D' accord ? Um d'accord. Et Ah, je n'estime pas que ça a l'air bien. Ok, alors
allons vérifier d'abord. Vous savez, on parle de quand vous faites la queue, vous faites glisser la carte d'abord, c'est avant même qu'elle essaie de retirer de l'argent de votre banque. Il vérifie juste pour voir si vous pouvez réellement faire l'achat. D' accord. Alors faisons une nouvelle fonction appelée peut acheter. Ça prend et une fonte comme avant. D' accord, mais cette fois Whoa. C' était son truc bizarre de l'époque. OK, donc nous avons plus d'appeler une fonction, mais une fonction peut-elle retourner quelque chose ? Eh bien, oui, il peut. Nous pouvons faire en sorte que notre fonction retourne quelque chose. Fais celui qui l'appelle. Ok, donc dans ce cas, ça dit que notre fonction doit retourner un booléen. Ok, tu peux mettre n'importe quel type ici. Tu veux forcer. Peu importe. Peut-être un int dans notre cas, nous voulons retourner un booléen peut acheter. Ok, alors quoi ? Nous pourrions dio son code similaire avant. Si le compte bancaire est supérieur ou égal au montant. C' est un retour. Vrai d'autre part. Retour. Faux. Ok, aussi, voici quelque chose d'intéressant. En fait, nous n'avons même pas besoin d'une déclaration de retour ici sur l'autre. Je suis désolé. On n'a même pas besoin de la déclaration d'autre ici. On pourrait juste dire « retour ». Faux. Ok, pensez-y ici une seconde. Si c'est vrai, ça va arriver ici. Et une fois que vous aurez touché une déclaration de retour , d'
accord, ça va quitter votre programme. D' accord ? Pas votre programme, mais votre fonction. Donc dès que vous frappez ce retour, il retournera un booléen, et cela ne sera jamais exécuté. Je pourrais avoir 5000 lignes de code ici, et vous ne verrez jamais la lumière du jour. Et c'est parce que le moment où vous revenez à l'intérieur d'une fonction, vos fonctions sont mortes. C' est fait. Et ça revient, OK, ça retourne quelque chose. Très bien, donc dans ce cas, nous revenons vrai, donc nous n'avons pas besoin de déclaration elfe une déclaration else parce que,
euh, euh, eh bien, nous n'arriverons ici que si ça n'est pas appelé. Ok, donc peut acheter. Bon, commencez à avoir du sens. Bien. Bien. Content de l'entendre. Des chats. Alors voyons ici. Donc, nous vérifions si nous pouvons acheter. D' accord ? Et on a un objet de passage. Et, hum, faisons aussi une autre fonction pour réellement traiter l'achat. Donc, cette fonction serait appelée chaque fois que nous avons réellement dépassé la, euh, la partie peut acheter. Et c'est là que ça sort de votre compte bancaire. Fantôme, l'à l'institution où vous dépensez de l'argent à, donc processus acheté, Prend un double. Et regarde. Cette fois, j'ai appelé un m t. Comme je l'ai dit, vous pouvez nommer vos paramètres, ce que vous voulez. D' accord. Et on est ici avec juste un compte en banque. Moins est égal à MT. D' accord. Non, cela est appelé, bien
sûr encore parce que nous n'avons pas vraiment appelé la fonction. Nous ne les avons définis que. D' accord ? On doit les trouver. Alors allons-y et traitons-le dès maintenant si je peux acheter. D' accord. Et disons le montant de l'article. Attends, qu'est-ce qui se passe ? Attendez. Pourquoi tu mets un if devant la fonction, je pensais que tu l'as appelé. Et puis c'est comme ça que tu l'as fait. Eh bien, la même chose ici. En fait, nous appelons une fonction. On appelle la fonction d'achat de canettes, n'est-ce pas ? Et rappelez-vous comment il a dit que les fonctions peuvent retourner des choses. Donc, dans ce cas, peut acheter est de retour un booléen. Ok, donc ce qu'on dit en fait, c'est qu'il retourne un vrai faux ou que le tracteur dit est vrai ou faux ? K. Regarde ça. Si et si je disais, euh loin, euh, ce qui est dans ce égal ne peut pas faire égal à un droit de fonction peut acheter en passant le montant de
l'article. Jetons un regard faux. Donc, cette variable a la valeur tombe dedans. Ok, donc lorsque vous affectez une fonction à une variable, vous n'êtes pas réellement signé en affectant la fonction à cette variable. Ok, vous risquez en fait d'assigner la valeur de retour de cette fonction, qui est ceci ou ceci. Et c'est ce qui se trouve à l'intérieur. C' est pourquoi nous pouvons utiliser la fonction comme une puce dans l'expression ici et le faire un contrôle dessus. Dites, si peut acheter a vu, ils seront sûrs si aussi, si nous pouvons acheter, allons de l'avant et traiter,
traiter, traiter, acheter et nous allons passer le montant de l'article. D' accord. Sinon. Ok, sinon nous allons juste imprimer Teoh avec suffisamment de fonds. Ok, alors voyons si ça marche. En rappelant si peut acheter, nous traitons l'achat. On n'a pas assez d'argent. Ça dit, Hey ,
écoute, ça marche comme avant. Voyons si on met un 400 ici et,
Ah, Ah, je pense que ça a fait l'achat du processus. Hum, et c'est l'impression ici. Imprimer. Vous avez fait un achat du montant sont cool. Petit, uh, truc de chaîne d'insertion
variable ici, et nous allons juste dire, euh, ouais, ok. A moins de fermer nos parenthèses. Très bien, donc vous l'avez. Regarde ça. Donc on a commencé ici. Si peut acheter. D' accord. Donc, si nous pouvons acheter ceci,
ce que nous pouvons, alors allons de l'avant et appelons cette fonction pour traiter l'achat, qui se passe ici. Et puis vous avez fait un achat de 400$ qui semble fonctionner. Alors, voilà. Vous avez appris les paramètres. Vous avez appris comment les fonctions peuvent renvoyer des choses. Et faisons un de plus. Faisons encore une chose de retour ici. Disons que vous avez une barre de cordes. Le nom est égal à Sweeney Sweeney Todd. Une minuscule là. Et disons qu'on avait besoin de ça, euh, euh, enceinte sur un panneau d'affichage et qu'il doit être tout en majuscules. Eh bien, on peut écrire une fonction pour cette gamme pour dire que funk obtient la version supérieure, ok ? Et ah, nous pouvons faire est qu'on pourrait juste dire chaîne d'entrée. Maintenant, la chaîne est livré avec un joli petit truc sympa pour nous. Une chaîne vient avec une belle petite propriété qui nous donne de toute façon,
donc nous sommes en quelque sorte de réinventer la roue ici, mais c'est juste à des fins de démonstration à nouveau. Donc nous allons passer à l'industrie la chaîne d'entrée, et il va nous renvoyer la chaîne en majuscules. Est-ce que ça a du sens ? En passant la chaîne d'entrée, ça va faire sa magie. Ça va nous redonner une nouvelle force. Donc d'accord, je peux dire retour chaîne de caractères en majuscules point d'entrée. Maintenant, voici ce que je te disais sur cratérante String a une propriété
cratérantesupérieure. C' est une propriété. Donc ce qu'il fait, c'
est que c'est que c'est en fait la propriété calculée derrière la chaîne de scènes va rendre vos affaires majuscules. Et donc nous n'aurions pas vraiment besoin de faire cela à l'intérieur d'une fonction. Nous pourrions en fait simplement faire la chaîne propriétaire elle-même. Mais à des fins de démonstration. Ok, donc vous êtes passé à égarer dans renvoie une chaîne. Bon, donc si je dis que le nom de var supérieur est égal à Ok, obtenez une perversion et je passe. Nommez le nom ici. Ok, donc cette variable équivaut à obtenir une perversion. Je passe ce nom et il va en être de retour. Regardez que c'est maintenant tout en majuscules. Ok, donc notre fonction a pris une chaîne et elle a fait de la magie avec elle, a fait quelques opérations dessus, puis elle est revenue. Il a renvoyé la version majuscule. Plutôt cool, hein ? Donc maintenant, nous avons parlé de rendre les choses super cool. Parlons d'avoir plusieurs paramètres approchaient de la fin ici, ce qui est bon. Vous apprenez presque tous les concepts de base des fonctions ici, et plus vous vous entraînez avec eux, mieux vous
le ferez descendre. Alors, euh, mieux c'est. Le vrai truc est de savoir quand et comment les utiliser. Pas nécessairement si intact, Donc il faut juste de la pratique. Alors allons de l'avant et, euh, parlons de plusieurs paramètres ici. Disons que nous avons un jeu, ok et a plusieurs joueurs dans Chaque joueur a un score, et nous voulons juste une fonction pour déclarer qui ? Les gagnants. Celui qui a le score le plus élevé est le gagnant. OK, donc le gagnant funk ik flare. On va passer au premier joueur de paramètre un score de type int. Ok, joueur, soyez le score de type int. D' accord. Et on pourrait juste faire un peu de logique, sinon, comme on l'a fait avant. Si le joueur a un score supérieur au score du joueur B. OK, lecteur
d'impression, un vent. , Ok, sinon si le joueur dit que votre score d'abeille est supérieur à celui d'un joueur d'impression de score B gagne. D' accord, sinon. C' est quoi l'autre ? C' est une cravate. Bien sûr. Imprimez le jeu. Le jeu est à l'arrêt. Ok, pas si mal. On ne l'appelle pas, bien
sûr, parce qu'on n'a pas encore appelé. Alors faisons ça maintenant. Déclarer vainqueur. Allons de l'avant et mettons un score et donc le joueur va avoir 33 ans. Le joueur B aura 40 ans. Ce qui va être le joueur d'impression gagnera, bien
sûr. Mais si le joueur A est 50, nous allons nous assurer que fonctionne le joueur A gagne ce à 50 et 50. Le jeu est à l'arrêt. Donut. Ah, si super cool. Vous pourriez avoir plusieurs paramètres. Remarquons juste une chose ici, donc quand vous avez mis votre premier paramètre, il n'a pas mis le nom ici. Remarquez comment c'est Player X verbal ici. Il ne le met pas avant sur le premier paramètre. Ça ne met pas ça là-dedans. Tu ne le mets pas. Vous ne mettez pas le nom de la variable dans l'appel de fonction réel. Ok, Mais sur le second et les paramètres suivants, il faut que vous mettiez le nom réel du paramètre. OK, donc ne soyez pas confus. C' est juste la façon dont Swift fonctionne. Donc, au lieu de le voir comme ça,
Ok, Ok, contre 50 virgule 50. La deuxième amorce sur le travail nécessite que le nom du paramètre étant là, puis vous passez la valeur ici. Ok, donc c'est la seule différence. Ok, donc c'est comme ça que vous mettez une, euh, fonction avec plusieurs paramètres. Vous pouvez avoir autant de paramètres que vous le souhaitez. Bien sûr, tu ne veux pas le coincer avec des tonnes. Si vous faites cela, vous devrez peut-être refactoriser votre code et comprendre si vous le pouvez. Mieux module se pose des choses, mais ,
um, c'est ce qui est des fonctions en un mot. Comme les bases et les principes de base de celui-ci prend des paramètres. Vous l'appelez, bien
sûr, en appelant le nom et en mettant des parenthèses après,
il peut retourner quelque chose. Ok, vous pouvez savoir où est un retour. Vous pouvez retourner quelque chose d'une fonction. Vous pouvez l'affecter à quelque chose. Vous faites toutes sortes de choses amusantes avec la fonction. Et j'espère que vous pouvez voir un aperçu dans le monde réel comme comment ils pourraient fonctionner dans un programme. Et vous pourriez être sûr que les programmes de votre banque ont des choses comme l'achat de processus, des choses comme ça. Bien sûr, il va y avoir beaucoup plus complexe et sécurisé et les choses, mais là vous allez les fonctions.
23. iOS 9 : les bases de la mise en place automatique: bienvenue à tout le monde à une autre belle journée dans le monde du développement IOS Aujourd'hui, nous
allons parler de mise en page automatique, la possibilité de disposer les choses dans plusieurs tailles d'écran afin qu'ils soient beaux et ne pas être
coupé de l'écran ou étirer ou des choses comme ça. Donc nous allons juste plonger maintenant, avoir
déjà le code X ouvert juste ici. Et je veux juste vous montrer une nouvelle façon de créer un nouveau projet. Donc, si vous avez un projet existant ouvert, vous pouvez aller déposer un nouveau projet, accord ? Et une seule application de vue est très bien. Allez-y et appelez ça comme vous voulez. On va appeler ça les contraintes de mise en page automatique, ok ? Tout le reste ici a l'air assez bien. Et je vais juste le mettre sur le bureau, et, euh, on
y va. Et maintenant, j'ai deux projets ouverts. Alors débarrassons-nous de celui-ci ici,
et, euh, euh, on a l'air très bien. Ok, donc je vais rendre ça un peu plus grand. Parlez de quelques choses différentes ici. Donc tu m'as vu naviguer un peu dans le passé et tu allais leur expliquer un peu plus, évidemment, ici dans la main gauche, côté. Vous avez un tas de dossiers. Ok, c'est représentatif de ce qui se trouve dans votre structure de fichiers sur votre ordinateur. Nous avons quelque chose appelé délégué app dot swift. Nous obtenons un point de contrôleur de vue Donc, si c'est votre fichier de code qui est corrélé avec votre principal , c'est pour vous récompenser contrôleur. OK, et il y a ton Story Board, qui ouvre ce qu'on appelle Interface Builder. C' est donc un storyboard et un constructeur d'interface, et vous avez un écran de lancement ici. Ok, c'est
ce qui va être lancé à partir de votre application. Les premiers chargements au moment de l'exécution. Et il y a d'autres choses aussi, donc si vous passez la souris ici sur le côté gauche, c'est un spectacle. L' éditeur standard. Donc Ok, l'éditeur standard signifie que c'est ce que vous voyez ici. Ok, c'est un éditeur standard. Si je clique sur Afficher l'éditeur d'assistant, cela ajoute une autre douleur ici dans le côté droit. Donc, l'idée derrière l'éditeur assistant est que vous pouvez travailler avec une partie de l'Europe comme constructeur d'
interface et une autre partie, qui est le code sur le côté droit. Revenons à la norme et ensuite par ici. On a le contrôle de Birgit. Et le nom officiel qu'il dit est montrer cet éditeur de version. Et cela vous permet de regarder votre code côte à côte à partir de différentes versions. Nous en avons déjà parlé, et cela vous permet de comparer les différentes modifications que vous avez apportées dans différentes versions sur gets. Vous pouvez regarder ces changements ici. temps réel. Très cool. La plupart des idées. La plupart des environnements de développement intégrés, vous savez, offrent quelque chose comme ça, c'est vraiment cool. Donc je vais retourner au mode éditeur standard ici et, euh, aussi remarquer ici dans votre storboard. Juste rapide. Notez que vous utilisez une souris. Si ce n'est pas une malice magique, c'est dur de se déplacer. Apple a balayé les fonctionnalités ici. Donc, pour glisser les doigts vers la gauche et la droite est ce qui se déplace autour, vous pouvez le faire sur une souris magique est bien aussi. Ok, juste excitant. Maintenant, par ici, sur le côté droit. Ok, on a le navigateur. Ok, donc ces fichiers dont je parlais, ça s'appelle le Navigator K. Cette section s'appelle le Navigateur, et ici, nous avons la zone de débogage. Donc, quand vous commencez à exécuter le code excuse va commencer à imprimer toutes sortes de choses à cela ici . C' est comme votre console. Ainsi, vous pouvez regarder, Regardez Ayers et les bugs et les choses que votre imprimé à l'écran. Et donc ces cacher et montrer ces choses dans le côté droit est la section utilitaire et
a des informations différentes en fonction de l'écran que vous êtes ici. Mais en gros, c'est le côté droit. Ok, c'est comme ça que tu peux te déplacer, euh, dans la coke X. Ok, donc on a déjà construit quelque chose de simple. Et pour comprendre comment construire de bonnes applications qui sont des écrans multiples raisonnables, nous
devons comprendre Auto Layup. Maintenant, ce que nous avons fait jusqu'à présent,
c'est ,
c' nous avons cliqué sur notre contrôleur de vue ici, ok ? Et puis on a dit taille 4,7 pouces, et on est genre, Ok, c'est un iPhone six. Et peut-être qu'on a mis une étiquette sur toi, non ? Et peut-être qu'on, euh peut-être qu'on l'a mis ici. J' ai fait un très grand et centré et dire qu'on pourrait dire un double. Cliquez dessus et dites, vous savez, je suis une étiquette, accord ? Et avec le centre droit. Ok, eh bien, ça a l'air génial, mais ça a vraiment l'air génial ? Est-ce qu'on le sait vraiment ? OK, donc nous savons que ça a l'air génial sur iPhone six parce que c'est un iPhone 63 Que se passe-t-il si je change mon simulateur ici pour un iPhone pour S nous allons qui arrive ? Je ne sais pas. Je ne suis pas sûr de ce qui va se passer, mais voyons. C' est un bâtiment et ça arrive. Prendre son temps doux quelque part. Allons l'attraper. Forçons-le à l'écran. On y va. Et encore une fois, c'est un peu gros, donc je vais appuyer sur la commande pour le réduire. Oh, mon Dieu. Qu' est-ce qui se passe ici ? Donc, je suis un label n'était pas sénateur, au fait, juste disparu. Voici un steak de préservatif que vous pourriez faire. Et je l'ai fait moi-même. Et c'est l'une des raisons pour lesquelles nous n'avons pas de leçons scénarisées ici parce que je veux être capable de voir le type d'erreurs que vous pouvez avoir et savoir comment les corriger. OK, donc fondamentalement, je l'ai mis dans l'écran de lancement, donc ne montre que ce lancement. Alors, voilà. Tu dois voir ce qui s'est passé sur un écran de lancement. Je suis un label, mais nous le voulions sur son storyboard principal ici avec notre contrôleur principal. Alors, euh, on
y va. Et ici, nous pouvons aussi aller de l'avant. Et comme vous pouvez le voir, on peut le changer. Teoh un iPhone 4,7 pouces. Mettez l'étiquette ici je suis une étiquette au bon endroit. D' accord, on ne sait pas si c'est une vraie déclaration pour l'instant. Ceci est dans une disposition iPhone six sur le contrôleur de vue. C' est une mesure simulée que nous avons définie. Donc si je le construis à nouveau sur un iPhone pour nous, ok, est-ce que cette étiquette est au bon endroit ? La réponse est non,
ce n' est pas le cas. Et il est donc très commun pour un nouveau développeur de mettre les choses à l'écran et juste
espérer par magie qu'ils travaillent sur l'écran. dit que vous n'avez peut-être qu'un iPhone six depuis que vous le testez et que vous êtes comme,
Oh, Oh, ça a l'air génial. Et puis vous sortez de l'APP Store dans presque tout le monde se plaint. C' est gentil. Cela ne fonctionne pas bien parce que vous avez besoin de tester plusieurs tailles d'écran, donc c'est ce que nous allons faire, nous allons trouver un correctif. Donc la première chose que nous pouvons faire est de résoudre ce problème que nous avons en ce moment, accord ? Et je veux faire un commentaire que les métriques mexicaines simulées ici, ils sont simulés . D' accord ? Cela ne signifie pas nécessairement, euh et bien, cela signifie que ce que vous voyez ici est cette taille d'écran que vous supportez, mais cela ne signifie pas nécessairement qu'il supporte toutes les tailles d'écran. Et donc ils recommandent en fait sur l'application que vous venez d'utiliser la taille inférée par défaut, et vous êtes juste bizarre. Il ne ressemble pas à un iPhone ou à un iPad. Eh bien, l'idéal ici, l'idée ici est que vous prenez toutes vos commandes, vos composants, et vous les étalez à l'écran en utilisant ce qu'on appelle des contraintes. Ok, vous les étalez, et puis cela fonctionne sur toutes les tailles d'écran. Indépendamment de la résolution réelle sur laquelle il est placé en raison des contraintes que vous avez imposées dessus. Et peut-être que ça n'a pas de sens en ce moment, mais on va le démontrer. On va le démontrer. Donc, un moyen rapide de savoir à quoi ressemblera votre application à plusieurs tailles d'écran est d'utiliser prevue. Ok, c'est un outil très puissant. Donc ce que je vais d'abord faire, c'est éteindre le côté gauche, le navigateur ici, éteindre pour qu'on ait plus d'espace à l'écran. Je vais bouger ça maintenant. Je vais cliquer sur ce double cercles ici. L' assistant rédacteur en chef. OK, il suffit de cliquer dessus et de l'activer. Maintenant, c'est toujours douloureux, et nous ne voulons pas voir le code. Je sais que nous voulons voir quelque chose qui s'appelle Prevue, donc si vous allez par ici vers dit automatique et si vous dites quelque chose de différent, c'est bon. Euh, assurez-vous de cliquer sur le lien. Les deux anneaux vont jusqu'ici pour prévisualiser OK en bas. C' est un peu dans des endroits bizarres en quelque sorte frapper et aller à droite, et j'ai démissionné. Le storyboard principal et bam. Ok, voici un iPhone de quatre pouces. Ça montre à quoi ça va ressembler. Voici quelque chose de vraiment cool. Je peux cliquer sur le plus par lui, et je peux commencer à ajouter différentes tailles d'écran. Voyons voir à quoi il ressemble sur un iPhone six, En passant, si vous ne savez pas, j'ai 4.7 pouces est iPhone 65.5 pouces. Six plus les quatre pouces comme iPhone, cinq en plus et 3,5 pouces est iPhone pour s et plus tôt, Bien sûr, j'ai eu son iPad. Et, euh, donc on va aller de l'avant et cliquer sur l'iPhone 6. Ok, regarde ça. Donc ça a l'air bien. Et iPhone six, mais un iPhone pour son Pas si nous pouvons réellement voir les deux écrans. On peut aussi le faire tourner ici aussi, et voir ce que je
ressens, Oh, ressens, Oh, eh bien, pourquoi est-ce qu'on le coupe ? Eh bien, on peut minimiser ça pour faire plus d'espace ou si je double-clique, ça rendra ces choses petites. Malheureusement, il n'y a pas, euh, sans avoir, ah, souris
magique ou, ah, tapis de
piste. n'y a aucun moyen de zoomer parfaitement à moins que vous ne pincez le zoom
sur votre trackpad ou sur votre souris magique, ce
qui est ce que je viens de faire en ce moment et ainsi de suite deux doigts de zoom, et vous devez le faire ici dans l'espace blanc. Des trucs tellement cool. Nous pouvons voir à quoi ça ressemble sans avoir à cliquer sur ce bouton ici, qui va vous faire gagner beaucoup de temps. Ok, donc d'abord. Allons chercher ce centre d'étiquettes où il doit être. Donc si je l'emmène et que je le déplace ici au milieu, voir comment les lignes le centrent pour que vous puissiez le mettre en place. Mais ici, c'est hors de l'écran. Comme ce que c'est Go Wed. Pourquoi ça ne marche pas ? Eh bien, c'est parce que ce que vous faites ici, dans cette toile de
forme libre, ne sera pas forcément exactement ce que vous voyez ici sur le
côté droit . D' accord ? Vous devez utiliser des contraintes. Et parlons de ça maintenant. Donc les contraintes sont ce que vous liez. Qu' est-ce qui servait à lier des éléments à d'autres éléments ou à l'écran, ou à donner de l'espacement et des choses comme ça ? Donc, si vous regardez ici en bas, d'
accord, accord, il y a des piqûres frappées. Donc ce qu'on veut faire, c'est qu'on veuille épingler ce type. D' accord. , c' Ce qu'on peut faire,
c'est dire, , je veux qu'il soit en haut de l'écran. OK, donc si vous si je clique ici, ai
perdu ici, nous allons l'ajouter à nouveau. On y va. Donc, si je clique sur ce bouton et l'épingle 14 en haut. Il va être là pour rester correct sur toutes les tailles d'écran. Ok, 14 du haut. OK, alors ajoutez une contrainte. C' est une contrainte. C' est un qui ne fait que changer, mes potes. On va l'ajouter à ça. Toi, j'ai étiqueté qui est ce que c'est ici. Ok, donc il est maintenant ajouté. Mais attendez, il a déménagé ici vers la gauche, et vous pensez , pourquoi l'épingler en haut le déplacer vers la gauche ? Eh bien, quand vous n'avez pas toutes les contraintes en place et juste peut-être qu'une mise en page automatique fera choses
bizarres dans les coulisses contre votre roue et votre choix, et c'est juste comme ça. Nous devons donc rassembler toutes les pièces pour que cela fonctionne. Et pour l'instant, vous pouvez voir qu'il y a une petite icône bleue là-bas maintenant, et ça dit, Hey, je suis épinglé en haut maintenant la partie suivante, c'est qu'il faut qu'il soit centré au milieu, et il y a quelques façons de le faire. On va le faire d'une façon, donc je vais cliquer sur cette autre icône ici. Icône d'alignement. D' accord. Et je vais dire Ok, je vais dire horizontalement dans le conteneur. D' accord ? Ce que cela va faire, c'est qu'il va le centrer horizontalement au milieu du conteneur et là vous l'avez. Ok, Donc maintenant,
maintenant, il est superbe sur toutes les tailles d'écran. Ok, voyons comment ça ressemble sur un iPad. D' accord. Ça a l'air bien, là aussi. Qu' est-ce que tu en penses ? On dirait que si on le fait tourner. N' attendez pas jusqu'à la fin pour vérifier l'apparence de votre application sur différentes
résolutions d'écran . D' accord. Ça te donnera un gros mal de tête, parce que tu vas devoir trouver beaucoup de choses à ce moment-là. C' est donc un moyen rapide de centrer et de placer les choses là où vous voulez qu'elles soient et pour qu'elles fonctionnent sur plusieurs tailles d'écran. Et vous pouvez également positionner des éléments à proximité les uns des autres. Disons que je veux que tu t'aies bien ? C' est un vous que je vois. C' est en quelque sorte le fondement de tous ces contrôles. Je prends ça et je le traîne, annonce pourquoi tu ne peux pas vraiment le voir, alors je vais aller voir l'inspecteur, et je vais revenir à l'arrière-plan, et je vais le changer sur Teoh Blue. Ok, tu peux choisir ta propre couleur. Et bien sûr, encore une fois Regardez ici sur le côté droit. Rien n'est aligné comme nous voulons chaque écran. Alors centrons ça, d' accord ? Nous voulons centrés. Et disons que nous le voulons si loin de cette lumière. On veut le garder là. OK, donc par ici, comme vous pouvez le voir, certaines de ces différentes hauteurs entre certaines sont sur la gauche, sur la droite, ce n'est pas le bon endroit. Donc on va dio, c'est des choses similaires. Je vais cliquer sur l'icône de la broche ici et je vais cliquer à nouveau sur le haut. D' accord. Et on va le mettre si loin du haut. Donc, il l'a fait. Et tu es genre, Attends, tout est foutu. Oh, non, je viens de casser tout va, arriver là où tu veux être à nouveau. Tu vas avoir des contraintes d'orteil, et les choses vont sembler cassées, mais elles ne sont pas cassées. D' accord ? Donc, encore une fois, nous pouvons aller de l'avant et cliquer sur le menu de ligne et affaiblir Dio est cliquer horizontalement et conteneur . Ok, il y a une autre façon de faire ça. D' accord ? Deux façons, en fait, mais ce que je vais faire, c'est que je vais glisser celui-ci et maintenir le commandement. Je vais sélectionner l'étiquette. D' accord ? Les étiquettes déjà assignées au centre de l'ensemble du conteneur, je peux effectivement cliquer sur la liaison une ligne ici, et je peux centrer ces deux contrôles ensemble. Ok, donc je veux qu'ils aient des centres horizontaux. Eh bien, puisque les étiquettes sont déjà centrées sur le conteneur principal lorsque je clique sur
ceci, c'est maintenant ? Blue View ne sera pas centré avec l'étiquette. D' accord. Minute. Les centres horizontaux de ces contrôles incluent ajouter une contrainte. D' accord. Et il l'a fait,
mais il ne peut pas le voir parce qu'il y a une autre chose que nous avons besoin de dio nous devons définir le avec et la hauteur de cette vue bleue afin que je puisse cliquer sur. Donc c'est juste celui qui est sélectionné ici. D' accord. Et maintenant ce que je vais faire, c'est que je vais cliquer sur ce, euh, bouton de
broche ici, et on va cliquer sur la largeur et la hauteur. On va le forcer à rester si haut et si large et là il est apparu
à l'écran. Encore une fois, tu vas t'occuper de ça tout le temps. Les choses vont sauter de ton écran. Tu es genre, qu'est-ce qui se passe ? Alors assurez-vous que vous finissez de mettre votre contrainte, et vous devez regarder un peu dans le futur pour savoir ce que ça va être fini de mettre ces contraintes, et ensuite il fera ce que vous voulez qu'il fasse. Donc ce que nous avons fait c'est que nous avons été épinglés à la remontée ici, ok de cette étiquette, et ensuite ce que nous avons fait c'est que nous avons sélectionné les deux. Ensuite,
nous avons fait des centres horizontaux juste ici. Et ce n'est pas mis en évidence en ce moment parce que nous n'avons qu'un seul contrôle sélectionné. Et puis, bien
sûr, nous avons mis la mèche et la hauteur de cette vue pour rester la même. Peu importe ce que vous étiez, ce qui se passait est en train de se rétrécir et de disparaître sur nous à nouveau. Je ne fais pas des choses bizarres, et c'est à peine automatique. Je ne sais même pas pourquoi ils appellent ça,
parce que vous devez faire tellement de travail pour que vos choses fonctionnent sur plusieurs tailles d'écran. Mais il y a les bases de la mise en page automatique
24. iOS 9 : mise en page automatique (Digging Deeper): Hé, tout le monde, on
y repart. Développement iPhone, bien
sûr. Et nous allons parler plus de la mise en page automatique et des contraintes certaines des
fonctionnalités les plus avancées , afin que nous puissions résoudre des problèmes uniques que vous rencontrerez en tant que développeur. Et donc pour ce projet, on va utiliser un graphique d'Internet. Et je voulais juste jeter ça ici à l'avance. C' est une jolie fusée ici, et je dois donner du crédit pour l'utiliser. Donc c'est son divin, mais conçu par libre pick dot com, il y a l'URL juste là. Ceci est également inclus dans le code source du projet. Je découpe un peu cela dans Adobe Illustrator, mais il est là. D' accord. Et je dois entendre mon bureau déjà prêt à partir, et j'ai déjà un prochain projet de code ouvert. Encore une fois, je vais faire un nouveau, euh, nouveau projet, OK ? Et on va en faire une seule de vos applications. Et appelons cette mise en page automatique avancée. Maintenant, quand je dis chauves-souris, c'est plus avancé dans la dernière. Mais les contraintes pourraient devenir encore plus avancées, et nous allons même en parler ici. Mais pour la plupart, C'est le type de choses que vous allez faire en tant que développeur professionnel en tant que quelqu'un qui libère EPS sur le magasin APP. Donc je vais l'enregistrer sur le bureau. Et il y avait des fantômes. Déplacez ceci du projet ici. Ok, Donc ce que nous voulons faire est de parler de comment obtenir votre comment obtenir vos vues alignées sur l'écran et toujours maintenir, comme un flexible avec, quel que soit le type d'écran sur lequel l'utilisateur est, quelle que soit sa taille. Ok, donc je vais aller de l'avant et cliquer sur le storyboard principal à droite ? Et encore une fois, comme on en avait parlé avant. Je vais le laisser ici sur ce style de forme libre ou parce que je veux que ce soit un arbitre. Je ne veux pas penser à ce qui aurait l'air bien dans un iPhone. On a l'air bien. Et je voulais penser à ce qui aurait l'air bien sur tous les appareils. OK, et si vous avez une sieste, que spécifiquement quatre un iPhone et vous voulez vraiment le concevoir en fonction du type de téléphone spécifique ? Vous pouvez, bien
sûr, y aller. Cliquez sur votre inspecteur sur vos attributs, inspecteur, et vous pouvez modifier la taille. D' accord pour les différentes tailles de téléphone. D' accord
, , on ne va pas faire ça. Tu vas dio déduire. D' accord. D' accord. Alors allons de l'avant et jetons sur vous. Je suis en train de taper. Vous avez Vous n'entendez pas. C' est juste une façon de filtrer. Et vous pouvez,bien
sûr, bien
sûr, faire défiler jusqu'à ce que vous le trouviez. Mais c'est plus facile si je tape du nouveau, n'est-ce pas ? Et c'est là. D' accord. Et donc je vais le mettre à l'écran, et il est blanc, et je n'aime pas ça. Donc, je vais aller voir mon inspecteur à nouveau. Tu pourrais changer. Quoi ? Je vais voir l'inspecteur. On va le changer pour ce joli rouge. Tu le mets quelle que soit la couleur que tu veux. Et donc ce que nous voulons avoir dans notre cas, c'est que nous voulons qu'il passe sur l'écran comme
ça sur toutes les tailles d'écran. D' accord. Je vais fermer le côté gauche par ici. Le navigateur. D' accord. Donc on a plus d'espace à l'écran, et je vais aller de l'avant et cliquer sur l' assistant éditeur ici et tout de suite montrant le code. Mais encore une fois, rappelez-vous, nous voulons voir l'aperçu, donc je vais cliquer automatique ou simplement cliquer sur les deux anneaux si elle ne voit pas automatique et je vais aller à l'aperçu famille est resté à l'examen storyboard. Bon, donc déjà ça ne fait pas ce que tu voulais. Vous penseriez que les choses marcheraient hors de la boîte, mais ce n'est pas le cas. Et bien sûr, si vous êtes familier avec le développement web, vous savez que cela ne fonctionne pas non plus. Tu dois faire le même travail pour faire avancer les choses. Allons-y et ouvrons un 4,7 pouces, accord ? Et ce n'est pas le cas. Ça ne fait pas ce qu'on veut là-bas non plus. On veut que ça ressemble à un peu ici, sur le côté gauche. Alors allons de l'avant et faisons quelques contraintes. Maintenant, vous avez vu ça avant cette partie devant les hommes de broche. Ok, alors parlons de ça. Alors remarquez comment il 00 et zéro. Ok, eh bien, la raison pour laquelle est 2000 est parce que le storyboard ici, ce contrôleur de vue, il a une marge de 20 de chaque côté. Et donc si je devais le mettre ici, tout le chemin jusqu'au bord, puis cliquez sur le bouton de la broche. Maintenant, c'est négatif. 20. Ok, parce que c'est qu'il le signe à la marge. Maintenant, si je ne voulais pas travailler avec des marges, je pourrais effectivement cliquer sur cette case à cocher ici. Préoccupé par les marges. Enlevez-le et remarquez. Maintenant, c'est zéro. Donc, il est en fait épinglé au coin de la vue. On va le laisser à la marge parce que c'est le défaut, ok ? Et donc je vais défaire ça. Et ce que je veux faire, c'est que je veux à nouveau zéro du haut. Il y a la marche là-dedans, donc c'est techniquement toujours zéro zéro du haut. Maintenant, je veux que cela aille tout le chemin à travers l'écran, peu
importe la taille de l'écran sur, peu
importe si c'est paysage ou portrait. Et donc peut-être que tu penses à toi-même, et bien, peut-être que je devrais faire le avec si longtemps. Ok, eh bien, allons qui arrive si on fait ça 5 60 Donc je l'ai fait avec 5 60 cours. Il disparaît sur l'iPhone quatre pouces à nouveau. Sauf si vous faites toutes les contraintes, choses sont incohérentes. C' est le 4,7 pouces Allons à l'iPad et, ah, l'iPad ne va que partiellement le chemin à travers l'écran. Donc, nous ne voulons pas une solution avec Eh bien, excusez-moi. Nous voulions étendre sur tout l'écran, donc je vais demander à Z d'annuler ça. Bon, maintenant quoi ? On va dio, revenons ici. Donc on va l'épingler en haut. On sait qu'on voulait rester là, et cette fois on va l'épingler à gauche et à droite. On se fiche de l'avec. Donc, en épinglant le côté gauche 20 et le côté droit 20 ce qu'il dit est, Hey, vous devez coller sur le côté gauche de l'écran et le côté droit de l'écran. Et ça va se sentir automatiquement pour toi. Donc il va l'étirer pour évaluer Faras quoi ? Ce qui est vraiment cool. Donc si je fais ça, ça va ajouter trois contraintes et bam. Et tu es genre, attends une minute. Maintenant, il le rétrécit. Oui, les démons de la mise en page automatique sont contre nous. Ne craignez jamais. Le bouton de la broche est là, et nous le ferons , bien sûr, à la hauteur. Ok, donc ça le rétrécit parce que nous ne lui avons pas donné de hauteur Donc disons que nous voulons que la hauteur soit de 1 28 Ajouter une contrainte. Et bien sûr, il fait exactement ce que nous voulons. Maintenant, vous pensez peut-être, attendez une minute. Pourquoi ce dîner, genre, pas aussi haut sur l'iPad que sur le 4,7 pouces ? Eh bien, en fait, ça l'est. D' accord. Il l'est. C' est juste un écran plus grand. Donc, avoir ces juste là l'un à côté de l'autre fait paraître un peu hors, mais ceux-ci sont tous de la même taille. D' accord ? Super cool. Maintenant, allons de l'avant et jetons sur une autre vue visuelle. D' accord ? Déplace-le ici. D' accord. Et je vais faire cette couleur ici à droite à l'intérieur et l'inspecteur choisi que je vais la rendre bleue. D' accord ? Tu peux choisir la couleur que tu veux, OK ? D' accord. C' est un joli bleu, euh, et allons de l'avant et commande, Voir, pour copier et commander V à coller. D' accord. Je pourrais aussi vous le savoir. Copier à elle. Coller. D' accord. Fais-le glisser ici, et je vais rendre ce type jaune. Maintenant. On a de jolies couleurs sur l'écran. Bien sûr, comme d'habitude par défaut ne fait rien à distance lié à ce que nous voulons dio. Et, bien
sûr, nous voulons que ces gars se rencontrent au milieu et qu'ils soient vraiment beaux ensemble. Donc ce que je vais faire, c'est changer la taille de ces plus petits. Donc, si vous allez par ici à droite à l'intérieur, Ok, il y a une petite règle par ici. C' est ce qu'on appelle l'inspecteur de taille. On va commencer à travailler avec ça beaucoup. D' accord ? Donc la taille de Specter, il a son exposition. Ok, où est-il ? Sur l'axe X. Donc, de gauche à droite. Et la position blanche. Où est-il ? haut en bas. D' accord. Et la position 00 est en haut, en haut à gauche. Donc si je devais dire 00, ça le place en haut à gauche. Bien sûr, ce n'est pas ce
que nous voulons, mais juste pour que vous sachiez, c'est comme ça
que ça marche. Ok, je vais commander Ian commandes, manger, annuler et annuler. Et je veux augmenter le chemin de ce 2 276 Ok. Et je veux augmenter la hauteur de celui-ci à 28, puis je vais juste la traîner là-bas. D' accord. À 76 par 1 28 liste de la même chose ici à 76 par 1 28 OK, parfait. Ok, donc sur le côté gauche, il regarde comme on veut qu'il ressemble. Et au fait, le côté gauche est ce constructeur d'interface ici. C' est là que vous voulez concevoir des choses de façon à ce que vous voulez. D' accord ? Et ici, à droite, c'est à quoi ça ressemble vraiment. Ok, donc ce que je dis, , c'est même si, , par
exemple, disons que j'ai été trop mis sur ça. Et je veux que le avec soit 10 quelque chose de vraiment petit. D' accord ? Et je clique sur ajouter une contrainte ici sur ce que ça va vraiment ressembler dans votre produit. C' est vraiment petit. Mais ici, à gauche, c'est encore très grand. Ok, donc ce n'est pas réfléchissant sur le côté gauche. Cela ne reflète pas vos contraintes. D' accord ? C' est ton éditeur visuel, d' accord ? Et ce qui va vraiment ressembler, c'est ici sur le côté droit. Donc, toute façon, ce que je veux dire c'est de faire votre côté gauche ici dans l'interface, mais il y a l'air comme vous voulez. Et dans les contraintes quand vous les avez tous correctement assemblés, ces choses dans le côté droit ressembleront à la chose sur le côté gauche. Ok, c'est très important ici. Concevez-le de la façon dont vous voulez qu'il ressemble, puis mélangez avec les contraintes jusqu'à ce que le
côté droit de votre aperçu ressemble à votre côté gauche. Donc je vais annuler ce changement parce qu'on ne veut pas qu'il soit petit comme ça, ok ? Et on se rapproche. Mais ce que nous voulons vraiment, c'est ça. Prends la moitié de l'écran dans les deux cas, d'accord ? Il y a donc une chose spéciale que nous devons faire pour que cela arrive. Ce qu'on va faire, c'est qu'on va sélectionner cette vue bleue ici, et on va sélectionner la vue rouge. Et ce qu'on va faire, c'est qu'on va aller par ici le bouton de broche dentée. On va dire des largeurs égales. Vous pensez à ce qu'on ne veut pas utiliser pour être le même. Ça n'a aucun sens du tout. Eh bien, sur IOS, lorsque vous définissez certains types de contraintes. En fait, vous devez d'abord définir les mauvaises contraintes, puis aller les modifier. Malheureusement, c'est comme ça. Nous devons donc définir cela à des largeurs égales. Ok, nous devons mettre ces deux deux égaux avec. Et je vais expliquer pourquoi dans un instant mon clic ajoute une contrainte. Ok, c'est vraiment bizarre. Je sais. Et puis on va encore une chose. On va encore dormir les deux, et maintenant on va aligner les bords d'attaque ici, reprendre ça en ligne les bords d'attaque. Parce que nous voulons que cette gauche soit alignée sur cette gauche juste ici. D' accord ? Annoncé dans toutes sortes de trucs funky c'est comme, Oh, mon Dieu, tu sais ce qui se passe ? Mais si vous regardez par ici, il fait ce qu'on a dit. C' est aligner la partie gauche du bleu sur la partie gauche du rouge, et ça le rend juste un long donc il obéit à ce que nous voulions faire. Nous ne sommes pas encore prêts, donc ce qu'on veut faire pour sauver un homme, je vais cliquer sur cette vue bleue et ici sur la taille, inspecteur. Ok, la règle. C' est là que vos contraintes sont ajoutées chaque fois que vous avez des contraintes. D' accord ? Et vous ajoutez dans quelque chose. Si vous cliquez sur cette vue, elle affichera toutes ses contraintes ici, à droite à l'intérieur. Vous pouvez également y accéder en cliquant sur le côté gauche. Ici, vous pouvez cliquer dessus, vous contraindez à le déposer vers le bas. Et vous pouvez y voir toutes les contraintes ainsi que les contraintes individuelles pour une
vue spécifique . Ok, donc tu es du côté droit, accord ? On va aller à l'égalité avec, et on va changer un peu les choses. D' accord ? On va changer certaines choses. Donc, ce que je veux faire, c'est que je veux changer le multijoueur. D' accord ? Je veux changer le multiplicateur. D' accord. Parfait. Tu n'as pas remarqué de grand changement du tout,
et ça va maintenant,
parce qu'on doit faire quelques choses de plus. Tu n'as pas remarqué de grand changement du tout, et ça va maintenant, Cliquez à nouveau sur votre vue bleue. Cliquez sur le menu de la broche. Disons que nous le voulons 88 en bas de la vue rouge. Ok, alors allons de l'avant et positionnons-le comme nous le voulons. Allez-y et sélectionnez également la hauteur. Nous voulons être la hauteur qu'il est. Ok, nous voulons que ça reste le même, peu
importe ce qui va ajouter ces deux contraintes. Bon, donc ce qu'il a fait, c'est qu'il est maintenant déplacé. Ok, il l'a déplacé ici sur le côté gauche. D' accord ? Et c'est vraiment grand, cependant. Ok, donc si je clique dessus et que je retourne à l'inspecteur des tailles,
tu sais, tu sais, comme Ok, eh bien, qu'est-ce que tu viens de faire ici ? Ok, euh, on a eu cette vue dans cette vue. , En fait,les
choses font ce qu'on veut qu'elles fassent. Donc ce que je vais faire, c'est que je vais cliquer sur le deuxième élément ici, et je vais dire que nous inversons le premier et le deuxième élément. C' est la base. Ce qui est en train de faire, c'est de mettre le multijoueur aussi. Et là, ça fait deux fois plus longtemps. Mais on n'en veut pas deux fois plus longtemps. On en veut la moitié. On veut que ce soit la moitié de ça avec ici, donc je vais inverser ça, ok ? Et maintenant, vous ne remarquez toujours aucun changement ? Mais c'est bon, parce que nous allons y arriver dans un instant. En
fait, fait, on
y va. Maintenant, c'est aussi. Et maintenant, ça marche. Alors parle de ce qui vient de se passer. Donc nous sommes allés et nous avons mis le avec de cette vue bleue pour avoir un égal avec de la vue rouge. D' accord ? Non, on ne veut pas que ça soit égal, ok, parce que ça doit prendre la moitié de l'écran. Donc tout ce qu'on a fait, je vais cliquer dessus. J' ai perdu les détails ici sur le double clic. Donc on a perdu. Excusez-moi. , on Au début
, onmontrait deux fois plus de longueur. Et donc ce que nous avons fait maintenant, est-ce que ce premier article est ici ? D' accord. On dit que c'est,
euh, c'est rouge, d'accord. Voyez comment il se met en surbrillance lorsque vous passez la souris dessus. Et donc ce que nous disons est sur ce premier élément, faire en sorte qu'il ait une relation égale avec le deuxième élément et en faire le avec Ok. Maintenant, quand vous mettez un multiplicateur, il s'applique toujours au deuxième K 2. La deuxième vue ici, Le deuxième élément, ce multijoueur est toujours appliqué au deuxième élément. C' est ce qu'on dit, c'est bon, donc on veut que ce soit la moitié à tout moment, la
moitié de la vue de dessus. Ok, c'est ce que fait le multijoueur. Donc ça résout notre problème, non ? Parce que nous voulions que cette vue soit la moitié de l'écran. Donc, nous savons que le rouge voit le plein écran. Donc si c'est 100% et que vous soustrayez 50%, c'est la moitié restante. Donc, ce qu'on dit,
c'est ,
c' faire de la vue bleue la même longueur de la vue rouge, mais donnons-lui un multijoueur de deux pour la couper en deux. Donc, peu importe la taille de la vue rouge, ce bleu sera toujours la moitié du rouge. Ça va ? C' est pour ça que nous avons fait l'égalité avec Set. D' abord, tu faisais la même longueur. Donc c'est relatif au rouge, et ils le coupaient en deux. Si c'est déroutant, c'est bon. Ça prend du temps pour faire tomber ce truc. Mais vous pouvez passer en revue cette vidéo et voir comment tout fonctionne. Ce genre de te le mettre dans la tête. Les contraintes peuvent être très complexes. Ok, mais maintenant nous devons résoudre le problème du E jaune. Ok, donc je vais cliquer dessus. On va faire les mêmes contraintes. On va en faire huit par le haut. Ok, on va lui donner une hauteur. Je vais ajouter ces deux contraintes, et je vais sélectionner les jaunes comme la rouge. Et je vais cliquer sur le bouton Aligner ici, et cette fois on va aligner les bords de fuite, OK ? Bords de fin. C' est logique. Il a encore disparu de l'écran. Ne vous inquiétez pas pour ça. Tu as encore un coup d'oeil sur le futur. Pensez à toutes les contraintes que vous devez faire, puis faites-le faire, et puis ça reviendra là où il doit être. Alors allez-y. Et maintenant obtenir cliquez sur ces deux vues à nouveau. D' accord. Et,
ah, ah, cliquez sur le bouton de la broche. Et comme la dernière fois, faisons des largeurs égales. Bon,
maintenant, évidemment, évidemment, ce n'
est pas ce que nous voulions être pour l'instant. Nous sommes en train de résoudre le même problème que nous avons fait avant. Cliquez à nouveau sur votre vue. D' accord ? La vue jaune. Et ici dans la droite, à l'intérieur où il est dit égal à voir, double-cliquez dessus. Nous devons donc résoudre à nouveau le même problème qu'avant. Donc, définissons le multiplicateur à et encore. Ça va un peu long et donc d'accord, oui,
ça a du sens. Inverser le premier et le deuxième élément. D' accord ? Et depuis que nous l'avons fait, ça a recalé 2,5 contre. Allez-y et mettez-le à deux. Il le fera sur votre presse 2, puis appuyez sur Entrée. D' accord ? Et là, c'est bon, donc c'est la moitié et la moitié. Maintenant. Une chose qu'on sait, on a besoin d'un peu d'entretoise, d' accord ? Parce qu'on ne veut pas qu'ils se touchent. On veut ce joli espace ou au milieu. Donc, ce que vous pouvez faire est que vous pouvez réellement ajouter une constante ici. Cela va accepter une quantité définie de pixels. Ok, je vais dire huit heures et je vais au Blue View et je vais me mettre. Je vais cliquer dessus, et puis je vais cliquer proportionnel pour voir le double clic. Ça et je dois mettre la constante ici à huit. Et au fait, chaque fois que je change ça, j'appuie. Entrez. Donc, je m'assure qu'ils prennent effet. Et là, vous l'avez. Ok, alors regardez ça sur toutes les tailles d'écran. ici, il regarde exactement comme nous le voulons. Qu' en est-il du portrait ou du paysage ? Je veux dire, il semble bon sur le paysage va paysage ici. Bon, donc ce qu'on a fait, c'est qu'on doit récapituler. Ok, Nous avons pris ces vues est bleu et jaune vue. Nous les avons fait à la même longueur de ce rouge. Ok, on a épinglé ou plutôt on a aligné le côté gauche de la vue bleue sur le côté gauche de la
vue rouge . Nous avons aligné le côté droit de la Je t'aime sur le côté droit de la vue rouge. Et puis ce qu'on a fait c'est qu'on a coupé le avec et la moitié en mettant un multiplicateur de deux disaient, Hey, on
va le couper en deux. Donner un multijoueur de deux Donc c'est toujours 50% de la largeur du rouge. Et donc ceux-ci vont toujours s'étirer et se rétrécir en fonction de la taille du rouge. Super, super cool. Il y a un autre principe que nous allons couvrir ici. D' accord ? Et c'est quelque chose qui est re taille sur la base. En plus,
vous savez ce que je veux dire c'est, disons que nous n'avons pas d'image ici, et qu'elle est coupée sur certaines tailles d'écran, alors allons de l'avant et simulons ça ici. Donc je vais arriver. Vous j'image vue ici en bas. Droit ? Je vais le traîner, OK ? Et allons prendre une image. Donc je vais aller de l'avant sur ma gauche ici, retourné le navigateur sur Cliquez sur le dossier Assets. Ok, ce que je vais faire, c'est aller sur mon bureau. Vous pouvez le voir ici. Je suis juste un clic et faites glisser la fusée ici pour l'amener dans mon projet. Revenez au storyboard principal point, puis mon image de vous est sélectionnée. Donc je vais aller en haut, à droite et re sélectionner les attributs,
inspecteur, inspecteur, et je vais cliquer sur l'image, mais et la mettre sur fusée, aussi. Maintenant, bien
sûr, c'est un peu tendu. Donc, si vous vous souvenez, quand est-ce que l'aspect correspond ? D' accord. Et, euh, disons qu'on le veut beaucoup plus grand que ça. Disons que nous voulions Philip la plupart de cet écran ici. Ok, donc si je double-clique ici, on a perdu l'aperçu de l'utilisation ici. Eh bien, juste Adam de retour. D' accord ? Et ajoutons un iPad. Alors,
euh, on y va. Donc c'est toujours dans des trucs funky. Rendement de son chemin. Teoh. Trop gros pour son iPhone. iPad de quatre pouces. C' est là,bien
sûr, bien
sûr, ne
ment pas à Belle de toute façon. Hum, disons qu'on veut orteil. On veut l'aligner au bas de l'écran. Ok, donc on sait déjà comment faire ça. Nous pouvons cliquer sur le bouton de la broche et juste une ligne ici jusqu'au bas. D' accord. Et, euh, c'est bien à une contrainte. Donc ils sont en bas. Bien sûr, ce n'est pas la façon dont nous sur tous les écrans parce que c'est juste un peu deux gros pas ? Ok, ok. Il y a encore une chose que nous avons besoin de dio Revenons au menu 10 et nous allons cliquer sur Aspect ratio, peu
importe quoi. Nous voulions maintenir le rapport d'aspect dans les contraintes. Même au-delà de l'image elle-même dans
l' l' entrée. Gardions ces contraintes. Attendez-vous au rapport d'aspect qu'il se rétrécit et grandit Alors je vais cliquer. Ajoutez une contrainte. Ok, maintenant il y a de la magie qu'on doit faire pour que ça marche. Donc ce que je vais faire, c'est que je vais faire mes fusées déjà sélectionnées. Vous pouvez voir ici. Je vais prendre ça et c'est un conteneur super vue. Ok, donc la vue qu'il détient cette vue est appelée une super vue. Donc je vais cliquer sur ça
aussi . Oui, ils sont tous les deux sélectionnés, Comme vous pouvez le voir, Là, sur le côté gauche, je vais aller de l'avant et cliquer sur une ligne et se rappeler comment, avant de dire, parfois vous devez mettre les mauvaises contraintes et ensuite le réparer pour les amener là où vous devez être, et c'est ce que nous allons devoir faire. C' est ainsi que cliquez sur les bords d'attaque. Et quand je dis les bords d'attaque, cela signifie le côté d'attaque de ceci et le côté d'attaque de cette vue. Allons les aligner. D' accord ? Non. C' est ce qu'on veut neiger ? Non. C' est ce qu'il fait ici ? Eh bien, on dirait ça. Il y a un peu d'espace blanc. On en tient compte, mais ce n'est pas ce qu'on veut à la fin. Alors nous allons double-cliquer pour sortir de cela ici et aller de l'avant et cliquez à nouveau sur votre fusée avec votre fusée sélectionnée ici, ici à la règle, l'inspecteur de taille et l'espace de tête effrayant pour super vue, Double cliquez dessus. Et maintenant, nous voulons changer quelque chose. Donc on veut vraiment changer
ça pour être, euh ,
centre X. , Donc, au lieu de faire correspondre le côté gauche de la fusée avec le côté gauche de la super vue, faisons correspondre le côté gauche de la fusée avec le centre de la super vue juste ici. Ok, donc je vais changer au Centre X. donc je vais changer au Centre X. Et ça l'a déplacé, et elle est comme, Ok ,
eh bien, dirait
que ça marche ici sur le côté droit. Vous voyez que le début des Rockets commence au centre de la vue principale. D' accord, mais ce n'est pas exactement ce qu'on ne se souviendra pas. Nous voulons qu'il soit complètement centré. Donc on va mettre un multiplicateur ici, ok ? Ça va être zéro point 5/2 cas. Ce que nous disons,
c'est que nous allons centrer le début jusqu'au début, ou excusez-moi moins de centre, le début de la fusée au milieu de la super vue. Mais alors nous allons en fait à un multijoueur de la moitié. Alors enlèvons la moitié de ça. Donc c'est ce qu'on veut. Nous voulons déplacer la gauche à mi-chemin. OK, et maintenant, nous allons cliquer à nouveau sur l'écran. Ici, c'est comme ta fusée. Et maintenant, cliquez à nouveau sur la vue ici dans le côté gauche. C' est comme le bouton d'alignement ici. Et maintenant, cette intemporelle à travers le bord de fuite est de les faire ensemble quelque chose comme nous l'avons fait avant, sauf les bords de fuite à une contrainte. Donc, si vous remarquez, les
choses commencent à se redimensionner automatiquement qui se rapproche de l'endroit où nous voulons être . D' accord. Mais pas encore tout à fait là. Alors cliquez dessus, puis récupérez votre fusée et allez sur le côté droit. Cette fois, cliquez sur DoubleClick, celui qu'il s'agit d'un espace de fin. D' accord. Et maintenant, ce qu'on va faire est similaire. Ok, donc, euh, en fait, eh bien, dans ce cas, il a échangé. Nous devons donc changer ces éléments. Allez-y et cliquez dessus et cliquez sur Inverser d'abord, un deuxième élément parce que nous voulons que la super vue soit en bas ici. D' accord. Et nous voulons que le deuxième élément soit au centre X. Et cette fois, d'accord. Au lieu de 0,5, mettons-le à 1,5, et laissez-moi vous expliquer cela. Alors que se passe-t-il ici ? D' accord. Et si vous pouviez comprendre cela, vous apprenez juste l'une des parties les plus complexes de la mise en page automatique. Et je te montre ça parce que beaucoup de choses sont plus faciles que ça. Il s'agit d'un sujet avancé. Il y a
aussi des concepts plus avancés . Mais c'est l'un des concepts les plus avancés. Descendez ça. Vous pouvez faire à peu près la plupart de tout dans la mise en page automatique. Et fondamentalement tout ce que nous avons fait, c'est que nous avons dit à nouveau : Prenez le début de ce centre de fusée au milieu de la vue principale. Cet ensemble contient le centre ici. Mais multiplions-le par 0,5, ce qui va l'amener à mi-chemin, ce qui est exactement ce que nous voulons. Nous voulons que cette fusée soit à peu près à mi-chemin ici et ensuite le côté droit a la fusée. Nous voulons centrer à nouveau vers le centre. Mais cette fois, faisons-le multiplicateur de 1,5. Et bien sûr, nous ne le ferions pas. 0,5 point 5 va le prendre ici à gauche. Dans ce cas, nous voulons le multiplier par 1,5. Donc c'est juste ici, au milieu. Donc même principe, juste direction opposée. Par conséquent, c'est 1,5. Et ces valeurs que vous pouvez utiliser à peu près chaque fois que vous voulez faire quelque chose comme ça. Et donc si vous remarquez ici maintenant sur le côté droit sont une fusée. Il correspond dans chacune des vues. Et une fois que c'est bon ici, tu pourrais être sûr que ça va marcher comme tu veux dans le simulateur. Donc je vais aller par ici en haut à gauche et exécuter l'application. D' accord ? Voyons s'il fait exactement ce qu'on voulait faire. Voilà, tu y vas. D' accord. Grand simulateur énorme sur l'écran à nouveau. Si vous voulez un petit, vous pouvez faire la commande trois. Ok, on a l'ordre de commander. On le rend mongous dans le commandement 3. Et regarde ça. Notre fusée. C' est quoi ? Juste ce que tu veux Maintenant, il y a un parfait exemple de ce dont je parlais quand j'ai dit que tu devais regarder vers l' avenir. Lorsque vous commencez à construire des choses ici dans votre Story Board, vous devez regarder vers l'avenir de ce qu'il pourrait ressembler sur toutes les tailles d'écran. Vous auriez pu tirer ça sur papier. Tu pourrais le faire dans ton cerveau. Peu importe. Commencez à penser à l'avenir parce que ça peut ne pas ressembler exactement à ça, mais tant que vous définissez généralement les choses là où vous les voulez, ce sera comme vous le souhaitez. Ok, donc c'est la mise en page automatique. Ce sont là des contraintes. C' est ainsi que vous faites des choses plus complexes avec elle. Vous l'utilisez dans vos applications. Et, euh, ouais, cela fait de merveilleuses interfaces utilisateur qui peuvent fonctionner sur toutes les tailles d'écran. Et c'est ce que vous voulez prendre en charge toutes les tailles d'écran.
25. Introduction à l'application iOS 9: C' est un grand jour, tout le monde. Et je suis Mark Price avec Deb Slopes. On va parler de la carte qu'on va construire aujourd'hui. Ok, tire-le droit dessus. Il est appelé Tabar à ne pas confondre avec le robinet de bière racine ou tout autre type de robinet que vous pourriez penser. C' est en fait un jeu de clic. Et ce qu'on va faire, c'est mettre un certain nombre de robinets et de bons jeux. Lorsque vous appuyez sur le compteur monte, l'étiquette change. Et quand tu arrives aux robinets Oh, mon Dieu. J' aurais dû faire beaucoup moins de robinets il y a. Le jeu redémarre, OK, maintenant tu penses que ça va être dur ? Est-ce que ça va être facile ? Eh bien, ça va être un peu des deux. Tu vas apprendre de nouvelles choses, elles vont t'étirer l'esprit, et ensuite tu vas faire des choses dont on a déjà parlé. Et, bien
sûr, nous allons mettre des graphismes jolis que j'ai en fait attribué dans la
vidéo elle-même dans laquelle nous la construisons. Donc je suis excité de construire ça avec toi. Allons de l'avant et commençons
26. Application iOS 9 : Tapper: Très bien, Mesdames et Messieurs, nous allons construire une autre application aujourd'hui une application à part entière et vous aider à creuser plus profondément dans le monde du développement IOS. Donc avant de commencer, on va juste se lever. Quelques-unes des images allaient être utilisées aujourd'hui. Donnez un peu d'attribution. Donc on va utiliser ce type ici. Si vous voulez cette image ou l, vous pouvez vous sentir libre de positionner la vidéo et de l'attraper. Ces air sont également inclus dans le code source que vous obtiendrez dans le cadre de ce fichier vidéo. Donc on utilise ce type ici. Choix gratuit, excellent site web. On va utiliser ce type ici. D' accord ? Je suis allé de l'avant et l'ai coupé un peu en illustrateur pour nous ici sur le libre choix aussi . Et puis on va utiliser ce type ici. Ce ticket est encore allumé. Je coupe celui-ci ouvert, illustrer un peu trop, et mettre une pièce, mais là à la place. Et puis ah, par ici, un point d'artisanat de texte en ce que je suis allé de l'avant et j'ai construit un logo qui utilisera une houle aussi. Et je vous montre juste ce site que vous pourriez construire vos propres logos. Et donc c'est bon et fermer ça ici, et je vais aller de l'avant et construire et exécuter l'application que nous allons faire aujourd'hui vraiment cool. Alors, voilà. Ça l'a rendu plus grand. On y va, Tapper sous, euh, ce n'est que de la musique plus cool, mais on y arrivera dans une vidéo plus tard. Donc, l'idée est, vous entrez combien de robinets pour gagner le jeu ? D' accord. Et vous appuyez sur Play, puis vous appuyez sur similaire à certains de ceux comme les tappers de cookies ou les jeux de pièces de monnaie Tepper qui ont
en quelque sorte obtenu sur le dessus de l'App Store. Qui sait ? Mais de toute façon, alors combien de robinets pour gagner ? Disons que jouer au 12e clic et que vous allez faire, c'est que vous allez appuyer sur un bouton et que les étiquettes pourraient être mises à jour. 3456789 10 11 12. Et dans la recherche du jeu. Bien que ce n'était pas beaucoup, , pourquoi as-tu commencé à entrer dans le code ? Surtout si tu es nouveau ici, tu vas être comme, Oh, mon Dieu, c'est beaucoup de choses, alors ne t'inquiète pas. Est une bonne
pente, bonne ah, bonne ah,pour entrer dans des choses plus complexes. Et une chose que je voulais souligner, c'est dans nos applications, les opérations que nous construisons du début à la fin, elles vont être très belles. Il y a donc une différence entre vous en tant que développeur d'iPhone et le reste des programmeurs dans le monde. OK, Et ce que je veux dire, c'est d'autres programmeurs dans le monde, disons qui programment en Java ou C Sharp ou d'autres applications de bureau. Leur patron et la compagnie s'en foutent qu'ils connaissent un coup de toi. J' ai du bon design, accord, ils s'en foutent de tout. Tu dois te concentrer sur le manteau. Pas si tous les meilleurs développeurs d'iPhone peuvent faire iPhone APS bien paraître, sinon grand et fantastique ainsi que d'être en mesure de manteaux. Vous devez commencer à avoir votre esprit maintenant. Hey, je dois commencer à faire mes côtelettes de design. Je dois commencer à rendre les choses jolies, et elles n'ont pas à être parfaites. Vous n'avez pas besoin d'être graphiste, mais vous devez commencer à savoir comment les orteils étalent les choses et les rendre beaux ensemble. Et bien sûr, je n'ai pas vraiment conçu ces graphiques. Je suis juste et bon à Google, et c'est ce que j'ai fait. Alors on va y aller et commencer ici. Je vais tuer ce simulateur ici, d' accord ? J' ai appuyé sur commande. mignon de l'arrêter. Et comme j'ai le code X déjà ouvert, je vais juste faire un fichier, ok, un nouveau que nous allons faire un nouveau projet. Et ce sera une application de vue unique, comme nous l'avons déjà fait. Le nom du produit sera Taber. Et je vais appeler l'esprit Tapper euh, extrême pour l'accent. D' accord. Et Swift va bien, bien
sûr, et ah, iPhone. Et c'est tout ce dont nous avons besoin en ce moment. Cliquez sur Suivant, et je vais l'enregistrer ici sur le bureau. Et je vais partir. Créer un dépôt git activé parce que nous allons vouloir soumettre ceci pour argumenter. Avoir des comptes après étaient terminés afin que les gens puissent regarder son manteau et quelque chose de créer rapidement . Très bien, excusez-moi. Alors allons de l'avant et éteindre le paysage à gauche, éteindre le paysage. Droit. Et on va juste soutenir un portrait à l'envers pour aujourd'hui. Ok, rendez ça un peu plus grand pour qu'on puisse le voir et affaiblir la plongée dans notre storyboard. J' aime toujours avant de commencer à écrire n'importe quel manteau, sauter dans des storyboards et de commencer à poser quelques choses pour que je puisse commencer à avoir ah, idée
visuelle de la façon dont les choses vont se dérouler, et donc nous savons qu'on va avoir besoin de graphiques. Et comme j'ai tous les graphiques déjà exportés et prêts, je vais juste cliquer sur le dossier assets dot x C et, ah, je vais prendre toutes mes images. On le trouvera ici sur mon bureau. On y va. Et je vais les traîner tous pour que vous puissiez les voir ici. Une goutte de dragon. D' accord. Et encore une fois, j'ai joué avec ces un illustrateur et un magasin de photos un peu pour obtenir les choses dont j' avais besoin d'eux. Et, euh, c'est très utile si vous avez le temps d'apprendre à faire les bases de la photo shop découper les choses, re dimensionner les choses en tant que développeur et iPhone, ça m'a énormément aidé. n'y a pas un jour qui passe en tant que programmeur sur iPhone que je n'utilise pas photo shop. Euh, et ça fait gagner beaucoup de temps contre
toi, tu travailles à la compagnie. Tu fais une sieste. Tu dois devenir designer supérieur. Tu dois t'envoyer les choses à sa façon ou à sa façon. Très bon à savoir, boutique
photo, mais on ne va pas le couvrir ici. Tellement cool. Allons dans notre storyboard principal. Alors, quelle est la première chose qui a le plus de sens à faire ? Eh bien, probablement la chose qui est à l'arrière de l'écran. OK, qui est l'arrière-plan. Alors allons de l'avant et en bas à droite là. Cherchons notre bibliothèque d'objets. Et si vous ne pouvez pas le trouver, vous savez, vous pouvez cliquer sur l'utilisé pour développer ce qui est juste là en bas. Cliquez sur ce petit gars ici et allez-y. Et vous je l'image vue. Ok, on va le traîner et le centrer. Belle. Maintenant, c'est faire en plein écran. Euh euh est là et si vous vous souvenez, revenons à nos attributs, inspecteur, et faisons une image ou sélectionnons une image, et ce sera un BG rétro. Regarde comme ça a l'air joli. Oui, je suis genre, accord, on a fait ça. Oh, n'oublie pas. Est-ce qu'on l'a vraiment fait ? Vraiment, probablement pas. Je clique sur ce, euh, ces deux cercles ici l'assistant éditeur et je clique sur ce gars travaille est automatique admettre années peut ne pas dire qu'il pourrait automatique. Ça peut dire autre chose que je vais à Prevue Main. C' est l'histoire. S' ennuyer. Oh, mon dieu. C' était trop beau pour être vrai. Oh, c'est juste que ça s'aggrave ici. Ok, donc évidemment, on doit faire une mise en page automatique. Ok, donc je vais traîner ça. Très bien, nous allons cliquer sur l'arrière-plan. Celle-ci est une voiture facile en retard. D' accord ? Tout ce qu'il faut faire, c'est changer le mode ici, à droite. Changeons simplement pour que l'aspect s'adapte. D' accord ? Donc reste toujours un rapport d'aspect, et tout ce qu'on va faire, c'est juste l'épingler sur les bords de l'écran. Zéro. Dans ce cas, euh, il dit limiter les marges de ce négatif 20. Dans ce cas, nous ne voulons pas nous limiter aux marges parce que nous n'avons pas besoin d'espace blanc. On veut que l'ensemble du fond soit couvert, donc je vais enlever les marges contraintes, et ça va aller jusqu'aux bords. Je suis une sélection tous les quatre, ok ? Et vous remarquez que ce n'est pas ce qu'on voulait faire. Donc je pense qu'on a fait une erreur. Nous cliquons ici. Avis sur la droite. A l'intérieur. Ce n'est pas l'aspect que nous voulons Nous ne voulons pas tenir dans l'écran. On voulait remplir l'aspect de l'écran, Phil. Ah, on
y va. Donc, il ne s'étire pas. Ce n'est pas écrasant. C' est juste le couper sur les bords. Et je suis d'accord avec ça. Je pense que ça a l'air sympa. Donc je vais le sauver. Et ça a l'air bien sur tous les appareils ici. Ouais, j'aime ça. Un accord fait. C' était assez facile. Non, nous savons que si vous vous souvenez bien, nous savons que l'écran principal avait un logo et un bouton de lecture. Et combien de robinets à gagner ? Ok, euh, on arrivera aux boutons où vous appuyez sur la pièce et tout ça plus tard. Allons juste faire fonctionner l'écran principal ici. Et tu es brillant, tu te demandes, genre, attends. Je veux dire, il y aura plus d'un écran ? Les choses disparaissent. Eh bien, nous allons y arriver aussi. Alors allons de l'avant et jetons une autre image. Toi sur l'écran. D' accord ? Et allons de l'avant et sélectionnez Tapper. Maintenant tu pourrais faire ça quelques années. Vous pourriez en fait extraire et faire semblant qu'ils, euh vous savez de quelle taille il est censé être. Vous ne voulez jamais étirer vos images de squash. C' est un péché cardinal, un développement iPhone. Et ah, c'est juste du mauvais goût. Mais jamais, jamais, jamais j'ai l'impression que je vais être paresseux. Je vais l'écraser et faire tout ce qui a l'air bien. Oh, ouais, disons que ça me semble jamais, jamais. Surtout si vous travaillez avec un designer, même si c'est quelques ramassages comme, à quoi pensiez-vous ? Euh, ils ont un très bon oeil pour ce genre de choses. Ne jamais écraser les lavages obtenir les dimensions réelles du rapport d'aspect. Et si vous ne vous souvenez pas, comme dans notre cas, nous ne pouvons pas vraiment nous souvenir, je ne me souviens pas de quelles tailles, et nous ne savons pas. Donc, ce que vous pouvez faire est de passer ici à vos actifs que les actifs XY ici. D' accord ? Et on peut cliquer sur Tapper si je vais sur le côté droit et que je clique sur ce fichier Ah ? Non. Non, pas ceux-là. On doit cliquer sur ce type ici. Ah, il y a l'image elle-même et allez ici à ah, image sur le côté droit et remarquez. C' est pour 97 par un des sept. Donc pour 97 avec un des sept Heizo pour 97 par 107 Donc je veux revenir pour 97 par 107 et je vais juste le mettre à ça pour 97 par 107 et, vous savez, c'est un peu gros. Ok, c'est un peu gros. , Au moins,on a dénoncé le rapport d'aspect. Ce que nous pouvons faire est si vous maintenez Maj sur votre clavier et que vous cliquez et faites glisser, il maintiendra le rapport d'aspect. Ce qui signifie qu'il ne vous laissera pas écraser et étire un décalage maintenez enfoncé et cliquez et faites glisser. Et il va devenir plus petit, et il va maintenir son rapport d'aspect. Donc, même si c'était plus grand que nous le voulions, nous pourrions juste le faire ici pour en faire la taille réelle que nous voulons. Et là, c'est joli et joli. Nous n'étions pas contrariés par les designers fous et les choses allaient bien. Ok, bien
sûr, comme d'habitude, mise en page
automatique ne nous fait aucune faveur dès la sortie de la boîte. On doit faire le travail. C' est bon, c'est ce
que nous sommes là pour que nous puissions travailler. Donc on a notre logo, et on a juste besoin d'une épingle. Droit. Donc on veut un stylo au sommet. Nous voulons environ 39 pixels. C' est très bien. Maintenant, faisons-en 40 pour le rendre agréable, accord ? Joli. Et même donc, 40 du haut est ruiner quelque chose d'autre que nous voulons faire ? Eh bien, je pense que dans notre cas, allons juste forcer l'intérieur de la hauteur sur toutes les tailles de l'appareil peut. C' est pour le faire rester là. Donc, nous ne allons pas sur le rapport d'aspect car il a ces contraintes. Entendre quelque chose comme ça ferait juste la largeur et la hauteur pour dire Ok, si cool. Maintenant, remarquez. Il n'est toujours pas aligné au centre. Eh bien, c'est assez facile. Si tu te souviens, on peut aller au bouton de ligne, accord ? Et nous pouvons simplement dire horizontalement dans le conteneur et magiquement est maintenant une ligne. Donc, si nous zoomons ici et notre aperçu et nous allons de l'avant et ajouter et iPhone 4.7 pouces, il semble toujours bon. D' accord. Même avec la nuit sur les deux. Mais ça a l'air bien. Faire des progrès maintenant. Bien sûr, nous avons besoin d'un bouton de lecture. Donc, avant d'utiliser des images, nous pouvons également lancer une image sur un bouton. Donc je vais faire glisser un bouton ici maintenant. C' est Ah, c'est gentil et mignon, mais c'est bon. On va le remonter. Alors je suis allé ici et j'ai cliqué. Le petit sait seulement quel genre d'icône c'est. C' est quelque chose. Quoi qu'il en soit, nous cliquons sur les attributs ,
inspecteur ,
et ,
euh, nous allons juste aller de l'avant et définir une image par défaut. D' accord ? Image par défaut, et ce sera le bouton de lecture. Je vais faire ça. Déjà fait une bonne taille pour nous ici. Ok, donc je vais aller de l'avant et supprimer le texte. C' est le titre. Parce que, comme vous pouvez le voir, c'est juste là. Donc je vais le supprimer et appuyer sur Entrée, accord ? Et maintenant, le fusil Texas. Nous ne voulons pas vraiment ce texte parce que nous avons nos propres textes, et je vais aller de l'avant et redimensionner ça. Je sais quelle taille je le veux. Ah, et ça va être à environ 249 sur 120. Juste, euh, j'ai joué avec ça tout à l'heure, et c'est à peu près la taille que je veux ici. D' accord ? Et bien sûr, comme vous pouvez le voir, il n'est pas aligné comme nous le voulons,
donc le contraint à la rescousse, aligner horizontalement dans le conteneur. Oh, mais maintenant c'est énorme et c'est là-haut. Est-ce que ça ? On dirait qu'il a même grandi en taille. Eh bien, c'est parce qu'il l'a probablement fait. Si nous cuisinons cette contrainte ici, allons de l'avant et épinglons au bas 65 loin du bas. Et puis allons de l'avant et donnons-le dans une hauteur qui est fixe. Donc, il restera que peu importe quelle taille d'écran il est, et là vous l'avez comme par magie c'est. Fais ce qu'on veut. N' oubliez pas que les
contraintes n'ont généralement pas l'aspect que vous voulez qu'elles présentent ou que vos vues n'utilisent pas ces contraintes dans votre aperçu tant que vous n'avez pas toutes ajouté. Ok, alors ne pense pas que quelque chose soit cassé tant que tu n'as pas regardé un peu dans le futur et dit , Oh, je crois que je dois le faire. Ça et ça. Et comme vous pouvez le voir, ça a bien fonctionné pour nous. Ok, donc on a les hum, presque toutes les pièces pour l'écran principal ici. Nous avons juste besoin d'une chose de plus, qui est ce qu'on vous appelle. Champ de texte I. Alors je vais vous taper. Champ de texte I. D' accord. Je pourrais aussi simplement taper dans le champ de texte avec un F et il viendra est agréable peu de recherche pour vous. C' est cliquer et faire glisser dessus. Ok, euh, faites un peu plus haut. Rendons-le un peu plus long. Faisons ça aussi longtemps que le bouton de lecture et ah, on va et je vais cliquer sur le bouton Thea ici et on va lui donner un
texte réservé . Et on va dire combien de robinets pour gagner ? Bien sûr, le
met sur le côté gauche. On n'aime pas ça. Alors, cliquez sur le bouton central juste ici. Centrez le texte. Apportons-le quelques tailles. En fait, rendons le plus lisible. Tu es probablement porte-monnaie. Tu perds de l'espace sur le frottis. Ça n'a pas l'air super. Eh bien, on va réparer ça aussi, aussi. Et je vais aussi changer le plaisir. Je déteste le système IOS combattu par défaut. Un des plus beaux fonds que je recommanderais d'utiliser votre absolument, vraiment ? Comme la police par défaut est vous. Hum, abord, clipsez le thé ici. Je devrais probablement expliquer que couper le thé et sur le tien est amusant. Changez-le sur mesure et laissez-nous rester juste là sur Helvetica New. Ok, restons là. Je pense que c'est un super combat et, euh, bien
sûr, vous pouvez choisir n'importe quel type de police que vous êtes. Il y a un téléphone. Vous pouvez également importer des polices personnalisées, que nous obtiendrons plus tard dans le cours et, euh, look fait. Et nous sommes comme, Eh bien, ça n'a pas l'air si génial. Eh bien, je suis d'accord, euh, et ce n'est bien sûr pas aligné là où il voulait être. Alors faisons quelques choses. Allons-y et disons-le par le bas. Au fait, quand vous commencez à arranger les choses, ce n'est pas les étaler. Dans tous les cas à la vue super, c'est en fait les étaler en fonction des autres choses qui sont à proximité d'eux. Nous sommes donc à 18 pixels du bouton de lecture, et c'est exactement ce que nous voulons. Ça va ? Et nous savons aussi, bien
sûr, qu'on devrait probablement le dire pour que ça ne se rétrécit pas sur nous, OK ? Et cette fois, on va changer le plus haut. Donc, remarquez comment ici, dans le côté 10, vous ne pouvez pas redimensionner la hauteur du champ de texte. ne sais pas pourquoi c'est de cette façon parce que la plupart des développeurs que je connais, y compris moi-même, changent
toujours la hauteur des champs de texte parce qu'ils ne sont tout simplement pas assez haut, Mais ils n'aiment pas le changer ici. Pour que tu puisses choisir. Faites, cependant, c'est que vous pouvez le changer avec une contrainte, et nous allons cliquer sur la hauteur et nous allons cliquer sur 45. OK, donc on a tendance au fond. Nous l'obtenons dans la hauteur de 45. Ça a l'air bien. Et je vais aller de l'avant et, euh oh voyons ici, l'autre colonne vertébrale. Et il y a encore une chose que nous devons faire. Vous êtes probablement comme comment nous devons le centrer. Et si c'est ce que tu pensais, tu as raison. Et si ce n'est pas ce que tu pensais, alors tu avais tort. OK, donc on ne va pas l'envoyer à tout le conteneur cette fois juste pour être différent. Nous allons juste nous concentrer sur ce contrôle parce que nous savons que le bouton de lecture est déjà centré. Et en passant, vous pouvez soit sélectionner plusieurs éléments. Vous pouvez maintenir enfoncée, commande et cliquez ou vous pouvez réellement maintenir le décalage vers le bas. Cliquez sur fait les deux. Donc ce que je vais faire cette fois parce que je vais cliquer sur le bouton de la ligne et je vais
dire que ces gars ont des centres horizontaux et là vous avez le côté droit. Regarde ça. Un joli texel
gros qui a l'air bien. Et nous avons tous nos contrôles. Vous voulez voir votre travail de main en action ? Je suppose que tu dis oui, mais comme je ne t'entends pas, on va le faire quand même. Compiler sentir zone réussi. Et regarde ça. Il fait ce que nous voulions faire. Regardez ça,
même les faits saillants pour nous. C' est cool ? Aucun travail supplémentaire n'est nécessaire. C' est ce que le bouton fera pour vous. Super cool sur le talon ici. Bouton d'arrêt et ah, on a fait des progrès. Maintenant, nous savons que nous avons appuyé sur le bouton de lecture et nous entrons Combien de robinets pour gagner ? Nous savons que les pièces de monnaie vont apparaître sur l'étiquette et que ces choses
vont disparaître pour qu'on puisse aller de l'avant et juste jeter que je suis ici maintenant . Ok, donc ce que je vais faire, c'est pour des trucs. Je vais les cacher. Je vais sélectionner les trois. Cette fois, je vais aller à droite par ici. D' accord ? Je vais cliquer caché juste pour qu'ils disparaissent de l'écran pour le moment, le
rendre plus pratique. Ok, je vais jeter un bouton ici, tu te souviens ? Parceque cette Parce pièce est à base de plantes. Ok, alors faisons ça moche, mais pas si laid ou le côté droit de votre débarrasser du présentateur de texte. C' est maintenant invisible par ici. Et allons de l'avant et prenons une image et mettons la pièce de monnaie. Oh, comme c'est gentil. En fait, il est allé de l'avant et a fait ça pour nous. Euh, tout seul. Tellement cool. D' accord. Et voyons, quelle science devrait-il être ? C' est un peu trop grand. Je vais dire qu'on va faire 1 72 par 1 77. Tu peux jouer avec ça toi-même. Um, autant que tu veux jusqu'à ce que tu aies bien compris. Euh, ça n'a pas à être exactement comme je le conçois ici, OK ? Et maintenant, on n'a pas besoin de le cacher. J' ai été très bien ici parce que nous savons que le local ne sera pas là. Ok, donc oui,
ça a l'air un peu funky, mais ça va maintenant, parce qu'on va l'étaler. On va cliquer sur l'alignement ici, et on va horizontalement dans le conteneur. Super. Et puis j'ai remarqué que la mise en page automatique fonctionnait contre nous. Eh bien, frappons la mise en page automatique dans le visage. Disons avec un œil est fixé et il est là. C' est réparé et c'est au centre maintenant. Il pourrait être au mauvais endroit parce que nous ne l'avons pas encore aligné au sommet. On a juste Yep. Voyez comment il fait ce qu'il veut faire à nouveau. Les
choses ne sont pas l'obéissance. Allons de l'avant et cliquez sur le bouton de broche et cette broche il huit pixels du haut. Si on fait ça sur nos deux écrans, accord ? Il fait exactement ce que nous voulions dio. D' accord, il y a encore une chose dont nous avons besoin, non ? Ce serait une étiquette que nous avons déjà faite. Allons-y. Vous êtes une étiquette, mais juste là au milieu. Et je sais que ça va être une plus grande étiquette. Donc je vais aller de l'avant et juste agrandir tout de suite, et je vais le centrer jusqu'à ce que ça me donne ces lignes bleues juste là. D' accord. Et puis je vais cliquer sur cet inspecteur d'attributs bizarre,
trouver ce que c'est, accord ? Et, ah, on va le centrer en cliquant sur ce bouton interactif, on va le
changer. Ce méchant système s'est battu, et nous allons aller à Helvetica personnalisé de taille 17. Ce n'est pas près de ce dont nous avons besoin. En fait, rendons ça audacieux. Oh, on peut changer de style ici. Scène très cool. Allons-y. gras. Parfait. Ce n'est toujours pas assez grand. Et, ah, se rapprocher. Ça se rapproche, donc je vais le rendre encore plus grand maintenant, ok ? Et simulons ce que ça va dire. Je vais sortir le mot label et je vais dire 100 robinets. Ça a l'air bien. Pourtant, je pense que ça pourrait être un peu plus grand. C' est un jeu que vous savez, doit être très présent à l'utilisateur. Ok,
ça a l'air très bien. Bon, maintenant, Black ne va pas dio, bien
sûr. Alors allons de l'avant et utilisons du blanc. Oui. Non, nous avons l'air très pointus. Et tout ce qu'on a à faire, c'est de mettre ce gars dehors, alors allons-y. Et, euh, horizontalement et conteneur. D' accord. Alors remets-le là-haut. Fais tout ce qu'il veut. C' est très bien. Cliquez sur le bouton de la broche. Épinglons 33 pixels de la pièce. D' accord. Joli. Et, euh, allons de l'avant et gardons juste la hauteur et le avec Faisons le réparer. Donc, hum, ça reste la taille dont nous avions besoin pour rester bien à trois contraintes. Et comme ça,
ça l'a mis là où on s'attendait à ce qu'il aille. Plutôt cool. Mais c'est toujours bon à faire. Je suis quelques tests ici est bien de s'assurer que sur votre plus petit écran qu'il semble bon. Donc vous savez, nos jeux ne vont jamais dépasser, disons 1000 robinets. Je suis sûr que quiconque joue à cette application ne voudra pas taper cette pièce 1000 fois, donc ah, 1000 robinets est bon, et il convient toujours ici très bien. Et puis, si vous voulez mettre des virgules, vous pouvez le tester. Et, euh, tu sais, ça a l'air bien. Toujours enlever le commun parce qu'on ne va pas faire face à ça aujourd'hui, donc tout va bien. Bon, donc maintenant nous savons que ces choses n'apparaissent que lorsque le suppresseur de bouton de lecture va
aller de l'avant et cacher ces deux choses. Alors maintenez le décalage. C' est comme, tous les deux aller ici et cliquer caché. Maintenant ils étaient cachés, et je vais aller de l'avant et une nuit des autres et faisons-le du côté gauche cette fois. Donc,
euh, mais dans non, ce n'est pas très descriptif, est-ce pas ? Donc, si vous appuyez sur Entrée sur votre clavier quand cela est sélectionné ici sur le PDG
côté gauche , c'est le président bleu. Er vraiment dur, Sam. D' accord. Je n'appellerais pas ce bouton de lecture. C' est bon de renommer ces choses, Teoh quelque chose de plus descriptif. Et vous savez que c'est tapper devrait probablement appeler ce logo. Et c'est un autre bouton. Et appelons ça Ah, pièce de monnaie. Mais dans je suis juste en appuyant sur ces et puis ah analyste tape étiquette lbl ok. Et puis, euh, on a un champ de texte. C' est rétro BGE s un BG pour le fond, donc je le laisse probablement là. Et, euh, nous avons juste besoin de notre champ de texte. Ok, appelons ça,
euh, euh, robinets l'appelleront txt pour un champ de texte. Ok, on y va. Bien sûr. Tout est parti maintenant, alors allons-y et cachons les choses que nous ne voulons plus cacher. Donc on veut qu'on ne le veuille pas. On veut la pièce. Mais et, euh, le logo va par ici à droite, l'intérieur et décoche caché, et nous sommes de retour dans les affaires. Donc, nous avons tout ce dont nous avons besoin est faras interface utilisateur graphique. Maintenant, nous avons juste besoin d'écrire du code, donc nous allons faire les choses un peu différemment aujourd'hui avant que vous nous voyiez. Donc je parle au pluriel ici, tu m'as vu traîner. Eh bien, je vais te montrer quoi ? Je vais vous montrer ce qu'on a fait. Tu sais, on a fait que je te montrerai quand même. Donc, si nous sortons du mode aperçu ici, il suffit de cliquer sur ce gars de l'aperçu ici et aller orteil automatique et contrôleur de vue. Si les automatismes ne sont pas là, vous allez au manuel, puis vous allez à naviguer pour votre projet. Trouvez-vous le contrôleur de vue aussi rapide ? On clique juste ici. Qu' est-ce que tu nous as vu faire au pluriel ? Ce que tu m'as vu faire, c' est ça. Eh bien, ils contrôlent maintenant et cliquent et glissent et laissent aller par ici dans le code. Droit ? Donc c'est cool. C' est une façon de le faire. Je vais te montrer une autre façon de le faire. En fait, je connais beaucoup de programmeurs qui ne le font pas de cette façon. Allons-y et échappons à ça. Et je vais me débarrasser de l' , éditeur
assistant ici, et je vais cliquer sur Éditeur Standard seulement. En fait, on va juste laisser cet écran ensemble. On va voir le contrôleur aussi rapide,
comme, Attends, Attends, qu'est-ce qui se passe ? Et aussi, allons de l'avant et flexionnons ces fonctions ici. Ces fonctions aériennes, mais on n'a même pas besoin de les voir ici, parce qu'on ne va pas les utiliser. Ok, euh, on a reçu un avertissement de mémoire. Oh, eh bien, on ne va pas s'en occuper. Donc, et nous allons expliquer ces fonctions plus en détail tout au long du cours. Ok, alors qu'est-ce qu'on fait, je ne me souviens pas. C' est pour
ça qu'on le fait de cette façon. Parce que je veux que tu te souviennes que je veux que tu aies ça enraciné dans ton cerveau en sachant comment faire ça par l'art. Donc on va faire un signe et je serai la côtelette, OK ? Où le mot clé semaine va d'abord, puis var ok. Et puis un nom parce que vous faites toujours un nom après une variable. Et alors que voulons-nous faire en premier ? Pensons à la première partie de l'écran. Donc, il a un chignon de jeu. Il a un champ de texte et un logo. On va avoir besoin de tout ça parce que tu dois les cacher. Alors allons chercher le local d'abord. Alors disons la semaine de notre logo. Et une chose qui est commune à faire dans,
hum, le développement d'
iPhone. Vous n'avez pas à le faire, mais c'est courant de mettre le type de contrôle, euh, quel type de contrôle c'est. Donc, je peux dire image de logo vue. Ou je pourrais juste dire image locale. C' est probablement plus court. Et il se souvient, image
inférieure de type vous I image vue et nous avons mis le signe de livre à la fin. C' est ce qu'on appelle et implicitement décapsulée variable. Et tu es genre, Oh, dis quoi ? C' est bon. Vous ne comprenez pas que nous allons aller beaucoup en profondeur sur le déballage et les options, que vous avez peut-être entendu plus mai pas Donc nous savons que nous avons l'image locale. Ça a l'air bien. Ok, c'est un autre. Je VL la semaine de notre et quel est le prochain que nous voulons faire ? Champ de texte. Alors appelons ça. Ah, hum barre beaucoup de robinets. Txt. Ah, oui. Ça m'a l'air bien. Vous êtes un champ de texte est le type de l'exclamation à la fin regardant bien. Et nous avons un bouton peut-être des sorties semaine de notre ok. Et ah, celui-là va être traîneau, mais et tu as un bouton qui a l'air bien et automatique est très gentil avec nous. Et, ah, sentir des choses que je remarque ici. Comme s'il avait rempli le style ici. C' est un insecte. Il ne devrait pas être sur le terrain parce que nous ne l'avons pas encore connecté, mais il peut disparaître plus tard. Donc juste pour que tu saches. Ok, donc on a ces trois contrôles. Bien. C' est ce qu'on veut. Alors, qu'est-ce qu'on veut qu'il arrive ? Réfléchissons à ça. Nous voulons quand un utilisateur appuie sur le jeu et nous voulons que le jeu commence. Nous voulons que ces contrôles se cachent, et nous voulons que les autres contrôles s'affichent. Donc, nous pourrions aussi bien aller de l'avant et juste mettre les autres contrôles ici est bien, aussi, pour que nous puissions leur montrer la semaine est. Et qu'étaient-ils ? Donc on a une pièce de monnaie. Appelons ça de Biden. On appellera le bouton. Provoque le bouton sur lequel vous appuyez. OK, mon
bouton à Ivy Outlet Week va bien. Et on va appeler ça, euh, mais dans l'étiquette, c'était juste l'étiquette. Donc on appellera ça, hum taps, étiquette du type de vous. Je l'étiquette. Ok, je le garde et laisse le code X. Je pense que toutes les erreurs disparaissent. D' accord. Très bien. Nous avons tous nos contrôles ici. Vas-y. Parlons de l'autre côté. On va relier ces choses. On a déjà tout écrit ici. C' est sympa. Donc maintenant, vous pouvez vraiment aller ici à gauche à l'intérieur et cliquer sur votre storboard. D' accord ? Ce que nous pouvons dio est sur votre contrôleur de vue juste ici. D' accord ? Tu peux juste juste. Cliquez sur et cliquez sur. Cette icône touche ici l'étiquette, et vous pouvez soit la faire glisser ici. D' accord. Sur l'étiquette des robinets. Tu vois ? Faites-le, ou vous pouvez aller ici et le faire. Maintenant c'est invisible ici, donc on ne veut pas le faire. Trouve ça, mais on ne veut pas le faire comme ça. Alors, parce que qui sait quoi ? On va le laisser continuer. Donc, et remarquez comment Aussi, il vous permettra seulement de faire le type que vous avez défini. Donc ça va seulement nous laisser utiliser que vous j'étiquetterai. Nous n'en avons qu'un à l'écran. Il n'est sélectionné que celui-là. C' est vraiment intelligent comme ça. Cliquez sur celui sur le côté gauche. Remarquez comment il est maintenant connecté. Donc, nous avons juste connecté le bouton appuyez sur. D' accord. Et si je n'avais pas renommé ces choses serait difficile de savoir lesquelles choisissaient ici. Donc, le bouton de touche Eh bien, c'est la pièce de monnaie et ok, le bouton
de lecture, bien sûr, est le bouton de lecture. L' image du logo est le logo. D' accord. Combien de robinets ? Texte. C' est notre champ de texte. Et quoi ? Nous les avons tous sélectionnés ici. Contrôle d'affichage de la recherche qui est leur par défaut. Ne vous inquiétez pas, alors ils sont tous connectés maintenant pour retourner à notre manteau. Donc vous venez d'assister à une autre façon de faire quelque chose, et dans ce cas, il n'y a personne de bonne ou de mauvaise façon. C' est ce que tu préfères. Donc, ce que nous savons, c'est quand un utilisateur clique sur le bouton de lecture, vous voulez que le logo, le champ de texte et le bouton de lecture disparaissent, et nous voulons que le bouton de touche et l'étiquette de robinets apparaissent. Et, bien
sûr, si vous vous souvenez d'un bouton, c'est un clic de boutons pour être détecté. On a besoin d'une action Ivy. Alors comment on fait ça ? Ici, dans le manteau ? Allons-y et faisons ça tout de suite à Ivey Action Funk pour la fonction,
Ok , et on nous appelle ce qu'on veut. Vous donnez à une fonction un nom que vous voulez, et ça s'appellera Disons sur le jeu, mais dans pressé, ok et ah, allons de l'avant et mettre un expéditeur, et, euh, ça va passer dans l'objet qui a été tapé, et nous savons qu'il va nous envoyer que vous pourquoi bouton ? Alors allons-y et mettons-toi bien. Mais ici, il veut le point d'exclamation. Et là, nous l'avons en jeu. Bouton pressé. Maintenant, encore une fois, ce n'est pas encore connecté. Donc on doit le fair
27. Exercice - Application multiples: Bienvenue, tout le monde. Nous allons construire et faire de l'exercice, et ce n'est que l'aperçu de ce que vous allez faire. Et donc je vais aller de l'avant et faire apparaître les images qui vont utiliser OK sur vos composites libres et prendre ces euros si vous voulez qu'on utilise ce petit tampon rose ici et nous allons utiliser ce fond de tableau à craie par ici. Et puis je viens de créer un logo sur l'artisanat de texte ici appelé multiples. Et en passant, je vais vous donner toutes ces images dans le code source ainsi que dans des fichiers séparés afin que
vous puissiez construire l'application avec ces images. Cependant, je voudrais vous encourager vivement à saisir vos propres graphismes et commencer à apprendre à le faire si vous le pouvez. Ne vous attardez pas à ce sujet. Mais si vous pouvez commencer à obtenir vos propres graphismes et commencer à vous habituer à trouver des choses qui vous plaisent et qui sont agréables et à les amener dans des projets, il y a
donc la ressource est que nous allons utiliser, je vais aller de l'avant et exécutez la version finale de l'APP. Ok, cette application est appelée multiples comme vous pouvez le voir. D' accord ? Et l'idée est qu' un utilisateur mettra un numéro ici, n'importe quel numéro un à travers n'importe quoi. Hum, et, euh, ça va ajouter. Gardez-le ajoutera ces nombres par le multiple. Ce que je veux dire, c'est que vous avez un certain courant et vous allez garder une trace de lui et ajouter par plusieurs. Donc si je vais de l'avant et que je clique, disons cinq et ils pourraient jouer. C' est son annonce de presse pour ajouter Makes sense. Voici le bouton Ajouter. OK, cliquez. Ajouter zéro plus cinq équivaut à cinq canettes. Ajoutons par poste cinq égal à 10. 10 plus cinq équivaut à 15. 15 plus cinq équivaut à 20 20 plus cinq égal à 25 25 plus cinq est à 30. Vous obtenez le point et vous continuez à cliquer jusqu'à ce que vous arriviez à un certain nombre. Maintenant que certains nombre que la quantité maximale de multiple ou en cours d'exécution que vous arrivez à vous
pouvez déterminer que vous-même et vous pouvez coder dur ce droit dans votre code Ok, comme une variable R est un ok constant, est un let et ainsi de suite à mettre l'accent sur les projets d'avoir des graphismes, et ils les exposent. Cela a évidemment bien aménagé ici. Euh, avec des contraintes. Quel que soit le multiple que vous mettez en sera ce qui fonctionne en maths et quand vous pouvez jouer cacher quelques contrôles. Donc, quelques contrôles. Nous définissons un texte par défaut ici lorsque le jeu n'a pas encore démarré. Nous avons un bouton lorsque vous cliquez. Ajoutez ce qu'il fait ici, c'est qu'il prend le courant, en l'
ajoutant, en y ajoutant le multiple et en vous donnant un nouveau. D' accord. Et donc quand je clique à nouveau maintenant, l'ancien certain est deux plus le nouveau certains de à pas égal pour Ok, Donc j'ai fourni le code source pour ce projet. Je ne veux pas que vous le regardiez à moins que vous ne le fassiez absolument. Je veux vraiment que tu trouves ça tout seul. C' est tout le but de ces exercices. Ok, c'est Teoh, c'est de le comprendre. Si vous rencontrez des problèmes, je suggère d'aller sur notre site Web et d'aller dans la communauté et de voir quelles informations vous pouvez trouver aider vous pouvez obtenir avant même d'aller regarder le code source parce qu'une fois que vous regardez la source code, c'est un peu facile sur. Les choses vont commencer à retenir. Alors essaie de te cogner un peu la tête. C' est normal d'être un peu frustré. C' est normal dans la programmation. Et, euh, encore une fois, je vous courage d'utiliser vos propres graphismes. Mettez un peu de votre propre style dans ça, et ,
euh, va t'amuser avec, et ça va t'aider à te guider dans les prochaines parties du programme. Alors bonne chance.
28. Swift 2: Mark prix ici avec Deb pentes point com et haut du muffin à vous aujourd'hui, vous allez plonger droit dans et parler d'une augmentation ou un visage. Je vais aller au code X. Je vais déposer une nouvelle aire de jeux et le sortir ici. D' accord ? Je suis allé au fichier de code x. Nouvelle aire de jeux. D' accord. Et allons-y et appelons ça. Ah, tout ce que tu veux. Je dirais que mon augmentation et les femmes l'enregistrent ici sur le bureau. Ok, supprimez ce code standard. Et qu'est-ce que c'est ? Un rayon ? Et bien, et un rayon est une collection de données. Il a été utile pour nous jusqu'à présent de pouvoir ajouter des variables, mais des données en eux et Constance. Mais que se passe-t-il si vous avez besoin d'une collection, par
exemple ? Que faire si vous avez besoin d'un panier ou quoi ? Si vous avez besoin d'une liste de succès ou quelque chose comme ça, vous devez trouver un moyen de prendre soin de vos gens. Mais c'est dans un rayon, d'accord ? L' un des principes fondamentaux de la programmation. Alors allons de l'avant et créons notre tout premier tableau rapide de nos noms. Egale toi. Prêt ? D' accord. John Jacob Jingle,
cependant, cependant, et Smith Okay. John Jacob Jingleheimer Smith a quelques noms là-bas et, euh quoi ? C' est juste ici. C' est ce qu'on appelle un littéral de tableau. Et ce qu'on fait c'est qu'on y met des valeurs littérales dès qu'on est à Stan Shih. Ok, donc nous créons un tableau et mettons une variable. Maintenant, vous êtes probablement habitué à voir des choses comme var un mot, vous savez, de type chaîne est égal à mot. Ok, donc ce serait dans une variable de type chaîne. Eh bien, c'est un tableau, et il a un type est une houle à Ok, Jusqu'à présent, les noms sont en fait un tableau. Donc c'est comme ça que tu ferais. Euh, vraiment faire comme ça. Ah, nous allons faire une nouvelle ligne ici et dirons, ah, de nos noms à est un tableau de chaîne de type. OK, donc c'est la syntaxe pour cela. Maintenant, si j'enlevais ces crochets, ce serait juste une ficelle. Mais avec les crochets disaient que c'est un tableau. Ok, donc je ne serais pas capable de faire quelque chose comme ça. Nomme deux égaux. Hé, qu'est-ce qui se passe ? Ok, c'est une chaîne et la chaîne dit. Mais pourquoi cela ne fonctionne-t-il pas bien, le type n'est pas une chaîne sur cela. Le type est un tableau de type string meeting. On va avoir un tas de cordes à l'intérieur du tableau. Et c'est comme ça que vous faites une collection. Une collection simple, et c'est super puissant. Ok, alors sortons et débarrassons-nous de tout ça ici. Et j'espère que vous pouvez déjà voir l'avantage de travailler avec une augmentation. Vous pouvez commencer à manipuler des données, des
collections de données, assembler des choses, et, ah, il y a beaucoup d'utilisations pour cela. Mais tu n'es pas limité, Teoh. Ah, des mots. cordes. Vous pourriez faire toutes sortes de courses de n'importe quel type pour que je puisse sauver nos numéros. Egal 44 2 33 12 et 54 Oui, Quatre. Ok, donc c'est un tableau désactivé. C' est OK. Et remarquez comment sur les chiffres. Je ne mets pas de citations autour d'eux. OK ? Les chiffres n'ont pas de citations autour d'eux. Juste des cordes. Ok, donc cela ne fonctionnerait pas, bien
sûr, en
mettant ça là, parce que ce n'est pas une chaîne qui est une chaîne. D' accord, on pourrait faire des chiffres affaiblir pour intimider les ins. Tu sais,
euh, euh, peut-être que Tender a quelque chose de similaire. Comme, euh, tu sais, des gens que tu connais, sexy ou pas, tu sais ? Et puis, ah, ce serait vrai. Faux. Vrai
faux, Faux chutes. Faux. On sait ce que les 10 d'habitude aiment. Ok, donc, euh, tu commets des milliards, leurs numéros et leurs chaînes, et il y a beaucoup d'utilisations. Ok, qu'en est-il de ça ? Ok, bar, euh, des égaux
mixtes, et on va y aller et mettre un nom ici encore, John. Mais cette fois, on va à 200. Et ces bébés ont mis une ficelle là-dedans et c'est vrai. Est-ce que ça va marcher ? La réponse est oui, mais ne le fais pas. D' accord ? Vous ne voulez pas mettre différents types de données dans votre taux, et c'est plus la meilleure pratique. OK ? La raison pour laquelle vous avez rassemblé une collection de données est parce que les données font partie de, euh, quelque chose de lié. Ok, si vous utilisez différents types de données comme ça, il devient vraiment déroutant de savoir ce qu'il contient, surtout de savoir comment l'utiliser. Ok, alors qu'est-ce que tu vas entendre pour moi ? Et ce sont les mots du programmeur professionnel Mark Price. Je ne suis pas tout le savoir et tout puissant, mais je voudrais dire que jamais, jamais, jamais, jamais,
jamaisfaire ça ,
jamais . Ok, donc je vais effacer ça de ton cerveau. Mais je ne voulais pas te le dire. Ah, tu pourrais faire ça. Et
je sais que tu n'es pas censé le faire. Ok, alors que pouvons-nous faire d'autre de nos pays, Ok, donc je déclare juste et ah, déclare un rayon. Bien sûr qu'il ne l'a pas été initialisé,
n'est-ce ? Je ne peux rien faire avec ça tant qu'il n'est pas initialisé. Alors, comment vous initialisez maintenant ? Un rayon vide ? Eh bien, presque comme si tu appelais une fonction mettre Thea. Oups. Allons au deux-points ici et mettons les égaux Ce que nous allons dire de son pays est une variable et ce que cela va faire ici, ça va créer un tableau vide de chaîne de type. OK, donc on a mis les parenthèses à la fin pour créer un tout nouveau rayon vide. Et comme vous pouvez le voir, il est juste là n'existait pas auparavant, mais maintenant il le fait alors que Lions six est plein de chaîne, littéral est que nous mettons des valeurs littérales dans le tableau. Dès le début en ligne. 14 disaient que nous n'avons pas encore de valeurs, mais faisons juste un tableau vide, ok ? Ce n'est pas trop mal pour que tu l'aies. Un tableau vide s'initialise. Ok, voyons voir ici. Disons que nous voulions créer un rayon vide. , Au moins,créez un nouveau tableau, mais allez-y et initialisez-le avec quelques valeurs initiales. Donc disons, euh, nous voulions dire de nos trois meilleures couleurs. Vous voulez obtenir les trois meilleures couleurs d'un utilisateur ? On va dire qu'il est égal à ficelle. Et tu sais comment on a mis les parenthèses à la fin. C' est un taux vide. Il a aussi un ah spécial, initialiser er er ici. Ok, où vous pouvez mettre en compte. Donc, nous voulons dire trois et la valeur répétée. Pas de couleur. Ok, hum, ou si on voulait, on pourrait mettre une valeur par défaut et dire, hum ennuyeux Brown. D' accord. Et ce que ça va faire, c'est nous donner un tableau de trois éléments et y copier la même chose . Donc c'est vraiment génial. Si vous voulez des valeurs par défaut dans le tableau avant de commencer à l'utiliser, ok. Et ah, donc nous faisons des progrès avec les Rays, ce n'est vraiment pas beaucoup pour eux. Ok, parlons de sortir des choses d'eux. Disons que je veux Teoh je veux que Teoh change quelque chose, en fait d'abord va changer quelque chose qui va sortir quelque chose de nous. Disons que je veux changer le premier brun ennuyeux. Ok, donc, euh, les utilisateurs durent maintenant Dan, et ils peuvent améliorer leur couleur. Donc je vais dire que les trois couleurs et le support carré zéro est égal. Je dirai bleu. Donc, ce que nous avons fait est que nous avons accédé au premier élément dans le tableau. Ok, alors comment augmenter le travail. C' est important. Comprendre comment le travail de relance est ? Ils commencent à zéro. D' accord. Et voilà, ils sont séquencés. Alors regardons ça un peu plus. Leur séquence donc un est égal au rouge et deux égal au début serait très cool couleur. Ok, donc ce que nous avons fait est que nous avons accédé aux éléments dans ce tableau, et nous leur avons assigné une valeur. Donc, lorsque vous créez un tableau, il commence à zéro. Donc, si vous regardez ça ici en ligne six. Combien d'éléments pensez-vous que les noms ont ? Ok, eh bien, regardons ça. Il y en a un, 2345 Ok, alors comment on sortirait Smith ? On dirait bar ? Un nom est égal à des noms ? Cinq. Non, il y a un air. Pourquoi ? Eh bien, parce qu'une augmentation commence à zéro. Ok, donc, Jonah zéro Jacobs un jingle est à Heimer est trois et Smith ses quatre. Donc augmenter toujours commencer à zéro. OK, donc super important de savoir, N'
ont-ils pas commencé à un. Ok, donc c'est comme ça que vous pouvez extraire un élément d'un tableau. Et donc si vous revenez ici, nous signons des valeurs dans le tableau. Ok, 01 et deux. Et c'est cet indice, les accolades carrées. Ok, tu vas le faire encore et encore et encore, et tu te familiariseras avec ça,
mais c' est comme ça que tu le fais. Ok, alors parlons d'ajouter des éléments un. Droit ? Donc tout ce qu'on a fait maintenant, c'est juste ici. Nous avons initialisé un tableau avec trois valeurs, puis nous avons changé ces trois valeurs. Mais que se passe-t-il si nous voulons ajouter des choses à intégrer ? Quoi ? Nous ne pouvions certainement pas faire ça. Et, euh, tu ne peux pas le faire. Tous les langages de programmation bouton swift peut. Donc, il y a une faveur de var. Les voitures sont égales à ficelle. Alors qu'est-ce que c'est ? C' est un tableau de chaîne de type, et nous le rendons vide, ok ? Et on va y ajouter quelque chose. Donc, je dois dire que les voitures de foi sont à l'envers et vous pourriez mettre un nouvel élément là-dedans. Donc disons, euh, BMW M 3. C' est une voiture amusante. Et, ah, allons-y et ah, mettons-nous une Audi. Ok, sept. Très belle voiture. Très cher. Très rapide. D' accord. Et allons-y et mettons-le. Ah, Ford Pinto. Ok, maintenant quoi ? Qui a mis ça là-dedans comme, Allez, débarrassons-nous de cette chose. Celui qui a mis ça là-dedans est fou. Alors allons de l'avant et aller à la foi voitures point Supprimer à l'index. Ok, quel indice est la Ford Pinto ? Eh bien, BMW est zéro. Audi est 14 Pinto est aussi. Alors allons de l'avant et appelons cette fonction. Enlevez-le ,
index, et il va se débarrasser des quatre Pinto. Au moins, je pense que c'est le cas. Alors dites-moi de quoi vous voulez vous débarrasser. C' est génial. Et allons de l'avant et ajoutez-en un de plus. Ok, on va dire Ah 1969 Chevy Camaro, au fait, j'en ai un. Donc, si vous êtes jaloux, eh bien, vous devriez aller bien. Donc, et comme vous remarquez leur ligne 28. Le Pinto est parti. Heureusement, OK ? Et ah, c'est ainsi que vous pouvez ajouter des articles au tarif. Et maintenant, la question est, est-ce que les articles sont ajoutés au début ou à la fin ? Eh bien, les objets sont toujours ajoutés à la fin du rayon. D' accord jusqu'à la fin. Eh bien, peut-être que tu penses à toi-même maintenant. Et si je les veux par ordre de préférence, et, euh, je dois les insérer à un certain endroit ? Eh bien, affaiblir faire ça. Ok, donc ce qu'est Weaken dio Ah, disons qu'on veut le mettre au début. On peut dire que les voitures de foi sont des points et ah, allons de l'avant et ah, hum, pas renverser. À quoi suis-je en train de penser ? Insérez les voitures préférées qui insèrent. Ok, le nouvel élément. Et ce sera,bien
sûr, bien
sûr, une voiture Nissan GTR fantastique. Et on va insérer à l'index zéro. D' accord. Et on verra ce qu'il nous dit. Il veut imprimer. Peut-être qu'il finira par y arriver. On y va. Et bien sûr, c'est là à la première place. Euh, super cool. Super facile. Ok, donc tu as regardé un stylo. Les éléments que vous avez examinés comment supprimer les éléments que nous pouvons remplacer affaiblir les éléments définis. D' accord. Des trucs très cool qui ne veulent jamais dio, c'est ah, attraper des objets qui n'existent pas. Ok, donc tu ne veux pas de Teoh ? Disons, sauvegardons notre voiture A égale foi voitures, élément 10. Ok,
ça va te donner un gros problème parce qu'il n'existe pas. Et donc tu es Apple Crash. Donc, n'excédez jamais un élément dans un tableau dans un tableau qui n'existe pas. Ou il aura des bogues dans votre application et il va planter. OK, donc on fait des progrès. Parlons peut-être d'une situation dans le monde réel,
et je ne fais ça que pour souligner. Parlons peut-être d'une situation dans le monde réel, n'y a vraiment pas beaucoup plus à soulever que ça. Il y a beaucoup de fonctions d'aide que Swift vous donne avec les Rays, mais pour la plupart, c'est les bases de base que vous allez utiliser encore et encore. Mais parlons de ça. Jusqu' à présent, disons qu'on a un panier, accord ? Et ce sera un tableau de chaîne de type, et je l'initialiserais pour le vide. Ok, c'est un taux vide. Et, euh, on a un budget. D' accord, 500$. Et je mets un 0.0 à la fin pour lui dire que c'est double et pas un int. Ok, si tu ne veux pas faire de tapage explicite comme ça, je pourrais dire ça et ça
marcherait bien. Si vous ne voulez pas faire cela, suffit de mettre le point à la fin de celui-ci, et il lui fera savoir que c'est un double. Nous avons donc un budget de 500$ de notre montant actuel de la CRAC est égal à 0,0. Donc, il n'y a rien dans notre voiture actuellement, et allons de l'avant et la fonction créative. Comme nous l'avons appris dans les leçons précédentes, ajoutez l'article au panier et cela va avoir deux paramètres. OK, d'
abord étant l'article et qui a un nom, la chaîne et le 2ème 1 sera le prix du type double. Donc, chaque fois que vous allez appeler cette fonction, vous allez passer un nom d'article et son prix. Ok, donc si le montant actuel de la carte plus le prix ainsi plus le prix
qui venaient, ça arrive. Si c'est inférieur ou égal à notre budget, d'
accord, ça veut dire qu'on peut l'acheter. Alors, panier. J' ai raté le t sur ça. Vous aimez sûrement qu'il manque un t, mais vous ne pouvez pas me parler pour me le dire alors je ne l'ai pas vu. Désolé. Panier point ajouter et ah, en passant l'article. Donc, si nous pouvons nous le
permettre, passons l'article. Et puis, bien
sûr, ajoutons à notre montant de carte actuel plus prix égal. Ajoutons le prix à cela. D' accord. Sinon. Ah, imprimez. Pas assez d'argent. On y va. Et Ah, pour ceux d'entre vous qui regardent en dehors des États-Unis, vous êtes comme, Oh, l'argent
est un terme américain ? Non, je crois que je l'ai inventé ou salé dans un jeu vidéo quelque part. Alors ne viens pas me voir pour la pratique d'anglais, s'il te plaît. Ok, ajoutez l'article au panier. air bien. Maintenant, nous ne l'avons pas encore appelé, alors allons-y et faisons-le. Ajouter un article au panier. Euh, c'est
quoi un bon jeu ? sorti Final fantasy 10 Ah, et 10 2 Classics Remade pour les ps quatre, qui, bien
sûr, est le meilleur système. Si tu n'en as pas,
c' est génial. Sur le prix est de 50,25$ Ok, quelqu'un là-bas grogne. Notre X box est la meilleure. Eh bien, Xboxes. Bien. Teoh,
j' essaye juste de provoquer une bagarre. Amuse-moi ici où je me parle. Je deviens un peu fou. Je dois faire ça pendant un moment parce que tu n'es pas assis devant moi. Vous êtes assis devant votre écran et vous êtes probablement en train de vous parler. Donc, je vais aller de l'avant et imprimer le montant de la carte actuelle après avoir ajouté chaque article au panier et je dois dire, ajouter l'article au panier à nouveau. Et cette fois, disons qu'on a un fantasme final. On va probablement avoir besoin d'eau de Javel. Parce que c'est un RPG est parfois aussi long,
et vous pouvez faire votre lessive entre les scènes de coupe longue ou autre chose,
donc ça va à 3,45$. Parce que c'est un RPG est parfois aussi long, et vous pouvez faire votre lessive entre les scènes de coupe longue ou autre chose, Ah, et allons de l'avant et, hum, présentateur quelques fois et ajoutons quelques lignes ici pour voir le montant actuel du panier . Refaisons-le. Une ligne inutile là-bas et ah, ça finira par imprimer. On y va. OK, et nous allons ajouter un autre article à l'article au panier. Ajoutons un canapé. Je ne peux pas jouer à l'appel sans canapé. Donc 150$ en 72 cents. Ceci, bien
sûr, est un canapé Walmart, pas un canapé de qualité. Et on va imprimer le montant actuel du panier, accord ? Et on a l'air bien encore. Donc nous avons 200$ dans notre carton,
illustré par un PS 4. 200$ dans notre carton, On l'a glissé dans le chariot sans le dire à sa femme, et on a oublié le budget. Et voyons s'il nous permet de l'acheter. Heureux en impression, Montant
actuel du panier. Et cela devrait imprimer $204 Parce que l'achat n'aurait pas dû être fait encore. Notre fonction l'a empêché. Tellement cool. Jetons un coup d'oeil à ce qu'il y a dans notre panier. Imprimez notre panier, le tableau, tout
le rayon. Imprimantons-le. Ok, zone. Donc, il y a trois éléments final fantaisie eau de Javel et le canapé. J' ai eu le jeu, mais la femme n'a pas laissé entrer le système. Et maintenant, je ne peux même pas y jouer. Donc, on dirait que je vais faire beaucoup de lessive et m'asseoir sur le canapé à ne rien faire. Donc voici une augmentation et sa forme la plus basique, et ce que nous venons de faire en ce moment sera la majorité de votre utilisation avec une augmentation. Vous allez commencer à penser aux types de données et aux collections que vous voulez utiliser avec. Tu sais, des chariots. Un excellent exemple. Que peut utiliser un tableau pour chaque fois que vous avez besoin d'une liste pour quelque chose ? D' accord. Donc, un outil très puissant. Super facile à utiliser. Pas trop mal. Et vous pouvez vous référer à cette vidéo si vous oubliez la syntaxe. Et il y a plein de choses cool que vous pouvez apprendre à leur sujet. J' ai été rapide quand vous allez, grandissez et apprenez. Donc, c'est une augmentation. Félicitations.
29. Swift 2 Boucles: Hé, tout le monde. Mark Price ici de Dev Slopes et nous sommes ici et le centre-ville de Cupertino. Et j'ai un invité spécial, aujourd'hui. Tim Cook est sur l'émission pour nous aider à coder. Ouais, euh, en fait
je suis juste dans mon sous-sol, mais on va lui rendre hommage en écrivant un très beau manteau aujourd'hui. Alors allons-y et commençons. On va parler de boucles, d' accord ? Et Ah, bien. Et ouvrez votre code ex ici. Je veux l'ouvrir. Je vais déposer une nouvelle aire de jeux. Ok, je vais le mettre sur l'écran, classer un nouveau terrain de jeu, et on va appeler ça des boucles. Maintenant, mettez sur le bureau. Parfait. Donc, la chose à propos des boucles est que les boucles sont ce qui permet à un programme de fonctionner efficacement pour effectuer nombreuses opérations sans avoir à copier, coller et répéter beaucoup. D' accord. Ne te répète pas. C' est le principe du sec. Ok, alors parlons de boucles et comment elles peuvent être efficaces. Disons que j'ai un ensemble d'âges. On a parlé d'une augmentation il n'y a pas si longtemps. Ok, 23 25 41 51
ans. Ok, disons 62 Ok, , disons qu'on veut savoir quels âges sont supérieurs à 50 ans. Ok, eh bien, sans quatre boucles, je pourrais être contraint de faire quelque chose comme ça. Et disons que nous voulons imprimer au conseil tous les âges qui ont plus de 50 ans. Ok, 50 ans plus. Donc ce que je devrais faire, c'est quelque chose comme ça. Si les âges zéro ok est supérieur ou égal à 50. Ok, on est heureux de dire « imprimer ». Vous avez 50 ans ou plus. D' accord. Sinon, si les âges 1 sont supérieurs ou égaux à 50. Imprimez. Vous avez 50 ans ou plus. Je pense que vous commencez à voir le schéma ici, mais je vais aller de l'avant et jeter du sel dans la plaie et le rendre encore plus douloureux pour vous parce que nous devons démontrer à quel point c'est vraiment douloureux. D' accord, allez-y et continuez et remontez. OK, alors passez par chacun des éléments du tableau jusqu'à ce que vous arriviez à la fin et allez-y et faites votre logique. Ou, tu sais, on aurait pu faire quelque chose comme ça. Si l'âge zéro est supérieur ou égal à 50 ou si l'âge 1 est supérieur ou égal à 50 ou si l'âge est supérieur ou égal à 50 ans, continuons à imprimer. Vous êtes presque vieux, mais si vous avez 50 ans ou plus et regardez cette vidéo, vous êtes super cool. Et à mes yeux, tu ne vas pas si bien, très bien. Ça a du sens. Ok, commencer à voir comment ça peut être un peu douloureux et au fait, juste se contenter de parler des âges ici. En fait, j'ai enseigné aux gens dans la cinquantaine et la soixantaine qui ont, en quelques semaines, passé de ne pas savoir, à peine eu à utiliser un ordinateur pour travailler en tant que développeur professionnel ânes dans le travail. Donc, vous n'êtes jamais trop vieux pour coder et faire de grandes choses. Et certaines personnes travaillent même à la maison maintenant et peuvent tout simplement gagner beaucoup plus d'argent. Passer plus de temps avec le codage familial est l'endroit idéal, en particulier la programmation iPhone. Donc je suis content que tu sois là, et si tu n'entends pas ma voix, ça veut dire que tu n'es pas là, et c'est malheureux. Parlons donc d'une meilleure façon de le faire,
et c' est des boucles C'est quand vous commencez à former votre cerveau à penser comme un programmeur. D' accord ? Tu dois commencer à penser différemment. Maintenant. C' est quelque chose que tu n'as pas l'habitude de voir dans le monde réel. L' idée de boucles. Ok, mais c'est comme ça que tu le fais avec des programmes et des ordinateurs, et c'est si puissant. Donc si je voulais faire la même logique,
Ok, Ok, ce que je ferais c'est, euh, écrire une boucle for. OK, alors on y va. Et, euh, et au fait,
ça ne devrait pas, euh, juste s'assurer que cette émission fonctionne ici. Donc ou si elle vieillit. Ah, vous savez,
trois, c'est supérieur ou égal à. Ah, 50. Ok, 0123 M. Print, au
moins quelque chose cette fois, ils sont il y a. Donc, nous avons évalué l'un d'eux. C' est très bien. Je vous montre juste ce travail. Maintenant, allons de l'avant et faisons une boucle quatre. Ok, Donc ce que je pourrais faire est de dire quatre var X égal à X égal à zéro point-virgule, tandis que X est inférieur à l'âge dot count X plus et puis ouvrir et fermer. Braces bouclés. Ok, donc quelques choses différentes ici. Vous êtes probablement comme, que se passe-t-il ici ? Alors allons-y et parlons de ça. Alors, d'abord quatre. C' est comme ça que vous commencez une boucle quatre dans Swift. Vous utilisez simplement les quatre p ou c'est un mot-clé reserve. Ne l'utilisez nulle part ailleurs, sauf lorsque vous voulez faire une boucle. Maintenant, cette première partie ici vous semble probablement un peu familière. Var X est égal à zéro. Ok, nous déclarons juste une variable nommée X et l'initialisons. Zéro. J' aurais pu aussi dire bar bla ou tout ce que je voulais. Ok, c'est juste une variable. Et nous disons, Hey, mettez-le à zéro. C' est la phase initiale de l'Isar d'une boucle for. Et puis nous disons, Alors que X est moins que le nombre de points d'âge C'est une condition. C' est comme une vraie fausse condition. Donc, si X est inférieur à l'âge point comptez ok. Et ce qui est des âges dot ne peut pas quel âge est notre tableau, et donc le nombre de points est en fait une propriété sur un tableau qui nous indique combien d'éléments Aaron il. Donc tout ce qu'il fait, c'est nous dire combien d'articles sont ici. Donc, si nous devions d'abord exécuter ce code, nous saurions que le nombre de points d'âge est égal à 12345 Il y a cinq éléments dans ce tableau. Et puis ça dit X plus. De plus, c'est
donc l'er incrémentiel ou le bloc d'achèvement de la boucle for. Donc, comment ça marche c'est que ça commence ici. Ok, X est égal à zéro. D' accord, ça commence juste là. En fait, allons-y et rendons cela un peu plus visuel pour vous ici. Donc, ici, cette partie ici, c'est la finition entière Isar. Ok, c'est le premier Isar. C' est ce qui se passe avant que les quatre boucles ne s'impriment. D' accord, avant être quatre. ai eu. C' est ce qui se passe avant que nous ayons juste ici est la condition. Ok, Donc ce que nous voulons dire, c'est que si X est moins dans les âges dot Count exécuter la boucle. Ok, donc encore une fois, c'est Onley. Exécuter une fois au début, l'izer initial de notre X est égal à zéro. Mais ceci ici, cette condition est exécutée à chaque fois avant que la boucle ne passe à nouveau. Ok, donc une boucle va encore et encore jusqu'à ce que tu lui dises d'arrêter. Donc cette condition est bonne, c'est la condition. C' est ainsi que vous dites à votre quatre boucle d'arrêter condition. Ok, c'est comme ça que tu dis à ta boucle quatre d'arrêter. D' accord ? Et puis nous avons le, euh, cet incrémental ici. Que se passe-t-il à la fin de chaque itération de la boucle ? Ok, est-ce que ça allait arriver à la fin, et on lui dit d'ajouter un orteil X. est-ce que ça allait arriver à la fin,
et on lui dit d'ajouter un orteil X. Donc fondamentalement, parlons de ce qui va se passer avec les âges ici. Jusqu' à présent, X est égal à zéro. C' est courir au début. Nous connaissons X zéro. D' accord. Et alors que X est moins que le nombre de points d'âge, alors disons que nous commençons la boucle quatre. OK, X est inférieur au nombre de points d'âge. Donc si on y va si on fait
ça, d'
accord, ça ira juste là. Ça va tourner ça. Peu importe le code que nous avons écrit ici, je n'en ai pas encore écrit, mais c'est ce qui va arriver. OK, et à ce stade,
Ok, Ok, X est égal à 20 Ok, donc c'était vrai. X était inférieur à l'âge. Cette cause de comptage des âges dot Count est de cinq et X égal. Zéro. Donc il est allé ici, ok. Et puis quand il exécute tout votre code. À la toute fin, ça va fonctionner. Donc X est maintenant égal à un. Et puis il retourne dans votre boucle for ici et ex est maintenant égal à un. Ok, donc X est moins en âge. Je ne peux pas. Oui, c'est vrai. Alors est retourné ici et ça va à nouveau à la fin. X est maintenant égal à deux. Donc c'est maintenant aussi. Et ce qu'il dit est, si deux X, si deux est moins qu'un compte juste bien, âge compte est 52 est certainement moins de cinq ans. Alors passons à nouveau à travers la boucle. Donc X est égal à deux, puis ça frappe ici. Donc, dans le Nexus trois est trois de moins de cinq. C' est ce qu'on dit ici. Eh bien, c'est sûr. Donc tu sais qu'on sait que X a trois. D' accord. Et, euh, allons-y encore. Maintenant X est égal à quatre. D' accord. Est pour moins de cinq. Eh bien, oui, ça l'est. Donc X est pour et nous allons dans la boucle à nouveau et puis il ajoute à nouveau. Maintenant X est égal à cinq. Ok, c'est cinq de moins que cinq. Non, la réponse est fausse. Cinq est égal à cinq. Mais cinq, c'est pas moins de cinq. Donc cette boucle se casse. Il ne fonctionne plus. Maintenant tu penses, Attends, il y a cinq éléments. Ça ne devrait pas être égal à cinq. Eh bien, si tu te souviens, c'est ça. Ah, soulevez. Commencez toujours à zéro. Ok, donc si c'était pour dire si X est inférieur ou égal à l'âge, ne comptez pas. Ça aurait traversé une fois de plus. Mais on s'arrête alors qu'il est moins que le nombre de points d'âge. Et c'est quelque chose que tu vas faire tout le temps avec quatre lèvres. Sachez juste que si vous commencez à zéro, vous allez probablement vouloir faire, euh eh bien, X est moins que les âges qui comptent ou quel que soit le nom de votre variable,
alors qu'il est inférieur ou égal à. D' accord. Et c'est comme ça qu'une boucle quatre fonctionne, elle va aller encore et encore jusqu'à ce que vous lui disiez de ne pas le faire. Donc, si vous voulez voir cela dans la pratique, tout ce que nous avons à dio ok est une impression de cette impression, et nous pourrions juste imprimer x k la variable. D' accord, et, ah, sauve-le. D' accord. Et remarquez comment ça a fonctionné cinq fois. Cela est attendu parce que les âges ont cinq éléments dedans. Il a donc traversé cinq fois, comme nous l'expliquons dans notre exemple. Et je clique juste sur ça. Ah, ce bouton ici. Et bien sûr, il est passé dans tous les imprimés. Euh, donc, euh, très cool. Donc on a juste fait un regard quatre quand il a été imprimé. Ok, maintenant, refaisons notre exemple. Ils l'étaient avant. D' accord ? Et tout ce qu'on a à faire c'est un var. L' âge est égal à l'âge. Entre crochets X. Ok, parlons de ce qui se passe ici. Donc nous créons une variable appelée âge, et ensuite nous disons que c'est égal à l'âge. Ex White, que se passe-t-il ? Eh bien, si vous vous souvenez et l'autre vidéo pour obtenir l'élément d'un tableau jusqu'à présent et l'âge est égal âge, rappelez-vous comment nous avons mis un zéro là. Donc nous disons Hey, sortez le tout premier élément et stockez-le dans cette variable. C' est ce que nous disions avant, et ah, pas différent ici. On utilise juste une course à la taxe pour en extraire un élément. Maintenant, la différence est que nous utilisons la boucle for parce que nous savons que le X va continuellement changer. Ok, ça va changer continuellement. Et donc on va l'utiliser pour saisir les index. Et bien sûr, nous pouvons être sûrs qu'il ne va pas sortir de la portée de notre tableau tant que nous rendons le X moins que les âges qui comptent. Ok, si je devais dire, vous savez, un nombre aléatoire ici, 200 Quoi ? On va avoir un problème, parce que les âges n'ont pas 200 ans. Et ça va aller jusqu'à 200 ça va casser beaucoup de fois. Et là, ça va. Ça nous brise déjà,
parce que ah, parce que ah, ça se construit en temps réel là-bas. Donc, vous voulez utiliser le nombre de tableaux en conjonction avec la boucle for, Ok. Et donc maintenant, mais affaiblir dio dire si l'âge est supérieur ou égal à 50. Ok, allons de l'avant et imprimons. Euh, tu as 50 ans ou plus. Et combien de fois vous attendiez à ce que nous imprimions ? Regardons deux fois. Eh bien, deux des chiffres ici sont supérieurs ou égaux à 50. Alors regarde ça. Imaginez si ce tableau avait un million de personnes dedans. Vous ne pouviez évidemment rien faire comme ça est mauvais, mais avec un tableau et une boucle quatre, vous pourriez simplement écrire à travers. Et bien sûr, la clé est que ces chiffres changent les échanges. Il passe par Donc encore une fois il va initialiser est au début à la valeur que vous voulez. Habituellement, il est X égal à zéro I ou n'importe quelle variable que vous voulez l'appeler. Et puis ce qu'il fait, c'est qu'il fait. Cette vérification est de X moins de cinq. Si son excellence et ses âges rendent compte, c'est vrai. Et encore une fois, c'est juste une condition qu'on aurait pu dire, euh, on aurait pu dire si, hum, heureux est malheureux. Ok, on aurait pu y mettre des ordures comme ça. Euh, j'aurais pu dire, Ah, si heureux est heureux, euh, je suis comparé cordes. Donc c'est juste une condition. Tout type de code conditionnel que vous pouvez écrire. Vous pouvez le mettre là-dedans, mais il est logique de mettre quelque chose de pertinent. Donc, alors que X est inférieur à
l'âge, le compte X plus et puis nous saisissons l'âge en allant sur le tableau, en mettant les crochets à la fin et en y mettant l'index. Ok, et nous utilisons X parce que X change continuellement pour que nous puissions contenir Lee. Prenez chaque élément dans tout le rayon, puis nous écrivons juste le code. Maintenant, si vous êtes confus par ça, c'est bon. Regardez cette vidéo encore et encore et cela prend du temps et il faut de la pratique. faut beaucoup de pratique, et ça deviendra une seconde nature pour nous. Des trucs tellement cool. Allons de l'avant et construisons simplement une petite application amusante et
simple pour le répéter plus loin. Ok, je vais aller de l'avant et aller déposer un nouveau projet et une application unique que j'aime toujours essayer. Et même quand je fais ma propre programmation, essayez de m'amuser. Parce que la programmation et une aire de jeux toute la journée deviennent vraiment, vraiment ennuyeux. Au moins, ça le fait pour moi. Alors faisons quelque chose de amusant. On va appeler ça les vieux cadenas de la vieille école A Mac. Pourquoi pas ? Et tout ça a l'air bien ici. Cliquez sur Suivant. Mets-le sur mon bureau, et Ah, on
y va. Il suffit de cliquer sur votre storboard ici sur le côté gauche. Double-cliquez dessus. Orteil. Tirez vers le haut dans la vue. Assurez-vous que la vue sélectionnée ici et que nous allons utiliser était de le faire ressembler à un vieux ordinateur et juste imprimer quelques choses dessus, en utilisant une boucle for, juste ressembler et financer. Donc je vais cliquer sur le, um On cherche des attributs, Inspecteur Icône ici, et on va changer l'arrière-plan. Deux noirs, d' accord. Et je vais ici et taper du nouveau. J' ai l'étiquette pour trouver l'étiquette, et je vais la traîner ici comme, donc agrandir un peu. Ok, laisse l'air bien. Ça a l'air bien. Je vais me concentrer au milieu, ai
poussé un peu là-haut. Je vais le traîner vers le bas, rendre beau et grand, pour que je puisse insérer environ 10 lignes de texte dessus. Ok, maintenant, ce que je vais faire, c'est sur le côté droit où ça dit des lignes. Allons-y et passons à 15. Et il semble que la couleur que vous pouvez choisir différentes couleurs en quelques tapotez où il est dit où ce blanc est. Il suffit de taper dessus. D' accord ? Ce qui va se passer, c'est que ce petit gars va apparaître et que tu peux traîner. Si vous avez un écran différent ici, vous pouvez les changer. Ah, mais tu pourrais juste aller ici à cette petite volonté de couleur et un bel écran pour nous. Ils sont comme les vieux ordinateurs. Et, bien
sûr, nous allons nous débarrasser du système laid pour et juste faire Helvetica nouveau parce que c'est plus mieux. Et, ah, ça a l'air bien, et ça a quitté la ligne, ce qui est très bien. Nous avons juste besoin de contraintes ici pour qu'il ne bouge pas sur nous. Gardions le avec et gardons la hauteur et nous allons l'épingler vers le haut. Donc, avec la hauteur, épinglez-le vers le haut. Environ 36 pixels est à l'esprit. Vos années pourraient être ce que vous voulez. Cliquez sur ajouter, et la seule autre chose que je vais faire est d'aller dans le menu d'alignement ici, et je vais le centrer horizontalement dans le conteneur, et cela devrait faire le travail. Allons à notre éditeur assistant ici et faisons un contrôle de connexion Magic. Faites glisser votre étiquette sur le côté gauche ici, vers la droite à l'intérieur, et je vais un peu plus vite sur certains de ces trucs parce que vous avez déjà fait ça. Au point de ceci est en fait, ah, la connexion de sortie. Le but de cela est d'apprendre quatre boucles et de travailler avec une augmentation Eso Allons de l'avant et appelons
simplement ce lbl principal, qui est très bien. Et ce qu'on va dio, c'est définir un tableau. Ok, une augmentation et quatre boucles vont de pair. Si vous travaillez avec un tableau, vous travaillez probablement avec la boucle for. Et si vous travaillez avec A pour vous travaillez probablement avec un tableau dans la plupart des cas. Donc, sachez juste si vous entendez le mot haine tableau sur cette collection ou itéré sur ces
données,
cela données, signifie probablement que vous utilisez une boucle for pour générer sur Andre ou une collection d'une sorte quelconque . On va imprimer des phrases comme quand l'ordinateur se chargera pour la première fois. Ok, donc les phrases égales en feront un tableau littéral. Donc, nous allons, euh, démarrer à partir du Dr Dot disquette et je vais avoir mis de nouveaux caractères de ligne là-bas. Eh bien, ça va faire, c'est forcer une nouvelle ligne sur son étiquette que cette barre oblique ne sera pas lue. Vous ne serez pas en mesure de le voir, mais il va en fait le faire passer à la ligne suivante. Ok, faisons une autre lecture du disque. Souviens-toi comment
ces hommes, ces vieux ordinateurs le jour où tu as mis une disquette, et réveillé bip
et genre, tout le monde et tout le monde savait que tu étais sur l'ordinateur et ah, et puis, Bien sûr, quand tu es monté sur l'
ordinateur, ordinateur, c'était tout vert et noir. Bons moments. Ah, mettre à jour le registre, peu importe. Quoi que ça veut dire. Mise à jour du registre. J' ai une nouvelle ligne ici. D' accord. Et ah, super cool. Et
faisons-le quelques points. Nouvelle ligne. Et en passant,
je les sépare par des virgules parce que c'est comme ça que vous un tableau séparé des éléments. Ah, et donc je suis juste séparé par des virgules ici pour indiquer que c'est un autre élément dans le tableau. Nouvelle ligne en minuscules. Et faisons Ah, juste pour le plaisir. Encore un très long ensemble de points. Ok,
ça fait son truc de chargement, et ah, alors on a fini le chargement dira Bienvenue, Jessica. Bienvenue, Jessica. Jessica, nous sommes heureux que vous soyez ici dans la classe codant avec nous et Ah, heureux que vous soyez votre nom est intégré dans cette vidéo ici. Donc nouvelle ligne. Eh bien, je veux faire une nouvelle ligne à l'intérieur de ça. La phrase réelle ici n'a pas besoin d'être sur un nouvel élément de rayon ah. C' est sympa de vous revoir. C' est parler et ceux qui nous sommes. Ok, donc il y a des phrases. Donc, si je regarde les commentaires, on
dirait que nous en avons un. Faites 3456 environ sept phrases. D' accord. Et quand nous voulons faire est juste d'utiliser une boucle for pour les mettre sur notre étiquette ici. Ok, donc ,
tu sais, je ne pouvais pas juste faire ça. Je ne peux pas dire que principal étiqueté au texte est égal à des phrases. Écrivez. Cela n'a pas de sens car vous pouvez simplement pousser un tableau dans un champ de texte. On doit mettre des textos là-dedans, non ? Alors faisons notre pour Luke, accord ? Et donc nous dirons pour var X égal à zéro. Et juste pour montrer que vous pouvez faire n'importe quoi d'autre que vous voulez dire pour la loi Barb est égal à zéro. Et vous ne feriez jamais ça en code professionnel, mais pour vous montrer que c'est correct pour quatre de nos blocs équivaut à zéro. Et pourquoi, alors que bla est moins que les phrases ne comptent pas, accord, blah plus plus. Et nous avons nos accolades. Ils ont l'air bien. Et ce que nous pouvons dio est vraiment tout simplement comme nous pouvons juste dire, texte de point d'étiquette
principale, euh, égal ou ce que nous pouvons réellement nous allons extraire un peu mieux. Prenons le texte d'abord. S' il y a du texte dans l'edl et même avant cela, donnons-lui juste un texte par défaut. Nous n'avons pas de plantages au cas où, ah, cas ne nous donnant rien, nous allons juste en faire une chaîne vide en ce moment sur ce est vu il charge, Au fait, nous avons parlé de ça une fois auparavant, mais vu il charge est appelé juste quand la pomme avoine Donc, il va après toutes les vues ont chargé à l'écran et sont en mémoire. Donc, il va exécuter ce code pour vous automatiquement afin que nous n'appelons pas une fonction pour le
faire . C' est pour ça que je le mets ici, ok ? Et donc ce qu'on va faire, c'est d'abord prendre le texte qui est actuellement dans l'étiquette . Donc, de notre étiquette principale de notre savoir quoi dire, le texte est égal principal étiqueté ce texte. Et rappelez-vous, tout ce qui est dans cette boucle pour va être répété à chaque fois, OK ? Et c'est juste nous dire qu'on ne l'utilise pas. Donc ça nous donne ce rouge Souligner ce qu'on va dire c'est Ah, texte plus égal. D' accord. Et ce qu'on va dire, c'est que les phrases sont bloquées. Donc on va prendre la phrase actuelle, utiliser l'index ici. Ça pourrait être 012345 ou 6. Ça pourrait être n'importe lequel de ceux-là. On va le sortir d'ici. D' accord ? En utilisant l'indice de course. Et donc si nous étions à l'index numéro 3, nous aurions 0123 Nous aurons ces points ici. C' est ce qu'il faut saisir en ce moment. Et donc nous ajoutons dans le texte et allons de l'avant et maintenant le remettre dans l'étiquette égal à txt. D' accord ? Et, ah, ce que nous devons faire ici, c'est mettre le signe de la livre à la fin du texte de points. Ok, rappelle-toi, on n'est pas allés là-dedans. J' ai mentionné quelques fois. Il s'agit d'une option. Ok, ça peut ou non avoir de la valeur. Si vous pouviez voir ce point d'interrogation ici, il peut ou non avoir de la valeur. Et donc on doit mettre le panneau de la livre pour dire, Hey, je sais qu'il y a une valeur ici maintenant. Au fait, s'il n'y avait pas eu, vous auriez juste planté votre application. Mais c'est pour ça que j'ai fait ça ici. J' ai juste fait en sorte que ce n'était pas non, j'ai mis une ficelle là-dedans, donc très bien. Allons-y et lançons et c'est en train de se charger. Il est en train de charger. Il est en train de charger. Et c'est là. Démarrage à partir de la lecture de disquette à partir de la mise à jour de disque, registre ,
point,
point,points de données lots et beaucoup de points. ,
point ,
point, Il y a donc notre ordinateur. Nous avons utilisé une boucle for. Teoh a parcouru tout ça juste ici. Maintenant, ce dont je veux parler, c'est de deux façons différentes que nous aurions pu écrire ceci. Donc, c'est un moyen abrégé d'une façon pratique d'écrire ceci. Ok, on aurait pu aussi écrire Are pour une boucle d'une manière différente. Quelle autre façon d'écrire une boucle. Eh bien, allons-y, voyons ça. Donc j'aurais pu dire répéter, OK. Et d'abord, ce que nous pouvons faire ici, c'est que nous pouvons aller de l'avant et à l'extérieur d'ici je pourrais sauver notre X égal à zéro, et ,
ah, alors que X est inférieur à celui des augmentations de points. D' accord. Et alors ce que je ferais ici, c'est ah, attrapé. Monogrammé ce code au milieu ici et au fait, si vous êtes comme, comment a-t-il commenté ces lignes de code par magie ? Je viens de tenir ça. Je les ai mis en évidence. Ok, je les ai mis en évidence, et j'ai maintenu le commandement. Plus ford slash où le point d'interrogation est sur votre clavier en maintenant la commande supercool droite ? Qui ? Bon, je vais copier ce qu'il y a à l'intérieur. Parce que nous voulons le même code. Et bien sûr, je vais me mésange peu commune, parce que, ah, on n'a pas besoin de là, et il est indenté mal. Donc je vais maintenir la commande enfoncée et puis à gauche, Curly Brace ou le carré gauche. Et ça va être en retrait vers la gauche. Si je tenais le bras droit de commande, ça va se déplacer vers la droite. Donc Ok, jusqu'à présent, X est égal à zéro. Répète ça, OK ? Et bien sûr, on ne veut plus de blonde ici, est-ce pas ? Parce qu'il n'existe pas. Nous l'avons commenté. Donc l'action a besoin de X ici parce que c'est ce que nous faisons ici. Donc c'est exactement la même chose que nous venons d'écrire. Nous créons une variable, et nous disons juste répéter,
répéter, quoi que ce soit, quoi que ce soit, coz ici jusqu'à ce que cette condition soit remplie. Ok, Eh bien, phrases dot count ou X est inférieur à des phrases dot com, alors voyons si cela fonctionne réellement et fait exactement la même chose. J' ai senti qu'on avait fait quelque chose de très, très mauvais. Nous venons de créer une boucle infinie. Et une chose que nous avons ratée est la partie où vous incrémentez la valeur, donc X plus ,
OK, donc ça va exécuter ce code, et ensuite ça va faire X plus X plus un. Sinon, si je ne l'ai pas fait, X sera toujours moins que des phrases qui comptent. Et cela va fonctionner pour toujours jusqu'à ce que votre application se bloque parce que nous ne changerons jamais X et ah , essayons à nouveau. J' aurais été mauvais. Ok, c'est en cours d'exécution. Et là, c'est exactement
la même chose. C' est donc une autre façon de l'écrire. Nous venons de créer manuellement la variable a terminé l'aérateur it juste là. Et
nous le faisons encore une fois d'une façon de plus. Bien sûr, parlons de 1/3 façon de faire ça, OK ? Ce que nous pouvons faire, c'est que nous pouvons dire pour chacun, si libre. Et je dis pour chacun que je n'écris pas le mot chacun, mais c'est ce que ça veut dire. Donc, pour chaque, euh, nous allons juste l'appeler ligne dans des phrases ou encore mieux. En fait, ce qu'on pourrait dire c'est pour chaque phrase Ok, donc c'est encore plus abrégé, OK ? Et la différence ici est que nous venons juste d'itérer à travers le tableau lui-même. Qu' est-ce que ça fait de dire, Hey ,
attrape , passe par ça et attrape un élément. Renommez-le en ça, d' accord ? Et puis vous pouvez l'utiliser aussi simple. Comme quoi ? Quoi ? Qu' est-ce qui se passe ? Eh bien, oui, c'est aussi simple que ça. Ce qui se passe, c'est qu'on dit, Hey, passe par le tableau des phrases, passe par chacune d'elles. Ok, attrape l'objet. Ok, donc on va l'arracher. Ok, donc voici la main, OK. C' est saisir la phrase et tomber ici et la renommer. Donc ça va le faire à chaque fois. Donc ça va fonctionner. Ah, et je suppose que dans notre cas sept fois et cette variable de phrase ici est l'équivalent de dire, Hé, var X est égal à zéro. Donc tout ce qu'on fait ici, c'est qu'on va bien, ce n'est pas le criminel de ça. C' est l'équivalent de ça ici. Désolé. Phrases, crochets X saisissant l'élément hors de celui-ci. Donc, il saisit l'élément ici et juste le renommer la phrase pour que nous puissions l'
utiliser maintenant. Évidemment, les différences qu'on ne peut pas aimer la muter. On ne peut pas le changer. On ne peut pas dire que tu connais des phrases. X équivaut à une nouvelle phrase. Ah, on est juste en train de le lire ici. Mais c'est bon. C' est une super communauté et encore moins de lignes de code. Donc si je vais de l'avant et que je copie ces mêmes lignes de code que nous savons que nous allons avoir besoin d'accord, et je vais aller de l'avant et, euh sous cette année, nous allons juste réduire l'affacturage IRM ici. Donc on a la phrase. Donc ce qu'on veut dio, c'est qu'on veut toujours saisir ça, mais au lieu de faire des phrases Ah, je vois. Est-ce que ça fait des phrases x pour dire la phrase C'est super cool ? C' est tout ce que nous avons à dio, c'est ah, utilisé la phrase parce qu'elle passe par chaque fois. On verra ce que ça fait. Donc, pour chaque phrase et phrases passe à travers toute la liste saisit un élément hors de lui, renomme pour que vous puissiez l'utiliser. Super, super cool. On a juste trois façons différentes. C' est vraiment des boucles. C' est ça. C' est des boucles. Comment c'est cool Ce n'est pas trop mal prend beaucoup de pratique pour vraiment le faire descendre. Mais ce n'est pas si mal. Et nous venons de passer par les principales façons de le faire. Donc c'est comme ça que tu fais une boucle, OK ? Et assurez-vous juste que vous avez toujours une condition qui est remplie. Si vous le faites certaines de ces autres façons assurez-vous que cette condition est remplie parce que si ce
n'est pas le cas, vous aurez une boucle infinie dans votre programme va planter. Ok, si bon truc. Tu vas l'utiliser beaucoup pendant le reste du cours. Hum et c'est fondamental. Donc, si vous ne comprenez pas ça, regardez la vidéo encore et encore et nous ferons un exercice pour que vous puissiez vous entraîner , alors tout
le monde, le monde, continuons d'aller de l'avant.
30. iOS 9 : introduction à la vue sur Stack: si grand jour devant nous ici. On va parler d'IOS 9 Stack. Continuons et commençons. Je vais ouvrir le code X, ok ? Et il y a un nouveau projet qui le ramène ici. Ok, donc je suis allé au dossier, vous savez, bien
sûr, nouveau projet. Et si vous ne vous souvenez pas, et vous devriez savoir comment le faire maintenant, comment ouvrir Exco, il suffit de cliquer sur l'icône qui dit X Code beta Ou si cette vidéo est maintenant dans le futur, ce pourrait être la version finale du code X sept, que vous avez
téléchargé à partir du magasin APP. Ok, allons de l'avant et faisons une seule application de vue. On va appeler ça Ah, Stechert euh, pile juste pour s'amuser, parce que le nom n'a pas vraiment d'importance du tout. Tout le reste est super ici, Enregistrez-le sur le bureau. Et ici, nous allons les projets ouverts. Et tu sais quoi ? Allons de l'avant et rendons cette universelle pour iPhone et iPad. Ça va nous aider à montrer la puissance des vues de pile. Maintenant, nous avons déjà parlé de contraintes. Ok, comment tu alignes les choses et tu te souviens à quel point c'était difficile quand on avait quelques points de par
exemple vue
ici, ? Et on voulait qu'ils prennent la moitié de l'écran. Ok, donc, vous savez, une était une couleur comme celle-ci, juste ici, et l'autre était comme, juste ici à côté. Donnons-lui un peu de rembourrage. Elles ne sont pas parfaitement égales. Mais quoi qu'il en soit, ce n'est qu'un exemple. Et nous allons changer pour lire et se rappeler à quel point il était difficile de faire cela afin qu'ils aient été flexibles avec. Ainsi, chaque fois que vous tournez ou déplacez votre appareil ou changez d'écran, ils ont tous les deux des égoïstes. C' était une douleur dans les fesses. Ok, grosse, énorme douleur. Et je pense que les gens d'Apple ont réalisé cela et donc ils ont créé la vue vous que j' empile, ce qui est fantastique. Et la règle empirique est maintenant que vous empilez les vues d'abord, puis les contraintes avec si nécessaire . Alors allez-y et apprenez cela et commencez à les utiliser tout de suite. n'y a aucune raison de ne pas les utiliser car ils vont changer complètement la façon dont vous construisez vos mises en page et la rendre beaucoup plus puissante et beaucoup plus facile. Alors, qu'est-ce qu'on va construire ? C' est une bonne question. Allons de l'avant et faisons quelque chose que j'aime faire tout le temps, savoir les idéaux d'acier d'autres personnes. Et au fait, c'est comme
ça que tu es vraiment construit. APS. Ok, alors allons-y et trouvons une bonne idée. Donc, ce que j'aime faire est de taper en arrêt Pinter meilleur design APS. Ok, je ne suis pas à la recherche de la nourriture ou les derniers styles, mais le meilleur design APS. Et voici un lien juste ici. Je clique juste sur un lien aléatoire. Je l'ai fait plus tôt aujourd'hui et regardez tous ces APS fantastiques. Vous pouvez simplement obtenir de l'inspiration et des idées à partir de ces applications ici. Excellente façon de le faire. Parfois. Parfois, même je le regarde et, genre, j'aime vraiment ça. Et puis je sorte de toujours le design et changer les couleurs. Et c'est bon, parce que l'art est vraiment voler tout autour de votre inspiration, etcetera. Et j'aime bien celui-là. OK, on a des chaussures ici. Ça a l'air cool. J' aime la mise en page. C' est une excellente façon d'apprendre à utiliser la pile, et allons de l'avant et voler cette image. Je vais cliquer et le faire glisser sur mon bureau ici, et je vais fermer le navigateur maintenant. Une chose que je veux te montrer très vite. Si vous n'avez pas de boutique photo, vous devriez probablement l'obtenir. Et on en parlera plus tard dans la leçon. Vous n'avez pas besoin d'être un expert, mais j'ai utilisé photo shop tous les jours en tant que développeur d'applications. Accédez donc à Adobe Creative Cloud. Et si vous cliquez sur leur site Web ici, Ok, vous pouvez obtenir leurs services cloud pour leur logiciel. Comme la boutique de photos et d'autres choses sont très bon marché. Je pense que la boutique photo est 9 99 par mois. D' accord. très puissant. Lorsque vous devenez un développeur professionnel, vous serez un outil plus utile si vous savez comment l'utiliser. Donc je vais aller de l'avant et juste ouvrir avec Photoshopped, faites clic
droit pour ici. Et la seule chose que je voulais te montrer, ce n'est pas une leçon sur Photoshopped. Mais ce que je voulais te montrer, c'est ce que j'aime. Juste pour prototype APS est que je prends cette petite couleur ici dans le côté gauche et je choisis la couleur et je prends cette valeur de couleur ici et je fais la même chose sur ce gars et je peux cliquer dessus et
il me donne la valeur de couleur donc si vous voulez ces couleurs, vous pouvez saisir et juste à partir des images, ce qui est super cool. Donc Photoshopped, excellent outil dans votre ceinture pour avoir et utiliser en tant que développeur. Ok, donc on sait à quoi on veut qu'il ressemble. Et, Ah, on
y va. Quelque chose comme ça. D' accord. Nous voulions bien paraître sur toutes les orientations et tailles d'écran, alors allons-y et commençons. Maintenant quoi ? C' est là-haut. C' est toi ? I Barre de navigation. Et comme on ne va pas vraiment construire un contrôleur de navigation dans l'APP, Ok, on va juste faire semblant que je vais vous montrer et faire semblant que c'est un vrai contrôleur de
navigation. Mais c'est bon. Ça va toujours montrer les objectifs de notre application ici, et je vais changer la couleur de fond. Ok, je vais choisir cette couleur rouge. Tu peux choisir la couleur que tu veux, ok ? Ou vous pouvez bien sûr, cliquez sur ceci et change autour. Vous pouvez effectivement cliquer sur la couleur, mais je l'ai déjà choisi ici, donc c'est rouge un peu gros ici, et allons de l'avant et remonter. Ce que je vais faire, c'est cliquer sur le menu des épingles et, ah, les travailleurs. Quelques contraintes. Et tu es genre, attends une minute. Tu n'as pas dit qu'on n'utiliserait pas de contraintes ? Eh bien, je n'ai pas dit ça. J' ai dit que nous allons d'abord utiliser la vue de pile, puis les contraintes si nécessaire, mais cela ne sera pas nécessaire pour être dans une vue de pile, car c'est la barre de navigation dans les États en haut. Donc je vais dire 000 dépendants de tous ces côtés ici et ce qu'on va faire, c'est qu'on va juste lui donner une hauteur, et ça restera là. Ok, donc on a une chaussure. On a d'autres chaussures ici. Certains aiment les miniatures. On a une étiquette ici et une sous-étiquette sur quelques boutons, et on ne va pas s'inquiéter des icônes sociales aujourd'hui. Et donc j'ai pris la liberté d'attraper et, euh, découper des biens à utiliser. Ok, donc je vais aller de l'avant et juste, euh, prendre mes chaussures bien créées. Il va le traîner ici, accord. Et ah, ouais, Chuck Taylors aujourd'hui, bébé. C' est ce que nous allons construire. Et, ah, passons au storyboard principal ici. Et qu'est-ce que tu penses qu'il nous faut, avec une pile de toi, ce que tu fais c'est de mettre ton interface ici, accord ? Et qu'est-ce qui est vraiment intéressant à propos des vues de pile ? Ok, ça va être bizarre, mais vous savez comment avant, comme ouvrir l'aperçu et quoi que vous fassiez avec votre code ici à gauche , vous savez quelles sont les contraintes se pointer ici sur la droite ? Eh bien, oui, c'est vrai, mais en fait empilé pour nous des problèmes avec ça, et je ne sais pas si c'est un bug. Ça n'a pas encore été fait parce que c'est toujours en version bêta. Mais cela ne se met pas à jour correctement lorsque vous avez empilé la vue. Et donc la seule façon de savoir à quoi ça va ressembler, c'est de le faire fonctionner. Ok, donc on ne va pas trop utiliser ça aujourd'hui, donc on sait qu'on a besoin d'une chaussure ici, alors on va aller chercher celle de Chuck. D' accord ? Bien sûr, il est étiré. Disons que l'aspect est en forme et qu'il soit un peu plus grand, accord ? Ils sont gentils. Et maintenant, vous allez aussi voir la raison pour laquelle nous utilisons cette toile inférée au lieu de choisir un iPhone ou autre,
parce que les empileurs sont vraiment puissants dans l'étirement et et le déplacement à travers l'écran et re dimensionnement des choses et tout tailles d'écran. C' est donc une bonne idée d'utiliser cette taille arbitraire ici. Ok, donc on a notre chaussure. Nous savons qu'il nous faut des images juste en dessous. Si je regarde la photo ici, il
nous faut des images en dessous, et nous ne rendrons pas les nôtres identiques. Nous allons faire notre propre version, vous
donner un avant-goût de la façon dont les vues empilées fonctionnent. Mais on sait qu'on va avoir besoin d'images. Alors allons-y et faisons-le. Et je connais ces types carrés d'air parce que je les ai créés. Donc je dirais juste 100 par 100 peut-être un peu trop gros, disons 80 par 80. Je clique sur les chiffres dans le côté droit là-bas, et je vais sélectionner une chaussure et ensuite je vais aller de l'avant et m'assurer que c'est comme leur commande d de dupliquer le déplacement ici. Je vais le refaire. Ok, ils en ont trois et on en a quatre. Et maintenant on a cinq chaussures, et je vais juste les mettre en évidence en cliquant et en faisant glisser et juste les centrer OK, maintenant, bien
sûr, maintenant, si on devait faire ça, toutes ces choses seraient hors de l'écran et ça aurait l'air vraiment moche, Mais nous n'y sommes pas encore, alors allons de l'avant et juste changer d'autres images maintenant et encore. C' est différent. Nous sommes juste nos points un peu différents, c'est tout. Nous n'utilisons pas la même chaussure et plusieurs angles, et la raison en est que je ne pouvais pas vous trouver une fois dans plusieurs angles. Alors on y va. J' ai une conversation ici. Et en fait, c'est assez joli avec toutes les différentes couleurs de toute façon. Alors qu'est-ce qu'on a ici ? Tu as ça ? On a besoin d'une étiquette ici. En dessous. Allons-y et faisons-le. Allons ah, fais au. J' ai étiqueté ici en bas et je vais le mettre juste ici au milieu. Et centrons ça et sortons du système méchant Fun et changé pour un meilleur funt ici. Et il a l'air un peu audacieux dans l'image, donc je vais rendre le mien audacieux. Ok, ça a l'air bien. Je vais ici sur le côté droit et je change la couleur en rouge. Le même rouge que vous voyez ci-dessus. J' aime bien que ça ait l'air génial. Et, euh, on va appeler ça Ah, Chuck Taylor chaussures et ah, ouais, on
va prendre un peu d'espace là-bas. Et je ne vais pas m'inquiéter pour ces petites choses sur les côtés en ce moment. Ok, allons de l'avant et mettons une deuxième étiquette. Je vais juste ah,
dragon ou,
ah , , rendre un peu plus long ici et le centrer bien et changer la couleur de l'orteil, peut-être un gris clair qui a l'air bien. Et on dirait que c'est audacieux aussi. Donc, il est de changer la police et le style trop gras, et nous allons juste mettre quelques données arbitraires dedans. C' est un peu trop audacieux. Faisons juste normal. Oui, régulier. Et disons, hum, qu'est-ce que tu veux dire ? Donnons-lui un numéro de référence. Référence 7715112 U. S. A. Une édition spéciale. C' est ce
que ces chaussures sont là. Edition spéciale. Et on dirait qu'il y a une étiquette de prix là-bas sur le côté droit. Alors allons faire ça aussi. D' accord. Les hymnes dans une copie et collez ceci maintenant et changez la couleur en vert. J' aime ça et j'aime ça. Et cette fois, nous ferons audacieux et nous dirons 78$. Même ça a l'air bien. Ramenons cette étiquette plus petite, car elle n'aura pas besoin d'être aussi grande. Et ah, aligne-le juste là. Ça me semble bien. Et nous allons mettre en évidence ces deux et juste une sorte de centre comme ça n'a pas besoin d'être parfait. Juste n'a pas l'air bon à l'écran. Peut-être que c'est un peu trop à sa place ici, Smeagol. Plus petit. On y va. On dirait un peu mieux. Ok, donc j'ai un prix. On a la référence que j'ai ici. Et puis nous avons besoin de quelques boutons. Bien sûr. D' accord, allons de l'avant et jetons quelques boutons ici. Toi je mais dans et juste le mettre juste ici. Et ce que je vais faire,
en fait, c'est en faire un bouton personnalisé. D' accord ? Il est blanc en ce moment, et je vais mettre la couleur de fond de celui-ci. Et ce n'est pas ici comme tous les autres sont sur le bouton. Vous devez faire défiler vers le bas, et c'est juste ici dans la partie vue de celui-ci. Et pour l'instant, c'est un contexte clair. Donc on va le changer pour le lire et le rendre un peu plus grand ici. Et, euh, ouais, ça a l'air bien
juste là. Ok, peut-être un peu plus grand, même. Juste quelque chose comme ça va changer le texte dessus. Teoh. Euh, comme et changeons ça, Teoh Custom, Helvetica New fera Bold. J' aime ça. Et je vais aller de l'avant et commander à d de le dupliquer. Et sur celui-ci, appelons-le par. D' accord. Et je vais faire défiler vers le bas et changer la couleur sur celui-ci en vert. Et n'est-ce pas cool comment juste en regardant un peu d'inspiration,
nous pouvons déjà commencer à construire un très beau je pense qu'il a l'air agréable. Je pense que les gens diraient que votre application a l'air agréable si elle ressemblait à ceci et nous n'avons pas eu à faire trop penser que quelqu'un d'autre a fait tout ce que penser pour nous, donc semble bien. Maintenant, bien
sûr, nous allons juste jouer autour, amusez-vous et exécutez-le et voyons à quoi il ressemble sans aucune vue de pile et sans aucune contrainte. On doit voir le mauvais pour apprécier le bien. Ok, c'est
là. Et elle est apparue. Et bien sûr, c'est moche. Eh bien, c'était prévu. Ok, je vais aller de l'avant et arrêter ça et parlons de vues sur la pile. D' accord ? Donc, une vue de pile l'idée derrière une vue de pile est qu'elle empile vos vues littéralement. Ok, donc ce que ça va, c'est que tu vas dire ce que je n'ai pas fait alors je veux empiler horizontalement. Et quels éléments je veux empilés verticalement. Alors réfléchissons à cette année. Donc, nous savons certainement que l'horizontale Excusez-moi, les éléments verticaux que nous voulons empilés sont juste en face de nous ici. Donc si j'ai juste, euh, trou dans un outil ici pour qu'on sache qu'on veut empiler ce gars. Donc, ce serait comme dans un empilé vertical est d'être celui que nous savons que nous voulons empiler cette ligne ici. Teoh, nous voulons empiler cette étiquette, empiler cette étiquette et empiler ces boutons. OK, donc 123 pour cinq. Donc, il y a potentiellement cinq éléments qui vont aller dans une pile verticale. C' est cool. Qu' en est-il des piles horizontales ? Eh bien, ce type pourrait être le sien dans sa propre pile, donc ce serait juste un élément d'un cependant. Et ça ici, tu sais, on les empilerait. Ok, donc il y a ou cinq articles. C' est cinq éléments qui s'empileraient horizontalement. Donc 12 et, euh, ce type pourrait être dans sa propre vue de pile. Maintenant, quand ce ne sont que des éléments simples, ils n'ont pas besoin d'être dans une pile pour vous, mais il est logique de tout mettre dans une pile. Toi, au cas où tu ajouterais des choses plus tard. Et voici une autre pile horizontale pour vous et une autre, OK, parce qu'il y a plusieurs éléments dedans. Donc peu de choses différentes se passent ici. Allons-y et mettons-le en pratique. Et ce qu'il va faire, c'est casser des choses pour nous. Hum, et ensuite on les réparera. Allons-y, attrapons-lui la chaussure et séchez-la ici en bas. Il y a un petit bouton, petit bouton carré avec la flèche appelée Stack, et on va juste cliquer sur pile, et c'est comme, Wow, hum, ça a foiré. Et donc si vous allez sur le côté droit en ce moment, il est empilé verticalement, comme si c'était dans sa propre pile verticale. Je vais le mettre comme horizontal juste parce que je pense que la verticale n'est pas exactement ce qu'on cherche en ce moment. Nous Parce que dans le cas où à l'avenir, nous pourrions ajouter des choses horizontalement, probablement pas verticalement à cet élément spécifique. OK, donc c'est cool. Et c'est vraiment énorme en ce moment, mais ça va. Finissons d'empiler le, donc je vais m'accrocher à ces gars maintenant. J' ai choisi la chaussure et je vais maintenir le quart de travail et sélectionner toutes les chaussures. Ce que nous voulons ici, c'est une pile d'accès horizontale. Donc, si vous sélectionnez tous leur câble de gauche à droite. Et maintenant cliquez sur ce bouton en bas ici, la pile. Mais ils sont tous maintenant empilés dans une vue de pile horizontale. Très, très cool. Ok, ces ces chaussures
Chuck Taylor. Allons de l'avant et mettons ceci dans sa propre vue de pile, et je vais le changer en horizontal. Au cas où nous aurions des choses, ce serait à gauche ou à droite de haut en bas et tout comme ces grands textes et ce texte vert, et mettez-le dans une pile de vous. Et c'est assez intelligent pour savoir qu'il s'agit d'une vue de pile horizontale. Et puis sélectionnez les boutons gauche et droite, et mettez-les dans une pile de vous. Quel genre de t'empiler ? Tu crois que ça va mettre quel type d'accès ? Si vous deviez dire horizontal, vous serez tout de suite, vous pensez probablement, comment cela nous aide à aller n'importe où ? Eh bien, instant, ça ne ressemble pas à ça, mais ça le fera bientôt. Donc, si je passe sur votre côté gauche et que je sélectionne la vue de la pile supérieure et
celle-ci suivante et la suivante et la suivante et la suivante et que je mets tous ces éléments dans une vue de pile, choses commencent à paraître un peu sympa. Ils sont sortis de l'écran, mais ils commencent à s'aligner un peu mieux maintenant. D' accord. Très cool. Encore un peu grand. Mais c'est bon. Donc, en ce moment, ce que nous voulons dio est que nous avons créé une pile vues. Nous avons créé ces vues de pile multiples, mais maintenant nous devons utiliser des contraintes. C' est ce que je te disais. Vous avez utilisé la pile d'abord. Ensuite, vous utilisez les contraintes et ce que nous voulons, c'est que nous voulons contraindre la vue de la pile entière . Dans notre cas, nous voulons le mettre d'un coin à l'autre. Nous voulions remplir tout l'écran, quel que
soit l'écran sur lequel il se trouve. Et la beauté des vues de la pile est qu'ils vont s'étirer et là avec une largeur et une hauteur flexibles fonction de la taille de l'écran. Et ça aura l'air bien. Ok, tu n'auras pas à faire toutes sortes de trucs
bizarres, comme on l'a fait tout à l'heure avec nos contraintes. Donc ce que je vais faire, c'est juste bouger sont empilés vue ici, ok ? Et je vais aller au menu des épingles, et ce qu'on va faire, c'est enlever les marges, ok ? Et, ah, je vais aller de l'avant et se zéro pour le haut changé en arrière et zéro pour la gauche et pour la droite. Je voulais dire zéro. Et pour le fond. Allez. C' est désobéir pour le fond. Je veux dire que zéro est bien, aussi. Et voyons ce qui se passe si j'épingle
tout les sur
lescôtés ici. D' accord. commence à aller un peu mieux ici. Si vous concédez e, je peux voir que ça a l'air plutôt cool. Et nous allons juste le faire et voir à quoi ça ressemble maintenant. Un peu mieux. Tu sais, c'est qu'il arrive. Il s'adapte à l'écran. Faisons-le tourner. Si j'appuie sur la commande plus droite, il fera pivoter mon écran tant que j'ai activé dans le paramètre de mon projet. Et ça a l'air bien sur le paysage. Même nous faisons des progrès, alors faisons tourner le dos. Il est
aussi une animation cool, aussi une animation cool, Bring. D' accord. Ok, très bien. Arrêtons ça. Alors résolvons l'un des problèmes évidents. Ces chaussures ont raison ? Ils ne vont pas à travers tout l'écran, et ce n'est plus être dans. Donc, ce que nous voulons dio, c'est la distribution. Ok, je veux dire que je te sens tout aussi bien. Et puis ce que je veux faire, c'est que je veux ajouter un peu d'espacement entre les deux, disons 25 espacement et regardons ça. Il est allé de l'avant et espacé. Les images sont-elles égales sur l'écran ? C' est cool maintenant ? Cela fonctionnera-t-il dans toutes nos différentes tailles d'écran ? Eh bien, voyons voir. Allons de l'avant et recommençons. Et donc c'est les écraser là-bas, ce que je ne suis pas très content de ça. Et, euh, juste là, ce n'est pas vraiment les centrer, donc nous avons quelques problèmes qu'il faut régler. C' est bon. Donc, le premier problème que je veux résoudre est le fait que quand nous étions dans, je crois que c'était le paysage. Ça ne traversait pas tout l'écran. Ok, je me souviens. droite. Nous allons juste vérifier à nouveau pour être sûr de le construire et de l'exécuter. Et oui, donc ils sont écrasés là, et là ils ne traversent pas l'inégale. Ça a l'air un peu bête. Je n'aime pas ça. Donc, ce dont nous avons besoin pour Dio est dans notre vue de pile parent. Ok, ici, on veut aller de l'avant et la tournée dit que l'alignement est en train de tout aligner par les
bords d'attaque . Donc ce que je dis c'est que c'est d'être aligné par ça, mais tout est dans le côté gauche, et ce n'est pas ce que nous voulons. Ce que nous voulons en fait, c'est remplir tout l'espace. D' accord ? Nous voulons que chacun d'entre eux soit aligné sur la sensation de couvrir tout. D' accord ? Et puis, bien
sûr, la distribution il y a plusieurs options. Affaiblir là, on peut dire se sentir bien, voyons ce à quoi ressemble avec la sensation, ok. Et ce que vous allez vouloir faire, c'est jouer autour de la vue empilée pour obtenir ce que vous
cherchez parfaitement. Ok, donc maintenant ça passe à travers l'écran, ce qui est sympa. Joli. Bien
sûr que c'est changer et étirer les choses, mais c'est bon. Et voyons à quoi ça ressemble quand on change de distribution pour se sentir tout aussi bien, qui ? C' est intéressant. D' accord. Et eso, dans ce cas, il essaie en fait de donner un espace égal à tout, et donc ce n'est pas ce que nous voulons. Ok, alors on va le changer pour sentir qu'il a l'air. Ça a l'air plutôt bien sur le terrain. Et encore une fois, vous allez vouloir jouer avec ces paramètres. Ok, Donc l'alignement est comment toutes ces vues de pile sont alignées les unes par rapport aux autres. D' accord ? Ou les éléments à l'intérieur. Je veux dire, donc cette pile, vous avez toutes ces vues de pile à l'intérieur. Comment voulons-nous les aligner ? Eh bien, nous voulons qu'ils remplissent leur espace de gauche à droite. D' accord. Et la distribution est les éléments à l'intérieur de celui-ci. Comment voulez-vous distribuer leurs leurs éléments eux-mêmes. D' accord. Et, euh, donc en ce moment, cette pile, il était vertical. Donc 1234 Vous savez, cinq choses environ et ah, elles ont l'air bien, peut-être qu'on devrait mettre un peu d'espacement là. Mai 5 pixels. Ok, on
y va. Juste de l'espace. Petit. Ça a l'air un peu plus agréable pour que vous puissiez jouer avec ça vraiment sympa. Rappelez-vous, faire cela avec des contraintes aurait été beaucoup plus de travail. On fait de grands progrès en ce moment. Maintenant, l'autre problème que je veux résoudre, c'est ces chaussures qu'elles ont été écrasées et étirées, et je n'aime pas vraiment ça. Donc je vais sélectionner chacune des images elles-mêmes, chaussures un à cinq. Et je vais dire au lieu de l'échelle de se sentir, disons, aspect en forme, pas se aspect ajustement. Donc, il s'adapte à toutes les limites dans lesquelles il est. Et allons-y et lançons là, et tu vas devoir le faire encore et encore pendant que tu apporteras des changements incrémentiels . Donc, vous pouvez savoir exactement ce que vos changements d'air font, parce que cela pourrait affecter tout. Euh, ok, alors regarde ça. Sont les images sont maintenant dimensionner différemment, et je l'aime un peu. J' aime les mots. Il le fait d'abord automatiquement, au fait. Rappelez-vous comment avant que je me plaignais toujours de la mise en page automatique n'est pas vraiment la mise en page automatique sera. Non, c'est un peu plus une mise en page. Ça commence à penser pour nous. Dieu merci. Merci,
Apple, Apple, pour avoir créé quelque chose de si incroyable si vous regardez la vidéo W W D C quand ils présentent ceci comme, les gens sont acclamer et applaudir comme c'est à quel point c'est important et puissant que c'est si très trucs cool sont des images sont maintenant le rapport d'aspect, et je commence à l'aimer maintenant. La chaussure a l'air un peu grosse, et donc je pense que nous voulons résoudre ce problème ensuite. Alors allons-y et arrêtons-le pour économiser la puissance de traitement ici. D' accord ? Peut-être que tout ce que nous avons besoin de dio est de donner un peu de rembourrage entre la vue de la pile la plus extérieure et la vue super
réelle. Alors je pense que je vais le faire. Donc ici, là où il est dit espace de fuite. Je vais peut-être dire une constante de cinq. Maintenant, disons 15. Disons que 20 20 ans ont l'air bien. Allons-y et faisons-le pour le reste d'entre eux. Je vais cliquer sur Click
Off et ah, oups, faux ici. Encore une mauvaise fois. Il y a 20 et disons 20. Ok, c'est moins 20. Voyons voir. Non, j'avais raison. Qu' est-ce que j'ai fait de mal ici ? C' est juste 20. Oh, il suffit de cliquer sur le même. Désolé. Oui. Ok, alors allons regarder celui-là. Donc ça fait 20. C' est là que j'étais un autre. Ok, c'est bon. C' est juste que ça ne le montre pas. C' est bon. Disons-le. 20 et un de plus. Je suis juste en cliquant dessus, en
cliquant dessus, puis en double-cliquant sur le, euh, truc là et donnons ça un coup de feu. Construisons et je dois déplacer ce type ici pour qu'il soit déplacé au milieu. On y va. est ce que font les contraintes. On va encore faire leur truc. Je voulais juste l'enlever du bord, donc ça n'avait pas l'air si écrasé là-bas. Ça a l'air beaucoup mieux. Tu sais,
ça me donnerait un exemple de quoi ressemble la chaussure. Tu sais, Je pourrais cliquer sur le si j'avais la fonctionnalité pour cela. Ne pas changer de chaussure si je vais en mode paysage. Hé, tu sais quoi ? Ça marche toujours. C' est bon. Je suis d'accord avec ça. Euh, j'aime ça. Je l'aime beaucoup. Donc ça a l'air bien. Et c'est juste ma préférence. On travaille juste avec ces piles. Tu pourrais jouer avec tout ce que tu veux. Alors regardons notre étiquette de chaussures Chuck Taylor ici. Eh bien, c'est bon. Ça ne semble pas être dans un endroit trop mauvais. Hum et ça non plus un peu. Il semble y avoir un peu d'espacement dont nous avons probablement besoin ici. Allons-y et prenons soin de l'espacement et du nettoyage ici, accord ? Tu vas l'arrêter ? Je pense qu'on devrait peut-être ajouter plus d'espacement. Et j'ai dit peut-être deux fois. Un mot après l'autre. Vraiment bizarre. Ok, donc vue de la pile de niveau supérieur. Allons de l'avant et faisons plus d'espacement. Dis, 10. On y va. Était exécuté ça. Voyez si cet espace est un peu mieux notre texte. Oui, ça a l'air très bien. En fait, ça a l'air bien maintenant. Ces images, j'ai l'impression qu'elles sont un peu plus petites que je veux qu'elles soient, donc je vais aller à la vue de la pile de Placr Image ici. Je vais réduire un peu l'espacement. Je vais dire peut-être. Ah, 15 espacements. Rends-le un peu plus grand. Laissons ça. Tu vois comment ça se passe encore ? Je teste tout. C' est comme ça que j'ai développé. Donc, si tu es comme un homme, ce type construit et dirige beaucoup. C' est comme ça que je fais. J' aime voir où mes changements d'air spécifiques vont, autant plus que je ne peux pas les prévisualiser. Donc j'aime ce qu'il fait ici. D' accord, mais je n'aime pas ce qu'il fait en mode paysage. Je pense que je pense que nous devons les écraser un peu plus, ou du moins les rendre plus petits quand nous sommes en mode paysage. D' accord ? Et ah, donc je pense qu'une chose que nous pouvons faire pour changer que je dois arrêter cette année, c'est que nous pouvons mettre du contenu dans câlins. Ok, Donc si je sélectionne les images elles-mêmes, ne sélectionnez pas la pile, vous sélectionneriez les images elles-mêmes. Et si je passe ici à la règle Ok, parlons de l'étreinte du contenu. Donc, étreindre le contenu est l'idée de quelque chose étreindre votre contenu, c'est-à-dire ? J' essaie de l'écraser. Ok, alors pense comme si tu faisais un câlin à quelqu'un. Tu essaies de leur casser les os. Ok, euh, plus ou moins. Et du contenu. Résistance à la compression. Ok, est-ce que tu veux donner à la compression à ce câlin ? Donc, comme, tu sais, quelqu'un vient et embrasser le type Uriel, tu sais, euh, le
pousser sur lui. Combien veux-tu le repousser ? D' accord. Et donc, en utilisant ces deux choses, vous pouvez en quelque sorte déterminer, comme, la taille des choses. Et donc je n'aime pas la taille des chaussures et le mode paysage, donc je veux voir si je peux les compresser un peu plus. Donc ce que je vais faire, c'est que je vais aller de l'avant et de là. Je vais changer ça. Ah, à un nombre plus élevé. Donc jusqu'à 60. Donc je vais dire que je veux en avoir un peu plus et allons juste faire ça et voir ce qui se passe maintenant. Au fait, j'ai fait sélectionner tous ces éléments en même temps, et donc ça les affecte tous. Allons de l'avant et allons voir ce qui se passe. Vous avez un paysage ? Ouais, toujours pas tout à fait ce que je cherche. Essayons autre chose. Donc je pense juste qu'ils sont trop gros en mode paysage et donc nous pouvons réellement utiliser quelques contraintes maintenant, et ce que je peux faire, c'est que je peux aller de l'avant et sélectionner ce que nous voulons faire ici. Disons que nous allons faire la hauteur, OK ? On veut s'asseoir ? Oui, essayons ça. Réglons une hauteur. Et en ce moment, c'est 100 dans ce mode. Ok, mais allons-y et changeons ça ici, donc je vais cliquer. Ajoutez cinq contraintes pour chacun de ces éléments. Ce que je vais faire, c'est que je vais sélectionner chacune d'entre elles, double-cliquer dessus, et je vais dire que ces chaussures doivent être inférieures ou égales à pas aigle aussi, mais inférieures ou égales à Teoh. Et je vais changer ça. Je vais dire qu'on va dire 70. D' accord ? J' ai besoin d'être inférieur ou égal à 70 et je vais le faire pour chacun. D' accord ? Je vais aller ici et le changer de égal à inférieur ou égal à 70 et c'est arbitraire. Le nombre n'est qu'un test. Et je dois le faire individuellement sur ceux-ci ici, disons, 70 changements à moins ou égal à, et j'aime ça. Et deux autres double-cliquez sur la contrainte 70 et passe à moins ou égal. Et, ah, un de plus. D' accord. Et quand vous changez cela ici à moins ou égal à et 70. Ok, allons-y et allons voir ce qui se passe. Hé, regarde ça. Ils sont plus petits. J' aime ça. Je l'aime beaucoup. Donc, nous mélangeons quelques contraintes avec quelques vues de pile. C' est bon, c'est ce que tu es censé faire. Et ça a l'air bien. Et on l'embrasse un peu. On fixe un maximum. Ah, une hauteur maximale inférieure ou égale à. Et c'est la taille pour nous. Donc j'aime ça. Et ah, ça a l'air bien. Maintenant ces Ah, ces Ah, ces étiquettes grises ici dans cette étiquette verte quand je vais au paysage là-bas sorte de pas aligné comme je veux qu'ils soient. Jetons donc un coup d'oeil à certains de leurs paramètres. Je vais arrêter ça ici. Et donc nous avons la référence ici et regardons son cas en ce moment. Nous le centrons. Je ne pense pas que je veux me centrer. Je crois que je vais dire, laissé une ligne. Et sur l'argent, je pense que je vais dire bien aligné et ensuite je vais cliquer sur la vue de la pile ici, ok ? Et regardons la ligne en ce moment. On dit que j'aime ça. Je pense que j'aime la sensation, euh, mais quoi ? Que voulons-nous faire ? Vous voulez les sentir également ? Ils sont tous les deux de différentes tailles. Je ne veux pas forcément remplir cet espace aussi, euh, me sentir proportionnellement proportionnellement à leur taille. C' est peut-être ce que nous voulons. Allons-y et lançons ça, d' accord ? C' est en cours d'exécution, et je passe en mode paysage et hé, j'aime ça. Il le garde à gauche et à droite. Et en mode paysage, c'est Ah, il y arrive aussi, à sa gauche et les droits vraiment clairs, invisibles. Tout a l'air aligné. Et au fait, il fait ça pour nous automatiquement, qui est super cool. Savez-vous combien de travail nous aurions dû faire pour que ces choses se
redimensionnent d'elles-mêmes ? Oh, beaucoup de travail. Ok, donc évidemment, il n'y a qu'une autre chose qu'on doit s'occuper. Et ce sont ces boutons, OK, ils sont de différentes tailles en ce moment, alors nous allons cliquer sur cette pile, imaginons si nous pouvons résoudre le problème juste avec la vue de la pile. Donc l'alignement est sentir. Je veux le champ. J' aime ça. Il devrait être rempli distribution. Ah, eh bien, ce sont deux boutons. Remplissons-les également pour qu'ils soient divisés en deux et tu es genre,
ça a l'air sympa. Mais qu'en est-il de cet espace ? Eh bien, ne craignez jamais. L' espacement est là. Et qu'est-ce que tu penses qu'on devrait faire environ 10 ans ? Ooh, ce n'est pas vraiment sympa. Allons de l'avant et construisons et exécutons.
31. Introduction à l'application iOS 9: Bienvenue, tout le monde. C' est Mark Price avec Deb Slopes. On va parler de l'application que nous allons construire aujourd'hui. Maintenant, je sais ce que tu pensais. Est-ce ma chance de construire mon application de calculatrice de 1 000 000$ ? C' est peut-être parce que notre calculatrice est plutôt cool. Et là, il est en cours d'exécution dans le simulateur. Ok, donc c'est là. C' est une calculatrice. Maintenant, vous pensez peut-être, quoi ? Cela semble un peu simple. Eh bien, tout d'abord, laissez-moi vous assurer que ce n'est pas un problème simple. Probablement penser. Et deuxièmement, ça va prendre vos pas de pas en avant dans les futurs sujets dont nous allons parler. Donc, c'est une grande application. Et parlons de l'endroit où j'ai eu quelques graphismes. D' accord ? Alors tirez Google Chrome ici. D' accord ? D' accord. Ceux-ci ont été construits par Black Moon Dev et ils sont allés de l'avant et l'ont posté sur des
org de points d'art de jeu ouvert gratuitement. C' est la licence wtf pl, et je vais aller de l'avant et vous laisser comprendre ce que c'est par vous-même. Donc, ces gars sont super. J' ai déjà travaillé avec eux avant. Je suis tombé sur cet art et j'ai découvert que ce sont eux qui l'ont fait et ils ont construit de l'art pour mes jeux avant. Donc, si jamais vous cherchez un peu d'art de jeu impressionnant, ils sont super studio où aller. Ok, donc je suis excité de construire ça. J' espère que tu prendras le temps de bloquer le monde et de t'asseoir et de construire ça. Parce que ça va prendre un peu penser que ça va être en deux parties et que ça va mener aux autres leçons dont on va parler. Donc, je suis excité. Allons-y et commençons.
32. Application iOS 9 : Retro la calculatrice Partie 1: Bienvenue, tout le monde. Mark Prix ici avec Deb pentes dot com. Et nous avons un autre excitant après que tu construiras aujourd'hui. a
longtemps, Il ya
longtemps,dans une galaxie lointaine, nous avons construit une calculatrice rétro spatiale. Des trucs très cool. Maintenant, sur le service, il ressemble à une calculatrice, mais en réalité, c'est toujours une calculatrice. Bien qu'il soit amusant, et il semble vraiment cool. Maintenant, vous pensez peut-être que c'est assez simple, non ? Eh bien, pas tout à fait. Rien n'est jamais aussi simple qu'il n'y paraît. Bien sûr. Et ah, il y a pas mal de choses que tu vas apprendre aujourd'hui. Tellement, des trucs très cool. Ok, je vais y aller et remettre ça ici. Et vous remarquerez peut-être qu'aujourd'hui nous avons une vidéo de mon enregistrement. Quelqu' un m'a dit que pour que je puisse me connecter personnellement avec mon public, que je ne peux pas voir ni parler, que j'avais besoin d'une vidéo et ah, bottes se connectent, donc je me sens assez connecté. Et toi ? Ok, eh bien, avec cela étant dit, allons de l'avant et passons aux affaires. D' accord ? Je vais ouvrir un nouveau projet Exco. D' accord ? En allant au dossier. Tirez-le ici. Donc tu dois déposer un nouveau projet. Et Ah, nous y
voilà. Nous allons construire une application de vue unique,nom de
produit, nom de
produit calculatrice
rétro ou calculatrice d'espace rétro. Peu importe ce que tu veux appeler ça. Rétro Cal. Vous êtes en retard ou bien, Tous ces paramètres ont l'air bien ici. Je vais cliquer sur le suivant, et on le gardera sur le bureau. Et nous allons créer un dépôt git parce que j'espère que vous soumettez ceci pour obtenir le bucket orbit
com point hub Parce que vous voulez être en mesure de montrer aux employeurs potentiels votre code. C' est comme ça que vous êtes embauché. D' accord ? Vous devez être bon avec git et get hub. Alors commencez à pratiquer maintenant. Créer. Très bien. Quand il y a, on l'a. Nous construisons cette application maintenant. Ok, donc l'orientation de l'appareil juste ici au milieu. Allons de l'avant et dio paysage hors et à l'envers. Ok, ça a l'air bien. Tout le reste dans vos regards. Bien. Donc, si on va au plateau principal, il est vide. Maintenant quoi ? J' aime toujours dio quand j'ai une sieste relativement simple, ou au moins a quelques composants visuels majeurs. J' aime juste construire l'interface utilisateur d'abord, Il y a d'autres façons de le faire,
mais c' est le plus amusant de se réjouir de l'application et commence à vous donner une vision de l' endroit où il va se passer. Bien sûr, le code
X est très visuel. Et donc il est logique de jouer orteil avec le constructeur d'interface pour faire bouger les choses parce que c'est en fait assez important, aussi. Donc voilà notre toile. Maintenant on sait qu'on a besoin de graphiques, K. K.
J'ai déjà ces graphiques pour toi, et ah, on doit les importer. Donc, nous avons des actifs XY dot juste ici. Je vais aller de l'avant et trouver mon dossier d'images, qui est juste ici. Très bien. Et, ah, nous allons aller de l'avant et prendre zéro 123456789 Ajouter partage égal multiplié. Soustraire. On a besoin du panneau arrière pour tenir les boutons. On a besoin du comptoir, et on va avoir besoin d'espace et on va avoir besoin de terrain. Et je pense que c'est tout ce qu'on va manger maintenant. Donc je vais sortir et les traîner ici très gentil. Ça a l'air bien. Ok, allons au plateau principal et allons de l'avant et mettons le fond sur. Alors comment on fait ça ? Quelqu' un se souvient ? Kimberly dit d'utiliser une imagerie blanche. Ce serait exact, Kimberly. Très bien. Ok, alors allons de l'avant et mettons la vue d'image en U sur le fond ici, ok ? Et, ah, on va le faire glisser sur les bords ici. Ok, on l'a déjà fait avant. Pas grand-chose. Allons de l'avant et sélectionnons une image. Ici, j'ai cliqué sur l'icône ah bizarre regardant ici, que je ne sais toujours pas ce que c'est. Ce sont les attributs, inspecteur. Tout ce que je sais. Changeons l'image pour que je crois que c'était ah, l'espace. Et il y a de l'espace. Maintenant encore une fois, si vous pensez que peut-être tout va bien, eh bien, peut-être vous devriez cliquer sur l'éditeur assistant ici, cliquer sur les doubles cercles où il est automatique et le changer pour prévisualiser. Et bien sûr,
il y a des choses bizarres qui se passent. On ne peut pas voir la planète Terre. En fait, nous ne savons pas si c'est étirer la nourriture. On ne sait pas ce qui se passe. Allons de l'avant et ajouter un iPhone six plus en appuyant sur ce signe plus là et sûrement quand supprimer ce gars vraiment rapide, Sûrement pas tout va bien. Ok, donc on sait qu'il y a des problèmes. On l'a déjà expérimenté. La mise en page automatique n'est pas si automatique que nous avons déjà parlé et ah, allons-y et ah, réparons certaines choses. OK, alors d'abord, nous allons épingler ce petit menu de broches ici. Ok, vous pouvez cliquer dessus et on va cliquer, limité aux marges parce qu'on voulait couvrir tous les coins. Nous n'avons pas d'espace blanc environ 1000 et zéro et cela épingle chacun des bords sur le côté de l'écran ou la super vue dans laquelle il est, ce qui arrive juste de remplir l'écran. Et ça va s'étirer. Quel que soit ce point de vue. Teoh, répondez à ces exigences maintenant. Comme c'est une image, ce n'est peut-être pas toujours la meilleure chose de l'étirer. Donc, il y a une chose que nous avons besoin de dio, et c'est de définir le ratio d'aspect dessus et allons de l'avant et cliquez. Ajouter cinq contraintes chaque année. Oh, ça ne fait pas ce qu'il est censé faire. Dio et moi disions la même chose parce que clairement ce n'est pas le cas. Allons ici sur le côté droit et changeons-la d'une échelle pour se sentir sur
le champ d'aspect . Et on y va. Non, dans ce cas, c'est bon pour nous de couper la terre parce que ce sont des tailles d'écran différentes. Et, euh, vous savez, l'espace est vaste, et c'est bon. Et, euh, nous voulons nous assurer qu'il a l'air bon sur la plupart des écrans années nous de tirer vers le haut le plus petit écran. Et il semble bien là, aussi, quand supprimez les six plus. Et pourtant, ça a l'air bien. Ok, très bien. Donc on a ses antécédents. Non, on sait qu'on va avoir besoin d'un panneau arrière, et on sait qu'on va avoir besoin du comptoir ou de la zone où tu vas pouvoir voir ces calculs. Ok, alors allons-y et ajoutez-les maintenant. Et si vous pensiez que nous devrions ajouter un couple de plus, vous vues d'image, alors vous avez absolument raison, parce que c'est exactement ce dont nous avons besoin. Ok, il y en a un. Allons-y et mettons-le sur le panneau arrière. Et bien sûr, il est écrasé et étiré et tout le reste. Alors allons de l'avant et changeons-le en forme d'aspect. Maintenant, peut-être que vous pensez, Quelle est la différence entre l'aspect, ajustement et l'aspect ? Sentez-vous bien, l'aspect ajusté s'adaptera à votre image avec un rapport d'aspect dans les limites de votre vue. Donc, vous savez, est que les vues assez petites en ce moment Il va d'ici à ici et ici pour entendre si je change aspect correspond à mon point de vue. La taille n'a pas changé, non ? Ça vient de rendre mon image plus petite. Donc ça s'insère là-dedans. Parfois, vous voulez que parfois, vous savez, je vais annuler cette commande Z. Et puis essayons de sentir l'aspect maintenant, Aspect Phil gardera votre image au ratio d'aspect, mais ça va couper votre image une fois qu'il atteint les bords du rebond. Donc je fais glisser ça plus gros. Mon image. Tout est toujours là, et ça a l'air bien, mais c'est, ah être coupé. Ce n'est pas ce qu'on veut. Alors allons-y et changeons-le. Aspect ajusté. Et faisons juste, ah, agrandissons. Ouais, ce n'est pas si mal. Et, ah, la raison pour laquelle j'ai le 3,5 pouces ici. C' est l'iPhone quatre. Et pour nous, Ok, la raison pour laquelle je l'ai là-dessus est parce que nous voulons supporter la plus petite taille d'écran , ok. Et ah, ce n'est pas tout à fait. Éric. Les filles l'ont mis juste là. D' accord, j'aime ça. Ok, allons-y et déplaçons le loin d'ici. Et allons de l'avant et ajoutons une autre image. Toi pour le comptoir, et on changera ce compteur Teoh. Maintenant, si ce compteur est le meilleur mot pour je ne sais pas, je ne sais pas ce qu'on appelle la fenêtre de vue. Ce calcul, Vieux Port, peu importe ce que tu veux appeler ça. Ce que tu as regardé, ce qui faisait tourner ta calculatrice à l'envers quand elle était enfant et épeler l'enfer, euh, pour impressionner tous tes amis. Et tu rirais. Donc ce truc,
c' est ce qu'on fait. Et faisons la même chose avec ça. Allons de l'avant et faisons en forme d'aspect. D' accord ? Tu sais, c'est un peu petit. Remarquez comment ? Comme je fais baisser ces, l'image n'est pas re dimensionnement. Je suis discriminé espace frontière supplémentaire. Ok, je pense que ça a l'air bien. Je pense que ces deux-là devraient être ensemble. Peut être flottant comme ça, OK. Et Ah, ouais. Donc j'aime ça. Non. Par le passé, nous avons utilisé des contraintes pour déplacer les choses. Dans ce cas, nous allons utiliser une vue de pile. Nous en avons déjà parlé, mais quand je construisais cette application, j'ai décidé de jouer avec les contraintes au début juste pour voir combien de temps cela a pris et pour ce qui m'a pris une heure avec les contraintes. Ça m'a pris environ cinq minutes avec la vue de la pile U i. Donc, le mot dans la rue, selon Apple, est d'utiliser la vue de pile d'abord, puis les contraintes si nécessaire, alors que dans le passé tout devrait être fait avec des contraintes. Donc ça a l'air bien. Allons de l'avant et sélectionnez cette commande enfoncée ou Maj, puis cliquez sur le
panneau arrière semble un peu désactivé. Tu vois, ces petits points ont dit qu'ils ne sont pas tout à fait centrés. Je ne suis pas content de ça. Oh, c'est parce que l'un est juste légèrement. Je vais devenir anale folle à propos de ça. Allons-y et rendons-le un peu plus grand. Voyez si on peut le faire correspondre. Euh, ça a l'air assez bien. D' accord. Ça a l'air assez bien. Maintenez
enfoncée, maj ou commandes comme l'autre. Et ce qu'on va dio est en bas. Cette petite flèche et pile carrée. Bam là, pile. Maintenant tu sais, c'est qu'on a un problème. Est-ce que le dimensionnement vient de tout être fou foin ? Ok, d'accord. Hors de l'écran. Et ce n'est pas ce que nous voulons. Donc je vais aller de l'avant et annuler la création de la vue de pile Commande Z, hum, je jouais autour de certaines choses. Bon,
donc, au revoir, pile, pile, tu écris à propos de maintenant. D' accord, alors on remarque que c'est devenu grand. Et au moins pour cette application, nous voulons juste fixer la taille. Nous ne deviendrons pas complètement complexes, et je suis déjà en train de dimensionner les choses. Ok, si bien. Et cliquez sur votre vue de comptoir là-bas et allez dans le menu de votre épingle, et vous allez de l'avant et cliquez avec et la hauteur. Donnez-lui un fixe avec une hauteur fixe afin qu'il ne change pas. Ok, parfait. Maintenant, c'est un peu dehors, mais c'est bon. Et puis sur la même chose pour le panneau arrière, allons de l'avant et cliquez fixe avec et la hauteur fixe et ajouter aux contraintes. Et, bien
sûr, il a l'air tout funky ici. Mais maintenant, quand nous sélectionnons par magie cela et maintenez la commande de décalage enfoncée
et comme la deuxième vue , puis quand vous sélectionnez la pile pour vous ici en bas, ils sont maintenant empilés ensemble comme une seule unité, ce qui est super cool. Super, super cool. J' adore ça. Alors allons de l'avant et maintenant centrons cela au milieu de l'écran parce que nous savons que nous
n'avons besoin de rien au-dessus et de quoi que ce soit en dessous. Donc, je vais aller de l'avant et cliquer sur l'icône Suleiman et nous allons horizontalement dans conteneur et verticalement dans le conteneur, et les choses devraient par magie paraître correctes sur le côté droit dans l'écran d'aperçu. Et bien sûr, ils le font. Voyons à quoi cela ressemble sur un écran plus grand. Pas mal. Maintenant encore une fois, nous n'utilisons pas tout l'espace de l'écran,
mais c'est un sujet et une leçon pour un autre jour pour que les choses grandissent et se rétrécissent au fur et à mesure que vous en avez
besoin . Nous en avons parlé un peu dans notre leçon de mise en page automatique, donc vous pouvez le faire si vous voulez. Ok, donc ça a l'air assez bien pour l'instant. Maintenant, nous avons besoin d'un bouton orange regardant des choses qui ont des chiffres sur eux. Ok, alors allons-y et faisons-le d'abord, cependant. Je veux signaler quelque chose. Si vous pouvez voir ces lignes pointillées juste ici. Ce que ce dicton est, même si sur votre écran en ce moment, vos images et contrôles sont là où ils sont qu'ils vont réellement se déplacer dans cette position à l'exécution. Donc c'est un peu Ah, aperçu de l'avenir, vous savez, si cool à l'écran. Évidemment, ce n'est pas complètement centré ici, mais ce sera au moment de l'exécution, comme vous pouvez le dire dans le côté droit. Alors faites toujours confiance à ce qui est sur le côté droit. Ne fais pas toujours confiance à ce qui est sur le côté gauche. Cependant, sur le côté gauche, assurez-vous qu'il ressemble juste à droite. Ok, alors qu'est-ce qu'on devrait utiliser pour ces chiffres ? Eh bien, si vous deviez dire, allons utiliser de nouvelles images, vous seriez absolument incorrect parce que nous devons utiliser des boutons. Bien sûr, les boutons. Vous cliquez sur les images que vous n'avez pas. Alors passons à autre chose. Dragon plus. Ok, ce n'est pas ce que nous voulions faire. Remarquez comment il vient de le laisser tomber juste là dans la vue de la pile. Maintenant, c'est une fonctionnalité vraiment cool pour les moments où vous voulez déposer des choses dans une pile que vous ne faites pas les contraintes de changement, mais ce n'est pas ce que nous voulions faire. Un code X agissait un peu trop intelligent pour son propre bien. Allons annuler ça. Maintenant, je vais aller de l'avant et le faire glisser ailleurs sur l'écran. On y va. Et allons à droite ici et supprimons le mot, mais parce que nous ne voulons pas le faire. Nous voulions être une image. Et pour votre image, quel numéro pensez-vous qu'on devrait commencer ? Si tu pensais au numéro zéro ou un,
ça serait proche,
mais on va commencer par sept. Si tu pensais au numéro zéro ou un, ça serait proche, Maintenant, la calculatrice de pomme sur l'iPhone, ça commence 789 du top 456 et beaucoup de calculatrices le font. Est-ce que je comprends la raison ou la science derrière elle ? Non, mais on va le suivre. Je suppose qu'ils ont fait des recherches. Et c'est ce que les gens aiment et quoi, donc trop gros boutons trop gros. Évidemment. On doit se sentir mieux que ça. Ok, alors allons de l'avant et trouver une bonne taille pour ça. Hum, maintenez le quart de travail enfoncé et réduisez-le. Je vais juste deviner très vite ici, estimer,
estimer quand tu auras trois ans. Ça pourrait être bon pour le moment. Allons de l'avant et Oh, attention. Je vais prendre la mauvaise chose ici. Allons par ici. Et ce que vous pouvez faire, c'est que vous pouvez maintenir la commande Commande enfoncée. Ah, plus D. Ok. Et il va le dupliquer. Ça veut dire double. Ou vous pouvez faire commande voir que commande être, fait exactement la même chose. Allons et passons au numéro huit. Ça a l'air bien. Et puis nous sommes dans une commande de sélectionné à nouveau. Il veut juste être mis en évidence à nouveau Mandy, et on va aller de l'avant et on va le déplacer ici, et ça a l'air bien. Ok, changeons l'image à neuf. D' accord. Toutes les filles. D' accord. J' aime ça. Donc, nous allons aussi faire quelque chose d'autre aussi bien pour aller de l'avant et faire tout cela une hauteur fixe avec et fixe. On peut changer ça plus tard si on veut. Juste pour qu'ils disent la même chose. Oh, tu l'aimes. Il y a une mise en page automatique rendant notre vie magique ici sur le côté droit. Pourquoi personne ne sait peut-être jamais, mais nous allons bientôt nous arranger en sélectionnant les trois. Ok, maintenez enfoncée, Commande, sélectionnez les trois. Maintenez le décalage et nous allons aller de l'avant et les mettre dans leur propre vue de pile juste ici à droite à l'intérieur. Et maintenant, ils sont dans une vue de pile. C' est plutôt cool. Et ils sont craqués. Mais
par magie, en changeant ce nombre ici espacement, il ne sera plus craqué. Je vais mettre un 25 là-dedans, voir à quoi ça ressemble. Et ils sont maintenant de l'espace à 25. C' est plutôt cool. C' est vraiment cool. En fait. Maintenant, ce que je peux faire, c'est que je peux prendre toute cette pile de Royaume-Uni, et je peux en fait le glisser dans la sensation de pile. Ok, mon garçon, ça va faire. Ça va le cerner. Donc, nous ne voulons pas empiler les choses dans la vue de la pile car ils n'ont pas besoin d'être une pile. Ils doivent flotter dessus. Donc dans ce cas, nous n'allons pas utiliser plusieurs statues avec des chiffres. Et le contexte que nous faisons en fait est d'exposer ceci via des contraintes, qui est correct, c'est très bien. Alors allons-y. Aide. Ça pourrait être prudent. Vous sélectionnez ici. Je vais aller de l'avant et je vais juste bouger la pile pour toi jusqu'au bout, ok ? Et je vais utiliser les flèches maintenant. Deux choses de position, parce que si vous cliquez et faites glisser, il va le déposer dans cette pile V à nouveau. Parfois, c'est trop intelligent pour son propre bien. Ok, donc, ouais, des espacements un peu, un peu lourds. Alors, allons-y et changeons-le ici sur le côté droit. Quoi ? Il pense qu'un bon nombre 20 peut être le nombre. Ah, double-cliquez dessus et déplacez-le un peu. Je pense que 20. Encore un peu trop. Allons de l'avant et essayons 15 Mieux. En passant, vous allez faire beaucoup de ces lots d'essai et d'erreur et de test à moins qu'un concepteur ait
fourni une illustration parfaite de pixel pour vous et attend à ce que vous l'implémentez parfaitement pixel. Ok, tu vas faire beaucoup d'air d'essai tout seul. Ok, donc ça se rapproche de ce que je veux. J' ai vraiment l'impression que ces boutons sont juste un peu trop gros. Jouons un peu avec ça ici. Qu' est-ce qu'on a en ce moment ? En ce moment, c'est 65 par 66. Allons de l'avant et changeons. C' est peut-être comme ça 61 63. Donc, si vous double-cliquez sur ces
chiffres, chiffres, en fait affaiblir Dio Um, je pensais qu'on pourrait pas faire tous les rendez-vous une fois. Cela fait un à la fois,
juste ah, juste ah, maintenant ce que vous ne voulez pas faire est que vous ne voulez pas aller de l'avant et cliquez sur lui ici et changer ici à nouveau parce que cela va ajouter des contraintes doubles. Ce n'
est pas ce qu'on veut. Alors allons-y. Cliquez sur celui-ci et double-cliquez dessus. Et ce que j'aurais probablement dû faire est juste d'obtenir la bonne taille pour le 1er 1 vers le bas. D' accord, mais c'est bon en essai et erreur. Ce n'est pas grave. Alors disons 61. Ils sont un peu plus grands que larges. C' est très bien. Donc 61 nous allons cliquer sur l'écran et cliquez à nouveau et passe à 63. Ok, et ah, ça a l'air bien. On peut aller voir ce gars ici et ah, on va changer le C'est intéressant. Le ah empilé Vous êtes effectivement allé de l'avant et a fait quelques modifications d'un lui dire, mais allons-y et changer ces. Tous ici 61 sur 61 pas 6 61 chose que vous et Ah, cliquez sur. Cliquez à nouveau et revenons. Teoh 63 commence à se former ici. Un de plus, un de plus. 61. Si j'ai un ours à faire ça, tu dois supporter ça comme
ça, d' accord ? Et Ah, 63. D' accord. J' aime ça. J' aime ça. J' aime ça. Maintenant, il se rapproche de quoi ? Je voulais ressembler à ça. Quelqu' un double-clique sur la vue de la pile et se déplace juste un peu plus. Ici. En haut. Il a trouvé le centre pour nous juste là. Parfait. OK, j'aime ça. J' aime ça. J' aime ça maintenant. On en a besoin pour flotter au-dessus de l'ah, le panneau arrière. Alors, quelle est la meilleure façon de faire ? Eh bien, il y en a probablement beaucoup plus loin. Donc une façon est peut-être qu'on pourrait juste se centrer sur ça. Nous savons que c'est centré sur l'écran, la livre arrière. Peut-être qu'on pourrait juste centrer ça et lui donner un décalage constant. Je pense que la meilleure chose qu'on puisse dio, c'est qu'on veut tout ça. Nous voulons que tous ces chiffres soient alignés sur ce sens. Si cela devait se déplacer tout autour de l'écran. Les chiffres seront toujours dessus car c'est une calculatrice. Donc ce que je pense que nous avons besoin de dio c'est en fait créer tous les numéros maintenant et tous
les boutons les mettent chacun dans leur propre rangée. D' accord ? Et puis je pense que nous devons faire est de les faire tous dans leur propre vue de pile, puis de centrer cela au centre de ceci. Ok, si c'est déroutant, ne vous inquiétez pas. On va y aller tout de suite, donc je vais aller de l'avant et, euh, Mandy à dupliquer et allons-y et passons juste en dessous de là un
peu lentement,
parce qu' peu lentement, on a plusieurs contrôles sélectionné à la fois. D' accord. D' accord. Nous voulions voir ici. Ok,
ça a l'air bien. Vous savez, peu importe ce que nous faisons ici, parce que ce que je peux faire est juste de lui donner un espacement dans une pile verticale, et il devrait probablement être votre 00 non. Regarde ça. Il veut le mettre dans le cerf, tu sais. Très
bien, bien, on va utiliser les erreurs. Ne pas utiliser le dangereux Ah, le dangereux clic glisser. Oh, mon Dieu
, prendre les mauvaises choses. Allez, allez,
allez, allez, allez, allez. On y va. Double-cliquez dessus. Il est sélectionné. Déplaçant à nouveau vers le bas. Ça va aller un peu lentement. Ne pas faire exactement ce qu'on voulait à Dio. C' est bon. Ce bouger. Nous en avons juste besoin en dessous de l'autre contrôle légèrement. D' accord ? Parce que, ah, le carburant de la pile. Aligne-le pour nous. Ok, donc 1234 On a besoin de cinq rangées au total. Maintenant, on en a trois. Allons-y. Et c'est comme ces deux rangées maintenant et commande D. Ok, mettez-le en place. Sortez-le de notre, euh, hors de notre truc. Tous ensemble. Ça doit être un insecte. Faisons juste un à la fois. Comment celui-là l'a fait aussi. Euh, allez. J' ai fait ce que j'ai fait cette fois était juste commande C commande V. Donc modifier copie, Modifier coller. Et ça a fonctionné cette fois. Alors allons de l'avant et le faire différemment cette fois depuis prend beaucoup de temps. Allons à l'axe Y sur la droite. A l'intérieur. Déplaçons le bas. Laisse-moi dire 400. Ok, eh bien, peut-être 4 50 Ok, c'est trop. Mais disons pour 20. Bon, donc nous avons besoin d'une rangée de plus. Pas grand-chose. Je vais choisir ce type ici. Commandement C, commande V. Et allons-y et faisons, Ah, 500. Ok, très bien. Donc maintenant ce que je vais faire, c'est qu'on va sélectionner toutes les vues de la pile, donc Oh, allez. Caméra 12 maintenant le quart trois, quatre et cinq. Et voyons si ça marche par magie pour nous. Quand nous allons de l'avant et sélectionnez cette pile ici. Maintenant, il est censé être intelligent et reconnaître que c'est vertical. Voyons à quel point la vue de la pile est intelligente lorsque je clique dessus et c'est assez dang intelligent. Ok, donc nous avons une vue de pile avec un tas de vues de pile dedans,
et c' est exactement ce que nous voulions. Donc maintenant, si je passe ici à l'inspecteur des attributs, je peux définir l'espacement. C' est cool ? Et l'espacement, je pense, était de 15. Voyons voir ce que c'est, Lewd qu'ici trop. Disons 10. Ça a l'air beaucoup mieux, est beaucoup mieux. Et si on disait sept. Ok, j'aime où ça va. Allons ici et cliquez sur la règle. D' accord ? Et, ah, rendons ça un peu plus haut. Je suis désolé. Eh bien, plus haut. Le nombre va baisser, mais les images nous irons plus haut. Alors allons de l'avant et disons 1 80 trop haut. 1 90 sur 90. Je peux en avoir un ? 91 ? 91 90. Oh, pas tout à fait 1 98 Peut-être que c'est bouger. Il bouge. Je ne suis pas tout à fait là où nous le voulons. Oh, j'ai un support, c'est pourquoi, Ok, on se rapproche. Disons juste, euh 205 Puis-je entendre deux sur cinq Duo cinq à cinq com sur bébé filer ? Il tourne. Ça bouge beaucoup de choses qu'une fois que c'est compréhensible. C' est un peu trop. Disons que 202 Allez. Ok, je vais penser que je vais appeler ça bon, OK ? Et tu es genre, quoi ? C' est hors de l'écran sur le côté droit. Et si vous pensez que vous devriez savoir que c'est ce que nous fait Auto Leo, n'est pas juste. Mais c'est comme ça que ça va. Des trucs très cool. Pas vraiment, mais on doit s'en occuper. Donc, ce qu'on veut, c'est que ça reste ici sur le côté droit. D' accord ? Il ne le fait pas actuellement. Encore une fois, beaucoup d'options. On pourrait centrer sur l'écran. Peu importe. Allons de l'avant et faisons en sorte que ces vues empilent, en
parlant les uns aux autres. Ok, donc ce que je vais dire c'est que je vais aller de l'avant et choisir les frais de pile modernes, qui sont mes chiffres, accord ? Et je dois aimer la vue de la pile supérieure, qui est le retour réel ici. Et ce que je veux faire, c'est choisir une ligne, accord ? Et, ah, je pense qu'il y a plusieurs façons de le faire aussi. Pour ce que je pourrais faire, je pourrais dire, hé, aligner le haut de tout ça sur le haut de tout ça. Et puis ce que nous pourrions faire comme nous pourrions lui donner un orteil décalé constant. Remets-le ici. D' accord ? Ce que nous aurions peut-être dû faire en premier lieu au lieu de déplacer tous ces chiffres . Mais, euh, c'est après le fait, ou ce qu'on pourrait faire, c'est les centrer. Hum bien sûr, horizontalement. On n'a pas besoin de changer ça. Mais aussi verticalement. Et ce que nous pourrions faire, c'est sur la verticale. On pourrait en fait, je ne le suis pas. Pas la seule. Ceux-là juste ici. Centres horizontaux verticaux et centres médicaux. Et sur la verticale, nous pourrions effectivement dire décalage. Il y a bien, aussi. Et je pense que c'est ce que je veux faire. Donc je vais cliquer sur ces deux. Ça va les centrer là-dedans, donc ça va les envoyer ici, et ça va le mettre horizontalement maintenant, l'extérieur. Le panneau arrière ne va pas changer en fonction de ce que nous faisons ici parce qu'il est déjà épinglé au centre du conteneur. Donc c'est déjà arrivé. Et donc cela ne va arriver qu'avec nos chiffres. Ça n'affectera pas le mouvement réel de ça. Donc c'est bon, réunion comme si j'avais ces numéros ici et que je faisais des centres horizontaux, ça ne va pas au panneau arrière là-bas. Ok, je vais ajouter les deux contraintes, OK. Et on y va. Maintenant, c'est exactement comme je m'attendais à le mettre là. Il semble parfaitement centré si vous considérez la limite réelle entière ici. Mais ce n'est pas ce que nous voulons, bien
sûr. Alors cliquez sur le bouton. Donc ils ne sont pas tous les deux mis en évidence. Et cliquez sur votre pile de nombres. Ça va ? Et, ah, par ici, sur le côté droit. On ne veut pas toucher à ça. C' est l'ex centre. Mais ce que nous voulons toucher, c'est le Pourquoi. Ok, donc maintenant ce que je peux dio c'est Aiken, donne-lui une constante, ok ? Et ah, jetons juste un numéro aléatoire lui. Donc c'est un 20 et déplacé vers le bas. Alors disons 40 un peu trop. Disons 35 au fait, je regarde la chose sur le côté droit, bien
sûr. Et 35 semble être le bon nombre. Maintenant, peu importe quoi. Écrivez-le. Ok, ça va avoir l'air juste. Même si je le jette dans le bloc de nuit. Droit ? Allez. Où êtes-vous allé ? Je panique la roue tournante de la mort est sur nous. OK, allons-y. Et qui n'est pas grand là-bas. D' accord, donc ça a l'air super. Et toutes les tailles d'écran. D' accord. Donc encore une fois, ce que nous avons fait, c'est que nous avons mis les choses dans les vues de la pile et une fois qu'elles étaient dans la statue. On n'a pas fait de contraintes entre les nombres et les nombres. On les a mis dans la pile de toi. Il a fait son propre truc par magie. Et puis nous avons fait les contraintes sur les vues de pile que nous voulions couler au-dessus de l' autre vue de pile. Et nous sommes allés de l'avant et l'avons envoyé verticalement. Et puis aussi horizontalement et sur l'horizontale, nous avons mis un, euh Excusez-moi sur la verticale ici, nous avons dit un décalage, donc ça fait baisser un peu. Donc, ce n'est pas tout à fait centré sur tout, mais nous l'avons forcé dans son décalage. Donc ça a l'air bien. Ça a l'air très bien, en fait. Donc on fait des progrès. Donc vous me demandez tous. Je sais. Quand vas-tu changer les numéros de dang ? Ils vole un 789 Ok, OK. Allons-y tout de suite. Pas grand-chose. Alors allons de l'avant et cliquez dessus. C' est assez facile, les gars. Ne pas faire ça. Je ne devrais même pas montrer que tu pourrais faire ça les yeux bandés. Changez ça en un quatre. Ok, pour cinq. Allez, quatre. Celui-ci a cinq ans. Ok, celui-là, je suis sur le côté droit. D' accord. Cliquez sur l'image. C' est tout ce que je fais. Ok, rien de magique. 456 Et, bien
sûr, après 456 vient toujours. 12 et trois, un à et trois. D' accord. Et bien sûr, ce 10 doit avoir un zéro là-dedans, et celui-ci va se diviser. Au
fait, fait, tu peux taper deux. Si vous voulez diviser, percenter, trouvez-le sur. Celui-ci va se multiplier. Je tape des lettres dans le M et ça apparaît dans mon centre de presse. C' est tout. Celui-ci va être sous-traité. Ok, celui-là va être une annonce, ok ? Et celui-ci sera égal égal à égal. D' accord. D' accord. Tous heureux. On a les boutons là-dedans. Ça commence à avoir l'air bien. On en manque. Pourquoi ? Eh bien, on manque le sol. On pourrait faire ça. Maintenant. Je vais être amusant. Alors allons-y et faisons-le. Le sol est statique, alors continuons et utilisons un u. je vous image pour ça. Je vous image merveilleux, et nous allons aller de l'avant et ah, faites attention de ne pas faire attention à ne pas planer sur vos vues de pile. Il aime tout gobbler. Apparemment oui. Et au fait, si vous ne saviez pas que cette pile était un tout nouveau concept de l'Iowa. En fait, c'est assez révolutionnaire. Et j'ai joué un peu avec ça, et je vais l'utiliser sur tous mes AP de production ici sur quatre. C' est à quel point c'est important. Donc, les choses que nous avons appris sur les contraintes sont également super importantes, car elles doivent travailler ensemble, et vous utiliserez les deux. Mais s'il vous plaît apprendre à utiliser les vues de pile si vous voulez que votre vie soit facilitée. D' accord ? Au fait, si jamais tu cliques sur quelque chose de mal, comme je viens de le faire en ce moment, appuyez sur Évasion et ça reviendra. Où appartient affaire ? Parfois, il a des problèmes comme si c'était la tête. On avait besoin de ces flèches ici. Ok, je vais faire passer ça maintenant. D' accord ? Vue de l'image. C' est notre terrain. Hum, c'est soulevé un peu plus haut, ok ? Et ce que je vais faire, c'est le dire si vous remarquez Ah, il y a des commandes ici. D' accord ? Les choses qui sont dans le haut sont, bien que dans le haut, et nous voulons le sol derrière,
donc je vais aller de l'avant et le traîner juste là. À ne pas confondre avec mettre à l'intérieur ou en dessous il y a juste là. Mettons juste une sorte de traîner ici à gauche de la ligne bleue est juste bien de vous juste là. Et Ah, on
y va. OK, donc c'est sur le très bien. On n'en veut pas. Nous voulons sur le fond, mais pas tout le chemin sur le fond, Pas derrière les arrière-plans de l'espace. Ne le mettons-le pas à l'intérieur.
33. Application iOS 9 : Retro la calculatrice Partie 2: C' est Mark Price. Et bienvenue au spectacle, tout le monde. Cet épisode vous est apporté par Spike Energies me gardant debout tard dans la nuit pour que je puisse vous
livrer quelques cartes impressionnantes. Et au fait, ce n'est pas un spectacle. Nous n'avons pas d'épisodes, et je ne suis pas parrainé. Donc, dans la dernière partie, on a construit toute la femme ou l'application. Maintenant, nous devons réellement écrire du code. Ok, voici mon application. Voici votre application. D' accord. Et ah, ça a l'air cool. Ok, alors allons-y et débarrassons de l'assistant rédacteur en chef. Maintenant, déplacez ça. Et je vais juste cliquer sur mon contrôleur de vue aussi rapide sur le côté gauche. D' accord. Comme vous pouvez le voir, nous n'avons rien à voir ici. Vraiment ? Je viens de supprimer l'avertissement de mémoire a reçu. Et parlons de ce que nous essayons de dio. D' accord ? Nous voulons être en mesure de cliquer sur les boutons sur l'interface utilisateur et les contrôles, parler à notre interface ici, et ensuite nous des opérations basées sur n'importe quel opérateur a été sélectionné. Ok, donc il y a quelques choses qu'on peut faire en ce moment. sans avoir à utiliser trop de puissance cérébrale, comme connecter nos éléments d'interface correctement, sur le dans le code. Donc je suis des points de vente ainsi que des réactions. D' accord. Et il y a plusieurs façons différentes de le faire, mais nous allons le faire d'une façon. Et donc d'abord, ce que je suis Alice, faut-il qu'on y réfléchisse. Eh bien, autant que je sache, la seule chose que nous avons vraiment besoin de savoir ou d'avoir une référence est quelque chose que nous pouvons changer,
ce qui, je pense, est sur Lee l'étiquette de sortie. Ok, donc je vais dire que je suis sortie. D' accord. Semaine de notre sortie, étiquette de type vous. J' ai étiqueté. On y va. Mettez un panneau de livre à la fin. D' accord. Il y a que je sois sortie. Maintenant, réfléchissons aux actions, accord ? On a tout un tas de boutons, et on doit les connecter aussi. Non, les chiffres ne sont que des chiffres. Maintenant, ce qu'on pourrait faire, c'est aller de l'avant et faire voir un à neuf plus zéro. Donc ça fait 10 numéros. D' accord ? On pourrait aller de l'avant et faire 10 actions de lierre, mais je ne pense pas que ce soit la meilleure façon de le faire. Je pense qu'il y a une façon plus intelligente de le faire. Donc c'est ce qu'on va dio. On va ouvrir notre assistant rédacteur en chef ici, au milieu, accord ? Et nous allons de l'avant et changeons ça ici. Je vais cliquer sur ce dossier ici. Calculatrice rétro, et je vais sélectionner le storyboard principal. Ok, très bien. Très bien. Fermons le côté gauche ici pour l'espace. Ok, donc nous avons tous ces chiffres ici, et il y a quelque chose de vraiment cool que vous pouvez faire avec un bouton ou n'importe quelle vue. D' accord ? Ces boutons et tous ces contrôles, au fait, ils héritent tous de ce qu'on appelle une
vue U I. Nous n'avons pas parlé d'héritage, mais fondamentalement, tous ces contrôles héritent des fonctionnalités d'autres contrôles. D' accord ? Et donc ils ont une fonctionnalité appelée Tag T A G. Très bien, donc je vais entendre le côté droit et faire défiler plus facilement que ma valeur par défaut. La balise est définie sur zéro. Donc ce que je pense, ce que je pense est ce que nous allons dio est de donner à chacun d'eux une balise basée sur le nombre qui représente le bouton, et ensuite nous appellerons la même fonction dans l'action I b dans notre code, et ensuite, nous saisissons simplement le numéro pour voir quel bouton a été pressé que nous n' avons qu'à faire une seule fonction. Je pense que c'est ce qu'on veut faire. Donc ce que je vais faire c'est d'abord, allez-y et changez les chiffres dans chacun d'eux. Alors j'ai juste changé. Numéro un orteil un change numéro deux, aussi. D' accord. Et je vais changer 3 à 3. Je pense que vous suivez un modèle ici pour 24 et 5 à 5. Et tu en as six. D' accord. Oui. Sept. On en a huit et on a une nuit. Voilà, tu y vas. Pas trop dur. Assez facile. Maintenant allez-y et écrivez. R I B action ici sur le côté droit. Et je vous encourage à écrire autant de code que possible pour mémoriser ces choses. Ok, je réagis. OK, ce sont les fonctions du funk. Et allons de l'avant et appelons ceci, euh, quel est un bon numéro pour le nom d'un numéro appuyé sur Number. D' accord. Et ah, pour moi de type bouton, mets-toi un bouton. Tu te souviens ? Le paramètre nous lui donnons un nom, puis nous passons le type après. Ok, très cool. Donc maintenant, nous savons quel bouton a été pressé. OK, j'aime ça. J' aime ça. J' aime ça maintenant avant qu'on entre dans le minable, faisons encore une chose amusante. OK, mettons un peu d'audio ici, et c'est excitant. J' adore mettre l'audio, mes abdos. J' adore donner vie à mon APS. Peu importe. Vous avez des clients qui ? Ah, qui veut juste les os nus. Je faisais de mon mieux pour leur donner mawr non pas au détriment du temps et de l'argent, mais leur donner plus que ce qu'ils demandaient. Et parfois une animation simple. Et l'amour que vous mettez dans les choses peut grandement améliorer une application. Et je pense que ce sont les APS qui font beaucoup d'argent sur l'APP Store. Alors allons de l'avant et ajoutons des effets sonores à notre application. D' accord ? Et donc ce qu'on va faire, c'est qu'on va utiliser quelque chose qui s'appelle une fondation V. Je vais aller de l'avant et importer la bibliothèque ici, importer une fondation V maintenant Swift sait automatiquement ce que je fais, OK, ça ne s'est pas terminé automatiquement pour moi, donc si vous ne saviez pas ce que vous cherchez, ce ne serait pas Il suffit de le mettre par magie. Mais nous l'avons là. Une fondation en V. Ce que ça va faire, c'est qu'il va nous donner et un lecteur audio vidéo, et on va juste jouer un peu de son, accord ? Et donc nous devons d'abord sonner. Donc je vais aller de l'avant et ouvrir le côté gauche à nouveau ici, comme vous pouvez le voir. D' accord. Et allons prendre ce dossier. D' accord ? Donc je vais ouvrir mon détecteur, et on va regarder sur le bureau pour aller à l'art de la calculatrice ici. Et ah, c'est un art. Mais on va chercher n'importe qui. Là, il est bouton vague point, et vous pouvez juste aller de l'avant et cliquez dessus et faites-le glisser ici juste à côté de la Minecraft TTF. C' est très bien. D' accord. Assurez-vous que l'option Ajouter la cible est sélectionnée comme la dernière fois. Destination des éléments de copie majeurs, si nécessaire, est activé. Et allez-y et cliquez. Terminer. Bon, donc maintenant nous avons un fichier sonore réel dans le projet, OK ? Et donc je vais aller de l'avant et ah, rendre ça un peu plus grand pour que vous puissiez voir le code ici. D' accord, et Ah, OK. Sous les points de vente ici, je vais aller de l'avant et créer, hum, un lecteur audio. Alors sauvegardons nos boutons. Son de type A V audio. Sortez. Un lecteur audio Lario A V complet. D' accord. Et le point d'exclamation dit, Hey, on va juste assigner ça plus tard. En ce moment, il n'y a rien dedans. Et si vous essayez de l'utiliser, le crash de la pomme. Mais tu me promets que tu vas y mettre quelque chose, et on va le faire. Et on va utiliser View. chargé pour initialiser cela. Ok,
Donc, la vue ne charge est appelée à chaque fois. Quoi ? Chaque fois que la vue se charge, c'est plutôt cool. Donc, après l'initialisation se produit, ok, lorsque les vues se sont chargées sur l'écran et que cela peut encore se produire avant visuellement dans votre œil, vous pouvez extase il provoque l'air rapide des ordinateurs. Ok, Mais lorsque les vues ont été chargées en mémoire, c'est à ce moment que cette fonction sera appelée. D' accord, c'est ce qu'on doit faire, c'est d'abord prendre le chemin du feu quand on dit, Hey, où vit ce dossier ? Sur notre système de fichiers. Sur l'iPhone ? Oui. Faisons ça. Maintenant, disons laisser le chemin. On va le faire parce qu'on ne va pas changer. Ça va rester constant. K est égal à N bundle. Ce paquet principal. Ok, tous ces fichiers étaient dans le paquet principal. Et donc, lorsque vous voulez saisir des choses comme ce que nous faisons en ce moment et qu'il est groupé bundle
principal est ce que vous voulez appeler chemin de point ok pour la ressource. Nous avons donc le chemin pour une ressource et il y a un chemin spécialisé. Tu n'as même pas besoin de savoir à quoi ça ressemble. Sachez juste que ça vous donne ce chemin. Ok, Dans le nom du fichier est la beauté dans le type W A V assez simple. Le nom et son type son extension à la fin. D' accord. Et donc nous avons un chemin de chaîne. C' est juste une chaîne. Et maintenant ce que nous avons besoin de dio le lecteur audio exige que ce soit un n s u r l Ok, un type spécial de pomme. Je gamine, euh tu es l que ce lecteur audio va utiliser, alors allons-y et faisons l'Aurel maintenant aussi. Donc, ne allons pas le changer donc c'est un son constant. Tu es égal à moi. Et comme Euro Okay, présentateur et les parenthèses qui s'ouvrent. D' accord. Et ce qu'on cherche, c'est ce fichier de type. Tu es malade avec le chemin, et on va passer sur le chemin, ok. Et ah, ça a l'air bien. Et voyons ce que dit l'avertissement. Il n'est jamais utilisé. Quoi ? Nous le savons. Donc, parfois ces avertissements ou préventifs, vous n'avez pas besoin de vous inquiéter pour eux. On sait qu'on va l'utiliser. Alors tais-toi, code
X. Bonté. D' accord. Donc, non, il y a quelque chose que nous devons faire. Et nous avons besoin de ce joueur. On doit assigner ce joueur à notre bouton. Sonnez qu'un lecteur audio B. D' accord. Et, euh, allons-y et faisons ça maintenant. Donc le son du bouton est égal à un lecteur audio V, et on va le charger avec la fille. Celle-là, d' accord. Et, ah, ça va être un euro, et ça va nous donner un air. Parlons de ça. Il dit appel peut lancer, mais il n'est pas marqué avec essayer et l'air n'est pas traité. Ok, c'est vraiment important. Il s'agit d'une nouvelle
fonctionnalité Swift 2.0 . Donc avant et rapide un point x. bien
sûr, ils ont fait de grandes choses en vous aidant à avoir un code très robuste qui ne se bloque pas . OK, eh bien, ils ont pris cela même au niveau supérieur pour vous mettre dans un endroit où ils, en substance, vous forcent à ne pas laisser votre application planter. Ah, et c'est vraiment une bonne chose. C' est vraiment une chose sûre à faire. Donc, ce qu'ils disent en gros, c'est un lecteur audio B, il pourrait se casser. On a peut-être mis un mal que tu es moi là-dedans et quelque chose pourrait se briser. D' accord. Et ça peut ne pas vous donner ce que vous voulez. Et donc ils vont nous forcer à ne pas essayer ça en premier, d'
accord, accord, avant qu'on puisse l'utiliser. On doit donc dio quelque chose qu'on appelle un do. Ok, mettez-le dedans. Ah, accolades là-bas. Je vais demander à X de couper ça dans la commande V pour le coller. Donc on va faire ça. Cela signifie effectué ce bloc de code. Et ce que nous devons faire, c'est mettre un mot clé devant cette tentative secte. Ok, donc à partir de maintenant, chaque fois que le code X te crie sur Hey, ça jette quelque chose comme ça vient de nous crier dessus. Ça dit ça. Jetez quelque chose. Nous savons que nous devons le mettre dans un bloc do ici. Il y a d'autres façons de le faire, mais vous le mettez dans un bloc do, puis mettez le mot-clé try devant lui. Ok, on va essayer ça et voir si ça marche. Et voici la clé juste là. Ok, attrapez. Donc, ce que nous disons c'est essayer de faire ça, et s'il y a un problème, attrapons ça ici. Ok, attrapons notre problème juste là. Je vais voir si l'air disparaît, accord ? Et voyons ce que ce type dit encore. Il n'a jamais été utilisé. C' est très bien. Ok, alors reparlons de ça. Faites-le ce bloc de code. S' il y a des problèmes, c'est ce que l'on essaie. Ce n'est pas garanti s'il y a des problèmes ici. Alors disons que cela est tombé. Nous ne pourrions pas jouer notre son et donner des résultats inattendus. Peut-être juste ici. On veut Teoh. Rechargez-le, réessayez. Mets à New York là-bas, qui sait maintenant, tout ce qu'on va faire, c'est juste imprimer le point d'air profond Ah, description de
débogage. Et quelles distributions de débogage vont dio,
c'est Ah, ça va juste imprimer quelque chose qui est lisible pour le consul. Si je presse ce type, ce gars là-haut, ce truc apparaît, il l'imprimera juste là. Quoi ? Le problème réel pour qu'on sache comment le résoudre. Ok, donc tout ce qu'on fait c'est qu'on essaie ça si ça marche, super. Si ce n'est pas le cas, imprimons ceci ici. Ça va marcher parce que, euh, notre chemin est bon et tout ça. Donc, de toute façon, fonctionnalité
très cool. On va y aller plus tard. Hum et ah, tu dois le faire parce que ça te pousse à le faire. Alors nous allons nous y habituer maintenant. Et euh d'accord, donc nous avons ce que nous avons fait, c'est que nous avons maintenant assigné un lecteur audio à notre bouton. Donc voici leur variable. Et on a juste mis le lecteur audio et on a chargé la fille juste ici. D' accord. Et ce que nous voulons dio, c'est après qu'il charge avec succès les lecteurs audio, allez-y et juste, euh, appelez prêt à jouer. C' est une fonction sur le lecteur audio A V. Et ce qui va faire, c'est que ça va préparer votre son pour qu'il n'y ait pas de temps d'
attente avant que l'utilisateur appuie dessus. Ok, trucs
très cool. Et donc, hum, ses lecteurs audio travaillent et ah,
eh bien, eh bien, je pense que c'est tout ce qu'il nous faut. Voyons si un numéro est appuyé si on pouvait juste jouer un son. Alors je dis bouton, sonnez cette plaque. Il devrait pouvoir jouer ce son. Maintenant. Nous n'avons pas connecté nos boutons. Ce que je suis encore perspectives. Alors faisons ça de temps en temps Essayons le son. Ok, alors revenez ici dans notre constructeur d'interface, notre storyboard. Et quand je dis constructeur d'interface et storyboard, je mange en quelque sorte la même chose. Ah, storyboards n'ont pas toujours existé avant que vous deviez utiliser ah, ce qu'on appelle des fichiers zip et c'est toujours le constructeur d'interface avec des storyboards. Ness est la connexion de plusieurs Zip ex I B. Est ce qu'ils sont appelés, et donc nous utilisons toujours Interface Builder, ok ? Et donc on a nos boutons ici, et ce qu'on a besoin de dio c'est de les connecter et de le faire juste ici très facilement pour que je puisse le faire ? Cliquez sur ceci et Ah, retouchez à l'intérieur. Je vais le laisser tomber sur le contrôleur de vue et le numéro pressé. Pose ça juste là. Allons-y. Ah, numéro un. C' est pour tous. D' accord. Et ah, encore une fois, tu vas me regarder faire tout ça ? Je n'aime pas sauter ces choses parce que la répétition est incroyablement importante lorsque vous
apprenez la programmation ou quoi que ce soit d'autre. Mais surtout la programmation est la programmation nécessite beaucoup de puissance cérébrale. truc à propos de la programmation,
c'est pas comme quand, tu sais, tu as un boulot comme,
euh, euh, tu sais, près de 16 ans, tu travaillais à Wal Mart. Tu sais, tu pourrais être fatigué. Peu importe combien d'heures de sommeil tu as. C' est le mauvais. Là. Tu pourrais encore te lever et faire tout ce que tu dois faire. Ce n'est pas un programme. Tu as besoin de repos. Tu dois avoir un cerveau qui fonctionne. Ah, c'est un peu plus dur. OK, donc c'est un peu plus dur. Donc, euh, donc la répétition est vraiment importante. Donc je vais vous en donner beaucoup,
et, euh, euh, on est presque là. On y est presque. C' est faire glisser le contrôleur de vue vers le haut. D' accord. Hum en a fait plus de cinq ici Oh, je crois qu'on a fait le numéro cinq. D' accord. Et laissez-moi faire le numéro quatre. Oui. D' accord. Donc numéro sept maintenant et retouchez à l'intérieur de ce petit en faisant tout ça ici. Si j'ai foiré, faites-le moi savoir. Mais je ne peux pas parce que c'est un enregistrement et vous êtes probablement dans le futur. Et je le suis probablement dans le passé. C' est une sorte de paradoxe étrange. Tellement réprimée. Encore un numéro 90 Qu'est-ce que je viens de faire ici ? C' est vrai. Cliquez sur le contrôleur de vue. Voyez ce qu'on se passe. Donc on a un bouton bouton, mais c'était tous des boutons. OK, ça a toujours l'air bien. Alors laisse-moi Ah, assure-toi que Sept est bon. C' est toujours le cas. Faisons en sorte que le numéro 8 soit bon Still. Regarde cette traînée ne me l'a même pas dit. Les gars, allez, retouchez. A l'intérieur, c'est ce qu'on voulait. D' accord ? Et ah, ni neuf. Retouchez à l'intérieur pour voir la manette. Bon, maintenant allons-y et sauvegardons-le et ah, lance-le. Je pense qu'on a tout ce dont on a besoin. Voyons si ça marche. Si on doit avoir des erreurs,
il est très possible que tu ne saches jamais que j'entends toujours M. croiser les doigts quand tu
construis en espérant que quelque chose va marcher, ce qui amène un bon point quand tu te développe, vous devriez tester les choses aussi souvent que possible vous pouvez commander trois. Pour faire ce plus gros tests est souvent comme vous le pouvez, parce que plus vous écrivez de code, plus vous aurez de risques de problèmes et de maux de tête. Et ça va être plus difficile à réparer. Donc, le test souvent exécuter et testé souvent. Ok, voyons ce qui se passe ici. D' accord ? Maintenant, si tous ces boutons font un son, nous avons du succès. Alors voyons. Succès, Succès, succès, succès. Tu as compris le point ? Je pense qu'on peut appeler ça un succès. Je vais l'arrêter. D' accord. Des trucs très cool. Donc on a des boutons qui jouent. C' était facile ? quel point était-il facile de mettre du son dans votre application ? Tellement cool. On a de l'audio. OK, allons-y et fermons. L' éditeur assistant et nous allons sélectionner sur le côté gauche notre contrôleur de vue que rapide . D' accord. Et nous voilà dans le code. Maintenant, réfléchissons à ce que nous devons faire. Parfois, je visualise cela parfois je dessine sur papier. Pensez à ce que nous devons faire. Donc, si vous pouvez prétendre que vous utilisez l'application de calculatrice iPhone et en fait, si vous ne l'avez pas devant vous, pourquoi ne pas le faire ? Pourquoi ne regardez-vous pas la vidéo positive et réfléchissez ensuite à vous-même Comment fonctionne cette calculatrice ? Ce qui veut dire que si j'appuie sur zéro, puis appuie sur le bouton plus et puis sur autre chose, qu'est-ce que ça va aller ? Presse gratuite de cinq personnes. Et puis un fossé, puis un cinq, puis un fossé. Qu' est-ce que ça va dio et se familiariser avec ça ? D' accord. Et je suppose que tu as fait ça, et je vais quand même l'expliquer. Donc, quand vous avez une calculatrice et que vous appuyez sur, disons le numéro cinq, puis vous appuyez sur le bouton plus, puis vous appuyez sur un six. Que se passe-t-il ? Eh bien, rien. Tu vois juste les six là-bas. Mais si vous appuyez sur Egals, ça dira 11. Ou si vous appuyez sur l'opérateur suivant. D' accord. Quand vous allez effectuer une autre opération, votre opération, il va de l'avant et a effectué l'opération d'impression à l'écran. OK, donc c'est comme ça que ça marche. Donc, une chose que nous savons est Ah que lorsque les utilisateurs tapant dans leur premier numéro. Ok, on doit montrer à l'écran. Ok, donc si je tape quatre ou cinq et six, c'est toujours un spectacle à l'écran. Maintenant, si je devais faire un 4 plus, si j'étais genre, vous remarquez quelque chose de quatre plus cinq plus six, ça ne me donnera pas 4 56, n'est-ce pas ? Non, ça va me donner ce que c'est ? 9 10 11 12 13 14 15 Amy, 15 hier soir. Nous voulons Alors, quel type de données pensez-vous que nous devrions stocker cela ? Ah, en
cours d'exécution numéro comme les utilisateurs tapant. Si vous avez dit chaîne que vous aviez raison. Allons-y et faisons-le, d' accord ? Var, je vais l'appeler numéro courant. Ce qui veut dire qu'
il est en cours d'exécution, c'est à vous de taper dedans et ça va par défaut. Ça va être une chaîne vide. Et sachez juste que lorsque votre application s'exécute pour la première fois, ce code sera appelé ici. Et quoi que tu aies initialisé ces choses va arriver. Donc, au moment de l'exécution quand
cela commence, ce sera une chaîne vide. OK, donc on sait qu'on va avoir besoin d'un numéro courant. Maintenant, réfléchissons à ça un peu plus, d' accord ? Nous essayons de penser à quel type de données nous avons besoin du magasin. Donc, si j'ai un numéro courant, sont
les chiffres qui sont imprimés à l'écran. OK, à un moment donné, nous devons faire quelque chose avec ces chiffres et le point que nous devons faire c'est quand l'utilisateur presse est, hum, un opérateur. Quand on appuie sur un opérateur,
ça veut dire que
nous sommes prêts à taper le prochain numéro. Quand on appuie sur un opérateur, ça veut dire que Donc, nous avons probablement besoin de stocker le premier numéro en cours quelque part, parce que si le premier numéro en cours était cinq et six et alors quelqu'un le fait, je suis bouton
moins , puis commence à taper ce numéro en cours d'exécution doit changer pour le nouveau pour les nouveaux textes. OK, alors ce qu'on va faire, c'est avoir quelques ficelles. D' accord, donc je vais dire barre gauche Val, chaîne égale et chaîne vide et chaîne Val à droite égale chaînes vides. On va sur le côté gauche et le côté droit K comme, vous savez, cinq fois 32 opérateurs différents. Ok, donc ça a l'air bien. Euh, non. Quand un utilisateur appuie, disons que j'appuie sur cinq et que j'ai appuyé sur la division, mais j'appuie sur six. Eh bien, à ce moment là, rien ne s'est encore passé, non ? Il n'a pas fait les calculs. Ça attend toujours les six heures. Et pas avant d'appuyer sur un signe égal ou jusqu'à ce qu'un autre opérateur soit pressé. Est-ce qu'on fait le calcul à l'écran ? Donc, ce que je dis, c'est que nous avons probablement besoin d'un endroit pour stocker l'opérateur qui a été sélectionné correctement
,parce que quand cette personne entre à nouveau ce deuxième numéro, , cette opération, pas ce calcul, est ne se passe pas juste alors et là, OK, et si vous êtes confus, jouer avec l'application iPhone d'accord avec l'application calculatrice et voir comment cela fonctionne. Quand est-ce que les choses s'impriment à l'écran comme juste vraiment creuser dedans en tant qu'utilisateur ? Du point de vue du monde réel, ce n'est même pas un revêtement. Il suffit de le regarder et de regarder l'ordre des événements de la façon dont les choses se passent, et ensuite vous pourriez commencer à le décomposer et à construire quelque chose ici. Nous devons donc stocker l'opération actuelle. Ok, mais quel est un bon moyen de le stocker. Donc ces opérateurs, vous savez comment nous venons de faire et rester des balises de réinitialisation storyboard. Ok, on clique sur le bouton et on a dit une étiquette dessus. Genre, hum 12345 peu importe. Et ah, c'est Alfa. Voici une étiquette. Eh bien, les
étiquettes ne sont que des nombres, non ? Donc je pourrais aller dire, genre, 10 11 12 13 14 sur ces boutons. Et je pourrais dire, Hey, si cette étiquette est 14 est divisée, mais ça semble un peu stupide. Et en plus, vous ne pouvez mettre que des chiffres ici, donc nous n'allons pas utiliser de balises cette fois pour suivre le fonctionnement de ces boutons. Cette fois, nous allons créer quelques fonctions différentes. Actions Ivy pour chacun de ces boutons de l'opérateur. Ok, donc on a pensé à vous savez quoi ? Ce que nous devons faire avec nos données ici et puis nous savons que nous devons en quelque sorte suivre quand ces opprimés et les stocker. Ok, alors allons d'abord les suivre et ensuite on parlera de les stocker. Tu es avec moi jusqu'à présent. Vous faites une pause. Va boire un verre. Tout ce dont tu as besoin pour rester avec moi ici. C' est, euh, étaient en train de traverser les eaux boueuses. C' est un peu rude, mais on sortira sur le dessus. Alors allons de l'avant et cliquez dessus. Et si tu te souviens, bon, contrôle, traîne-toi ici et je vais passer d'un point de vente à l'inaction et on appellera ça. Diviser pressé. Maintenant, vous pensez peut-être, Pourquoi ne pas simplement le raccourcir et l'appeler Diviser pensera à ce vrai attentivement. Que faire si notre fonction elle-même l'action I b ? Et si ce n'est pas en fait la division ? Ok, peut-être qu'on le transmet ailleurs. Euh, tu sais, ou pourquoi tu le saurais ? Peut-être qu'on ne veut pas l'appeler. Je suis une action dans notre code lui-même si nous avons besoin de diviser quelque chose. Donc, j'aime garder mes événements et mon i b action en fait les événements battent. veut dire, Hey, quand c'est pressé, alors fais ce que tu veux, ok ? C' est pour ça que j'appelle Divide Press parce que je ne sais pas ce qui va se passer, et ça peut même pas être divisé. Je le transmettrai à un autre endroit et je le ferai en fait. Donc sur diviser presse est une action lierre, et je vais me connecter, et j'aime continuer sur mes actions i V ensemble pour faire un look joli contrôle, Draco ici et vous enseigner l'action. On va appeler ça, se multiplier, ok ? Et ça me semble bien. Et, ah, nous allons soustraire. Ok, changé en inaction. Et on appellera ça sur les sous-voies pressées. Et au fait, si vous ne le saviez pas déjà, et si je n'ai pas assez martelé dans votre cerveau, c'est comme
ça que je code dans la vraie vie. Je suis très méthodique. J' épelle les choses très détaillées. D' accord. Je veux dire, je suis très généreuse dans les détails. Je suppose que pour vous aider, vous
aider à apprendre. Mais je code vraiment comme ça parce que si un programmeur peut regarder votre code et savoir exactement ce qui se passe, vous avez un très bon code. Ok, sur ajouter appuyé contre si vous avez un tas de code que vous ne pouvez pas comprendre à moins qu'il n'y ait commentaires partout. Vous savez, si je dois dire mon code, cette fonction le fait et que c'est probablement le signe que vous avez du mauvais code, et ce n'est pas très lisible. Donc, euh, code
pur, à mon avis et les opinions de beaucoup d'autres est un code qui a le moins de commentaires possible et que l'auto-description, Ok, auto-description par son nom et ses futurs et ce qu'il fait durer mais pas moins sur égale pressé. Et laissez-moi changer ça en inaction. D' accord ? Il a l'air très beau et vraiment bien. Maintenant, nous avons les actions. Ok, je vais y aller et y aller encore. Éteignez l'éditeur assistant. Je vais cliquer sur mon contrôleur de vue donc j'ai plus d'espace de code est venu aussi, vous remarquerez que le constructeur d'interface va parfois ralentir les choses. Donc c'est bon de ne pas y être si tu n'as pas besoin de l'être. D' accord. D' accord. Parlons donc de ces actions ici. Alors réfléchis à nouveau. Jouez avec la calculatrice iPhone. Alors. Diviser pressé. Ok, donc quand j'appuie sur lebouton de
diviser, bouton de
diviser, une des deux choses pourrait arriver. D' accord ? L' un est que rien ne pourrait arriver. Donc sur cette calculatrice, vous appuyez sur diviser, et rien ne se passe. D' accord ? Au moins visuellement pour l'utilisateur. Et puis rien ne s'est passé. Donc, vous commencez à taper le numéro suivant, puis il est stocké. Ok, c'est un scénario. L' autre scénario est que quelqu'un a déjà pressé un premier opérateur comme la première fois, et cela est maintenant pressé une deuxième fois. Donc maintenant, nous devons réellement faire le calcul et montrer le signe égal. OK, donc c'est très évident pour moi que nous devons stocker l'opérateur parce que lorsque le second opérateur appuie, il doit savoir sur le 1er 1 pour qu'il puisse effectuer le calcul. D' accord, et encore une fois, si vous êtes confus, AC m'a pris quelques minutes. J' étais assis là-bas est,
genre, genre, comment fonctionne ce jour et calculer le travail ? Je n'aurais jamais cassé une calculatrice pour voir comment ça fonctionnait. Et, euh, donc ça prend quelque chose, juste jouer avec l'application et te dire ce qu'ils ont fait. Donc, je vais appeler cette opération en cours signifiant l'opération en cours qui est en cours d' exécution. D' accord. Et c'est comme, Eh bien, quoi ? Qu' est-ce que ça devrait être ? Devrait-il être une chaîne ? Est-ce que je les stocke dans un tas de noms ? Eh bien, j'ai une très bonne façon de faire ça. Allons de l'avant et créons quelque chose qui s'appelle et mange. Euh, d'accord. E n u n court pour l'énumération. Et on va dire Teoh en eux et j'appellerais cette opération et y réfléchirais comme ça . Même si vous mettez une chaîne ici à la fin, vous définissez votre propre type. D' accord ? C' est quelque chose que vous pouvez réutiliser qui a plusieurs options. Donc c'est comme faire votre propre type comme une chaîne inter. OK, mais évidemment c'est une chaîne, mais c'est une
chaîne
detype pair chaîne
de . Donc c'est le mot clé dans, euh, vous mettez le nom devant lui. Et typiquement dans ce cas, vous mettez une majuscule devant, ok. Et puis tu lui donnes son type. Et quand tu le fais, tu
as dit affaire ? D' accord. Et puis tu lui donnes un nom. Je vais dire diviser et je veux dire qu'il est égal à ça maintenant quoi ? En fait, ce que
la valeur est à l'intérieur n'a même pas vraiment d'importance, OK, ça n'a pas d'importance du tout. Je suis juste explicitement défini. J' aurais pu dire bla et ça n'aurait pas d'importance. Ah, ils ont juste besoin d'être uniques. L' un de l'autre. Ok, quelqu'un divise égal à ce que je pourrais aussi dire diviser. Tu sais, euh, c'était un fossé égal à cette affaire. Je veux dire multiplier égal a mis une étoile Ok. Dans le cas de truc du cul soustraire égal. C' est une annonce de cas de piste égale le signe plus. Ok, Case
est égal, égal, égal. On y va. Un peu déroutant, mais ça marche pour nous. Ok, ça a l'air bien. Et on va ajouter un état de plus ici. Ordre appelé Vide. Ok, réfléchissons à ça. Donc, quand vous chargez la calculatrice pour la première fois à un moment donné, je suppose qu'au tout début elle sera vide. Mon sens ? Aucun opérateur n'a encore été saisi. D' accord ? Et donc nous voulons juste rendre compte de cela alors que nous faisons notre logique. haine comme quelque chose s'est passé ? C' est la première fois que nous traversons ça ? Ok, donc maintenant ce que je peux faire c'est la chose vraiment cool à propos de l'énumération, grottes, cas
différents, options
différentes. Ok, je peux en faire un type, souviens-toi serré quand je dis type, ça veut dire en chaîne ou
dans, hum , dans ce cas, et donc je vais sauver notre opération actuelle. Tout comme nous l'avions avant est de type opération. vois, tu pourrais en faire un type, et on va l'initialiser avec une valeur par défaut en quelque sorte Dire qu'il est égal à point d'opération vide. D' accord. Et je vais vous dire d'accéder aux éléments dedans. Ok, opération point vide. Et donc il le trouve. C' est une valeur unique. Et donc nous allons dire,
Hey, Hey, nous chargeons d'abord l'application. C' est vide parce que souvenez-vous de ces choses quand ils chargent pour la première fois leur initialisé à tout ce que vous mettez ici. Ok, donc on a fait beaucoup de choses ici. Nous avons un nombre courant pour imprimer les choses pendant que nous les tapons, obtenir une chaîne de valeur gauche une chaîne de valeur droite, puis l'opération en cours, mais qui est, vous savez, lorsque le bouton est appuyé. D' accord. Et alors allons de l'avant et nous gérons comment celui-ci fonctionne d'abord, le numéro courant. Donc, quand les utilisateurs tapent, Ok, la séquence devrait apparaître sur l'étiquette de sortie, non ? Je pense que ça devrait. Etau
fait, au
fait, avons-nous déjà connecté cette étiquette de sortie ? Je suis curieux. Ouvrons l'assistant éditeur et ah, je vais changer ça de manuel à ici en calculatrice rétro, deux storyboard principal. Et hé, on dirait quoi ? C' est de ce côté, cette fois. C' est dingue. Tu peux faire des choses folles comme ça. J' allais faire un clic droit dessus, et il ne semble pas qu'il soit connecté à quoi que ce soit. Alors allez-y et cliquez sur votre contrôleur de vue ici en haut. Contrôle glissé vers le bas vers votre étiquette. Et là, il est l'étiquette de sortie et est maintenant connecté. Et je vais fermer l'éditeur assistant, et maintenant il est connecté. Vous pourriez voir le petit point juste là. On sait que c'est connecté. Ok, alors quand devrions-nous ? Ok, quand devrions-nous mettre à jour l'étiquette ? Pensons à chaque fois qu'un utilisateur appuie sur un numéro, un nombre seulement devrait nous le mettre à jour. Ok,
34. Exercice - Améliorer notre calculatrice: Hé, Mark Price à Dev Pentes Dot Com Et nous allons juste passer rapidement l'exercice pour la calculatrice rétro. Ce que tu vas faire, c'est aller à l'écran de lancement. D' accord ? Ce lancement signifiait ici des années, nous clignons des yeux. Ok, c'est l'écran qui se charge lorsque vous êtes au premier chargement. D' accord ? Et ce que tu vas dio, c'est que tu vas construire cette scène avec ces actifs de Mars. La planète Mars. D' accord. Et il y a un robot cool et un logo, et je vais vous fournir ces graphiques. Ils seront dans la ressource est de cette vidéo et vous allez construire ça. Vous pouvez utiliser des vues de pile ou utiliser des contraintes de mise en page automatique. D' accord. Il devrait fonctionner sur toutes ces tailles d'écran différentes. Application Maker, extra cool. Et c'est la partie facile. La prochaine partie est que j'ai aussi un graphique pour vous appelé Clear. C' est un bouton clair. Vous remarquez comment dans notre calculatrice nous n'avons pas créé une fonction claire ? Ce que tu vas faire, c'est avoir un bouton qui l'efface et réinitialise tout pour pouvoir recommencer. Ce sera un peu plus que de mettre un bouton là. Tu vas devoir nettoyer certaines choses et comprendre certaines choses. Le fait est, cependant, que je ne fournisse pas le code source sur ce projet, donc vous allez devoir le comprendre par vous-même. Et, ah, regarde sur Internet. Consultez Google, consultez nos forums ou notre salon de chat pour obtenir de l'aide, et cela vous aidera à vous étirer. Et, ah, c'est une très bonne étape dans l'entraînement de votre cerveau pour comprendre les choses. Donc c'est le projet. C' est l'exercice. Donc, si vous n'avez pas construit une application de calculatrice, allez-y et construisez-la. Vous pouvez utiliser les graphiques, avoir fourni ou obtenir vos propres graphiques. Et puis c'est l'exercice. Ouvrez l'écran de lancement et obtenez le bouton clair de sang mis en œuvre avec le code qui efface réellement la calculatrice et la réinitialise à zéro. Donc, il est là. Happy building, voir plus tard
35. Swift 2 Dictionnaires: Bienvenue, tout le monde. Mark Pricey avec les pistes de développement point com. Et aujourd'hui, nous allons parler de dictionnaires rapides, qui sont un autre type de collecte de données, comme pour un tableau. Alors je vais y aller et ouvrir une nouvelle aire de jeux. D' accord ? Ouvrez-le ici. Et ah, ça va être un nouveau terrain de jeu. D' accord ? Et on va aller de l'avant et appeler ça, euh, des trucs de dictionnaire. Pourquoi pas ? Tu peux appeler ce que tu veux. Une pensée ici sur le bureau, et Ah, c'est ça. Donc, il est là. Allons de l'avant et agrandissons pour que vous puissiez le voir. Mary G o. c'est génial pour vous tous sur iPhone. Vous pouvez maintenant le voir sans plisser vos yeux. OK, c'est quoi le dictionnaire ? Quoi ? Nous avons parlé d'un tableau, et si vous vous souvenez bien, un tableau ressemble à ceci. Mon tableau. C' est juste que le nom de la variable est égal, hum, un. Ces air, un tableau de chaînes qui ont les nombres de mots numériques. 123 Droite. C' est tout un éventail de points forts. Donc on les a utilisés. C' est un excellent moyen de collecter vos données. Mais que se passe-t-il si nous voulons plutôt recueillir nos données par clé et valeur ? Et donc je pense à un dictionnaire dans la vraie vie. Pensez au dictionnaire du Webster ou à tout dictionnaire que vous connaissez. Comme si je cherchais un mot, ça pourrait être chercher le mot voiture et il aurait une définition, non ? Donc, un dictionnaire est en fait assez similaire. En fait, allons de l'avant et simplement créer un dictionnaire. Je l'appelle Webster juste pour s'amuser. Et c'est la syntaxe. Ok, Ce que nous voulons dire, c'est que
nous voulons créer un nom de variable Webster de type chaîne de chaîne. Maintenant, les différences avant avec un tableau, cela ressemblait à ceci. Ok, eh bien, un dictionnaire a le deux-points juste ici, et ensuite il a le type de valeur. C' est donc le type de clé. Il s'agit du type de valeur. Donc, cela aurait pu aussi être un int ou un ? Eh bien, si vous voulez probablement le garder à une corde intense et ne gâchez rien en dehors de ça pour l'instant. Donc, vous avez un ent et une chaîne, mais nous voulons aller de l'avant et dire juste une chaîne de ficelle. Nous voulons que les clés et les valeurs soient chaîne. Et simulons le dictionnaire de la vraie vie dont je vous parlais. Alors allons-y. Et surtout un bon mot, Kriel. Tu connais ces choses dans l'océan ? Hum, et j'ai regardé ça, donc si vous pensez que je connais la définition de ça en haut de ma tête, eh bien, je ne le sais pas si vous savez ce qu'est un creel et la définition de hors du dessus de votre tête et j'ai regardé ça,
donc si vous pensez que je connais la définition de ça en haut de ma tête,
eh bien,
je ne le sais pas si vous savez ce qu'est un creel et la définition de hors du dessus de votre tête
vous. D' accord. N' importe laquelle des petites stations de croûte. Toutes les filles ont l'air bien. Donc c'est du krill. Faisons une autre clé. , Feu, c'est une bonne définition et un nom clé. Et ah, une masse brûlante de matériaux. Une des définitions pour cela. Alors jetez un oeil à la syntaxe ici. Donc, ce que nous avons fait est que nous avons défini le nom de la clé comme une chaîne maintenant à ne pas confondre avec un tableau. On n'a pas mis de commun ici cette fois. Si nous mettons des commentaires entre les deux points,
ce serait une course à la fiscalité. Mais dans un dictionnaire, vous mettez le nom de la clé, puis un deux-points après. Et puis vous mettez la valeur de cette clé. Ok, alors et puis il y a une virgule. Ensuite, la comète vient, sorte que le commun sépare les clés et les valeurs. Encore une fois, la valeur
clé, la clé et la valeur K ont du sens. Donc nous pourrions aussi faire quelque chose de différent de notre autre dictionnaire. Et celui-ci pourrait être une fin de avec une valeur de type string. Et puis on pourrait dire 54 44, on pourrait dire mon numéro de faveur, et ensuite on pourrait dire 31. Mec, je déteste ce numéro 32, donc tu dois voir le modèle là-bas. Vous avez des INT et des chaînes pour vos clés et vos valeurs ici, ok ? Et la raison pour laquelle tu vois un air, c'est parce que j'ai fait quelque chose de stupide. Je l'ai mis égal au lieu d'un deux-points. Et là, vous l'avez. L' air est parti, et nous avons un autre dictionnaire. C' est de plus en plus excitant. Alors, comment faites-vous des éléments excédentaires d'un dictionnaire ? C' est une bonne question. Allons-y et donnons-lui un magasin. Je vais imprimer et nous allons dire Webster, et rappelez-vous comment Honore vous pourriez mettre les accolades carrées et mettre comme un zéro ou quelque chose là où vous pouvez en fait la même chose sur un dictionnaire sauf ce que votre excès est le clé. Ok, la clé. Et donc nous voulons excès de krill. Et qu'est-ce que tu crois que ça va nous rendre ? Eh bien, si on déplace ça ici, on
y va. Obtenez un peu plus d'espace ici. Et il est dit n'importe quel des petits crustacés, donc il en saisit la valeur. Maintenant, vous remarquerez peut-être qu'il est en train d'imprimer le mot optionnel. Ok, eh bien, un dictionnaire dans Swift peut ou ne peut pas renvoyer une valeur. D' accord. Il peut ou non renvoyer une valeur. Donc, euh, ça va nous donner quelque chose s'il y a quelque chose à donner. D' accord. Donc une meilleure façon de l'écrire est comme ça. Nous disons que si nous ne sommes pas encore plongés dans les options, mais nous pourrions dire si Webster Okay, nous allons juste l'appeler, euh, vraiment appeler ça. Ah, eh bien, appelez ça Kriel. Si Kriel est égal à Webster et qu'ils diront krill, ok. Et puis ce que nous ferons, c'est que nous irons et imprimerons, hum, krill. D' accord. Et donc encore une fois, nous n'avons pas examiné les options dans les détails que vous m'avez probablement entendu dire cette phrase
quelques fois. On n'en a pas encore parlé, et j'ai probablement l'air d'un disque brisé, mais je vais vous expliquer brièvement. Ce qu'on veut dire,
c'est ,
c' prendre la clé de krill ou de mettre la clé de krill ici et d'en saisir la valeur et de la mettre ici si elle existe. Ok, S'il existe, il le mettra ici dans ce code sera appelé si cette clé n'existe pas, cela ne sera pas appelé. Alors disons, au lieu de krill, j'ai mis, euh, visage de
banane, ok ? Et remarquez comment il ne l'imprime pas, n'a pas pu le trouver. Donc, ce code n'a jamais été exécuté. Donc à l'avenir, on va les utiliser. Si nous allons beaucoup. C' est l'une des fonctionnalités les plus puissantes de swift que les autres langues n'ont pas. Ce qu'il fait, c'est qu'il aide à prévenir les plantages dans votre programme, parce que vous absolument pas, vous avez une valeur ici. Et si vous ne le faites pas, vous pouvez écrire le code Teoh le gérer. Donc je vais annuler ça. Nous savons que cela fonctionne, et en passant,
ce qui se passe, c'est qu'il saisit la valeur de ce dictionnaire et la place dans cette variable juste ici pour que nous puissions l'utiliser. Donc, cette variable est égale à l'un des petits crustacés. Ok, donc c'est les bases des dictionnaires. Vraiment, vraiment. Tu as tout ça jusqu'à présent. C' est pas trop mal, trop grande collection. Quand vous êtes un excellent moyen de stocker des données, si vous voulez rechercher les choses par clé et valeur et, euh, si vous voulez l'effacer, dites
simplement que Webster est égal à ce que ça ne soit pas différent si vous aimez un tableau et que pour l'effacer. Mais c'est comme ça que vous effacez le dictionnaire, OK ,
et ,
euh, on va très bien. Tellement cool. C' est comme ça que c'est effacé. Ce n'est pas grand chose pour ça. Vous aimez ce qui se passe ? On va bien avoir quelque chose de juteux, c'est une sorte de dictionnaires. Il n'y a pas beaucoup à ça. Il y a encore quelques choses . Encore quelques choses. Si le point Webster est vide, vous pouvez vérifier si un dictionnaire est vide. Imprimantons. Notre dictionnaire est tout à fait vide qui est mauvais anglais. Pour ceux d'entre vous qui ne parlent pas l'anglais ou peut-être en dehors des États-Unis, c'est mauvais anglais. Ne, euh, ne recommence pas. Ne me citez pas comme professeur d'anglais ou n'importe qui comme exemple. Ok, donc c'est vide. Pas grand-chose. Jolie, assez simple, OK. Et, ah, allons de l'avant et faisons autre chose qui pourrait vous sembler plus pertinent. Disons que vous avez un jeu et vous avez besoin d'un magasin de scores élevés attachés à un joueur afin que je puisse dire chaîne. Et donc dictionnaire avec des clés de type chaîne dans une valeur de type indice et nous pourrions aller de l'avant. Et, hum, juste ajouter quelques choses ici, donc je vais dire, Ah, Span Tak est la clé. Et il a obtenu un score de 401. Quel super score. D' accord. Et puis, euh, tu sais, jouer Ah, 21 parce qu'il ne pouvait pas trouver un nom cool sans un numéro. À la fin de cela égale 200 n'est pas si grand d'un joueur. Et puis disons,
euh, euh, la mort par Bob l'éponge. C' est vous savez que les joueurs sont en train de mettre toutes sortes de trucs wacko ici. Et malheureusement, il m'a battu. Au fait, je suis dépensé. Si jamais tu vois des jeux cool avec ce mot, c'est définitivement moi. Et Eso. Le score élevé est un dictionnaire de clés et de valeurs avec le nom des joueurs, puis la, euh, la valeur de celui-ci. Et encore une fois, si vous vouliez obtenir, hum, n'importe lequel de ces scores, vous savez, vous pourriez juste dire, Ah, vous savez, imprimer. Ah, impression, score
élevé. Et puis on pourrait, tu sais, dire imprimer, dépenser des impôts, un score élevé, accord ? Et il l'imprimerait. Ça va commencer l'option Allons ok pour maintenant. Donc, hum, Sukhum imprimé, bien
sûr. Et, euh, tu sais, qu'est-ce qu'on veut faire d'autre ? Enfin, on va de l'avant. Et c'est un taux à travers la collection. Tu sais comment on a utilisé quatre boucles pour un tableau ? Nous avons fait quelques versions différentes de quatre lèvres. Eh bien, il y a deux façons différentes d'itérer à travers un dictionnaire. Dans la plupart des cas, je ne verrai pas dans tous les cas. Mais dans la plupart des cas, si vous itérer continuellement à travers un dictionnaire comme une boucle quatre, si c'est ce que vous faites, vous ne conduisez probablement pas le meilleur code. Il y a probablement de meilleures façons de Peut-être que vos données devraient être dans un tableau. Peut-être que vous devriez avoir un tableau qui a une classe avec des objets spécifiques et puis vous générez à travers lui. Si vous itérez beaucoup à travers un tableau, il est très possible que vous n'êtes pas vous. Excusez-moi. Si vous itérisez beaucoup à travers un dictionnaire, il est très possible que vous ne l'utilisiez pas comme il était prévu. Donc je vais vous montrer comment générer à travers ça, cependant. Donc, ce que vous voyez ici, c'est comment vous travaillez à travers un dictionnaire et, ah, pensons-y pendant une seconde pour chaque utilisateur et chaque score. Donc, ce qui se passe, c'est qu'on dit, Hey, passe par ce dictionnaire. C' est la clé, OK ? Et c'est le score, donc ça va passer, et ça va te donner la clé et la valeur à utiliser. Donc, si je vais de l'avant et dire imprimer et nous allons juste de l'avant et utiliser notre syntaxe ah spéciale ici pour imprimer des chaînes, allons de l'avant et disons, Utilisateur deux-points. Et puis disons score. D' accord. Il a imprimé trois fois comme prévu, parce qu'il y a trois clés et de la glace et allons de l'avant et regardons les données ici. Je clique juste sur ce petit bouton au bon moment. Un clic sur cette icône de liste et bien sûr, jouer un 21 205 104 01 Donc c'est qui est assez cool. C' est plutôt cool. Maintenant, vous vous demandez probablement, Eh bien, comment puis-je ajouter un nouvel élément à un dictionnaire ? Eh bien, c'est aussi simple que de faire ça. Ajoutons une
nouvelle chose au score élevé. Donc tout ce que j'ai à faire, c'est littéralement un score élevé, et on pourrait juste mettre ce qu'on veut entendre. Donc disons, um j k tuer un haricot. D' accord. Il a un score de et, euh oups, ce n'est pas moi qui veux te pendre, qu'est-ce qu'il fait ? Il nous donne déjà dans le bon Syntex à chaque fois. Donc les haricots tueurs JK sont égaux à deux. Et maintenant, si je devais copier et coller ça ici, accord ? Et je l'étais aussi alors c'est quatre fois. De toute évidence, il semble que ça marche, et bien sûr, c'est juste là. Donc, pour ajouter un élément, vous ne faites pas upend ou quelque chose comme ça. Il y a quelques fonctions d'aide que vous pouvez faire, mais c'est assez bon ici. Allez-y et mettez un nom de clé que vous voulez, puis définissez la valeur pas trop mauvaise . Donc, ce sont vraiment des dictionnaires. Il est très puissant. Je les utilise fréquemment dans mon développement professionnel et, euh, à
peu près, c'est tout ce qui est pour ça. Donc vous allez les utiliser tout au long de ce cours et vous apprendrez à les utiliser. Un peu ennuyé. C' est ça le truc. Ce n'est pas la syntaxe de tout ça. C' est savoir quand les utiliser. Et donc vous le faites par beaucoup d'exercices de
pratique, d'exercices de
pratique, de pratique et vous donnera beaucoup de ceux. Tu en as déjà fait plein. Alors c'est tout. C' est une pellicule. On va clore ça et passer au sujet suivant. Merci d'avoir écouté.
36. Programmation et cours orientés objet: Bienvenue, tout le monde. Mark Price ici avec dev pentes dot com Et avant de commencer, Quelqu'un m'a dit récemment que peut-être mes niveaux d'excitation un peu trop élevé pour ces vidéos et un peu non professionnel, Donc je vais enseigner, comme tous les autres le font. Donc maintenant, nous allons ouvrir le code X et aller dans le fichier nouveau terrain de jeu. Et comme vous pouvez le voir, la fenêtre est apparue ici et ah, c'est la grande nouvelle fenêtre du projet. Vous le sentez ? Je ne le sens pas. Vous savez, tout le monde est critique, mais je pense que je vais revenir à mavoix très heureuse et
excitée, voix très heureuse et
excitée, et nous allons parler de quelque chose de super important, les objets et les cours. Donc j'ai créé une nouvelle aire de jeux ici en allant déposer une nouvelle aire de jeux, et on va appeler ça amusant avec les cours. Ok, programmation orientée
objet. Vous en avez peut-être entendu parler. Ok, peut-être que vous êtes un vétéran, et vous êtes comme, j'ai hâte de passer à travers cette vidéo, mais je dois apprendre à le faire et rapide Eh bien, essayons de faire de ça un excitant et important. Voyez si je peux expliquer d'une manière raisonnable. Alors rappelez-vous quelques vidéos. On teste des variables et
ontravaille avec on un compte bancaire. Par exemple, nous avions, comme, le solde
var est égal à 100$. Et puis, vous savez, nous avions une fonction appelée, vous savez, euh ,
funk ,
vous savez ,
tentative , achat. Et, ah, alors on a un prix d'article, accord ? Et c'est de type fin. Et puis nous disons, vous savez, si le prix de l'article est inférieur ou égal à l'équilibre par l'intermédiaire de ce gars là-bas, allons-y et faisons un achat. Droit ? Et alors nous avons fait d'autres fonctions et choses, et ces choses n'étaient pas vraiment dans le contexte de quoi que ce soit. D' accord ? Ils ne l'étaient pas. Ah, double ici. Ils n'étaient pas dans le contexte de Hey, c'est une banque, ou c'est votre compte. C' était juste quelques fonctions aléatoires et des soldes aléatoires, et ça pourrait devenir vraiment désordonné réel rapidement. Tu sais quoi ? Si nous avions un tas de fonctions ici et des variables que nous sommes tous liés aux comptes bancaires, comment rib réutiliserait ça ? Comment peut-on ? Mieux module, yeux, module surgissent ces éléments pour être, euh, indépendants des choses qui n'ont rien à voir avec les comptes bancaires. Ok, ou voici un exemple. Imaginez que vous avez une voiture. Une vue ical. En fait, vous avez un véhicule et tous les véhicules ont ce que tous les véhicules peuvent Dr Vous savez. Donc, j'ai de notre véhicule. Ok, le nom du véhicule a un nom, non ? Euh ah. Srx OK, eso tous les véhicules peuvent conduire. C' est ce qu'ils peuvent faire d'autre ? Ils ont des compteurs kilométriques, un compteur kilométrique, un compteur kilométrique. D' accord. Et ça équivaut, vous savez, quoi que ce soit. Ok, donc nous avons des choses ici et ah, qui sont spécifiques à un véhicule. Maintenant que se passe-t-il si bien, c'est loin Ah, vous savez um pneus, vous savez, égal, vous savez, pour quatre pneus, vous savez, Mais que se passe-t-il si vous avez un camion qui a, comme ,
comme,une , double roues ? Ah, ou que se passe-t-il si les choses commencent à changer sur des véhicules spécifiques ? Tu sais, comment puis-je gérer tout ça et le faire d'une manière raisonnable. Et puis il est devenu une programmation orientée objet orteil. Ce à quoi je veux que tu penses, c'est des objets. Les objets sont l'idée de prendre des éléments logiques de propriétés et de fonctions de code et de
les assembler dans une classe. Ils s'appellent des classes et donc, euh, pensez à une classe et à une sorte de plan. Disons que vous avez une usine et qu'elle construit des voitures,
et que vous avez un plan pour une voiture,d'
accord ? Disons que vous avez une usine et qu'elle construit des voitures, et que vous avez un plan pour une voiture, Et puis ce que vous faites est de créer un objet à partir de celui-ci. Mais cet objet pourrait être légèrement différent sur ces différentes voitures. Tu sais, on peut être un camion quand c'est peut-être une voiture, mais ils ont tous des propriétés et des valeurs, et ils peuvent faire des choses comme Dr et autres choses. Et donc ce que nous allons apprendre est comment prendre des morceaux logiques de propriétés et de
fonctions de code et les mettre dans quelque chose qui utilisable, connu sous le nom de classes. Ok, alors allons de l'avant et construisons notre première classe, et ils ne sont pas si complexes. Si vous êtes une personne visuelle, ça va avoir beaucoup de sens. Disons qu'on a une classe appelée « véhicule ». C' est ainsi que vous avez déclaré classe et classe rapide. Et puis le nom que vous voulez toujours Oh, commencez par une lettre majuscule. C' est la convention. Et puis vous mettez les accolades. Ok, donc maintenant nous pouvons mettre des objets que nous pourrions mettre des propriétés et des fonctions dans le contexte d' une vue ique afin que je puisse sauver notre moteur égal à quatre cylindres. D' accord. Ah, je pourrais sauver notre couleur est l'argent et le compteur kilométrique Odom Peter est égal à zéro aussi. Et ces valeurs par défaut d'air OK, que nous voulons juste définir sur n'importe quel véhicule. Et puis ce qui affaiblit dio c'est que nous pouvons créer une fonction Isar initiale. D' accord. Également connu comme un constructeur ici. Nous passons des variables pour initialiser cela avec et, euh, vous ne comprenez peut-être pas encore ce que nous faisons, mais je vais vous montrer en l'expliquant. Et je pourrais dire que le moteur auto-point est égal moteur. Qu' est-ce qu'il fait ici ? Je ne comprends pas. C' est bon. Je vais l'expliquer dans une seconde. Donc, nous avons initialiser er er, et peut-être que nous avons un autre er d'initialisation qui ne fait rien avec ces valeurs là-bas . D' accord. Et ah, et puis disons, hum, quand une voiture arrive, ces kilomètres s'accumulent, donc on va faire quelque chose d'un peu bête, mais alambiqué. Mais c'est bon. Entrer les miles passera dans quelques miles, et alors ce que nous allons faire est nous dire que l'odomètre plus est égal à des miles OK, alors maintenant ce que nous avons ici est une classe. D' accord ? C' est une classe rapide, et ce que nous avons fait est que nous avons extrait des données et les avons mises sur quelque chose qui pourrait être transformé en un objet. Ok, pour que je puisse écrire du code ici, vous savez ? Hé, tu sais ce qui se passe ? Et ah, je ne peux pas dire égal moteur. Vous savez comment avant qu'on puisse accéder à toutes les variables qui étaient au-dessus. Eh bien, je ne peux plus faire ça, parce que ces propriétés et ces fonctions sont dans le cadre d'une classe, accord ? Et donc nous allons sortir de la notion d'une idée dans la pratique de simplement lancer du code où nous voulons. Tout ce que nous allons faire pour la plupart maintenant va se faire avec les cours. Et je ne sais pas si vous le savez ou non, Mais les choses que vous avez déjà utilisé dans ces projets et exemples ont été des classes et des objets. Quand nous sommes allés à notre application et sommes allés voir le contrôleur de vue, c'était une classe. C' était un objet. Ne serait-on pas tombé quand nous avons glissé et déposé une image U. S vous sur le constructeur d'interface ou un bouton ces air, toutes les classes et les objets ainsi. Et ils ont tous leurs propriétés et leurs fonctions. Tu te souviens comment on a fait quelque chose comme mon champ texte point texte ? Eh bien le texte point était une propriété du champ de texte qui ne ressemble pas à cette propriété ici. Ok, donc, euh, tout ce que vous faites dans IOS est des objets et des classes. C' est fantastique. Et vous n'obtenez pas vraiment cela dans le développement web sur certaines plates-formes, comme Java script, euh, est ah notoire pour, vous savez, ne pas avoir un excellent système de classe. C' est une fonctionnalité de programmation orientée
objet très puissante , Um, et fondamentale. Alors, comment travaillons-nous avec les cours ? Eh bien, c'est assez simple. Ce que tu fais c'est qu'on a le plan, alors fais semblant que c'est le plan. Ok, Blueprint. Et maintenant ce qu'on va faire, c'est aller à l'usine et en faire une nouvelle. Donc je vais dire de notre disons,
c' est un SRX K, et on va dire qu'il est égal à véhicule. Et les parenthèses d'ouverture vont appeler l'une de ces fonctions initiales d'Isar. Vous remarquez comment il y en a deux. Il y en a une qui n'a pas de propriétés, et celle qui le fait si j'appelle celui qui n'a pas de propriétés, ok, ça va juste laisser ces valeurs par défaut ici pour avoir volé leur argent, vous savez, tous Démarrage de la voiture. C' était un quatre cylindres et de l'argent. Tu sais, rien. Rien de super génial. Euh, mais allons à ce SRX. Allons-y et mettons-en six cylindres. Donc, ce qui se passe, c'est quand vous et la couleur va être, Ah, bleu
royal, votre C Thesks SRX est partout bleu royal avec des jantes dorées comme si c'était comme si les gars trouvaient une nouvelle façon de coiffer votre voiture. Vous n'avez pas à ressembler à tous les SRX sur la route. Et si vous êtes un de ces gens qui ont un bleu sont des rapports sexuels avec des jantes en or, je veux dire, pas offenser. Ok, donc, euh ok, on a une voiture ici et ah, on lui a donné une couleur. C' est plutôt cool. Disons juste var Volvo est maintenant égal véhicule. Et cette fois, on va faire le défaut, accord ? Et alors allons de l'avant et imprimons les deux et voyons ce qui se passe. Donc, si j'imprime la couleur des points srx, c'est ainsi
que vous accédez aux propriétés d'une classe par les points et les taxes. Rappelez-vous le champ de texte que le texte, et c'est imprimer la couleur du point Volvo Volvo OK. Et comme vous pouvez le voir sur le côté droit bleu royal pour la SRX et argent pour la Volvo . Plutôt cool. Donc ce qu'on a fait, c'était sur le SRX. Nous avons créé un nouvel objet. C' est ainsi que vous créez un nouvel objet est en appelant le nom de classe ici exactement identique à la façon dont il a orthographié ici. Et puis nous avons appelé cette fonction Isar initiale. Ce constructeur va bien. Ah, Et nous avons passé dans un nouveau style de moteur, une nouvelle taille de moteur, et nous sommes passés dans une couleur. Et ce qu'on a fait c'est qu'on les a assignés ici. Donc, à l'initialisation, cette fonction Isar initiale met à jour ces valeurs avec les nouvelles valeurs, OK, et la raison pour laquelle j'ai utilisé le mot clé auto ici est parce que self fait référence aux propriétés de la classe. Ok, si je retire le moteur de mots, ok, on a un problème. Ok, Donc le nom du paramètre est appelé moteur, qui est le même nom est ici. C' est identique, mais quand vous l'appelez ici, cela fait référence à celui-ci parce que c'est la portée de cette variable. Ok, la portée de ces variables ici pour qu'il ne sache pas comment obtenir ça. Donc, si nous nous appelons sur son, il sait Hey, cela fait partie de notre classe, pas partie de cette fonction. Maintenant, si j'ai enlevé ça et que je change ça à la taille du moteur, OK, alors le problème disparaît. Ensuite, je peux dire que le moteur est égal à la taille du moteur et cela fonctionnera. Hum, et donc la raison pour laquelle vous vous êtes vous-même dans ce cas précis était parce qu'ils avaient exactement le même nom. Et c'est très commun. Très, très commun à nommer que vous êtes des paramètres du constructeur. La même chose que ce qui va dans vos variables de classe ici sur votre Isar initial et je dis initialiser er et constructeur synonyme e comme si la même chose qu'ils sont. C' est ce qu'ils sont. Alors sachez que c'est ce que c'est. Et donc ici, on n'a pas appelé ça. Nous avons appelé cet Isar initial, et bien sûr, il n'a rien fait pour nous sauf créer la classe elle-même. Ok, quoi ? Cela fait cette méthode initialisée Il appelle. Um, c'est un mot-clé rapide ici, et voici comment Swift utilise pour créer des objets réels en mémoire. Donc, cette classe ici ne vit pas en mémoire sur votre application jusqu'à ce que vous l'appeliez réellement et créiez. Et vous le faites en mettant ces parenthèses ici. OK ? Tout comme vous appelleriez une fonction similaire à l'appel à la création d'une nouvelle classe. Une nouvelle instance d'une classe. Ok, donc c'est ta classe, et ça ne se transforme pas en un objet. Vraiment ? Jusqu' à ce que tu sois à Stan, elle l'a mangé ce
qui est ce qu'on fait ici. Donc, à Stan, elle détestait ça. Et nous, à Stan. Elle détestait ça. Maintenant, ces deux vivent en mémoire, et nous les avons stockés dans une variable. Et vous pouvez accéder à ses propriétés en utilisant cette syntaxe point ici. D' accord. Tu es avec moi ? Jusqu' à présent ? J' espère que vous pouvez voir la valeur de grouper des éléments de données et de fonctions ensemble. Cela a tellement de sens parce que si vous remarquez ici, nous pouvons le stocker dans une variable. C' est plutôt cool. Et regarde ça. Regarde ça. Si nous voulions avoir une gamme de voitures, allons en faire une nouvelle à économiser. Euh, bar, um, Silverado OK équivaut à véhicule, et on va juste faire ça. Et puis quoi ? Affaiblir dio fait bouger un peu vers le bas. ici. Créons un tableau. On va appeler ce véhicule et ça va être un tableau de type. Voici la partie cool que vous pouvez en fait, au lieu de simplement faire cette chaîne et vous pouvez faire une augmentation d'un type de classe et donc je peux dire de nos véhicules égaux vue ique et je peux juste aller de l'avant. Et en fait, je peux juste aller de l'avant et enlever ce deux-points ici et on peut juste faire un tableau vide. Ok, donc il y a des taux
vides, et alors c'est vraiment cool. Donc, évidemment, je ne peux rien faire comme ça. Je ne peux pas dire voir le stylo de Hit Cole et je ne peux pas dire que je ne peux pas dire, euh, Beetle, ça. Je ne peux pas faire ça. C' est une ficelle. Et c'est comme, Qu'est-ce que tu fais ? Comme vous ne pouvez pas appeler un stylet était une liste d'arguments de type chaîne ne veut pas chaîne. Il veut un véhicule. Mais ce que je peux ajouter, c'est ma classe de véhicule, pour que je puisse ajouter une Volvo, l'objet que je viens de créer. Je pourrais le faire à nouveau avec le Silverado, et je pourrais le faire à nouveau avec le ah SRX. Ok, porte. On y va et on peut y ajouter le SRX comme ça. Et maintenant, nous avons une gamme de véhicules. Alors voici le pouvoir. Tu te souviens comment on a le compte bancaire avant ? Et les données étaient dispersées partout. Maintenant, on peut avoir un tas de ukulélés qui vont être un tableau de comptes bancaires. Ça pourrait être un tableau de n'importe quoi. Nous commençons à voir la puissance de travailler avec des objets regroupant des données ensemble. Et tu vas les utiliser pour le reste de ta vie en tant que programmeur et surtout dans
IOS. Et tu vas les utiliser pour le reste de ta vie en tant que programmeur et surtout dans Donc c'est vraiment cool. Et bien sûr, euh, rappelez-vous comment j'ai dit que vous pouvez accéder aux propriétés et avec les points intacts, vous pouvez aussi faire la même chose avec la fonction pour que je puisse appeler une fonction pour que je puisse dire srx dot ah, inter miles. Et disons juste que nous voulons ajouter 10 400 miles et nous allons imprimer les miles dessus avance, donc srx dot odomètre, on va juste l'imprimer. Et puis nous allons l'imprimer après que nous sommes entrés dans les miles juste pour nous assurer que ça a fonctionné. Odomètre hystérique. Donc ça commence zéro. Nous ajoutons les miles dans la fonction et regardons cela. Nous appelons cette fonction et elle a modifié la propriété et nous l'avons imprimée. Et là, ça va. Et ces choses n'affectent même pas votre Silverado ou votre mobile. Seulement votre SRX. C' est vraiment cool. D' accord ? Nous sommes en train de regrouper. Nous regroupons les données ensemble. Vraiment, vraiment cool. Ok, donc c'est vraiment cool. Et je veux parler d'une chose de plus. Donc, ce n'est pas toujours une bonne idée d'accéder à des choses comme ça. Donc, ici, on a un mauvais problème. Et c'est le problème. OK, donc je peux dire que le compteur kilométrique srx est égal,
hum, tu sais, euh,
400, non ? Donc, je change juste la valeur. Ok, maintenant, pense à ça. Je ne sais pas comment c'est dans d'autres pays, mais au moins aux États-Unis, si vous vendez une voiture et que vous modifiez l'odomètre pour qu'il ressemble à moins, vous pourriez avoir de gros ennuis, aller au gel. Même ainsi, tu ne veux pas t'embêter avec ton compteur kilométrique. Mais nous avons juste permis à un programmeur et à un utilisateur de le faire. Ce n'est pas très bon. Et donc ce que nous devons réellement dio est quelque chose qu'on appelle la dissimulation de données ou aussi connu sous le nom d'
encapsulation de données . D' accord. Et qu'est-ce qu'on va faire ? Je vais y aller et les commenter ici. J' ai juste maintenu le commandement et appuyé sur Ford Slash. Allons de l'avant et faisons en sorte que ces privés corrects. Privés et privés. Ok, donc ce que nous avons fait c'est que nous avons rendu ces variables privées. Ce que cela signifie, c'est que personne en dehors de cette classe ne peut y accéder. Maintenant, je veux dire qu'ici, dans le terrain de jeu, ce n'est pas aussi vrai. Comment cela fonctionne est que vous créez généralement de nouvelles classes et IOS Okay, euh, ou de nouvelles classes dans leurs propres fichiers pour IOS. Vous ne le faites généralement pas ici dans le terrain de jeu. Et puis, euh et puis tu pourras Ah, tu ne peux pas y accéder. Mais tout ce qui est dans le même fichier y a accès. Mais vous ne mettez pas les choses dans le même automne, mais allons de l'avant et essayons juste ici. Je vais aller de l'avant et ouvrir le dossier Nouveau projet. On va juste faire une application IOS simple, donc je peux vous montrer comment vous l'avez mis dans sa propre classe. Ok, donc vue unique, application et je vais juste appeler ce test de classe. Brûle-moi après que nous ayons fini. D' accord. Très cool. Et mettre sur le bureau ici. Et je l'ai nommé comme ça parce que mon bureau s'empile avec des trucs, et je veux m'assurer que je me souviens de m'en débarrasser. Donc ici, je vais aller de l'avant et juste cliquer avec le bouton droit sur ce dossier, et je vais aller dans un nouveau fichier. Et pour une raison quelconque, Alice sur mon ordinateur, il me ramène toujours vers le bas à l'OS X. OK,
le Mac, le Mac, où ce revêtement cliquez sur IOS et cliquez sur Swift File Cliquez sur Suivant. Et appelons simplement cette vue ical son propre fichier et appuyez sur Entrée. Et pour l'instant, ça ne fait pas grand-chose. Juste vide. Ok, donc la classe dit voir ical maintenant j'ai juste collé dans la commande de code V Ok, donc nous avons une classe appelée véhicule. C' est vraiment cool. Maintenant, remarquez comment nous avons rendu ces choses privées ici. Très bien,
Donc, si je vais à mon contrôleur de vue et à mon avis, est-ce que les charges se débarrasser de ces commentaires dans cette junk ici, à mon avis, a chargé Nous allons créer un nouveau véhicule. Donc, nous allons sauver notre et dirons, Ah B m w égal véhicule. Ok, c'est génial. Et c'est juste nous crier dessus parce qu'on ne l'utilise pas encore. C' est très bien. Donc, disons que si je fais b m w 0.0, Dom ITER est égal à 100. Ok, ça me
donne un véhicule aérien. Il n'a pas un membre nommé allait attendre une minute. C' est là. J' ai écrit le code Dane car je sais qu'il est là. Eh bien, ce qu'on a fait c'est qu'on l'a rendu privé. Certains que personne d'autre ne peut en avoir. Conjugez-le bien. Et donc c'est peut-être votre pensée. Eh bien, si je ne peux pas l'avoir, alors quel est le but ? Eh bien, nous voulons laisser les gens avoir accès à l'odomètre, mais nous ne voulons pas qu'ils fassent ce qu'ils veulent. Ok, donc, par
exemple, parlons de la façon dont on résoudrait ce problème. Ceci est ce que vous pourriez faire si vous construisez réellement un type d'application de voiture. Donc, ce que nous pouvons faire, c'est ce que j'aime faire moi-même, c'est que je mets un trait de soulignement sous ceux-ci. C' est juste un nom différent. J' aurais pu appeler ça un ou quoi que ce soit. J' aime juste mettre des soulignements en dessous. Et ce que je dis,
c'est que c'est la propriété. Mais créons ce qu'on appelle un getter, ok ? Et un centre. Ok,
C' est aussi appelé plaies en excès et ah, minerai
muté. Ça a l'air un peu plus cool, genre X hommes ou quelque chose comme ça. Mais fondamentalement, nous disons, euh, vous pouvez définir ou obtenir ces
paramètres ah, ou ils commencent ces variables. Mais nous le faisons. À nos propres termes, on ne laisse personne le changer. Voici donc un exemple. Donc, je peux dire var odomètre Rappelez-vous ce public parce qu'il n'a pas le mot clé privé en face de lui. Donc odomètre et je peux dire que c'est de type int. D' accord. Et ce que je peux dio, c'est que je peux dire get et cela va revenir odomètre. Donc, à chaque fois que quelqu'un fait les points d'impôt pour l'obtenir,
ça va juste revenir. Quels que soient les odomètres actuels, ça va retourner cette valeur. Maintenant. Peut-être que vous ne voyez pas encore la valeur dans la valeur en faisant cela. Comme, pourquoi ferons-nous encore ça ? J' aurais pu nous appeler. Eh bien, c'est vrai. Renvoyaient juste la valeur, mais voici où il devient vraiment important. On en a un autre qui s'appelle « set », d'accord ? Et chaque fois que quelqu'un essaie d'y assigner quelque chose, c' est
ce qu'on appelle. Maintenant, disons que le compteur kilométrique est actuellement de 500 maintenant. Serait-il éthique ou légal pour nous de changer l'odomètre à quelque chose de moins alors si c'était public et quelqu'un a dit, Hey, passons l'odomètre à 100 pour revenir en arrière C'est mauvais. On ne veut pas faire ça. C' est contraire à la loi. Ce que nous voulons faire ici, c'est ça. Donc, nous allons définir, allaient dire est si la nouvelle valeur Keanu valeur est la valeur qui arrive et ce
sera le même type que tout ce que vous mettez ici. Donc, cette nouvelle valeur va être une fin. Ok, c'est un mot clé. Je n'ai pas inventé ça. Nouvelle valeur est un mot clé. Tu te souviens de ça ? Donc si la nouvelle valeur qui arrive bien est moins que d'accord, 500 ne font rien, accord ? Ce n'est probablement pas la meilleure façon de l'écrire. Donc, en d'autres termes, où nous pourrions dire est sur, Lee l'a dit. Si c'est le
cas, si la nouvelle valeur est supérieure à l'odomètre. Ensuite, nous pouvons dire que le compteur kilométrique est égal à une nouvelle valeur. Qui ? C' est vraiment intéressant. Ok, donc on l'obtient comme
ça, comme on l'aurait fait avant. Ok, c'est sa propre propriété, et ça travaille avec cette propriété ici. En passant, cela est appelé une propriété calculée calculée. Tu te souviens de ça ? Et rapide dans la propriété calculée. Et c'est ainsi que vous travaillez avec les getters et les centres. Et donc ce qu'on dit,
c'est de
retourner le compteur kilométrique ici. Très bien. Ça a du sens. On doit l'avoir à tout moment. Mais ici, si quelqu'un essaie de le modifier, accord, il doit être supérieur à l'odomètre existant. Voici ce qui est vraiment intéressant. Alors revenons ici. Et maintenant cela devrait fonctionner parce que nous avons créé cette propriété. Mais ce qui est intéressant, c'est que notre compteur kilométrique est ce 500, non ? Jetons un coup d'oeil à ce que nous venons de faire. Donc, si je dis imprimer BMW dot odomètre Okay, Si je l'impression et puis ah, disons imprimé ici à nouveau BMW point odomètre. Maintenant, peut-être ici à ce code, vous pourriez penser, Oh, ça va changer. Ça peut. Peut-être que ça le fera alors je vais ouvrir mon consul ici, accord ? Et on va aller de l'avant et on va faire ça, d'accord ? On y va, se déplace ici très vite. Ok, regarde ça. Donc nous l'avons imprimé avant qu'il ne fût 500 après, et c'était 500. Pourtant, ça veut dire que notre code a fonctionné. On vient d'empêcher quelqu'un d'enfreindre la loi. Alors félicitations. Merci d'être un grand citoyen, et nous avons fait quelque chose de génial. Donc ce qu'on a fait c'est qu'on a écrit un centre qui, hum qui empêche les mauvaises données d'entrer ici. C' est si important. Donc c'est quelque chose, au fait, que personne n'enseigne jamais de nouvelles personnes. C' est si important. OK, toutes vos variables devraient être privées dans la plupart des cas, mais elles devraient toutes être privées. Et ce que vous devriez faire, c'est que vous devriez avoir des getters et des centres. Donc, vous déterminez quand vous créez votre classe, vous déterminez comment elle va être modifiée et manipulée. Et c'est ce qu'on a fait. On a dit :
Hey, Hey, personne n'a le droit de jouer avec ce compteur kilométrique. C' est juste ici dans notre code. Alors voyons ça en action. Et si je dis plutôt que le compteur kilométrique est maintenant égal, um 700. On vient de l'augmenter, OK. Et je l'ai réexécutée. Qu' est-ce que tu crois que ça va dire ? 500 ? 700 ? Notre code fonctionne. Donc vous venez d'apprendre un principe très précieux. C' est ce qu'on appelle la masquage de données ou l'encapsulation de données. Et vous avez utilisé des getters et des centres pour faire ça. D' accord. Et c'est donc les bases des classes. C' est des cours. C' est super puissant. Nous gérons maintenant nos données. On fait ce qu'on veut. Nous le gardons en sécurité, et nous créons quelque chose qui est réutilisable. C' est cool ? Sans se souvenir avant. Tu sais comment si on voulait avoir plusieurs comptes en banque, je garderais notre compte en banque. L' un est égal, vous savez, compte bancaire de
1000 bars à ça c'est une façon stupide de faire les choses. Ok, ce qu'on voudrait, ce sont des cours. Donc, tu sais, j'ai ma BMW. J' ai ma Ford Pinto, hum, toutes sortes de choses. Et ceux-ci gèrent tous leur propre état dans leurs propres propriétés. Et des trucs vraiment cool. Donc, ce sont des objets et des classes. Ceci est une vue d'ensemble. Vous utiliserez ces trucs pour le reste de la classe pendant le reste de votre carrière de programmation. Des trucs tellement excitants. J' adore la programmation orientée objet. C' est fantastique. Et si vous avez des questions, hésitez pas à poser des questions sur le salon de chat ou sur les formulaires, et nous allons nous déconnecter ici et aller de l'avant.
37. Héritage: nous voilà de nouveau ensemble. Cette belle journée ou nuit, selon l'endroit où vous vivez. Mark Price ici avec les pentes de mort dot com Avez-vous déjà lu les commentaires sur, comme, l'App Store, IOS ou Android ? Certaines personnes sont assez brutales. J' en regardais juste un ici. Regarde ça. Cette application s'est écrasée deux fois sur moi. Les développeurs devraient être abattus, et je veux récupérer mon temps. Il s'agit d'une application gratuite. Hmm. Tu vas sentir la douleur de ça. Quand vous commencerez à sortir votre APS, vous aurez votre 1ère critique 1 étoile presque comme, Oh, mais un crime. Et les gens sont brutaux, comme si tu n'allais pas en remorque. McDonald est comme si tu achètes un hamburger à 99 cents et ensuite, ça avait un goût d'ordures. Quel hamburger à 99 cents va goûter à notre mais vous n'aimez pas, prenez le et jetez-le dans les visages des employés. Je veux que mon dollar de retour App Store dépenser 50 000$ à construire une application, et je voudrais donc que vous soyez abattu. Quoi qu'il en soit, bienvenue dans le monde du développement d'applications, euh, juste en vous donnant un aperçu de l'excitation de celui-ci. Et, euh, je suppose que vous êtes en quelque sorte en train de revoir ces cours et de me revoir. Et si vous ne m'avez pas encore donné une évaluation cinq étoiles, ce serait le moment idéal pour le faire. Et si tu n'es pas heureuse, parle-moi, et je ferai tout ce que je peux pour te rendre heureuse. Parlons donc d'un autre principe important aujourd'hui appelé l'héritage. Ok, tu aurais dû juste regarder celui sur les classes et les objets. Et l'héritage est un principe très fondamental et important pour la programmation orientée objet. Donc je vais aller de l'avant et créer une nouvelle aire de jeux, d'accord ? Et nous y voilà. Je suis allé déposer un nouveau terrain de jeu, et appelons ça je veux et l'héritage ok. Et mettre sur le bureau. Et on y va. Tu te rappelles comment la dernière fois que nous avons travaillé avec des véhicules et que nous avons travaillé sur des cours étaient dans la même
chose ici ? Tu te rappelles comment la dernière fois que nous avons travaillé avec des véhicules et que nous avons travaillé sur des cours étaient dans la même Quoi ? Peut-être qu'on va s'en mêler un peu différemment, alors je vais avoir un cours appelé personne, OK. Une sorte de classe de base. D' accord. Tu vas commencer à entendre ça beaucoup, surtout quand tu commenceras à travailler avec l'héritage. Donc, chaque fois que quelqu'un dit quelle est la classe de base ou attraper la classe de base. Ce que cela signifie, c'est que c'est la classe la plus basse, la classe la plus achetée. Ok, alors parlons d'une personne qu'une personne a. Ah, ma couleur. Droit ? Je couleur égale le nom de Blue Anvar et dira que c'est de type chaîne. Et nous n'initialisons pas celui-ci car il n'y a pas de nom par défaut. Tu as une personne, je suppose que si tu viens de naître, peut-être que tu n'as pas encore de nom. Un peu sympa. On ne nomme pas leurs enfants pendant un moment. Et, heu, Speed. Ah, comme dans la vitesse de course. D' accord. Juste des droits aléatoires et 10 miles par heure. Assez vite, euh, toujours se faire manger par un guépard, mais 10, c'est encore assez rapide. Et ah, banc presse. Combien pouvez-vous appuyer ? Ah, 200£. Eh bien, si c'était moi d'être plus comme ça, mais Will Ah, eh bien, devinez bien. Belle moyenne ici. Donc, d'accord. 200 £ ou, euh, et quel que soit le pays et ça pourrait être des kilos, peut-être ne sais pas quel est l'équivalent, mais sachez juste, je pense à toi et allons faire une première Isar, D' accord ? On va s'initialiser ou où tu peux initialiser le nom, OK ? Et nous dirons que le nom de point d'auto est égal au nom. Donc, au fait, supprimons simplement ça très vite. Il y a un air ici, retour d'initialize er sans initialiser toutes les propriétés stockées. Vous ne pouvez pas avoir une propriété comme celle-ci sauf si vous l'initialisez dans votre Isar initial. Ok, donc il n'y a pas de point d'exclamation à la fin. n'y a aucun doute, Mark à la fin, on dit qu'il doit y avoir une valeur ici. Il doit y en avoir absolument. Et la seule façon de vous en sortir, c'est si vous l'initialisez dans votre Isar initial. D' accord ? Sinon, je dois dire, je sais qu'il va y avoir une valeur dedans. n'y en a pas encore ou tu peux dire que je ne sais pas s'il y a une valeur du tout, mais on le sait. Ce qu'on veut dire,
c'est que
tu ne peux même pas créer une nouvelle personne à moins de passer le nom. Ce qu'on veut dire,
c'est que tu ne peux même pas créer une nouvelle personne à moins de passer le nom. D' accord ? Tu n'allais pas te laisser faire ça, alors allons de l'avant et disons le nom de point parce que tout le monde a besoin de nom égal nom. On va dire que ce nom est égal à ce nom quand on crée une nouvelle personne. D' accord ? Et, ah, disons ça. Cette personne a une phrase Catchphrase par défaut comme ceci est Ceci est la phrase que chaque personne va enregistrer par défaut. Ce sera une fonction qui renvoie une chaîne, et nous allons dire Return high. Je suis une personne moyenne. Ok, donc il y a une phrase de capture juste la valeur par défaut. Voilà une personne, non ? Et si vous vous souvenez de la dernière classe, je peux sauver notre Um, je dirais juste que John est égal à une personne comme celle-ci ici, et je vais passer le nom de John. Ok, donc il y a Johnny, c'est quelqu'un. C' est génial. Vous n'avez pas encore été témoin de l'héritage. L' héritage est vraiment l'héritage. Tu hérites de quelque chose d'autre. Ce qui affaiblit Dio, c'est qu'on peut dire que je veux un nouveau cours. Vous vous souvenez de ce spectacle il y a longtemps, comme Anna Morphs. C' était peut-être un livre de Siri dont je ne me souviens pas. Mais comme ces adolescents aimeraient, se transformer en ah, se transformer en animaux. En fait, vous êtes probablement familier avec le crépuscule. Vous savez, ils se transforment en, euh, loups et des trucs comme ça de toute façon, alors faisons un cours appelé animal si l'idée qu'une personne c'est comme une personne, mais pas un peu différent, mais nous voulons toujours les attributs de base parce que, euh, cet animal, si cette personne que vous connaissez, il a des yeux dans le nom et la vitesse dans le banc de presse, mais il a aussi un autre personnage ou six pour aimer le type d'animal qu'il pourrait transformer. Pour qu'on puisse le faire. Maintenant, je pourrais sauver notre type d'animal, OK, et, euh par défaut,
ça peut juste être, , Eh bien, quel serait un bon animal par défaut ? Quelque chose d'ennuyeux un chien. Bassett par défaut. Et donc il y a un chien qui est le type par défaut. Mais ce que je peux faire, c'est que
je peux, je peux remplacer ça. D' accord. Donc je pourrais aller de l'avant et dire, tu sais ,
dedans, et on pourrait dire type, et ça va être de type chaîne. Et ce que nous pouvons faire, c'est que nous pouvons dire les hanches de type
animal, le type animal est égal à type. On ne peut pas avoir de problème ici. Ok, le problème est que cet iseur initial n'est jamais appelé sur cette classe de base parce qu'on vient d'en créer
un nouveau . Ok, donc ce qu'on doit faire ici, c'est qu'on va dire un état pratique. Faisons juste cette commodité comme ajoutons quelque chose pour le faire appliquer à cette classe spécifique, ok ? Et puis allons de l'avant et appelons celui que nous avons déjà. Donc, disons que l'auto-point dedans et en fait, comme deuxième paramètre, donnons à ce gars et son nom d'accord, ou la fille qu'il va ficeler Et ce que je peux dire c'est que je pourrais dire doute de soi dedans et nous pourrions passer dans le nom. Ok, je pense que ça devrait travailler un peu élargi ici. Voyons quel air ça donne ici. J' ai oublié de dire,
euh,
désolé. J' ai oublié de dire, euh, C' est là que ça va. Il va après l'Isar initial ici, votre commodité initialisée quand vous cela réside ces propriétés, lorsque vous utilisez votre commodité dans cela, il va en dessous. Donc, si c'est déroutant, laissez-moi l'expliquer à nouveau. Donc cet anamorphique hérite de la personne, n'est-ce pas ? Mais ce que nous voulons aussi dio, c'est quand vous créez un animal ou si nous voulons définir le
type d'animal en plus du nom. Donc, nous avons créé une nouvelle initialisation er Okay. Nous devons toujours appeler celui-ci parce que cela est requis sur la classe de base. Donc ce que nous faisons pour dire, Hey, c'est juste une commodité initialiser er er er ce n'est pas le principal. C' est juste un secondaire. Mais c'est ce que nous allons appeler sur les animaux, et nous allons passer le type d'animal et le nom, et ensuite nous allons appeler l'initialiser sur la classe des parents, ce qui est nécessaire juste là. C' est tout ce qu'il se passe. C' est, genre, secondaire. Et on appelle juste le primaire et on ajoute quelques choses en plus ici. Pas trop mal. Hum d'accord, donc on vient de créer cette initialisation, et ça l'appelle juste là. Et, euh, c'est vraiment cool. Maintenant, nous avons une personne, est-ce
pas ? Et voici quelque chose d'intéressant. Et si je disais, euh, pour que tu saches comment on a John ici ? D' accord. droite. Et si on imprimait sa couleur des yeux ? Donc, je viens de sauver l'impression John dot I couleur. D' accord. D' accord. Donc nous imprimons la couleur des yeux et c'est bleu, non ? Et nous allons juste créer un animal pour l'instant de notre nous allons dire que dauphin est égal à Annette un animal et lui donner avis comment ? Ecoute, on peut appeler l'initialize er sur la classe parent. Ce que tu ressens, attends, cet animal, il n'a pas cet Isar initial avec un seul. Eh bien, ce n'est pas le cas, mais sa classe parente se souvient, elle hérite. C' est comme un sous-ensemble. Ainsi, vous pouvez toujours appeler cette initialisation sur la classe parent. Mais nous voulons la commodité parce que nous voulons définir le type d'animal. Et donc une fois un dauphin et le nom va être un cric. Ok, maintenant, c'est intéressant. Donc je veux que vous fassiez attention. n'y a pas de propriété sur l'animal appelé couleur des yeux, mais il y en a sur la personne. Alors quoi ? Mais je viens de créer un animal. Est-ce que je pourrai utiliser la couleur des yeux ? Alors donnons-lui une empreinte dauphin dot i corps. Et bien sûr, c'est là. Donc parce qu'il hérite de la classe supérieure, ok, la classe de personne, nous pouvons accéder à ses propriétés. C' est vraiment cool. Et le mot d'ordre ? En ce moment, la phrase clé sur ces deux est Salut, je suis une personne moyenne. Droit ? Donc si j'imprime John Dot catch phrase, j'imprime ça, OK,
ça va dire Salut, je suis une personne moyenne. Si je fais ça maintenant avec le dauphin, Ok, si je dis dauphin dot catchphrase, ça va imprimer exactement la même chose. Salut, je suis une personne moyenne. C' est intéressant. Eh bien, ce n'est pas très utile parce qu'un animal a vraiment besoin d'une phrase différente de celle d'un être humain
normal. Donc, c'est là que l'héritage devient aussi vraiment puissant est que je peux remplacer les
fonctions et les propriétés de classe basées et donc je peux enregistrer funk catchphrase, et je l'ai juste remplacé. Et maintenant, je peux faire une autre chose quand je pourrais dire que je peux me transformer en un animal cool. C' est mon mot d'ordre. Donc, je l'ai remplacé. Et maintenant, regarde par ici. Ça a changé. Donc avant cette impression, je suis une personne moyenne. Maintenant, c'est l'impression. Je peux me transformer en un animal cool, donc c'est intéressant. Vous pouvez remplacer les fonctions d'une classe de base. Alors ça n'a pas de sens ? Je ne veux pas Oh, je ne veux pas réécrire ce code, est-ce pas ? Je ne veux pas l'avoir animal pour avoir à copier et coller tout ce code parce que j'en ai besoin. Non, nous allons juste l'idée est de garder les choses qui sont similaires entre toutes choses, donc votre classe de base devrait être dépouillée. C' est possible. Ce qui veut dire ça sur. Lee a des choses qui vont être communes dans toutes les sous-classes. Ok, laisse-moi le répéter. Vous êtes classe basée devrait être dépouillé sur Lee ont des choses qui vont être communes entre toutes les classes basées. Bras. Excusez-moi. Toute la sous-classe va bien. Et c'est ce qu'on a fait. On veut toujours le nom de la couleur des yeux et tout ça, mais ici, on veut que Teoh change les choses. Et, bien
sûr, si nous fabriquons des animaux, nous pourrions, bien
sûr, modifier des propriétés. Je pourrais dire cette vitesse si votre dauphin, je ne sais pas à quelle vitesse ils peuvent aller, mais je suis sûr que c'est plus rapide que 10 milles à l'heure dans l'eau. Donc, vous savez, je pourrais dire, vous savez, 25 mph ou, hum, que
serait-ce dans votre pays ? C' est probablement Kilomètres. Tu aimes les stupides Américains ? Ah ha ! Facile MPH. Le reste du monde utilise le système métrique. D' accord. Ne me demande pas. Je ne sais pas. Je n'ai pas créé le système. Je l'utilise juste. Et donc nous y voilà. Nous pouvons mettre à jour des choses comme ça
aussi, et nous avons juste remplacé une fonction de la classe de base et pouvons faire autre chose. C' est vraiment, vraiment cool. Et puis pour voir l'exemple de l'héritage une fois de plus en parfaite clarté. Allons de l'avant pour faire une autre classe appelée super-héros, et ça va aussi hériter de la personne. Donc un super-héros dans un animal qui est deux films différents, deux livres différents, quelque chose de complètement différent. Cependant, ils sont un peu liés, d'accord ? Et il y a des choses que nous pouvons utiliser, hum, sur ces deux pour que je puisse encore faire la même chose. Ce super-héros qu'il fait. Il a toutes les autres choses qu'une personne a. Mais ce n'est pas un animal, donc il n'a pas de type animal. Mais quel super Pierre. Ce qu'un super-héros a, bien
sûr, est un pouvoir spécial, qui est exprimé une vision dans ce cas. Et, euh, il a une histoire en arrière. Tout le monde a une histoire en arrière, pas de rétrospective, probablement un camion a touché une boue qui avait des produits chimiques. Et maintenant, je suis super génial. fond , Mais une personne ennuyeuse n'a pas de toile defond,dit
juste que je vais à mon boulot tous les jours et je rentre à la maison pour regarder,
euh, euh, vous savez, films et
Le vrai sang. Ah, jeu de Thrones. Tu sais, c'est le jeu humain moyen de Thrones, non ? Tu sais. OK, alors l'histoire. Et encore une fois, nous pouvons ah, commodité dedans. Et on peut aller de l'avant et mettre un nom ici et ah, peut-être que dans ce cas, on veut changer
le banc de presse,
OK, OK, juste pour s'amuser. Et ah, alors faisons-le que toi-même appellera point de soi dedans et passera dans le nom. Ok,
ça vient de là. Et puis banc presse, même si on va dire « Egals press ». On va mettre à jour le banc de presse à nouveau. On utilise juste le pouvoir de l'héritage. C' est vraiment cool. Et puis, bien
sûr, pour créer un super-héros. Ce n'est pas si dur. On peut dire de notre,
euh, quel est le bon vomi de super-héros, mec ? Comme s' il avait du vomi toxique. Et maintenant, chaque fois qu'il
vomit, il verse de l'acide. Euh, c'est un super héros terrible. Oh, choses
bizarres qui sortent de mon cerveau. Ok, alors donnons-lui un nom. On va appeler cet homme à vomir et sa presse à banc est de 5000 livres. D' accord, 5000£. C' est beaucoup. Ok, c'est beaucoup en kilos ou en kilos. Ok, donc l'homme vomi est un gars assez cool, et Ah, on
y va. Allons-y. Et, euh oh. Je ne peux pas oublier le slogan. Surpassons la phrase d'appel. Ok, alors disons le funk catchphrase et allons-y. Et c'est quoi une bonne phrase de super-héros ? Um, avec un grand pouvoir vient grand. Maintenant, c'est un grand pouvoir. Faire ou ne pas à l'infini et au-delà mélangé quelques-uns d'entre eux il travaille. Il y a donc notre phrase d'appel. Et bien sûr, si j'imprime l'homme vomi qui attrape phrase et puis j'imprime dauphin dot catchphrase. Et si j'imprime John dot catchphrase, nous devrions nous attendre à trois résultats différents parce que nous les avons remplacés et toutes les
choses différentes . Et assez sûr qu'ils le font. C' est le pouvoir de l'héritage. Ok, c'est si puissant. Comme si ça pouvait être n'importe quoi,
imaginez un compte en banque. Comme si ça pouvait être n'importe quoi, , Vous savez,
vous avez un compte bancaire par défaut, mais peut-être qu'il y a un autre type de compte de marque comme, hum, compte bancaire offshore. Tu sais où tu dois faire des choses louches, transferts de cachette et des choses comme ça parce que c'est probablement un dealer et ah, tu sais. Alors peut-être que vous avez deux choses différentes. Il peut y avoir une deuxième sous-classe appelée comme, euh, vous savez, compte
d'opportunité. Tu sais, quand la banque comme toi n'a pas de bon crédit ou des choses comme ça, la banque te donne comme un de ces comptes boiteux où tu ne peux dépenser quand la banque comme toi n'a pas de bon crédit ou des choses comme ça,
la banque te donne comme un de ces comptes boiteux où tu ne peux dépenserque
101 100 dollars par mois. Tu sais, ça pourrait avoir des caractéristiques différentes. Il a tous besoin de fonctionnalités basées comme l'équilibre et d'autres choses. Mais vous savez, a ses propres sous-fonctionnalités. Tellement, des trucs très cool. Commencez à penser en termes d'objets et de classes lorsque vous construisez sur des applications, quel qu'il soit. Comment puis-je mettre cela dans un objet, visualiser quelque chose dans la vie réelle, mettre dans un objet, puis le dépouiller autant que possible au niveau de base. Et quand vous avez besoin d'une nouvelle fonctionnalité, pensez-vous vous-même. Puis-je mettre ça dans une sous-classe ? Ok, est-ce que cette sous-classe 22 est ce qui a le plus de sens et puis commencer à briser les choses très puissantes. Tu vas utiliser ça tout le temps. Et bien sûr, dans IOS, l'héritage est une chose très apparente comme, par
exemple, votre image de
vous, vous et vous, vous êtes vous je bouton. Je ne sais pas si tu le sais. Je pense que je l'ai peut-être mentionné, mais tous ces contrôles héritent en fait ils héritent tous de vous. Je vous ai bien, c'est intéressant. Donc Ah, vous avez u K est la classe de base là-bas. Et vous j'image vue est un, um est une sous-classe et alors Ah, vous avez aussi vous je bouton est une sous-classe. Ce que vous avez étiqueté est une sous-classe. Tous héritent de vous. Je vois que tous ont des fonctionnalités basées, comme un cadre et un centre, Vous savez, le positionnement et d'autres choses, et puis ceux-ci le font descendre un peu plus loin. C' est vraiment cool. On y reviendra plus tard. Mais comment vous vous sentez, tout le monde ? C' est génial. C' est les héritages est très puissant. J' espère que ça vous a plu. On va plonger dans le prochain cours et utiliser ça dès la chauve-souris, si familier avec ça. Et c'est une pellicule
38. Polymorphisme: Hé, tout le monde, Mark Price entend avec des savons sourds et aujourd'hui on va parler de polymorphisme, accord ? Et si c'est la première chose qui vous est venue à l'esprit quand j'ai dit polymorphisme, c'est plutôt cool. Mais ça n'a absolument rien à voir avec ce dont nous parlons. Mais au fait, tu te rappelles comment tout le monde avait le béguin sur son dos dans la journée ? Je sais que c'était toi si ta copine a probablement appris à moi ou à quelqu'un d'autre que Power Rangers, une autre promenade dans la voie de la mémoire et je vais aller de l'avant et ouvrir un dossier. Nouvelle aire de jeux. Vous êtes comme, où il tire tous ces trucs ? Comme ? , Tu as juste un aperçu de mon cerveau,de mon histoire et de mon passé,
tu sais, tu sais, comme des choses qui sont considérées comme rétro maintenant. Cool. Et c'était mon histoire. Je veux dire, les jours rétro. Et donc je suis un type rétro et ah, allons-y et appelons-nous Poly Morph. Quoi ? Polly ? Plus pour quoi ? Le polymorphisme. Ok, c'est un principe de programmation orienté objet, et je l'ai juste mis sur le bureau là-bas. Ok, alors débarrassons-nous de cette ordure. polymorphisme est un principe très simple. Ce ne sera pas une vidéo très longue parce que ce n'est pas si mauvais d'un principe. Cependant, vous demandera cela dans de nombreux entretiens d'embauche. m'a demandé ça une fois et tu sais quoi ? En fait, je connais ce principe à l'intérieur et à l'extérieur. Mais j'ai fait un travail terrible en expliquant dans une de ces interviews, et ils pensaient que je n'avais aucune idée de ce dont je parlais. Il est donc important de savoir ce que vous faites et de pouvoir vous présenter dans une interview. Donc, même si ce principe est si simple, c'est comme si je connaissais le polymorphisme et c'était comme, Wow, tu es si intelligente. Ouais, je vais avoir un cours appelé forme. Ok, une classe par défaut, tout droit, moins qu'ils ne veuillent calculer la zone. Et en passant, c'est un exemple très commun pour démontrer le polymorphisme. Je n'ai pas inventé ça. C' est juste que c'est très simple. Donc, et les formes ont une bonne zone, et cette zone va être un type double. Je dis juste, Hey, peut-être qu'on peut ou pas mettre une valeur ici, donc c'est facultatif. D' accord ? Et créons une fonction appelée talc. Ta zone de retard. Alors, comment pouvons-nous calculer la surface d'une forme si nous ne savons pas quel type de forme il s'agit ? Toutes les formes sont-elles calculées ? La même chose en ce qui concerne la zone. La réponse est non. Les cercles sont différents des triangles sont différents des rectangles, donc nous ne pouvons pas écrire de code ici. C' est comme, qu'est-ce qu'on fait ? Qu' est-ce qu'on dio ? Eh bien, ne craignez jamais un polymorphisme et un héritage à la rescousse. Ok, donc je vais dire zone d'impression funk, ok. Et puis on va aller de l'avant et imprimer la zone va bien. Et, ah, mettez un deux-points ici, puis on est un peu des parenthèses spéciales, et on va imprimer la zone. D' accord. Et, euh si bien, imprimez. J' ai oublié les parenthèses qui s'y sont fermées. Ok, donc nous imprimons la zone, et Ah, ce moment, il n'y a rien dedans. D' accord ? Et mais à un moment donné,
il y en aura. Donc ce qu'on vient de faire, c'est qu'on a enlevé un Z meilleur que l'on peut jusqu'aux os nus, et qu'on puisse en hériter. Donc c'est une bonne pratique, en fait. Et donc parlons d'un rectangle afin que le rectangle puisse hériter de la forme. C' est vrai. Bonne réponse. John et ah avec Well, donnez-lui
juste une valeur par défaut pour l'instant. 1,0 et la hauteur de la barre est égale à 1,0. Donc juste définir des valeurs par défaut, c'est tout. Et quand vous créez en classe, vous pouvez passer dans le avec ok ? Et tu peux passer dans la hauteur, ok. Et ah, nous allons avec et la hauteur semble bonne. Et ce que nous allons faire est un autodidacte avec égal et nous dirons moi, la hauteur est égale à la hauteur. Et encore une fois, si vous êtes confus du tout, le moi fait référence à Teoh les propriétés de la classe. Et cela fait référence au paramètre K. Ceci est appelé portée locale. C' est ce qu'on appelle la portée globale. Peut en colère deux types différents de portée ici. D' accord. Et alors, allons de l'avant et ah, mettons le polymorphisme en action. Remplacer la zone de calcul funk. Donc, comme nous l'avons fait avant, nous allons remplacer la fonction Calculer la zone maintenant. cette fois, Maiscette fois, on va lui donner un comportement spécifique. En fait, vous pensez probablement, qu'avons-nous déjà démontré ? Le polymorphisme ? Eh bien, nous l'avons fait en fait, donc la zone est égale à la hauteur du temps, donc la zone est égale à la fois la taille que le père a tout à fait sens parce que c'est un rectangle. C' est bon. Et, euh, allons de l'avant et allons au cercle de classe qui devrait aussi hériter de la forme. On y va. Est-ce que quelqu'un se souvient comment calculer la surface d'une forme ? Eh bien, nous avons besoin d'un rayon 1,0 et allons-y. Initialisez-le avec un rayon de type double et, ah, allons-y se termine un rayon de point auto égal à rayon. D' accord ? Et bien sûr, que voulons-nous remplacer la fonction ou dire, calculer la surface ? Et comment on fait ça ? Eh bien, la zone est égale à 3,14 fois le rayon. C' est l'esperluette. Les temps sont radius, et ça a l'air assez bien. Ça a l'air plutôt bien. C' est donc nous allons les voir en action. Ok, Donc si je vais de l'avant et sauver notre cercle égal cercle et je passe dans un rayon de disons cinq et dit 5.0 et gardons notre rectangle Andi égale ah rectangle, et nous allons passer dans un avec de 20 et une hauteur de cinq . Ok, et ensuite nous irons de l'avant et sur chacun de ces trucs. C' était un cercle, pas de mauvais cercle. Donc, vous avez remarqué la différence Capital ni cas que vous pouvez rencontrer des problèmes étaient comme, Pourquoi cela ne fonctionne pas ? Eh bien, c'est parce
que vous cliquez sur le mauvais sur les
auto-complétés, les classes, l'instance du cercle de classe égale ou désolé zone de calcul cerclé. Et puis nous dirons, une zone de calcul rectangle point. Et puis ce que nous allons faire est que nous allons simplement imprimer la zone de points cercle et nous allons imprimer la zone de
points rectangle et nous allons voir ce qui s'est passé. Cela nous a donné 78,5 sur le cercle et 100 sur le rectangle. Eh bien, ça me semble plutôt bien. Donc, ça marche vraiment. C' est donc le polymorphisme dans sa forme de base la plus absolue. Hum, ça n'a pas beaucoup plus que ça. Vraiment. Um, c'est l'idée d'avoir des fonctions que vous pouvez remplacer qui exécutent un comportement différent. Donc, même si nous appelons la même fonction sur ces sous-lunettes, ils font quelque chose de différent. Et c'est une autre des fonctionnalités puissantes de la programmation orientée objet. Ok, et, ah, faisons un exemple de plus juste pour sceller le marché. Disons que nous avons une classe appelée ennemi. Ok, c'est un jeu d'une sorte, accord, et bar h p équivaut à 100 de notre attaque. La puissance est égale à 10. Allons de l'avant et lui donner un premier HP Isar et dira est de fin de type, et l'attaque est de type tante, et nous allons initialiser ces valeurs auto. Ce h p est égal à hp et la puissance d'attaque de point auto équivaut à la puissance d'attaque et non à la puissance d'attaque. C' est ce qu'on n'attaquera pas. Et ah, OK, ça a l'air bien. Nous avons notre Isar initial là et ah, avons une fonction appelée Défendre l'attaque. Donc, à chaque fois que tu
seras attaquée, tu seras le défenseur, accord ? Et donc tu vas passer. Quelqu' un va passer dans l'attaque Pouvoir Les pouvoirs entrants affaiblis. Nous pouvons probablement dire que la puissance de A T T entrante pour la puissance d'attaque entrante dira int, Et ce que nous allons faire, c'est dire que HP moins est égal, um, les pouvoirs d'attaque entrants. Ce que nous disons, c'est ,
hé, allons de l'avant et prenons cette puissance d'attaque entrante et soustrayons du HP et
réaffectez-la à HP. Donc, si le tir d'attaque était de cinq, PV serait maintenant réduit à 95. Donc nous défendons l'attaque. Disons que nous avons un type spécifique de troll en colère de classe ennemie,
et qu'il hérite de lui. Nous sommes, nous n'allons pas à un stéréotype de genre sur un troll en colère. Disons que nous avons un type spécifique de troll en colère de classe ennemie, Une femme pourrait être autant un troll qu'un homme. Merci. D' accord. Et si furieux troll hérite d'un ennemi. Donc on va dire si d'accord, alors regardons ce qu'on essaie de faire ici ? En fait, réfléchissons à ça. Donc, nous voulons que le troll en colère fasse quelque chose de différent de l'ennemi gagnant
attaque entrante vient. Il a un pouvoir spécial. Donc disons qu'ils sont en colère. Troll a en fait une immunité égale 10. Ce que ça veut dire,
c'est ,
c' si une attaque arrive, c'est moins de 10. Il est à l'abri. Ok, non seulement ça, il a un point supplémentaire pour sa vie, tu vois ? Donc vous ne pouvez attaquer ce troll en colère que si vous avez plus de 10 puissance d'attaque. Donc nous allons dire,
remplacer funk, défendre l'attaque, défendre l'attaque, et nous allons juste remplacer celle par défaut. Droit ? Donc on remplace ça, d' accord ? Et ce que nous allons dio,
c'est que nous allons dire si le pouvoir c' attaque
entrante est inférieur ou égal à l'immunité. Donc si c'est inférieur ou égal à l'immunité, , on ne va pas enlever ces dégâts, et on va dire HP plus plus. Ok, alors pense à ça. Si on fait ça ici, si on le remplace, cette fonction ne sera jamais appelée. D' accord ? Ça n'enlèvera jamais le pouvoir d'attaque ici parce qu'on l'a écrit. Mais saviez-vous que vous pouvez toujours l'appeler si vous voulez. Quoi ? Oui. Donc s'ils ont attaqué avec quelque chose de plus de 10 ans, nous pouvons juste aller de l'avant et appeler l'
attaque super point et nous pouvons passer dans la puissance d'attaque entrante. Donc super signifie appeler la super classe. Ok, donc vous avez des classes parents et des classes enfants, ou, en d'autres termes, vous avez une super classe et une classe de base. Donc ce que nous disons,
c'est que si les attaques vont bien,
si c'est supérieur à 10, allez de l'avant et appelez la fonction normale. si les attaques vont bien, Donc les attaques de défense super point appelaient cette fonction ici, et nous passons dans la puissance d'attaque. C' est vraiment cool. C' est donc une autre façon que l'héritage fonctionne. Vous pouvez l'utiliser pour travailler avec les données comme bon vous semble et, bien
sûr, défendre l'attaque à son niveau de base. Cette fois, ce n'est pas vide. Il a quelque chose qu'il fait. Nous pouvons choisir de l'utiliser, ou nous pouvons choisir de ne pas l'utiliser. Donc, et c'est l'héritage mélangé avec le polymorphisme mélangé avec une bonne conception de
programmation orientée objet . J' espère que cela a beaucoup de sens. Si ce n'est pas le cas, vous utiliserez beaucoup de cela tout au long du cours et vous le ferez descendre. En fait, vous pouvez aller à un entretien d'embauche pour Oubliez toutes ces choses et vous connaissez les choses à l'intérieur et à extérieur. Quelqu' un, c' est
quoi le polymorphisme dans ton logo ? Il ne se souvient pas. Et puis quelqu'un est genre, Eh bien, voici un exemple. Oh, je fais ça tous les jours. Alors ne vous inquiétez pas pour ça. Tu vas le maîtriser même si tu ne le sais pas. Mais il est appelé à ne pas être confus, Power Rangers, et merci de vous accorder. Tout le monde pense que c'est Mark Price des savons de la mort, et je te verrai la prochaine fois
39. Swift 2 facultatifs Partie 1: tout le monde Mark Price ici à la mort savons dot com et l'état. On va le couvrir. partie la plus importante et fondamentale de Swift. Eh bien, peut-être l'élément le plus important, mais très fondamental. Et ce sont des options. Tu vas les utiliser tout le temps. Et les options sont en quelque sorte l'une des choses qui séparent, euh, bon code du mauvais code qui a aidé à prévenir les accidents. Donc je vais aller de l'avant et créer un nouveau terrain de jeu, aller à votre code ex et déposer un nouveau terrain de jeu. D' accord ? Bien que ce ne soit pas un fichier de terrain de jeu. Nouvelle aire de jeux. On y va. Et allez-y et appelez ça comme vous voulez. Je vais appeler mes options et un an sur le bureau. Ok, donc les options, tant de langages de programmation vous permettent d'écrire du code qui peut planter. L' idée derrière les options est que si vous les utilisez, votre base de code pourrait être pratiquement irréprochable. Um, ce n'est jamais vrai. Mais au moins votre code, nous beaucoup, beaucoup mieux. Et donc parlons de ce qu'est une liste facultative. Donc, si je garde nos gains de loterie de type et je mets un point d'interrogation à la fin Maintenant, le interrogation est ce qui définit quelque chose comme un optionnel. Ok, ce que vous dites lorsque vous mettez un point d'interrogation sur un type de variable, vous dites que cette variable peut ou non avoir une valeur. Ok, donc si à un moment donné dans votre programme, vous ne savez pas s'il y a une valeur là-bas ou
pas , , alors un nouveau marché en option. Ainsi, par
exemple, gains
de loterie. Si vous avez une application où vous allez vérifier si vous avez gagné à la loterie, vous pouvez ou non avoir une valeur là-dedans, et il n'aura probablement pas de valeur là-dedans, juste pour que vous sachiez. Ah, et donc fondamentalement ce que vous dites est, Hey, vous devez vérifier cette valeur en tant que programme et vous devez vérifier cette variable et vous assurer qu'elle n'est pas agenouillée. Remarquez sur le côté droit, par ici. C' est Neil. Et donc tu es genre
, , pourquoi ? Pourquoi pourquoi ? Pourquoi cela a-t-il de l'importance ? Alors, voyons ça. Si je dis d'imprimer les gains de loterie, accord ? Et j'ai mis un point d'exclamation à la fin pour déballer la valeur. Ok, on vient d'avoir un accident. Donc le point d'exclamation est ce qu'on appelle le déballage. Donc c'est vous le prenez en option et vous dites donnez-moi la valeur et vous essayez de l'utiliser. Mais si tu fais ça et qu'il n'y a aucune valeur dans leur, ton programme va s'écraser. D' accord ? Beaucoup de nouveaux programmeurs se déplacent partout et le font rapidement, et leurs programmes se bloquent, et parfois ils ne se bloquent pas parce qu'il y a des valeurs dedans. Mais à l'avenir, cette valeur ne vient pas et l'application se bloque et la personne donnera à l'application un
avis d'une étoile . Pas bon. Maintenant, avec cela à l'esprit, si je juste ici sur la ligne suivante, ledit gains de loterie est égal à 500. Remarquez comment les linéaires ne se bloquent pas comme. Ok, eh bien, je résolve le problème pour définir une valeur. Eh bien, ça résout le problème, mais ça ne résout pas vraiment le problème inhérent, qui est votre vous. Ah, vous abusez de cette option. Ok, on a eu de la chance. Mais qu'en est-il des moments où nous n'avons pas de chance et où il n'y a pas de valeur, alors ne le faites pas d'abord. Donc première règle La première règle sur les options est que nous ne parlons pas d'options. Non, ce n'est pas la première règle. La première règle est de ne jamais, jamais
jamais, jamais, jamais, jamais,
jamais, jamais implicitement déballer quelque chose ou excusez-moi, déballer quelque chose comme nous le faisons ici, ok ? Ne fais jamais ça mal, Bad, si mal, Bad. Très mauvaise pratique. Si tu le fais, je viendrai chez toi. Je vais te battre. Je sais où vous vivez, alors sachez ça. Donc, ce n'est pas bon. C' est très, très mauvais. Ok, très, très, très mauvais. Donc ça nous a donné un accident, non ? Alors, qu'est-ce qu'on devrait dio ? Eh bien, nous voulons vraiment le point d'interrogation ici parce que nous ne savons vraiment pas si ça va avoir une valeur ou non. À chaque fois que tu ne sais pas si ça va avoir de la valeur, mets le point d'interrogation dessus. Ok, euh et, ah, si on veut vraiment travailler avec ça,
tout ce qu'on a à faire c'est une des deux choses. Si les gains de loterie ne sont pas égaux à s'agenouiller, allez-y et imprimez les gains de loterie. Maintenant, on peut mettre l'exclamation dessus. Et tu aimes quoi ? Tu m'as dit de ne pas faire ça. Eh bien, il y a un temps et un endroit pour tout. Réfléchissons à ce qui se passe en ligne. Sept disaient, Hey, si les gains de loterie ne sont pas Neil, c'est Neil juste ici. Si ce n'est pas le cas maintenant, alors vous pouvez l'imprimer. Donc, si vous avez ceci, si bloc et puis vous le déballer, votre garantie absolue d'avoir une valeur. Pourquoi ? Parce que ce code ne sera jamais appelé à moins que les gains de loterie aient une valeur dedans. Donc, remarquez comment rien ne va bien imprimer ? Cependant, si je dis gains de loterie égale 10 OK et maintenant imprimé parce qu'il y a une valeur dedans. C' est donc ce que vous faites lorsque vous travaillez avec des options. Vous vérifiez toujours et assurez-vous qu'il y a une valeur dans. Au début, vous êtes comme, Eh bien, ça veut juste dire plus de code. Eh bien, la raison pour laquelle il a ajouté ceci et Swift parce que les autres langues n'ont pas d'autres langues, vous
laissez abuser des choses, et ensuite vous devez vous inquiéter de vos propres accidents. Alors quoi ? Voici le point d'enlever ce qu'Apple et Swift essayent de vous dire de faire, c'est hey, si vous ne savez pas, il va être valorisé pour le rivage, mais un point d'interrogation dessus. De cette façon, vous pourriez savoir pour tout vérifier. La question que Mark dit est,
Hé, Hé, vérifie-moi plus tard pour m'assurer que je ne suis pas vide parce que je n'ai peut-être pas de valeur dedans. C' est tout ce que ça dit. Et c'est ce qu'on a fait ici. L' autre façon de le faire est appelée est d'utiliser ce qui est appelé si la syntaxe de laisser K. Donc, si les gains sont égaux à des gains de loterie et alors nous pourrions dire des gains d'impression. Maintenant, c'est intéressant. Alors, comment si let fonctionne est que nous prenons la valeur de cela, ajoutons une loterie gains, et si elle existe, nous la mettons dans une nouvelle variable, une nouvelle constante. Ok, donc si cela a une valeur dans, il va dans la nouvelle constante. Et donc si ce n'est pas à genoux et qu'il y a une valeur, alors ce code est appelé et c'est la façon préférée de le faire si vous le pouvez. Parfois, vous devez le faire de cette façon, la plupart des cas, le faire de cette façon. Donc, fondamentalement, ils étaient la syntaxe, est si nous allons donc dire si et puis vous faites une, um, une constante avec le nom et ensuite vous affectez la valeur dedans. Donc s'il y a une valeur, ça va être stocké dans les gains. Maintenant, vous pouvez toujours dire des gains de loterie d'impression, mais vous devez mettre un point d'exclamation dessus pour le déballer, et nous ne voulons pas faire ça. Alors pourquoi n'utilisez-vous pas simplement la nouvelle variable qui vient d'entrer, et alors vous n'avez pas besoin de mettre un point d'exclamation. Il imprime juste pour vous et remarque comment, bien
sûr, ce n'est pas l'impression. Donc, si nous disons que les gains de loterie sont égaux à 100 Ok, donc ici n'existait pas. Il était encore agenouillé à ce stade, mais a maintenant une valeur, et nous arrivons à cela. Donc, si let est la syntaxe désirée, vous fondamentalement tout ce que vous faites est de prendre la valeur, jeter dans une nouvelle variable si elle existe. Si ce n'est pas à genoux, alors vous savez qu'il est là. Et c'est ce que tu fais. Chaque fois que vous avez un point d'interrogation, utilisez si laissez avant d'essayer d'utiliser cette valeur. ai eu. Tout moment de la variable a une question. Mark est un optionnel toujours en utilisant si laisser d'abord pour s'assurer que ce n'est pas Neil. Ok, c'est la loi. Ok, s'il y a quelque chose que vous pourriez retirer de cette leçon aujourd'hui, c'est que c'est la chose la plus importante. Ok, alors passons en revue quelques exemples de, um optionnel. Alors, nous allons avoir un cours appelé Khar. D' accord. Et nous avons un modèle très contondant qui s'appelle le modèle parce que c'est le modèle de la voiture, accord ? Et donc on ne sait pas si le modèle va avoir une valeur. Ça a du sens. Ah, ça pourrait avoir une valeur. Il pourrait ne pas. Et donc ce qu'on va faire, c'est on va faire une multiligne si on le laisse, alors ce qu'on va faire c'est qu'on va créer une voiture de notre véhicule de type voiture, et c'est une signification facultative. Hey, à un moment donné dans le futur, ce véhicule aura de la valeur. Ce n'est pas encore le cas. Nous avons donc une classe ou une déclaration d'objet d'une classe, c'est facultatif. Et puis cette classe elle-même a une option de valeur à l'intérieur de celui-ci. Et si on veut obtenir le modèle de la voiture ? Ok, eh bien, une chose qu'on pourrait faire est de dire si on laisse, euh v pour le véhicule. Ok, c'est juste un appel très, très constructif. Peu importe. Si laissez v égal à voir ical, ok. Et puis ce que nous pouvons faire est que nous pouvons dire si le modèle ou m pour le modèle est égal à v modèle point, Donc nous pourrions faire si nous allons bien. Et ce qu'on pourrait faire, c'est imprimer. On pourrait imprimer, euh, m pour le modèle. Droit ? Et pour l'instant, ça ne va pas imprimer parce qu'il n'y a rien. On ne l'a pas créé. droite. Euh, cependant, il y a un meilleur moyen. Et c'est une seule ligne. Si laissez donc ce que nous pourrions faire au lieu de dire, si laissez v égal voir Hickel et laissez m égal modèle Vida. Ah, c'est intéressant. Donc, comment cela fonctionne est assimilé le côté gauche d'abord, puis le suivant, le suivant, le suivant dans cet ordre. Donc, s'il y a une vue ical ok, il va alors le faire ici et saisir. Il va utiliser la variable V parce qu'elle existe. Maintenant, il est prêt à prendre le modèle hors de lui. Et si on arrive ici, ça veut dire
qu'il y a un modèle en ce moment. Il n'y en a pas. Que devrions-nous faire pour que cela fonctionne ? Eh bien, c'est une vue de test simple. Ic est égal à la voiture. OK, donc nous venons de créer une nouvelle classe de voiture, une instance de cet objet, et il n'est toujours pas imprimé ici parce qu'il n'y a pas encore de modèle. Donc ce qu'on fait, c'est qu'on te sauve le modèle à points, ce modèle est égal, euh ,
écoute, on va juste appeler ça Bronco, ok ? Et ah,
maintenant, si vous remarquez ici sur le côté droit, il imprime Bronco. C' est plutôt cool. Donc, euh, encore nous nous sommes sauvés d'un accident juste en faisant ça
si OK, évidemment , si j'
essayais essayais d'imprimer si j'essayais de le faire ici avant d'initialiser que ma fierté essaie de vous sauver ical , si j'ai essayé est une vue ical, um modèle point. Ok, ça va s'écraser. Ok
, des trucs plutôt cool. Peut-être que tu te demandes Hey, qu'est-ce que ça veut dire ici ? Pourquoi ? Pourquoi y a-t-il un point d'interrogation devant lui ? Eh bien, c'est le Syntex optionnel lorsque vous utilisez un optionnel avec un point d'interrogation. OK, chaque fois que vous allez utiliser, comme le point de propriété excessive ou quelque chose comme ça, vous devez mettre un point d'interrogation en disant, Hey, c'est un optionnel et je ne sais pas si ça va ont une valeur ou non. C' est tout ce qu'on dit. Le véhicule est optionnel et nous ne savons pas s'il va y avoir un modèle devant lui. Et donc ce qui est cool,
c'est que si je devais le faire ici. Si je devais dire « Print View », euh, et que je sais comment ça va le mettre automatiquement pour moi. Maintenant, remarquez comment ça ne s'écrase pas. Attends une minute. Pourquoi ça ne s'écrase pas ? Eh bien, ce que vous dites,
c'est ce que vous dites,
c'estque
nous savons que c'est une option. C' est ce qu'il dit. Nous savons que les véhicules et les options, donc s'il y a une valeur, imprimez-le, Ok ,
euh, sinon ça ne fera rien. Donc, vous pouvez aussi le faire aussi. Ce que tu ne veux pas faire, c'est bien, parce que tu viens de rompre ton programme. Vous venez de planter l'utilisateur parce que ce que vous dites est déballé cette valeur Utilisez cette valeur en ce
moment et vous venez de planter votre programme. Donc en laissant le point d'interrogation là, vous dites, Hey, je ne sais pas s'il y a une valeur ou non, mais imprimez-le si on en a besoin. Mais au fait, si tu fais ça quoi, tu dis aussi ça, je me fiche que ça marche ou pas. OK parce que ça peut fonctionner. Cela peut ne pas fonctionner, et votre programme doit continuer à fonctionner, même s'il ne fonctionne pas. Donc, sachez juste que si vous utilisez cela, cette question marque en taxe. Quand vous imprimez ou exagérez quelque chose que vous dites, je ne me soucie vraiment pas de sa valeur ou non. Si vous avez du code qui dépend absolument de savoir s'il est évalué ou non, vous devez le faire. Et si on aime ça ici, parce que disons que votre programme ne peut pas continuer à moins qu'il n'y ait un véhicule. Donc, si vous n'avez pas de véhicule que vous voulez en créer un d'abord, alors vous utiliseriez si nous sommes en taxe, car cela vous oblige à gérer la situation. Cela ne vous oblige pas à gérer la situation. Cela imprime juste si Prince, s'il est là ou pas. Et donc, si vous attendez une valeur là, faites
juste. Sachez juste que cette syntaxe facultative ici signifie que vous pouvez ou ne pas vous donner ce que vous cherchez. Donc, il y a des trucs vraiment cool, et si certains de cela sont déroutants pour vous,
c'est bon pour le moment nous allons l'utiliser tout au long du cours sur différentes choses . Et je l'explique encore et encore. Tu vas m'entendre tellement en parler, et tu vas aimer que ce type ne se bloque jamais sur les optionnels. Eh bien, la raison pour laquelle je ne me taise jamais à propos des options, c'est parce que ça t'aide. Il vous aide à créer des programmes très robustes. Parlons d'autres choses qui affaiblissent Dio. Donc, disons que nous avons un tableau de nos voitures, un tableau de voitures, et qu'il est de type facultatif, ce qui signifie qu'il peut à un moment donné, avoir une valeur, et qu'il aide à enlever le S ici, et il peut ne pas encore. C' est juste une gamme de voitures, et c'est facultatif. D' accord ? Et donc disons à ce stade ici, maintenant nous avons dit voitures. Maintenant, nous créons réellement tableau, nous l'initialisons. Nous créditons avec un tableau vide. Et donc ce que nous voulons Dio n'est pas seulement vérifier son Neil, d' accord, parce qu'il pourrait être vide. Mais nous ne pouvons vraiment pas utiliser une série de voitures à moins qu'il y ait vraiment des voitures dedans. Droit ? Donc, nous ferions d'abord ça. Genre, si la voiture est pour la voiture A égale les voitures, non ? Et alors s'il y a une valeur dans les voitures, on va entrer ici,
et il y en a actuellement parce qu'on vient de le faire ici. Mais on ne s'en soucie pas vraiment, , parce qu'on en a besoin. On doit savoir s'il y a quelque chose dedans. Donc, ce que nous pourrions aussi faire, bien
sûr, c'est si nous arrivons là, nous savons qu'il y a dans une course, parce que si les voitures sont le nombre de points est supérieur à zéro. Donc s'il y en a plus d'un, il y a au moins un élément. Ensuite, allez-y et exécutez le code. Mais c'est deux lignes de code. C' est un peu méchant. Il y a un meilleur moyen. Donc, dans, si nous allons dans le texte, vous pouvez réellement faire le let et ensuite vous pouvez faire une condition après donc nous pouvons réellement dire où. Où est le mot clé voiture ? Le nombre de points R est supérieur à zéro. Donc ce qu'on dit c'est d'accord, ce qu'on dit c'est que
si, si, euh, ça me criait dessus est une fermeture inutilisée. Ok, arrête. Ok, donc c'était juste flipper. Il suffit de construire. Si jamais tu vois
ça, construis-le. Parfois, ça flippe. Je ne sais pas pourquoi si la voiture R est égale voiture. Donc nous faisons est de dire, Hey, si ce n'est pas à genoux, poussez-le dans cette variable ici cette constante alors nous disons, mais aussi où le compte est supérieur à zéro. Alors Onley continue, Lee, exécute ce code. Donc, sur Lee exécuter si pas à genoux et si plus de zéro éléments Donc c'est vraiment cool. On peut le faire, on peut le faire. Et si aussi bien qu'une condition sur la même ligne pour exécuter un bloc de couches sur nos codes, va devenir encore plus petit sur alors. Donc, par
exemple, si vous n'aviez pas de tableau de voiture ou si vous n'aviez pas plus d'un élément, alors vous pourriez le gérer, non ? Vous pourriez dire autre et ensuite vous pourriez dire que les voitures sont parsemées. Et puis vous pourriez créer une nouvelle voiture comme si hum passé une nouvelle voiture là-dedans, et ensuite vous l'ajouteriez et ah, c'est vraiment cool. Droit ? Et encore une fois, vous voyez ces points d'interrogation en taxe, Écoutez ce que nous disons ici,
c'est Hey , si les voitures ont une valeur dedans, ok, allez-y et rehaussez-la. Donc maintenant, c'est que ça va vraiment marcher. Mais si j'ai enlevé ça, OK, eh bien, voici un bon exemple. Alors j'ai pu imprimer le chiffon du comte. Je pourrais imprimer le nombre de points de voitures. Donc, dans ce cas ici, ça va nous donner un compte d'un. Droit ? Et puis ah, mais remarquez comment il dit optionnel est parce que nous utilisons la syntaxe facultative juste ici. D' accord. S disaient, Hey, imprimez-le. Si c'est là et que c'est facultatif, c'est bon. S' il n'existait pas, cela ne serait même jamais imprimé. Ok, hum, voir comment ce n'est pas. L' impression ne fait rien. Donc, euh, toute façon, trucs
vraiment cool. Ce dont on vient de parler, c'est de faire dans un appartement en état conscient. Et si l'un d'entre eux est tombé, vous devriez le gérer. Et c'est ce que vous allez voir la plupart de vos affaires ici, vous allez gérer,
hum, hum, la condition où il n'y a aucune valeur dedans, pour que votre programme puisse aller de l'avant. Et c'est le bon Syntex, tu vas utiliser ce modèle ici, moins moins. Ce sera moins courant d'utiliser ce modèle où vous utilisez les points d'interrogation en impôt pour appeler des choses. C' est parce que si ça ne marche pas si ça ne sort pas vrai, comme il n'y a pas de valeur dedans. Ça ne va pas marcher sur ton programme va continuer. Et ce que tu dis quand tu fais ça, c'est que je m'en fiche si ça marche ou pas. Dans la plupart des cas, vous vous en souciez. Vous vous souciez de s'il y a une valeur ou non, donc vous pouvez gérer l'affaire. Ou vous pouvez initialiser les choses de l'objet comme ça. Donc, euh, trucs
vraiment cool. Parlons d'autre chose. On va parler de ce qu'on appelle un optionnel implicitement déballé, et tu es genre, quoi ? C' est aussi compliqué ? Eh bien, ce n'est pas trop mal. Donc on a un cours de personne. On va avoir une fonction ici où tu peux fixer l'âge. Vous dites que l'âge de soi est égal au nouvel âge. Hum, donc voici le marché. Vous avez un cours ici qui a une propriété, et il y a un point d'exclamation là-dessus maintenant, ici,
genre, genre, qu'est-ce que ça veut dire ? Eh bien, ce que cela signifie n'y a-t-il toujours pas de valeur dedans ? En fait, c'est exactement la même chose qu'un optionnel. D' accord, mais la différence est que ça ne va pas crier dessus, tu sais ? Ok, quand vous essayez d'accéder aux propriétés. Donc si j'essaie de dire que si j'essaie de sauver notre,
euh,
Jack est égal à personne,
ok ? si j'essaie de sauver notre, euh, Jack est égal à personne, Ça ne va pas me crier dessus si j'essaie de faire ça et de dire l'impression de Jack Dot Age, ça va me laisser le faire. Droit ? Mais regarde ce qui va se passer, d'accord ? Il y a une valeur Neil dedans, ok ? Et ah, c'est mauvais. En fait, cela pourrait planter votre programme sur. Ce n'est pas ce que nous voulons faire. Nous ne voulons pas faire planter notre programme. Ok, donc, euh, ce que nous disons ici, c'est que je vais donner ça de valeur à un moment donné, et je le garantis. Je suis absolu, Gary, garantissant
absolument qu'il y aura une valeur ici. Donc ce que tu dis c'est, hey, débarrasse-toi d'une question, Mark, parce que je ne veux pas écouter l'avertissement. Euh, parce que je vais certainement mettre une valeur ici, mais voilà le truc. Ça pourrait être très mauvais. Tu vas le voir dans les programmes, et on va le faire ici. Mais ça pourrait être très mauvais si tu ne sais pas ce que tu fais et pourquoi ? Parce que vous devez vous assurer de l'initialiser. Donc, en ce moment, nous ne sommes pas un bon développeur n'étaient pas un bon développeur parce qu'il n'est jamais initialisé dès le départ. Donc, quand je fais cela ici, n'est toujours pas valide. Et donc quand j'y accède, il n'
y a rien dedans et notre programme peut s'écraser. Et donc, euh, même si on a une fonction d'âge fixe années donc si je dis Jack, ça dit vieilli, oui,
c' est cool. Je pourrais lui donner un âge maintenant, mais le problème est, si cette fonction n'a jamais appelé ou si elle est appelée plus tard où quelqu'un essaie d'accéder à l'âge ? Avant de faire ça, ça va être Neil, et ça va planter ton programme. Nous devons donc prendre des précautions quand nous utilisons ça. Si vous allez utiliser un optionnel implicitement déballé, vous devez l'initialiser,
hum, hum, une
manière ou d'une autre. Et donc, euh, donc ce que je recommanderais en fait, c'est, plutôt que d'utiliser l'option implicitement non enveloppée comme alors pourquoi ne l'
initialisez-vous pas comme une initialisation par défaut comme ? Donc, cela permettra d'éviter que votre programme ne se bloque d'une autre façon de le faire. Ok, si vous ne voulez pas initialiser, c'est, vous pourriez dire, Ok, vous pourriez dire, Ah, faisons ça ici. Rendons ça privé et
on va changer le nom. Je mets juste un trait de soulignement ne veut rien dire. C' est juste le nom. Et puis ce que je peux dio, c'est Aiken dire, ah, lointain âge de type int, et je peux en fait, euh, initialiser dans un getter. Donc ce que je vais faire, c'est que je vais dire si l'âge est égal à Neil que l'âge est égal à zéro, vous pouvez définir une valeur par défaut, et ensuite nous pouvons retourner l'âge, donc c'est vraiment intéressant. Donc ce que nous faisons ici, c'est que je me débarrasse de cette fonction ici. Hum, on y va. , Ce que nous pouvons faire ici,c'est rendre privé variable, celui qui a le point d'exclamation dessus. Et personne d'autre ne peut y accéder parce que c'est privé. Mais ce que nous faisons, c'est que nous créons une obtenir. C' est ce qu'on appelle masquage de données. Ok, on crée un getter, et ce qu'il fait, c'est quand je lui dis de la chercher, c'est en rapide. C' est ce qu'on appelle une propriété calculée. Nous créons une propriété calculée, et ce que nous allons faire est que nous lui donnerons une valeur par défaut. Donc, si l'âge, si cette variable est Neil. Ok, allons de l'avant et donnons-lui une valeur par défaut de zéro âge est maintenant égale à zéro, puis retournons l' âge et zéro Lame. Donnons-le, genre, 15 K Donc c'est vraiment intéressant. Donc je viens de créer une nouvelle personne, non ? Et ah, en ce moment, l'âge n'est rien. C' est Neil, non ? Donc, euh, en fait, si j'enlève le vrai privé rapidement juste pour que vous puissiez voir si je fais ça si je dis imprimer Jack dot underscore age age age Ok, c'est nul. Intéressant. Mais que se passe-t-il si j'imprime l'âge de point de Jack sans le soulignement 15 ? Tu es genre, quoi ? Parlons de ce qui s'est encore passé. Nous avons donc créé cette variable ici, et elle devrait être privée. Je vous montre juste pour des démonstrations que ce n'est pas donc c'est une réunion privée. Seul ma personne de classe peut y accéder. Et ce que nous disons, c'est celui auquel tout le monde peut accéder s'appelle l'âge. C' est une propriété informatique, et ce qu'il va faire, c'est exécuter ce code. Si ça vieillit Neil, mettons-le à un âge par défaut, et puis eh bien, alors nous allons aller de l'avant et le retourner. Alors quoi ? Vous pouvez dio si vous avez, Vous savez donc plutôt que d'accéder directement à ces et de les vérifier dans d'autres classes, vous pouvez créer des propriétés comme celle-ci ici, cette propriété de l'ordinateur, vous pouvez faire la vérification et puis vous pouvez rendre et la valeur initialisée. Donc c'est une autre chose que vous pouvez faire juste être vraiment prudent à l'utilisation de ceux-ci. Je le ferais si vous allez les utiliser, j'aurais certainement un type de propriété informatique ah qui initialise c'est ou
si vous ne savez pas s'il va y avoir de la valeur dedans. Donc, c'est encore une fois. Donc c'est ce que tu dis. Vous dites que je vous garantis une valeur,
donc vous devez avoir une valeur quoi que ce soit, vous feriez mieux de la gérer si vous mettez le point d'exclamation là parce que vous garantissez une valeur. Si vous ne voulez pas garantir la valeur, utilisez un point d'interrogation car alors la classe externe tolère si let et voir si elle a une valeur dedans. Donc, hum, choses
très importantes à savoir. Ok, si vous êtes confus, regardez encore cette vidéo. C' est si important, et nous allons le faire beaucoup. Je le fais tout le temps dans toutes nos applications. Donc, je vous enseigne la meilleure pratique beaucoup de ces autres cours. Ils vont juste mettre des points d'exclamation en face. Tout ce qu'ils disent, ne vous inquiétez pas, ça va marcher et ça marche dans ce cas. Mais quand tu vas construire ton propre programme, ça te plante comme si je ne sais pas quoi faire alors sois reconnaissant que tu apprennes ça. C' est un peu compliqué, mais tu vas le faire tomber. On a un chien ? D' accord ? Et il a une propriété appelée Espèce. Maintenant, son Ici est quelque chose d'intéressant. Et si je ne veux pas utiliser un point d'interrogation ou un garçon d'exclamation ? Je voulais juste avoir une valeur, mais je ne veux pas dire que les espèces par défaut sont égales au carlin. Ne fais pas ça parce que ce stupide que ça ne va pas s'appliquer à tout le monde, pas vrai ? Donc, ce que je veux dio, c'est que je veux dire que l'espèce est de type string et ensuite nous m'utiliserions dans le constructeur. C' est notre constructeur K. Vous passez dans les espèces que vous voulez et ce que vous pouvez dio comme vous pouvez l'initialiser dans votre instructeur, votre constructeur. Donc voici quelque chose d'intéressant. Il n'y a pas de point d'exclamation et il n'a pas de point d'interrogation. Ce que nous disons ici, c'est que non seulement nous garantissons qu'elle aura de la
valeur, mais qu'elle aura une valeur juste quand on sera chargé. Donc, sur une première Isar. Ok, Si vous initialisez l'ensemble de votre propriété, avez-vous initialisé les propriétés ? Et dans un er d'initialisation dans un constructeur ici, cela s'appelle un constructeur. Si vous initialisez vos propriétés dans un constructeur, il n'a pas besoin d'avoir le point d'interrogation ou le point d'exclamation. Et si c'est déroutant tout
ça, regardez comment ça marche. Donc si je sauve notre, hum, nous appellerons ce labo égal chien et remarquerons comment il veut l'espèce. Donc j'ai mis au labo noir parce qu'ils sont beaucoup plus cool que les autres labos. Euh, et maintenant si je mets ça là et puis j'imprime des espèces de points de laboratoire, ça va imprimer le labo noir parce que ce qui s'est passé était juste quand on a créé l'objet, on initialise qu'on appelle le constructeur et on initialise l'espèce. ici. Donc, c'est un cas où vous n'avez pas besoin d'avoir un point d'exclamation ou un point d'interrogation est lorsque vous initialisez des choses dans le constructeur. Hum, donc c'est vraiment cool. C' est vraiment, vraiment cool. Donc, euh, c'est une sorte d'options juste ici. Ce sont des options facultatives et implicitement déballées d'Osh. Les leçons que je veux que tu retiennes de ça sont,
euh, euh, toi en tant que programmeur. Si vous ne savez pas où cela s'il y aura une valeur ou non, si vous ne le savez pas et ne pouvez pas le garantir, utilisez un point d'interrogation. Ok, en utilisant optionnel. Si vous garantissez
absolument que vos valeurs auront un, euh ou vos variables auront une valeur dedans. Mais peut-être que vous n'êtes pas prêt à le donner à l'utilisateur, ou peut-être qu'ils obtiendront plus tard dans le temps. Mais vous garantissez qu'il utilisera le point d'exclamation. Mais avec la mise en garde que si vous utilisez le point d'exclamation, vous feriez mieux de vous assurer que vous avez un code de sécurité comme celui-ci. Ce getter ici, cette propriété de l'ordinateur, vous feriez mieux de vous assurer que vous avez un code de sécurité pour l'initialiser. Parce que si tu ne le fais pas, quelqu'un va y accéder et ton programme va s'écraser. OK, au moins l'option vous indique d'utiliser. Et si tu le dis, tu ne le sais même pas. Vous ne savez pas si vous devriez le laisser ou non. Vous ne savez pas si c'est initialisé, donc c'est à vous en tant que programmeur de vous assurer que cela a une valeur quand quelqu'un veut l'utiliser. Ok, nous avons aussi appris qu'il n'a pas besoin d'une exclamation ou d'un point interrogation et optionnel ou implicitement déballé facultatif. Si vous l'initialisez dans le constructeur parce que cela dit juste au moment de l'exécution quand il est créé pour la
première fois, il aura une valeur dedans. Nous avons aussi appris que vous le pouvez. Vous pouvez utiliser le point d'interrogation sur les options pour effectuer les commandes régulières, comme si c'était une chose régulière comme cette main d'arrêt de voiture,
hum, hum, ou les voitures qui comptent les points d'interrogation dessus disent essentiellement, Hey, Si ce n'est pas Neil, allez-y et lancez-le. Mais si c'est Neil, on ne va rien faire et c'est normal d'utiliser ça pour aller de l'avant et essayer de faire des choses , mais tu es seulement que tu vas probablement les faire quand tu te soucies qu'ils travaillent ou non , parce que, hum, cela peut ou peut ne pas fonctionner et ah, si vous vous souciez de ce qui se passe s'il y a une valeur que le faire autrement,
alors ce que vous avez besoin de dio est d'utiliser le if,
nous allons en impôt comme si Ok, donc si vous vous souciez de ce qui va se passer, si vous le laissez si vous ne vous en souciez pas si cela fonctionne ou non, vous pouvez utiliser le modèle de point d'interrogation juste là. Donc, ce sont des options. C' est des options de déballage. Vous avez vu le programme s'écraser. Tu dois être un codeur sûr, et on va l'utiliser tout au long du cours, donc si tu ne le comprends pas,
c' est bon. Mais regardez cette vidéo encore et encore. Et quand tu suivras les cours, tu seras vraiment bon à ça, et je vais seulement t'apprendre la bonne chose. Je ne vais pas elle et faire des choses pour battre le système. Tu vas voir Riel World enduit. Donc, ils sont très, très importants encore une fois. S' il y a autre chose, je suis stressé à propos de ce cours car vous devenez programmeur, et avec ce langage de programmation, ce sont des options. Devenez un maître de cela et vous aurez une application qui n'a pas de plantage. Donc Mark Price ici ordinateurs de bureau dot com déconnexion. C' est bien de travailler avec toi. Faisons-le encore un jour
40. Introduction à l'application iOS 9: tout le monde est à nouveau en selle. Mark Price ici avec Deb stop dot com Nous allons rapidement parler de l'application que nous
allons construire aujourd'hui. Cette application est une application plus petite, et fondamentalement, vous allez apprendre les principes des classes. Ok, une programmation orientée objet. Donc, les icônes visuelles assez cool ici et tout ce jazz que nous avons mis sur ce c'était juste pour le plaisir Le vrai travail se passe en réalité sous les scènes. . Je ne voulais pas faire une sieste. C' était ennuyeux. Je ne faisais rien d'autre que l'impression à l'écran. Oh, toute
façon, je ne supporte pas ça. Donc tout ce qu'il fait ici, c'est que vous cliquez sur l'attaque. OK, ça enlève ses points de succès ici et ah, le sorcier du diable va mourir. Il meurt, vous pouvez ramasser le trésor et ça vous donne un butin aléatoire. Et puis un autre méchant apparaît. Cette fois, c'est une Kimera sauvage. C' est randomisé. Il est sur HP. Il n'attaque pas le dos ou quoi que ce soit comme ça. C' est vraiment simple. Mais sous le capot, c'est là qu'on va vraiment commencer à expérimenter et à explorer. C' est des choses fondamentales. Vous devez construire ce passer par cette application ici et alors allons-y et commençons. Ça va être amusant. Et en passant, après cette affectation, j'ai un exercice vraiment cool qui vous permet de développer et de faire des choses comme ajouter des
effets sonores et vraiment le prendre à la limite ici. Si vous voulez continuer avec cette idée. Donc, ces graphiques ici sont fournis par cartoon smart dot com. Où j'ai les autres graphiques ont montré sur les vidéos précédentes. Vous devrez acheter ces graphiques si vous voulez l'utiliser commercialement. Ok, vous pourriez l'utiliser pour le tutoriel parce que je les achète, mais vous voulez l'utiliser et faire vos propres siestes sur l'après. Allez-y et achetez ces graphiques de partenaire mark dot com. Allons-y et commençons. Voyez-le dans le code.
41. Application iOS 9 : créer une appli simple avec OOP: Hé, tout le monde. Mark Price ici avec Deb pentes dot com Heureux de voir à nouveau porter va plonger droit dans et construire un simple objet orienté programmation RPG. Et je vais aller de l'avant et ouvrir mon ex code. Cliquez dessus là-bas et je vais déposer un nouveau projet. Ok, je vais le mettre ici pour que vous puissiez le voir. Parfait. Donc je suis allé Teoh fichier Nouveau projet. Ok, application de vue
unique est très bien. Et comment devrions-nous appeler ça ? Que diriez-vous de r p g o p. Est un groupe ? l'air bon pour moi et les appareils universels. C' est très bien. Il est clic suivant et je vais juste l'enregistrer sur leur arrêt. Impressionnant. Ok, donc quelques choses sont que ça va être une application paysage seulement. Alors allons-y et faisons-le. Et bien sûr, comme vous le savez, on va d'abord faire les trucs amusants, sortir tous les trucs amusants du chemin, faire des graphiques et des trucs. Et la raison pour laquelle ah, nous faisons quelques effets visuels ici, c'est parce que les APS sont tellement plus amusants quand ils sont visuels. Bon, beaucoup de cours et les gens aiment enseigner sur les tableaux noirs et sur les consoles. Et tu vois Wide et Black Tex et tu me tire dessus maintenant, on va faire des trucs vraiment cool. Donc nous avons notre contrôleur de vue ici, et ah, nous savons que nous soutenons le paysage. Seulement, Seulement, mais ça ne devrait pas avoir d'importance. Ici. Je vais aller de l'avant et trouver l'art pour le projet ici. Je vais le remonter une seconde. On y va. Ces œuvres d'art ici. Je suis allé de l'avant et ah, re pris en compte et changer certaines choses autour. C' est du paquet intelligent de dessins animés dont nous avons parlé auparavant. Si vous voulez vendre cette application ou l'utiliser commercialement ou publié quelque chose que vous
allez vouloir acheter ce. Ah, cet art emballé. Mais vous pouvez l'utiliser pour ce tutoriel très bien ou pour vos propres fins d'apprentissage. Ok, donc on a tout cet art. Je vais juste mettre en évidence tout ça. Tout sauf le fichier Photoshopped. Eh bien, vous n'avez pas besoin de vous et cliquez sur le dossier Assets, et je vais juste cliquer et faire glisser dessus. Ok, Alors rappelez-vous l'idée derrière cette application est que vous avez un personnage sur le personnage gauche sur la droite, et vraiment le seul personnage gauche, qui est vous le joueur vous attaque. Cliquez sur le bouton d'attaque et il enlève la vie au personnage. Quand sa vie est partie, il meurt, vous pouvez cliquer sur un coffre au trésor et il est rempli de butin et le processus se répète. Et le but de cela est de vraiment commencer à descendre la programmation orientée objet. Donc on va construire des cours n'allaient pas faire tout ça dans le
contrôleur de vue , pas tout. On va utiliser les classes comme elles devraient être utilisées. Et je trouve que les jeux sont en fait l'une des meilleures façons d'apprendre à programmer parce que les choses étaient très orientées objet que vous pouvez penser en termes d'objets une boîte, un ennemi, un joueur, très, très objets. Donc si ça a du sens, alors allons-y et plongons ici. Pensons qu'on a besoin d'une classe de joueurs et qu'on a aussi besoin d'une classe d'ennemis. Ok, on a des joueurs et des ennemis. La question qui se pose est donc il
y a des traits ou attributs d'un ennemi ou d'un joueur qui devraient être partagés ? Peut-être dans une classe de parents ? Eh bien, attaque
de santé, pouvoir. Il y a probablement quelques choses eso que je pense que nous devons créer une classe parent, alors allons-y et faisons-le. Cliquez sur votre dossier ici et faites un clic droit et accédez au nouveau fichier. Ou vous pouvez cliquer sur votre dossier et aller ici et aller au fichier nouveau fichier fichier fichier nouveau fichier et je vais Cliquez sur source et cliquez sur fichier Swift. Et on va appeler ce personnage. D' accord ? Nous ne savons pas si c'est un ennemi ou pour deux joueurs, mais c'est un personnage, et créer une classe est un simple personnage de classe, pas grand-chose. Et allons de l'avant et créons quelques variables. Donc on sait qu'on a parlé qu'ils vont avoir besoin de points de santé, non ? Si privé, le type HP
loin, et nous allons juste par défaut à 100. Et si vous avez oublié pourquoi nous utilisons le mot-clé private, c'est parce que nous voulons employer un bon comportement de développeur, qui est appelé masquage de données ou encapsulation de données, et nous ne voulons pas simplement exposer quoi que ce soit si d'autres classes et les choses peuvent le gâcher. Nous voulons protéger soigneusement nos données, et nous allons concevoir des fonctions sont des propriétés calculées pour nous donner exactement ce que nous
recherchons . Donc attaque, puissance et la raison pour laquelle je mets les traits de soulignement, c'est parce que nous allons le faire exactement. Nous allons créer ces propriétés calculées qui font ce que nous voulons faire. Donc, par
exemple, la puissance d'
attaque. Personne d'autre ne devrait être en mesure de modifier cela. Eso, je vais sauver notre puissance d'attaque et d'accord, c'est une propriété calculée, et nous allons juste retourner la puissance d'attaque. Donc, chaque fois que quelqu'un appelle, ça va juste retourner la puissance d'attaque. Nous aurions également pu dire que cela avait été fait de cette façon. Allez, alors. On aurait pu dire l'attaque de retour, le pouvoir. C' était un raccourci, cependant. Donc, euh si bien. Il y a la puissance d'attaque et ceux vont dans hp var hp de type int et nous allons faire la même chose dira retour hp. Donc, si vous accédez directement à la propriété, tout ce que vous pouvez faire est de l'obtenir. Vous ne pouvez pas modifier. Il s'en occupera nous-mêmes. Donc, nous avons HP. On a attaqué le pouvoir. Il aurait probablement besoin de quelques premières méthodes Isar. Donc, disons dedans et donnons à l'utilisateur qui est vous le programmeur, La capacité Teoh définir ce hp de départ. Alors faisons-le là. Et donnons à l'utilisateur la possibilité de définir la puissance d'attaque de sorte que peut être changé Si vous le
passez à travers initialize er et ainsi dira self dot h p égal à démarrage hp et self point Underscore puissance d'attaque, soi-même soulignement La puissance d'attaque équivaut à nouveau à la puissance d'attaque. Rappelez-vous, self fait référence à la version globale et cela fait référence à la version locale de la portée
locale. OK, donc vous pouvez initialiser la puissance d'attaque par défaut. C' est génial. Qu' est-ce qui peut arriver d'autre ? , Quelqu' un peut attaquer un personnage,qu'il soit ennemi ou joueur. Et si cela se produit, la santé devrait diminuer afin que nous puissions construire une fonction pour cela. On sait que ça va être partagé Tentative, Attaque. Et on va l'appeler puissance d'attaque, où l'attaquant passera dans le pouvoir qu'il pousse ici. Et, ah, je vais dire intimidation que nous allons revenir parce que nous ne savons pas si l'
attaque de l'utilisateur va réussir. Comme ce qui se passe s'il y a une immunité ou, vous savez, si vous attaquez une créature rocheuse avec la foudre, cela peut fonctionner ou non. Nous n'avons pas écrit de code pour tout ça,
mais, euh, le réseau
principal May. Donc, quand nous retournons un booléen s'il a réussi. Et dans ce cas de au niveau parent, classe
parent, je retournerai toujours vrai. D' accord. Et, euh, quoi d'autre ? Quoi ? On devrait pouvoir vérifier si les personnages sont vivants. D' accord. On doit savoir s'il est mort ou pas. Eh bien, comment on fait ça ? Eh bien, si HP est inférieur ou égal à zéro, nous savons qu'il est mort. Alors pourquoi ne pas dire si h p est égal à zéro ? Et bien, que se passerait-il si une attaque prenait plus de, ah la vie que la personne n'avait, et qu'elle descendait même en dessous ? Nous devons rendre compte de ça. Alors faisons une propriété calculée, accord ? Ça va s'appeler la vie. Rappelez-vous les propriétés de l'ordinateur ou simplement les propriétés qui ont un calcul avant renvoyer ou de définir une valeur. Donc on va dire « aller bien ». Et, euh, donc ça va retourner un booléen. Et si HP est inférieur ou égal à zéro retour false. Là. Le personnage n'est pas une vie autrement retour. C' est vrai, parce que le personnage est une vie. Et donc, encore une fois, c'est une propriété informatique. Par conséquent, sera en mesure de dire, vous savez, point de
caractère est vivant et il effectuera ce calcul et nous retournera la valeur appropriée . Ça a l'air très bien. Donc nous avons une classe de personnages et passons à la classe de joueur, dont nous savons qu'il nous faudra parce que vous êtes le joueur. Et, euh, nous devons définir ce que le joueur peut faire. Donc le joueur point Swift et, ah, la même chose exacte ici va dire, joueur de
classe, I
minuscule et, euh, quoi d'autre ? Alors questionnez un joueur, n'est-ce pas ? C' est vraiment cool. C' est tout ce à quoi tu dois penser en termes d'objets. Comme, littéralement, quel est le compte bancaire ? Faites ce qui est un cardio. Et puis vous commencez à construire les propriétés et les fonctions des attributs en action
comme chez un être humain. Attributs peut-être les yeux, la
taille , le
poids ,
la peau ton, le
funk sur les fonctions des méthodes serait Ah, courir, marcher, sauter, malédiction. Tu sais, tout ce que tu veux, donc des attributs. Et donc les joueurs devraient avoir un nom. Droit ? , Tu sais,
quand tu chargeras un jeu comme un fantasme final ou quelque chose qui dit, Hey, quel est ton nom ? Oh, courageux guerrier. Et, euh, par défaut, ça va appeler le joueur a du sens dans le nom de la barre va être une propriété informatique. Bien sûr. Pourquoi ? Parce que nous ne manipulerons pas directement les données importantes. On va s'assurer que notre classe s'occupe de ça. Donc on va aller de l'avant et retourner le nom. D' accord. Ça pour le Texas nous garde en sécurité. Une bonne programmation, euh, logique là-bas. Et ah, le joueur devrait aussi avoir un inventaire. Un ennemi n'a probablement pas d'inventaire, mais un joueur le fait. Choses que vous avez collectées en cours de route Commencez à voir la valeur de la
programmation orientée objet et de l'héritage ? Nous héritons de choses qui sont une plaque applicable à tout. Mais nous ajoutons des choses spécifiques à cette classe. Et c'est important parce que nous ne voulons pas dupliquer le code encore et encore dans chaque classe. Vous savez, nous voulons que notre code soit bien écrit et testé et nous ne nous assurons pas qu'il ne soit pas cassé. Et plus vous devez écrire de code, voici un principe important. Plus vous avez de code, plus il y
a de possibilités de bugs et d'erreurs. Et c'est pourquoi le principe sec ne pas se répéter est si important. Et comme c'est privé aussi, c'est Ah, c'est une liste, non ? Un tableau. On va faire une, euh, une propriété informatique pour ça ensemble. Aussi connu sous le nom d'un accès, ou encore accessoires et muter,
euh, mais obtenir elle est beaucoup plus facile. Inventent Ory, et ça va être de type string. Donc un tableau de type chaîne, et il va juste retourner l'inventaire. Donc pas trop mal. Sauf que je l'ai mal orthographié. On y va. Et ah, encore
une chose. Nous avons besoin d'un initialisé maintenant. Nous pourrions déjà utiliser les parents initialiser er er, mais je pense qu'un joueur je devrais avoir la possibilité d'avoir leur nom entré afin que nous puissions dire commodité en elle. Et on va passer le nom,
ok, ok, les classes apparentes et avoir un champ de nom. Mais celui-ci passe dans le HP et la puissance d'attaque, tout comme dans la classe parent. Ok, donc on va toujours capturer ces données. Et puis ce qu'on va faire, c'est dire, euh, on va juste dire point dedans, et on va juste appeler Ce n'est pas la fin automatique pour moi. Je pense que c'est peut-être une chose rapide, mais je dois avoir du caractère. C' est ce que nous voulons. Juste ici, non ? donc je vais juste copier ça. Ce n'est pas la fin automatique. Me désobéir. Eso Allons et supprimez ce passé ici et au lieu de
dire et dira , euh, HP parce qu'on va attraper ce HP et ici on va dire puissance d'attaque, puissance attaque parce qu'on va Prenez cette puissance d'attaque ici. Donc nous allons le transmettre, et la dernière chose que nous devons faire est juste d'attribuer les noms,
donc le nom est égal au nom, ce qui signifie que ce nom ici est égal à ce nom juste ici. Ok, donc ça nous donne un air. Attends. Peut-être que j'ai fait quelque chose de vilain. Impossible d'invoquer un point de joueur avec cette liste d'arguments de celui-ci. On dirait que mes arguments peuvent être incorrects. Allons-y et jetons un coup d'oeil ici. Puissance d'attaque. C' est la puissance d'attaque. Ça m'a l'air plutôt bien. Je ne sais pas de quoi il s'agit. Revérifions encore une fois. Donc, démarrer la puissance d'attaque HP. Hum, ça me semble bien, pour être honnête. Laisse-moi, euh laisse-moi juste le sauver et le construire et voir si ça me donne encore là-dedans. Maintenant, il me donne toujours un héritier. Voyons ce qui se passe. Kenna a invoqué le point de joueur dedans avec une liste d'arguments de Donnez-moi tous les détails ici. On y va. Démarrage HP et int et ah, attaque ! Puissance de type et d'attaque. Attaque de puissance là-bas. Ça devrait être bien Se passait ici partiel, partiellement listé paramètre dit,
euh ok, euh ok, je pense que je sais ce qu'on a fait de mal. Donc on a oublié d'hériter du caractère
du cœur. C' est pour ça que je trouve que je ne trouve pas le ah, ces initiales Isar ici. Allons de l'avant et reconstruisons ça. Allez,
bébé, bébé, débarrasse-toi de ce rouge et il est en train de construire et ça a l'air bien. Donc ce que nous avons fait ici a été recréé une commodité initialiser er er ce qui signifie Hey, ajoutons juste un champ supplémentaire ici et il va appeler l'autre Isar initial, ce qui est nécessaire. Ok, et puis définissons le nom si pratique. lasers initiaux sont parfaits pour les sous-classes lorsque vous voulez ajouter des champs qui ne sont pas nécessairement dans la classe parent. Mais vous pouvez toujours appeler la classe parent et transmettre les données importantes dont elle a besoin. Donc, nous avons maintenant une classe de joueurs. Il a un inventaire. Lui ou elle, et ça a l'air bien. Maintenant, nous devons faire un ennemi. Allons au dossier. Vous avez raison ? Cliquez sur le fichier dans le dossier et cliquez sur Nouveau fichier et je vais faire un fichier swift. D' accord. Et allons de l'avant et appelons cet ennemi et pas moi cliquez sur créer et faisons la même chose ici. Classe, ennemi Et qu'est-ce qui devrait aller dans un ennemi ? Quoi ? Qu' est-ce qui est différent de l'ennemi ? Eh bien, euh, et l'ennemi peut en fait avoir du butin. Donc, vous savez, quand vous tuez un ennemi et qu'il tombe, vous savez, comme, euh, calmars je emprisonne, vous savez, vous
donne, genre, trois d'entre eux pour une raison quelconque, même s'il avait un œil n'a pas de sens que les RPG et eso font du butin jusqu'à présent, butin de type string. D' accord. Et c'est une, euh, propriété
calculée, et nous allons juste y aller et revenir. Rouillé, poignard
rouillé. Quoi d'autre serait comme un butin par défaut ? Bouclier
fissuré. Correct, Buckler. On y va. C' est ce qui sort habituellement des gars de bas niveau. Donc c'est notre dilué qui va revenir. Et, hum, voyons ici. Oh, un ennemi peut probablement avoir un type comme Quel genre d'ennemi suis-je ? Comme un nom comme Camara ou, tu sais, un roi lézard maléfique. Donc je vais sauver notre chaîne de type, et nous pouvons juste la mettre dans une valeur par défaut pour l'instant parce que je pense que ce que nous allons faire est nous allons avoir des sous-classes ennemies qui remplacent ces choses et les asseoir à valeurs
différentes. Donc on a un type et ce qu'on va appeler ça, on l'appellera, hum, grognement. Tu sais, c'est générique. Ces gars étaient faciles à tuer. C' est la valeur par défaut. Et, euh ok, alors réfléchissons à ça une seconde. Quand un ennemi meurt dans notre jeu, au moins il pourra déposer du butin. Ok, alors faisons-le. Faisons une fonction appelée drop looped. D' accord. Et, euh, ça va retourner le nom du butin. Et, euh, quand devrions-nous laisser tomber le butin ? Eh bien, sur Lee, si l'ennemi est mort, ce n'est
que gagner. Donc, sinon, c'est beaucoup. Um Oh, d'accord. Un autre problème. Je veux dire, il a hérité de caractère. Qu' est-ce que je pense ? On y va. Donc maintenant, si nous disons sinon, est un coup d'oeil en direct à cela. Nous appelons les classes de parents est une propriété de vie. Donc s'il n'est pas en vie, accord
, allons-y et laissons tomber un butin au hasard. Donc l'Iran va égaler, et on va dire arc pour uniforme aléatoire, et on va dire, hum, laissez-moi juste écrire ceci ici, vous finissez. Allez. Vous en 32. C' est le type dont il a besoin. Automatique terminée. Vous me tuez. On y va. Et c'était un nombre de points de luth. D' accord. Et, euh, fermez ça. Fermera ça. Parlons de ce qui se passe ici. Vous êtes probablement, comme Way. Qu' est-ce qui se passait ? J' ai vu le hasard, mais quoi d'autre ? Ok, vous
aussi pour un uniforme aléatoire. Il nécessite que vous avez passé un vous dans 32. Ok, eh bien, le nombre de nos éléments de tableau ok, est-ce qu'il nous renvoie un entier qui dot count propriété. Alors quoi ? Je suis tout ce que je fais, c'est que je dis, Hey, je veux faire un nombre aléatoire entre zéro et la longueur de ce tableau pour qu'on puisse en extraire des éléments
aléatoires. Et donc, euh, cela renvoie un entier, donc je dois d'abord le convertir en U N 32. Alors c'est ce que c'est. C' est le casting ont jeté un entier dans un vous dans 32. Très bien, nous le jetons dans un entier ou excusez-moi dans un int U, et puis nous obtenons le nombre aléatoire. Mais bien sûr, ce nombre aléatoire nous renvoie un u N 32 et,
euh, euh, on veut juste qu'on veuille juste un indigène. Donc, nous le jetons en un entier pour que nous puissions l'utiliser à nouveau. Tu vas faire beaucoup de casting, en
gros, gros, suffit de penser à ça comme ça. Lorsque le swift nécessite un certain type de données, vous devrez peut-être canaliser votre type de données existant dans ce type de données, qu' il
s'agisse d'un double à un ent ou d'un double. Tu fais peut-être ça qui s'appelle le casting, et on va retourner le butin. Donc ce qu'il va faire, c'est qu'il va prendre n'importe quel numéro. C' est dans ce cas, serait entre zéro et un. Il va prendre un butin zéro ou un pour que cet objet soit hors de lui et il retournera cette ficelle s'ils sont vivants. Sinon, ok, sinon, ne
rendons rien. Revenons Neil. Et si je veux retourner Neil, je dois poser un point d'interrogation à la fin de cette réunion. Hey, cette fonction pourrait retourner quelque chose, mais ce n'est peut-être pas le cas. Et ça garde nos manteaux en sécurité. Ça nous empêche de faire des choses vilaines, comme faire du butin à chaque fois. Ce serait un hack. Et on ne va pas faire ça. On va être un joueur loyal. Donc nous avons un ennemi, et ce que je veux aussi faire est de créer deux sous-types d'ennemis. Hum, et c'est vraiment juste pour démontrer les points d'héritage de la
programmation orientée objet . Alors créons un nouvel ennemi et,
euh, euh, allons de l'avant et créons. J' ai cliqué. J' ai fait un clic droit sur ceci. J' ai fait un nouveau dossier. Je suis allé au fichier source et rapide. Appelons ça Kim Mara. D' accord. On dirait un nom d'ennemi cool. Et, euh, pour les fans de fantaisie, tu aimes probablement, oui, je connais cette référence. Et si tu ne le fais pas, c'est bon. C' est un ennemi obscur, et ça a l'air cool. Et il va hériter de l'ennemi. Ok, donc l'ennemi hérite du caractère et de la clé. Mara hérite d'un ennemi saviez-vous que vous pourriez continuer à hériter autant que vous voulez. C' est plutôt cool. Tu pourrais aller aussi loin dans le trou du lapin que tu veux. C' est donc un personnage intéressant. Donc, dans son cas, accord, ce qui va se passer, c'est qu'il a une immunité signifiant toute attaque
qui arrive, c'est, euh, moins de 15 ans ou moins. Il ne lui fera aucun dommage. Et pas seulement ça, ça en ajoutera une à sa vie. Vous devez donc vous assurer d'attaquer cette Camara avec un personnage très puissant. Donc ce que je vais faire, c'est du crédit. Estimation constante appelée immunitaire Max. qui veut dire que
si c'est sous cette immunité, ne fais rien. Si c'est fini, alors on fera les dégâts, OK ? Et la Camara ? C' est un ennemi plus dur. Le truc ennemi par défaut comme Rusty dague et Buckler fissuré. Ce n'est pas très bon butin. Mais quand tu tues une Camara, il va laisser tomber beaucoup mieux. Alors, que devrions-nous faire ? Eh bien, assez
facile. Plutôt que de réécrire du code, nous pouvons réellement remplacer la propriété informatique du butin de notre classe apparente. Donc, nous sommes maintenant en train de surpasser cela, ce qui signifie que chaque fois que le salut de Camara est accessible, il ne donnera pas ce genre de choses. Donc, quand cette fonction est appelée, même si cette fonction est écrite sur l'ennemi même si cette fonction est écrite sur l' ennemi, chaque fois que vous appelez ceci quand j'appelle Camarda drop butin, il ne va pas retourner cette butin. Ça va rendre ce butin. Et cela, mes amis, c'est que le polymorphisme est capable d'utiliser, euh, fonctions
définies de différentes manières et être capable d'avoir une classe parent qui définit ces fonctions trucs très cool. Donc, dans ce cas, nous allons retourner Tough hide. Euh, Qué Mara venin très bon pour tremper vos lances dans et un trident rare, Vous savez, l'
un de ces rares qui scintillent et or et vous pourriez le vendre pour beaucoup d'argent. Donc nous avons un butin différent que demain va faire. Et, euh, je vais aller de l'avant et remplacer aussi le genre. On va lui donner un nom,
et, euh, euh, on l'appellera une clé Mara. De cette façon, chaque fois qu'on attrape le type à imprimer à l'écran, , ça va nous donner la propriété. Donc, nous avons dépassé le grognement par défaut, et il est maintenant Camara très cool Maintenant, puisque nous avons ce code spécial ici. Chaque fois que vous êtes attaqué, il doit être plus de 15 ans. Nous devons probablement remplacer notre tentative attaquée, tentative, attaque code et écrire une logique différente. Alors remplacez la tentative funk, l'attaque. Ok, maintenant pense à ça. Quoi ? Vous savez, dehors de la logique, nous allons dominer le dysfonctionnement, qui veut dire que sur le personnage, ça ne sera jamais appelé juste, donc il ne perdra jamais HP. Alors, comment résoudre ça ? Voulons-nous vraiment réécrire ce code ? Et si c'était 50 lignes de code ? Nous voulons réécrire tout cela et potentiellement avoir des bogues. Et il y a la réponse, mon ami est non, nous ne le faisons pas. Ce que nous pouvons dio, c'est votre logique. Si la puissance d'attaque est supérieure ou égale à Max immunitaire, alors ce que nous ferons est de retourner l'attaque Super tentative. Donc on va appeler la fonction parent qui passe la puissance d'attaque. Donc on va appeler la fonction parent juste ici. Ce gars juste là. Donc on va appeler ça ? Saviez-vous que vous pouvez appeler une fonction parent afin que vous puissiez le remplacer pour qu'il le prenne, il est appelé d'abord, puis vous pouvez l'appeler vous-même, qui est ce que nous faisons ici. Donc nous allons appeler, et si vous êtes attaqué, dégâts sont supérieurs à 15. Juste en cours d'exécution aussi normal que celui comportemental par défaut. Et nous n'avons pas à réécrire un manteau autrement retourné. Faux signifiant que l'attaque n'a pas réussi. Ok, donc nous retournons la classe des parents ici. Sinon, nous rendons celui-ci ici. Tellement cool. On a déjoué l'attaque de tentative. On a un ennemi, et je pense qu'on doit faire un ennemi de plus, et Ah, et ensuite on pourra commencer à écrire la logique du jeu. Donc je vais remonter ici,
le nouveau fichier, le nouveau
fichier et aller au fichier source swift. Et appelons ce sorcier du diable. D' accord. J' aime ça. Ça a l'air plutôt cool. Diable de classe. Wizard Wicks a commis une erreur de type ennemi. Ok, j'aime ça. J' aime bien que nous allions avec ça, et il ne va pas faire trop différemment sauf avoir son propre butin que nous voulons contourner. Donc je vais dire barre de remplacement, peut-être son nom pour remplacer notre butin de chaîne de type. On y va. D' accord. Et ça a l'air bien jusqu'à présent et nous rendons un butin unique. Un sorcier
du diable, bien sûr, aurait une baguette magique et une sombre annuelle parce que c'est un sorcier du diable. Et, euh, porc
salé. Les sorciers du diable doivent manger. Hum, donc ouais, et puis, euh, remplacer la chaîne de type var et, euh, ce retour, sorcier du
diable, c'est le type de son nom est le sorcier du diable. Ok, cool. Donc ce que nous avons fait, c'est que nous avons défini le modèle pour notre classe, et maintenant vous vous demandez probablement Hey, attendez une minute. Tu n'as pas dit qu'on allait faire les trucs amusants d'abord ? Oui, j'ai oublié. On a fait le code à la place. Mais c'est bon. On trouve juste le modèle. Et en fait, parfois je crée le modèle d'abord. En fait, parfois avant même de créer une application, je me dis, quelles données vais-je avoir besoin ? Et je dessine les cours dans les petits carrés sur un morceau de papier. Quel genre de fonctionnalités, de propriétés, de fonctions et de propriétés ils vont avoir. Donc ah, façon
très courante de concevoir votre programme est de commencer avec les données. Bien sûr, tu pourrais faire les trucs amusants à faire. Tu sais à quoi ça va ressembler ? Donc, je suis allé de l'avant et cliquez sur le storyboard principal ici. Faisons les trucs amusants maintenant, si c'est bon si tu n'es pas trop offensé, on va y aller et bouger ça. Vous probablement rapide sorte de la vidéo et l'a déjà fait. Ah, on a cette toile vierge cool. Alors allons de l'avant et jetons sur un fond. Ce qui, bien
sûr, dans notre cas, va être une vue d'image. Je tape en bas à droite ici dans notre objet, notre objet. Qu' est-ce qu'il s'appelle bibliothèque d'objets. Et allons-y et étirons ce plein écran et je vais le faire aller au sommet , enlever les marges parce que nous voulons restreindre à tous les côtés. Donc, il s'étire et l'image et le C'est la classe. On va cliquer sur ce type ici et on changera l'image pour devenir G. et ça a l'air sympa. Mais allons de l'avant et faisons sentir l'aspect pour que nous ne l'étirions pas. Onda, euh, a l'air bien. Ça a l'air très bien. Maintenant, nous savons que nous devons mettre le terrain pour que nous puissions le faire. Maintenant, faisons juste un autre vous mon image de vous, juste ici. Je vais le faire glisser dans le coin, faire glisser sur le côté, et on va le tirer vers le bas et on va aller de l'avant et épingler. C' est bien pour désactiver les marges, gauche en bas à droite. Et donnons-lui une hauteur de 67 ajouter quatre contraintes. Je vais sélectionner l'image ici aussi. Au sol. C' est plutôt cool. On dirait qu'il est étiré. Allons de l'avant et l'aspect se sentir e um, ne l'aime pas beaucoup. Hum, on va devoir tirer ça un peu. Wow. C' est vraiment grand. Euh, tu sais, un peu trop grand à mon goût. Pas vraiment. Je ne ressens pas vraiment ça. Donc ce que je vais faire, c'est que je vais sortir ça comme, non, je vais te tirer ici, et je vais juste le traîner vers le bas comme ça de l'écran juste pour que ça ressemble plus ça. On y va, et je vais aller à mes contraintes sur la règle. Ici, cliquez sur la règle pendant que votre sol est sélectionné et continuez et nous allons juste décoller la hauteur juste pour être sûr. Euh, ça va faire ce qu'on veut. Enlevez l'espace du fond. Et maintenant, nous allons cliquer sur la broche mais ici et nous allons faire Um uh, voir ici. Oui, on va aller de l'avant et on va l'épingler en bas. Il dit 74, c'est bien en bas. C' est sorti. C' est hors de l'endroit où on veut qu'il soit. Mais c'est bon. Je voulais avoir l'air bien, et c'est ce qui est important. Je vais fixer une hauteur de 43. Et, euh,
évidemment, ça va apparaître là-haut. Ce n'est pas ce que nous voulions Commandements. Laissez-moi cliquer sur cette commande Z pour annuler cela. Ici, allons-y. Et tu sais quoi ? Revenons simplement à l'image étirée. Je ne perds pas de temps avec ça, euh, très aller. On pourrait faire de l'aspect en forme,
mais regarde ce qu'il fait. On pourrait faire de l'aspect en forme, Et si bien, c'est
ce qu'on pourrait faire, je sais que la Perfection est là, donc ce qu'on peut faire, c'est s'assurer que les contraintes sont disparues. Débarrassez-vous de l'espace de fin et de début. Et puisque c'est en fait la taille ici avec l'aspect ajustement, ce que nous pouvons dio est juste de le réduire à une taille que nous avons vraiment aimé, comme celle-ci ici. Ok, et puis quoi ? On peut faire,
c'est ,
c' affaiblir. Dupliquez-le. Donc commande G et je pourrais déplacer le taux ici. D' accord ? Et puis, euh, tu sais, on peut juste ah, dans ce gars ici. Donc il tourne vers la gauche et le bas et lui donne un fait de hauteur même vous donner celui-là, euh, un avec Ok. Et, ah, ce gars ici, allons-y et faisons la même chose. On va l'épingler ici, et on va lui donner un avec et un haut aussi. Épinglez-le en bas. Et, euh, on
y va. Voyons juste à quoi ça ressemble en mode joli. Je ne suis pas trop inquiet de m'occuper de ça. Je ne veux pas passer beaucoup de temps à l'U.S. Je pense que,
euh, euh, ce n'était pas à propos de toi. Pourquoi, il s'agit de créer. Ah, il s'agit de créer. Ah, un code orienté objet. On a vraiment fait ça un peu, Gillian, donc tu peux le perfectionner tout seul. Tu es heureuse. Bienvenue pour le faire. On y va. Ça a l'air bien. Donc OK, donc les aperçus semblent bien. Rendons ça plus grand ici et bougeons ça. Ok, donc on a les antécédents, on a le terrain et, euh, tu sais, il y a beaucoup de façons de réparer ce terrain. Nous aurions pu mettre des choses dans ces deux éléments dans une vue de pile. Je l'ai fait aussi de l'espace. Il y a un tas de façons de le faire,
mais ça a l'air bien en ce moment. Rappelez-vous, le résultat final est ce qui nous tient à coeur ici. Donc maintenant, nous avons besoin des personnages, caractère, l'un et du caractère pour les faire glisser sur. Ici, ils sont des images, donc je vais sélectionner. J' ai traîné une image sur lui trancher l'image ici et allons de l'avant et sélectionner les joueurs joueurs dans le côté gauche et vous devez absolument être en forme d'aspect. Et on y va. Nous allons vous faire à peu près là, vous
déposer quelques pixels, regardant vraiment bien. Ok, donc il est bon. Et nous allons juste lui donner une largeur et une hauteur va forcer et puis je vais éteindre, restreindre les marges et dire 14 de la gauche et 82 du bas est bien Pour instant, il ne va nulle part sauf où nous voulons lui. Merveilleux. Et nous allons de l'avant et dupliquons ce joueur Commandement D J'ai sélectionné le joueur et j'ai commandé E. Et, euh, il peut s'écraser sur nous ici. Et bien sûr, Exco s'est écrasé sur moi. Et donc, cette fois, cliquez sur notre petit joueur. J' ai rouvert X Code, d'ailleurs et cliquez sur, Modifier copier et modifier coller. On y va. Nous allons faire de l'ancienne façon et allons de l'avant et en faire un ennemi. Je vais le traîner ici. Il flotte un peu sur le sol. J' aime pas ça. On y va. Elle a l'air jolie mouche. Voyons quels attributs reportés pour mes contraintes. Nous lui avons donné une hauteur, ce qui est très bien. Allons de l'avant et Pan am à droite. Éteignez les marges ici et épinglez-le en bas. Et voilà notre méchant. Il y a un bon gars qui a l'air bien. On a juste besoin d'aller de l'avant et de mettre une étiquette ici, accord ? Nous avons donc besoin d'une étiquette et nous avions besoin d'une autre image. Vous pour l'arrière-plan du texte, n'est-ce pas ? Alors faisons-le d'abord. Mettez l'arrière-plan ici et ça s'appelle Print. C' est comme ça que ça s'appelle. Rien. Rien d'unique ici, et chaque va, tirer tout le chemin à travers l'écran. J' ai fait ça, au fait, si tu ne voyais pas ce que j'ai fait ici. Aspect ajusté. J' aime ça comme des mots. Je le veux au centre. Donc je vais cliquer sur le menu d'alignement, et je suis un siècle dans le conteneur horizontalement. Et puis je vais mettre un avec et une hauteur, et je vais l'épingler par le haut, ce qui va le mettre juste là très bien.
42. Introduction à l'application iOS 9: Bienvenue, tout le monde. Nous voici à nouveau ensemble. Enfin, nous allons construire quelque chose de foutu pool sur les prochaines vidéos. Et voici l'aperçu de celui-ci. Allons-y et lançons ça et je vais le sortir sur le ruisseau. Notre petit Gholam ici, tout seul, veut avoir de l'affection. Way n'est pas arrivé à temps ou on peut le nourrir. C' est aléatoire. On y va. Euh, quelques secondes nous allons le nourrir ou prendre soin d'eux. Et si on ne le fait pas ? On a perdu une autre vie. Pauvre petit gars. Et donc oui, c'est plutôt cool. Hum, donc c'est l'application, et ça va être amusant. Tu vas apprendre beaucoup de choses, ok ? Tu vas en apprendre davantage sur le glisser-déposer. Tu vas en apprendre davantage sur les animations, et peut-être que tu te demandes, est-ce qu'on utilise le kit Sprite ? Parce que je ne m'y attendais pas vraiment. Ou peut-être que tu ne voulais pas l'apprendre. Ça n'a rien à voir avec Spike. En fait, vous faites tout ça en vous comme ça. Et nous utilisons des pratiques professionnelles de développement dans le monde réel. Ok, pour faire ça et ah, comme ? Ah, en utilisant des vues et des images, des objets et des classes et en sous-classe votre image. Utilisez toutes sortes de choses cool qui sont super applicables au monde réel. Et c'est beaucoup de plaisir. J' ai des effets sonores et toutes sortes de choses. Donc je veux juste tirer un site web cool ici où j'ai eu certains des sons d'Ok, juste ici sur Ah eric skiff dot com avant slash musique de film. Il a donné son album gratuitement à tous ceux qui veulent l'utiliser de la musique de huit bits . Nous utilisons ceci pour le thème principal,
euh, euh, de la musique du
jeu et tous les autres effets sonores en fait, sont que j'ai créés à partir de travaux précédents que j'ai fait, j'ai payé quelqu'un ou l'ai fait moi-même afin que vous puissiez les utiliser comme vous le souhaitez. Une houle, c'est ça. Et, euh, la prochaine chose que je veux te montrer très vite, tire-le juste ici. Voici le dessin animé d'art smart dot com pour son dernier sprite. Bundle de soulignement point PHP cinq. Je suis allé de l'avant et je l'ai acheté moi-même. C' était 40$. Vous ne pourrez pas utiliser cet art commercialement, alors n'hésitez pas à l'utiliser pour ce tutoriel. Mais si vous voulez libérer une application sur l'APP Store. Gagnez de l'argent. Vous allez devoir acheter le pack Super Sprite sur ce site. Voici ce que nous utilisons dans l'application. Et c'est donc notre application. Ça va être très amusant. Tu vas apprendre beaucoup de choses et je suis excité. Saute droit dedans. Alors allons-y et faisons-le.
43. Application iOS 9 : My Little Monster Partie 1: Tu dois arrêter. N' oublie pas ton dos affamé. Dino, ne
fais pas que tu veuilles grandir ton bébé veut jouer. Tu as de l'argent de Sabrina, l'adolescente que j'avais un tigre que tu n'as pas séparément. N' oublie pas ton animal de compagnie giga. Qu' est-ce qui se passe, tout le monde ? Mark Price, entends avec des pentes sourdes point com Une promenade dans la voie de la mémoire Pour ceux d'entre vous qui sont aussi vieux que moi Pour ceux d'entre vous qui sont plus jeunes, vous n'avez probablement jamais entendu parler d'un Giga Pet. Mais on va en construire un de toute façon et c'est plutôt cool. Vous avez déjà vu l'aperçu de ce que ça va ressembler. Donc on va juste plonger et commencer à le construire. Alors allez-y et allez à votre code ex là-bas sur le côté droit ou en bas ou partout où vous avez décidé de le mettre. Et on va déposer un nouveau projet, accord. Tirer ici, déposer un nouveau projet. Ok, on va faire une seule application de vue et on va l'appeler mon petit monstre. Ou tu peux appeler le tien comme tu veux. Maintenant, la nôtre n'aura pas toutes les caractéristiques d'un animal de compagnie giga. Ne cliquez pas. Créer. Oh, mal. Mauvais endroit pour le mettre en place. Mettez-le ici dans mes documents, chaque GOP. Ok
, des trucs vraiment cool. Allons de l'avant et retournons à l'envers. Je ne sais pas pourquoi ils éteignent toujours cela par défaut, mais nous voulons universel parce que nous voulions travailler sur iPhone et iPad. Vous l' avez peut-être regardé et vous avez dit : Est-ce un jeu et que je vais apprendre ? Aspike ça. Eh bien, la réponse est oui, c'est un jeu. Mais non, ça ne va pas être construit avec Spike. En fait, tous les refroidisseurs et composants seront utilisés pour construire. Ça, euh, vient de toi
, comme ça, comme tu peux le voir juste là. Et nous allons aller de l'avant et agrandir notre écran. Je vais arroser ça juste parce que je n'aime pas le code supplémentaire quand ce n'est pas nécessaire. Et j'aime me débarrasser des commentaires, alors oui, on va le construire à partir de toi. J' ai des contrôles standard parce que le point ici est que nous allons apprendre les principes que vous allez utiliser au travail tous les jours. Et donc nous allons construire ce jeu en utilisant des contrôles iPhone standard, ce qui est vraiment cool. Et il n'y a rien de mal à ça. En fait, parfois Ah, Spike, c'est un peu exagéré pour des choses simples. Donc c'est vraiment cool. Donc je vais aller au tableau principal,
pas au storyboard. D' accord ? Pour agrandir ça ici et encore, nous allons juste nous amuser comme d'habitude et construire l'interface d'abord. Je vais donc cliquer sur le dossier Assets, et j'ai quelques ressources que je veux apporter. Ok, je vais le ramener ici, et certains d'entre eux j'ai déjà exporté, et ah, c'est bon. Nous avons donc besoin d'un contexte. Faites glisser l'arrière-plan sur. Il nous faut de la nourriture. Nous avons besoin d'un cœur. Quoi d'autre ? On a besoin ? O le sol ? Sois super. Et, oh, le crâne. N' oublie pas l'école, Giga. Les animaux peuvent mourir le panneau des vies et je vais prendre une animation ici. Idole 2123 et quatre. Parce que nous allons les utiliser sous peu. Donc d'accord, j'ai des graphiques et ah, tu dois savoir d'où on a eu ces trucs. Et eso j'ai acheté ces et vous êtes libre de faire la même chose. Si vous voulez publier ceci commercialement, ne
pouvez pas utiliser ces graphiques ou vous avez des problèmes. Mais vous devriez l'acheter si vous voulez l'utiliser et en faire de l'argent. Ok, donc on a ses affaires et voici notre storyboard. Alors allons-y. Je vais jeter une image, vous sur le dos, ici et encore, nous construisons un animal de compagnie giga. Donc, il est là. Il a fallu une minute pour se charger. Et donc, vous savez, les animaux de compagnie
Giga peuvent mal l'orthographe. J' ai imaginé toutes les filles,
euh, euh, animaux de compagnie
Giga peuvent, bien
sûr, être nourris. Tu pourrais en faire différentes choses. Tu peux les caresser. Dans notre cas, notre petit gars, il va vouloir manger ou il va vouloir de l'amour, affection. Et si tu ne lui donnes pas un de ces deux, il y aura une minuterie. Et si tu ne le lui donnes pas dans cinq secondes, ou peu importe l'heure qu'on fixe, il va perdre une vie. Finalement. S' il perd ses trois vies,
il mourra. Et ah, c'est comme ça que le jeu fonctionne. Donc il y a notre vue d'image et allons de l'avant et épinglons je sais que je vais avoir besoin de dépendante parce que ça va avoir besoin d'aller dans le coin, ah, coin à coin. Donc, désactivons les marges indépendantes à gauche, de haut
en bas, à droite. Et je n'ai pas besoin de définir la largeur et la hauteur, bien
sûr, parce que puisque je l'ai épinglé sur les bords, cela signifie qu'il va s'étirer et augmenter à toute la taille de l'annonce écran pour les contraintes . Et allons de l'avant et changeons l'image ici en BG pour l'arrière-plan. Et ça a l'air plutôt bien. Mais il dit échelle à sentir, et vous ne pouvez jamais faire confiance à cela, même si cela semble bon, car cela va étirer vos graphismes. Donc on veut de l'aspect, Phil. Maintenant, pourquoi ne choisirons-nous pas l'aspect en forme ? Eh bien, si c'était une très grande taille d'écran, euh ou petit contre, ça pourrait être n'importe quelle taille d'écran. Il peut ne pas couvrir l'ensemble de l'écran. Il peut simplement couvrir une partie de celui-ci, tant que tout tient dans le côté de la vue. Mais nous voulons que le nôtre se sente comme si c'était un contexte, et il y a un peu de contexte et j'aime ça, et nous avons besoin d'un terrain maintenant. On n'a pas utilisé de pile. Utilisez-le parce que je ne pense pas vraiment qu'une utilisation de pile soit appropriée dans ce cas parce que ces choses ont été épinglées sur les bords de l'écran et elles ne sont pas vraiment empilées. Donc ça va être notre terrain ici. Je vais à nouveau désactiver les marges et nous allons faire à gauche en bas et à droite, et nous avons besoin de fixer une hauteur. Si nous ne définissons pas de hauteur ici, il écrasera notre image ou l'étirera. Nous avons donc besoin de définir une hauteur, et cela garantit qu'elle reste la même. Et allons de l'avant et sélectionnons une image. Le sol a l'air sympa. Voyons à quoi ça ressemble. Un aspect Ah, si elle voit comment sur les bords là-bas, nous avons perdu une partie de celui-ci hors de l'écran. Nous ne voulons pas que ce soit l'aspect. Sentez-vous très aller. C' est bon si ça le coupe tant qu'on ne s'étire pas ou n'écrase pas son image. Parce que tu sais que c'est une très mauvaise chose pour Dio. Donc j'aime ça. Ça a l'air super. De quoi d'autre avons-nous besoin ? Nous devons jeter un personnage ici et nous avons aussi besoin du panneau de la vie et nous avons besoin des petits crânes pour les morts. Eso Allons-y et mettez-la. Mettez-les aussi bien à. Et donc nous y voilà. Allons de l'avant et faisons le panneau arrière. Ça va s'appeler « Vies ». Bien sûr, il est étiré par défaut. Dans ce cas, nous allons faire aspect ajustement. Est-il logique d'avoir cette chose coupée si elle doit être Pas besoin orteil tout en forme sur l' écran et là nous allons et je vais juste déplacer cela,
nettoyer un peu ici et il est vraiment bon. Je vais l'épingler Teoh en haut. Donc zéro de la marge supérieure. Si je l'éteins, ce serait, Ah, pas sur la marge. Donc, hum, ça a l'air bien. Et continuons et gardons la largeur et la hauteur la même. D' accord. Plutôt, épinglons ceux-ci à leurs tailles spécifiques. Je veux dire, et nous allons cliquer sur le bouton d'alignement ici et l'aligner horizontalement dans le conteneur. Ok, ça a l'air bien maintenant. Normalement, je pourrais regarder cela en mode aperçu, mais je l'ai fait assez de fois pour savoir que ce que j'ai fait est correct. Ça va marcher. Alors continuons à jouer avec ça ici. On va les regarder. Regardez le mode d'aperçu dans une minute ici, allons de l'avant et jetons les écoles ici. Je crois que c'est une image carrée,
donc je vais aller de l'avant et cliquer sur la règle et changer ça en carré. Je crois que c'est une image carrée, Disons que 50 par 50 pour l'instant, on peut le rendre plus grand en un instant. Je vais cliquer sur ce gars ici et changer l'image en ah, école. Voilà, tu y vas. Et encore une fois pour être sûr, aspect ajustement. On ne veut pas que l'école soit coupée. Donc aucun aspect ne se sent. Voyons à quoi ça ressemble. Tu sais quoi ? Ce n'est pas trop mal. Ce n'est pas trop mal du tout. Allons-y et faisons du travail ici sur lui d'abord avant de le dupliquer. Donnons-lui juste une largeur et une hauteur. Ça ne change pas parce que notre panneau arrière ne va pas changer, donc ça n'a pas besoin de changer. Sinon, les choses ne sembleront pas correctes. Je vais ajouter des contraintes et tu dis, attends une minute, pourquoi est-ce qu'on l'épingle ? Faites-le comme le centrer ou quelque chose comme ça. Eh bien, je pense que ce que nous devrions faire est probablement utiliser une vue de pile. Donc je vais sélectionner ce type et maintenir la commande D et ah enfoncée, faire glisser et puis la commande d à nouveau. Faites glisser le dessus. Et comment fait-on encore une pile pour toi ? Attendez, Commandant Shift. Oh, allez. Là, nous allons sélectionner chaque élément, puis aller en bas ici vers le bas et cliquez sur ce petit bouton carré avec la flèche. Et c'est maintenant une vue de pile. Et ça va être très sympa, parce qu'on n'a pas à centrer ces choses manuellement. Selon le panneau arrière, Nous pouvons juste le mettre ici et la distribution sur le côté droit de la vue de la pile. Je veux me sentir également. Et puis fixons un espacement entre chacun. Essayons six. Oh, ça ne suffit pas. Huit. Encore assez. Essayons 15 Se rapprocher. Essayons 16. Cliquez ici pour que je puisse voir ce qui se passe. Et ah, ce n'est pas à moitié mal, vraiment. Allons de l'avant et cliquez sur le panneau de pile ici la vue de la pile et cliquez sur le panneau de vies et comment pensez-vous que nous devrions les aligner ? Je pense qu'ils devraient être alignés probablement la même chose. Donc c'est ce que nous avons. La même chose, en fait. Donc c'est intéressant. Donc, le panneau arrière nous avons déjà aligné avec la vue principale, donc il ne va nulle part. Donc, tout ce que nous avons à faire, disons, des centres
horizontaux et des centres verticaux, ce qui veut allons juste mettre ces deux atomes ensemble et êtes-vous ? Je t'ai empilé avec les crânes dedans va s'aligner là où il doit être sur le panneau. Je pense que je pourrais me tromper. Vérifions ça. Je vais cliquer sur le bouton d'aperçu sur le côté droit et ah, ce n'est pas un aperçu. C' est du code. Et il y a l'aperçu. Et tu sais quoi ? Ce n'est pas trop mal pour le premier essai. Ça a marché pour nous. C' est un peu cool,
en fait. C' est un peu cool, Plus grand écran. Ça a l'air plutôt bien. Qu' est-ce que tu en penses ? Ouais, d'accord. Très bien. Donc on sait quoi ? Que nous allons avoir besoin de deux images. Un que le cœur et un qui est de la nourriture. Parce que parfois il veut de la nourriture. Parfois, il veut de l'amour et de l'affection. Qui sait pourquoi c'est juste un Gholam rock. On ne sait jamais ce qu'ils pensent. Alors allons-y. Et il y a une autre image Vous ici et je crois que ces carrés d'air aussi je pourrais avoir tort, mais juste pour faire une belle et propre, je vais le faire 80 par 80 Je vais cliquer sur l'
inspecteur des attributs et changer l'image au cœur. Et encore une fois, vous pensez peut-être que ça a l'air bien, mais vous l'aspect correspond juste pour être sûr. Et tu as remarqué qu'il est un peu rétréci sur les côtés et avec et,
euh, ça a l'air très bien. Je vais le commander. Je n'ai pas besoin de cliquer dessus parfois. Ex contact coach à ce sujet. Même si elle est sélectionnée, cliquez dessus et cliquez à nouveau. Donc j'ai juste commandé que Teoh le duplique et ah, allons de l'avant et faisons la nourriture juste là. D' accord, la coupe de l'
aspect semble bien. Peut-être quelqu'un si vous vous demandez pourquoi on fait les crânes au lieu de ceux du cœur ? Eh bien, parce que les écoles sont tellement plus cool que les cœurs et ah, j'étais un peu hésitant. Même Teoh, tu sais, donne de l'amour et de l'affection à ce type. Je me disais que tu pourrais te glisser pour le battre, tu sais, il était mauvais ou quelque chose comme ça. Mais, tu sais, enfants qui regardent des
vidéos. Je dois donner de l'affection à notre Golan. Allons-y et, euh, voyons où on va mettre ces choses. Je ne le fais vraiment pas. Je ne sais pas. Peut-être. Oh, peut-être qu'ils sont là-dedans. Donc les idées, à un moment donné, l'
une d'entre elles sera désactivée, puis l'autre est celle que vous devez donner au Gholam et au Dragon de mer sur lui, et puis il la mange, et puis ce on a son affection. Et si tu ne fais pas ça, bien
sûr, tu auras une école. D' accord. Tu
crois que ça devrait être dans un panneau de pile ? Oui. Quelqu' un a dit oui, je serais d'accord. Donc, cliquez sur les deux de ceux là. Maintenez la touche
enfoncée, Maj et cliquez sur le bouton du panneau de pile en bas de l'écran. Oh, regarde comme ils sont amicaux. Maintenant. J' aime vraiment ces panneaux de pile parce que maintenant, au fait, ça aurait été un orteil cauchemar comme la taille de l'auto et les choses ces choses dans le passé. Mais en ce moment, c'est plutôt cool. Alors allons de l'avant et mettons l'espacement à Will. Dis 10. Non, c'est ridicule. Disons 30. Je vais avoir un 50. Celui qui y va. Que diriez-vous d'un 70 ? J' aime vraiment ces 100. D' accord ? Non. Et faisons des choses ou des choses Va cliquer dessus à nouveau et allons de l'avant et changer la distribution pour se sentir tout aussi bien. Et puis quand vous faites XYZ déplacer sont empilés panneau juste là. Hé, regarde ça. Ce n'est pas trop mal. Pas trop mal du tout. Ok, donc ça a l'air bien. Allons-y et ah, centrons-le dans le conteneur en cliquant sur l'icône d'alignement et, euh, il est
là horizontalement. Centrer et ça a l'air bien. Je crois que j'ai cliqué dessus. Mes éléments de menu ont disparu. Cliquons à nouveau. Et maintenant cliquez sur une ligne Et là nous allons horizontalement dans le conteneur. Ajoutez une contrainte. Maintenant, évidemment, on ne l'a pas épinglé nulle part ailleurs, alors ça va aller de haut en bas. On le veut juste là. Alors allons de l'avant et épinglons le dans le top 16. Disons 15. C' est un meilleur nombre ? Bien sûr. Et donc il va à 15 pixels du panneau de l'école là-haut. Ajoutez une contrainte et ça commence à paraître plutôt cool maintenant. Je ne peux pas oublier la star de notre spectacle, notre petit monstre, le rocher qui va. Et alors, allons de l'avant et mettons cette image. Toi et moi, on ne sait pas de quelle taille il est. Allons-y et jetons un coup d'oeil ici. Je pense qu'ils sont hors taille parce que les animations et les trucs eso nous allons juste aller de l'avant. Et d'abord, les
renommer, je vais appeler un inactif. impression que quelque chose ne va pas avec cette icône ? Eh bien, retournez pour avoir des problèmes ? Idole, aussi ? J' appuie juste sur Entrée, au fait, comme un logement renommant ça, juste en appuyant. Entrez la norme, Mac, euh, sur la commande pour renommer quelque chose à tous les trois et ralentir quatre. Et nous avons quatre images parce qu'elles font chacune quelque chose de différent, et c'est comme ça que nous allons faire notre animation. Donc, euh, revenons au storyboard principal et je vais sélectionner la vue de l'image, prendre l'image ici et sélectionner une image inactive. Maintenant, il n'a pas l'air droit. Alors faisons en forme d'aspect, et vous êtes comme, Eh bien, il est un peu petit, vous
ne pensez pas que c'était un petit gars ? C' est une fille ? Vraiment grand en ce moment, bien que j'ai l'air assez signifiant et cool. En fait, il n'est pas méchant. Il est chaud et floue à l'intérieur. C' est juste que, tu sais, c'est comme ça qu'il s'est passé. Et vous savez, vous ne pouvez pas juger par les apparences et, ah, donc il est là maintenant. Je ne sais pas ce qu'il va dio quand je l'épinglerai. Et alors voyons où il va voir à quoi il ressemble en ce moment sans faire d'épinglage . Ok, donc il fait tout ce qu'il veut sur ces différentes souches. C' est un gholam désobéissant, alors on a besoin de Teoh pour le mettre en place. Donc je clique juste sur eux ici, et j'aime où il est sur l'écran, sur le côté gauche. Voyons si on peut faire fonctionner ça. Alors je vais l'épingler. Voyons 49 depuis le bas. C' est très bien. On peut la peindre directement en bas. Je m'en fous si c'est réparé. Bien qu'il flotte, ce n'est pas logique. Il va utiliser les pouvoirs de lévitation. Allez. Ok, alors on y va. J' aime ça. Allons-y et repentons-le maintenant. 41 depuis le bas. Et qu'est-ce qu'on sait ? Hum, eh bien, on sait qu'il a une bonne taille en ce moment. Je ne sais pas si je veux changer ses hauteurs. Allons de l'avant et faisons la même chose. Donc il est coincé par le bas. Il a maintenant la même hauteur. Cela ne fait pas que les dictateurs se positionnent de gauche à droite, cependant. Et donc ce que je pense qu'on pourrait Dio est juste de cliquer à gauche ici. Ça dit zéro, mais c'est parce qu'il y a beaucoup d'espace blanc sur cette image. C' est vide. Vous ne pouvez pas le voir, mais voyez comment cela voit comment cet ah fait partie de son image juste là. Alignement droit à la marge. Ce que ça va dire,
c'est que nous allons le forcer à être à la marge à chaque fois et le forcer à être çaet
à se cacher,
et je pense que ça devrait le garder là où il doit être. nous allons le forcer à être à la marge à chaque fois et le forcer à être ça et
à se cacher, Il y a beaucoup de façons que nous aurions pu faire ça, mais je pense que mais je pense que
c'est une action,
pas tout à fait là où nous le voulons. c'est une action, Et c'est pourquoi la prévisualisation est importante parce qu'il ne fait pas ce qu'on voulait. Donc, nous allons le cliquer à nouveau et, ah, nous pouvons faire quelques choses que nous pouvons laisser pour laisser cette ligne signifiée là et juste changer la constante dessus. Donc, si je vais à l'espace menant à la vue super, disons que je dis que c'est 22 arrive donc il va mal si je fais 20 ou comme je l'ai fait. Oh, juste pour dire que Négative 20 bouge, se déplace un peu vers l'endroit où on le veut et, euh, tu sais, c'est bon, Toe fait ce genre de positionnement, Vraiment ? En fin de compte, vous voulez juste que votre application ressemble à ce que vous vouliez ressembler. n'y a rien de mal à mettre ces chiffres négatifs ici. Euh, et, tu sais, on est un peu un jeu de toute façon. Je veux juste des choses dans certains endroits. Et, euh, je commence à aimer vraiment où il est en ce moment. Maintenant, tu penses probablement, pourquoi ? Pourquoi c'est ça, euh, sur ces écrans ? Il est ici et sur cet écran, il est par ici. Eh bien, dans ce cas précis, je n'ai probablement pas de bonne réponse pour vous. Parfois, des choses comme ça arrivent. Il a cette grande image ici, et il est coincé où je voulais être, euh, mais il est clair que ça le déplace un peu de là où je voulais être. Vous pouvez donc toujours être sûr que vous pouvez faire confiance à votre aperçu ici. En fin de compte, c'est ce qui compte le plus, c'est votre aperçu. D' accord ? Et, euh, je suis d'accord avec ça. Je suis d'accord avec ça. Comme si c'était juste ici. Ce n'est pas trop mal. Et, ah, gardez à l'esprit que l'image a beaucoup d'espace blanc. C' est à cause de l'animation. Je ne l'ai pas coupé ou quoi que ce soit. Je voulais le garder comme les designers et les artistes l'ont gardé. Donc, parfois est un développeur. Tu dois gérer des choses comme ça. Cet espace blanc supplémentaire Hasnat alignant sur l'écran. Ça me rend folle. Tu vas devoir travailler avec des designers un jour pour résoudre ce genre de problèmes, comme si on avait fait assez bien pour moi. Pour l'instant, si vous voulez jouer avec vous-même et le rendre un peu plus parfait, vous êtes invités à le faire. Tu sais comment le faire maintenant, au
moins pour jouer avec les choses. Ce n'est pas trop mal. Alors, il le fait. Son truc est assis là flottant. J' aime ça. J' aime ça. J' adore ça. Ok, donc ça se rassemble très bien. Et donc ce que je veux faire, c'est Ah, dans cette première partie de la vidéo, je veux juste le faire animer. Tu sais, ça semble vraiment amusant pour Dio. Alors faisons ça. Allons-y et,
ah, ah, nous allons tous ensemble dans notre contrôleur de vue et nous savons que c'est une vue d'image. Bon, donc je dirais que je serais le bar Outlet Week et on va l'appeler une image monstre de type toi, j' image de toi. On y va, point
d'exclamation à la fin. C' est ce que tu fais là-dessus. Je suis des points de vente, et ça a l'air très bien, OK ? Et alors, qu'avons-nous besoin de faire ? Eh bien, nous devons obtenir cette image que vous animez et il y a quelques commandes avec l'image
que vous pouvez faire pour réellement animer la vue de l'image a des fonctions qui vous permettent de dio
séquences PNG ou différentes séquences d'image. Dans le cas de n'importe quel format de fichier, je crois que vous pouvez avoir des choses à vivre et à respirer sur l'écran, et c'est ce que nous allons faire. Ainsi, au Image View a une propriété appelée images d'animation. Je crois les images d'animation, Airness. Et si vous regardez là,
il est à la recherche que c'est un tableau de type que vous image et le travail de question signifie qu'il n'y a pas besoin avoir quelque chose ici. Vous n'avez pas besoin d'avoir des images d'animation, vous devez
donc être prudent et travailler avec ces options. C' est ce qu'est un point d'interrogation. C' est un optionnel. Faut faire attention à la façon dont vous travaillez avec eux car cela peut causer des plantages dans votre programme. Et, ah, c'est en fait une fonction de sécurité pour vous empêcher d'avoir des accidents. Donc vous savez qu'il pourrait être vide, donc vous pouvez vérifier pour ça. Donc des images d'animation monstre, il veut un tableau de vous I images. Ok, votre vue d'image est une vue qui fait des choses différentes avec des images, mais il a en fait à l'intérieur d'un vous j'images une autre classe que ah, um, le réel stocke l'image elle-même. Ce que nous devons faire, c'est charger nos images de nos actifs. Maintenant, quoi ? Je pourrais faire quelque chose comme cette image lointaine égale, euh vous venez de voir un aperçu d'objectif Voir, ce que je pense que vous i image et ah, nous allons l'appeler,
um ou est-ce que l'image est nommée ? On y va. Et puis on pourrait dire, hum, vous savez, je crois que c'était un inactif que PNG nous pourrions faire ça et ensuite nous pourrions faire ça. L' image deux équivaut à ceci. On pourrait faire ça. Et nous pourrions le faire quatre fois différentes. Ou est-ce cinq fois différentes ? Combien avons-nous eu ? 41234 Ok, donc il y en a quatre, OK ? Et, euh, on pourrait le faire, mais tu penses probablement ne pas te répéter, mec. Utilisez une boucle for. Et si c'est ce que tu pensais bien pour toi, parce que c'est ce que nous devons faire. Donc je vais créer un rayon temporaire appelé imagerie, et ce sera un tableau de type image blanche. Toi. Je n'imagine pas votre image. On va faire un tableau vide de type image comme celui qu'on a vu sur le , hum l'aide apparaît. Et bien sûr, ça nous donne l'avertissement parce que c'est comme, Hey, tu n'utilises même pas ça. Qu' est-ce qui se passe ? Donc on va l'utiliser, donc on va dire pour var X égal à zéro X est inférieur à envoyer quoi ? Quand on sait qu'il y a quatre images. Donc, en fait, est-ce qu'on veut faire zéro ? Eh bien, peut-être qu'on a juste pris un regard quatre pour acquis parce qu'on ne veut pas vraiment le faire. On veut en dire un. Donc X est égal à un parce que c'est le nom de l'image. Et alors nous allons dire alors que X est inférieur ou égal à quatre x plus parce que
ce que nous voulons faire est d'obtenir le nom réel de l'image. Parce que chaque image a un +1234 après le mot, à droite. Donc si je sauve notre je suis G est égal à toi, je l'image et nous lui donnons une image nommée Ok, alors rappelez-vous comment ça pourrait juste dio vous savez, idole un point PNG Vous pensez probablement, Oh, je suis je pense que je savoir ce que je pense. Je sais ce que Mark va faire ici. J' apprends à un code. C' est tellement cool. Eh bien, jetons un oeil. Si je fais cela, rappelez-vous, vous pouvez insérer des variables là-dedans. Je peux mettre X qui assez cool. Ce qu'il va faire, c'est créer une nouvelle image. Il va en trouver un qui s'appelle Idol x Dot PNG et ensuite il va le coller ici. C' est plutôt cool. Euh, c'est vraiment cool, en fait. Et ah, alors ce que Weaken Dio est juste dire tableau image upend ajouté. Ok, maintenant cette image ici, cette image est facultative. OK, ce qui signifie qu'il peut ou non avoir de la valeur, mais notre tableau exige quelque chose qui n'est pas facultatif Eh bien, je sais que ça va marcher parce que mes, um mes images existent, D' accord ? Et c'est quelque chose que vous faites en tant que programmeur au moment de la compilation. C' est bon, donc par exemple, je pourrais mettre et je peux mettre un point d'exclamation ici en tant que programmeur en ce moment, qui va forcer à déballer ce dicton, je sais qu'il y a une valeur ici, D' accord ? Et ça va forcer et envelopper, mais je peux le faire en tant que programmeur parce que disons que ça s'est écrasé. Ce qui va planter sur moi probablement dans les tests parce qu'il ne trouve pas les images comme ça n'
est rien qu'un utilisateur ferait comme que vos images ne supprimeraient pas par magie de votre
paquet de code . Donc, tant que vous obtenez ces images correctement, vous pouvez les corriger, modifier jusqu'à ce qu'elles fonctionnent, et vous pouvez être sûr qu'il y a une valeur là-dedans. C' est quelque chose que vous pouvez faire confiance dans ce cas spécifique. Pas dans tous les cas, mais ah, vous devriez être capable d'attraper cela au moment de la compilation et cela nous traite parce que nous n'avons pas modifié l'image. Alors allons de l'avant et tournons vers une constante. Ok, je commencerais par le bar et je le changerais alors qu'il me crie dessus. Ça a du sens assez facile. Donc nous avons Creighton image et j'étais en attente pour le rouge. Ce que nous avons fait, c'est que nous avons créé quatre images et les avons mises dans le tableau afin que nous puissions les utiliser sur notre image de vous. Alors maintenant je peux dire image monstre. Les images d'animation sont égales à l'image, non ? Donc, nous avons un tableau d'images et nous sommes juste en train de le définir. C' est tout ce qu'on fait. La prochaine chose est, combien de temps l'animation devrait-elle jouer avant qu'elle répète le rapport se termine. Donc nous devons lui donner un temps et ah, une durée d'animation de point d'image
monstre. D' accord. Et je l'ai testé plus tôt, et 0.8 est un très bon moment. Très gentil. Tu peux jouer avec. Euh, vous savez, testez les choses, et puis l'animation répétition compte. Ok, combien de fois tu veux répéter ? Il tourne au ralenti, il respire, et on ne veut pas qu'il cesse de respirer. Quand il y a un air ici, l'histoire est égale. Signe là. Nous ne voulons pas arrêter de respirer, donc si vous le mettez à zéro, cela signifie qu'il va le faire infiniment. Et la dernière chose que nous avons besoin de dio est en fait de démarrer l'image de monstre d'animation qui commence, commencer à animer. Ok, maintenant on est presque prêts à partir. La seule chose dont j'ai besoin, c'est de faire travailler ce type ici. D' accord ? Ces de pointsde
vente pour que je puisse cliquer sur l'aperçu sont l'éditeur assistant. Je veux dire, pas l'aperçu. Et ah, dans ce cas, juste pour le plaisir, je pourrais sélectionner manuel et sélectionner mai storyboard, et je pourrais le faire sur le côté droit. Cette fois, tu fais quoi ? Que se passe-t-il ? En fait, j'aimerais le savoir moi-même,
parce que ça ne va pas le faire. Je cherchais l'aperçu. Uh, l'utilisateur Murray, allez, ne soyez pas comme ça. Bien, Bien, prends-moi tort, pendu comme, Ah, ce gars est un idiot. OK, alors faisons-le comme ça. Cliquez simplement sur notre planche principale ici, puis réessayez la façon dont nous sommes habitués à faire. Et on y va. Et, ah, allons à notre, euh, code. Donnez-moi le jour et la zone de code. Euh, ok, donc voici notre monstre juste là. Voici ton monstre juste là. Allons-y et, hum, traînez-le comme ça. C' est un grand monstre. Il est même ces images couvrant même ces choses. Hum, accord, donc il est maintenant connecté. Et, ah, si tout a bien fonctionné ce qui s'était passé est sur la vue a été chargé, ce qui se passera dans toutes ces vues ? Charge. Il va commencer à s'animer. Nous chargeons les images, et il devrait juste commencer à animer. Et si ça ne marche pas, on va le comprendre ensemble. Ok, allons de l'avant et construisons et exécutons. Ici. Ça arrive. On y va. Oh, ça a l'air bien. Encore une fois, il est un peu à l'écart, mais je m'en fous pour le moment. Tu sais, c'est quelque chose qu'on pourra retoucher plus tard sur quelque chose que tu pourras retoucher. Peut-être que c'est peut-être artistique Peut-être que ça a l'air bien, mais qu'en pensez-vous ? Nous avons un personnage animé et donc quelques principes que vous avez appris avant de fermer cette vidéo, c'est que vous avez appris à travailler avec vos vues d'image et vos images et comment utiliser une séquence d'images et les répéter en animation. Et c'est vraiment puissant. Tu peux faire beaucoup de choses avec ça. Il y a beaucoup d'images animées sur Internet, donc si vous vouliez charger des filateurs ou tout ce que vous voulez, même si j'étais a son propre spinner de chargement, vous pourriez en avoir des sur mesure. Vous pouvez faire beaucoup de choses avec ces images animées et juste pour le plaisir. Je ne sais pas à quoi ça va ressembler. Tournons-le. Tu sais, ce n'est pas trop mal. En fait, ce n'est pas trop mal. On pourrait changer certaines choses plus tard. Nous pourrions, genre, déplacer la nourriture ici vers la droite pour le mode paysage et la rendre plus utilisable. C' est plutôt cool, en fait. Ça a l'air un peu plus amusant en mode paysage. Donc, vous l'avez eu. Nous sommes allés de l'avant et avons fait des trucs vraiment cool juste ici hors de la batte et cela va m'
obtenir une vidéo plus longue parce que c'est une application plus grande et voir une prochaine fois.
44. Application iOS 9 : My Little Monster Partie 2: Mesdames et messieurs, bienvenue pour une autre journée passionnante de développement, Mark Price ici avec chez nous. Et nous allons continuer notre animal de compagnie Giga si vous vous souvenez de l'émission d'hier, si c'est ce qu'on appelle maintenant, nous avons construit un monstre de Gholam rock qui s'est ralenti. Et si je vais de l'avant et construis et dirige
ça, ça va me montrer ce que nous avons fait. Ici, il vient. Ici, il vient. Et il est là. Il est en train d'animer en regardant justus. Bien que nous l'ayons quitté, moins quelques caractéristiques paysagères dont nous devrions nous occuper et je pense que nous devrions nous
en occuper maintenant. Pourquoi ne pas en apprendre un peu sur les classes de taille de l'Iowa ? Eh bien, c'est
quoi une classe de taille, tu dis ? Eh bien, je serai heureux de vous dire qu'une classe de taille est basée sur une classe est une contrainte basée sur la taille et système de
mise en page. D' accord. Ce que cela signifie, c'est que vous pouvez définir différentes contraintes et mises en page pour différents écrans d'appareil . Ok, donc actuellement, remarquez comment toutes les choses que nous avons mises en place dans nos contraintes s'appliquent ici en bas de l'écran ici. Il dit tout dans n'importe quelle hauteur avec le W dans le H signifie donc ce que nous disons,
c'estque ,
c'est ces contraintes sont les mêmes pour toutes les tailles d'écran. OK, mais clairement, dans notre mode paysage, le cœur et la nourriture que nous voulons sur le côté droit et nous voulons ces choses verticales. Maintenant, quand on changera votre cours de science ici, toutes les contraintes existantes vont rester les mêmes. Ils ne vont pas être ruinés ou quoi que ce soit. Mais ce que je veux faire, c'est que je veux aller de l'avant et enlever cet alignement sur notre pile . Tu es là. Il est centré au milieu, et nous le remettrons. Mais pour l'instant, allons de l'avant et se débarrasser de l'alignement Centre X. Et nous allons aussi se débarrasser de l'espace supérieur pour le panneau Vies. Et je vais te montrer pourquoi on va aller de l'avant et passer à l'endroit où cliquer sur ce bouton
ici , ok ? Et nous allons passer à et ça va vous dire que les différentes classes de taille que vous supportez avec ces différentes options ici, nous allons passer à la hauteur compacte avec le standard avec, donc je vais cliquer dessus et remarquer comment cela maintenant et bleu ici il est dans. Hé, tu es dans une classe de taille. Faites attention à ce que vous faites, parce que quoi que vous fassiez va travailler pour cette taille de téléphone et remarquez comment ici,
il
a fait tourner la toile d'art en parce que quoi que vous fassiez va travailler pour cette taille de téléphone et remarquez comment ici,
il
a faittourner la toile d'art enmode
paysage. Donc, c'est à propos de ce que ça ressemble quand on avait sur le paysage. Allons-y et faisons quelques changements. J' ai le personnel que vous avez choisi. Je vais aller à droite et on va cliquer sur ce petit bouton juste ici . Voir ce signe plus, je vais cliquer dessus, et je vais en dire tout avec compact serré, la même classe de taille que nous sommes. Je vais le mettre juste là. Et donc tout avec compacte serré. C' est donc un serré compact. C' est très bien. Donc ce que nous voulons faire, c'est dire ,
dans ce mode, faisons le vertical comme, Wow, ça marche déjà. Ce n'est pas trop mal. C' est assez facile maintenant. Remarquez comment si j'essaie de saisir ma vue de pile, il saisit le Goldman dit que c'est parce qu'il est en face de lui. Je vais juste déplacer la vue de la pile devant lui, et ensuite je vais aller Teoh et ça pourrait être une elle. Désolé, ne pas essayer d'être un parti sexiste. Ça pourrait très bien être un rocher féminin. Golam. Euh, oui. Alors on va le déplacer ici, d' accord ? Et c'est cool. C' est sur le côté droit, alors allons-y et mettons-nous sur le côté droit. Zéro. Mettez-le sur les marges là, et nous allons l'épingler au sommet est, eh bien, huit du haut. Ça me semble bien. Et il y a une autre chose que je veux dio et ah, c'est de réduire l'espacement un peu moins. Et alors laissez-moi élever mon écran. Voyez comment l'espacement est de 100. Faisons juste 50. J' aime bien ça. Et, euh, quelque chose. Annuler cela, en fait, Mettons-le, Mettons une classe de taille dessus lorsque vous travaillez avec des vues de pile. Ils ont ces boutons plus à côté d'eux, ce qui vous permet de définir les classes de taille juste ici. , Et
maintenant, la raison pour laquelle j'ai changé la taille en classant ici est bien, c'est pour que la peinture et l'alignement soient appliqués à cette classe de taille spécifique. Donc ici, nous aurions pu faire ces pressions plus les boutons, même sans avoir changé la tonte ici. Mais comme on est déjà là, faisons-le. Et écoutez, ajoutez une contrainte de taille pour cet espacement. Donc nous allons en dire tout avec compact serré qui est vraiment bon et maintenant va dire 50 et remarquer comment la hauteur n'a pas changé sur ceux juste ici. Parce que c'est en mode portrait et faisons-le pivoter, juste voir à quoi ça ressemble. Hé, regarde comme ça. J' ai un aperçu de la vie réelle de ce à quoi ça va ressembler. Évidemment, cet espacement est ah, trop encore. Hé, regarde ça. Ça a l'air jolie mouche. Si je le dis moi-même, c'est plutôt cool. Je l'aime beaucoup, en fait. Et maintenant, revenons à notre habitué. Allons à n'importe quel,
Ok, c' est juste la mise en page de base Maintenant. Maintenant, revenons et faisons ce qu'on a fait avant. Nous le ferons. J' ai sélectionné la vue de la pile. Nous l'épinglerons du haut par 16. En fait, LSU 15 encore. C' est mieux le numéro. Épinglez-le par le haut et c'est bon. Et puis nous allons de l'avant et horizontalement et le conteneur va centrer et d'accord, remarquez comment il est allé tout laid sur un argent ici, il s'est étiré. C' est parce qu'on a oublié d'épingler une taille la avec, euh, sur notre classe de taille. Revenons en fait à notre classe de taille à notre hauteur compacte régulière avec ici, et j'ai la vue de la pile sélectionnée et sur la vue de la pile réelle, je vais juste aller de l'avant et définir un avec ici dans ce mode sur Lee. OK, et les cinq années 60 beaucoup trop. Je sais que c'est 96. Ils l'ont juste regardé. Donc, je mets le avec à 96 ajouter la contrainte. On y va maintenant. Maintenant, ça a l'air très joli. deux modes d'écran sont vraiment beaux et allons de l'avant et simplement construire et exécuter ceci pour nous assurer qu'il fonctionne dans la vraie vie. Et il est là. Allons-y et fais-le tourner et oh mon Dieu, il
faut le réparer. Je pense que la raison pour laquelle nous avons ce problème est parce que nous avons toujours le
sénateur élu, le sénateur en ligne X ici à droite. Et comme nous, je ne l'ai pas depuis que nous avons effectivement dit sur tout, il a été en fait hérité sur le avec. Alors réparons ça maintenant. Cliquez dessus et supprimez-le. D' accord ? Et ce que nous allons en fait dio est d'aller à notre classe de taille ici et nous allons changer Teoh, Je pense que je crois compact avec elle dit pour tous les compacts avec des mises en page 3.54 point pouce force 0.7 pouce. Je pense que c'est ce que nous voulons. Et pour tout cela est pour tous les iPhones et portrait. En fait, ce n'est que pour tous les iPhones et portrait. C' est ce que nous voulons. Et donc pour tous les iPhones en Portrait. Maintenant, nous voulons, euh nous voulons prendre la pile si vous cliquez dessus, et nous voulons l'aligner horizontalement dans le conteneur. Ok,
Maintenant, réexécutons et voyons si ça a résolu notre problème. Donc, le Centre X s'appliquait aux deux rotations, et nous voulions juste qu'il s'applique au portrait. Et, euh hé, je pense que nous faisons des progrès. Hé, regarde ça. Nous l'avons fait vraiment cool pour que ses classes de taille, ce n'est pas trop mal. Vous sélectionnez juste une classe de taille, puis vous définissez les contraintes et ah, une chose que vous avez aussi appris et dont on vient de me rappeler est quand vous en avez dans
tout ce qui est juste ici. D' accord ? Pour toutes les sorties, si vous ajoutez des contraintes, il va l'ajouter à tous. Donc, si vous devez faire quelque chose comme nous venons de le faire en ce moment, où nous avons besoin d'une position, quelque chose à un endroit dans un mode et un autre endroit dans un autre mode. Ok, euh ,
alors ah, vous devez définir les contraintes spécifiques. Maintenant, je ne suis pas sûr que ça va marcher sur iPad tout de suite, parce qu'il y a plus de contraintes que nous allons devoir faire. Mais jusqu'à présent sur ces Ah, ici. Ça a l'air très bien. Je pense que ça a l'air super, en fait. Et il est important de le faire pour vos supporters de l'APS. De nombreuses tailles d'écran que vous pouvez. Donc ça a l'air vraiment cool. Nous faisons des progrès. Allons de l'avant et regardons notre code et voyons où nous en sommes. Ok, je vais fermer le rédacteur en chef adjoint ici, et on n'a pas beaucoup de choses à faire ici. Clairement
, , c'est bon. Et alors réfléchissons à ce que nous voulons faire ensuite. On a le cœur, on a la nourriture, et on veut pouvoir les traîner. Ok, voilà la chose vraiment cool qui traîne les choses autour. Je pense que ce sera amusant. Euh, c'est un iPhone, bien
sûr, célèbre pour, euh, innovant, abside
innovant,intimiste où vous pouvez glisser en contact et glisser des choses. Alors faisons ça. Donc en ce moment, nous avons notre animation se passe ici. C' est très bien. Eh bien, quoi ? Nous avons probablement besoin de voir mes points de vente pour la nourriture et pour le cœur. Donc, à la sortie I b. Et peut-être que vous vous demandez, euh, pourquoi avez-vous autant écrit cette maison ? Ne pourriez-vous pas simplement connecter les choses directement à partir de l'éditeur ? Oui, c'est vrai. Je cods depuis longtemps, et parfois c'est une douleur d'aller et venir. Ou parfois c'est aussi un orteil lent. Ouvrez votre générateur d'interface. Il peut commencer à ralentir votre système parce que son graphique et, euh donc j'essaie de ne pas avoir autant que possible l'écran partagé ouvert à
des fins de démonstration . Oui, mais j'aime vraiment faire les choses comme ça. Donc je sais exactement ce qui se passe. Donc l'image de monstre, la nourriture, l'image, votre vue d'image, d'accord. Et, euh, faire un autre sont et diront image du cœur. Toi. J' image vue. Ok,
maintenant, parlons de ça. Comment rendre quelque chose mobile ? Eh bien, une chose que nous pouvons dio est que l'Iowa fournit les belles classes de remplacement ici, um, ou les classes que vous pouvez remplacer appelées touches. Commencé touches annulées, touches en touches. Bouger. Si j'ai appuyé sur Entrée ici. Euh, c'est une fonction. Et ce qui se passera est chaque fois que je touche l'écran, cela sera tapé ou cela sera allumé. Donc, si je dis imprimer et je dis que je viens de toucher l'écran premier onglet Ok, je viens de toucher. C' est un peu incomplet et étrange. Je viens de toucher l'écran. Ok, allons de l'avant et construisons-le et voyons ce qui se passe. D' accord ? Et nous allons juste toucher l'écran à là-bas sur le côté droit du conseil. Je touche l'écran et ça l'enflamme, donc c'est vraiment cool. Donc, comment ça fonctionne sur IOS, c'est qu'il y a quelque chose qui s'appelle un répondeur U I, Ok. Et ce qui se passe est lorsque vous appuyez sur l'écran au niveau supérieur, il le transmet à votre classe, sont la classe de niveau supérieur, et c'est Hey, voulez-vous
faire quelque chose avec ce robinet et puis il descend à la la prochaine. Voulez-vous faire quelque chose avec ce robinet ? Tu veux faire quelque chose avec ce robinet jusqu'ici où c'est comme si
tu veux faire quelque chose avec ce robinet ? Donc, le robinet qu'ils sont en fait sur l'écran est transféré de classe en classe, la classe classique jusqu'ici. Et quand je dis quatre pour réfléchir, réfléchissez à ça. Imaginez, Vous savez comment quand vous avez Ah, um, une application iPhone qui a une vue sur la barre de navigation en haut où a, comme, le bouton arrière sur la gauche. Ou vous pouvez aller dans un nouvel écran, apparaître dans un nouvel écran et vous pouvez bien naviguer, les contrôles que nous allons d'abord intercepter, puis les écrans en dessous vont intercepter les contrôles. Et donc c'est vraiment cool. Affaiblir, affaiblir, détecter les touches. Nous pourrions déplacer les choses, mais nous ne voulons pas le faire ici sur ce contrôleur de vue parce que nous ne déplaçons pas le
contrôleur de vue , OK ? Nous voulons faire sur l'image elle-même, et je pourrais écrire du code complexe pour gérer tout cela ici dans le contrôleur de vue, mais cela n'a pas de sens. Et je pense qu'il y a un moyen beaucoup plus simple. Et c'est en sous-classant, hum, l'image ah you. Vous affaibliez la sous-classe et nous en avons parlé. Donc c'est la programmation orientée objet 101 que vous allez utiliser ce genre de choses tout le temps. Allons-y. Créez un nouveau fichier. Nouveau fichier. Nouveau fichier qui a du sens. IOS. Allons de l'avant et cliquez sur source et cliquez sur Fichier Swift. Cliquez sur Suivant et nous allons de l'avant et appelons cette image glisser glisser comme en faisant glisser les choses autour, Pas l'autre type de glisser, si c'est ce que vous pensiez, créer parfait maintenant fondation d'importation. C' est la fondation. Cours rapides, etc. Mais nous avons aussi besoin d'importer u je kick parce que c'est ce qui contient des informations sur vous. Je vous image et tout le contrôle IOS afin d'importer vous je kit et puis tout ce que nous avons besoin de faire, disons, classe glisser image. Notez comment dans swift le nom du fichier ne correspond pas nécessairement au nom de la classe. Ce qu'il y a à l'intérieur est plus important. Donc classe et il va s'étendre à partir de votre vue d'image. Ce que ça veut dire, c'est qu'il va hériter de toute votre image. Utilisez des fonctionnalités pour que nous puissions les utiliser. Et il y a quelques choses à faire pour que ça marche. On a besoin de remplacer les orteils, euh, si tu veux utiliser une classe que tu aimes ça. D' accord. Est-ce que des cours rapides sont vraiment ? Hum, certains des premiers initialises sont nécessaires, accord ? Et ça va te forcer. Ça va vous forcer à les utiliser, et c'est ce qu'on va faire ici. Nous mettons juste dans la table d'initialisation des er's dont il a besoin. Et puis il a une initialisation requise. , Euh,hum, s'il veut que l'auto soit complétée en premier, ce serait bien il y a. Coder un décodeur. Et ça va être super point dedans. Et tout ce qu'on fait, c'est qu'on laisse passer le, hum venir super dedans et coder. Et dans le passé, un décodeur. Tout ce qu'on va faire, c'est le passer, euh, jusqu'au super super dedans. Donc fondamentalement, vous mon image de vous a sa propre initialiser er et donc nous sommes en train de le remplacer et de faire notre propre truc. Mais nous devons aussi appeler le parent un, parce que vous Mon image de vous faisait des choses qu'il faut faire. Et si on n'appelle pas le parent initialiser, on aura des problèmes. Donc, ça a l'air bien. Ça a l'air vraiment bien, en fait. Alors allons de l'avant et implémentons certaines de ces méthodes tactiles comme les touches ont commencé. D' accord. Et quoi d'autre ? Nous n'attirons pas les touches déplacées. Chaque fois que vous bougez, nous voulons déplacer l'objet et, ah, touches terminées. Nous devons savoir quand les objets se sont terminés et la raison pour laquelle nous avons besoin de savoir où ça s'est terminé est Ah, parce que quand vous laissez tomber la vue, Ok, um quand vous savez, s'il l'a laissé tomber sur le caractère ou non. Nous avons donc besoin de pouvoir le détecter. Donc ça a l'air bien. Nous avons donc nos fonctions de remplacement qui détecteront quand les touches ont commencé ou lorsque les touches ont bougé ou les touches sont terminées et remarquent comment nous les avons configurées sur une image en U. Ce qu'on va dio, c'est au lieu d'utiliser la vue d'image normale, on va utiliser ceux-ci cette image de glisser vous je vois votre image. Vous pour qu'on puisse écrire des trucs personnalisés. Donc ce qu'on va dio, c'est quand les touches ont commencé. Ok, nous devons détecter où ce qu'il faut stocker, euh, où se trouve la position centrale. Donc, disons que je le fais glisser,
mais je ne le fais pas glisser sur le personnage. Nous devons savoir à quelle position renvoyer l'objet si ce n'est pas une bonne traînée. Donc, ce que nous devons faire est de créer un orteil variable. Tenez notre ah, point de
départ quelqu'un sauve notre position d'origine de type C G point. D' accord. Et nommer a Nexen une coordonnée y. C' est ce qu'est un point C G. D' accord. Et donc quand les touches ont commencé, quand ça commence Ok, je vais dire que la position originale est égale et ah, voyons ici. Je veux dire centre auto point. Ok, parlons de ça ici. Donc auto centre hollandais. Donc ce que nous disons lui-même quand nous disons que soi disait la vue de l'image. Allons chercher son centre. C' est X et Y Cordon. Si vous allez regarder sur le côté droit, le centre est le point STG et c' point
central dans le système de coordonnées, donc nous allons saisir ce point central là. Maintenant. Je ne savais pas, peut-être que tu réfléchis. Eh bien, pourquoi ne l'avez-vous pas mis ici dans la fonction d'initialisation ? Eh bien, le problème, c'est ces méthodes initialisées, d'accord ? Ils sont appelés avant, euh, les
plans sont disposés sur l'écran réel, donc on ne peut pas garantir que le centre sera correct Elle et peut-être que Nolan sera vide . On ne peut pas le garantir. Donc, ce que nous devons faire est de le mettre quelque part où nous pouvons garantir qu'il y a déjà un centre, et il n'y a pas de vue a charge sur une vue. Ok, donc les touches ont commencé. C' est un bon endroit pour dire, Hey, dès que tu fais une touche, économisons d'abord là où on a commencé. D' accord ? J' aime ça. Maintenant, parlons de touches déplacées. D' accord. Chaque fois que cela est appelé, il passe dans un ensemble. D' accord. Un ensemble de touches. D' accord. Set est une collection de données, comme un tableau ou un dictionnaire, et il nous donne quelques touches. Et bien sûr, nous n'avons fait qu'une touche. Donc ce que je vais faire, disons, si le toucher est égal touche ça d'abord. Ok, alors quoi ? Ce que ça fait, c'est dire, touchez la poignée. Le tout premier objet dans le jeu de touches. Donc, c'est l'ensemble qui disait juste attraper le premier objet hors de lui. C' est tout ce que nous faisons et ce n'est pas garanti. Si vous regardez ici, il y a un point d'interrogation à la fin des moyens, cela pourrait être facultatif. Donc encore une fois, nous faisons le Si Let's in tax disaient, si cela existe, alors utilisons-le ici. C' est bien. Qu' est-ce qui va empêcher les accidents en utilisant ces ? Si on va bien. Et bien sûr, quand vous faites un laissez-il devient immuable, vous ne pouvez pas le changer. Donc si on entre ici, on sait qu'on est en sécurité. Ok, donc ce qu'on va dire, c'est laisser la position égale, retoucher l'emplacement en vue, auto super vue. Ok, d'autres choses dont il faut parler. Donc on prend une position. Donc, et nous disons toucher, point emplacement et vue. Donc, ce qu'on fait, c'est qu'on dit, Hey ,
attrape, attrape la position du regard, saisit une position ou l'emplacement dans la vue. Ok, alors et puis vous choisissez la vue que vous voulez, donc nous disons, Hey, je veux savoir où la position des coordonnées X et Y sont de cette touche dans la super vue, le vue qui a notre gholam et qui a le U. Y et d'autres choses. Ce que nous voulons dire, c'est que nous voulons savoir où est cette position, où ils ou leur doigt ont touché. Allons chercher cet endroit juste là. D' accord ? Et ah, alors ce qu'on va faire, c'est dire que le centre d'auto est égal au point C G. Faire la position point Exe et point de position y. ok, donc vous dites Prenons la première touche, Prenons sa position et sa vue parente. Voyons où les utilisateurs ont tapé le doigt sur la vue au-dessus. Et puis tout ce que nous avons à faire est de déplacer notre centre étant l'image. Vous déplacez notre centre vers cette nouvelle position et CG Point faire. Il crée un point CD. OK, c'est ce que ça fait. Il crée un CD. Les points en créaient un à partir de l'ordonnée des positions X et de la
coordonnée large de la position . Essentiellement, ce que cela veut dire, c'est que partout où vos doigts traînent, allons de l'avant et bougeons l'objet, ok ? Et cela peut juste fonctionner dès la sortie de la boîte. Mère est une chose de plus dont nous avons besoin pour dio, je pense que deux choses, en fait. Donc maintenant, nous utilisons une classe personnalisée. Ce que nous devons faire, c'est aller à notre storyboard principal. Cliquez sur votre cœur. D' accord. Et ici, à droite, il y a cette petite boîte ici sur laquelle on n'a pas encore vraiment cliqué. C' est l'inspecteur d'identité. OK, cliquez dessus. Et par défaut à votre image de vous. Mais nous savons que nous avons créé une sous-classe maintenant appelée drag image. Et regarde, il va seulement mettre des éléments ici qui fonctionneront réellement pour cet objet et donc faire glisser l'image . Vous devez sélectionner cela. Nous devons dire à cet objet que Hey, vous êtes la classe personnalisée, pas la classe par défaut. Et je ferais la même chose avec la nourriture, changerais pour faire glisser l'image, puis je vais cliquer sur l'éditeur assistant ici et nous allons aller de l'avant et regarder notre code . , En fait, je voulais quelqu'un quand je voulais coder ici. On y va. Ok, alors voyons. En fait, ce n'est pas ce que je veux. Je veux ça ici, et je veux mon code ici. Voilà, tu y vas. Ça marche comme par magie pour nous. Tu
vois, il joue avec assez de choses et les choses fonctionnent comme par magie. Ok, alors remarquez comment on a une image de la nourriture et une image du cœur qu'on doit changer. Ceux-ci ici est bien,
aussi, aussi, car une image de glisser et faire glisser l'image. Ok, nous devons les mettre à la classe personnalisée, et je n'ai pas besoin de faire est de cliquer dessus et de le faire glisser sur la nourriture et cliquez dessus et
faites-le glisser vers le cœur. Maintenant, si cela a fonctionné, ce qui devrait arriver, c'est que nous devrions pouvoir faire glisser ces éléments n'importe où sur l'écran. Alors allons-y et voyons si ça a fonctionné. Moment de vérité et ça ne marche pas. Et je crois savoir pourquoi. Par défaut, l'utilisation de l'image n'active pas l'interaction de l'utilisateur. Alors arrêtons ça. Bon et cliquez sur votre cœur et sur le côté droit pour cliquer sur cette icône ici, l'inspecteur des attributs et activer l'interaction de l'utilisateur activé et faire la même chose pour l' interaction de l'utilisateur
alimentaire activé. Allons de l'avant et recommençons. Le nouveau moment de vérité. Oh, regarde ça. Il roule autour de tout ce qu'il est si heureux. Mm. Donc ça bouge. C' est super cool. Commence à nous laisser recommencer, comme tu peux le dire. Mais c'est bon pour le moment. Et Ah, plutôt cool, hein ? Et je crois savoir pourquoi. Ça ne nous laisse pas rouler. C' est parce que je pense, um, c'est ses images sur le chemin ici. Donc je pense que c'est ce qui se passe. Ok, très cool. Donc, ce que nous devons faire maintenant, c'est, disons, un utilisateur le lâche et qu'il ne le laisse pas tomber sur le monstre. On doit réinitialiser où ça va. Alors faisons ça. Allons à notre image de dragage. Sous-classe ici et sur les touches terminées. On va devoir écrire un code unique. Donc, disons que si laissez toucher, aller à la même chose, saisirait le toucher, égale touches. Si on laisse toucher, est égal qui touche d'abord, d'accord ? Et ah, ça a l'air bien. Ce qu'on peut faire, c'est dire, en fait, ne finit pas. Je ne sais même pas si nous devons faire tout ça maintenant. Il suffit de faire un test rapide pour nous assurer qu'on puisse le renvoyer là où il a besoin d' aller soi-même. Ce centre est égal à la position d'origine, donc nous sauvegardons cette position régionale. Disons qu'à chaque fois que tu laisses partir, ça remonte à l'endroit où on a commencé. Ceci est exécuté ce test d'abord je testais incrémentalement parce qu'il vous permet de savoir quand quelque chose fonctionne avec quelque chose ne fonctionne pas plutôt que d'écrire beaucoup de code et se demander où est votre problème. Alors je clique. Je suis un jeu sec. Je suis contente de traîner ici et de lâcher prise. Est-ce que ça a marché ? C' est la question du jour. Je pense que la réponse est définitivement un Oui, cela a fonctionné. Maintenant, bien
sûr, la prochaine caractéristique est quand on le fait glisser ici, vous savez, soit
il le nourrit, soit lui donne de la santé. D' accord ? Et je pense qu'on devrait écrire une logique pour ça. D' abord
, , avant de commencer à faire disparaître ces choses. Donc on a l'air si bien jusqu'à présent. Je pense qu'on devrait appeler ça un rap pour la vidéo numéro 2. Ici, nous prenons un rattrapage de pause et ensuite nous passerons à la fente numéro trois. Merci de vous joindre à nous aujourd'hui et nous vous verrons très bientôt.
45. Application iOS 9 : My Little Monster Partie 3: Hé, tout le monde, Mark Price ici avec Dev pentes dot com Et nous sommes ensemble pour la finale de My Little Monster, troisième
partie et jetons un coup d'oeil à ce que nous avons déjà fait précédemment sur My Little Monster Voilà notre code. Exécutons l'application, tirez-le ici et il y a notre heureux Golam. Il est heureux et le cœur vous pouvez le traîner et vous pouvez traîner la nourriture, et c'est à peu près tout ce qui s'est passé. Nous avons mis les classes de taille en place, ce qui est super cool. Tu apprends des choses que les autres classes n'enseignent même pas, ce qui est vraiment cool. Je connais beaucoup de développeurs IOS avancés qui ne savent même pas comment faire cela. Donc tu es en avance sur le jeu et il est en train d'animer, et c'est tout. On a de vous, je suis en place et ah, c'est ce qu'on a. Alors finissons ça. Faisons en sorte que la magie se produise. Donnons-les à la vie. Alors réfléchissons à ce que nous voulons faire. Eh bien, d'abord, nous avons des animations en cours d'exécution à l'intérieur de notre revue ont été chargées. Ce n'est pas un bon endroit. Je sens une odeur de code qui sent quelque chose de mauvais ici, et ça ressemble à mon code parce que ce n'est pas réutilisable. Que se passe-t-il s'il meurt ? Si je veux rejouer l'animation Donc je veux un code copier-coller. Non, bien
sûr que non. Et donc je pense que notre monstre mérite sa propre sous-classe. OK, on a déjà parlé de cours. Ce n'est pas grave. Allons-y et cliquez sur le monstre en haut à gauche là-bas, ce dossier mon petit monstre et allez dans un nouveau fichier et je vais cliquer sur source, apparaître dans la section Iowa et cliquer sur Fichier Swift et je vais appeler ce monstre. Je suis G qui signifie image de monstre. Maintenant, nous savons que si nous voulons une sous-classe au image, nous devons vous importer, comme il, Sinon il ne sera pas. Swift ne saura pas ce que nous faisons. Donc je vais dire que le monstre de classe que je suis G hérite de toi. J' image vue. Impressionnant. Voici notre classe et ça a l'air joli. Donc, ce que nous devons d'abord faire est de créer nos er's d'initialisation ici. Je vais juste remplacer le CG par défaut initialiser er er cadre er naufragé et il va dire super point dedans, appelons le Super One. Nous les mettons juste ici pour satisfaire les problèmes potentiels que cela nous donnera. Il aime avoir ces er's initialiser ici. Alors on va mettre requis dedans. Celui-ci est vraiment nécessaire. C' est Coder a Deke Co. Allez. C' est que je voulais me compléter automatiquement, taper ce truc dans ce que presse entrer bonté ok. Et on appellera super point dedans et on appellera le codeur un, et on va encore passer un décodeur. Nous sommes juste au-dessus d'initialiser les er's et d'appeler le super. Donc tout fonctionne comme on s'y attendrait parce qu'on a besoin de Teoh. Nous devons initialiser le code ici. Et donc si nous n'avions pas ça ici, nous ne pourrions pas faire une initialisation,
et, euh, euh, nous n'avons pas encore écrit le code pour ça, mais c'est OK, alors réfléchissons à ce que nous voulons le faire maintenant. On l'a dit. Pourquoi on anime l'image interviewée ? Une charge qui ne semble pas être le meilleur endroit pour peut-être que les monstres devraient
s'animer , et je pense qu'il devrait le faire. Donc ce que je vais faire, c'est mettre en évidence tout ça et la commande X pour le couper, et ensuite on va passer à nos mois ou à notre image. Et je vais créer une fonction quand tu appelleras ce jeu funk Idol Animation. Ça semble être un grand nom et un bon endroit pour le mettre. Maintenant, nous avons aussi une animation de la mort dont nous devons nous occuper et ah, Donc d'abord, faisons ça marche et ensuite nous irons dans celle de la mort. Donc image monstre. Donc maintenant, nous ne référençons pas l'image. Nous sommes l'image de l'esprit soufflé. Ok, donc nous devons faire au lieu de soi soi. D' accord, parce que tu te souviens, de nos conférences précédentes qui donne des cours ? a l'air ennuyeux. Nos précédentes vidéos impressionnantes et passionnantes. Nous avons hérité des choses. Et donc nous voulons nous appeler pour attraper ces choses. Donc, nous savons que vous image. Vous avez toutes ces propriétés, donc nous avons juste besoin de vous appeler pour les utiliser. Ok, conférences. Oh, mon Dieu, les gars, arrêtez moi maintenant. Ce ne sont pas des conférences. Et s'ils commencent à ressembler à des conférences, quelqu'un me tire dessus. Ok, alors allons-y et ah, jouez à l'animation de la mort. Je veux dire juste. Vous avez été sur les grands campus universitaires. Vous êtes assis là avec 100 étudiants et les professeurs aiment l'histoire au large de l'Amérique comme, Oh, mon Dieu. Et tu ne vas même pas à la classe. Vous avez quelqu'un qui prend des notes pour vous, puis vous étudiez tout seul et vous passez la classe de toute façon, systèmes de l'
université, un
peu cassé. Ok, joue la mort. Et ce qu'on veut dio, c'est qu'on a les animations de la mort ici ? On a l'idole. Nous n'avons pas les animations de la mort, et je pense que nous voulons les saisir. Alors je vais aller de l'avant et le trouver ici. Mon système de fichiers. Et ici, ils sont déjà prêts pour nous d'y aller. Prêt à partir pour nous. Mort. Un mort, deux morts, trois morts pour et cinq morts, ces cinq images d'air pour l'animation. Et je vais juste cliquer et les faire glisser ici. Ok, ça me
semble bien, et on reviendra à l'image de monstre. Et vraiment, c'est un peu la même chose ici. Pour être honnête, nous pourrions probablement créer un moyen un peu plus élégant au lieu de copier et coller. Peut-être que tu me regardes comme si tu as vraiment une copie et coller. Tu vas être hypocrite et briser le principe de la sécheresse. Eh bien, les
choses vont changer un peu. Peut-être que ça n'a pas trop de sens de changer. Vous pourriez probablement trouver un moyen, mais on sait qu'il y a cinq images, donc je vais changer ça. Et je sais que ça s'appelle mort, je crois. Pas la mort, non ? Oui. Un mort mort là-bas. Cinq. C' est très bien. Et, euh, animation Répéter le compte. On voulait jouer une fois. Nous ne voulons pas que ce soit infini. Et de quoi d'autre avons-nous vraiment besoin ici ? Ok,
ça a l'air bien, mais réfléchissons-y ici. Si moi et ceux-ci vous images vues, ils ont ah, image
par défaut. droite. Donc, si mon animation s'arrête, quelle image va montrer ? Nous avons probablement besoin de mettre ça ici dans l'animation de la mort, parce que nous ne voudrions pas que les orteils et l'animation se complètent et qu'il retourne en cadrille un où il est encore debout. Donc ce que je vais faire, c'est que je vais définir une image par défaut ici. Dites l'image de point d'auto. D' accord. Mon image par défaut est égale à vous. J' ai nommé l'image, et on va juste appeler ça cinq morts. Donc, l'image par défaut ici, lorsque les animations sont faites, est la dernière image. Donc de cette façon il reste mort, OK, on ne veut pas revenir à la première image par magie. Et puis aussi, je vais dire moi que l'animation, animation, images d'animation sont égales à Neil. Je vais vider ça. Pensez-y. Si je voulais redémarrer mon jeu, d' accord ? Et moi et moi avions ces images d'animation, je ne veux pas qu'elles soient échangées avec la mort et une idole. Maintenant, encore une fois, nous sommes en train de réaffecter ici, ce
qui fait une chose similaire. Mais pensez à ça. Si j'avais des images d'animation, c'était plein de, vous savez, les animations inactives, vous savez, je serais un en attente, vous savez, des images pour je pourrais potentiellement être un images en attente pourrait nous donner des résultats inattendus. C' est bon d'éclaircir les choses. Allez-y et jetez Neil. Ça va tout vider. OK, c'est bon. Donc images d'animation d'image. C' est vraiment bon pour la mort. Allons de l'avant et faisons une chose similaire pour notre animation d'idoles. OK, définissons une image par défaut. Nous avons donc une image de base quand elle n'est pas animée. Et, euh, vous, quand vous jouez avec ces choses était juste ou juste être en sécurité ici quand vous jouez avec ces choses, vous trouverez ces nuances. Peut-être, comme si j'avais besoin de changer ça. Et c'est ainsi que vous le faites. Ok, donc tu répares ces petits problèmes ici et là et on se dira que les
images d'animation sont égales à s' agenouiller à nouveau. Peut-être que nous pourrions re facteur cela à B'plus réutilisable, peut-être créer une fonction et passer le type d'animation et des choses comme ça. Mais c'est un peu plus de travail que je ne pense en vaut la peine en ce moment. Alors on y va. On a des animations ici. Et que diriez-vous de ce que nous faisons c'est que nous allons de l'avant et ah sur et cette initialisation dira jouer des animations inactives. Donc, quand l'APP se charge pour la première fois, jouons à l'animation d'idoles et commençons
ça, ok ? Et nous reviendrons à la mort un plus tard et nous allons tester et voir si ça marche. Mais d'abord,
ça ne marchera pas pour nous. Mais d'abord, Si nous revenons à notre contrôleur de vue, remarquez comment notre image monstre est de type vous y image vue, mais nous ne voulons plus qu'il soit de type. Tu t'imagines. Nous voulons qu'il soit de type image monstre. Alors quand est-ce que ça a changé ? Ici pour l'image monstre ? C' est la classe que nous voulons utiliser. Et puis allons de l'avant et allons dans votre storyboard principal. Il y a encore une chose qu'on doit cliquer sur ton Ouvrons ça ici. Ne disparaît pas. Cliquons sur les zones de monstre sélectionnées et ce que tu vas faire c'est que tu vas aller
ici à cette petite boîte carrée sur le côté droit appelée Afficher l'inspecteur d'identité. Cliquez dessus et remarquez comment la classe est vous. J' image vue. Ce n'est pas ce que nous voulons. Nous devons le changer en image de monstre et remarquer ici qu'il ne nous permet
que de choisir des classes acceptables sur les classes Onley qui héritent de votre image. Vous parce que c'est ce qu'il ISS. Et donc ça nous permet de le choisir. Et maintenant, nous sommes tous connectés et prêts à partir. Donc, si tout fonctionnait correctement utilisé pour ne voir aucun changement, il devrait juste l'avoir animer dès le début. Je suis juste allé de l'avant et cliquez sur le bouton Exécuter en haut à gauche ici. Ok, Build a réussi. Jetons ça ici et il s'anime. On dirait qu'il est au ralenti. Il répète que tout est pareil, qui est bon. Ça veut dire que notre code n'est pas cassé. Quels yeux ? Bien. Maintenant, vous auriez pu continuer à supposer que c'était bon. J' aime tester autant de choses que possible. Et je testerais même l'animation de la mort en ce moment, cependant, nous devrions écrire du code personnalisé que nous jetterions plus tard pour tester cela pour obtenir cet
avertissement parce que nous devons l'appeler et ah, je ne veux pas faire face à cela maintenant. Donc, nous avons que ça marche pour nous. Donc, l'air des animations dans ce look bien. Donc la prochaine chose dont nous voulons parler est de faire glisser ces images. Rappelez-vous comment nous avons créé cette classe d'image de glissement ? Vous pouvez les déplacer, puis quand vous l'avez laissé tomber,
il le remet à la position d'origine. Mais que voulons-nous vraiment se passer quand ce que nous voulons arriver, c'est quand vous le laissez tomber au bon endroit, qu'il fasse un type d'événement ? Disons à quelqu'un que tu as laissé tomber sur le personnage. Fais quelque chose avec ça. Ok, donc je pense que nous devons écrire quelques modifications à notre code pour que cela fonctionne. Donc, ce que nous voulons faire, c'est quand nous créons une de ces images de glissement dans le code, nous voulons passer dans la cible comme, Hey, vous faites glisser ceci. Et si c'est au-dessus de cette cible, faisons quelque chose. Alors faisons ça. Maintenant, sauvegardons notre cible. On va faire ça du genre que tu vis. Vous vous souvenez comment j'ai dit tous les contrôles, comme les boutons et toutes ces choses et images qu'ils héritent tous de vous, je vois. Donc, je mets juste un cours de base ici. Je sais que c'est une image, non ? Je sais que c'est une image, d' accord ? Et cela fonctionnerait aussi. Mais imaginez que si nous voulions réutiliser cette classe, cette classe d'image drag. Et si vous le déposez sur un bouton ou une vue, il fait la même chose. Pourquoi vous limiter à justifier les images ? C' est une pensée intelligente. C' est la pensée pour l'avenir, qui est ce que l'objet ou la programmation innée est tout au sujet de la pensée pour l'avenir. Donc, l'idée est quand vous le laissez tomber et vous laissez aller sur les touches terminées. Nous voyons s'il l'a laissé tomber au-dessus de la vue cible. Ok, donc si on laisse tomber la nourriture ou le cœur sur le personnage, c'est ce qu'on veut vérifier. Alors, qu'est-ce qu'on sait jusqu'à présent ? Nous saisissons le toucher ou saisissons sa position dans la vue super. Ça a l'air super. D' accord. Et puis nous disons que le sénateur est égal à Steve. Bon, point, fais la position X. Donc, c'est Touches bouger. Étaient au mauvais endroit où vous avez besoin d'être intacte terminé ici. Alors que se passe-t-il ici et touche fin ? Il l'est. Tout ce qu'on fait, c'est qu'on le renvoie à la position d'origine, accord ? Et nous voulons le faire, peu importe ce qui est laissé ça ici. Mais que voulons-nous faire d'autre ? Nous voulons vérifier si nous l'avons laissé tomber au-dessus de notre cible. Allons-y et faisons-le maintenant, tout comme la coda. Mais on va dire que si le toucher est égal touche ça d'abord, accord. Et ce qu'on va faire aussi, c'est qu'on va dire que la cible est égale à la cible lâchée. Donc c'est aussi si nous sommes sur la même ligne. Et fondamentalement, ce que nous disons c'est s'il y a une valeur ici, et s'il y a une valeur ici, alors allez dans le manteau. Donc s'il y a une touche, c'est bien. Nous avons besoin de ce code ici si le toucher est précis et ce que nous disons est, Hey, s'il y a un sens de cible, remarquez comment c'est un utilisateur optionnel peut ne pas avoir mis ceci ici. Ils n'ont peut-être pas mis de cible de dépôt, et ils voulaient juste faire glisser l'image autour, mais ils ne veulent pas la laisser tomber, donc c'est vide. Donc, nous voulons nous assurer qu'il n'est pas vide avant d'essayer d'utiliser le sinon notre programme ou vrai crash. C' est une pratique de développement rapide IOS parfaite pour ne pas toot à ma façon. Donc, je vous laisse juste savoir que c'est comme ça que vous devriez construire votre APS dans ce style avec ceux-ci. Si on ne met pas de pancartes sur tout ce que j'ai, je viendrai là-bas et je serai vrai si tu fais ça parce que tu écris un mauvais manteau . Et je ne t'ai pas appris ça. Donc, s'il y a une touche, c'est génial, Hum, et ensuite ce que nous devons faire est, comme ci-dessus a attrapé la position de cette touche et super vue afin que la position égale toucher cet endroit en vue. Et ça va être moi cette super vue. Même chose qu'avant, ce qui est complètement bien. Alors prenons la position et ensuite ce qu'on va dio et, , habitude,
j'ignore ces avertissements et je lui dis avec mon code. Et s'ils sont toujours là, je reviens, et je les ai réparés. Donc, quand nous devons faire est le code où nous voyons si l'image que nous faisons glisser si elle est sur le dessus, n'importe où de l'image du personnage, ce qui signifie que si elle a atterri sur lui du tout, ok, ou elle pourrait être une femelle Golam et ah, CG direct contient point. D' accord. C' est une fonction qui vous permet de passer dans un rectangle et de nommer Teoh pour voir si c'est Ah,
président là-bas. Teoh pour voir si c'est Ah, Donc ce qu'on va faire, c'est qu'on va dire, hé, est-ce que ce rectangle contient ce point ? Et quel rectangle voulons-nous vérifier ? Quoi ? On veut vérifier la marque. Le monstre, qui est la cible, donc le cadre de points cible. D' accord. On veut dire, Hey, votre contact a atterri là-bas et on a eu un laissez-passer en contact, qui va être positionné. Ok, donc ce qu'on dit,
c'est donc ce qu'on dit,
c'estque
si la position sur laquelle tu as tapé est à l'intérieur de ce cadre n'importe où à l'intérieur des
monstres que tu imagines,
tu cadres d'accord ? que
si la position sur laquelle tu as tapé est à l'intérieur de ce cadre n'importe où à l'intérieur des monstres que tu imagines, Si c'est n'importe où à l'intérieur, ça veut dire que tu l'as laissé tomber sur le monstre, ok ? Et c'est génial. C' est exactement ce que nous voulions faire. Maintenant, apprenons un nouveau directeur. Ne le remarquez pas. Des trucs très cool qu'on va apprendre tout de suite. Il y a donc un système, un service dans les yeux de l'Iowa appelé centre de notification ns. Et il vous permet de poster des notifications et d'avoir un observateur des notifications
, puis d'agir en conséquence. Donc ce que je peux faire est, je pourrais dire, Ennis Notification Center, ce centre par défaut décrit le centre de notification principal. Vous pouvez créer d'autres points de notification, et nous allons en créer un juste ici. Je veux dire la notification d'Ennis, OK. Et ce qu'on va faire, c'est lui donner un nom juste ici. En fait, c'est parfait. Et donc on va appeler ça, hum sur la cible tombée d'accord. Sur la cible a chuté, et puis je vais dire objet. Neil va bien ? Et alors quoi ? Nous faisons ici est Regardons ça attentivement. J' appelais un service appelé et c'est un centre de notification. Nous saisissons le centre par défaut et ils publiaient une notification, et le paramètre qu'il prend est une notification. Donc juste ici dans la ligne étaient en fait en train de créer une nouvelle notification. Ce ne serait pas différent de moi en disant, um vient ici var note si égale et sa notification lui donnant un nom qui était sur la cible abandonnée. D' accord. Et, euh, disant Neil pour l'objet, OK, on ne veut pas passer un objet avec ça. C' est la même chose. Nous le faisons juste en ligne pour économiser de l'espace et le rendre plus rapide. Aussi, une autre chose à remarquer est Ah, le nom. J' ai fait ça par accident. Le cours de nom correspond au nom que vous donnez à la notification. Donc vos observateurs voudront écouter ce nom aussi. Donc, ce que nous disons, c'est ,
hé, s'il avait laissé tomber l'objet sur la cible, disons une notification disant que vous avez réussi à laisser tomber l'objet sur la cible. C' est tout faire des notifications. Ainsi, notre contrôleur de vue peut savoir quoi faire ensuite. Et ah, je vais copier ça. On peut ajouter un observateur, mais ça me semble plutôt bien. Et puis, Ah, dans les deux cas, nous renvoyons l'article à sa position d'origine. Et vous êtes comme, Pourquoi ne pas avoir besoin d'une notification ? Eh bien, il y a quelques choses qu'on doit faire, non ? Si tu le nourris, on doit s'assurer de ne pas te donner de crâne. Tu sais, c'était une vie et nous devons nous assurer de passer à la suivante. La prochaine chose que nous avons besoin de dio, nous devons faire un peu de logique. C' est pourquoi nous avons besoin de la notification et revenons à notre
contrôleur de vue , et il semble assez vide en ce moment, mais c'est OK. Il va s'agrandir beaucoup plus rapidement et ah, allons-y et parlons de la façon de devenir observateur. Donc, c'est le contrôleur, la classe qui doit écouter cette notification. Donc N point centre de notification point point par défaut Ajouter observateur. D' accord. Et le désert est un sens de soi. Hey, ce cours va l'écouter. D' accord ? Selector est la fonction que vous allez appeler. C' est comme ça que tu le fais. D' accord ? Vous le mettez juste entre guillemets. C' est ce que tu dois faire. Ce n'est pas si mal. Donc on va dire, Item a lâché sur le personnage et je vais mettre un deux-points ici à la fin. Ce que cela signifie, c'est qu'il y a un ou plusieurs paramètres, et si vous ne le mettez pas là, cela ne fonctionnera pas. Il va chercher une fonction qui n'a pas de paramètres, donc nous savons que nous savons par expérience. Au moins, je le sais et c'est des notifications. Ils transmettent un objet de notification en tant que paramètre, vous devez
donc mettre le deux-points là ou votre fonction ne sera pas appelée. C' est une erreur courante à faire car vous apprenez que IOS ne fait pas le nom de la notification elle-même, qui est le nom que nous lui avons donné auparavant, sur Target abandonné. Un objet est Neil. n'y a aucun objet dont nous devons nous inquiéter avec cela en ce moment, donc nous nous ajoutons simplement en tant qu'observateur, et maintenant nous n'avons pas encore créé cette fonction, donc nous pourrions avoir un problème si cette notification s'éteint. Alors allons de l'avant et ajoutons cette fonction maintenant. Et si vous vous souvenez bien, il doit y avoir un paramètre ici appelé notification et je vais juste appeler n'importe quel objet. Euh, qui sait quels objets vont y passer. C' est une notification d'Ennis, mais je vais juste appeler ça n'importe quel objet. Cela signifie qu'il pourrait s'agir de n'importe quel type d'objets. Ça dit juste, hé, passer un paramètre ici et quoi que tu me donnes, quoi que tu lui donnes, on ne l'utilisera pas. Donc je ne vais pas m'inquiéter pour son type spécifique. D' accord ? Nous savons donc quand l'élément a été glissé sur le personnage. Ok, alors allons-y et voyons si ça a fonctionné. Je vais juste imprimer l'objet laissé sur le personnage, accord ? On verra si ça a marché. Je vais aller de l'avant et ouvrir mon consul ici pour que vous puissiez le voir et que vous étiez en cours d'exécution. Donc, le test est quand je lâche l'objet. Le succès de la notification a-t-il détecté que vous l'avez laissé tomber sur le monstre ? Et la notification fonctionne-t-elle également ? C' est un deuxième test. Et la fonction qui va être appelée lorsque la notification est appelée ? On s'appelle ça du sel ? On est en quelque sorte en train de tester trois choses ici. Et donc nous allons d'abord, faites-le glisser ailleurs. Donc vous remarquez que rien ne va se passer ici. Maintenant, c'est sûr. On le traîne sur lui et rien ne se passe encore. Nous avons donc un problème ici. Il sait comment rien ne se passe ici. Et ah, traînons comme ça. Donc rien ne se passe du tout. Nous avons donc un problème. Et savez-vous quel est le problème ? Je crois savoir ce que c'est. Donc ce que nous avons besoin de Dio est juste ici, à notre avis, a chargé. Nous devons définir la cible de ces images. Tu te souviens ? Nous ne l'avons pas encore fait, rappelez-vous, c'est facultatif. D' accord. Où est-il ? Ici. Faites glisser l'image. C' est facultatif. Apparaissent en haut. Il y a peut-être une cible. Il n'y a peut-être pas de cible. Donc notre code a fonctionné. Rien ne s'est écrasé parce que nous avons une bonne gestion de l'air. Félicitations pour avoir écrit un bon code qui n'a pas planté notre programme. Donc, tout ce que nous avons à faire ici est en vue. Est-ce que la charge dit conduit d'image alimentaire ? Uh, lâchez la cible. C' est ce qu'on appelle ça, c'est une image de monstre. Celle-là, on passe juste l'image là-bas. Et la même chose pour le cœur. L' image du cœur qui a abandonné la cible est égale à des mois. Son image. Ok, donnons ça un autre coup. une résolution rapide de problèmes. Voyons si on répare le problème. Alors je le traîne. Il n'y a rien. Je l'ai traîné sur lui et il a un accident. Oh, non. Bien. Voyons ce que ça dit. Le sélecteur non reconnu envoyé à instantané. Donc l'élément laissé sur le personnage est incorrect, et je pense que je l'ai peut-être mal orthographié. C' est un accident courant. Donc je vais cliquer sur le bouton de retour ici et voyons si je l'ai écrit. Donc voici une orthographe. D' accord. Et ah. Oh, j'ai fait ça mal. Tellement bonne prise. Ici. Bonne venue. erreur. C' est une bonne chose pour vous de voir. Ce que j'ai fait,
c'est que j'ai dit , c'est la fonction que je veux appeler. Mais j'ai accidentellement appelé ça. Je l'ai appelé le nom de la notification, et il doit donc être ceci. C' est la fonction qu'il va appeler. Vous avez probablement été assis là-bas à regarder, comme si vous étiez un idiot. Changez-le. Mais tu m'entends et tu cries sur ton écran. Et, euh, eh bien, c'est ce
que vous obtenez pour ne pas avoir été dans un de mes cours de vie Riel. Donc, euh, tu prends le gardien, fais des erreurs, alors je suis tombé sur le personnage. C' est juste là. Et je n'aime pas les minuscules. Tu vois, ça m'embête. Donc je vais le changer sur les deux. Et maintenant, donnons-lui un coup de feu. Allons-y et lançons et voyons si notre crash est corrigé. Effacez ce courrier indésirable de l'écran. Ok, on y va. Tentative numéro trois de glissement. Il ne se passe rien. Je l'ai fait glisser sur vous et l'objet a été déposé sur le personnage. On y va. Il fonctionne définitivement. Devrions-nous le tester avec le cœur ? Je pense que oui. Reprenons notre simulateur ici et testé avec le cœur. Et bien sûr, le cœur fonctionne
aussi . Donc nous venons de faire quelque chose de très cool. Nous sommes en train de traîner et de déposer, détectant l'objet sur lequel il atterrit. Et puis nous envoyons une notification. Et puis nous écoutons la notification, appelons une fonction lorsque cette notification est touchée et gérons la logique juste après. Donc c'était pas mal de choses que nous avons faites et nous des trucs assez cool. Voyons maintenant ce que nous voulons faire ensuite. Alors pensons au problème que nous essayons de résoudre. Donc, si le joueur alors ce qui va se passer est qu'il ya un besoin que le monstre a, s'il a besoin d'affection ou il a besoin de nourriture. Ok, comme n'importe quel homme. Et s'il ne s'occupe pas de ce besoin dans un certain laps de temps, il perd une vie. Et s'il donne trois vies perdues, il meurt. Ok, alors allons-y et concentrons-nous sur la mort dans la première école. Donc nous savons qu'il y a trois vies et nous savons qu'il doit y avoir une minuterie, comme toutes les trois secondes. Et il va perdre une vie s'il ne s'en occupe pas, et puis il meurt. Allons d'abord que ça marche. Je vais ouvrir le rédacteur en chef adjoint, d'accord ? Et, ah, passons ça à notre planche principale. On y va. Et, OK, donc nous avons nos écoles ici, mais nous ne les référençons pas dans notre code. Et donc je vais aller de l'avant et j'ai déménagé un peu ici. Ok, alors allons de l'avant et sélectionnons chaque école ici. C' est le numéro un. Donc je vais dire que ça s'appelle Comment veux-tu nous appeler ? On appellera sa pénalité. C' est pénalité une image. D' accord. Celui-ci est évidemment la pénalité numéro deux. Donc, euh, pénalité à l'image. Et évidemment, nous en avons une de plus. Allez. Mais au bon endroit, ce n'est pas obéir. Attendez. J' ai presque eu raison. Il pourrait y avoir une douleur. C' est pourquoi faites-le dans le code parfois. Ok, donc et on va appeler cette pénalité trois images. Et ils sont là. On a que je suis des points de vente maintenant. Ok, voyons un peu de nettoyage. Ok, on en a trois. Je suis dehors. Revenons au code. Donc ce n'est pas si écrasé ici, et je vais cliquer sur le dossier ici dans le côté gauche et cliquer sur le contrôleur de vue. Ok, donc on a nos images de pénalité et ce qu'on veut faire. Eh bien, ce que nous voulons c'est peut-être par défaut, ils ont, euh ils sont presque à travers. Et ce que nous faisons, c'est que chaque fois que vous perdez une vie la rendrait pleinement visible. Donc on va modifier ce qu'on appelle le canal Alfa de l'image elle-même,
l'opacité. de l'image elle-même, Et donc ce que je vais faire, c'est ici sur le chargement vu. Allons-y et donnons-lui une faible opacité et bien, nous devrions probablement stocker quelques variables à une constante. Alors disons que l'Alfa s'assombrit. Donc, la victoire Alfa il est faible va être 0.2 ok dans les graphismes et n'importe quoi, 1.0 est plein. D' accord. Et, euh, rien de moins que ça n'est, hum, pas plein. Ce n'est pas opaque. Donc vous avez opaque et ensuite vous avez, ah, moins que opaque, je suppose. Et avant que j'oublie,
jeconnais la propriété Alfa parce que j'ai de l'expérience avec c'est un flux de CD. avant que j'oublie,
je Ce n'est en fait pas un flotteur double CG est un certain type de,
ah, ah, flotteur qui est utilisé sur le cacao, qui est le cadre sous-jacent de IOS. Donc je sais que c'est un flotteur CD est le type, et je vais dire que les égaux opaques de serc G float égal à 1,0. Et la raison pour laquelle je les mets dans toutes les majuscules est parce que cela permet à l'utilisateur, qui est le programme ou non, que c'est une constante. Ça veut dire que ça ne changera pas. C' est vraiment une constante. C' est, euh, ça va être utilisé pour tout le monde. Hum, ok, donc on sait
que, hum, qu'on a aussi un maximum de pénalités qui est trois donc je vais stocker variable pour ça aussi, aussi. Donc, chaque fois que tu auras une mort, on va vérifier les pénalités maximales pour voir si tu veux perdre la partie ou s' il doit mourir ou pas. Donc les thés Penhall équivaut à trois, et ensuite nous avons probablement besoin de garder une trace des pénalités actuelles. Ce ne sera pas un laisser ça va être un bar. Donc les pénalités sont égales à zéro. Et si tu te demandes, genre, comment vais-je trouver ces choses de ma tête ? On s' est juste assis pour discuter du problème. Nous savons que quelques-unes de ces images doivent être ici, et nous savons que toutes les quelques secondes, il va perdre une vie si on ne prend pas soin de lui. Et alors, , quand on perd une vie, on a besoin de Teoh, rendre opaque, rendre pleinement visible. Sinon, nous avions besoin de faibles pénalités et il y a un maximum de pénalités et nous devons garder une trace des
pénalités actuelles que vous avez actuellement. a du sens, et les pénalités eso sont égales à zéro. Et donc ici, nous allons interviewé charge comme un Isar initial. Allons de l'avant et réglons juste ces images de pénalité Alphas ici pour s'assombrir parce que nous commençons. Il a une vie pleine. Donc, disons point d'image de pénalité Alfa Il y a et voir ce flux de CG que je vous parlais . C' est la propriété. Ce n'est pas un double. C' est un flotteur CG et la pénalité imagée Alfa est dim Alfa. Pas trop mal. Et l'image de pénalité à point Alfa égale dem Alfa et l'image de pénalité trois Die Alfa les égalent . Donc, pour toutes les images, faisons-le un peu voir à travers. Donc, il semble que ce n'est pas actuellement en vigueur, et cela semble vraiment bon. Ok,
ça a l'air super et ce qu'on doit faire ensuite. Ok, donc nous avons besoin d'une minuterie qui s'éteint, et toutes les trois
secondes, ça va appeler une fonction. Je suppose que oui. Réfléchissons à ça une seconde. On doit utiliser quelque chose qui s'appelle une minuterie N. Et je vais aller de l'avant et le mettre ici. On va juste l'appeler minuterie jusqu'à présent, minuterie de type N. Et, euh, on sait qu'on va l'utiliser, alors je vais aller de l'avant et mettre un point d'exclamation dessus. C' est dire, Hey, on sait qu'on va en avoir un pour sûr. Alors, allons de l'avant et simplement le déballer implicitement ici. Et s'il n'y avait pas de valeur dans, ça se bloquerait. Donc tu dois être très prudent avec ces choses. Ok, chaque fois que vous faites ça, vous devez vous assurer que vous lui assignez absolument la valeur. Sinon, vous avez un accident. Donc c'est génial. Fonction appelée minuterie de démarrage. Démarrez une minuterie. Et ce qu'il devrait faire, c'est qu'il devrait commencer la minuterie et ah, puis répété toutes les trois secondes. Et nous allons juste mettre ça en marche d'abord comme un test. Donc ce que je vais faire, c'est que je vais dire si le minuteur n'est pas égal à Neil, allons dire que le point de minuterie invalide. Souviens-toi, Souviens-toi, euh, on va commencer cette fois à différents moments dans le temps. Donc tout ce que je dis,
c'est que ,
c' s'il y a une minuterie existante avant d'en commencer une nouvelle, arrêtons la minuterie existante. C' est juste une mesure de sécurité, d' accord ? Et ils veulent dire minuterie est égal à N s point minuteur programmé avec intervalle de temps. Et on va dire que ce premier paramètre est le temps entre les appels. Alors je veux dire 3 secondes. L' invocation va être soi-même. On va appeler le Actually, je crois que j'ai mal fait ici. Désolé. Retournons en arrière. Et cette fois, on n'est pas prévu. Je crois que c'est l'air. Est-ce que le 2ème 1 que nous voulons là-bas dans cette liste là-bas. Maintenant, nous allons faire trois secondes. La cible est d'accord. Similaire à notre notification. Le sélecteur que nous voulons appeler est ah, changer l'état du jeu est une fonction que nous n'avons pas encore créée. Nous allons dire essentiellement appeler cette fonction chaque fois qu'aucune information utilisateur nécessaire répétitions
va être trêve toutes les trois secondes. Il va déclencher cette fonction ici, et il va appeler cette fonction toutes les trois secondes, et cette fonction n'existe pas. Alors allons de l'avant et créons-le. Changer l'état du jeu ok, Et remarquez comment nous n'avons pas mis un deux-points pour entendre cette fois. C' est parce que notre fonction n'a pas de paramètres, ce qui est correct pour le moment. Donc, ce que nous pouvons faire maintenant, c'est commencer à donner à nos joueurs une rampe de pénalités. Alors faisons ça maintenant. ce n'est qu'un test. Il n'aura pas toujours de pénalités. Mais pour l'instant, on va juste forcer des pénalités. Donc les pénalités vont être plus plus Donc, en gros, on dit à une pénalité, et ce qu'on va faire, c'est dire, c'est vrai. code ici, quelques if et la logique Elson diront si les pénalités sont égales à un, alors ce que nous voulons faire Eh bien, va dire pénalité un point Image maintenant égale Alfa est maintenant opaque Donc c'est complètement visible . Et ce qu'on veut aussi dio,
c'est s'assurer qu'on va juste faire un peu de ménage, donc on va dire pénalité pour mourir en images Alfa. On va juste s'assurer que le 2e 1 reste faible, juste pour le forcer juste pour s'assurer que le prochain dans la ligne, si c'était, hum si c'était déjà non grisé, tu sais que c'est maintenant, euh, grisé est il ne va jamais dire est autre si les pénalités sont égales à Ok, que pensez-vous que nous devrions dio sauver quelque chose de similaire ?
46. Application iOS 9 : My Little Monster Partie 4: Mark Price Entendre avec des pentes sourdes dot com Bienvenue de retour pour la quatrième et dernière partie de mon petit monstre et allons-y et commencer. Le code est prêt à partir et nous allons juste récapituler où nous avons fini. Donc je vais construire ça. Donc la dernière fois, notre petite créature, si on ne s'occupait pas de lui toutes les quelques secondes, il perdrait une vie. Bien sûr, nous n'avons jamais écrit le code pour prendre soin de lui avec le cœur ou avec la nourriture, pas d'affection ou de nourriture pour ce gars, et donc il mourrait juste. Mais nous avons testé que la mort a bien fonctionné. ça Toutes les trois secondes actuellement, une nouvelle école apparaît, et sur le troisième crâne, il mourra, et c'est commeçaque ça marche. On a aussi testé qu'on pouvait traîner les choses, d'accord ? Et ils retourneraient à l'endroit où ils ont besoin d'être. Et nous avons aussi testé que lorsque nous le faisons glisser sur le personnage que le journal a dit que oui, cela a fonctionné. On l'a détecté quand il est tombé sur lui. Donc, ce qu'il reste à faire, c'est en gros, chaque fois que vous traînez le cœur ou la nourriture sur lui. On devrait réinitialiser la minuterie pour qu'il ne reçoive pas de pénalité pour qu'il puisse vivre un peu plus longtemps. Donc, chaque fois que vous le nourrissez, il va vivre un peu plus longtemps. Et si vous ne le nourrissez pas dans ce délai, qui est actuellement de trois secondes, vous pouvez le changer à ce que vous voulez. Il perdra une vie. Et quand il perd trois vies, il meurt, comme vous le voyez simultanément, donc il ne reste pas grand-chose à faire. Nous faisons de grands progrès. Je vais aller de l'avant et arrêter ça et regardons son code ici. Donc, nous avons un élément vide abandonné fonction de caractère ONU. Donc on sait qu'on va devoir faire quelque chose ici. Fondamentalement, lorsque vous déposez un élément sur le personnage, nous devons réinitialiser la minuterie et ah, cela fait tout son sens, en fait. Et ah, alors qu'est-ce qu'on doit faire d'autre ? Nous devons nous assurer que nous passons entre la nourriture et le et le cœur. Je vais avoir du code pour ça. Et donc, euh, ouais, je pense qu'il nous reste juste quelques choses à faire. Vraiment. Et alors allons-y et prenons soin de ça ici. Donc,
actuellement, actuellement, chaque fois que les minuteurs ont tiré, nous avons changé l'état du jeu. Ok, donc toutes les trois secondes, on appellera
ça et on doit faire quelques choses. L' un est le changement, le type de besoin qu'il a. Soit un cœur, soit la nourriture. Et puis, ah, s'il n'a pas été pris en charge ces trois dernières secondes, alors nous devons lui infliger une pénalité. Nous devons donc écrire du code pour cela. Alors allons de l'avant et commençons par cette partie. Donc je vais faire défiler jusqu'au sommet ici et créer une nouvelle variable appelée Var Monster. Happy égal à False l'initialisera à false. Fondamentalement, c'est
quoi Will Dio, on vérifiera s'il est heureux. Ok, chaque fois que vous nourrissez le monstre, il devient heureux chaque fois que vous ne nourrissez pas le monstre et ensuite nous arrivons au changement état de
jeu. Ok, hum, il va perdre une vie, alors allons-y et finissons le code ici. Donc d'abord, quand on change l'état du jeu. Ok, nous allons juste envelopper ça dans l'état ici, donc si ce n'est monstre heureux. Donc, si le monstre n'est pas heureux, allons-y et couvrons ce manteau. Et bien sûr, c'est le code des sanctions. Ok, alors allons-y et déplaçons juste toute cette commande X pour couper. Déplaçons le juste ici dans la déclaration if ici. Donc si les monstres ne sont pas heureux, allons-y et donnons à ce gars quelques pénalités. Sinon, allons de l'avant et exécutons du code pour lui donner Ah, besoin
aléatoire. Et quand je dis besoin, je veux dire de l'affection ou de la nourriture. Alors, laisse la ruse. Je vais créer une variable,
et, euh, euh, on appellera quelque chose appelé Arc pour uniforme souligné au hasard, ok ? Et à ne pas confondre avec un uniforme que vous pourriez porter en tant que policier ou autre chose . Ce que ça veut dire, c'est que nous
allons obtenir un nombre aléatoire uniforme, le meilleur nombre aléatoire que nous puissions trouver, et c'est une sorte de plage. Donc ce qu'on dit,
c'est que
je veux que tu me fasses une colère. Une plage aléatoire, vous savez, deux chiffres. D' accord. Et donc ça va commencer à zéro et aller à la pointe un. Donc, les deux seuls chiffres que vous pouvez obtenir de ça ok, sont zéro ou un. Est-ce que ça a du sens ? Donc tu mets un à là-dedans ? Ça dit, Hey, donne-moi un hasard. Allumé entre deux nombres. Donc zéro ou un, parce que ça commence à zéro. Il n'inclut évidemment pas les deux. Ok, si tu voulais que ça inclue les deux, , tu sais, tu pourrais faire quelque chose. Vous pourriez faire quelque chose comme ça, mais nous ne voulons pas qu'il inclue ça. On voulait juste être zéro ou un. D' accord ? Et ce qu'on va faire, c'est dire, si Rand est égal à zéro. Ok, si c'est des œufs d'option, on n'a que deux options. Nourriture ou cœur. Allons de l'avant et ajustons simplement certains des paramètres visuels sur ces éléments. Donc, l'image de la nourriture point Alfa égale dim Alfa. Donc ce qu'on va dire c'est que c'est le cœur. Zéro, c'est le cœur. Alors allons-y et assombrir. La nourriture. interaction de l'utilisateur par point d'image alimentaire est égale à false. Nous ne voulons plus que l'utilisateur puisse le faire glisser. D' accord, sinon. Oh, et encore une chose. J' ai oublié, en fait, allons-y et veillons à ce que le cœur soit si fort actif. point d'image Alfa est opaque. Droit ? Nous voulons être pleinement visibles, et l'interaction de l'utilisateur avec point d'image cardiaque est égale à vrai. Ensuite, ici, on peut l'inverser, n' est-ce
pas ? On peut dire que le point de l'image du cœur Alfa est faible parce que c'est l'image de la nourriture et du cœur que l' interaction de l'
utilisateur est égale à faux. Et puis l'image alimentaire point Alfa est égale opaque et l'interaction de l'utilisateur point d'image alimentaire. Aabled est vrai. Alors rendez la nourriture active, d'accord ? Et ce qu'on va faire, c'est bien. Je pense qu'on va avoir besoin d'une autre variable, en fait, en regardant ça ici, euh, on doit être capable de stocker ce qu'est l'élément actuel. Donc fondamentalement, je vais le mettre ici en tant que groupes variables de notre élément actuel et nous allons dire que ah equals fera juste égal à zéro par défaut. On va juste stocker l'objet actuel. Et ah, je dois vraiment faire ça, hum, rendre de type you int 32. C' est ah, c'est un entier 32 bits. Il peut contenir plus de valeurs. C' est tout ce que ça dit. Juste, euh, contient plus de valeurs entier non signé qu'un int standard, ce qui est très bien. Nous allons aller de l'avant et initialiser ces 20 et revenons ici pour être changés. État du jeu, et que devons-nous faire d'autre ? Donc ce que nous faisons, c'est que nous disons, si rand est égal à zéro, allons de l'avant et rendons le, um le cœur actif et autrement, allons de l'avant et faisons de la nourriture le choix actif. Ça a l'air super. Et donc, citez ce que nous allons faire, nous dirons que l'élément actuel est égal à rand. Donc, nous allons juste stocker l'objet actuel qui a été sélectionné ici, et ensuite nous allons dire que le monstre heureux est vrai. Ok, alors regarde ça ici. Donc nous disons que si le monstre n'est pas heureux, allons-y. Donc, si tu n'as pas nourri le monstre en trois secondes, OK, il ne sera pas heureux. Et on va te donner une pénalité. Sinon, ok,
ça ne sera jamais appelé. Sinon, nous allons aller de l'avant et nous allons changer le Nous allons changer les aliments avec l'élément de coeur ou vice versa, et nous allons continuer et avancer, um eso espoirs et c'est censé être faux. Donc fondamentalement, chaque fois que nous frappons ce bloc de code, nous le réinitialisons à faux parce que vous devez le rendre heureux à chaque fois. Est-ce que ça a du sens ? Toutes les trois secondes. Tu as un objet de dragon pour le rendre heureux. Et, bien
sûr, quand on sera là
, , on va le réinitialiser à faux, et ensuite tu dois le rendre heureux à nouveau. Donc on est juste un peu en train de répéter le code ici, donc ça a l'air bien. Ah, la prochaine chose que nous devons faire est de gérer l'objet laissé sur le personnage. Il y a quelques choses que nous devons faire ici. Donc si on laisse tomber un objet sur un personnage, bien
sûr qu'il sera heureux à nouveau. Droit ? Ça a du sens. Ça veut dire que tu as fait ton travail. Maintenant, la prochaine chose que nous avons besoin de dio est ah, nous voulons donner un bonus au joueur quand ils le rendent heureux. Donc nous devons relancer la minuterie,
vous savez, vous savez, juste dit qu'il l'a dit encore. Euh, donc il n'a pas de pénalité juste après que tu l'aies nourri. Alors allons de l'avant et disons, euh, commencer la minuterie juste là, et c'est juste en dessous de nous ici. Cette fonction, nous appelons juste la fonction. Et si nous invalidons, invalidons le minuteur existant, rappelez-vous comment nous avons configuré cela avant ? Et peut-être que tu ne l'as pas compris à l'époque. Mais maintenant je peux peut-être vous dio parce que nous devons continuer à appeler cette fonction et nous devons arrêter la minuterie précédente de tirer. Et puis on a recommencé ici, OK, pas grand-chose. Et donc on démarre la minuterie qui a l'air super. Et puis faisons un peu Ah, faisons un peu de ménage ici. C' est un point d'image alimentaire Alfa égal à dim Alfa. Donc, fondamentalement, chaque fois que vous chaque fois que vous tombez dans l'élément sur lui, nous voulons juste que nous voulons remettre ces éléments à la valeur par défaut, vous savez, sorte de donner au joueur une pause d'avoir le flux caractère, vous savez, il est donc désactivé les deux abeilles, en fait. Donc, le point d'image de cœur Alfa est égal à Alfa faible et l'interaction de l'utilisateur de point d'image de cœur activé est égal faux. Ok,
ça a l'air très bien, sauf le fait qu'il me manque un signe égal. Alors regardons notre code ici. C' est ce que j'aime faire est de cartographier ce qui va se passer dans l'ordre des événements du point de vue de l'utilisateur. Donc, quand nous savons que le code fonctionne, quand vous laissez tomber l'élément, nous savons qu'il appelle ceci ici. Ok, donc on a laissé tomber un objet. Donc, les monstres maintenant heureux nous réinitialisons la minuterie. Donnez au joueur trois secondes de plus. Allons assombrir le cœur et la nourriture. Dis, Hey, tu n'as pas besoin de traîner quoi que ce soit sur lui. Il est heureux pendant au moins trois secondes. Peut-être que dans un vrai jeu, ça pourrait prendre quelques minutes, tu sais, tu sais comment ils sont. Comme si tu jouais ça comme si tu étais en classe et que le salaire de Giga serait
,
comme t'embêter , , comme chaque minute veut de la nourriture, ou ça va mourir. Et les gars aiment avoir un bébé. Pourquoi acheter un jouet ? C' est comme avoir un bébé. J' ai eu
desbébés, des au
moins ma femme l'a fait, et je sais ce que c'est. Et ils sont assez nécessiteux. En fait, ne sais même pas pourquoi. Reconstruire ça. Pourquoi construire quelque chose qui est super dans le besoin de toute façon, mis à part le point. Donc il est nécessaire. Tu peux changer l'heure si tu veux, et d'accord, donc on a désactivé ceux qui ont l'air super. Et, euh, OK, ça a l'air cool. Et, euh, peut-être que vous vous demandez pourquoi, hum, nous stockons l'élément actuel parce que nous n'utilisons vraiment nulle part. Je vais vous expliquer ça dans une minute, mais en gros, c'est le cas quand vous laissez tomber l'objet ici, OK. Ah, c'est pour qu'on le sache. Donc on sait quel effet sonore jouer quand on met les sons et dans quoi tu vas mettre Sounds ? Ouais, on va mettre des sons en semi-cool. Donc c'est pour qu'on sache quel effet sonore jouer, alors OK, donc je ne laisse pas tomber ce personnage. C' est génial. On démarre vraiment la minuterie. Et si on ne fait pas ça, il aura les pénalités. Cela peut très bien fonctionner. Allons de l'avant et exécutons et voyons si ces quelques lignes de code nous amènent là où nous devons être. Ok, on y va. On y va. D' accord. Donc si je le traîne ici, ils sont tous les deux faibles. C' est génial. Ok, trois secondes passent. C' est génial. Il est toujours heureux. Nourrissez-le encore. Je ne vois pas encore d'écoles. C' est un bon signe, parce que je le nourrit encore maintenant. Ne faisons rien. On va attendre l'un d'entre eux et attendre encore trois secondes pour voir si on a un crâne, ce qu'on devrait encore trois secondes pour voir si on a une école et qu'on devrait le nourrir maintenant, on devrait pas obtenir une école que les choses devraient revenir à la vie. Ok, ça a l'air super. Je vais le laisser revenir et attendre trois secondes et il devrait avoir une école et mourir. Et je pense que notre code fonctionne. C' est plutôt cool. Donc je pense que la dernière chose à faire est d'ajouter des effets sonores. Maintenant, c'est la partie amusante. Euh, j'aime que j'aime faire ça. Et, ah, j'adore mettre des effets sonores et autant de points d'accès que possible. Il y a quelque chose à ce sujet, en passant, qui apporte une meilleure expérience utilisateur aux gens. Pas quand vous en faites trop,
mais même sur APS standard. Je ne sais pas si vous avez déjà joué avec l'application Facebook, mais récemment, ils ont ajouté, comme certains whizzes et pops son mineur quand vous faites des choses. Mais cela ajoute une certaine vie en valeur à votre code. et, Euhet,euh, les générations qui arrivent, la génération millénaire en particulier, et vous pouvez faire partie de ces yeux particulièrement intéressés par les jeux et les choses qui sont passionnantes et aventureux. Et il est donc bon d'apporter autant de vie et d'excitation à votre APS est possible parce que sont
les publics qui dépensent de l'argent sur votre application. Alors gardez ça à l'esprit. Ok, alors allons de l'avant et créons un peu de son. On l'a déjà fait une fois. On recommencera cette fois. Donc on veut jouer de la musique en arrière-plan. On veut aussi avoir des effets sonores quand il mord quand tu as donné le cœur quand il meurt. Et puis le son du crâne quand, fond, Ah, il perd la vie. Donc je vais aller de l'avant et trouver mes fichiers sonores ici, le
sortir ici. Et on y va. Donc on a de la musique grotte et ensuite on a ces ondes ici, ces fichiers d'ondes de points , OK ? Et, ah, je vais aller de l'avant et juste les traîner jusqu'au projet. C' est comme si là, ils sont dans le projet à l'air génial. Donc maintenant, ce qu'on va faire, c'est créer des lecteurs de musique. Bon, jusqu'à présent, lecteur de
musique, un audio en V, on va créer des joueurs, pas tous les lecteurs de musique. Certains vont jouer des effets sonores. D' accord ? Et je crois que j'oublie d'importer une fondation V. Rappelez-vous, nous devons importer le, euh, le code qui a réellement le lecteur audio pour pouvoir l'utiliser. Et c'est là. Ça a l'air bien. Sue Les effets sonores maintenant Sound fix, au fait. Parfois, j'aime donner des choses, noms, vice versa au lieu de dire, vous savez, mordre un effet sonore, ce qui pourrait avoir plus de sens en anglais. Mais pensez à ça. Et si on avait une image de morsure, un contrôleur de morsure ? Si nous avons juste mis le son corrigé par tout ce que nous avons à faire quand nous recherchons la complétion automatique est type S F X, et il va seulement tirer tout notre effet sonore pour que nous puissions rapidement l'attraper. Donc j'aime préfixer les choses, euh, par ce qu'elles sont. Donc, ils sont facilement référencer le coeur F X Herbal Hvar et nous mettons les
points d'exclamation à la fin de celui-ci parce que nous allons garantir qu'il ya une valeur dans
ces joueurs ici. Ok, la mort du
cœur quand il meurt, peut-être un lecteur audio et ah, l'école comme une école d'effets un lecteur audio B. 1234 C'est plutôt beau pour moi. Et si tu te souviens, on doit les initialiser, non ? Ah, et rappelez-vous, on ne peut pas non plus garantir que ça va marcher. Bien sûr, nous allons le garantir,
mais, euh, ces fichiers, ces fichiers, si nous chargeons un fichier à partir de la ressource, il peut ne pas retourner quoi que ce soit. Eso, on a besoin d'orteil. A faire un bloc ici, rappelez-vous, Parce que nous devons utiliser le mot-clé try en face de ces joueurs ici, sinon cela ne fonctionnera pas. Donc, un V oops impairs équivaut à un V lecteurs audio. Donc on va juste à Stan. Elle l'a mangé ici. Et, euh, le contenu de votre Ellis. Très bien. Et donc nous allons créer une nouvelle parenthèse ouverte Earl du NSC, et nous allons dio ah, classer Ural avec le chemin que je crois est ce que nous voulons. Et ça va être N s bundle ce chemin de point principal du bundle pour la ressource. Et ça a l'air bien. Et on va appeler ce point de musique de caverne M Legos et tout. C' est MP 3, et ça a l'air bien et ça va exiger un point d'exclamation juste là. Et eso si cela est déroutant du tout, nous sommes en train de créer un lecteur audio. C' est la méthode initiale d'Isar. Il veut une URL à Mossoul. On aurait pu bloquer ça. Nous aurions pu mettre cela dans son propre dans sa propre variable avant lui. Mais il était juste logique de le faire ici à l'intérieur en tant que paramètre. Hum, et puis, ah, donc nous créons un problème rural, et il veut le chemin du fichier. Alors nous appelons une autre fonction, et c'est bundle cet os principal de ce chemin pour la ressource. Encore une fois, j'aurais pu faire ça. J' aurais pu dire de nos égaux. Et puis je pourrais en fait euh, en fait, première chose que je pourrais faire, c'est que je pourrais dire, euh, le chemin
des ressources a fait le plus intérieur d'abord, qui est celui-ci juste ici. D' accord. Donc je pourrais le faire là-bas, et ensuite je pourrais dire de nos égaux u r l. Et puis ce que je pourrais faire, c'est que je pourrais saisir cette année et ah, c'est à des fins de démonstration. Donc, vous le voyez dans les deux sens. Et donc il y a le chemin de ressource K et les dans ce cas devrait être laissé parce que nous ne
allons pas les modifier. Laisse entrer et puis à la toute fin ici, maintenant on peut dire que tu es malade. Donc la même chose s'est produite ici sauf de manière juste plus explicite. Je l'ai pris d'une ligne de code à trois. C' est à l'envers. Mais juste pour que vous puissiez voir que c'est ce que vous pouvez dio et OK, alors nous avons essayé ça. Et, bien
sûr, sur un bloc d'essai, nous allons avoir besoin d'une tribu qui va aussi attraper. Et si tu te souviens de la dernière fois, on va essayer d'attraper l'erreur. Donc, cela se remplira automatiquement s'il existe. Mettre cette description de débogage de point d'air d'impression. Espérons que ce petit point d'exclamation rouge disparaisse. Très bien. Ok, alors on y va. Nous venons de créer notre premier lecteur audio. Maintenant, je ne veux pas faire trois lignes de code pour tout ça, donc je vais consolider les autres en une seule. Donc je vais aller de l'avant et faire la même chose sur tout ça ici. Donc, nous allons dire essayer SFX morsure est égal à un V audio, peut-être le contenu du lecteur audio de votre l et cela va être NSC Earl Europhile Path et
Ennis Bundle ce chemin principal de point de bundle pour la ressource. Et celui-ci va être mordu de type vague et mettre le point d'exclamation là. Et maintenant, je vais juste copier ça trois autres fois. Tu es genre, Oh, s'il te
plaît, Mark, ne tape pas ça à travers ça. Je ne veux pas le regarder. Heureusement pour toi,
tu as une vidéo. Tu peux sauter des trucs. Tu t'ennuies déjà ? Il suffit de sauter des trucs. C' est ce que je ferais. Tu t'ennuies. Écoute-moi pour sauter. Bon, on
y va. Évidemment, c'est les mêmes noms. On va changer les choses. Celui-ci va être un effet sonore. Coeur. Ça va être le son si X Death va sonner pour X crâne. Très bien. Et ceux-ci, bien
sûr, changeront Will aussi. Donc ça va être du coeur. Peut-être que ce sont les noms des fichiers, et ils sont tous nommés. Je pense que la même chose sur cette morsure fait sa mort. Et puis celui-ci est crâne mordre coeur mort vague crâne. Ah, il y a de la facilité là-dessus. J' ai attrapé le mauvais genre de vague, mec. Très bien, euh, donc c'est bien. La musique caverne n'est pas MP 3. Comme vous pouviez le voir dans la main gauche, côté. Donc on a un avion audio. C' est vraiment cool. Et, ah, si tout ça marche, allons-y et préparez-vous à les jouer. Donc, um lecteur de musique dot se prépare à jouer et le lecteur de musique. Nous pouvons juste commencer tout de suite parce que c'est de la musique à vapeur, donc nous allons juste jouer une fois qu'il est prêt à jouer et puis sonner f X mordre vers le haut. Préparez-vous à jouer le son FX Effets sonores point de cœur Préparez-vous à jouer les effets sonores mort point se préparer à jouer et enfin, les effets
sonores. Skoll qui se préparait à jouer bien. Et, ah, nous avons mis notre audio en place très facile. En passant, ce n'est pas la seule façon de lire de l'audio. n'y a rien de mal à le faire de cette façon. C' est tout à fait bien. C' est agréable d'avoir vos propres lecteurs audio si bien. On a un peu d'audio ici et réfléchissons à quand on veut jouer l'audio. Ok, donc chaque fois qu'on dépose un objet sur le personnage comme un cœur ou, euh, nourriture, on doit jouer de l'audio, non ? Mais ils doivent être des sons différents. Donc, ce que nous devons faire est de dire, si l'élément actuel est égal, rappelez-vous que nous avons défini un zéro ou un dans ces valeurs ici. Donc zéro était ah, coeur et un était de la nourriture. Donc si c'est zéro, jouons le um malgré l'effet sonore pour le cœur scientifique cerceaux de cœur, c'est assez facile. Regarde comme c'était simple, moi. Assure-toi juste. Ouais,
ça a l'air bien. Eso sinon, si ce n'était pas les effets sonores sans cœur un jeu de point de morsure. Ok, et ça a l'air bien. Quoi d'autre ? Quand tu joues quand il y a une pénalité, ça. Donc, chaque fois que les pénalités plus plus est nous allons de l'avant et ah, disons s f x crâne point jouer. Est-ce qu'on manque d'autres effets sonores ? La mort ? C' est vrai. Alors jeu terminé. Donc, à la fin du jeu, on va jouer à l'animation de la mort, et bien sûr, on va jouer
des on va jouer à l'animation de la mort,
et bien sûr, on
va jouer
deseffets sonores de la mort, c'est tout à fait logique. Et ah, quoi d'autre avons-nous besoin de dio um, dans tous les endroits ? Donnons-lui un coup de feu. Vous ne serez peut-être pas en mesure d'entendre les sons à travers mon enregistrement ici, mais je vous dirai s'ils fonctionnent et qu'ils devraient travailler sur votre côté. Alors donnons un coup de feu ici. La musique est définitivement en train de jouer. C' est pour sonner dans mes oreilles. Les crânes aussi. Tout comme le cœur. C' était vraiment fort. Il y a encore le cœur. Allez, donne-moi de la nourriture. Allez, allez, allez, allez. C' est aléatoire. Il dit que c'est aléatoire, mais ce n'est pas différent que de retourner 1/4. Droit ? Vous pourriez avoir 20 têtes et un dire. On y va. La nourriture fonctionne définitivement. Voyons si la mort joue correctement et nous l'appellerons bien. Il y a la mort ou l'école. Au moins, la mort travaille dans les écoles qui travaillent. Très bien. Ok, OK. D' accord. D' accord. Ça marche. Je pense qu'on a tous fini. Je pense qu'on a fini ici. Hum, pas trop mal. On a joué des effets sonores. J' ai apporté une logique de jeu. Ce n'est vraiment pas beaucoup de code. Littéralement. 151 lignes de code. Et il y a des trucs plutôt cool qui se passent ici. Certaines choses que vous pourriez vouloir faire pour améliorer cela est de le faire comme un vrai animal de compagnie giga. Vous savez, ajoutez d'autres fonctionnalités. Peut-être que quelques animations plus vont par cet ensemble d'art de la bande dessinée intelligente, où je l'ai eu et ajouter quelques choses supplémentaires à elle. Construisez votre propre jeu sur le menu. Commencez à recommencer. Peut-être à certains nouveaux personnages où vous pouvez choisir le personnage que vous voulez élever. Ok, euh, et tout un tas de caractéristiques. C' est tout en vous. Je gamine, comme vous pouvez le voir ici. Pas de kit Sprite. On a fait beaucoup de choses vraiment cool, OK ? choses qui ah sont super applicables au monde réel. Alors récapitons ce que nous avons fait dans ce projet. Nous avons donc écrit une image personnalisée d'utilisation. Comme vous pouvez le voir ici une image personnalisée de vous en utilisant l'héritage et les classes. On a parlé de la façon de traîner les choses, taper, les faire glisser. Que se passe-t-il lorsque vous lâchez prise et détectez également lorsque vous le déposez sur une autre vue en détectant si elle est dans ces limites. Nous sommes également allés de l'avant et avons appris les notifications. Comment orteil créer des notifications comme ça et ensuite comment les écouter en tant qu'observateur, comme nous l'avons fait ici. Et il appelle une fonction Donc notifications air passé tout au long de votre application. Les cours ont juste besoin d'écouter les trucs super cool. Quoi d'autre avons-nous dio images. Donc, les images d'animation sur les vues d'image de Juillet et nous re pris en compte ce truc pour être dans leurs propres fonctions dans une sous-classe sur votre image. Des trucs très puissants. Nous Ah, bien
sûr, cette mise en page automatique dans ce storboard. Et, euh, je serais des points de vente qui traînent des choses, bougent des choses que nous avons testées. Aussi, rappelez-vous comment nous avons testé les classes de taille et nous avons fait ce mode de support paysage. C' était beaucoup de plaisir, vraiment cool. Et personne d'autre que je connais ne va vraiment en profondeur à ça aussi bien que nous avons fait des choses si importantes. Vous apprenez sur les minuteries et s minuterie comment faire une minuterie répétitive. Vous en avez appris un peu plus sur le lecteur audio, et ah, wow. Nous avons appris de grandes choses ici comment rendre constant ici quand vous voulez des choses qui vont rester les mêmes et que vous allez les réutiliser. Mettez-les tous en majuscules. Nous avons appris beaucoup de choses. Ah, vous êtes sur le point de devenir un développeur professionnel IOS. Alors tapote-toi sur le dos. C' était, ah, un projet de
grande taille. Ils vont seulement s'agrandir d'ici. Mais c'est bon. Vous devriez passer beaucoup de temps là-dessus. Ce cours n'est pas censé être une vidéo rapide, vous savez, vous savez,d'entrée et de sortie de
10 minutes. Je veux que vous conserviez ces choses. Et je suis sûr que si vous faites ces choses et que vous y consacrez beaucoup de temps, vous serez en mesure d'obtenir un emploi. Ce que je fais tous les jours dans ta vie si bien sur le chemin. Félicitations. J' en ai fini de parler. Passez une belle journée ou nuit où que vous soyez en vous déconnectant ici. À la prochaine fois.
47. Contrôles de vues modèle (MVC): Hey, qu'est-ce qui se passe, tout le monde ? Mark Prize ici. Cela ralentit dot com Et aujourd'hui, nous allons parler d'un
principe fondamental de programmation et je voulais que IOS soit construit sur et qu'il s'appelle le contrôleur de vue modèle va tirer dans ma boutique photo ici parce que nous allons dessiner aujourd'hui un peu. Et je vais vous montrer un manteau aujourd'hui aussi pour le contrôleur de vue modèle. Qu' est-ce que c'est ? Vous entendez l'expression M V c assez souvent et le contrôleur de vue du modèle est l'idée que vous avez vous. Vous divisez logiquement votre application ou votre produit en trois niveaux et ah, sorte que le modèle. Ok, le modèle. C' est une écriture terrible. Qui sont vos données ? OK ? Les données devraient se gérer elles-mêmes. Donc, si vous avez une application où vous stockez une liste de personnes et que vous pouvez peut-être montrer leurs images et envoyer des messages interactifs à ces personnes, eh bien, les données que le modèle peut être une classe qui est une personne et peut être la prénom nom nom sur. Peut-être qu'il a une fonction appelée print full name. Et donc il saisit un nom complet. Et donc l'idée est que les données sont séparées et qu'elles se gèrent elles-mêmes plutôt que de les mettre dans un contrôleur de
vue et de les gérer là. Donc, vos modèles, les données, votre vue est votre point de vue. C' est ce que l'utilisateur voit réellement. Donc, l'interface utilisateur K maintenant, il devrait en fait être juste la vue. Vous ne devriez pas avoir de logique complexe ici. Tu ne devrais pas faire de calculs ici. La vue devrait simplement afficher l'utilisateur aux données. Donc, ce sont des classes conçues sur mesure. Donc, si vous voulez créer une classe personnalisée qui a,
comme, comme, coins
arrondis, choses comme ça, vous devriez gérer tout cela dans votre vue, calque. Ok, vous ne feriez pas ça à votre avis, contrôleur. Et je vais vous montrer quelques exemples de ce qu'il ne faut pas faire et ce qu'il faut faire. Vue du modèle dans le contrôleur. Ok, votre manette est comme la colle. Ok, la colle, la reliure. C' est ce qui prend les données et les injecte dans la vue est comme le connecteur. Et tu vas avoir un peu plus de réflexion ici et à propos d'attraper des trucs et mettre là où ils doivent être. Donc, votre contrôleur regarde comme le réseau qui tire les choses et les met là où il doit être. Et donc, euh, regarde
vraiment comme ça. Vous avez vos données ici, K. Donc c'est votre M pour mannequin ? Ce sont vos données. D' accord. Et puis ici, vous avez votre point de vue. C' est la vue. D' accord ? Il a votre interface utilisateur. Et ce qui se passe, c'est que vous avez votre contrôleur. OK, donc le contrôleur va récupérer les données du modèle, accord ? Et puis il va passer ces données dans la vue. C' est comme ça que ça marche. Et votre manette aussi. Donc, disons que la vue manipule les données. Disons que cela change la valeur qui va le renvoyer au contrôleur,
puis le contrôleur est là, puis va mettre à jour le, euh, le modèle, bien
sûr, et récupérer les données du modèle. Ce n'est pas le cœur du principe. Pas du tout, En fait, c'est assez simple, mais vous devez savoir comment l'utiliser parce qu'il est très commun pour les développeurs de faire des
erreurs stupides parce qu'ils ne savent pas qu'ils ne comprennent pas la quantité de vous contrôleur. Et si vous voulez vraiment impressionner un employeur ou écrire une bonne application, vous allez vouloir utiliser le contrôleur de vue modèle dans sa forme la plus pure. Allons-y et fermons dans un magasin de photos ici et je vais ouvrir le code X. Laisse-moi juste faire ça ici. Code X Bêta. Nous sommes toujours dans la version bêta pour le moment, Beta 6. Et créons un nouveau projet X Code. application à vue unique est très bien. Et on va appeler ce test M V C. Et je n'ai pas besoin d'obtenir un dépôt sur celui-ci ici, et OK, donc c'est votre projet IOS standard que nous avons fait dans le passé et remarque Nous avons un contrôleur de
vue. Donc c'est notre contrôleur, non ? C' est le contrôleur ici. Rendons ça un peu plus grand pour toi. C' est votre manette. Et si tu vas à ton storyboard principal, OK. C' est votre point de vue maintenant que vous êtes comme, attendez une minute. C' est le contrôleur de vue dit. Eh bien, ce que vous avez ici, c'est que vous avez une vue, est-ce
pas ? D' accord. Et un contrôleur de vue, Gestionnaires de vous. Il y a donc que le directeur t'enseignait. Le contrôleur gère la vue, saisit les données, met dedans, et si la vue est manipulée, il la renvoie au contrôleur. Et qui met à jour les données Donc si vous faites un clic droit sur votre contrôleur de vue Maintenant sur le storyboard ,
nous avons son ne vous sauve contrôleurs représentation visuelle de votre manteau. , Mais la clé ici est la vue. Ok, dans ton storboard. Ah, en fait, tout
votre storyboard pourrait être considéré comme une couche de gestion de vue. Donc, j'ai droit Cliquez sur le contrôleur de vue. Notez comment chaque contrôleur de vue a une vue associée qu'il fonctionne avec des
choses si cool . Donc vous avez une vue ici. Maintenant, parlons. Alors parlons de quoi ? Une instance où vous avez peut-être utilisé le contrôleur de vue de modèle ou comment l'utiliser au mieux s oh, juste ici dans votre dossier de projet ici. Cliquez avec le bouton droit et accédez au nouveau groupe. Ce que j'aime faire mes applications est en fait créer des dossiers pour chacun de ces groupes pour les séparer
logiquement. Donc je sais que je mets les choses là où elles doivent être. Donc, euh, dit vue. Donc, je fais la vue du contrôleur, n'est-ce pas ? Cliquez sur, nouveau groupe et modèle. Ok, donc d'abord, allons-y et traînons le contrôleur de vue dans le champ du contrôleur ici dans le contrôle du dossier. Maintenant, je n'aime pas Teoh. Même ces storyboard est probablement catégoriser comme de vous. Vous ne voudrez peut-être pas les déplacer car le film va dans le dossier d'affichage simplement parce que vos projets les référencent. Et si vous les
déplacez, vous devrez reconnecter les chemins et vous aurez un peu de douleur. Donc je laisserais ça là pour l'instant. Et d' autres choses que j'aime faire ça. Certaines choses qui ne tombent généralement pas dans le contrôleur de vue de modèle sont des choses comme ressource est, Peut-être que vous avez quelques pensées personnalisées que vous voulez faire glisser là-dedans. Stenson a une ressource est dossier. Parfois, j'ai aussi un util complet pour les utilitaires comme les utilitaires tiers qui font certaines choses qui ne tombent peut-être pas nécessairement dans le contrôleur de vue du modèle. Mais dans l'ensemble, ils vont tous tomber dans votre contrôleur de vue modèle ici. Et donc vous êtes comme, Eh bien, qu'est-ce que ça veut dire exactement ? Eh bien, parlons de ça. Donc le dossier intermodal. Disons que dans notre exemple de l'application où vous gérez les gens, c'est
peut-être une application de réseau social. Ok, donc je clique avec le bouton droit de la souris sur mon dossier de modèle
et je fais un nouveau fichier, et ce sera un fichier rapide. Et encore une fois, rappelez-vous, dans la plupart des cas, votre modèle ne devrait pas avoir besoin de vous référencer comme il devrait être juste vos classes. Vos données, dans la plupart des cas, pas tous les cas, mais dans la plupart des cas. Donc nous appellerons cette personne. Et ce qu'on va faire, c'est créer une classe appelée « personne ». D' accord ? Personne de classe et ah, bar
privé. Prénom. Comme on parle, non ? Un bar privé. Nom de famille. D' accord. Et puis s o. ce sont des variables privées. Bien sûr, nous avons besoin des publics aussi bien à certains de nos prénoms de type chaîne. Et il va retourner la variable de prénom de soulignement. Il souligne juste le nom de celui-ci. Ça ne veut rien dire d'autre que le nom. D' accord. Et puis le nom de la barre de type chaîne va retourner le nom de famille. Et puis disons que nous voulons une propriété calculée, comme
eso, nom complet de la
barre, et il va retourner une chaîne. Et ça va juste revenir. , Eh bien, disons que le prénom est en compétition dans le format de chaîne spécial ici, donc vous devriez être familier avec ça, non ? Donc, nous pourrions juste ce que nous pouvons faire est que nous pouvons dire le prénom, puis un autre ici et appelé nom de famille vient juste d'attraper les variables et nous avons juste mis un espace entre eux. Donc ça va juste créer une chaîne spéciale qui imprime le nom complet. Donc on a un cours ici. Voici nos données. Hum, et c'est là que le nom complet devrait vivre. Ok, donc tu es genre, Eh bien, qu'est-ce que ça veut dire ? Essayons quelque chose ici. Enlève ce nom complet. C' est cette propriété informatique, non ? Ce que les nouveaux programmeurs feront, c'est qu'ils vont entrer dans leur contrôleur ici. Euh, en fait, faisons un peu plus de contexte. Disons que nous voulons imprimer le nom complet. D' accord ? Nous voulons imprimer le nom complet à l'écran. Donnons-lui un contexte complet, complètement parfait ici. Donc, nous voulons imprimer le nom complet ici sur l'écran. C' est notre nom complet. D' accord. Je vais l'épingler. Euh, en fait, on va juste épingler 66 par le haut. Donnez-lui un avec une hauteur et dans le menu d'alignement ici, nous allons juste horizontalement dans le conteneur, donc c'est sur notre écran. D' accord. Je vais ouvrir l'éditeur assistant, et je vais faire glisser un contrôle Ivy Outlet de votre étiquette ici et c'est IBL, et on va juste appeler ce nom complet. Ok, ferme le rédacteur en chef adjoint. Donc c'est notre label complet. C' est connecté. Revenons au contrôleur de vue. Bon, disons juste ici. Allons travailler. Revenons en dehors de notre vue. Contrôle. Allons voir notre personne, pas Swift. Et donnons-lui une première Isar. Encore une chose, tu es comme s'il sautait partout. Eh bien, il
suffit de suivre. Ça fait que c'est plus logique que nous passons par ici. Donc on a notre premier Isar, n'est-ce pas ? Donc, euh, donc dedans. Et nous allons dire, d' abord de type chaîne dernière des chaînes de type. Lorsque vous créez une nouvelle personne, elle doit avoir un prénom. Donc moi. Le prénom était le premier et le moi. Le nom de famille du trait de soulignement est égal au dernier. Ok, donc nous venons de créer un Isar initial un constructeur. Et quand vous créez une nouvelle personne et que nous voulons passer cela dans OK. Et actuellement, nous avons commenté le nom complet des propriétés calculées. Retourne à la manette de vue, accord ? Et à votre avis, a chargé juste ici. Créons une nouvelle personne de notre personne égale et dira personne et passera dans le prénom. Dernier sensé. Dis, euh, John Hancock. Voilà, tu y vas. Donc on vient de créer une personne en ce moment ? Eh bien, pour en faire un Let's ce qui ne nous crie pas dessus. Ok, donc on a le label complet, pas vrai ? Donc, ce qu'un nouveau programmeur va dio est quelque chose comme ça. Ils diront que le texte de point de nom complet est égal à personne. Eh bien, nous allons faire la syntaxe de chaîne spéciale, non ? Ils vont le faire et ils diront qu'une personne donne son prénom. D' accord, alors on le refera avec de l'espace entre la personne, pas le nom de famille. Et si je lance ceci juste pour m'assurer qu'il fonctionne donc sous vu il charge, nous créons une nouvelle personne. Et puis, euh, on a passé le prénom, et ils essayaient d'imprimer le nom complet. Ok, essayez un nom complet différent de celui de l'écran. Débarrassez-vous de ça. Ne l'a pas fait. Ici, il vient chargement, chargement. On y arrive presque. Et venez il y a. Donc, vous voyez juste là, à droite. On vient d'imprimer un nom complet. C' est ce qu'un nouveau programmeur fera comme nous l'avons fait ici. Et peut-être que tu penses, qu'est-ce qui ne va pas avec ça ? Eh bien, voilà le problème. Ce que vous venez de faire, c'est que vous avez écrit une logique de couche de modèle dans votre vue, Controller. Ce que vous avez fait, c'est que vous avez manipulé des données pour les montrer dans la vue. C' est très mauvais. Vous ne voulez pas manipuler les données. Vous ne voulez pas faire quelque chose comme ça ici dans le contrôleur de vue, OK ? Parce que ce qui se passe est disons que vous avez 10 contrôleurs de vue et que vous devez obtenir le prénom sur tous les 10 d'entre eux. Tu vas faire ça 10 fois différentes. Tu crois que tu pourrais rencontrer un problème ? Vous pourriez avoir un accident, faire quelque chose de mal ou un autre programmeur pourrait. Oui, c'est très possible. Donc, vous savez, vous avez introduit des bogues dans votre code. Peut-être que quelqu'un a presque tapé si vite. Et ils ont dit, prénom, prénom, non ? Tout d'un coup, dans 10 endroits différents, vous avez écrit du code, et ce n'est pas testable, et vous avez votre sujette à l'air. Ce qu'il y a de mieux, c'est de faire ce qu'on avait avant de retourner à ton cours de personne ici, accord. Et peu commun. C' est ici. Maintenant, nous avons une propriété informatique appelée nom complet. C' est manipuler les données. C' est là qu'il devrait vivre dans votre classe de personne dans votre modèle. Et là, tout ce que tu as à dio au lieu de faire tout ça, tu dis juste personne, pas nom complet. Et puis ça va vous donner exactement le même résultat. Fait. Si je construis et
coure, ça va nous donner exactement le même résultat. Mais le fait est que
nous avons extrait le modèle, la manipulation des données en dehors du contrôleur. Donc je vous ai montré un exemple sur son travail juste là de quoi ? Pas à dio D'accord avec ce qu'il ne faut pas faire à votre avis. Contrôleurs. Vous ne voulez pas manipuler les données. Voici un autre exemple de ce qu'il ne faut pas faire, et puis je vais vous montrer la bonne voie. Disons qu'on a une,
euh, euh, disons qu'on a une image, accord ? C' était une image ici,
et, et, euh, et quoi ? Quelque chose de complètement aléatoire que nous pouvons attraper de l'Internet Ici, Voyons quelque chose de complètement aléatoire. Disons, euh, le monde de
Bobby, parce qu'ils regardaient cette émission. Howie Mandel trucs assez cool. Bon, disons
qu'on veut montrer l'image du monde de Bobby ici. Je vais juste prendre ça sur Internet, le faire glisser sur mon bureau. Ok, changeons le nom appelé. C' est un cadeau que je ne veux pas donner. Attends. Attendez ici, allons, hum, Faisons ce gars ici. On y va. PNG, Bobby. Je trouve qu'il y a des problèmes quand vous parfois lorsque vous utilisez des
cadeaux, des cadeaux, mais vous le prononcez avec IOS vous ne voulez pas. Ce n'est pas un bon type de fichier de toute façon. résolutions lentes, rien de génial. Ok, donc on a Bobby. Allons-y et jetons-le dans notre dossier Assets,
et, et, euh, il a l'air heureux. Il ne sera pas heureux parce qu'on va faire ça de la mauvaise façon d'abord. Alors il sera heureux. Alors passons à Bobby. L' image ici qui me permet de le sélectionner. Faisons en forme d'aspect. On y va, et je vais aller de l'avant et lui donner un dans la hauteur. Et il était fanion de 93 de l'étiquette supérieure au voisin le plus proche, et puis nous allons de l'avant et horizontal dans un conteneur sur le menu d'alignement ici. Alors maintenant on a raison à Bobby, et voici ce qu'on veut faire. Je vais le faire ici. Mais ce que nous voulons faire, c'est que nous voulons au coin de cette vue, n'est-ce pas ? Parce que peut-être bien, je pense que les images carrées de toute façon, un peu difficile. Ils ne sont pas très attrayants pour un utilisateur. Ce ne sont pas la meilleure expérience que nous voulons au coin de la rue un peu. Et alors quoi ? Un nouveau programmeur. Dio est quelque chose comme ça. Ils prendront une sortie I B. D' accord ? Et maintenant, ils ont tout ce qu'ils font, c'est arrondir les coins. Ils ne manipulent même pas. Ne modifiez même pas l'image qui manipule les coins de la vue. Alors quel nouveau programme fera quelque chose comme ça. Ils vont faire une image, tu diras, image de
Bobby. Je vais fermer l'éditeur assistant ici et revenir au contrôleur de vue et dans la vue, a fait le chargement. Un nouveau programmeur dira, Oh, Bobby, point
d'image Euh, rayon de coin du point d'
repaire est égal à 5,0 et nous ne voulons pas que l'image aille en dehors de ces coins. Disons, euh, l'image de
Bobby point clip pour équilibrer est vrai. Nous voulons couper les coins de l'image pour ne pas dépasser le rayon là-bas. Donc je vais le faire ici maintenant,
et, euh, euh, on devrait voir un très beau regard autour de l'image d'identité à un moment donné. D' accord. Et, euh oups. Attendez ici. Comme ce type craint. Ce n'est pas le cas. Ça ne marche même pas. Eh bien, voilà le problème. Donc, um, tout
ça fonctionne ici, mais dans notre planche principale ici, nous avons fait bon aspect pour ne pas voir les coins de la vue. Donc, nous allons vraiment changer l'aspect. Sentez-vous pour l'instant juste pour le plaisir et réexécutez-le ici. Donc juste pour aller sur les bords de vous. J' essaye juste de démontrer qu'on peut au coin de la rue. Alors, voilà. Tu vois les coins autour, non ? Donc, le nouveau programmeur le fera ici dans le contrôleur de vue. Mais c'est mauvais. La raison pour laquelle il n'est pas réutilisable. Ce n'est pas testable. Plus vous avez de code à écrire à différents endroits. Disons que nous voulons mettre cette image dans d'autres endroits comme nous allons réécrire le code. C' est mauvais. Tout comme l'autre chose qu'on a fait, c'était des paris. Ce que nous voulons faire est de se débarrasser de cette commande X pour la couper. On n'a même pas besoin du magasin Ivy. Je n'ai même pas besoin de cela et dit Ce que nous voulons Dio est dans notre dossier de vue ici. Il a un nouveau fichier et fait une clique de classe de cacao dans la classe de cacao de l'Iowa split et
allons de l'avant et changer la sous-classe ici ou la classe parent pour vous. J' image vue et cerceaux de classe. Hum, la classe va être, on l'appellera juste vue d'image arrondie. D' accord ? Et ce que Will Dio est en
fait, en fait, ce que j'aime faire, c'est si je sais que je vais avoir beaucoup d'images entourées, je pourrais juste appeler cette image de base ou quelque chose comme ça. Mais pour l'instant, il s'appelle Arrondi autour de la vue de l'image. Très bien, et, euh a été créé ici. Et puis qu'est-ce qui va dio Donc maintenant que voici la classe, non, la classe personnalisée, ce que Will Dio est éveillé de NIB ? Nous appellerons cette fonction et nous irons de l'avant au lieu de dire que Bobby va juste dire que soi-même , ce qui signifie, se référant à lui-même parce que c'est une vue d'image. On va juste mettre le code éveillé de nib ou de zib. Cependant, vous voulez le prononcer et revenir à votre storyboard principal et cette fois a changé la classe d'image dans l'inspecteur d'identité. Changez-le, Teoh vue d'image arrondie. Maintenant, nous ne devrions voir aucun changement à l'écran. Il devrait toujours être arrondi et travailler hors de la boîte. 01 chose qu'on doit faire, je vais juste t'apprendre quelque chose de vraiment puissant. Tu sais, c'est comme ça qu'on vient d'avoir un accident. Rappelez-vous comment, à notre avis, contrôleur, j'ai supprimé la prise Ivy ici. D' accord. Une chose qui se passe probablement encore. C' est parfois Exco le fait,
parfois ce n'est pas le cas. Mais s'il y a toujours une référence dans notre storyboard. Donc, si vous faites un clic droit sur votre contrôleur de vue, voyez comment il y a une petite chose ici dire, Hey, où est mon bl il ? Tu t'en es débarrassé. Cela arrive parfois pas tout le temps. Euh et donc si tu as ce crash, accord, il
suffit de cliquer dessus et cet accident disparaîtra. Et nous allons courir à nouveau. Et c'est là. Il est arrondi. Quelle est la leçon que nous avons apprise ici ? Ok, c'est que vous ne voulez pas manipuler les données à partir d'ici, mais vous ne voulez pas non plus manipuler les vues de votre contrôleur de vue ne
devrait faire que des choses comme ça, saisissant votre points de vente et de mettre des données en eux. Ou si, comme, disons,
disons que, euh, nous avons un, euh nous allons montrer l'exemple d'un contrôleur de vue. Disons que nous voulons avoir un champ de texte. Donc un champ de texte ici et ce que ce champ de texte va dio, c'est que ça va aller Teoh. C' est stupide, mais on va lui donner un nouveau nom, Ah, un nouveau prénom. La personne n'aime pas le nom. Ils vont le changer. Donc, je mets un champ de texte U I. Je vais l'épingler avec une largeur et une hauteur. C' est très bien. Et nous allons l'épingler 31 de l'étiquette là-haut et allons de l'avant et l'alignons au milieu horizontalement du récipient. Ok, j'y vais. Teoh, fais un, euh, j'ouvre l'assistant rédacteur en chef. Je vais faire un IBL pour ça. Hum, allez, épave
contrôlée. On y va. Appelons ça, euh, renommer rempli. Et aussi ce que je veux est un bouton appelé Mettre un bouton ici appelé Renommer. Donc, il commence réellement l'action. Alors, renommons et allons de l'avant et donnons à ce type avec et une hauteur. Mets-le l'un des six en haut. Et nous allons aligner cela au centre ici et ici sur le côté droit, contrôlons glisser et faire une action I b. Ok, on va juste appeler ce renommage pressé fermer l'assistant éditeur ici. Et donc fondamentalement, ce qui va se passer, c'est que je vais mettre un espace réservé ici, entrer un nouveau prénom. Ce qui va se passer ici, c'est qu'un utilisateur de la vue veut changer le prénom d'une personne . D' accord ? Et puis nous voulons le mettre à jour via le contrôleur sur le modèle. Ok, donc ce qu'on va dio, c'est qu'on va aller voir notre contrôleur de vue, OK ? Et, euh, voyons vraiment impressionné. Oh, donne-moi une prise I B au lieu de ah, au lieu d'une action I b ici. Attends. Allons réparer ça. Ici. Vous étiez comme si je l'avais remarqué. Qu' est-ce que tu penses ? Désolé. Perdre mon temps. Ah, c'est tout de bonnes choses. D' accord, essayons encore ça. Contrôle de la glisse. Changez-le en une action. On y va. Appelons ceci, mais dans la presse juste pour l'analyse ferme ce netter. Faisons en sorte qu'on n'ait pas d'Alex cassé, on va cliquer dessus. Débarrassez-vous de ça. Et vous, Contrôleur. Ok, donc le bouton Appuyez va sortir le texte du champ de renommage et il va renommer la personne, non ? C' est tout ce qui doit arriver. Donc, d'abord nous devons faire est d'entrer dans notre personne ici et nous devons créer Corey un centre pour
les prénoms au lieu de revenir. Le prénom apporte pour dire get et il va retourner le prénom, et ensuite on aura aussi un set, ok ? Et alors ce que nous pouvons faire, c'est que nous pouvons dire si la nouvelle valeur n'est pas égale à cela. OK, si ce n'est pas égal à vide et à l'excellence, écoute, Neil d'abord Et si la nouvelle valeur n'est pas égale à vide, alors Onley définit le prénom avec le nouveau prénom s'il est valide. D' accord. Hum et donc ça va dio est bien, n'aime pas ce que j'ai fait ici. Ce n'est pas égal, Teoh. On va dire que le prénom est égal,
descendez ! Le prénom est égal à la nouvelle valeur. D' accord. Oh, et la raison pour laquelle nous avons un problème ici, c'est parce que ça garantit une chaîne. Mais nous ne garantissons pas ça en ce moment. Certains mettent un point d'exclamation là disant Hey, ça pourrait être Neil. Ça pourrait être facultatif. Hum, et donc dans quoi on fait ça ? Hé, si c'est Neil, ou si c'est vide, ne le mets pas, ok ? Ne le mets pas du tout. , En fait, on n'a même pas besoin de ça. Nous pourrions juste parce que si nous laissons ceci ici est une chaîne sans l'option. Cela signifie que cela force l'utilisateur à ne pas avoir Teoh à ne pas avoir à faire cette vérification ici. Donc tout ce qu'on a à faire, c'est dans le plateau. La valeur est juste dit qu'il Le prénom est égal à la nouvelle valeur. Ok, on y va. Donc nous avons juste fait un centre dans nos données ici, et tout ce que nous avons à faire maintenant c'est à notre avis, contrôleur, OK ? Tout ce qu'on a à faire est de dire, euh si on laisse le texte de point de champ renommé, mettons en fait t x t égal. Allons prendre la taxe. Et s'il existe, ce qu'on va changer le nom de cette personne. Ce qu'il faut faire, c'est déplacer la personne. Allons de l'avant et déplacons la personne vers le haut à l'objet global ici. Ok, alors faisons-en une variable globale constante globale. Et alors qu'est ce que Will dio ? Eh bien, dites personne point prénom ok est égal à txt. D' accord. Et puis ce que nous pouvons dio, c'est que nous pouvons imprimer le nom complet à l'écran Maintenant. texte du point de nom complet est égal au nom complet du point de personne. Nous allons le réimprimer à l'écran. Ok, allons-y et donnons une chance à ça. On va l'expliquer un peu plus, et on en a fini ici. Juste quelques exemples de la façon dont le contrôleur de vue de modèle s'applique vraiment dans le développement de l'Iowa au lieu de quelqu'un simplement dire que c'est ainsi que vous faites le contrôleur de vue de modèle. C' est vraiment ainsi que vous utilisez la vue du modèle. Contrôleur fait expliquer la pratique du monde réel ici. Alors, John Hancock, on va changer le nom pour Stephen Hancock. Je clique sur Renommer. Ok, donc ce qui s'est passé c'est qu'on a saisi le bouton a été pressé. Ok, donc on a pris la date des données hors du champ texte, et on a mis à jour le prénom de la personne, ok ? Etpuis Et on l'a réimprimé à l'écran. Donc ce qui s'est passé, c'est qu'on a utilisé le modèle, donc personne ce prénom. On a changé le nom dessus. Et c'est bon. faire d'ici à partir du contrôleur. Parce que c'est ce que fait le contrôleur. Rappelez-vous qu'il a parlé aux données et lui envoie de nouvelles données. Donc notre modèle ici, il a un getter sur un centre. OK pour gérer ça. Remarquez comment nous n'avons rien fait comme ça dans notre contrôleur. Nous n'avons pas vraiment dit,
euh, vous savez, vous savez, nous n'avons pas fait comme le formatage du texte, je suppose, c'est ce que je dis. On n'a pas, genre, capitalisé. Nous n'avons pas veillé à ce qu'il ait certains caractères. Ce n'est pas cela qui devrait être manipulé dans le modèle. Ou tout ce qu'on a fait c'était de dire, Hey ,
hum, prenons ce texte que tu viens de nous donner et mettons-le à jour sur la couche de modèle. D' accord ? Et donc c'est tout. C' est un contrôleur de vue modèle. Ok, ce qu'on a fait, c'est qu'on a extrait notre modèle dans l'air du modèle. Nous avons une propriété informatique ici pour effectuer des opérations sur ces données. Ne fais pas ça de la part du contrôleur. Ne faites pas cela à partir du contrôleur. Envoi avec logique vue. Ne modifiez pas votre vue. Comme à quoi il ressemble et comment il apparaît à l'utilisateur. Tout ce qui apparaît à l'utilisateur et qui doit être personnalisé doit être dans des
classes de vue personnalisées dans la couche de vue. Ok, Um, comme nous l'avons fait ici éveillé de NIB dans cette sous-classe de vue d'image sur la manette. Il suffit de l'utiliser fonctionne avec l'IBL. C' est un I V actions pour transmettre des données d'avant en arrière. De toute façon, la règle est la loi. Si vous souhaitez personnaliser vos vues, ne le faites pas. Interview, Mec
Controller et classes de vue personnalisées. Si vous voulez un personnalisateur gâcher vos données ou les formater,
Ok, Ok, vous devriez le faire à l'intérieur de votre modèle air. Ok, ce que tu ne veux pas faire, c'est quelque chose comme ça. Tu ne veux pas dire de classe quelqu'un. Vous ne voulez pas mettre ça ici dans votre vue, contrôleur et et et faire toutes sortes de choses méchantes. Je vois beaucoup de programmeurs Java faire des choses comme ça et peut-être que c'est correct là-bas, mais le développement IOS
Non, non, non, non, non, non. D' accord. L' air du modèle vit dans le modèle. Tous tes cours vont ici. Toutes vos vues, qui sont, est ce que vous affichez à l'utilisateur réel. Ce qui est à l'écran va ici, et la liaison qui trouve de la vue au modèle s'est produite ici dans le contrôleur de vue
,c'
est-à-dire le contrôleur , de vue du modèle. Et tu viens de rendre Bobby vraiment heureux parce que maintenant tu es un bon programmeur
heureux. Et si vous programmez de cette façon, je vous promets que vous serez impressionnés si vous codez dans l'autre sens. Je viens de vous montrer où on fait des trucs ici. Vous êtes un employeur vétéran qui vous regarde dans un entretien d'embauche. Il y aurait genre, ce type est nouveau. Il met tout ce code dans le contrôleur de vue, et tous les autres cours là-bas vous apprennent à le faire de cette façon. Je t'apprends à le faire de la bonne façon. Alors faites-le de la bonne façon. Trouvez un emploi, des cartes géniales. C' est ça. Contrôleur de vue modèle MBC. Tu l'as descendu. Appuyons sur et avançons
48. UIViewController: Hé, tout le monde, Mark Price Ici les pentes de mort dot com Aujourd'hui, nous allons parler de vous. J' ai explosé la manette, et donc je vais aller de l'avant et tirer dans un nouveau projet en allant déposer un nouveau projet et on tire sur l'écran. Ici. Il est là. Déposez un nouveau projet juste là. D' accord. Et parlons des contrôleurs de vue. application à vue unique est très bien. Afficher l'exemple du contrôleur Maintenant, vous les utilisez déjà en cliquant sur Suivant, mais sur le bureau . Chaque application que nous avons construite jusqu'à présent, en fait, a utilisé un contrôleur de vue. Mais qu'est-ce que c'est ? Eh bien, c'est une classe. Ok, dans ce cas, ce nom que nous venons d'appeler le contrôleur de vue. Cela pourrait être nommé n'importe quoi, mais il hérite de ce qu'on appelle un contrôleur U I. View. C' est une classe fournie par apple, et ce qu'il fait, c'est qu'il gère de vous. Ainsi, dans le contrôleur de vue du modèle, le modèle M V C votre modèle a sa propre zone de vie. Votre vue sont les vues réelles elles-mêmes. Rappelez-vous comment nous sous-classons les vues, comme créer des
images
personnalisées, personnalisées, images
personnalisées, quoi que ce soit, peut-être avec leurs propres points de vente et leur propre code. Donc, nous sous-classes vue afin que les vues puissent fonctionner en eux-mêmes. Mais avez-vous contrôleur est ce qui prend et colle les données aux vues réelles. C' est un peu le penseur qu'il fait. Toutes les différentes opérations sont de tirer les choses, les
mettre là où elles doivent être, et ainsi de suite de vous. Le contrôleur est une sorte de base de la gestion des vues. Impossible Vous ne pouvez pas mettre des vues à l'écran sans un type de contrôleur de vue. OK, jetons un coup d'oeil. Allez-y et maintenez la commande enfoncée sur le clavier et cliquez sur ce gars ici et ça va ouvrir les pommes des orteils, code
des pommes ici. Alors quoi ? La classe publique, euh et euh, hérite de toi. Je réponds. Er a d'autres protocoles qu'il respecte. Et c'est donc une classe qu'ils ont construite, et vous pouvez regarder toutes les fonctions et les choses qu'il fournit. Ça fait beaucoup. On ne va pas entrer ici, mais sachez juste que c'est un excellent moyen pour vous de voir ce qu'il peut faire. OK, il semble qu'ils aient une extension, ADM ou des fonctionnalités et des fonctionnalités à elle. Et il gère tout des rotations. Thio d'usage. Ah, tout
un tas de trucs. Je vais aller de l'avant et me débarrasser de ça. Ont reçu un avertissement de mémoire. Et donc ils ne sont pas trop complexes. Soas faras. Vous devez savoir pour les utiliser. Sachez juste que chaque contrôleur de vue a une propriété de vue. Donc si je dis moi ce point de vue, ce sera là. Remarquez comment il y a une vue. Ok, euh, il s'y attend. Vous voulez dire dans vos codes, attendez à ce qu'il soit là. Et donc, euh, faisons juste un exemple ici. D' abord, allons de l'avant et exécutons ce programme, d'accord ? Et il va charger l'application ici sur la commande présidentielle 3 pour la rendre un peu plus petite . On y va, et il va se charger et avoir un fond blanc. Ok, si je dis l'auto-vision, accord ? En fait besoin de lui-même. Je pourrais juste vous sauver la couleur de fond des points. D' accord. Et je peux dire égal à la couleur u y dira la couleur verte. Ok, je vais le faire ici. Donc, je veux juste vous montrer que le contrôleur de vue a une vue froide de propriété. Et c'est là. C' est déjà connecté pour toi, non ? Lorsque vous construisez correctement Lorsque vous construisez une sieste. Donc, tout ce que vous devez savoir est qu'un contrôleur de vue gère un tas de choses pour vous. Ah, la vue est l'un d'eux et probablement la chose la plus importante. Et ce sont des segments logiques de code dans votre application. Donc, dans la plupart des cas, différents écrans ou pour chaque écran que vous avez dans votre application, il va avoir son propre contrôleur de vue. OK, donc pas si grosse affaire. Vous les utilisez déjà. Allons de l'avant et regardons comment ils travaillent ensemble. Ok, donc si je vais au plateau principal ici, tu sais, je pourrais double-cliquer. Et tu sais, il n'y a rien d'autre ici. Cette petite ère représente ici que c'est le contrôleur de vue de départ. Je peux avoir plusieurs contrôleurs de vue. Vous savez que tout cela pourrait être leur propre point de vue. Et vous savez, chacun que je contrôle juste traîner. Chacun pourrait se connecter à chacun. Je clique juste sur show. Donc, d'une manière ou d'une forme ont dit Hey, ça va à celui-là. Celui-ci va à celui-là. Celui-ci va à celui-ci ou celui-ci pourrait aller ici est bien trop eso beaucoup de
choses différentes que vous pourriez dio et, euh donc c'est comme ça que vous vous déplacez et visualisez les contrôleurs. C' est un principe très simple, Teoh, tu comprends ? C' est juste un tas de code. Sachez juste que je suis vu Load. Ok, c'est quand, euh, toutes les vues sont chargées. Donc, il est appelé lorsque toutes les vues sont apparues sur l'écran. Il y a aussi un autre que vous pouvez remplacer la vue appelée apparaîtra. C' est avant que les vues se soient chargées juste avant qu'elles ne s'affichent. Et tu vas vouloir t'assurer d'appeler super sur tout ça pour être sûr que je viens juste de
passer. Quoi, venir ici en passant ça ici. Donc, fondamentalement, j'appelle l'implémentation des classes parents juste pour que rien ne soit cassé. Ok, donc ça fait ce qu'il doit faire parce qu'on le remplace. Nous prenons le contrôle et donc le carburant apparaît. Donc, cela est appelé juste avant que les vues apparaissent à l'écran. Et, euh, en fait, c'est appelé à chaque fois. Donc ce que je veux dire, c'est, et disons que je crée mon point de vue ici. Ce contrôleur de vue se charge, puis nous allons à une autre vue, puis nous revenons en arrière. Ça va être appelé à nouveau chaque fois que je suis sur le point d'apparaître visuellement. Ce qui est intéressant est vu Load on Lee appelé une fois lors de la première chargement en mémoire faire erreur très commune de nous faire pour les programmeurs d'aller ici. Et chaque fois que cette vue apparaît à l'écran, ils écrivent du code ici, vous savez, donc ils veulent rafraîchir, vous savez, s'ils veulent rafraîchir, vous savez, une table ou quelque chose, Ils le font juste là. Ça ne sera jamais appelé,
probablement une fois. Ça ne sera jamais appelé, Et c'est là que la mémoire charge donc vue sera ici. C' est probablement là que vous voulez le faire chaque fois qu'il apparaît réellement à l'écran. Tu sais, tu pourrais rafraîchir ta table bien meilleur endroit pour la mettre. Donc, um, si vous allez apparaître est ah, um quelque chose que vous utiliserez fréquemment vue a mis en place sous-utilisation ok. Appelé pour avertir le contrôleur de vue que sa vue vient d'exposer sa sous-utilisation. Parfois, quand vous modifiez l'apparence visuelle de l'écran qu'il peut ne pas mettre à jour. Et donc si ce n'est pas le cas, c'est un excellent endroit pour mettre du code eso mettre qui modifie la mise en page de la vue. Ok, hum, si la vue apparaîtra ne fonctionne pas. OK, euh, regardant la chose ici dit appel pour avertir le contrôleur de vue que ses téléspectateurs
viennent de mettre en sous-utilisation lorsque le changement de balance pour un contrôleur de vue vue vue la vue de juste les positions de sa sous-utilisation , puis le système appelle cette méthode. Cependant, cette méthode appelée n'indique pas que les mises en page individuelles de la sous-utilisation des vues ont été ajustées. Donc, euh, toute façon, vous pouvez lire la documentation ici chaque fois qu'
il y a un changement visuel, ça va appeler cette méthode pour une autre chose que vous pouvez appeler pour être fonctionnel ici, Hum, donc ce sont des choses que vous allez utiliser beaucoup. Bien sûr, vous avez vu au début chaque,
l' avertissement de mémoire a reçu. Donc, si vous recevez votre avertissement de mémoire, vous pouvez décharger quelque chose, renforcer les choses, améliorer l'expérience pour l'utilisateur. C' est donc un contrôleur de vue. Si vous voulez créer le vôtre, OK, nous avons bien fait. On a fait ça ? Je ne suis pas sûr qu'on ait fait ça ou pas. Mais vous avez raison, cliquez sur ce dossier et allez dans un nouveau fichier et allez à la source et la classe tactile cacao. D' accord. Et, euh, on va appeler ça, euh, 2e VC VC pour contrôleur de vue. Et assurez-vous qu'il hérite de vous. Je vois le contrôleur et Swift va bien. Cliquez sur Suivant. Et d'accord, maintenant nous avons un 2ème 1 J'ai du code standard ici. Et donc si nous allons rester si péché un autre contrôleur de vue, c'est tout. Si on va à notre storyboard principal maintenant, je peux cliquer sur ce gars juste ici. D' accord ? m'a cliqué dessus. Je peux cliquer sur cette petite boîte carrée en haut, à droite. Et je ne pouvais pas changer sa classe en deuxième VC. Ce qu'on dit c'est que c'est mon manteau. C' est mon contrôleur de vue, et il est relié à votre manteau ici. Donc quoi que je fasse ici va arriver là-bas. Donc, Donc, si on s'amuse juste, si on prend ça, emmenons le Segway ici. Supprimez cela, et faisons glisser notre flèche de point d'entrée ici jusqu'à notre contrôleur de seconde vous. C' est juste dire à notre application que c'est le contrôleur de vue de départ, même s'il dit contrôleur de deuxième vue. Ok, allons à notre code maintenant. Euh, donc à des fins de démonstration. C' est le code pour les premiers contrôleurs. Rappelez-vous, comment le changer en vert ? Allons-y et refaisons ça. Donc vu la couleur de fond est égale à vous la couleur des yeux couleur vert point. Alors changeons ce fond en vert juste pour montrer qu'il n'apparaîtra pas. Et sur le contrôleur de deuxième vue, changeons-le pour lire si bien, disons que la couleur d'arrière-plan visualisée est égale à votre couleur des yeux point rouge. Et quand nous exécutons ceci, nous devrions voir un contrôleur Red View sur l'écran ou la vue sur l'écran. Parce que nous avons désigné notre contrôleur de deuxième vue comme contrôleur pour notre application, et nous avons également spécifié qu'il est. Nous précisons également que c'est vraiment important. OK, que c'est la classe juste ici. Deuxième CV. Imaginez si on devait enlever ça. Ooh, revenons-le à toi. Je vois le contrôleur. Enlevez simplement cela, remettez-le à sa classe par défaut et exécutez simplement le programme et voyez ce qui se passe. Ok, remarque que rien ne se passe, d'accord ? C' est parce que nos codes ne sont pas exécutés. C' est juste vomir un contrôleur de vue aléatoire là-dessus. Donc très important est que lorsque vous travaillez avec vos contrôleurs, assurez-vous de définir la classe du fichier sur lequel vous travaillez ici. Ok, donc ce sont les contrôleurs de vue en général dans son ensemble, vous allez les utiliser sur votre projet. Il y a quelques variantes différentes,
comme un contrôleur de vue de table, qui est, ah, vue
de table qui hérite de vous. Je vois le contrôleur. En fait, nous pouvons le faire ici. Allons au nouveau fichier et ah, classe
Kobo Touch. Cette fois, on va faire ça à la place. Il nous a appelé Table V. C et allons de l'avant et cliquez sur vous je contrôleur de vue de table et ajouté de la junk sur elle ne lui a pas demandé le faire et de créer OK. Et donc ce qu'il a fait, c'est m'a créé un autre type de contrôleurs que celui-ci est votre contrôleur de vue de table
blanc fourni par Apple et juste vous mettre en place pour une table, obtient tout un tas de choses par défaut ici pour vous. Et si je commande, cliquez dessus. Ok, remarquez qu'il hérite en fait du régulier. Vous avez votre contrôleur. Donc ils prennent tout ça et y ajoutent d'autres choses, et au fait. Je n'utilise généralement pas votre contrôleur de vue de table. Je crée généralement un contrôleur de vue régulier et le fais ici. Cette chose exacte que vous voyez ici Eh bien, peut-être pas le défilement de votre délégué, Mais cette source de données de vue de table et ce délégué de vue de table, j'implémente généralement ceux moi-même. Donc je sais exactement ce qui se passe. Contrôleur de vue de table. Il peut vouloir ou non certaines des choses qui vous offrent. Je suis toujours plus minimaliste à vouloir des choses que je veux seulement. Donc, euh
, vous l'avez. Euh, et, euh, c'est vos contrôleurs de vue. Nous allons parler de la façon d'échanger entre eux dans une autre vidéo, Mais sachez juste qu'il y a des fonctions en dessous et ce que je vous encourage à dio est cliquer sur le contrôleur View et ici sur le côté droit, allez
simplement sur une référence de classe, d'accord ? Et vous pouvez regarder tous les différents détails de ce qu'il fournit, comment cela fonctionne comme ça. Il y a tout un tas de choses qui gèrent les rotations de vues. Comment orteil, hum, implémenter un contrôleur de vue conteneur, configurer un contrôleur en utilisant des fichiers nip qui allaient réellement en parler aussi bien dans et dans la vidéo suivante, et juste tous les différentes propriétés et des choses que vous pouvez faire avec. Donc, euh, encore une fois, vous devriez passer beaucoup de temps dans cette documentation à apprendre autant que possible et des trucs
très cool. C' est un film pour la vue. Contrôleurs. Je veux juste te donner à l'intérieur. C' est plus que quelque chose que vous utilisez. Il y a un but supplémentaire derrière ça. Et rappelez-vous, vous ne pouvez pas vraiment avoir de vue sur l'écran et faire quoi que ce soit sans contrôle de contrôle. C' est ça. J' ai fait notre prix, peur de la mort. Alors arrête, viens bientôt.
49. Partie des classes de taille (différentes mises en page pour les tailles d'écran): Yo, quoi de neuf, tout le monde ? Mark Crazier Deb pentes point com Et aujourd'hui, nous allons faire des lunettes de taille, alors allez-y et ouvrez un nouveau projet de code X. Way écrira un nouveau, et une application de vue unique va bien. Appelons ça le dimensionnement. Appelle-le ce que tu veux. Assurez-vous que Universal est sélectionné. Parlons donc de la philosophie du design comme faras IOS est concerné. Ok, si ce que Apple veut et recommande est que si vous n'allez pas mettre de l'effort réel ou puissance cérébrale dans, disons, soutenir l'iPad, en plus de l'iPhone, préférerait ne pas le soutenir et le soutenir, Hum, d'une
manière qui est moins que la meilleure expérience jamais faite. Donc, ce que beaucoup d'entreprises vont faire, c'est que nous voulons un iPad, et donc ils sortent juste une version à peine fonctionnelle, et c'est OK, mais c'est fonctionnel et vraiment ce qu'ils recommandent est d'utiliser des classes de taille pour faire votre application est belle sur toutes les tailles d'écran. Maintenant, avec l'avènement des vues du personnel, prendre en charge plusieurs tailles d'écran est encore plus facile parce que les vues de pile se redimensionnent et ils sont fantastiques, tout
simplement absolument fantastiques. Mais sortons et parlons de la classe des soupirs de base. Alors allons à notre planche principale. D' accord ? Et, ah, pour ce projet, on va utiliser une seule image ici. En fait, allons d'abord dans le dossier assets. Et je vais Teoh traîner M. Dwayne le Rock Johnson lui-même. Oh, ouais. D' accord. Et revenons au storyboard. Ce que nous allons faire, c'est faire semblant de construire une application très simple, comme une application biographique sur l'individu, qui se trouve être le rock. Et nous voulions bien paraître sur toutes les tailles d'écran. Ok, donc je fais ce plein écran ici. Je vais éteindre le côté gauche pour avoir plus d'espace sur l'écran. Ce qu'on va dio, c'est qu'on va ouvrir l'avant-première ici, accord ? Et passe de automatique à aperçu. Donc, je clique sur l'éditeur de l'assistant, puis j'ai changé pour prévisualiser ici. D' accord. Et voici notre écran. C' est ce que nous voulons faire est que nous voulons que ce soit bien sur les iPhones dans le paysage portrait et iPad. Ok, alors parlons de la façon dont les classes de taille fonctionnent. Donc vous êtes habitué à faire cette capture. Disons que vous y image de vous. D' accord. Mettez-le ici et puis définissez des contraintes ici, non ? C' est ce qui faisait autrefois. Et c'est très bien. Et mais remarquez ici en bas, il est dit, w tout h qui signifie tout avec n'importe quelle hauteur. Si vous cliquez sur ce bouton, remarquez comment il couvre cette section centrale ici. Donc, c'est tout avec n'importe quelle hauteur, fondamentalement, ces classes de taille. Ok, je l'ai juste changé par accident. Donc, ce sont vos classes de taille. Et ce que nous voulons dire,
c'est nous voulons choisir un mode qui sont des contraintes et que les efforts de storyboard vont être appliqués à. Donc, par exemple, maintenant, dans le tout et ça veut dire que quand je mets des contraintes ici, ça va être appliqué à n'importe quel. Montrons ce que je veux dire. Alors changeons-le en aspect. Vous vous sentez bien ? Et nous allons juste aller de l'avant et l'épingler du haut, donné dans une hauteur. Et allons l'aligner au centre. Ok, donc si je fais ça, pourquoi ne pas avoir besoin de l'exécuter ? Vous pouviez voir sur le côté droit. Alors voici le portrait. Allons-y et ajoutez-le dans le paysage à un autre quatre pouces, donc il y a le phoque du paysage. Même contraintes à droite, 14 depuis le haut et à droite dans le centre. mêmes contraintes exactes. Si je le fais, je bloque ce sera les mêmes contraintes exactes pour tout ça. Maintenant, bien
sûr, les iPads un énorme écran. On ne veut pas qu'il soit au milieu ici dans cet écran parce que c'est du paysage, donc les choses sont éteintes, ok ? Ils ne sont pas comme nous les voulons. Mais actuellement, nos contraintes sont appliquées tout. C' est là que les classes de taille arrivent. Maintenant, ce que vous faites pour activer les classes de taille est des changements à un certain mode, et c'est très, très important. Tu fais attention à quoi ? Moteur dans très, très important. Facile à oublier. Et je vais te montrer pourquoi. Donc vous savez comment vous à travers une image ici sur n'importe quel ? Ok,
ça veut dire qu'il sera sur toutes les tailles d'écran maintenant, voici l'affaire. Vous devez vous assurer que les contrôles que vous voulez tous les écrans doivent être activés sur n'importe quel mode comme Attendre. Qu' est-ce que tu veux dire ? Ok, pense à ça. Lorsque vous construisez votre storboard ici, tout ce que vous voulez être sur tous les écrans. Je ne parle pas de disposer à quoi il ressemble, mais juste que les contrôles que vous voulez sur tous les écrans doivent mettre ici en tout et pour vous
montrer pourquoi. Enlève le rocher. Ok, donc on en est plus. Mais changeons maintenant cela pour compacter avec une hauteur régulière. Et ce sera tout,
en fait,les en fait, enfants de
la neige. Allons à, euh, hauteur
compacte. Voici les iPhones. C' est tous les iPhones et le paysage OK, tous les iPhones et avis de paysage. Lorsque je clique sur ce que mon canevas change. Maintenant, faisons glisser la vue de l'image sur ok ? Et allons de l'avant et, euh, faire sentir l'aspect Nous allons changer à la roche et allons de l'avant et le peindre par le haut et lui
donner une augmentation avec et aligner les au centre. Donc c'est génial, non ? Pourquoi n'est pas là sur l'écran étranger ? Will est le seul paysage était sur le paysage sage. Il n'est pas sur le scénario étranger. Eh bien, la raison pour laquelle vous avez ajouté la vue. Pendant que vous êtes dans un fossé,
toutce que vous faites pendant que vous êtes dans un mobile, Onley s'appliquera à ce mode. Pendant que vous êtes dans un fossé,
tout Donc, il est très important que vous mettiez toutes les choses que vous voulez sur cet écran en tout
avec n'importe quelle hauteur et puis quand vous voulez des contraintes spécifiques, vous les étalez parce que l'idée est que si vous ne voulez pas que les choses soient visibles sur iPhone, mais vous le faites sur iPad, ou vice versa. C' est comme ça que vous pouvez le faire. Vous pouvez ajouter des choses et changer des choses en fonction du mode dans lequel vous êtes. ce moment, il n'est pas en portrait, et ce n'est pas ce qu'on veut. Nous voulons qu'il soit disponible dans toutes les classes de taille, donc nous voulons juste changer l'apparence des choses. Je vais l'effacer, retourner à n'importe quel. Donc on va le remettre. Il est donc disponible dans toutes les tailles d'écran. Ok, donc il est là, et c'est bon. Donc, des réglages ? Voici la règle. C' est la règle. Tous les paramètres que vous voulez appliquer à tout dans chaque mode en faisant tout. Donc, si vous voulez changer de couleur, vous voulez changer avec la haute technologie, la taille sur cela, faites-le dans n'importe quel. Ok, hum, certaines choses n'ont pas d'importance qui s'appliquent à tous. Mais certaines choses que vous ne savez jamais, Alors assurez-vous que vous juste tous les changements que vous voulez globalement bordures, couleurs, ce que vous faites dans tout avec n'importe quelle hauteur. Ok, alors parlons de ça maintenant. Nous voulons donc soutenir le portrait de cours. Excusez-moi. Téléphones portrait, paysage
portrait. Nous voulons également prendre en charge l'iPad. Ok, nous avons trois tailles d'écran ici que nous voulons soutenir. Et alors regardons comment on pourrait faire ça. Ce qu'on veut,
c'est qu'on va juste le faire comme on va le faire ici. Alors regardons les différentes options que nous avons. Ainsi, le carré simple est compact avec un cerf-volant compact, ce qui dit que c'est pour les iPhones de 3,5 pouces et 4,7 pouces dans le paysage. Ça te dit exactement à quoi ça va s'appliquer pour qu'ils s'appliquent à l'iPhone. Le 3,5 pouces iPhone étranger pour s quatre pouces, iPhone. Euh, tu sais, iPhone 5. Et le 4,7 pouces est l'iPhone six. Donc, on sait exactement ce que ça va s'appliquer aux téléphones dans les paysages de Lee. Qu' en est-il de ça ? C' est pour toutes les hauteurs compactes et toutes les sorties. Donc tous les iPhones dans le paysage, tu te souviens ? Tu réfléchis. C' est eux tous ? Eh bien, regarde ça. 5.5 pouces iPhones dans le paysage L'iPhone six plus est. En fait, c'est son propre truc qu'il peut avoir. Ah, je ne sais pas si vous le savez, mais l'iPhone six plus peut avoir des mises en page divisées. Ça peut fonctionner comme un iPad parce qu'il est si grand. Donc c'est un plus gros téléphone. Et donc c'est géré différemment. Donc, il a sa propre classe de taille. Ok, tout comme tous les plans de hauteur compacts. Voici les iPhones et le paysage. C' est n'y en a rien ? Bien sûr. Allons jusqu'à ce chemin. C' est tous les iPhones en portrait. Ok, c'est toutes les configurations de hauteur régulières, iPhones et portrait et iPads et portrait ou paysage. Ceci est s Donc c'est ah, toute disposition de hauteur régulière. Donc les mises en page qui ont une hauteur de type régulière, euh et c'est exactement ici. iPhones en portrait ipads en portrait ou paysage. Et puis c'est pour les iPads en portrait ou en paysage. Alors, c'est ça ? Voici des iPads sur Lee. OK, iPads sont seulement là, et il ne sépare pas vraiment les iPads avec le portrait ou le paysage. La raison en est qu'il y a tellement d'espace de cris que cela n'a vraiment pas d'importance dans plupart des cas, mais vous pouvez directement appliquer des choses en mode paysage. C' est juste que nous y réfléchissons quand vous avez et la haine de plaidoyer quand vous avez un écran qui est si grand que vous savez que vous pouvez mettre des choses n'importe où. Vraiment ? Donc c'est des iPads en portrait ou en paysage ? , Encore une fois
, , c'est intéressant. Il n'y en a pas vraiment. Ce n'est pas vraiment différent. Voici la différence ici, n'
est-ce pas ? C' est juste régulier à l'intérieur. C' est régulier avec et la hauteur régulière. Euh, d'accord, et puis c'est l'iPhone six plus. Donc ce qu'on veut faire, c'est avoir l'air superbe et toute la mise en page, donc la première chose que nous allons faire est de soutenir. Nous voulons prendre en charge les iPhones et Portrait et les iPads en Portrait. Donc on va les faire ensemble. Donc, toutes les mises en page de hauteur régulières, iPhones et portrait et iPads et portrait ou paysage. OK, donc voici quelque chose de très important. Rappelez-vous, une fois que vous supportez une classe de taille, vous devez vous assurer de prendre en charge toutes les classes de taille. Sinon, ça ne va pas paraître bien, et certains d'entre eux vont bien,
ça ne fonctionne pas simplement comme par magie si vous en supportez un, parce que ces paramètres ne seront appliqués qu'à une classe de taille spécifique. Ok, donc ce qu'on veut, c'est en mode portrait. Disons que nous voulons que cette image aille des marges. D' accord ? Comme si, rendons ça un peu plus grand. Et, euh,
ça dit l'image ici et allons de l'avant et disons l'aspect toujours. Et j'aurais probablement dû le faire dans n'importe quel mode. Ajustement sans feckless. Voilà, tu y vas. Euh, eh bien, euh, juste l'aspect aspect. Je l'aime mieux même s'il est coupé. C' est bon. C' est artistique. Ok, alors allons chercher quelques contraintes ici. Donc, nous sommes un du haut zéro de la gauche est votre de la droite, Ceux-ci dans les marges, et allons de l'avant et lui donner une hauteur fixe. Ok, alors remarquez comment c'est cassé et paysage parce que nous n'avons pas encore défini ces contraintes. C' est ce que je te dis. Une fois que vous activez les contraintes, vous devez prendre en charge toutes les tailles d'écran. Maintenant, euh, et certains. Bien sûr, certaines préoccupations fonctionnent. Tailles d'écran transversales très bien. Donc regarde ici, et iPhone quatre sur iPad. C' est cool de, tu sais, c'est une sorte de coupe. C' est très bien. Euh, allons-y. Eso a l'air bien, alors allons-y et revenons à n'importe quel. Ok, alors je clique là-bas. Il en a parce que je veux ajouter un nouveau contrôle et ce que je veux ajouter est, je veux ajouter une étiquette pour A une description sur les roches ? Tapons du rock. Sont Dwayne Johnson biographie. On va aller chercher des textos aléatoires, OK, je ne voulais pas l'enlever. Wikipédia ne voulait pas traiter tous les liens. On y va. Allons-y et attrapons sa première vie juste pour s'amuser, parce qu'il est cool. Et regarde comme il est incroyable. T' es juste beau
, mec. Je veux juste frapper quelqu'un ce visage. Je veux être comme le rocher. Ok, voyons voir ici. Donc on veut étiqueter, non ? Alors rappelez-vous, nous sommes dans n'importe quel mode. D' accord ? Si vous voulez ajouter quelque chose de nouveau en faisant tout, donc il est applicable sur toutes les tailles d'écran, et ce que nous allons faire est nous allons juste aller de l'avant et la taille n'a pas trop d'importance en ce moment, parce que nous allons changer cela nous-mêmes. Mais je veux mettre le Texan ici, alors changons les lignes sur cette étiquette ici à 15 sur le côté droit. Et allons de l'avant et rythmé dans sa description là-bas. Ok, donc quelques choses, euh, une est qu'il n'a pas d'importance qui soit coupé en ce moment parce qu'on ne veut pas définir la hauteur ou quoi que ce soit comme ça maintenant, on veut le faire dans la taille spécifique classes. Aussi, je voulais te montrer autre chose. Chaque fois que vous voyez un signe plus ici, cela signifie
qu'il est applicable en tant que classe de taille. Cela signifie que vous pouvez réellement définir la taille de la police. Alors je te le disais. Ok, vous pouvez réellement définir des tailles de police, des choses comme ça à des classes spécifiques. Donc, certaines de ces choses fonctionneront indépendamment de la classe de taille dans laquelle vous êtes. Um, ils seront appliqués à travers le tableau. Mais certaines de ces choses où vous voyez ces avantages peuvent avoir des valeurs spécifiques pour la
taille spécifique . Les cours n'allaient pas jouer en ce moment, vous pouvez jouer avec vous seul. C' est vraiment facile. Et nous l'avons fait quelques fois avec, euh, pile en utilisant dans certaines des leçons de ce cours. Donc, pas grand-chose. Donc, jouez autour de ce qu'il est important que vous appreniez à jouer avec les choses et familiariser avec les résultats. Tu apprends plus vite de cette façon. Donc nous sommes dans n'importe quel mode. J' ai mon étiquette. C' est très bien. Je n'aime pas la couleur. Allons dio gris foncé. Et, euh, changeons juste ça. Vous voulez Helvetica nouvelles ? Très bien. Ou disons, euh, il y a, genre, une super nuit, Alec, peut-être dire. On y va. Juste pour le plaisir. Ok, donc on va faire maintenant, c'est revenir en arrière, changer de tout et revenir à la hauteur normale. Ok, donc on sait qu'il est là où il doit être, mais ce n'est pas si ce qu'on veut dio c'est qu'on le déplace juste là. Je vais déplacer ça ici. Je vais déplacer ça ici, d' accord ? Et nous allons juste aller de l'avant et l'épingler du haut, de la gauche et de la droite, et ah, je ne suis pas sûr de vouloir mettre un haut pour l'instant. On verra ce qui se passe. Ok, donc ici, dans ce mode, ça a l'air super ici. C' est bon. On n'a pas assez de contenu pour couvrir tout l'écran, alors, tu sais, quoi ? Peut-être que je veux dire, peut-être que vous voulez mettre comme, une police plus grande dans cette taille d'écran par ici. Peut-être pas. On ne va pas s'embêter avec ça, mais c'est peut-être quelque chose que tu veux considérer. Ok, donc il a l'air bien ici. Il a l'air bon à entendre. Parlons de cette disposition de quatre pouces. Ici. Allons à notre classe de taille et disons Ah, pour des dispositions de hauteur compactes pour tous les iPhones et paysage parfait. Ok, alors remarquez qu'il n'y a pas de contraintes. Si je clique sur la règle, il n'y a rien. D' accord ? droite. Rien. Donc, ce que je veux dio est de définir quelques contraintes. A quoi nous voulons ressembler en Alaska. Peut-être que dans le paysage, on veut l'image ici. On voulait plus d'un carré. Alors faisons quelque peut-êtrequelquechose comme ça. D' accord ? Et allons-y et épinglons à nouveau. Nous sommes dans n'importe quelle hauteur compacte en attente de zéro à gauche, zéro à partir du haut. Donnons-lui une hauteur. OK, remarquez qu'il a changé instantanément par ici. Plutôt cool. Et dans le texte, déplacons-le ici. Déplaçons cela vers le bord et faisons un objectif qui le faisons aller jusqu'au fond. Comme ça et oui,
ça me semble bien. Alors allons de l'avant et épinglons ceci vers le haut et épinglons vers la gauche. 19 de la gauche, zéro de la droite. Sauf si son fanion 20 du bas. Ici. De cette façon, il sent tout le secteur et regarde ça. Donc, en mode portrait, semble bien en mode paysage. Ça a l'air bien ici. Ça a l'air OK. Nous n'avons pas assez de contenu. Euh, c'est là que dans ce mode, vous voudrez peut-être y ajouter quelques choses. Faites-le paraître plus frais. Donc d'accord,
donc ça a l'air bien dans plusieurs tailles d'écran. Donc d'accord, C' est comme ça que tu le fais. C' est ainsi que vous prenez en charge plusieurs appareils ? Hum, alors allons-y et faisons-le ici. Je vais le changer. Teoh iPhone, cinq c À quoi ça ressemble. Ok, donc c'est là. C' est Portrait. C' est ce qui ressemble à un paysage. Hé, regarde ça. Il a fait son truc. Maintenant, ce n'est pas parfait, et ce ne sera
jamais, jamais parfait. Voyez comment on a perdu quelques bords ici, ici et ici encore à jouer autour. Ce n'est jamais parfait. C' est assez proche, cependant. La plupart du temps. Donc ça a l'air bien. Ça a l'air bien en portrait. Ça a l'air bon paysage. Et tu as vu ce qui s'est passé. On l'a fait pour la première fois, non ? C' est juste que ça n'a pas marché. Je veux dire, il a fait cela les mêmes contraintes et toutes sont si clairement différentes. Les contraintes fonctionnent dans des vues différentes. Donc il n'y a rien de plus que ça. Tous vos contrôles et choses comme ça mettent simplement des contraintes sur eux dans les différentes
classes de taille que vous voulez prendre en charge, que vous voulez soutenir où vous voulez le déplacer, choses comme ça. Tu pourrais faire n'importe quoi avec n'importe quoi. Vous pouvez le changer partout. Rappelez-vous que si vous ajoutez un contrôle dans un certain mode, il ne sera que dans ce mode. Donc, si vous voulez ajouter des contrôles qui sont sur chaque classe de taille, vous devez le faire dans n'importe quelle hauteur. Donc, des questions ? Eh bien, comme il n'y a pas de questions, nous allons aller de l'avant et appeler cette vidéo terminée, commencer à utiliser des classes de taille et commencer à faire de belles applications. Je dirai que j'ai travaillé avec des développeurs professionnels tout le temps et que la plupart des développeurs avec qui je
travaille,
ils ne savent pas comment faire ça,n'
est-ce pas ? Je dirai que j'ai travaillé avec des développeurs professionnels tout le temps et que la plupart des développeurs avec qui je travaille, ils ne savent pas comment faire ça, Comme s'ils étaient vraiment comme si je savais coder. Je pourrais faire toutes sortes d'algorithmes fous et des choses comme ça, mais ils ne savent pas comment supporter plusieurs appareils, donc ils commencent à faire des choses vraiment stupides, comme avoir plusieurs, euh, fichiers
zip pour plusieurs mises en page d'écran. Tu n'as jamais besoin de faire ça. Quelle douleur. Deux fois le code. Parfois, deux fois plus de travail. Alors tu as soutenu tout ce qu'ils disent à leur patron. Oh, on ne peut pas supporter l'iPad. C' est deux fois plus de travail. Eh bien, c'
était vraiment deux fois plus de travail ? Probablement pas. Tu ne sais pas ce que tu fais. Donc vous savez quelque chose de très précieux. Commencez à l'utiliser tout de suite. Et si vous commencez à travailler sur un travail ou un projet qui n'en a pas, commencez à les implémenter. C' est une très bonne pratique recommandée par Apple. Vous êtes maintenant en avance sur le jeu, donc félicitations
50. UITabBarController: Hé, tout le monde, Mark Price ici, Deb savons dot com. Et aujourd'hui, on va parler d'avoir des bars, tu vas à droite pour le fond. Où stockez-vous votre code ex et découpez votre code ex ou Exco ? Beta a ralenti ça. On va créer un nouveau projet. Et jusqu'à présent, la
plupart des choses que nous avons faites ont été des applications uniques. Mais maintenant, remarquez que vous vouliez cliquer dessus, et maintenant vous avez. Vous l'avez vu là-bas. Certains d'entre vous voulaient vraiment cliquer dessus. Moi aussi. Mais on ne va pas tabuler l'application, d' accord ? Et cela s'appelle ce test d'onglet. C' est vraiment super simple. Ok, crée-le. Mettez-le n'importe où. Il s'agit donc d'une application à onglets. C' est ça. Ce n'est pas grave. Alors allez à votre storyboard principal. D' accord ? D' accord. Donc j'ai remarqué que vous avez un onglet. Notre contrôleur ici et a les premiers en une seconde. Vous savez, ces contrôleurs de vue aérienne. Ok, donc tout avoir bar fait tout ce qu'il fait est géré différents contrôleurs de vue. Maintenant, dans la plupart des cas, tu n'en auras pas plus de cinq, OK ? Tu n'auras pas plus de cinq onglets sur un onglet , c'est tout simplement pas une bonne pratique. Eso l'utiliser quand cela a du sens. De nombreuses applications l'utilisent encore comme l'app store d'Apple. Euh, tu sais, Tab sont des choses comme ça. Donc une bonne expérience utilisateur n'est pas plus de cinq. OK, donc c'est un onglet ou ce n'est pas grand-chose pour elle. En fait, nous pouvons même construire et exécuter cela dès maintenant. Allons à notre première vue ici et changez simplement la couleur de la vue. Changeons ça. Je clique sur ce bouton ici. C' est le changer en bleu et on changera celui-là aussi. Lire. Laissons-le. On y va. Et c'est là. Donc, le premier contrôleur est chargé ici et les rouges le second
contrôleur de vue . Et si je clique sur les onglets, il bascule juste d'avant en arrière. Je veux dire, c'est littéralement ça. Comme nous donner le code pour qu'il en soit d'abord. Peu contrôlent notre contrôleur de seconde vue. C' est tout ce que c'est fait. C' est juste qu'il nous donne plusieurs vues en contexte pour travailler avec Um, donc maintenant avec cela étant dit,
vous savez que la différence entre l'utilisation de cela peut être un contrôleur de navigation est que nous ne
poserons pas une vue sur l'autre après l'autre après l'autre. Chaque section de l'onglet, votre contrôleur gère son propre état. Donc, vous savez, si j'ai ce rouge ici et que j'ai trois contrôleurs de vue en dessous, ils
sont tous dans cet état. Et si j'ai trois contrôles de vue dans le bleu et le perdant tous sous cet état et qu'il va essayer de garder ces dans la mémoire du mieux qu'il le peut,
Donc, quand vous basculez d'avant en arrière a un chargement très rapide. Mais bien sûr, si vous commencez à utiliser trop de mémoire et l'un des chemins ici, l' un des boutons,
le contrôleur d'entrevue, il va vider tout ce qu'est l'autre. Et il sera rechargé quand tu retourneras. Donc, euh, pas beaucoup. Fais-le encore. Que faire si vous voulez ajouter 1/3 1 même son glisser un contrôleur de vue ici à nouveau, vous devrez créer le code pour cela. Tu te souviens ? Tout comme il y a un premier contrôle de seconde. En fait, vous devez faire la même chose ici comme nous l'avons fait dans le passé et ce que vous pourriez faire est juste de contrôler glisser à partir de votre onglet. Notre contrôleur ici. Et nous voulons faire ah, sous relation Segway. Vous contrôleurs et remarquez comment il nous a donné un Vous savez, il nous a donné un nouveau bouton ici. Cet article ici. Tu vois, euh, il y a notre onglet. Ce n'est pas grave, vrai ? Pas grand-chose. Vous avez votre,
euh, vous avez vos onglets là-bas, et, euh, vous pouvez changer les boutons sur ceux-ci si vous voulez. Hum, si vous aviez une image sélectionnée ici, nous n'avons que les images par défaut dans l'application qu'elle nous a donné. Mais vous pouvez créer vos propres images, et vous pouvez simplement le charger là-dedans. Pas grand-chose, comme on l'a fait. Il suffit de le glisser dans le dossier des actifs et de le mettre ici dans l'onglet. Est-ce que j'essaie de rendre ça plus excitant. Il n'y a pas grand-chose. Fais-le. C' est aussi simple que ça. C' est à quel point il est facile. Juste que vous avez un onglet sont maintenant. Alors donne-lui un titre. Appelle ça,
tu sais,tu sais,
le
profil,
l'écran,
tout ce que tu veux change juste là. Appelle ça,
tu sais, tu sais, , profil,
l'écran, l'écran, Euh, OK, ainsi et encore, chaque onglet Chaque peut avoir sa propre vue. Contrôle. Ou tu sais, je pourrais avoir ce 1er 1 On peut le montrer ici. Disons que celui-ci est jaune a changé. Cliquons dessus. Modifiez la vue en jaune. Ok, donc et peut-être, euh, en fait, nous
allons nous débarrasser de ce Segway. Zoom ici n'aime pas ça. On va mettre un bouton ici pour que je puisse juste mettre un bouton ici au milieu. Bien sûr, le
bleu sur le bleu est ridicule. Changeons le texte orteil blanc ou gris clair, puis juste contrôle glissé à partir du bouton là-bas et cliquez sur montrer. Et donc j'essaie juste de vous montrer, comme n'importe quel autre de contrôleur
de
vue dans le Segway, que vous pouvez naviguer entre eux. Hum, on y va. Cliquez donc sur le bouton. Il m'emmène au jaune. D' accord. Pas grand-chose. Il est à nouveau en cours et juste te montrer. Maintenant, il y a trois onglets. D' accord ? Tout fonctionne. C' est ça. C' est ça. C' est des barres d'onglets. Juste, euh, comme on l'a déjà fait. Vous faites glisser les contrôleurs de vue autour, vous les connectez à l'onglet, sont Et vous dites essentiellement, Hey, mon application a plusieurs états ne gardez pas à l'esprit, vous devriez vraiment les utiliser pour ce que ils sont utilisés pour. Cela devrait être ce devrait être des États. Comme, si vous avez une sieste où j'ai une section de profil serait un écran d'accueil et autre chose . barre d'onglets peut être un excellent choix. Ok, euh, pour s'assurer que la chose la plus importante à comprendre est quand utiliser la barre d'onglets. Et tout dépend de votre application. Il y a beaucoup d'APS là-bas qui les utilisent beaucoup qui ne le font pas Donc c'est Tab. La nôtre, je ne pense pas, devient plus complexe. Alors c'est tout.
51. Storyboard Segues: Yo, qu'est-ce qui se passe, tout le monde ? Je suis Mark Price of death pentes dot com, et nous allons parler de Segways aujourd'hui, qui sont les moyens par lesquels vous ouvrez de nouveaux contrôleurs sur votre écran. Et donc je vais déposer un nouveau projet gay juste là, et allons de l'avant et faire une seule application de vue. On va appeler ça Segways cigs seguis, et cliquer sur Suivant et mettre sur le bureau ici. Et donc quelque chose d'intéressant est que les Segways et les mots d'histoire n'existaient pas toujours. Je pense qu'il est sorti avec IOS cinq, je crois où x code 51 de l'autre. Et, euh, ceux-ci n'existent pas. Je ne suis pas sûr que personnellement je suis toujours à 100% vendu sur lui. Parfois, je les utilise. Parfois, ils utilisent des storyboards. Parfois, je ne le fais pas. Et la prochaine vidéo, nous allons vous montrer comment ne pas les utiliser, et vous pouvez prendre la décision par vous-même. Mais fondamentalement, le Segway est comment vous allez de vue à voir pas grand-chose, et ils sont assez simples. Donc, ce qu'Apple a introduit était cette notion d'avoir un storyboard qui où vous pouviez
visuellement mettre en page où se trouvaient vos écrans Maintenant, vous ne pouviez jamais le faire auparavant. Avant tout était programmatique et vous aviez un tas de fichiers. Et il y a dans ce cas ici, ils sont comme, quoi ? Nous voulons que les gens aient une manière visuelle de scène, comment leur application est mise en place pour que vous puissiez mettre un tas d'entre vous contrôleurs ici. Vous savez, où que vous vouliez, n'a pas vraiment d'importance. Et, bien
sûr, c'est le point de départ de l'application Vous pouvez mettre sur ce que vous voulez être votre contrôleur de vue de départ. Donc ici, nous avons trois contrôleurs de vue, non ? D' accord. Donc ce qu'on veut Dio, c'est passer de celui-ci à celui-ci. Et donc je veux faire est de changer les couleurs sur ces vraiment rapide. Nous savons seulement lesquels sont ceux qui. Et donc sur cette 1ère minute, j'ai cliqué sur la vue. Ok, Voyez comment c'est la vue sélectionnée ici et je vais sur le côté droit et changer la couleur de
fond, quelque chose de plus agréable. Tu es comme, Oh, c'est plus gentil. Eh bien, alors, la prochaine qui est juste ici. Ou je pourrais simplement cliquer sur la vue ici sur ce côté gauche. Changeons celui-là en un beau bleu. C' est un peu mieux. Et puis le 3ème 1 Changeons cette vue en une belle lecture. Ces couleurs avaient l'air vraiment sympa ensemble. Je les ai choisis moi-même. Oui, je sais. OK, donc il y a nos trois contrôleurs de vue qui ont chacun trois vues. Si vous vous souvenez, chaque contrôleur de vue a une vue, et ce que nous voulons faire est de nouveau la transition de l'un à l'autre. Donc c'est un symbole comme faire ça, mettre un bouton dans ce cas ici, nous allons le mettre correctement. J' ai fait un zoom avant. Oui, double clic. Ça n'aime pas vous laisser faire ça de la vue extérieure. Donc il y a un bouton, et, euh, celui-là va dire « Aller au bleu ». Eh bien, juste là et là, OK. Tout ce que vous devez faire est de faire, mais dans ou de contrôler, c'est de passer votre d'un contrôleur de vue à l'autre. Ce n'est pas forcément un bouton n'a pas besoin d'être un bouton, mais ça va être juste un bouton. Nous allons juste cliquer et faire glisser du bouton ici à la vue et dit Action, Segway. Nous pouvons montrer le détail présent mortellement pop sur la présentation ou personnalisé nous ne faisons rien de personnalisé. Pop over présentation est Ah ah, pop over style. Comme vous pouvez le voir dans une application iPad. Ça n'a pas vraiment de sens de le faire ici. Présent moteur Lee signifie pop it up sur l'écran ici. Ok, spectacle, détail et spectacle. Eh bien, je ne suis pas complètement sûr, en fait, sur les différences de ceux Voyons voir ici. Ok, détail du
spectacle est remplacé, donc il va remplacer l'écran actuel, et celui-ci va pousser dessus. C' est la différence. Hahaha ! Je n'ai pas besoin de tout savoir par cœur pour t'apprendre ça. Je sais ce que tu penses. Il aurait dû le savoir. Eh bien, désolé. D' accord. , Et maintenant,nous allons au bleu et voici notre connexion Une connexion ici et,
euh, euh, voir comment ça n'a pas vraiment d'importance. Euh, allons voir ce bouton ici. Vue d'action, affichage du contrôleur. Tu sais, c'est juste la chose qui déclenche l'action, c'est tout. C' est tout ce que ça se passe. Essayons de l'exécuter, en fait que les hommes essayant de courir juste pour le plaisir de voir ce qui se passe, Voir si cela fonctionne dès la sortie de la boîte. C' est vraiment aussi simple que ça ? C' est la question du jour. Quelque chose pourrait être si simple. Allez. On y va. Va en bleu. C' est aussi simple que ça ? C' est aussi simple que sur le développement Web. Ouais, pas si simple. Beaucoup d'autres plateformes. Pas si simple. Mais fondamentalement, ce bouton est allé de l'avant et a déclenché un Segway sur la Blue View. Maintenant, je n'aurais pas pu non plus le faire à partir du bouton afin que je puisse supprimer ce secondaire. Ici, Avertissez-nous si je clique avec le bouton droit sur mon bouton. Ça devrait être parti. Tu vois, l'action a disparu. Arrêtez ça ici. Je pourrais aussi le déclencher de n'importe quoi. Même le contrôleur de vue lui-même a coupé la vue. Ici. On y va. Sont ici ce contrôleur de vue. Vous voyez, j'ai sélectionné l'icône du contrôleur de vue ici, ou il est sélectionné ici. Cliquez et faites glisser la souris vers la vue à travers la même chose exacte. Maintenant tu te demandes probablement,
euh , mais attends, comment je fais ça ? Parce que ce n'est pas un bouton maintenant, est-ce pas ? Les boutons ne feront rien. Eh bien, maintenant nous devons le faire dans le code. On a créé un Segway, alors on a dit :
Hey, Hey, on veut faire une transition. Mais quelque chose doit déclencher dans ce cas, c'était le bouton, mais pour l'instant, nous n'avons aucun moyen de déclencher ce Segway de se produire. Donc j'ai ouvert le navigateur, et je vais cliquer sur mon contrôleur de vue. D' accord ? Et ce n'est pas si dur, vraiment. Tout ce qu'on a à faire,
c'est ,
c' créer un moyen pour que le Segway soit déclenché. En fait, nous allons probablement avoir besoin de dio certains avoir un clic de bouton parce que vous ne pouvez pas le faire. Interviewé il charge parce que, euh, il ah, en fait, ça ne fonctionnera pas parce que je crois qu'il fonctionne sur un fil de fond. Eso, euh sont-ils un fil séparé de l'endroit où vous en avez besoin ? Allons-y et nous ferons quelques actions. Ok, je serais l'action funk, et on va appeler ça, hum load blue. Ok, on doit l'envoyer ici. Je vais dire, n'importe quel objet. Super. Donc, ce qu'on va faire, c'est qu'on va appeler ça d'ici. Effectuer. Va en bleu. D' accord. Souviens-toi, Souviens-toi, avant qu'on n'ait pas écrit de code, d'accord ? Ça venait juste de notre bouton. Cette fois. Allons-y et je retournerai au tableau principal. Cliquez sur notre contrôleur de vue ici et cette fois, Nous allons faire cuire le bouton, puis je fais glisser sur le contrôleur de vue, puis je clique sur Charger, charger bleu ici. Ok, maintenant, gardez à l'esprit. Avant que cela ne soit allé directement au Segway, cette fois à des fins de démonstration, je l'ai appelé fonction nous. Donc ça n'a pas besoin d'être un bouton. Ça pourrait être quelque chose d'un genre d'événement. Ou s'il s'agit d'une vue de tableau ou d'une vue de collection, vous pouvez appuyer sur une vente, et vous pouvez l'appeler à partir d'ici. Donc, je veux juste montrer qu'il n'a pas Vous pouvez aussi le faire dans le code. Partout où vous écrivez votre Segway, il changera les écrans n'importe où dans votre code. D' accord ? Et nous utilisons juste un bouton parce que je n'ai pas une autre bonne façon de le tester. Donc, le voilà, le chargement. Et il a chargé le bleu. Le bouton ne l'a pas fait lui-même, mais cette fonction a été appelée ici. D' accord. Et, euh, vous savez, c'est comme
ça que vous définissez plusieurs Segway Multiple. Donc, euh, je pourrais mettre un autre bouton ici, Double-cliquez pour zoomer, et je vais appeler ça aller lire. Et, euh, sur cette semaine injuste. Voyons
voir, faites exactement la même chose. En fait, ouvrez notre éditeur assistant et cliquez sur ce bouton ici. C' est la lecture, mais je vais le traîner sur l'action d'Ivey. Tu sais, c'est comme ça qu'on le fait différemment à chaque fois. Je veux juste que vous sachiez continuellement qu'il n'y a pas qu'une seule façon de le faire charger en rouge, et ça a l'air bien. Et ce qui a fait la même chose sauf cette fois effectué Segway. On va dire : Va lire et le centre sera Neil. Et nous allons nous assurer que aller à la lecture est mis en place sur les nips. Allons, euh, vous avez le contrôle. Ramenons un type rouge ici. Et, euh, allons-y et où aller ? Je vais zoomer, cliquez sur la vue. On y va. Fond rouge, et puis celui-ci, Allons-y. Et au lieu de faire le Segway directement à partir du Biden, faisons-le à partir du code. Je vais glisser sur mon contrôleur de vue et cliquer, euh, charger sont déjà fait ça. Il a commencé bien à y aller, mais je dois faire est de créer un Segway ici. Donc, à partir du contrôleur de vue, moins de traînée est contrôlée ici au contrôleur de vue rouge dira le même US pour montrer détails juste pour le plaisir et sur l'identifiant du métro, euh, aller à la lecture. Et ça a l'air bien. Laissons-le courir. Il y a aller lire. Et maintenant les charges rouges. Pas grand-chose, est-ce
pas ? Des trucs simples. Donc, ce que vous avez appris jusqu'à présent est que vous contrôlez glisser à partir d'un contrôle de vue pour savoir que pour
faire un Segway ou à partir d'un bouton ou pour quoi que ce soit, euh, faites un type de transition de Segway et assurez-vous que vous cliquez sur le Segway et donnez-lui identifiant. Hum, pour que ça puisse faire cette transition. C' est si vous voulez le faire à partir du code. Ok, si tu le fais directement à partir d'un bouton, tu n'as pas à mettre ça l'identifier. Ok, donc ça va le faire automatiquement pour toi. Mais si vous vouliez le déclencher à partir du code, alors vous n'auriez pas besoin de mettre ça, euh, l'identification là. Donc encore une chose que je veux couvrir. Et c'est comme ça que vous transmettez des données entre les vues avec un Segway ? Comment faites-vous comment l'obtenir d'un endroit à l'autre ? Donc disons, hum, on a une étiquette, et on la met sur votre double clic bleu pour zoomer, mettre le bleu, OK. Et, euh, centrez-le ici, faites-le blanc. Et d'accord, donc il y a une étiquette, et ce qu'on veut faire, c'est passer quelques données des boucles jaunes au bleu. Pas grand-chose. Et laissez-moi juste mettre quelques contraintes ici très rapidement, donc ça reste là où nous le voulons. Débarrassez-vous dans la hauteur. Ok, donc ,
euh, on va devoir écrire d'autres cuisiniers maintenant. Nous avons utilisé ces contrôleurs de vue, qui ne font rien. Ok, ce ne sont que des contrôles de vue vides. Nous n'avons pas de code en annexe. Donc, ce que nous devons faire d'abord est d'aller à notre Segway ici, clic
droit et accédez au nouveau fichier. C' est le dossier Segway. Um, et puis vous voulez aller à la classe de contact de cacao source et changer ceci si ce n'est pas déjà là. Je vois le contrôleur. Et appelons ce contrôleur de vue bleue, d' accord ? Et ça me semble bien. qui crée ce qu'on va dio nous a bien changé sans ma permission. D' accord ? Il essaie de penser pour moi Cliquez sur votre vue ici, votre vue. Contrôlez votre bleu et allez à la petite boîte rectangulaire carrée sur le côté droit. Et changeons ceci en contrôleur Blue View. Donc tout ce que nous avons fait, c'est que nous avons dit un contrôleur de vue ici. C' est lié à notre code qui est ici, parce que ce n'est pas le cas pour l'instant. Il est connecté à un contrôleur de vue arbitraire auquel nous n'avons pas accès. Donc maintenant, nous avons accès à cela. Et ce qu'on veut dio, c'est que je ne suis pas sortie ? Donc, à I B outlet week var, on va appeler cette étiquette principale de type vous j'étiquette et il y a notre je suis outlet. Ce n'est pas encore connecté, alors allons à notre plateau principal et cette étiquette juste ici. Ok, distrayez votre contrôleur de vue vers votre étiquette et sélectionnez l'étiquette principale. Il est maintenant connecté. Et notre objectif est d'envoyer les données provenant du contrôleur Yellow View vers le
contrôleur Blue afin que nous puissions les utiliser. Ok, donc nous allons retourner à notre bleu via le contrôleur et appelons ce texte de transfert var. Euh, ce sera juste une ficelle. Une chaîne vide en ce moment. D' accord. Et ce qu'on va dio, c'est ah, Annville. Tu l'as chargé. On va dire que le texte du point de l'étiquette principale est égal au texte de transfert. Donc, quand cette vue charge, saisissez tout ce qui est ici et mettez-le ici. Mais tu es comme, Attends, c'est vide. Eh bien, c'est en ce moment, mais je vais vous montrer comment transférer des données afin qu'elles le puissent quand elles seront prêtes à partir au moment de l' exécution. C' est bon d'y aller. Donc nous allons dio est par ici, retour à notre avis. Contrôleur, c'est notre jaune, non ? On va appeler une fonction appelée Préparer pour un Segway et ça s'appelle avant. Ok,
ça s'appelle avant qu'il n'apparaisse à l'écran. Il s'appelle après qu'il ait été initialisé. D' accord ? C' est en mémoire vivant. Mais avant qu'il n'apparaisse à l'écran, Ok, très, très important. Et en fait, ce qu'on pourrait faire, en fait, Teoh est en fait le mettre dans un meilleur endroit sur notre bleu sont le contrôleur Blue View. Au lieu de faire cela en vue, a chargé parce que cela ne se produira qu'une seule fois quand c'est quand il est chargé pour la première fois en mémoire. Et si on le veut ? Chaque fois que vous économisez, vous apparaîtrez presque une super vue apparaîtra et passera dans les droits de
paramètre juste là. Donc nous appelons la classe des parents et maintenant chaque fois qu'elle apparaît visuellement sur l'écran, nous allons le faire ici. Donc, allons voir le contrôleur. Et ce que nous allons dio c'est Ah, abord, quand vous travaillez avec Segways, si vous en avez plus d'un, vous voulez vérifier quel type de ségrégation. Donc si Segway identifie leurs égaux, passez au bleu. Tu te souviens ? C' est ce qu'on appelle ça. Donc ça va être appelé ici et a l'identificateur. OK, si elles n'étaient pas égales à identificateur, allez en bleu et passons ensuite les données. Et alors ce qu'on va faire, c'est aller Teoh, on va prendre le contrôleur de vue. Et ça s'appelle le contrôleur Blue View. Droit ? Donc, ce que nous allons faire, c'est que nous allons dire, si, hum, Blue v c équivaut à un contrôleur de vue de point segway, comme nous allons le dire, ça s'appelle Blue View Controller. Ok, donc ce que nous faisons est si vous regardez ici le contrôleur de vue de destination, il vous passe juste un contrôleur vous je vois, la classe générique maintenant bien sûr, nôtre hérite de lui. Ok, donc ça marchera toujours, mais on doit le lancer. D' accord ? Nous devons le lancer au type qu'il est, qui est un contrôleur View bleu. Et puis, euh, tout ce qu'on a besoin de dio, c'est de dire ,
Ah, voyons ici. Donc nous avons, euh, notre centre là-bas. On y va. Donc on va juste faire ça. Nous allons dire bleu V point Ah, c'était un texte de transfert. C' est qu'on va dire, Hey, on vient juste de l'écran jaune. OK, donc ce qu'on fait, c'est qu'on attrape ce contrôleur de vue. J' ai le signe égal. Nous saisissons ce contrôleur de vue juste ici. Celui que nous sommes sur le point d'aller à son été initialisé neige sur l'écran encore, et nous allons dire,
Hey,
le texte de transfert est égal à Hey, Hey, nous venons juste de l'écran jaune. Maintenant, disons que,
euh, euh, préparez-vous pour Segway. Ça n'a pas de sens, en fait. Code dur ici. Ok, ça va marcher. Mais pourquoi le mettrais-tu dedans ? Préparez-vous pour Segway ? C' est appelé chaque fois qu'un transfert de vues. On doit le mettre d'un meilleur endroit. Donc c'est là que ça est utile ici. Donc, disons que vous êtes dans votre application où qu'elle soit déclenchée. C' est en fait là que vous devriez stocker les données. Ah, donc ce que vous devriez faire est en fait ici où il dit que l'expéditeur remarque comment le centre est n'importe quel objet signifie que vous pouvez y mettre n'importe quel objet. Alors faisons ça. Coupons à partir de là. Allons par ici. Dis, euh, var stretch est égal à ça. Donc c'est une ficelle, non ? Et qu'est-ce qu'ils le transmettraient là en tant qu'expéditeur ? Donc ce qu'on dit,
c'est que j'ai besoin de passer quelques données ici. Alors faisons le Segway et avant qu'il ne soit appelé, il est là pour venir ici. Maintenant rappelez-vous la raison pour laquelle nous ne pouvons pas juste placer cette chaîne dans la vue suivante d' ici parce que nous n'avons pas encore accès à elle, Mais nous faisons ici et nous préparons pour le segment parce que cela va nous le donner maintenant et a dit, Ce que nous devrait dio est que nous devrions dire si bien dire, euh, appelons ceci la chaîne est égal à l'expéditeur comme chaînes ou nous faisons la même chose. Hey, on s'attend à une ficelle juste ici, alors attrapons-la et mettez-la ici. Vous voulez faire le Si laissez,bien
sûr, bien
sûr, parce que cela peut ne pas avoir quoi que ce soit en elle. Donc, si la chaîne est comme ça, passons-la en plus de deux. Si nous sortons la chaîne, passons-la dans la semaine prochaine maintenant, car un texte de transfert de point V c bleu est égal à la chaîne. Bon, alors prenons du recul et réfléchissons à ce qui se passe ici ? Donc nous l'avons déclenchée à partir d'ici où vivent les données. C' est comme ça que vous allez reconstruire votre APS. Donc, à ce stade, nous avons une chaîne, et nous la mettons au centre signifie que celui qui appelle le Segway Segway, puis avant
qu'il ne se charge, préparé à côté avec avant qu'il apparaisse à l'écran. Affaiblir. Prenez ces données à partir de l'objet central. Nous pouvons réellement le passer dans le contrôleur de vue suivant comme ça Parce que le Segway a le contrôleur de vue de
destination. Donc si tout a fonctionné comme il était supposé quand on arrive à l'écran bleu, l'écran bleu, on devrait voir ça. Hey, on vient du texte de l'écran « A ». Laissons-le et donnons-lui un coup de feu. Et le voilà. Allez,
bébé, bébé, ne me déteste pas maintenant, va au bleu. On vient des écrans jaunes coupés un peu,
mais tu vois ce qui se passe ici ? On vient des écrans jaunes coupés un peu, Tellement cool. Donc, um, juste quelques commentaires ici, alors utilisez l'expéditeur pour les données passées. D' accord. Et puis c'est là que vous travaillez juste avant que la vue ne se charge. Gardez à l'esprit. Ah, le contrôleur de vue suivant a déjà été initialisé, donc il est initialisé, mais il n'est pas encore visible à l'écran. Nous venons de transférer les données à l'écran suivant. Tu pourrais faire ça avec n'importe quoi si tu as un objet. Voyons une liste d'éléments. Ah, liste de
courses. Un panier. Droit. Et vous et vous voulez cliquer sur l'un de vos éléments pour afficher ses détails. Vous pouvez passer au-dessus de votre classe de panier. Tout ce que tu veux. N' importe quel objet peut être passé. C' est la base de la transmission de données entre les Segways. C' est les bases de Segways. Tu ne fais que tomber le dragon. Vous exécutez des Segways et vous préparez Teoh, vous vous préparez pour vos Segways, mais j'y mets des données. Pas grand-chose. Vraiment cool. Votre storyboard principal. Tu sais que tu peux avoir un tas d'utilisation ici. Vous pouvez faire des Segways directement à partir de vos contrôles ou par programmation. Gardez à l'esprit si vous les faites à partir de vos contrôles. Il est facile de sans avoir de code. Il est facile d'oublier comment ça se passe. Si vous aviez 100 contrôles sur votre écran, vous pouvez oublier d'où ils viennent, et il peut être plus difficile de déboguer. Donc, peu importe ce que vous voulez construire l'Europe, peut-être que vous voulez mélanger le code. Segways ou non Idle doit être enclin à ne pas. Je ne dois pas être enclin à faire tous mes Segways pour mon code afin de pouvoir suivre exactement où cela se passe afin de savoir comment résoudre les problèmes. Mais c'est à vous de choisir. Dans le prochain épisode passionnant, nous allons parler de construire APS sans storyboards, que je construit encore sur l'histoire ainsi de suite. Je manque. Donc c'est une pellicule. Segways, pas trop dur, et j'espère que tu t'es bien amusé. C' est comme ça que vous allez d'un écran à l'autre et allons-y
52. App: créer une application sans storyboard (XIBs): Hé, tout le monde, Mark Pricier à Defpentes dot com. Et aujourd'hui, nous allons apprendre quelque chose que la plupart des gens n'enseigneront jamais. Et c'est vraiment cool sur la raison pour laquelle j'enseigne. C' est parce que vous pouvez rencontrer des applications. Ouvrons un nouveau projet. Vous pouvez rencontrer des applications qui n'utilisent pas de storyboards. En fait, beaucoup de développeurs, moi-même inclus, n'utilisent pas toujours des storyboards. Oui, les storyboards du constructeur d'
interface et les Segways le savent. Et, euh, il y a quelques avantages et inconvénients. Je suppose que je vous laisserai être le juge. Je dirais qu'une façon n'est pas meilleure que l'autre la façon Apple, bien que ce soit des storyboards. Mais allons de l'avant et créons un nouveau projet X Code. Et appelons ça une,
euh, euh, application à vue
unique qui va bien et cliquez sur Suivant et ce qu'on va dio et dire « Pas storyboards ». Et certains développeurs sont en fait très, très catégoriques à propos de ne pas utiliser des épées développeurs très professionnels. En fait, les derniers grands projets sur lesquels j'ai travaillé, ils n'avaient pas de storyboard. Donc, euh, donc on y va. Tout le reste a l'air bien ici. Créons-le ici. Et, euh, faisons quelques choses. Donc, vous remarquez comment notre application est venue avec un storyboard juste ici. droite. Vous pouvez le voir juste là. D' accord. Hum, donc on va s'amuser, et on va appuyer sur la touche de suppression déplacée à la poubelle. Ok, ça sonne bien. Et, euh, je peux juste laisser le storyboard de l'écran de lancement là parce qu'il se charge au lancement. Je m'en fous. Alors et, euh, c'est cool. Donc, ce que nous devons aussi faire maintenant est de passer à votre liste de points d'info. D' accord ? Et où il est écrit, Ah, histoire
principale, nom de fichier basé sur un
mot. Nous allons cliquer sur le bouton Supprimer, et il est maintenant parti. Hmm. Très intéressant. D' accord. Et donc ce storyboard est parti. Maintenant, nous avons ce contrôleur de vue, mais il n'y a rien pour le charger encore. Droit ? Donc voici notre application Dandy pratique, délégué. Et si nous n'en avons pas parlé auparavant, le délégué APP est le point de départ de votre application. Ceci est appelé avant que toutes les vues soient chargées et tout le reste Ok, c'est la toute première chose qui est chargée. Donc ce qu'on va voir ce contrôleur de vue ? abord, renommons ça quelque chose de mieux. Appelons ça, euh, où ont fait exactement les mêmes cordes qu'avant, alors appelons ce
VCjaune VC On ne
vous appelait pas ce V c jaune et on ira à votre application, délégué. Ce que nous allons dio est juste ici sur a terminé le lancement avec des options à votre point de départ dit
point de remplacement pour la personnalisation après le lancement de l'application. Allez-y et créez votre bras de délégué application dans votre V c jaune Jusqu'à présent, V c jaune égale V c jaune. Et, euh, ce moment, c'est juste une classe engourdie. D' accord ? Ça ne fera rien pour nous. Ce que nous devons faire, c'est créer un zib. Alors cliquez ici, euh, l'interface utilisateur. Donc, cliquez sur votre dossier ici et allez dans le nouveau fichier et allez à l'interface utilisateur. Allez-y et faites
vides, et on va appeler ça la même chose, c'est notre contrôleur de vue jaune V C Ok. Et, euh, faisons un peu de nettoyage sur notre dossier de projet juste ici. C' est à un nouveau groupe. Était type dans, euh, modèle, même si nous n'en aurons pas. Et puis un nouveau groupe appelé View pour l'un de vous trucs liés dans le nouveau dossier appelé Controller for Controller a lift. Donc, nous allons faire glisser sont VC jaune dans le contrôleur. Et puis ce que nous allons faire est dans le dossier de vue. Nous allons faire glisser ce VC jaune dedans et cliquer dessus et remarquer comment c'est toujours
votre ex code constructeur d'interface ici, mais connaissez juste storyboard. Donc, ce que nous allons faire est de se rappeler comment chaque contrôleur de vue a une vue. Je vous montre des os nus de terre en haut, alors allez-y. Et avez-vous une nouvelle vue visuelle et juste dragon sur l'écran ? Tu as une vue, non ? Donc, de votre propriétaire de fichiers, nous devons nous assurer que la classe ici sur le côté droit est changée en VC jaune. On y attache la classe. Et puis à partir de vos fichiers sur elle, nous devons connecter cette vue pour qu'il sache ce que vous avez à charger. Donc maintenant nous avons une vue et allons de l'avant et changer la couleur de celui-ci sur le côté droit , ici
sur les changements en jaune comme nous l'avons fait avant. Il y a donc notre point de vue. Pas de storyboard. Nous avons toujours le constructeur d'interface, mais pas de storyboard. Et revenons à la vraie goto ici maintenant. Donc ce que nous devons faire maintenant, c'est en fait charger ce spécifique, Zib. C' est ce qu'on va porter une épingle à cravate dedans. Oui, il y en a un qui s'appelle initialisé avec le nom de la plume. Ok, on va juste y aller et dire super point avec le nom de Nick. Et je vais juste passer les paramètres que ça nous donne. Vous devez appeler ce dysfonctionnement ici. D' accord ? Et le paquet est un paquet de plume ou un clou. Et j'appelle juste la super fonction de la super classe là-bas, et ça nous donne des héritiers. Il dit a besoin du mot-clé override parce que nous le remplaçons, et puis il veut la fonction de codeur, ok. Et donc ce que je peux faire est ici, super point dedans et coder un décodeur et nécessite les deux. D' accord. Et donc on y va. Allons à notre application, délégué. Et ah, ce qu'on va faire, c'est ah, au lieu d'appeler cette première fonction Isar par défaut et on va appeler avec jamais de nom, et ensuite tu mets le nom de la nib zib euh, Z avec Z. Peu importe l'un ou, euh, et
ça s'appelle V.
C.jaune C. . Et le paquet ? Tu peux mettre Neil parce que si tu mets Neil là, c'est le paquet principal. Sinon, vous pourriez faire un s Pondel ce paquet principal. Mais si tu mets Neil, ça va prendre le paquet principal. Donc, nous avons notre contrôleur de vue jaune. Il veut qu'on en fasse un laissez-passer. Donc c'est le point d'entrée, tu te souviens ? Et maintenant ce que nous pouvons dio, c'est que nous pourrions dire que le contrôleur de vue racine de point de fenêtre est égal à V
c jaune . Ok, donc nous avons dû définir le contrôleur de vue de route de la fenêtre principale avec des storyboards. Il fait tout cela automatique. Tu aimes probablement, euh, pourquoi fais-tu ça d'une certaine façon, plus de code ? Eh bien, il y a des avantages que vous verrez peut-être plus tard, mais en gros, nous sommes en train de dire que c'est le fichier un chargement à l'entrée. Et alors ce que nous pouvons faire, c'est dire fenêtre, rendre la clé et visible. Hum, et cela rend la fenêtre de la clé du récepteur invisible. Fondamentalement, c'est ce que dit même là. C' est les communes. Atteint que pour rendre le récepteur de la fenêtre principale affiche devant d'autres fenêtres. Donc, nous sommes fondamentalement juste dans la haine Show the APP. La dernière chose qu'on va devoir faire, c'est juste, euh,
en fait, créer la fenêtre ici. Alors allons de l'avant et disons que la fenêtre de point auto est égale à vous. Je fenêtre et il veut un cadre. C' est là qu'on veut appeler. Donc nous allons vous dire que j'ai filtré les bornes de points de l'écran principal. Donc on va obtenir l'écran réel du téléphone dit, Hey, la fenêtre de devrait être aussi grande que l'écran. Et, euh, on
y va, au fait, avant les storyboards, euh nous donnait du code standard pour faire toutes les choses. Ils l'ont pris là-bas comme, Ha ha. Vous devez utiliser des storyboards maintenant. Eh bien, certains d'entre nous ne le font pas. On a toujours une fenêtre. Nous avons un contrôleur de vue ici que nous avons créé étaient l'initialisation du zib avec son nom . Si vous remarquez ici, il est essentiel que nous mettions ces er's d'initialisation ici et nous avons le point jaune V c Zib, nous l'avons arraché hors d'ici. Le point de départ principal. On a arraché le storyboard de là. Nous avons supprimé ce storyboard. Nous sommes allés à notre V C jaune et nous avons changé sa classe de contrôleur de vue pour la classe
V C jaune . Et nous avons également connecté la vue au contrôleur de vue parce que chaque contrôleur de vue a besoin de vous. Et puis dans le délégué de l'application, qui est le point de départ, nous avons créé la fenêtre. Et, euh, toute façon, si ,
euh, si nous avons tout fait correctement, il devrait, euh, charger notre application dans l'écran. Et il devrait être jaune. Vous devriez voir un moment de vérité jaune vif en cours d'exécution. Ah, c'est
là. Plutôt cool. Pas de storyboards. Vous ne voyez probablement pas encore d'avantages. Et peut-être qu'il n'y en a pas si loin,
peut-être qu'il n'y en a pas. Et peut-être qu'il n'y en a pas si loin, Tout cela n'est qu'une autre façon de le faire. Alors allons de l'avant et parlons de la façon de créer un nouveau contrôleur de vue afin que vous puissiez échanger entre eux. Allons donc au nouveau fichier et ah, source. Et on va dire un cours de touche cacao. Et cette fois, nous allons appeler ce V c bleu. Et cette fois, pourquoi ne pas cliquer aussi créer un fichier zip pour qu'il puisse juste le faire pour nous automatiquement. D' accord. Et donc c'est bon. Et ah, c'est à moins que tu me choisisses pour un iPhone et que l'iPad n'a pas vraiment d'importance, non ? Maintenant. Et donc je vais créer un avis comment a créé un fichier zip et un fichier de manteau ? Faisons simplement glisser ce fichier zip dans le dossier vues et Blue VC. Remarquez comment, car il a fait un zip pour nous automatiquement. Si je vais au propriétaire des fichiers, il est déjà connecté. On n'a pas besoin de changer à ce moment-là. Donc, sélectionnez la vue sait que rien d'autre n'a changé sauf le storyboard. n'y a pas de Segways et de connexion entre les vues, c'est tout. Tout le reste est exactement le même. Changez-le en bleu. Ok, pas grand-chose jusqu'à présent. Contrôleur de deuxième vue semble bien. J' ai la vue. Tu as le cours ? Euh, eh bien, quand vous le faites, voici la même chose avec ces Er d'initialisation. Vous pouvez simplement aller de l'avant et les copier à partir de votre première vue et le mettre ici dans le 2ème 1 parce que la chose est, vous devez remplacer ce nom zip, sinon il ne chargera pas le fichier zip associé. Et, euh, si vous implémentez ceci, il vous faut l'implémenter, donc vous pourriez aussi bien copier et coller. Nous n'avons pas besoin de cela parce que ce n'est pas une application de storyboard. Hum, donc c'est parti maintenant. Et il y a donc notre contrôleur Blue View. Et maintenant, la question du jour est de savoir comment passer d'un point de vue à l'autre ? Revenons à notre jaune. Mettons un bouton. D' accord ? Et ça se déplace ici, d' accord. Et ah, ça a l'air bien. Disons qu'on appelle ça. Va en bleu. D' accord ? Et c'est juste une ligne au milieu avec quelques contraintes. Vous voyez, les contraintes et tout fonctionne encore ici sans le storyboard. Encore une fois. Pas de métro, pas de contrôleurs de vue supplémentaires qui lient sur le même fichier. Donc, nous avons créé un Mais même dans notre éditeur assistant fonctionnera toujours pour nous. Voici notre fichier de code. Nous pouvons simplement cliquer et faire glisser comme d'habitude juste là. Je serais de l'action. Nous appellerons cette charge Blue view. Ok, Fermer. L' éditeur assistant va ensuite à notre code de vue bleue et a réellement vu le code Yellow View. Et voici notre action que nous venons de créer et c'est ainsi que vous le faites. Et ce que vous stockez généralement dio eyes référence à la vue suivante au cas où vous auriez besoin d' y
accéder. Donc, fondamentalement, ce que nous pouvons faire est que nous pouvons dire de notre Veasey bleu de type Blue View PC. Et voilà. À un moment donné, on va le créer, et on va le faire ici. On va dire que le V C bleu est égal à bien, créons l'objet lui-même et le nom de la plume. Et allons de l'avant et appelons ce V C bleu et bundle. Tu vas dire Neil comme on l'a fait avant. Et puis une autre chose que nous devons faire comme nous devons dire, euh, eh bien, il y a différentes façons de le faire. Um, auto point présent contrôleur de vue. Ok, on peut le présenter. Mota motile. Lee. Ok, donc je pourrais dire que
c' est juste là. Bleu v c. Le contrôleur de vue présent Animated. Vrai sur. On veut savoir quand c'est fait ? Oui, on va le charger. Donc, le contrôleur de vue actuel était d'exécuter le programme et de voir si cela fonctionne. Ok, pas de Segways cette fois. Juste deux et Dakota ici, et, euh, on va le charger et aller au bleu et il est chargé. Donc, comme le Segway. Sauf que nous avons juste fait moi-même ce contrôleur de vue présent au lieu de l'auto représenter le Segway ou quoi que ce soit l'attribution était sur cela. Et c'est ça. Maintenant peut-être que vous vous demandez comment transmettre des données. Et je pense que c'est l'un des avantages de ne pas utiliser de storyboards est de travailler avec des données est tellement mieux, parce que, euh, vous pouvez passer des choses dans un temps d'initialisation. Où est-il ? Sur le tableau de bord. Tu dois le transmettre après. Et donc ce que nous pouvons faire, c'est dans notre contrôleur de vue bleue. Je peux réellement créer une méthode de commodité, donc je pourrais dire commodité dedans. Et disons que nous voulons passer. Euh, non, on le fait juste ici. L'
impression signifie qu'on l'appellera C'est de type chaîne. Nous voulons une passe de Pâque dans une chaîne à l'écran, donc c'est prêt à partir. Donc, ce que nous pouvons faire, c'est que nous pouvons le faire de la commodité. Et puis on pourrait dire « point de soi » dedans. Oh, allez. On va juste faire ça. Fondamentalement, euh, je vais appeler au lieu de super dira auto dotnet. Donc South veut dire que ça va appeler ça ici. On va juste l'appeler, et le nom de la plume l'appellera, euh, comme avant. Donc on va dire qu'on veut charger le, euh bleu. Donc nous sommes allés un peu trop bleu vue. Tu vois, parce que c'est le contrôleur View bleu et le bundle pourrait être Neil. Ok, donc ce qu'on fait c'est qu'on appelle cette fonction ici, mais c'est une méthode pratique. Et donc ce que je peux dio, c'est retourner à mon jaune. Et au lieu d'appeler Zib un, je pourrais dire V.
C.bleu C. et je peux en fait appeler pour m'imprimer que je pourrais dire, euh, imprimer ça maintenant, ok. Et donc les différences sur les storyboards que nous avons eu deux d'abord ajouter un expéditeur quand nous
appelions le storyboard, puis dans la préparation pour Segway, Ok, nous avons dû le saisir, l'
analyser et puis passé après son initialisation. Alors que dans ce cas, juste lorsque nous créons le contrôleur de vue suivant ou en passant des données et si vraiment puissant. Donc c'est certainement un avantage, je pense qu'un peu moins de code. Et vous pouvez garantir quand les choses vont se passer au moment de l'initialisation et pas après le fait. Imprimez-moi. Imprimez ceci maintenant. Alors quoi ? Ça le fait encore ? Initialize est notre contrôleur de vue en utilisant cette méthode de commodité ici fonction de commodité, et ah, alors nous appelons celui-ci ici, celui dont nous avons besoin, parce que nous devons appeler l'Isar initial ici, et c'est vraiment sympa de pouvoir créer le vôtre. Appelez-le depuis un autre endroit sans avoir à vous soucier de ce que le nom
des contrôleurs de vue que sa propre classe peut le gérer, donc il le charge là-haut. Ce que nous allons faire, c'est créer une étiquette à Ivy Outlet Week Var, et nous allons dire, hum, imprimer, étiquette de type vous j'étiquette. Ce n'est pas connecté. Allons donc au Blue V C et on va mettre une étiquette ici et on y va. D' accord. Et nous allons, euh, centrons ça et posons quelques contraintes rapides horizontalement et verticalement. Donnez-lui une largeur et une hauteur pour ne pas rétrécir sur nous, et ensuite nous le rendrons blanc pour que nous puissions réellement le voir. Et puis à partir de votre propriétaire de fichiers juste contrôler glisser sur votre étiquette ici sur votre étiquette ici et cliquez sur Imprimer l'étiquette. Il est maintenant connecté. C' est double vérifier notre code ici, donc c'est juste à l'initialisation. Ce que nous voulons faire ici Maintenant, c'est dire imprimer le texte de point d'étiquette ou en fait, ce que nous pouvons faire ici est Ah, nous devons dire que nous avons besoin de ça. Nous souhaitons juste qu'il soit stocké ici, en fait, pour que vous puissiez sauvegarder notre, euh, texte
imprimé imprimé. Donc, cela fait cela et puis le faire initialisé à rien là-bas. Et là, on peut dire que l'impression du texte est égale à Imprimez-moi. Donc, juste lorsque vous initialisez votre code, vous pouvez affecter une valeur dans le texte imprimé, et alors tout ce que vous avez à faire est ah, ici en vue. Il a chargé. Ok, vous pourriez juste dire, euh et bien, la vue apparaîtra. Vous apparaîtrevue superdawg apparaîtra animée. Et ce que nous allons faire, c'est que nous allons juste dire imprimer le texte de point d'étiquette est égal à l'impression txt. Donc, euh, c'est très commun dans les langages de programmation. Et, euh, attendez ici. Qu' est-ce qui me manque ? J' ai oublié l'override. Mot clé. Il est très fréquent dans les langages de programmation de faire toute votre initialisation sur un
Isar initial . Et malheureusement, je ne sais pas pourquoi les storyboards vous empêchent de faire ça. Ils vous obligent à le faire après coup. Donc, l'un des avantages de ne pas utiliser de storyboards est que vous tolérez toutes les données que vous voulez dans vos propres classes et que la gestion directe des mots d'histoire a des limites, et ils ont des limites. Quand tu fais des choses à partir de zéro comme ça, tu n'as vraiment pas de limites. Vous pouvez faire ce que vous voulez sans limites. Cela étant dit, il y a aussi des choses que les storyboards font pour vous que vous ne sortez pas nécessairement de la boîte en le faisant de cette façon. Alors voyons si tout a fonctionné à nouveau. Ce que nous avons fait c'est que quand vous cliquez sur le bouton bleu ici maintenant, Okay, nous allons présenter le contrôleur de vue utilisant le contrôleur de vue présent passait des données juste ici au lieu des deux fonctions différentes. On a dû le faire avant. Et puis cela convoque initialiser er er saisit ces données, les stocke et puis il appelle ceci,
uh, uh, appelle d'
abord cette fonction de nip pour charger ou nib, puis sur la vue apparaîtra, nous allons juste imprimer l'étiquette. Et si tout va bien, nous devrions voir que les données que nous transmettons de l'autre contrôleur de vue sur l'écran vont bleu et l'imprimer maintenant et là c'est. C' est donc une application simple sans utiliser de storyboards. Un autre avantage est que vous pouvez voir tous vos points de vue ici. OK, juste en tant que fichiers. Ok, lève-toi dans un storyboard. Votre tribord peut devenir massive. Et quand je dis massive, je veux dire massive C'est que notre storyboard d'écran de lancement. Et donc, par
exemple, juste pour te montrer, tu sais, tu pourrais savoir, j'ai vu ça, tu sais ? Je les ai vus. Où ? Ça fait presque 100. Ok, imaginez ça. Regardez tous ces contrôleurs de vue. Regardez-le tous. Ok, donc c'est cool, non ? C' est vraiment cool. Euh, mais, euh, imaginez essayer de naviguer où ça va. Oh, mon Dieu, je suis tellement perdue. Il y a tellement de storyboards de Ding ici. Je veux dire, il y a vraiment beaucoup de viande et fais tout ça ici. Bon, on
y va. Ils sont partis. D' accord. Donc vous pourriez vous perdre très rapidement dans un storyboard. En outre, si vous avez plusieurs personnes travaillant sur un projet en même temps. Ok, euh, vous pouvez avoir émergé des conflits parce que les storyboards utilisent tous les mêmes fichiers xml . Et donc vous avez plusieurs personnes qui travaillent un projet, vous pouvez rencontrer des problèmes eso et ils sont vraiment encombrés très rapidement. Donc un autre avantage de ne pas utiliser de storyboards est que vous pouvez avoir toutes vos vues et zip aligné juste ici en face de vous briser. Mais cela étant dit,
c'est votre choix. Mais cela étant dit, Ce que tu veux dio, je t'ai montré les deux façons. Um, vous voudrez peut-être juste des storyboards, surtout que vous apprenez et que vous allez de l'avant. Et je ne pense pas vraiment qu'il y ait une grande différence de vente par rapport à l'un ou l'autre est-ce que ça a le plus de sens. , Pour moi, c'est environ la moitié et la moitié. Cela dépend du projet. Ça dépend du sentiment de maison. Et une chose que je n'aime pas dans les storyboards est le fait que je dois aller dans les Segways et que je dois donner des identifiants, puis je dois aller au code et déterminer lequel il est. Et je dois passer les données de passage que je pense, pourrait être mieux fait dans les storyboards. Le fait que je dois le faire quand j'appelle pour préparer le ou pour faire apparaître le Segway et ensuite je dois faire me préparer pour les données passées séparées comme je n'aime pas l'ensemble du système, comment cela fonctionne personnellement. Alors c'est tout. C' est une enveloppe que les storyboards, pas les storyboards. ce n'est pas avoir de storyboards dans l'application. Choisir quoi ? Ton vrai, c'est comme ça que tu fais. Il est un prix de marque avec des pentes sourdes dot com, et je m'inscrit.
53. Vues en sous-planches (UIView): Hé, tout le monde, profondeur
Mark Pricier trempe dot com et aujourd'hui on va faire quelque chose de vraiment amusant. On va en fait sous-classe de toi et le rendre un peu plus excitant. Alors allez-y et ouvrez votre ex code beta ou votre version live de X coat, quel que soit le jour et l'heure que ce soit. Et allez-y et créez un nouveau projet de fichier ou vous pouvez le faire ici est bien de créer un nouveau
projet Exco . Et la raison pour laquelle nous allons sous-classe de vous, c'est parce que quand vous construisez des iPhone ups 99% du temps, vous devez faire des choses personnalisées pour votre U Y. Euh, c'est ce
que le projet demande. Et, euh, vous savez, peut-être que d'autres personnes seraient comme, Eh bien, c'est dans le concept de la cour. Eh bien, en fait, c'est chaque fois que vous devez faire quelque chose encore et encore, quel que soit votre travail,
c'est un concept à peu près fondamental. Il est donc important de savoir comment sous-classer les choses et rendre les choses belles et jolies. Donc, je vais créer une application à onglets juste pour que nous puissions avoir deux vues différentes sur cela afin que je
n'ai pas à faire glisser deux vues différentes sur l'écran et juste aller de l'avant et appeler cette
vue personnalisée , ok ? Et je vais le mettre sur le bureau ici et on y va. OK, alors allez-y et cliquez sur votre storyboard principal. Donc, vous êtes probablement utilisé Teoh dans sa forme la plus simple, travaillant avec des boutons. Donc, si je fais défiler ici jusqu'à ma première vue, une application à onglets commence avec quelques vues différentes ici. Contrôleurs de vue. Si je sélectionne ma première vue et disons que je veux un bouton de sauvegarde. Ok, donc je tape le bouton juste ici. Je le fais glisser sur l'écran. Tu as probablement l'habitude de voir cette année comme, et bien, ce n'est pas si joli. Vous savez, je pourrais vous dire que je pourrais foirer en cliquant sur l'inspecteur d'identité ici. Je pourrais faire défiler vers le bas. Je pourrais, tu sais, changer l'arrière-plan pour, tu sais, une couleur comme le vert ou autre, mais il faut toujours un bouton carré. Ce n'est pas si excitant. Et c'est un peu ce avec quoi tu es coincé en ce moment. Peut-être à moins que vous ne modifiez l'image sur l'arrière-plan. Nous l'avons fait
aussi, aussi, mais si nous pouvions créer une classe réutilisable ? Jetez votre application. Disons que votre designer dit que je veux un arrondi, mais c'est bleu. Et je veux que vous l'utilisiez dans toute l'application, Will. Ça craint d'avoir à entrer et modifier toutes les propriétés, l'ombrage et tout ça ici. Un générateur d'interface. Donc, ce que nous pouvons faire est de créer une classe réutilisable. Et donc ce que je peux faire c'est, euh, tu sais, je pourrais dire que je veux que ça reste en sécurité, non ? Et Ah, c'est
là. Voilà notre bouton. Laisse-moi aller de l'avant et Ah, fanion ici. Je vais lui donner une hauteur, et on l'épinglera à une distance du haut, et on l'alignera juste ici avec les lettres du menu d'alignement alignées horizontalement. Donc on a ce moche bouton de sauvegarde, mais on voulait être bleu, accord ? Et pensons juste à la couleur que nous voulons. Il suffit de l'avoir sous la main. Alors, euh, voyons. Je veux cette couleur bleue ici. Laisse-moi juste que je vais cliquer sur ça pour ouvrir les curseurs RVB, et ensuite je vais annuler ça. Ok, donc vous avez vos couleurs ici sur le côté gauche, comme vous pouvez le voir. Et donc ce que je vais faire est de cliquer sur mon dossier de vue personnalisée mon dossier principal de projet et d'aller dans nouveau fichier et la source et la classe cacao Touch. Et la sous-classe ici va être vous. Bouton I. Et je vais juste appeler ce bouton bleu, accord et je vais le créer. Et on y va. Donc ce que je vais dio, c'est ah, débarrassons-nous de ça. Je vais super. Je vais appeler la fonction éveillée de NIB. D' accord ? Ça va appeler quand le storyboard le chargera. D' accord. Et, euh, allons-y et donnons-nous un peu de couleur. Donc on va appeler les propriétés de la couche. Vous pouvez également faire un calque auto-point. Chaque vue possède une propriété de couche. Quelqu' un dit que le rayon d'angle de point de couche est égal à 5,0. Je voulais avoir des bordures arrondies. D' accord. Et ah, alors ce que je peux faire, c'est dire Ah, vendre. Qu' est-ce que c'est ? Ah, la couleur de
fond. Oui. La couleur de fond est égale à la couleur des yeux. Et ah, nous voulons Rouge,
Vert, Bleu et Alfa. C' est très bien. Et donc pour le rouge, si vous regardez en haut à gauche et notre sélecteur de couleurs, c'est 46 Et ce que nous avons réellement besoin de dio est 46.0 divisé par 2 55.0 La couleur U Y n'
utilise pas la gamme complète jusqu'à 55 utilise des valeurs entre zéro et un où zéro est noir puis à 55 est le montant total. Et donc nous sommes juste en train de le convertir en décimal, quelques mathématiques simples. Et donc sachez juste que lorsque vous trouvez vos valeurs RVB juste divisées par 2 55, vous n'avez pas à comprendre complètement ne savait comment l'utiliser. Mais tu feras beaucoup ça. Et pour le bleu dira 1 95 0.0 divisé par 2 55 points vos propres alphas un point où nous voulons qu'il soit complètement opaque. Et enfin, je pense que notre titre devrait être je pense que notre titre devrait être
blanc. Donc je peux dire définir la couleur du titre et nous allons dire que vous aimez la couleur blanche pour ST juste dans l'état normal. Donc, tout ce que nous avons fait ici, c'est que nous avons créé une classe personnalisée qu'elle hérite de vous. J' achète, on a donné un rayon de cinq coins et une couleur de fond, et on donne que l'orteil titre est blanc, et, euh, c'est tout. C' est tout ce qu'on va faire maintenant si je vais à mon storyboard principal, d' accord. Dans le bouton Enregistrer juste ici. Allons par ici. Ce petit rectangle appelé Identity Inspector, vous cliquez dessus, puis changez la classe au lieu de votre bouton. Changement du bouton bleu. D' accord ? Et ah, donc en ce moment vous voyez à l'écran ce vieux coup de poing en bouton blanc ce
peu importe ce que c'est, rendons ça excitant. Comme du vomi. Ça a l'air ennuyeux. Ennuyeux ? Oh, ouais, le
charger. Voyons à quoi ça ressemble à l'écran. Ça arrive. Je te le promets. Et c'est là. Alors regarde ça. Qu' est-ce qui est vraiment intéressant ? Ce qui est vraiment intéressant, c'est que je peux l'utiliser tout au long de mon application maintenant afin que je puisse avoir un bouton
cohérent qui est complètement réutilisable. Donc, si je vais ici à mon contrôleur de deuxième vue, OK sont mon storyboard principal et je vais à mon contrôleur de deuxième vue. Je vais juste copier ce premier bouton collé ici. Vous savez, vous en mettez autant que vous voulez partout ici avec la classe de boutons bleus qui leur est assignée, et cela fait instantanément comme un motif de coupe de biscuits de cette vue. Donc maintenant, vous pouvez faire toutes sortes de choses amusantes et ce n'est pas forcément des boutons. Cela pourrait être votre arrière-plan d'une vue. Ça pourrait être, Ah, une image. Toi. Il pourrait être ce que vous voulez, vous pouvez écrire toutes sortes de codage personnalisé ont été l'utiliser. Donc, le but de cette leçon est de savoir que c'est une très bonne pratique quand vous voulez
savoir faire des choses personnalisées. C' est une très bonne pratique d'y aller, il
suffit de la sous-classer et d'utiliser cette classe à la place. De cette façon, vos manteaux ne sont écrits qu'une fois Vous n'allez pas dans vos storyboards et le style tout sait comment nous avons traversé un changement du nom de la police et tout ce que nous pouvons faire. L' auteur recode une fois et il suffit de réutiliser cette classe et rend notre vie beaucoup plus facile, maintient les choses cohérentes. Et à l'avenir, disons que vous avez 100 boutons dans toute l'Europe, et le designer et le patron sont comme, Hey, ces boutons doivent être orange. Nous venons de changer notre marque et notre logo. Si vous ne l'avez pas fait comme ça, vous savez ce que vous auriez à dio Oui, vous êtes comme, Oh, je commence à voir que vous devez passer par toute votre application et changer les 100 boutons, toutes les couleurs. Quel cauchemar. Et au fait, il est très fréquent de voir des gens écrire du code comme ça. Je suis dans le code des gens tout le temps et ils font des choses comme ça et ces changements arrivent à bout ligne et ils dépensent
du temps et de l'argent, des centaines de dollars, des milliers de dollars en arrière et apporter des changements. Alors prenez de l'avance sur le jeu ici, utilisez des classes personnalisées pour faire des choses comme ça, et c'est tout. Pour l'instant, je vais te montrer plus de trucs cool dans les vidéos ultérieures. Car c'est Mark Price de la mort pentes point com, et nous vous verrons bientôt.
54. Introduction à l'application: Yo, yo,
yo, yo, qu'est-ce qui se passe ? Marquer le prix ? Vous êtes sourds et j'ai reçu beaucoup de commentaires. Les gens disent que je devrais commencer à faire appel à d'autres publics, comme juste un fan de bière. Tu veux apprendre le co ? Ouais, je ne le sens pas vraiment. Plutôt rendre hommage à la glace vanille que Justin Bieber. Bonté pour vous, fans de
Justin Bieber. Je plaisante. C' est un type sympa. Parlons de choses plus amusantes et importantes, cependant. Puis Justin Bieber. Et c'est l'application que nous allons construire aujourd'hui. Donc, euh, c'est un peu une application simple, mais vous allez renforcer les principes avec des vues de pile et des mises en page de contrainte. Vous allez aussi utiliser Segways. Ok, euh, tu vas le mettre en pratique et si cool application. C' est le genre d'idées que tu as choisi ton endroit préféré. Vous pouvez choisir l'endroit que vous voulez. Ce n'est pas vraiment mon endroit préféré,
mais c'est là que j'ai grandi. Ce n'est pas vraiment mon endroit préféré, C' est une ville appelée Yucca Valley dans le désert, au milieu de nulle part sur Personne n'en a jamais entendu parler. J' ai pensé que ce serait amusant de le faire. Et donc en gros, juste pour montrer votre endroit préféré, vous allez mettre l'état ou le pays ou n'importe où,
où vous vivez et montrer l'image. J' ai choisi l'image spécifiquement qui avait un fond bleu sur le dessus de sorte que le texte
se démarquerait . Je peux juste prendre une image. Tu dois y réfléchir un peu. Vous pouvez utiliser ces images OAS Eh bien, si vous voulez suivre le long et vous pouvez en savoir plus et il montre une autre image et ouvre le Segway sur et puis juste montre à partir de détails à ce sujet. J' ai décrit la population et l'histoire de Wikipédia, et c'est une sorte de tout. Tu as cliqué en arrière. Ramenez-le à l'écran principal, mais vraiment cool. Si concentré sur le style, une application se concentre correctement sur les Segways. C' est un bon tremplin pour aller à des choses plus complexes. J' ai vraiment un maître sur les principes. J' espère que vous êtes sous mémorisation. Vous savez, certains des principes de base, comme poser des contraintes et ajouter des points de vente de lierre et des choses comme ça. Donc c'est juste plus pratique. Beaucoup de plaisir sur. Vous savez ce que vous pourriez même publier sur l'App Store si vous faites une application qui semble vraiment agréable comme ça. Je pense que ça a l'air sympa. Vous pouvez avoir plusieurs écrans et vous ferez cela et certains des exercices par la suite , vous allez ajouter plus d'écrans et ajouter plus de valeur à vous pourrait créer une sieste pour votre ville
préférée. Et tu sais quoi ? Pourquoi ne pas aller parler au maire de la ville et dire, Hey, j'ai construit cette application. Donne-moi 20 000$ et ça sera vraiment, vraiment un portefeuille. Alors c'est tout. C' est l'application sur. Allons-y et commençons.
55. App: endroit préféré: Hé, tout le monde, Mark Price ici, Deb pentes point Com et porter va construire cette application vraiment cool ici. Les endroits préférés ou tout ce que vous voulez appeler ça un peu plus grand là-bas. J' appuie juste sur la commande et, euh, on en a parlé dans la vidéo d'introduction. Mais encore une fois, c'est une sieste qui va nous emmener d'écran en écran avec Segways. Vraiment ? Juste un écran. Vous y retournez aussi. Il va aussi parler plus de contraintes et de choses comme ça. Et voici quelque chose de vraiment important pour commencer avant de plonger dans le code. C' est une application simple, non ? Mais si vous pouvez concevoir une application qui ressemble bien à ça et je pense que ça a l'air bien, Ok, Si vous pouviez concevoir une application qui ressemble bien à
ça, cela ne vous prend pas si longtemps. Vous accédez à l'APP Store et vous n'allez pas dire que vous savez quoi ? Tu as fait du bon travail. Ils vont être très impressionnés. Vous devriez donc les soumettre à l'APP Store. Tu es comme la façon dont tu ne m'as pas encore appris ça. Eh bien, plus tard, il y a une vidéo et vous pouvez regarder maintenant qui parle de soumettre l'application à l'APP, monsieur. Montez ça sur l'APP Store et mettez-le sur Gib. Fais des trucs vraiment cool. D' accord. Fin de la boîte à savon. On y va. Allons de l'avant et créons un nouveau projet. Je vais me débarrasser de ce gars ici et aller à ton ex manteau et aller déposer un nouveau projet. Je vais mettre la mienne ici, d'accord ? Et ce n'est qu'une seule application de vue. Appelons cet endroit préféré, d' accord ? Nous n'avons pas besoin de données judiciaires et allons de l'avant et cliquez simplement sur suivant. Et c'est là. Pas grand-chose. Homme du NBD. D' accord, donc tu as ton contrôleur de vue ici, et on sait à quoi on voulait ressembler parce que je l'ai montré à tout le monde. Voici O. Um, comme vous pouvez probablement l'imaginer, nous avons probablement besoin d'une image pour l'arrière-plan, et nous allons aussi une autre image pour le projet et une petite icône de boussole. Alors allons de l'avant et allons dans notre dossier d'actifs ici, et j'ai sur mon bureau ici. Au moins, j'ai mes images pour ce projet. Ok, Vous pouvez récupérer votre du code source au projet ou à partir des ressources que j'ai téléchargées et simplement faire glisser ces images de tri ici. Je les ai attrapés sur Internet. Ok, euh, ces images ici et, euh, pour cette, euh, cette image de boussole juste, euh, juste pour que je puisse donner une bonne attribution. Ok, c'est juste ici sur Internet. C' est un ciel juste ici par Dmitry Better knockoffs. G. Euh, c'est
lui qui l'a fait. Et voici l'Eurail, et c'est lui qui l'a fait. Ok, donc j'ai cette boussole là-bas. J' ai changé. Je l'ai inversé Toe blanc, c'est tout, Hum et on y va. Alors retournez à votre storyboard principal et continuez. Nous savons que nous avons besoin d'une image de fond. Allons-y, attrapons cette image et mets-la là, juste là. Et nous allons l'épingler vers le haut. Désactivez les marges parce que nous voulons couvrir l'ensemble de l'écran. Et ça a l'air génial. Et mettons l'image au Yucca et elle est étirée. Alors changez ce mode pour ressentir l'aspect, et il a déjà l'air bien. Ok, allons de l'avant et ajoutons des étiquettes. Wow, ce gars ici et changeons la couleur de l'orteil blanc et passons du système à coutume et les nouvelles Helvetica très bien. Mais de régulier trop audacieux. Et je vais te voir faire un peu plus grand ici, et je vais dire à la porte. Et ça a l'air bien. Taille d'un fonds là-bas. Donc en plein air. C' était le désert d'aventures en plein air. D' accord, aventures, aventures en plein air. Et puis je vais copier et coller ça une fois de plus. Je ne fais que copier et coller n'importe quoi. Vous voyez quelque chose comme par magie apparaître sur l'écran. Sa commande C commande V ou edit copy, ce qui n'est pas le cas. Laissez-moi faire maintenant pour une raison quelconque et éditer. Parfois, vous devez cliquer sur et cliquer dessus. Il est là. Modifier copier que modifier coller ou dupliquer l'un de ceux qui travaillent. Donc, vous ne devriez pas le faire maintenant. Vous devriez savoir comment copier et coller des choses. Commandement C, Commandement V. Ok, , allons-y et emmenons ce type ici un peu et celui-ci s'appellera Desert Outdoor Adventures. Je ne sais pas que ça ne sonne pas bien, mais c'est plutôt cool. C' est un peu comme un hipster, peu importe ce que ça veut dire. Donc ce désert juste là, euh je sais ce qui doit être un peu délavé. Alors réduisons l'Alfa jusqu'à ce qu'on l'obtienne là où on le veut. Et je pense que le point pour cinq est joli, donc juste va lui donner une variation de couleur, et ça a l'air bien. Donc je vais copier ce type ici et pas, tu sais, on va, euh, le
mettre juste ici. Je vais le rendre un peu plus grand. Et, euh, je vais faire cette taille 60. Faisons ça par ici. Changement à 60 et ça s'appellera Yucca. Vous étiez genre, non, un de cet endroit s'appelle encore Goods désert méchant. Eh bien, c'est vrai. Et a grandi ici, Yucca Valley. Et je n'aime pas comment c'est presque la même taille, donc je veux juste le rendre un peu plus grand et ensuite dire, 75. Ouais, comme ça. Qu' est-ce que vous en pensez les gars ? Maintenant, c'est moche. Eh bien, je le construis,
pas toi, en fait. Tu le construis. Faire une offre. Faites-le comme vous voulez. Arrête de te disputer avec moi. D' accord ? D' accord. Tu vois ? vallée du Yucca. Ça a l'air génial. Maintenant, nous avons juste besoin de notre petite icône de boussole et d'un mot de plus. Alors allons de l'avant et prenons une image pour la boussole. On y va. Trop grand. Ses changements à la boussole. Je vais dire que l'aspect mod est en forme. Nous voulons rester parfaits. Il suffit de faire un peu plus petit. Ils vont bien. J' aime bien où ça va. Je vais vraiment copier le désert et commander C et Commandement V. Et nous allons faire,
euh, euh, mettre la Californie ici qui a commencé à être belle. Bien sûr. Nous n'avons pas encore de contraintes, n' est-ce pas ? Faisons ça. Maintenant, sélectionnons ces. Je maintiens le quart de travail enfoncé et les sélectionne. Ne le mettez pas dans une vue de pile. Donc, cliquez sur la vue de la pile, mais et je vais sélectionner celui-ci dans celui-ci. Mettez-les dans une vue de pile, puis celui-ci, et celui-ci va être dans une vue de pile horizontale. Ok, j'aime ça. Et puis ce que nous pouvons faire est de prendre ces trois vues de pile et de les mettre dans une vue de pile. esprit soufflé, non ? C' est facile ? Les nouvelles du cerf sont incroyables. Je suis si contente d'enseigner sur lui. Je veux dire, je les ai déjà depuis,
genre, genre, six mois quand je les ai vus dans la vidéo, euh, euh,
wwdc. Des trucs vraiment cool, tout
changer. Je l'utilise tous les jours. Maintenant espacement 20. Disons 30. Donc, nous voulons l'espacement vertical entre ces piles doit être de 30. J' aime ça. J' aime ça. J' aime ça. J' aime déjà ça. Je ne vais pas jouer avec ça. J' aime ça. Celle-ci a besoin d'un peu de travail ici, cependant. Cette troisième vue de pile. Donnez-lui juste un peu d'espacement horizontal. Disons 20. J' ai 15 ans. D' accord ? J' aime vraiment où ça va. Je vais juste faner maintenant toute la vue de la pile elle-même. Ok, laisse juste 20 minutes du haut, en fait. Pourquoi propriétaire ? Pourquoi ce zéro ST n'a généralement pas la marge supérieure. Trouvons ce que disent 20 ou zéro de leur, euh, et zéro de la gauche. Parce que ce sont les marges. C' est très bien. Ok, allons de l'avant et allons voir comment ça s'est passé. Ecoute, on progresse si vite. Tirez-le vers le haut sur l'écran et il a l'air vraiment sympa. Regardons bien dans le paysage. La chose cool sur les fusibles de pile, ils sont beaux, même dans le paysage dans la plupart des cas. Regarde cet homme. Je devrais publier ceci sur le magasin APP. Personne ne s'en souciera. Pourquoi on a kidnappé à propos de ce désert méchant ? Je ne sais pas. Ok, c' est bon. Allons-y et faisons le bouton. Je pense que c'est tout quand il est parti sur l'écran. Mais court pour le bouton, bien
sûr. Et, euh, faisons un peu plus gros. Changeons la couleur de fond. Je clique ici, défilant vers le bas, arrière-plan pour lire et la couleur du texte apparaît. Changeons le blanc. Et changeons la police, bien
sûr, en Custom et Helvetica New et faisons audacieux semble bien. Faire 17 taille de police. Et ce que nous allons dire, savoir plus dans les casquettes. Juste une sorte de convention que nous faisons ici, bien
sûr, sont mais il a un peu arrondi. On va arranger ça. Vous l'avez déjà vu, alors allons-y et épinglons ça. Cliquez avec et la hauteur ou corrigé, puis épinglez-le une fois de plus en bas dira Disons 40 du bas, OK ? Et j'aime cela et allons de l'avant et il suffit de cliquer sur le menu d'alignement et faire horizontalement et conteneur. Ok, donc notre bouton est là. Ça a l'air super. Maintenant, ouvrons notre assistant rédacteur en chef. Et je vais faire une référence au bouton simplement parce que je veux lui donner un
bord arrondi . Donc je vais le mettre ici. On va appeler ça, euh, plus de bouton. Ok, c'est tout près. C' est rédacteur en chef. Hum, ça a l'air bien. Faisons un contrôleur de deuxième vue. Pourquoi ? On est sur cet écran avant que j'oublie, c'est tout. Et je vais juste faire une transition que je faisais ici à partir du bouton lui-même. Cette transition plus mais ici. Montrons ça. D' accord. Ça m'a l'air bien. Revenons à notre code et sur cette vue s'est chargée ici. Allons de l'avant et autour des coins de notre bouton. Tu devrais savoir comment faire ça maintenant. Je pense que nous l'avons couvert. Si tu ne l'as pas fait, tu vas le couvrir comme des milliers de fois parce que je le fais tout le temps. Plus de points de bouton Calque dont le rayon d'angle est égal à 2,0. Ça m'a l'air bien. Ok, donc, revenons au storboard et, euh, agrandissez ce petit peu ici. Ok, donc on doit aller à cet écran ici,
et, et, ce qu'on veut faire, c'est se souvenir on va mettre l'image en haut, ok ? Et puis j'ai du texte ci-dessous sur votre ville. Alors allez-y. Et si vous voulez, Si vous ne faites pas Yucca Valley dio faire quelques villes différentes obtenir leur population ou tout ce que vous voulez utiliser. Et vous êtes la vue de l'image, et je fais juste une hauteur arbitraire là-dessus. Ça n'a pas vraiment d'importance parce qu'on va ressentir l'aspect alors je vais dire cinq par le haut. Non. Qu' est-ce que tu fais ? Je pense qu'il est passé au-dessus du sommet. fait. Ok, donc je le peins zéro au sommet. Marge de décollage, zéro à partir de la gauche, zéro à partir de la droite. Et donnez-lui une hauteur fixe de 1 52 Mettez l'image à Yucca ou quoi que ce soit vos images et
bien sûr , changez d'échelle pour sentir Teoh aspect. Sentez-vous beaucoup mieux. Ecoute, ce joli désert. Ok, donc ça a l'air bien. Je veux copier cette étiquette de texte d'aventures et juste la coller ici pour ne pas avoir à faire toutes les choses de formatage, donc je commande juste voir sur l'autre écran et commande vita ici qui disent à propos de Yucca Valley , Centrez-le et passons à l'épingler avec une largeur et une hauteur fixes, accord ? Et puis normalement, si c'était une vue régulière, je pourrais juste centrer cela dans le conteneur. Mais les vues d'image ne vous permettent pas vraiment d'y mettre des vues. Donc ce qu'on va dio, c'est qu'on va l'épingler du haut. Donc, dans la hauteur et 45 du haut est très bien. Et puis sur l'alignement, mec, vous faites juste horizontalement dans le conteneur. Et le conteneur est le tout, le tout. Donc c'est bien. Nous épinglons ceci, nous épinglons ceci, nous avons besoin d'un bouton de retour. Alors allons de l'avant et faire le bouton de retour maintenant et a changé. Couleur du texte, orteil blanc. Ok, rends-le plus grand. Ici. Disons que j'aime ça. D' accord ? Ça a l'air bien. Maintenant on a juste besoin de ça, c'est plus d'étiquettes et d'autres trucs. Alors allons de l'avant et commande C commande V. Et assurez-vous que vous me rejoignez les problèmes ici avec la hauteur. D' accord ? Je suis juste que je m'assurais juste de ne pas porter de mauvaise contrainte, donc je viens de sélectionner celle-ci que je viens de copier et de coller. J' étais heureux de me débarrasser de la largeur et de la hauteur sur ce sur. Changeons la couleur du texte et revenons ici à nouveau. Hum, et, euh, attributs, inspecteur. Ok, j'espère avoir ça maintenant pour savoir quand je change de choses, je suis ici dans les attributs de l'inspecteur. Comme les couleurs et les choses comme ça. Je travaille avec des contraintes ou change en hauteur sur la règle. Ok, euh, l'inspecteur de taille. Et quand je suis là pour changer le nom de la classe, c'est l'inspecteur de l'identité. Ok, je dois
juste faire tomber ça. Je vais changer de couleur. Trop. Lumière, couleur
grise. D' accord. J' aime ça. marche pour moi la population. Je vais commander C commande V. et passons ça de gras à normal et au lieu de faire toutes les majuscules, vous ne pouvez pas vraiment faire le numéro de capitaine, donc ça n'a pas d'importance. Il y a donc de la population, et ensuite on a besoin de l'histoire. Donc je suis juste commande C Command V a fait la sélection du mauvais. On y va. Ça allait être de l'histoire. Et puis commandons c commande v la population et mettez-le ici. Et ce qu'on va dio est sur celui-là. Faisons-le partir. Tout le chemin de l'autre côté. Eh bien, attendez. Avant de le faire, avant de le faire,
nous devons les mettre dans des vues de pile. Mais je veux donner ça,
genre, genre, 50 lignes juste pour être en sécurité. Alors 50 Ok, alors allons-y et mettons-le en vue de la pile. Donc celui-ci et celui-ci vont aller dans une vue de pile verticale. Ouais, et ça va être dans leur propre vue de pile verticale, puis on prend ces deux statues et on les met dans leur propre vue de pile verticale. C' est bon. Donc je n'ai pas eu à empiler ces deux statues ici, mais je l'ai fait, parce que je veux leur donner un espacement avec,
euh, euh, vue de la pile, espacement et des choses comme ça. Et je veux un groupe choses ensemble logiquement. Donc tu peux le faire si tu veux. Vous ne pouvez pas le faire, ou vous pourriez le faire. Il suffit d'utiliser une vue de pile géante. Mais il s'agit d'obtenir le résultat final. Et je pense que la meilleure façon d'obtenir le résultat final que je cherche est de faire empiler nouvelles et ensuite les mettre dans leur propre pile, mais que je vais cliquer maintenant ici. Donc ils sont maintenant dans une pile. Toi. Donc ce que je vais dio n'est évidemment pas là où je veux qu'il soit, donc je vais épingler cette pile, vous ici, je vais l'épingler. Disons juste 40 de l'image et dira zéro de la marge gauche et dira zéro de la marge droite. Ces vues de pile aiment aller loin de l'écran pour une raison quelconque, Um, qui n'est pas ce que nous voulons du tout et dire zéro du bas, en fait 20 du bas. , Ok,
ça devrait le déplacer là où on le veut. Il est évident que ce n'est pas encore joli, mais c'est bon. On peut changer certaines choses. Donc, ce que nous voulons faire est d'abord sur les vues de la pile Inter. Faisons d'abord cette population. L' alignement est Phil. Essayons l'alignement, la direction et la distribution se sentent proportionnellement. Je joue juste avec les options ici. Ok, centrage
égal. Tu sais, laissons ça comme ça pour l'instant, ok ? Je veux garder le leader,
cependant, cependant, et puis celui-ci est en tête, et celui-ci va être se sentir bien, passons à la vue de la pile supérieure quand il tient les deux leaders Que diriez-vous de sentir proportionnellement ? D' accord ? Sentez également ce qui a changé de citron à sentir. Donc ça ressent tout ça. Hum, je me fiche vraiment de ça trop. Bien adapté. Voyons juste à quoi ça ressemble quand on met le texte. Alors allez-y pour trouver les techniciens que vous voulez coller. J' attrapais le mien ici et en bas. Je vais le coller ici. Voilà mon texto. Ok, donc ça a l'air plutôt bien. Je pense que l'espacement sur ce bureau des secondes Allons-y et faisons un peu, euh, un peu d'espacement, disons 10. Mm, ouais, c'est bon. Et puis ici sur cette vue de pile, ça a l'air moche. Mais voyons à quoi cela ressemble quand nous fonctionnons réellement sur l'appareil. Juste pour être sûr, tirez-le ici, pour en savoir plus. Donc, tout d'abord, mes étiquettes d'histoire ont complètement disparu de l'écran. Le texte ici est une sorte de coupure, est bien pour la population, fait une sorte de trucs farfelus ici. Ce n'est certainement pas ce qu'on voulait faire. Et je ne suis pas content de ça. Pas du tout. Alors regardons notre pile. C' est encore là. Donc je vais dire, sentir cette fois là, nous allons et nous sentons proportionnellement va bien. Donnons un peu d'espacement entre les deux vues de la pile. D' accord ? Je pense que ça va bien se passer. Et puis sur notre école pour avoir sa vue sur la pile de population. Changeons ce leader et sentons que ça a l'air bien. En fait, ça a l'air bien. Je pense que ça va rester là où on en a besoin. Et puis, euh, regardons ce type ici. l'air plutôt bien, aussi. Essayons encore ça. Maintenant que j'ai changé le paramètre sur le terrain, voyons s'il semble mieux, En savoir plus. Tu sais ce qui est assez bon pour l'instant, on pourrait jouer avec ça, et tu sais, euh, rapprocher ça, mais je suis tout à fait d'accord, pour le moment. Vous pouvez jouer avec vous seul. Ça ne marche pas dans le paysage. Très bien. Voudrais-tu ? Peut-être vouloir faire est de faire un type de classe de taille. Rendre cette image plus petite ici, quand c'est ah, rendre l'image plus petite quand elle est sur un appareil paysager, des choses comme ça. Mais jusqu'à présent, il a l'air bien, connaît les boutons arrière, ne fonctionne pas. Je pense que c'est la dernière chose qu'on doit faire ici. Donc on a son Segway, qui vient du bouton. Ça a l'air très sympa. Ça nous a emmenés ici. Nous avons juste mis quelques contraintes. Ça a l'air plutôt bien. Hum et ah, nous avons notre texte et des trucs ici, et ceux-ci travaillent avec des contraintes et des vues de pile. Alors faisons fonctionner ce bouton de retour maintenant. Ce contrôleur de vue n'est lié à aucun code en ce moment. Alors allez dans votre dossier ici et allez à la nouvelle classe Cocoa Touch source de fichier et, ah, appelons ce détail V c et assurez-vous qu'il est une sous-classe de vous. Je vois le contrôleur, qui est ce que nous voulons et cliquez sur créer. Et tout ce que nous avons à faire maintenant, c'est d'aller ici pour rester storyboard. Clipez votre contrôleur de deuxième vue, votre contrôleur de vue détaillé. Cliquez sur l'inspecteur d'identité et modifiez la classe le détail V c. Maintenant, il est connecté et parler au code. Donc, si vous ouvrez votre assistant rédacteur en chef, les deux cercles ici, c'est ce
que vous devriez travailler ici. Et si vous cliquez sur le bouton Retour dans le contrôle Faites glisser ici à Ivey. Action. Ok, ça va être rappelé pressé et juste de l'intérieur de ce code ici. Dis juste, euh, rejeter le contrôleur de vue. Donc, vous ne rejettez pas le contrôleur de vue qui est actuellement ouvert animé ? Oui. Et quand il sera terminé, nous ne nous soucions pas de le faire finir en traîneau. Et on se fiche de ce qui se passe après. Voyons si ça marche. Ici, il vient. Très bien, donc cet écran a l'air fabuleux, vous savez, à l'
air plutôt bon dans le paysage ainsi que c'est plutôt cool et s Oh,
ça a l'air super. Vous cliquez sur. En savoir plus sur la ville. Il charge ce contrôleur de vue montre l'historique de la population. Tu pourrais mettre ce que tu veux ici. Um, c'est juste des trucs de base. Et donc ce bouton a chargé le segway juste ici, a initié. On n'avait pas à le faire à partir du code. Ok, nous avons tout fait ici à partir du storyboard, vous cliquez en arrière et il rejette le contrôleur de vue. Donc je pense que nous l'avons terminé, donc c'est vraiment cool. Et ce sont des segments très simples. Ce n'est pas si mal. Et ce n'est pas si difficile d'obtenir des AP qui ont l'air vraiment sympa sur le magasin APP avec une
quantité limitée de travail. Je veux dire, depuis
combien de temps fais-tu ça ? Euh, 20 minutes et 58 secondes. Donc 20 minutes, 58 secondes. Vous pouvez libérer une application sur l'APP Store ou moins. Alors, euh, félicitations. On a fini, et on va passer à des choses plus grosses et plus mauvaises.
56. Swift 2 Enums: Hé, tout le monde, Mark Price entend avec les pentes sourdes et aujourd'hui nous allons parler de Denham aussi connu sous le nom de nouvelles orations. Et le sujet du cours aujourd'hui est les voitures laides. Ah, en fait, cliquez et faites glisser et enregistrez ceci parce que nous allons l'utiliser dans notre application. Droit ? Ok, allez-y et ouvrez un nouveau projet de code X et faites une application de vue unique. Vous étiez comme, Oh, ce gars est un idiot. C' est ma voiture. Désolé, les gars. Mais pas mon truc. Chambres en or bleu. Tout le monde fait la même chose a changé autour un peu. ça Appelons
çales voitures de Denham et les moches de Denham. D' accord ? On m'a appelé des objets. Je serai gentil, d' accord ? Et mettons-le ici sur le bureau. Et ce qu'on va dio, c'est avoir trois boutons différents sur l'écran, ok. Et, euh, fonction du bouton que vous avez sélectionné, nous allons, euh, nous allons donner un choix et nous ferons quelques actions basées sur ce choix. Allons voir notre contrôleur de vue ici, et on va créer un Denham. Maintenant, un Inam vous permet d' avoir une série de choix que vous pouvez choisir pour n'importe quoi. Donc si je dis dans les voitures. Je dois lui donner un type. Donc artisan moi de type chaîne et puis je peux avoir une série de cas ou d'options. Donc cas BMW, ce n'est pas des cartes laides, une voiture cool. Et ah, vous êtes comme, Oh, Oh,
vous ouvrez une boîte de vers ici. Désolé, les gars. J' aime toutes les voitures de la même manière, certaines plus que d'autres. Le cas BMW est bien dit, mais aussi nous voulons faire un test de cas Honda SE Honda. Voiture logique. Tesla va Tesla au cas où, hum, un Subaru. Un Subaru. Ok, donc ce qu'il fait est vous permet d'avoir un ensemble limité d'options. Il y a donc de nombreux cas d'utilisation à tout moment dans votre application que vous souhaitez choisir parmi
l'une des options suivantes. Vous voulez un code dur sans avoir à manuellement, um, bonnes chaînes ou les entiers partout dans votre application pour dire, Hey, si c'est un à, c'est si c'est un pour le faire en eux est un grand pour cela. Donc c'est tout ce que tu as à faire, Teoh en déclare une pour l'utiliser. C' est simple comme dire, euh, eh bien, on pourrait avoir un droit variable. C' est aussi un type. Ok, donc je pourrais dire, euh, bar, hum, voiture de choix. Ça pourrait être des voitures de type. Ok, donc nous disons qu'on a une variable de type voitures, une variable de ce type mm, et qu'on attend un choix. Donc ce que je peux dio, c'est que je peux l'assigner ici. Donc, euh, tu sais, je pourrais dire que la voiture de choix est égale aux voitures dot tesla et au choix de la voiture si je l'imprime, OK ? Voiture de choix. Il imprimerait Tesla. Pas grand-chose. Droit ? Et qu'est-ce qu'il imprime réellement ? Eh bien, qu'est-ce qui met l'option ici ? Il saisit l'option si vous voulez réellement saisir la valeur en dehors de celui-ci. Vous pouvez donc choisir si vous voulez utiliser les valeurs ou non. Ces valeurs sont arbitraires, mais elles n'ont pas à l'être. Vous pouvez les utiliser si vous le souhaitez. Donc je pourrais dire que je pourrais faire, euh, par
exemple, je pourrais dire que la voiture de bar un est égale à des voitures que BMW Anvar Car deux est égale à des voitures point Subaru. D' accord. Et vous pouvez, um vous pouvez utiliser les valeurs hors de ceux-ci si vous voulez. Donc, je pourrais dire si voiture un point valeur brute. Ok, c'est cette valeur ici. D' accord. Si la valeur brute est égale à la valeur brute de point cartu et le faire bien, maintenant nous comparons les chaînes ici, les valeurs réelles d'entre elles. Donc, s'il en fait les valeurs hors d'eux, alors vous pouvez utiliser leur toute valeur et beaucoup de cas, vous n'allez pas utiliser ces valeurs. Tu vas juste utiliser les objets eux-mêmes. Donc, plutôt que de dire la valeur brute, nous aurions pu aussi dire si une voiture est égale carte. Ah, Carter aussi. Ok, euh, et ça comparerait les éléments d'énumération eux-mêmes. D' accord. Comparer BMW à Subaru ces objets réels ici. Et si vraiment cool choses si vous voulez faire des choix dans votre application. Donc juste pour le plaisir, construisons une simple petite application ici, ok ? Et l'école de votre storyboard principal. D' accord, je vais ouvrir l'inspecteur d'identité ici sont des attributs attendus. Excusez-moi, et faisons glisser quelques boutons ici. Trois boutons, petit drag, un au premier style roman il. Et, euh, ça va aller dans le dossier des actifs ici et faire glisser l'im. Vous n'avez pas ces images. Vous pouvez saisir toutes les images que vous voulez sur Internet. Um, aussi fournir une partie manquante du code source est appelé un Subaru. Allons traîner ça ici et je viens. On y va. Et j'ai trois autres images que j'ai trouvées sur Internet. Très bien. Ok, donc nous avons nos images ici. Alors quoi ? Je vais retourner au storyboard et sur ce bouton, je vais changer l'image pour juste une BMW ici. Et allons de l'avant et enlèvons le mot mais dedans et c'est beaucoup trop grand. C' est un gros bouton. Alors allons de l'avant et changer la taille à 150 par 150 et va changer l'image à Où
est-il ? Ici, aspect, Phil. Les hanches que j'ai oubliées. C' est à propos Il n'y a pas d'aspect sentir que ce sera, qui fonctionnera ici. Donc ce qu'on va faire, c'est juste qu'on fera ce que je te dis toujours de ne pas faire. On va juste faire semblant qu'il a été correctement mis à l'échelle. On va le bouger comme ça. Ok, donc il y en a un, mais il suffit de le faire comme ça et ça. Copier et coller. Copier et coller. Je fais le Commandement C Command V Ok, pas grand chose. Bien que j'ai déplacé le mauvais. OK ? Et alors ce que je peux faire, c'est que je peux changer. Ah, c'est tout à fait et changez les images sur celles-ci. Donc BMW dira Honda, qui a été l'homme de Honda, qui et ensuite Ah, nous y
voilà. Tesla, tous les fantômes. On a ces quatre voitures ici. Allons-y et donnons-leur un fixe avec une hauteur fixe. C' est très bien. Et aussi, je veux les aligner, euh, horizontalement dans le conteneur. C' est bien. Et puis, ah, allons juste de l'avant et épinglons chacun du haut,
chacun à droite de lui. Celui au-dessus,
c' est tout. Ok, je clique juste sur le bouton de l'épingle ici. Et ah, tu te rappelles comment j'ai dit que les chiffres étaient arbitraires ? Ok, tu l'es. Les valeurs sont arbitraires sur ces éléments en ce moment. Je viens de dire BMW, Honda, Tessa, allons-y et changeons notre type pour finir. C' est un peu plus commun juste d'avoir des entiers ici. Et ce qu'on va faire, c'est dire que BMW est égal à zéro. Honda est égal à un. Tesla est égal à deux, et Subaru est égal à trois. Ok, donc ça fait des entiers ici et ce que nous allons faire est sur notre storyboard. Retourne aux boutons. Donc, ces boutons, d'ailleurs, pas des images. Je les ai transformés en boutons. Et si vous faites défiler jusqu'au côté droit ici, chacun d'entre eux a une propriété tag. Donc l'étiquette sur le 1er 10 Eh bien, en fait, nous
allons nous assurer que BMW, nous allons nous assurer qu'ils sont alignés BMW, Honda, Subaru de
Tesla et BMW Honda. Ces deux-là sont mélangés. Revenons à ici, en fait, peut-on juste changer les images. C' est plus facile. Alors faisons ça Tesla. D' accord. On va juste les commander, c'est tout. Celui-ci Tesla. Et celui-ci pourrait être le Subaru. Ok, on
y va. Alors maintenant, cliquez sur votre image. Celui-ci a une étiquette de zéro. Trouvons celui-là. Il a besoin d'une étiquette juste ici. Celui-ci a une étiquette de deux, et celui-ci a une étiquette de trois. Donc 0123 Donc nous avons donné chacune de ces attaques et ces balises correspondent aux chiffres ici. D' accord ? Nous voulons qu'ils soient comme ça. Donc, c'est une utilisation parfaite de quand vous pouvez utiliser en termes Lorsque vous avez des choses qui doivent
correspondre à certaines valeurs, et dans ce cas, nous allons réellement comparer avec les valeurs ici. Donc, ce que nous voulons faire est de créer pour revenir au story-board ici et ouvrir l'
éditeur assistant , OK, nous voulons faire est de créer une action I B, et tout cela peut appeler la même action. Donc, je vais dire sur le changer en une action ici sur mais dans Clicked Tapped ce n'est pas ce n'est pas un web up. On tape ces trucs de leurs doigts et, euh, on
y va. Donc, sur la fonction, appuyez ou débouton appuyez, celui-ci est connecté. Maintenant, je peux aussi simplement cliquer sur ces autres boutons de contrôle glisser vers mon contrôleur de vue, puis sélectionner le même sur chacun. Donc, je suis juste le contrôle de glisser vers le contrôleur de vue et de sélectionner sur va et tapé et en sélectionnant sur mais non exploité. Et si j'ai raison, cliquez sur l'un de ces maintenant vous devriez le voir là-bas. Retouchez à l'intérieur en appuyant sur le bouton. Il est là. Alors on y va. Ce que nous voulons enfin faire, c'est ah, du moins pour vous. Je veux une étiquette ici. Quoi ? On va le faire à chaque fois qu'on tape, mais on va mettre à jour, mettre à jour l'étiquette. Ok, alors faisons-le ici. Donnons-le. Rendons ça très long ici, en fait. D' accord ? Et j'ai juste mis un bouton dessus. Étiquette. Ok, donc voici notre étiquette. Centrez-le. On y va, en regardant beaucoup mieux. Et allons de l'avant et donnons-lui une hauteur à l'intérieur. Hey, mettons-le du top 2016. Très bien. Et puis allons-y et faisons-le horizontalement dans le conteneur. Et ouvrons une fois de plus l'assistant rédacteur en chef et faisons une prise de lierre pour ça. Donc contrôlé traîné de votre étiquette juste ici. On va appeler. Ça a été attrapé, euh, l'étiquette faute d'une meilleure phrase. Fermez l'éditeur de l'assistant. Sauvez-le, et je vais aller de l'avant et l'ouvrir, mon contrôleur de vue. Et maintenant ce que nous voulons dio dépend du bouton qui a été pressé. On veut juste imprimer quelque chose à l'écran. Alors comment on fait ça ? Ok, donc, en fait, on n'a plus besoin de cette voiture de choix. On y va. Alors ce qu'est Weaken dio est Ah, abord changé son objet pour vous, mais nous savons que ce sont tous des boutons. Alors allons juste y aller et mettre un mais là, parce que chaque fois que vous appuyez sur quelque chose, I B action va passer dans l'objet qui a été tapé. Ok, Donc ce qui sera dio dira si l'étiquette de point de l'expéditeur Rappelez-vous,
l'étiquette que nous avons définie est égale valeur brute de point BMW espoirs Désolé. Les voitures point BMW valeur brute point. Ok, donc si le tag est égal à zéro, c'est ce qu'on fait ici. Mais ça nous fait savoir que
c' est une BMW. Donc, plutôt que d'avoir un type 0123 jeter votre application. Vous ne savez pas ce qu'ils appartiennent à leur réellement attaché à une voiture spécifique ici, ce qui est plutôt cool. Eso si l'étiquette était des voitures que BMW n'ont pas de valeur brute, le texte de point de l'étiquette est égal à B. M. W est génial. Ouais, une mauvaise orthographe, cependant. D' accord. Euh, on
y va. Sinon. Si l'étiquette de point central est égale à des voitures qui Honda dot valeur brute, alors nous pouvons dire que le texte de point de l'étiquette est égal à quelqu'un. Sortez ce moche Finn de mon visage. Strike ne va pas tenir dans notre étiquette. Euh, d'accord. Sinon. Si l'étiquette de point de l'expéditeur est égal aux voitures point tesla valeur brute Le nouvel enfant cool sur le bloc d'autre. Quelle est la dernière voiture d'autre ? Oh, quelqu'un me tire dessus maintenant. Alors, euh, qu'est-ce que je manque ici ? Si sinon si centré balise à des signes égaux, nous allons valeur. Donc, nous vérifions juste les mauvaises valeurs ici contre les balises. Et puis nous écrivons des textes sur l'étiquette contre elle. Ce n'est pas mal. Voyons voir si ça marche et c'est là. Ok, donc si je clique sur la BMW est génial, quelqu'un sort le moche Finn de mon F, le nouveau gamin cool du bloc. Tout le monde aime Tesla. Qui, au fait, c'est là
que j'ai grandi. Juste là, dans le désert. C' est cool ? Il est comme si le désert craint. C' est vrai. Et puis, Ah, quelqu'un me tire dessus maintenant. C' est bon, donc ça marche. Donc ce que vous venez de voir était un in, euh, et basé sur la valeur que nous avons comparée à sa valeur brute. Et on l'a comparé avec l'étiquette, l'étiquette entière de chacun de vous et on nous fait savoir, Hey, c'est une BMW. C' est le cœur de ceci est un Tesla et puis vous pouvez utiliser n'importe où dans votre application, euh, et l'utiliser pour identifier les choses qui devraient être regroupées. Eso Ce n'est pas un outil nécessaire, mais il pourrait devenir utile. Il rend votre manteau très lisible. Je suis très gentil. Donc ça suffit. Pas si grosse affaire. Vous allez commencer à les utiliser dans votre programme si vous en voyez un besoin lorsque vous
devez sélectionner une option et c'est tout. C' est plus Christ avec la mort pentes point com et voir à nouveau bientôt.
57. Swift 2 Extensions: Quoi de neuf, tout le monde ? Mark Price ici avec les pentes de mort et aujourd'hui nous allons parler des
extensions de l'Iowa . Glenn, ouvre ton ex code et fais un nouveau terrain de jeu. Ok, je vais monter mon écran ici, et c'était le dossier New Playground. Et vous pouvez juste aller de l'avant et appeler cette extension et nous allons aller de l'avant et le mettre juste ici sur la question. Arrêtez maintenant, qu'est-ce qu'une extension de l'Iowa ? Eh bien, pensez à ça comme une extension de cheveux mauvaise analogie. Pensez-y comme lorsque vous voulez ajouter des fonctionnalités à une classe existante, um, swift ou swift ou swift. Vous pouvez le faire. Laissez-moi vous montrer le problème que nous essayons de résoudre en travaillant avec des extensions. Alors imaginez si nous avons une application qui a 50 écrans différents, et chacun de ces écrans ont besoin d'imprimer la monnaie. J' ai besoin de prendre des chiffres et d'imprimer la monnaie avec un signe de dollar devant lui, ou n'importe quel symbole de devise utilisé par votre pays. Et donc nous pourrions avoir ah, vous savez, compte 1, et que mon équivalent 400.32$ de notre compte,
aussi, aussi, équivaut à 500,12$ et le compte de bar 3 équivaut à 600$ 14 cents. Maintenant, nous devons les imprimer, n'est-ce pas ? Donc ce que j'aurais besoin de dio, c'est quelque chose comme cette empreinte, et ce que nous allons faire, c'est utiliser les forces spéciales de l'impôt ici pour insérer des variables, et je mets le signe du dollar devant lui. Et puis je dirais, vous savez, compte 1. D' accord. Et, euh, j'ai oublié mes parenthèses de clôture ici et le mauvais endroit. On y va. D' accord. Et il en sera ainsi pour un décompte. Un compte à un compte. Trois. Et je vais juste changer les chiffres ici. Je l'ai juste fait. Commande C, commande V à Coller. Maintenant, ça va imprimer ce que vous attendez à ce qu'il imprime avec le signe du dollar devant lui. Mais tu n'as pas l'impression qu'on se répète ici ? Oui, nous le sommes. Donc ce qu'on peut dio est juste ? Ce qu'on appelle une extension pour que je puisse l'écrire et on va l'appeler sur l'extension de ah, vue. Désolé que vous ayez de double fumeur, fissuré. Il est sur les gars. D' accord, donc l'extension est de double. Alors pourquoi doubler ? Eh bien, on utilise le type double ici. Droit ? Ok, donc c'est un double. Ce que nous voulons faire, c'est donner la double fonctionnalité supplémentaire. Nous voulons créer un moyen pour nous d'être en mesure de simplement appeler la valeur monétaire sur elle. Donc c'est vraiment cool. Alors faisons ça. Alors, qu'est-ce qui affaiblit le dio ? Ah, c' est vrai. Une propriété informatique appelée monnaie. Ok de type chaîne, car il doit être une chaîne. Et ce que nous pouvons dio, c'est simplement revenir. Il dira, Eh bien, il y a peu de contraintes spéciales dans l'impôt ici et va juste passer dans le travail. Mot clé ceci, puis le signe du dollar. Je ne suis pas si désolé auto-mauvais langage de programmation, woo. Ok, alors regarde ce qui se passe ici. Donc, vous étoffez le double de votre fonctionnalité d'ajout. Vous avez créé une propriété calculée. Nous avons parlé un peu de cela et de tout ce qu'il fait son auto retour et ce qui lui-même Eh bien, dans ce cas, moi va revenir à la valeur. Ainsi, lorsque vous faites une extension, le mot-clé self revient à la valeur de ce mot-clé. Donc, s'il y avait une chaîne auto serait cette chaîne et donc nous avons juste étendu double. Nous donnons des fonctionnalités supplémentaires. Nous avons ajouté une propriété où il retournerait une chaîne qui prend la double
valeur actuelle et ajoute un signe dollar devant lui. Et donc, avant d'avoir créé l'extension, que se passerait-il si j'essayais d'imprimer le compte compte d'un point de monnaie ? Eh bien, ça n'existe pas encore, , parce que nous n'avons pas encore crédité cette extension. Cependant, après avoir créé l'extension, regardez ceci. Je pourrais maintenant dire Imprimer que je pourrais dire compte Ah compter une monnaie de point, compte
d'impression, deux devises de points et imprimer compte trois devises de points. Et à quel point c'est cool ? Il fait exactement la même chose. Nous venons donc de créer notre propre extension qui étend la fonctionnalité existante d'une classe, et vous pouvez le faire avec n'importe quoi. OK, donc par exemple, vous pourriez avoir une extension. Tu sais, String, tu pourrais avoir une extension de toi. Je vois que vous pouvez ajouter des extensions à n'importe quelle classe, et ce qui est cool est sur IOS au moment où vous créez une extension dans votre application et mettez dans son propre fichier. Tout le monde a immédiatement reconnu toutes les classes, l'a confinée et travaille avec elle. Donc, c'est vraiment chose courante à faire, et c'est très utile quand vous devez faire les choses beaucoup de fois et que vous avez besoin de
fonctionnalités supplémentaires pour moi. C' est travailler avec la monnaie parfois, ou comme faire l'arrondi décimal. Ah, là où vous devez arrondir,
autour, autour, vers le bas. Il devient vraiment encombrant d'avoir à l'écrire partout. Donc, le principe ici est que si vous vous repétez beaucoup, un peu comme je le fais dans ces vidéos, vous m'entendez dire des choses encore et encore. Vous êtes comme, vous n'aidez pas votre affaire ici. Je sais. Mais si vous vous retrouvez à faire beaucoup de répétitions, il peut être un bon cas d'utiliser une extension pour étendre la fonctionnalité. Donc, vous n'avez qu'à faire quelque chose une fois comme ici et ensuite c'est testable. Vous pourriez tester le travail immature, et c'est des extensions. Ce n'est pas si important, et maintenant vous savez comment les utiliser. Alors c'est tout. Mark Preiser avec eux-mêmes point com. Allons de l'avant et passons à autre chose pour
58. UITableViewController: Hé, tout le monde, Mark Pricier Deb pentes dot com et aujourd'hui on va parler de vues sur la table. Maintenant, les vues de table sont un quatre principaux de l'icône The X Code de l'Iowa Spellman ici parce que dans n'importe quelle application, ce
soit Web, IOS ou mobile, tout ce dont vous avez besoin pour afficher les données. Et donc IOS a fourni un outil fantastique appelé une vue de table U I tout
contrôleur de vue de table blanc . Donc, cliquez sur créer un nouveau projet X Code afin que nous puissions afficher des données à un utilisateur sans avoir à remettre tout le code pour, comme montrer chaque cellule et y mettre des choses si très, très utile. Et, ah, ils l'ont fait très. J' ai fait une seule application de vue. Ils ont fait très, euh, efficace en
mémoire aussi, aussi. Alors appelons ça. Ah ah, vue
de table, test de
contrôleur. Pourquoi pas ? Et tout le reste pourrait rester le même, mais c'est ici sur le bureau et OK, donc nous avons notre application à vue unique que vous avez l'habitude de voir jusqu'à présent. Ok, donc ce qu'on va faire sur le tableau principal, c'est ça. Allez-y et sélectionnez-le et supprimez-le avec la touche Retour arrière, OK, puis faites défiler ici dans le côté droit jusqu'à ce que vous voyez le contrôleur de vue de table. Donc, avant que ce n'était un contrôleur U, je vois. Maintenant, c'est un contrôleur de vue de table. Et donc faites-le glisser sur l'écran ici sur le côté droit. Voir où il dit est contrôleur de vue initial. Assurez-vous de sélectionner cette option. Ainsi, l'APP sait par quel écran commencer. Donc maintenant, nous avons un contrôleur de vue de table. Malheureusement, cependant, nous n'avons pas encore de code à lui parler parce que nous avons supprimé nos contrôleurs de vue sur le côté
gauche. Allez-y et supprimez votre contrôleur de vue. droite. Cliquez dessus et supprimez-le. Déplacé à la poubelle et à droite. Cliquez sur votre dossier ici et allez à nouveau fichier classe Cocoa Touch sous source. Et allons de l'avant en tant que sous-classe de vous. Je vous table contrôleur et nous allons juste appeler ceci ma table VC VC pour contrôleur de vue. Nous n'avons pas besoin d'un fichier zip parce que nous allons le faire dans le storyboard et aller de l'avant et cliquer sur Créer. Et voici notre manteau. Il a effectivement généré un peu de code standard pour nous, et vous allez voir beaucoup de choses ici parce qu'un contrôleur de vue de table nécessite quelques fonctions
différentes pour fonctionner correctement. Ok, donc d'abord, allons voir que cette plaque a reçu un avertissement de mémoire, et ah, nous nous soucions de ce truc qui est ici aussi bien que l'interview a été chargée. Tu n'utiliseras pas ça. Et voici les choses importantes. Donc, le nombre de sections en vue de tableau, c'est le nombre de sections qui y sont exposées. Donc, si vous construisiez une application qui avait différentes catégories, peut-être comme pour les voitures, vous pourriez avoir une catégorie pour les importations. Vous pouvez avoir une catégorie pour les voitures musculaires, peu importe. Et vous pourriez avoir plusieurs sections et un tas de roses à l'intérieur de chaque section. Dans notre cas, nous voulons juste une section qui signifie que toutes les routes seront dans une seule section. Alors allez-y et débarrassez-vous de ce commentaire ici. On le dit Hey, on veut une section. Bon, maintenant, nombre de lignes dans la section. Donc c'est le nombre total de roses que tu auras dans chaque section. Donc, si vous avez 10 voitures différentes dans une liste dans une section, cela devrait être 10. Et vous basez généralement cela à partir d'un certain type d'ensemble de données. Ok, donc dans notre cas, on devrait faire dans la course. Donc je vais sauver notre, je dirais que les voitures vont être un tableau de voitures et dira BMW. Je dirai que Ford en fait l'orthographe correcte ici dit que Chevy est plus comme des marques, mais peu importe. Et, euh, Volvo, qui conduit une Volvo ? Hum, désolé si tu l'es si je t'ai offensé. Il y a de belles voix. Voiture de sécurité numéro un en Amérique. Uh, Subaru, Subaru, et ah, on appellera ça bon pour l'instant. On a des voitures ici, non ? Ce sont nos données. C' est notre source de données. Alors, c'est quoi Will Dio ? Au lieu de dire zéro Rose, nous voulons que la rose soit égale à la quantité d'éléments dans notre ensemble de données, sorte que les voitures comptent points. Donc ce que ça va faire, c'est pour chaque article
qui est dans notre tableau, c'est-à-dire les voitures, Ray, ça va créer une rangée pour ça. Très, très cool. Ok, donc il a également créé cette fonction pour une cellule pour la ligne et le chemin suivant Aller de l'avant et tid inhabituel en
supprimant les commentaires ici. Ce que ça veut dire, c'est que
je ne veux pas perdre beaucoup de mémoire. Ce que ça veut dire, c'est que Disons que vous avez 1000 cellules et votre programme disant que je ne veux pas gaspiller beaucoup de
souvenirs,
donc je veux les utiliser. Disons que vous avez 1000 cellules et votre programme disant que je ne veux pas gaspiller beaucoup de souvenirs, Dès qu'il sera hors de l'écran, je le remettrai en haut de la liste. Et quand le prochain sera à l'écran, je te le donnerai, et tu dois y mettre de nouvelles données. Ainsi, vous ne verrez peut-être jamais les mêmes 20 2 30 cellules circulant dans une application parce qu'il les
réutilise. Et donc quand il vous donne une vieille vente, vous devez le nettoyer et y mettre de nouvelles données. D' accord. Et donc juste ici, Um, ça fournit la cellule. Ok, Donc vendre ici est égal à la table vue point de Que cellule réutilisable avec identifier l'air. Qu' est-ce que ça veut dire ? Oh, mon dieu. Souviens-toi comment je viens de dire que la table de la ville va réutiliser les cellules. Eh bien, ce qui se passe ici, c'est que tu essayes d'avoir une queue. Tu vendrais des ventes qui ont été jetées de l'écran, et tu essayes de l'attraper, une qui est toujours en mémoire. Donc ça va te le donner d'accord. Et, ah, la réutilisation Identifier Air dit, Hey, cette cellule est de ce type. Imaginez que vous aviez cinq sections différentes et que chaque section est une cellule différente, comme si elle avait des mises en page différentes. Peut-être qu'on a deux images. On n'a qu'une seule image, on n'a pas d'images. Vous voulez vous assurer de prendre la bonne voile parce que vous ne voulez pas réutiliser une cellule qui ne correspond pas à votre section spécifique. Donc c'est juste un identificateur disent, hey, réutiliser cette cellule très spécifique. Et depuis maintenant, on n'utilise qu'un seul type de cellule. Je vais juste le laisser tel qu'il est. Vous pouvez faire cette identification ou tout ce que vous voulez. Et donc, gros, c'est là que vous allez faire votre configuration de la vente, qui est exactement ce qu'il vous dit de faire. Donc, si je dis vendre l'étiquette de texte point, c'est l'étiquette de texte principale. Ainsi, une cellule par défaut est livrée avec une étiquette de texte principale et un sous-titre. Ok, au fait, vous n'utiliserez probablement
jamais cette vente par défaut. Vous faites toujours le vôtre parce que rien n'appelle vraiment pour cette vente par défaut. Tu dois faire des trucs personnalisés, mais on va le faire dans la prochaine vidéo. Donc vendre l'étiquette de texte point. On va dire que le texte par point est égal, euh, euh,
et on pourrait faire tout ce qu'il y a dans la course. Donc, nous voulons que chaque article soit imprimé là-bas. Droit ? droite. Donc ce qu'on va faire, c'est qu'on va dire que c'est égal aux voitures indexées point ro et je veux que tu regardes ce qui se passe ici. Donc les voitures sont un tableau, est-ce
pas ? Donc, nous saisissons un élément de l'irrégulier et que déjà en utilisant cette syntaxe de
crochets , nous saisissons un certain index hors de la course. Et donc, le chemin d'
index dot ro est juste ici chaque fois qu'il donne. Tu savais, ça te donne une cellule. D' accord ? C' est chez le frère actuel que tu es. Donc il n'y aura que autant de rose que dans votre ensemble de données ici. On pourrait être à la rose 0123 ou 4. Il y a un total de cinq rangées. Et donc, index, Pat, cette rangée sera 0123 ou 4. Et donc ça va correspondre puisqu'il correspond parfaitement à votre tableau de voitures. Ok, vous pouvez extraire un élément du tableau, et c'est ce que vous pouvez imprimer à l'écran. Et c'est donc notre texte étiqueté ces textes. Et pour la sous-étiquette, nous pouvons dire vendre le détail de points, étiquette de
texte, pas les textes égaux. Et nous pouvons juste dire que j'aime mon et nous pouvons ah, passer dans le Nous pouvons réellement passer le nom de la voiture ici en faisant exactement la même chose . Copie ça et juste coller ici et juste pour le plaisir. Eso Et c'est ainsi que nous imprimons jusqu'au niveau du texte de détail. Donc encore une fois, vue de
table chemin d'index
auto Roo va être appelé chaque fois qu'une ligne doit apparaître à l'écran et vous allez essayer d'attraper un auto existant. Il existe, et puis vous allez l'effacer, y
mettre de nouvelles données, et ensuite vous allez retourner à la vue de table qui l'appelle. Ok, c'est comme ça que tu travailles là. Et qu'est-ce que celui-ci peut modifier le chemin d'index de ligne. Cela vous permet de,
comme, comme, éditer. Ou vous pouvez faire comme un balayage d'une suppression sur une cellule. On ne va pas s'inquiéter pour ça maintenant. Si nous ne l'utilisons pas trop maintenant, vous l'utiliserez à l'avenir. Mais, euh, ne vous inquiétez pas pour le moment. Et en voici un autre. Valider le style d'édition. C' est à ce moment que vous modifiez, comme pour enregistrer la modification que vous avez effectuée. On n'y va pas non plus. On ne va pas s'inquiéter pour celui-là,
qui est déplacer la rangée,
où vous pouvez en fait,
comme glisser et déposer. On ne va pas s'inquiéter pour celui-là, qui est déplacer la rangée, où vous pouvez en fait, Et des choses comme ça nécessitent un code un peu plus complexe. C' est juste beaucoup d'avantages et de bonus supplémentaires. Ça te fait sortir de la boîte ici. Nous n'avons pas besoin de tout ça peut passer l'indice ro passé. On ne bouge rien, d' accord ? Et ah, voilà le Segway. On ne va pas s'inquiéter pour ça. Donc c'est intéressant, hein ? Nous avons un certain nombre de sections et vue de table, nombre de lignes et section et chemin d'index fero de vente. C' est tout. Vous devez vraiment commencer à afficher des données à l'écran. Donc et pour récapituler, nous avons eu un tableau de voitures 12345 d'entre elles. Il y a une section et le nombre total de lignes est égal au nombre total d'éléments dans le tableau. Donc, il montre que beaucoup de cellules et puis pour chaque cellule, nous devons saisir un moi existant. Il existe, et ensuite nous devons en créer un. Mais ils ont mis les détails dans les données dedans, puis il le retournera et fera sa magie. Donc c'est le code. Allons de l'avant et attachez notre contrôleur de vue ici à notre manteau. Donc ça va du côté droit ici, et je vais être dans le tableau principal et ah,
oui, c' est un bon storyboard principal ici, et je vais supprimer ça, ok ? Et nous allons faire glisser dans le contrôleur de vue de table Perfect. Et changeons sa classe ici sur le côté droit. D' accord. Changez-le à ma table V C. Parce qu'il s'agit d'un contrôleur de vue de table, et puis n'oubliez pas ici, cliquez ici. Ici, nous voulons faire est le contrôle de la vue initiale. Ou alors, il se charge dès que l'application démarre, ok. Et ah, ça a l'air bien. Donc je viens de réaliser qu'on a dit exactement la même chose qu'on a faite au début de la vidéo, et je pensais à la couper. Mais je veux que vous sachiez que parfois des problèmes peuvent arriver. D' accord ? Nous sommes tous d'un coup, vous retournez dans votre storyboard et les choses que nous sommes foutus, alors soyez très prudent à cela. Ah, et tu dois le voir deux fois maintenant. Donc, chaque fois que vous voulez avoir un contrôleur de vue de départ ou quoi que ce soit, vous pouvez simplement le supprimer. Dragon nouveau ici, puis Click est contrôleur de vue initial, et cela va vous mettre en place dès le début. Et encore une fois, je vais changer de classe ici aussi. Ma table v c. Donc il est connecté à notre code, qui est ici. Si ce n'est pas connecté, le code, ça ne marchera pas. Et faisons un clic droit sur le contrôleur de vue réel lui-même. Et alors remarquez comment il est déjà connecté à une vue. Donc on n'a pas à faire ça. Et puis il y a deux autres propriétés ici. Il y a source de données et délégué. C' est très important si vous n'avez pas de source de données et de délégué lié à votre
contrôleur de vue , ces fonctions que nous étions juste en train de passer comme le chemin d'index Aurora auto et le nombre de lignes et section. Ceux-ci ne seront pas appelés et vous aurez des problèmes. Donc, euh, je pense qu'on a tout ce qu'il faut pour faire avancer ça ? Nous avons notre vue de table avec le code de gouttière étaient dire combien de lignes vous voulez, ce que nous voulons mettre dans chaque rangée et allons de l'avant et construire et exécuter et voir si nous pouvons regarder notre liste de voitures. On y va, mais on a un accident. Jetons un coup d'oeil à ce que le problème est donc échec assertion de que raisonnable. Alors, qu'est-ce qui est identifié pour le chemin d'index ? Terminer l'application. D' accord. Impossible de déterminer qu'une cellule avec identificateur res doit enregistrer une plume ou une classe pour identifier ou connecter une cellule prototype dans le storyboard. Oh, on a oublié de faire quelque chose. Donc, si vous retournez à votre storboard ici, déplacons ce conseil vers le bas. D' accord ? Remarquez comment il y a une cellule prototype ici. Ouvrons le côté droit. Nous devons lui donner une nouvelle utilisation, identifier l'air, et peut-être que vous vous demandez s'il
a vraiment manqué ça, ou est-ce en fait partie du programme ? Eh bien, tu
ne voudrais pas le savoir ? En fait, je veux que tu vois que ce crash est très important. Vous pourriez rencontrer exactement le même problème pour que nous puissions l'appeler tout ce que nous voulons. C' est,
euh, on veut des appels. Va vendre cette cellule de voiture comme ça. Ok, je vais juste le copier. Assurez-vous qu'il est orthographié exactement avec la majuscule jamais tout et retournez à votre table V c et,
euh, euh, où il est dit re utiliser l'identificateur. Tout ce qu'il faut, c'est mettre ça dedans et notre air devrait disparaître. Essayons de le relancer et voyons si nous avons fait des progrès. Et bien sûr, ça marche. Nous avons une liste de voitures quand vous cliquez dessus qui ne fait rien, parce que nous n'avons pas écrit de code pour cela. Mais c'est un contrôleur de vue de table. Vous pouvez afficher des données simples dessus. Euh, vous pouvez montrer des informations. Tu peux faire toutes sortes de choses. Tellement cool. Nous l'avons fait dans sa forme la plus simple ici. OK, on n'a rien fait de plus fou complexe. Et peut-être que vous vous demandez pourquoi la deuxième étiquette n'est pas apparue ? Eh bien, parlons de ça. Nous n'avons pas vraiment d'étiquette de texte détaillée parce que nous n'avons pas dit au storboard d'utiliser la version de sous-titre d'une cellule. Donc, si vous allez sur votre Story Board ici et cliquez sur votre vente de voiture. D' accord. Et il devrait y avoir un style Priez ici. Et ah, nous voulons un style de sous-titre. Très G O. Dommage. Maintenant, nous avons un titre et un sous-titre. Alors maintenant, on le dirige vraiment. Nous devrions voir notre ligne secondaire sur chaque article. Et regarde ça. J' aime bien ma BMW. Comme mon ford. Comme ma Volvo. On devrait arranger ça. Et eso ça marche. Vous savez donc maintenant comment diviser les données de base d'affichage sur l'écran. D' accord. Et pour récapituler, vous avez créé un contrôleur de vue de table dans votre code. Vous avez créé un contrôleur de vue de table dans votre Story Board. On les a connectés. Nous avons créé un tableau de voitures parce que toutes les vues de table doivent être basées sur une source de données afin qu'ils puissent savoir combien de lignes ils vont avoir besoin. Et donc nous avons dit que le nombre de rangées était des voitures qui comptent. Nous lui avons donné une section pour chaque cellule qu'elle produit. Nous entrons et nous ajoutons la date à lui en accédant aux données de ce tableau, puis nous la passons dedans. Et c'est donc une vue de table de base. Maintenant, cela
étant dit, je vous montre seulement ceci pour que vous puissiez commencer à vous mouiller les pieds et comprendre 99,9 %
du temps. Vous n'utiliserez jamais ce titre et le sous-titrez. Comment ennuyeux comme Oh, bon est que personne ne veut cela dans leur application. Tout doit être personnalisé et regarder beaucoup mieux que cela. On va en parler dans la prochaine vidéo. Alors, c'est ça. Um, si vous êtes un peu confus, repassez la vidéo et,
euh, encore une fois, encore une fois, des
tonnes de soutien gratuit sur le salon de chat sur devant un juge pour moi. Je suis heureux de vous aider. Et c'est tout. Marquer le prix. Tiens, Deb savons dot com. se voit dans la vidéo suivante.
59. WKWebView: Hé, tout le monde, Mark Price entendre avec des savons sourds dot com Et aujourd'hui, nous allons parler de demandes Web plutôt comment interagir avec Internet sur IOS. Alors allez-y et ouvrez votre code ex pour déposer un nouveau projet. Voilà,
OK, OK, et nous allons faire une seule application de vue et je l'appellerai test Web Request et les idées que vous pouvez utiliser, hum html euh, les systèmes. Ou vous pouvez charger html. Vous pouvez charger des sites Web. Fondamentalement, si vous pensez à votre application iPhone, vous avez une application safari sur là ou sur votre iPhone que vous avez jusqu'à présent. Et safari n'est qu'un navigateur Web. Ça peut charger des choses. Il peut exécuter HTML et JavaScript, et vous pouvez faire tout cela directement à partir de votre application IOS. En fait, vous pouvez construire l'ensemble de votre application IOS et des vues Web Si vous vouliez utiliser HTML et JavaScript. Maintenant, on ne va pas parler de comment ça a fait aujourd'hui, c'est un peu plus complexe. Pourquoi voudriez-vous construire une application entière à partir de html sur IOS ? Vous savez, pas sûr qu'il y ait une bonne raison à ça. Cependant, je dirai qu'il y a certaines choses qui viennent avec HTML quelques petites astuces et des choses amusantes qui peuvent ajouter des améliorations à une application. Et ah, il y a en fait des APS natifs, comme l'application de messagerie Apple qui utilisait que vous utilisiez pour envoyer des SMS à des personnes qui utilisent
réellement, euh, des vues Web sous le capot. Mais nous allons simplement faire une simple utilisation du Web aujourd'hui. Alors allez-y et allez à votre storyboard principal. D' accord ? Je vais faire de cette vue une couleur différente en fera un gris clair. Et ce que je vais faire, c'est que je vais taper le nouveau que je vois et le faire glisser ici. Donc on va utiliser un, euh, Wk web. Vous allez bien, ce Web WK vous remplace un USB qui a été utilisé le plus longtemps. Donc, si vous allez en bas juste ici et tapez de nouveau Je vous web, c'est un U. S. Web. Vous ne voulez plus les utiliser parce qu'ils ont des ligues de mémoire. Ils ont d'autres problèmes. Ils sont lents, donc wk Web view est la voie à suivre. Cependant, avec cela étant dit au moment de cette vidéo,
euh, euh, vous ne pouvez pas ajouter une vue Web wk à partir du constructeur d'interface à partir de votre storyboard. Donc nous avons Teoh le faire à partir de notre code. D' accord ? Et comme nous ne pouvons pas le faire glisser, nous voulons toujours avoir des contraintes qui fonctionnent dans la mise en page automatique. Donc ce qu'on va faire, c'est qu'on va juste traîner une vue régulière ici. Et l'idée est qu'on va mettre une vue qu'on va la dimensionner et la placer comme on veut. Et puis à travers le code, on va juste ajouter le web. Vous en haut de cette vue ici, ce contenant de vous allait juste le faire avoir la même taille. Ok, donc ça a l'air bien et va là où on veut qu'il soit sans avoir à comprendre dans sa tête des maths. Vous savez, où, combien de pixels sur l'écran il doit être de la gauche en haut. Donc ce qu'on va dio, c'est ah, décollage limite les marges restantes sur le top 000 et celui-ci. Faisons juste un joli petit 50. Ils sont à 50 du bas, et c'est bon. D' accord. Et ce qu'on va faire, c'est que je vais te montrer comment les orteils chargent plusieurs demandes. Donc si j'y vais, euh, Voyons voir. Ici, bouton. Je peux mettre un bouton ici. On appellera ça, euh, rapide, donc fondamentalement un. Mais nous allons charger une page Web à propos de Swift, Un autre chargement de bouton. Une page web sur, euh, le steak. Tout le monde aime le steak, non ? Sauf pour les végétaliens. Vous allez végétaliens ? Les gens peuvent mettre des légumes ou du tofu ou quoi que ce soit, peu importe ce que vous mangez. Et ah, par ici, on va mettre, hum, Qu'est-ce que tu veux mettre là-bas ? Euh, prends un nouveau. On y va. Que diriez-vous des commérages de célébrités ? Si je pouvais l'épeler. droite. D' accord. Et nous allons déplacer celui-ci au milieu. Je pense que celui-là, et Ah, on
y va. Centrer que ce qu'on va faire est, euh bien, aligner ce bouton ici. Et j'ai quitté la ligne. Ce bouton ici. Donc, les contraintes sont plus parfaites. On y va. On y va. Et je vais en ligne ce gars de la gauche et du bas. Donnez-lui une hauteur fixe. Faites-le de la droite et du bas avec une hauteur fixe. Et celui-ci pourrait avoir un intérieur fixe aussi haut. Mais nous allons le faire à partir de ce bas ici et ensuite nous allons l'aligner au centre sur l'écran. D' accord ? Tout est aligné Look bon. C' est notre vue de conteneur. Et pour montrer que ça va marcher, changons-le pour une couleur laide et
brillante. De cette façon, on sait qu'il a disparu. Alors on y va. Si tu as une crise, ce n'est pas de ma faute. Vous signez la clause de non-responsabilité. Um, ok, donc, contrôleur de
vue, juste ici, apportant ça là où nous devons faire fonctionner notre code, ok. Et donc, allons de l'avant ici en vue. charger et nous allons de l'avant et commencer à travailler avec notre, um avec notre web vous maintenant, nous ne pouvons pas créer un web. On ne peut pas créer un web que vous à moins que, euh, nous ayons la capacité de, euh, l'utiliser. Et vous ne le faites pas à ce stade et vous dire d'importer le kit Web. C' est le cadre que vous devez importer pour pouvoir utiliser la vue
Web W K . Maintenant, aussi, vous pouvez dire que nous manquons également notre vue de conteneur. Donc, à je b sortie semaine de sont ce qu'on appelle conteneur de type Vous vivez vous et ah, avant que nous oublions. Retournons juste à notre contrôleur de vue ici et connectez-le. Donc, ce serait cette vue ici. Je suis juste le contrôle du traînage, bien
sûr. Et nous allons sélectionner le conteneur Maintenant qui est attaché. Donc on va dio, c'est qu'on va créer notre revue. Donc, euh Web, je n'ai pas besoin que tu le fasses aussi. C' est ce dont nous avions besoin en premier. Alors allons de l'avant et disons de notre vue Web de type wk Web view. On y va. Ok, Donc la vue Web est égal à W K Web que vous venez de créer juste là. D' accord. Et puis ah, alors maintenant nous l'avons créé. Mais quand on doit le mettre à l'écran, d'
accord, accord, donc tout ce qu'il faut, c'est de venir faire des annonces de conteneurs. Et depuis wk web, vous héritez de la vue comme tous les autres contrôles le fait, vous pouvez en fait juste mais juste ici. Donc, au fait, nous n'avons pas fait C'est beaucoup dans ce cours, Mais comme vous devenez un ingénieur IOS plus talentueux, vous allez ajouter beaucoup de sous-utilisation via le code. Je fais ça tout le temps. Je ne travaille pas seulement dans le magasin, mais certaines choses encore plus faciles à faire ici donc sachez juste que l'un d'entre vous, pour la plupart, peut avoir une sous-vue ajoutée, et vous pouvez le faire via le code via add sub vous, um donc c'est vraiment cool. Mais quand nous l'
ajoutons, nous devons nous assurer que même si vous l'ajoutez cela ne signifie pas qu'il sera exactement de la même taille nohow. Parfois, sur le storyboard, nous faisons glisser le contrôle sur, et il n'est jamais dimensionné de manière appropriée Faites glisser dessus. Donc, ce que nous devons faire est de nous assurer que la taille du Web que vous correspondez aux limites exactes
du conteneur dans lequel vous venez de le mettre parce que nous avons dit que Containers contraintes. Et nous voulons que le Web vous ayez les mêmes contraintes. Nous avons juste besoin de faire correspondre le Web à la trame du conteneur des
U.S. U.S Donc ce que nous allons faire, nous allons dire, Laissez les gens du studio démodés faire vous pouvez faire un cadre à tout moment en faisant voir directement faire. Nous voulions zéro du haut zéro de la gauche. C' est le coin supérieur gauche. C' est là que ça commence, d'accord ? Et le avec va être le point de conteneur limite avec et le point de conteneur limite le battage médiatique des
points. Donc nous disons juste Hey, mais en haut à gauche, parce que c'est là que ça commence toujours dans les
U.S. U.S haut à gauche Faire le avec le même est le conteneur et faire la hauteur la même que le conteneur. Et alors qu'est ce que Will dio ? Eh bien, disons que le web vous avez un cadre égal à ce cadre ici, nous sommes juste en train de le réajuster. Et en passant, remarquez comment je change le cadre après l'avoir ajouté. Il est toujours préférable de changer le cadre après, car une fois que vous êtes à une sous-vue, il hérite maintenant du système de coordonnées parents. Donc, quel que soit l'avis sur lequel vous l'avez mis hérite du système de coordonnées des parents, et vous devez vous assurer qu'il s'alignera dans le système des parents là-bas. Donc d'accord,
ça a l'air bien. Donc, tout ce que nous devons faire maintenant est en fait une requête chargée. Alors, allons trouver un site Web à charger juste pour commencer avec son va à bon vieux Google Chrome ici et voir si nous pouvons trouver quelque chose sur Swift. Donc un soudain sang rapide Ellis à l'Apple Swift blawg. Parfait. Ok,
ça a l'air bien. Alors allons-y, et je vais dire, euh, ta corde L soit égale à ça. D' accord ? Et c'est très bien. Et donc nous avons votre I, donc ce qu'il nous faut ensuite ? Ah, faisons juste l'euro irrégulier, c'est moi et ce u r l euh, allez, orthographier ici où nous allons et nous allons juste créer et comme vous êtes, eh bien, comme nous l'avons fait dans le passé ou pas, selon lorsque cette vidéo a été créée. Mais c'est un n r sc, Earl, et, euh, on va juste passer dans la chaîne euro. Ok, ça a l'air bien. Et ils laissent demander égale requêtes Earl. On doit faire une demande. Et il est à la recherche de l'euro, que nous vous connaissons là-bas, que nous avons juste là. Alors tout ce que nous avons à dire si votre l est égal. Euh, non. Excusez-moi. Ce
qu'on doit dire,
c'est d'
abord
créer le point d'exclamation juste ici pour dire,
Hey,
euh,
on va déballer cette fille, Ce
qu'on doit dire,
c'est d' abord
créer le point d'exclamation juste ici pour dire,
Hey,
euh,
on va déballer cette fille, abord créer le point d'exclamation juste ici pour dire,
Hey, euh, euh, on va déballer cette fille, et alors tout ce que nous devons faire est de dire, Web vous pointez demande de chargement et de passer les demandes. Ok, donc tout ce qui s'est passé jusqu'à présent parce qu'on a créé le web. Vous Nous l'avons ajouté à notre vue conteneur parce que vous ne pouvez pas ajouter d'utilisation Web à partir du
générateur d'interface . Donc, nous devons créer une vue que, eh bien, le dimensionnement que nous aimons et juste ajouté dessus en tant que sous-vue, puis définir le cadre de celui-ci après l'avoir ajouté. Prenez le ou nous voulons une transformation de charge en un problème rural créer une fin est votre ou demande parce que l'utilisation du Web à la recherche de cette demande, puis nous allons commencer cette demande. Donc nous avons connecté notre point de vente ici. Donc, si tout va bien, nous devrions voir la pomme Blawg charger dans notre Web vous chaque fois que nous exécutons cette application. Allons-y et donnons-y un coup de feu. On y va. Ok, on dirait qu'on a quelques problèmes. Ok, si vous remarquez qu'on pourrait encore voir un peu de vert, ce qui veut dire que ça ne va pas jusqu'au bout. Donc j'ai peut-être raté une contrainte et, euh, aussi remarqué comment elle est coupée. La page Web elle-même est coupée du côté droit. C' est un autre problème que nous devons résoudre. Prenons soin du problème vert d'abord cependant. Je vais aller au plateau principal. Cliquons sur notre gars ici. Et si je regarde l'espace inférieur, remarquez comment ça fait 50 par le bas. C' est notre problème. Je me disais que c'était peut-être 50 du gris, mais ce n'est pas le cas. Voyons voir ici. Euh, tu sais quoi ? En fait, je pense qu'on le veut vraiment. Hum, c'est ça, tu sais, je l'ai remis juste là. Je pense que je sais quel est le problème, et je pense que c'est lié à ce problème ici. Eso, tu as remarqué comment c'est coupé ici ? Et puis comment sont le web ? Toi,
euh, le vert va là où il est censé le faire, mais j'avais tort. Les verts vont là où il est censé aller. Droit ? Mais les vues Web ne sont pas. Donc, ce sont les mêmes promesses. Elle est coupée ici, et elle est coupée ici. Et voici la raison pour laquelle. Ok, alors rappelez-vous comment nous avons des contraintes sur ce Greenview mis en place ici. D' accord. Et, euh, mais nous n'avons pas Donc de toute façon, ce qui se passe, c'est que nous allons voir le chargement juste ici et le voir Load. OK, rendez ça plus grand pour vous ici sur la vue. n' a pas chargé. Tout cela est appelé avant que les contraintes ne soient appliquées, sorte que les contraintes n'ont pas été appliquées. Il sert. Tu l'as fait. Load n'est pas un bon endroit pour saisir les limites. D' accord ? Et juste pour te montrer qu'ils étaient dans un iPhone six. Et, euh, si nous voulons un test rapide, vous pouvez dio, comme vous pouvez le dire iPhone six, hum, résolution dans la vie. Ok, donc, facteur
de compétence de 3 A s O. Um, c'est ce que ça veut dire, c'est que c'est 12 42. Donc, si vous dites 12 42 divisé par trois, euh, parce qu'il a un facteur d'échelle de deux. Eh bien, ce que nous attendons, c'est qu'il soit 6 21. Ou 4 14 Vous savez, nous devrions voir un type de valeur comme ça quand j'imprime à l'écran. C' est la largeur de mon écran, n' est-ce
pas ? Donc, si je vais imprimer et que je dis conteneur point lié, arrêtez-vous avec nous devrions voir une de ces valeurs lorsque j'imprime ceci. C' est un test ont été débogage. C' est ainsi que vous résolvez les problèmes lorsque vous êtes un développeur. Que se passe-t-il ici ? Eh bien, c'est intéressant. Pourquoi me donne-t-il un avec 600 qui juste Il ne semble pas être le bon avec ainsi et ce
n'est pas parce que ce n'est pas être Il ne va pas au bord de l'écran, comme nous nous attendrions à ce que pour provoquer les contraintes ne l'ont pas été appliquées. Allons-y maintenant et en fait, prenons tout ça ici et découpez-le, accord ? Et passons à une fonction de remplacement appelée View a fait ici. Donc, après que la vue est apparue, puis exécutons ceci parce que dans cette fonction les contraintes ont été appliquées, et allons de l'avant et simplement la déplacer là-bas et la relancer et voir si notre si les limites ici vont d'un bord à l'autre. Hé, regarde ça. Donc ça va tout le chemin vers le bas tout le chemin sur le côté droit. C' est le dimensionnement, comme nous pourrions nous attendre à ce qu'il se taille parfaitement, et donc encore une fois, la raison pour laquelle le conteneur n'est pas équilibrer cela avec ce début qui était notre conteneur dans notre storyboard. Ce type là, un entretien T l'a chargé n'avait toujours pas eu les contraintes appliquées. N' ont pas étiré le côté de l'écran sur Lee après avoir vu, il apparaît, sont vus il charge se produit avec ces contraintes être appliquées. Donc maintenant, nous pouvons saisir les limites et le avec de toutes ces choses juste là. Alors, euh cool, super cool. Il y a donc ton site web. Ça a l'air super. Allons de l'avant et connectons certaines choses et vous montrer comment charger simplement les demandes aussi. Donc, je soutiens Interface Builder. Ouvrez l'éditeur assistant ici, et c'est donc contrôlé Drag ici, faire une action 90 et appelons ceci Ah, charger des choses rapides appellent ces changements à l'inaction. Je suis juste le contrôle de glisser dans l'éditeur ici dans celui-ci pour être appelé potins de chargement et steak de
chargement. C' est mon contrôle préféré changements de glissement à l'inaction. Et appelons ce steak de chargement. Ok, proche. C' est un éditeur ? Allons de l'avant et revenons au contrôleur de vue ici. Nous avons nos trois actions de lierre. Bien sûr qu'on va être cool et nettoyer ça. Personne n'aime le code laid. D' accord ? Ouais, c'est cool. Et donc ce que je vais faire est de créer une nouvelle fonction appelée load uh, load request. Il va prendre votre chaîne de type l, juste affaiblir, avoir du code réutilisable. Et ce que je vais faire, c'est juste,
euh, je vais copier cette année. Et ce qu'on va faire c'est, euh, on va sortir ça ici, ok ? Comment ? Exécuté pour moi. Et en fait, prenons ça ici aussi. Ce qu'on va faire, c'est rendre cette fonction réutilisable, c'est tout. Donc je vais juste, euh, à partir d'ici, jetons ça ici, commettons une commande X pour le couper. Et puis maintenant, nous pouvons simplement appeler notre fonction, et c'est une demande de chargement et juste en passant une chaîne. Et nous pourrions le faire à partir de n'importe lequel d'entre eux ici. On doit juste avoir le. On doit avoir le ou sinon. Alors allons-y. Et, euh, commérages de
célébrités. Oh, voyez ce qui circule sur Internet. Très bien, regarde ça. Il y a même un qui ? Team Z. C'est Ah, c'est un site Web légitime. D' accord. Ah, alors on y va. Si bas commérages. Tout ce que nous allons dire ses demandes de chargement et nous allons passer dans la ficelle et ah, plus encore. J' adore la soupe de steak. Il y a un blawg. Allez, il n'y a pas de blog juste à propos de steak. On y va. Coupes de première qualité. Blawg a dit. Je le savais. Je le savais. Si le steak vous offense de quelque façon que ce soit, hésitez pas à mettre n'importe quel type de nourriture ne franchit pas vos frontières plus. Très bien, donc charger, demander des demandes de chargement. J' ai mis au mauvais endroit, mais cela devrait aller dans le steak gagné, Bien sûr. Et puis si nous cliquons sur le bouton Swift, nous devrions simplement copier cela et le mettre ici. Ok, donc tout cela a été de créer une surcharge fonctionnelle des demandes et de connecter ces petits pains pour qu' on puisse juste voir s'assurer que la demande est en train de changer. Donc fondamentalement, ce code va fonctionner à chaque fois, et on change juste l'euro, et je veux juste m'assurer que ça marche,
et, et, euh, ça ne marchera pas. Et je vais te montrer pourquoi dans une seconde. Donc on sait que le blog Apple va se charger. D' accord, mais que se passe-t-il si on change de commérages de célébrités ? Tout d'abord, nous allons nous assurer que c'est vraiment un gars supplémentaire ici. Ok, alors remarquez comment rien ne se passe. J' ai juste fait un point de rupture. Ça ne change pas, est-ce pas ? Et il y a une raison pour laquelle c'est parce que j'avais neuf ans. S' il n'a pas le https, Apple ne chargera pas votre iPhone ne sera pas lotus. Nous devons obtenir des autorisations sur les sites Web à charger qui n'ont pas https. C' est comme ça que ça se passait. Et, vous savez, ils recommandent que,
hum, vous ne leur permettez pas d'autoriser les utilisateurs à utiliser n'importe quel site web arbitraire. Eh bien, vous pourriez être le juge de ça. Donc n s ap transport sécurité. Je viens d'ouvrir ma liste info point p ici. D' accord. Et en bas, ici dans son application. Transport, sécurité. C' est ce que vous devez taper. Et on va changer un dictionnaire. D' accord ? Et, ah, vous devez avoir un élément dans s permet des charges arbitraires. Et ça va être un booléen. On va dire oui. Donc, ce que nous disons est, hé, permettre le chargement d'un site web arbitraire à partir de notre application. Et
là encore,c'est juste là pour toi. Et
là encore, Regarde Ok. Et cette application Transport sécurité. Ne l'oublie pas. Tu vas avoir beaucoup de problèmes. Nous essayons de charger des sites Web, et vous êtes comme, pourquoi ça ne marche pas ? Eh bien, c'est parce que, euh, tu dois lui donner la permission de maintenant sur IOS 9 Cam en cours d'exécution. Ok, là. commérages de célébrités rapides. Je clique juste sur le bouton. Et comme vous pouvez le voir, il y a,
Il est maintenant en train de se charger. Maintenant, peut-être quoi ? Peut-être que ce qui aurait été une meilleure expérience utilisateur, c'est si vous le souhaitez, fait un tour de chargement ou effacé l'autre page Web en premier, parce que cela ne semblait pas fonctionner. Mais il waas et ah mis le blawg de pieu. Donc, il exécute sa demande dans les coulisses. Et c'est là. Il y a notre blogueur sur le steak Click. commérages de célébrité devraient charger la même chose à nouveau. Et là, vous l'avez. Ecoute, même ajoute un éclat juste ce qu'on veut. Tellement, des trucs très cool. Donc ce que vous avez appris, c'était WK Web ? Vous n'êtes pas disponible dans le générateur d'interface. Donc, vous devez l'ajouter via le code que vous pouvez via ajouter sous vous. Nous l'avons mis sur un conteneur qui faisait partie du storyboard, puis nous ne l'avons pas fait et l'avons vu charger
parce que les contraintes ont été appliquées dans la vue ne charger. Et nous voulons que nos contraintes soient planifiées après. Donc, si vous voulez ajouter des choses par programme et avoir des limites et des dimensions appropriées, vous pouvez le faire dans visualisé il apparaît, qui est ce que nous avons fait ici. Nous définissons le cadre de web développé vous pour correspondre au conteneur de vous, puis sur la demande de chargement. Il appelle cette fonction ici qui prend un N s A r l le met dans une requête écrite MSU et met dans un web. Vous et puis nous venons de vous montrer comment vous pouvez charger quelques types différents d'un site Web. Donc, euh, trucs
très cool. Um, vous les utilisez, vous les utilisez , souvent, pas beaucoup, mais vous les utiliserez fréquemment et un outil très puissant. , En fait,
vous pourriez, comme je l'ai dit, construire des applications très complexes. Si votre expert CSS html JavaScript, vous devriez jouer autour de cela plus parce que vous pourriez savoir ce HTML réel dans cette conception, vos propres choses. Vous pouvez faire toutes sortes de plaisir. Donc, si vous pouvez passer des variables d'avant en arrière entre swift et et le web, vous tellement de plaisir. C' est tout ce qu'on couvre en ce moment, mais de bonnes choses. Donc c'est Web. Utilisez UK vous aimer et pas beaucoup à elle. Alors c'est tout. Rendez-vous la prochaine fois
60. App: Agents de Ugly - Personnalisé TableView et de cellules personnalisées: OK, tout le monde, Mark Pricier. Deb soaps dot com Et la dernière fois, nous avons parlé d'utiliser un contrôleur de vue de table y pour afficher une liste de données à l'écran. Et aujourd'hui, je vais te montrer la façon dont j'aime le faire, ce qui est la meilleure façon de le faire. Et alors allez-y et créez un nouveau projet de code X. Grande application de vue unique Projet Nouveau Mexique sera très bien. Appelons ça ah, marques, vue
de table. D' accord. Ce que je veux vous montrer, je pense que la meilleure pratique sur vous donne le plus de flexibilité, donc d'accord. Alors allez à votre storyboard principal. La dernière fois qu'on est entrés ici et qu'on a supprimé notre contrôleur de vue, OK ? Et puis nous mettons dans un contrôleur de vue de table, et les contrôleurs de vue de table est un contrôleur pratique. Ça gère beaucoup de choses de toi, mais on va le faire manuellement nous-mêmes. Et nous allons seulement utiliser ce que nous voulons. Cas aller de l'avant et tapez dans la vue de tableau. Et au lieu de glisser et de déposer dans le contrôleur de vue de table, prenez cette vue de table juste ici et ah, allez-y. Mais là où tu veux, je vais faire passer le mien en plein écran ici. Eh bien, Mome presque plein écran. Ah, l'autre contrôleur de vue de table vous oblige à passer en plein écran et le force à être la seule chose à l'écran. Vraiment ? Et tu dois faire du travail pour contourner ça. Nous ne voulons pas que nous voulions une flexibilité totale. Donc, au lieu de mettre la table de votre contrôleur dans une section différente ici, nous mettons simplement une vue de table, pas le contrôleur avec la vue elle-même sur notre contrôleur de vue. Donc on va quitter notre contrôleur de vue, et j'ai juste un nouveau que je vois et je te mets ici,
tu sais, tu sais, on pourrait faire une belle petite bannière juste pour le plaisir, c'est tout. Juste pour le plaisir. Et on va le faire glisser vers le haut et lui donner une belle couleur ici, dans le côté droit. Je vais choisir ça. Ah, c'est une belle couleur jaune. Et si vous le voulez,
c' est FFC 11 D. Ok, donc nous avons un contrôle cool ou une vue cool là-bas et allons de l'avant et épingler quand pendentif au sommet. Pas de marges. Je veux entièrement à travers l'écran et la hauteur peut rester la même. Ça a l'air super. Et allons de l'avant et faisons une étiquette juste pour le plaisir. Ok, voilà notre étiquette. Je vais le traîner, rendre un peu plus grand, et nous allons le centrer et le faire changer pour différents combats. Passons à la coutume et, disons, un Vatican Ooh, c'est parfait. Et ah, j'aime ça. Tu sais, ça pourrait dire, Ah, choses
moches. Tu es comme Attends, quoi ? Laisse-moi te montrer ce qu'on va dio. Ça va être amusant. Donc voilà notre étiquette. Allons-y et donnons-lui une hauteur à l'intérieur. Et ajoutons ça. Et puis allons de l'avant et cliquez sur le menu d'alignement et placez-le horizontalement et verticalement dans le conteneur. Ok, la dernière chose qu'on doit aligner, c'est notre vue de table, alors on va le déplacer un peu là-haut. Je laisse un peu d'écart, mais nous allons corriger ça avec des contraintes et changer d'avis. Donnons-lui un peu de marge. Faisons juste là et juste là. Et vous ne pouvez pas vraiment le faire avec l'autre contrôleur de vue de table à nouveau. C' est une fonctionnalité personnalisée complète, ce qui est vraiment agréable. C' est un peu ce que tu vas probablement faire ton boulot. Je déplace ça au lieu de leur ego. Donc ce que je vais faire maintenant que je l'ai, donc je vais m'assurer qu'il est zéro de la gauche. Les marges sont à zéro à partir de la droite. Je veux en fait 20 des sommets. Je vais cliquer dessus,
mais le changer à 20 et 20 par le bas. Cela lui donnera une belle marge sur tout le chemin, et donc ajouter ces contraintes. Il y a donc notre vue sur la table. Ça a l'air très sympa. On a parlédela dernière fois comment tu sais,
on avait la liste des voitures et on a juste injecté les données. de On a parlédela dernière fois comment tu sais, Mais maintenant, nous pouvons réellement créer une cellule de vue de table personnalisée, ce qui est vraiment cool. Donc, sur le côté droit ici, tapez dans la cellule et nous voulons la cellule de vue de table. Alors faites-le glisser ici en haut de votre table dans la table pour vous, et c'est une cellule prototype. Et donc ce qu'on va dio est d'abord, je vais changer la couleur de fond juste pour une couleur différente pour l'instant, donc je peux voir à quel point il est grand parce que le blanc est difficile de voir à quel point tu le
fais , et nous vont le rendre plus grand. Faisons de ça une grosse vente. Et ce que je veux, c'est une image. Une partie de l'image du dragon. C' est trop grand en ce moment. On va le rendre plus petit. On y va, et je vais en faire un carré. Donc on dira qu'on dira 75 par 75. Et je vais rendre ça un peu plus grand. Alors s'alignent un peu mieux. Ouais, ce n'est pas ce que je voulais. On y va. OK, donc ont été alignés. Ça a l'air bien, et on a une image là-bas. Qu' est-ce qu'on veut d'autre ? Eh bien, peut-être qu'on va mettre notre propre étiquette dans Ok, comme on le veut. Et on va le faire comme ça. Peut-être qu'on va le mettre tout de suite. Gardons-le juste là. quelque sorte, oui, mettons-nous à la fin. Pourquoi pas ? Et d'accord, Alex, cool. Et passons à personnaliser changer le plaisir. Rendons ça vraiment, vraiment gros. Juste pour le plaisir. Je vous montre juste que vous pouvez faire toutes sortes de choses sur mesure et, ah, nous allons revenir ici. Et j'aime vraiment ça, en fait. Et si nous faisons ce bord à bord et ensuite nous le centrons. Ooh, on
y va. OK, donc j'aime bien où ça va. Ok, ce que je vais faire, c'est l'épingler maintenant. C' est l'image d'abord, en fait. Nous allons donc épingler l'image vers le haut et vers la gauche et remarquons comment sur une cellule de vue de tableau il y a effectivement des marges dans le haut dans le bas. Comme vous pouvez le dire, 00 Mais nous ne sommes pas au bord, donc il y a des marges là-bas. Et, euh, donnons-lui une largeur et une hauteur. Rendons ça réparé. D' accord. Et, ah, sont étiquetés ici. Faisons en fait la même hauteur juste pour le plaisir. Rendre les choses plus faciles. Allons de l'avant et disons qu'on veut que tu manges de la gauche. En fait, nous ne le faisons pas. Nous pouvons simplement sélectionner tous ces éléments ici, sorte qu'il s'étire et grandit au besoin. On a notre étiquette et on a son image. Maintenant, je vais changer l'arrière-plan en blanc parce que Red est autoritaire. Je voulais juste voir où je waas et allons de l'avant et revenir à la valeur par défaut, et par pourquoi c'est en fait un arrière-plan clair. Donc, euh, ça a l'air bien. On vient de créer une cellule personnalisée, d'accord ? Et nous avons donc notre vue sur la table. Nous avons nos douanes à vendre. Maintenant, nous devons aller écrire un manteau, alors allez voir votre contrôleur de vue. D' accord ? Et quelques choses dont nous avons besoin pour dio. abord,
débarrassons de cette ordure que nous n'allons pas utiliser et obtenons ces commentaires. Donc, avant d'hériter du contrôleur de vue de table et d'implémenter toutes ces
fonctions de délégué pour
nous maintenant, nous allons mettre manuellement quelques protocoles ici. Qui est vous, je tableau de la source de données. Et vous je table délégué vue. Maintenant encore, cela a été automatiquement inclus dans le contrôleur de vue de table. Et si tu penses bien, je n'avais pas à l'écrire avant, donc maintenant tu me fais écrire ça. Eh bien, c'est vrai. Un peu plus de code, mais beaucoup plus de flexibilité. Donc je pense qu'il gagne à la fin, et nous avons besoin d'un orteil avoir une vue de table elle-même. Alors allons de l'avant et faire une sortie I B Semaine de notre vue de table. Rappelez-vous, le contrôleur de vue de table a automatiquement connecté la vue en premier, nous allons le faire nous-mêmes. Donc, pas trop grosse affaire. Ok, on
y va. Vous je vue de la table va connecter cela dans un instant. Et, vous savez, nous avons quelques fonctions, et c'est vraiment bon de le faire parce que vous les mémorisez. Alors continuons à vendre pour la vue de table des cerceaux, pharoah
cellulaire, chemin de
l'index. Trouve celui-là. Au fait, ça ne
s'afficherait pas si vous n'implémentez pas ces protocoles. Nous venons de mettre en œuvre ces protocoles aériens. veut dire, Hey, nous allons respecter les règles que vous avez définies,
et, euh, euh, si vous cliquez sur l'une de ces règles ici, Ok, il y a un tas de fonctions optionnelles disant, Hey, voici quelques fonctions optionnelles que votre table de vous peut appeler et nous voulons
les écouter . Donc, euh, c'est cool. On a le chemin de l'index de fero cellulaire. Quelles étaient les autres dont vous vous souvenez ? Eh bien, nous avions un certain nombre de sections et vue de table. On va en retourner un, puis l'autre était la vue de table, et c'était le numéro de rose et la section, et on n'a pas encore de données, non ? Mais on peut le faire ici. Et donc juste pour s'amuser, cette application va s'appeler des choses laides, ok ? Et, euh, tu es genre, Eh bien, où est-ce que ça va ? Je ne suis pas sûr que j'aime ça. Ça ne vous plaira pas, mais c'est bon. Eso, nous avons un tableau vide. Oh, ça devrait être Ah, en fait, pour être un mauvais langage de programmation de tableau. Cela devrait être un tableau de type string. Et on y va. Tableau vide. Ok, maintenant, ce qu'on peut faire, c'est dire qu'on veut que le nombre de lignes et de sections soit égal à des
choses moches , et quand il et moi devons retourner ça en fait, on
y va. D' accord. Enfin, nous avons le chemin de l'index Ferreira de la cellule, et si vous vous souvenez, nous avons besoin d'une queue. Vous êtes une cellule réutilisable ? Alors quoi, nous allons dio nous allons dire, vendons égal table vue de Que cellule réutilisable avec identificateur. Et ah, on va faire ça juste là. D' accord ? Et l'identificateur, on va juste appeler une cellule laide, accord ? Et ça a l'air bien. Donc nous avons notre portable, et puis ah, nous devons le rendre parce que c'est ce qu'il demande. Maintenant, nous allons aussi avoir besoin de le configurer, mais nous avons un problème en ce moment. ce moment. Onn'a pas de cellule personnalisée pour,
hum,
assigner une image pour mettre une étiquette. On a pas de cellule personnalisée pour,
hum, hum, Donc on a quelques problèmes, on doit s'arranger ici. D' accord. Et donc, allons de l'avant et écrire une classe personnalisée, une sous-classe de cellule de vue de table blanche. D' accord. Et c'est ce que tu vas devoir faire à chaque fois que tu le voudras, non ? Une coutume, Avoir un auto personnalisé. Alors nous allons changer à vous. J' ai la table de vous vendre, d'accord. Et on va appeler cette horrible cellule, accord ? Et nous n'avons pas besoin de créer un zip parce que nous le faisons dans des storyboards et continuons à le
créer. Donc maintenant, nous avons notre cellule douanière, et si vous vous souvenez, accord, notre cellule a besoin d'une image et d'une étiquette, accord. Et nous lui avons donné son propre espacement et sa mise en page. Complètement personnalisé. Quelqu' un se débarrasser de l'ensemble sélectionné. On n'a pas besoin de ça pour l'instant. Et allons de l'avant et écrire une fonction appelée configure cell. D' accord. Et dans cette cellule, qu'est-ce qu'on veut faire ? Nous voulons passer une image et nous voulons transmettre du texte. Donc on va dire l'image d'image de type vous j'image ok, et on va passer le texte. Nous venons d'avoir un texte de type string, et puis cette vente elle-même va avoir des points de vente parce que nous allons déposer, glisser et déposer l'image et l'étiquette sur la barre si faible et nous allons dire image principale ok de type vous I you I image vue et puis à I b sortie Week Bar, et nous allons appeler cette étiquette principale de type vous j'étiquette, puis dans la cellule configure, gardant mon souvenir sur le chemin de l'index de pharoah cellulaire, il nous donne une nouvelle cellule et la réutilise. On va juste dire, Hey, on va passer et personnaliser les données ici et on va se réinitialiser. Alors rappelez-vous comment j'ai dit quand il soulève l'ancienne vente, vous devez nettoyer les anciennes données et y remettre les nouvelles données. C' est tout ce qu'on fait ici, c'est qu'on le fait nous-mêmes. Où est avant ? On vient de faire l'étiquette de détail, l'étiquette
principale. Donc ici tout ce que nous avons à juste dire image principale point image image égale image, ce qui signifie que l'image de notre vue image est juste égale à l'image contre passée et ensuite nous pouvons dire que le texte de point de l'étiquette du Maine est égal au texte et le nombre va passer dans ce texte ici, et peut-être que tu ne vois toujours pas où on en arrive. Mais regardez maintenant, revenez au contrôleur de vue. Et maintenant, nous pourrions faire quelques choses d'abord maintenant, nous pourrions faire et si nous le laissons parce que nous n'avons pas seulement besoin d'une cellule de table régulière. Nous n'avons pas besoin d'une table de vous, donc nous avons besoin d'un moche sur mesure. C' est ce qu'on a créé. Donc je vais dire, comme on a une distribution dans une cellule laide Donc maintenant on dit,
Hey, Hey, s'il y a une cellule, si on pouvait obtenir une cellule réutilisable de cet air d'identification, allons-y et utilisons-la. Donc, euh, c'est génial. Donc maintenant ce que nous pourrions faire, nous pourrions dire, Vendre cette cellule de configuration et il a besoin d'une image et d'un texte et nous n'avons pas
encore l'un ou l'autre , donc nous ne pouvons pas vraiment le faire. Nous ne pouvons pas encore configurer notre cellule, mais nous pouvons faire est d'obtenir le reste de notre code standard. Donc, si nous avons cette cellule ici pour a réussi,
allons-y, retournez-la donc donc si nous avons réutilisé avec succès une cellule,
retournez-la autrement. D' accord ? Sinon quoi ? On va dio sinon on y va, Teoh rentre une toute nouvelle vente laide, comme ça. Ok, alors gardez à l'esprit si elle est tombée pour nous donner une cellule ou si elle est tombée pour jeter ce que vous ne voulez pas. Mais si ça tombait de toute façon, on en créerait un tout nouveau. Ok, rappelez-vous ,
nous utilisons des cellules, donc vous devez utiliser une ancienne ou une nouvelle. Donc c'est tout ce qu'on fait ici. D' accord ? Et nous ne pouvons pas encore le configurer parce que nous n'avons pas encore notre source de données, donc nous allons en avoir besoin. Alors allons-y et amusez-vous un peu. Vous pouvez suivre avec moi, euh, ou sauter cette partie de la vidéo si ça vous
prend trop de temps ou un peu sec. Mais on va chercher des images, accord ? On va prendre cinq images, alors je vais aller sur Google, et je vais taper le mot « trucs laides ». Qui j'ai peur. Qu' est-ce qui va se passer ? Je vais cliquer sur les images et Ggo. D' accord. Donc, euh très bien. Je vais cliquer sur l'image ici, et je vais à Ah, voir l'image. Et je vais prendre cette image ici. Je vais le copier. D' accord. En fait, mettons-le sur le côté gauche et mettons-le sur le côté droit. Donc je vais aller ici à mon contrôleur de vue et ah, dans mes trucs laids chaîne juste ici. En fait, je vais juste enlever le ah, la ficelle ici, et nous allons aller de l'avant et juste mettre des libéraux à ficelle de lettre ici. Ok, donc la première fois que Earl sera ça. OK, c'est un. Et je n'étais pas ce genre de mignon. Ah, on
y va. Hum et, ah, je ne sais pas ce que c'est, mais on va prendre celui-là qui a un peu de tes crampes en ce moment. Tu peux faire de jolies choses. Donc il y a notre 2e 1 et Ah, donc, euh, jetons le gremlin ici juste pour le plaisir. Donc ça fait deux. En voici trois. Je fais juste un tableau de votre autre. OK, donc c'est trois. Et ah, allons-y et prenons le truc de blob que tu entends ? Et ah, on a ça. Et ah, donc c'est 41 de plus et tu n'auras pas à les regarder trop longtemps. Et, ah, certaines de ces choses sont si mauvaises. Oh, eh bien, j'ai parlé trop tôt. Bon,
donc, donc, euh, voici le numéro cinq. Bon, maintenant on a cinq euros, non ? Ok, élargissons encore notre code. Et, euh, rappelez-vous, ce n'est pas une course, donc ils sont séparés par des commentaires et des cordes d'air, ok. Et, ah, ce qu'on va faire, c'est avoir un deuxième tableau quand on appellera des titres aussi laides. Et ah, je me souviens de ce qu'ils étaient. Alors mettez ce qu'on veut. Donc, euh, nous allons dire, mec ceci et ceci est, euh, moche. Eh bien, et ah, celui-là n'est pas si mal. Il met des phrases aléatoires, et il en aurait besoin cinq. Ah, je ne le ferais pas. Je veux ressembler à ça. Je ne me souviens pas de ce qu'on fait ici. Et ah, donc tu as 123 Whoa, mec. Non, merci. Ça fait quatre. Quelqu' un, éteignez l'écran. Bon, maintenant on a cinq titres, accord ? Et nous avons cinq ans ou bien c'est ce que nous voulons faire, c'est les montrer dans notre cellule de vue de table . Droit ? Alors, maintenant quoi ? On peut dio C'est vraiment cool. On peut aller à notre vue de table juste ici. Et puisque nous connaissons le chemin d'index, cette ligne va toujours à la ligne courante. Donc ça va être qu'on en aura cinq. On pourrait juste saisir et créer des images et des choses ici. Alors quoi, on va dio est listé l'image d'abord qu'on doit la télécharger sur Internet. Ok, laissez votre l égal est comte de type String. On y va. Donc on doit créer votre I en premier, et celui-ci va être quoi c'était ? Quel était le taux des choses laides ? Um, ouais. Je veux dire des choses moches. Um, le point
de chemin d'index a écrit. Donc, prenons l'élément actuel hors de lui, qui est une fille, ce qui est très bien. Et puis quoi ? Nous avons besoin de dio parce que nous avons besoin de télécharger cette image à partir d'Internet. Et quand on fait ça, il s'agit de ses données en tant que données N. Donc on va dire que les données sont égales à N données. On y va. Et nous cherchons le contenu de U R L juste là. Et il veut de l'euro, ce qui ne ferait que le créer. Ok, et puis ah, ce qu'on va dio, c'est ah en fait, ça devrait être un tout. Laissez si laissez ici si laissez les données, OK, et ah, qui a l'air bien. En fait, il y a quelques choses qu'on pourrait faire ici, en fait. Um, ouais. Donc si on laisse les données, ce qu'il va faire, c'est qu'il va les télécharger. Et s'il y a un problème, c'est qu'il n'exécutera pas ce code. Sinon ça, eh bien, je vais y aller. Mais l'exclamation aussi à la fin de notre toi, Earl, parce que ton je n'ai pas la garantie de créer ton L. Mais puisque ce sont en fait ou autrement et que je viens de les avoir sur Internet et non, il y a du travail, c' est acceptable avec ce point d'exclamation ici à l'avenir. Si vous avez été téléchargés ces à partir d'Internet au hasard, comme un utilisateur pourrait les attraper, vous voudriez certainement faire un en vol ici. Mais puisque c'est codé en dur et que je sais qu'ils fonctionnent, accord ? Et donc si les données sont téléchargées avec succès sur Internet OK, ce qu'on va faire, c'est dire image. On va dire ce que je veux dire. Um, l'image de l'écran Let I m g est égale à toi. J' image et qu'il a un où vous pouvez créer une image à partir de données. C' est un constructeur juste là. Et je peux dire des données. Ok, Donc si laisser les données si cela a fonctionné, si elle a téléchargé l'image à partir d'Internet, il la met dans ces données, puis on peut convertir les données à une image, et ensuite on peut utiliser l'image. Ok, pas trop mal. Et donc ça a l'air bien. Une chose que je veux faire,
cependant,
est de gérer l'affaire où peut-être,
hum peut-être qu'il n'
y a pas,il n'
y a pas d'image. Une chose que je veux faire,
cependant, cependant, est de gérer l'affaire où peut-être, hum peut-être qu'il n'
y a pas, il n' Donc, si je retourne à Google, prenons juste une image comme un espace réservé. Donc les choses laides sur Google et faisons défiler vers le bas et espérons ne voir rien de mal ici
sur Internet. Et, euh, ce n'est pas moche, mais c'est ah Ok, alors faisons-le glisser sur le bureau ici et que se passe-t-il ? Hum, je ne comprends pas. C' est très bien. Mais de toute façon, euh, appelons ce chien et je vais juste cliquer sur les actifs ici et le faire glisser à nouveau. Vous pouvez saisir n'importe quelle image que vous voulez. C' est juste pour complète. Financez les images K. Et je vais que ça a l'air bien. Donc ce que je vais dio est en fait, euh, retourner à mon code. Je clique juste sur la flèche arrière, d' accord ? Et donc ce qu'on va dio c'est ah, créons juste une image ici. Donc je dois dire de notre image de type que vous j'image et je mets dans un point d'exclamation, c'est-à-dire ? Je sais qu'il y aura une valeur là-bas. Donc ce que je vais faire, c'est que je vais juste dire image. Cette image ici équivaut à ceci. Et s'il y en avait, il n'était pas en mesure de télécharger l'image. Ce que nous pouvons faire cela pour dire image est égal à votre image. Et on cherche celui qui s'appelle, et je pense qu'on vient de l'appeler. Ah, chien. Droit. C' est ce qu'on a appelé ici dans le chien du dossier Assets. Donc ça va utiliser cette image à la place. Ok, donc nous avons officiellement une image ici maintenant,
téléchargée depuis Internet, au fait, elle est
en train de la télécharger de façon synchrone. Ça veut dire qu'il va aux orteils. Pause votre programme jusqu'à ce qu'il se télécharge, ce qui donnera ah une expérience utilisateur plus lente à l'avenir. Vous allez apprendre à faire des appels Web asynchrones où vous pouvez réellement télécharger sur une menace d'arrière-plan distincte afin de ne pas rendre les choses plus lentes. Ah, petites techniques comme ça pour rendre votre application et extra puissante. Et donc ça a l'air bien. On a notre image. Alors maintenant ce que Weaken Dio est Ah, nous pouvons configurer la cellule pour que je puisse dire vendre dot configure, vendre une fois une image, nous l'avons. Et le texte, si tu te souviens bien, va provenir de titres moches. Donc tout ce qu'on a à faire ici, c'est dire, titres
moches, d'accord ? Et c'est le chemin d'index dot ro et sweet juste passé dans une image et un titre dans notre celled configuré. Et, euh, ça a l'air très bien. Ça a l'air moche. Ça a l'air bien. Euh, allons juste le faire et voir. J' étais comme le faire et je vois juste, je dois peut-être avoir un accident, mais c'est bon, c'est prévu. C' est ainsi que je me suis réellement développé dans la vraie vie. Si quelqu'un vous dit que c'est différent, ils mentent. Teoh. C' est ainsi que le développement est vraiment développé. Tu vois le monde réel ici. Je veux être honnête avec vous sur ce que sont les choses. Obtenez votre vrai goût de la programmation parce que c'est à ça que c'est. Alors, on le chargeait. Et je sais que j'ai oublié quelque chose dont je me souviens déjà. Il peut s'écraser. Il ne peut pas. Donc,
ça ne s'est pas écrasé, mais ça ne nous a pas donné ce qu'on cherche, est-ce pas ? Donc une chose que j'ai oubliée est ah, tu te souviens comment avant, quand je suis entré dans le storyboard principal, non ? Ok, euh, avant de cliquer sur la vue de la table et j'ai cliqué dessus et j'ai montré à la source de données dans délégué. Je pourrais juste le faire glisser ici au contrôleur de vue et l'assigner, mais nous allons le faire d'une manière différente. Et river, la source de données et le délégué, Um, c'est ce qui dit à votre code d'écouter les événements de la table de vous. Comme une nouvelle rose halodée. Ceci et ça. Toutes ces bonnes choses. Donc ce qu'on va faire, c'est voir. Il a chargé. Ok, nous allons dire que le délégué de point de vue de table est égal à soi et la source de données point de vue de table égale moi. Et j'ai remarqué qu'on l'avait fait. On a raté deux autres choses. Nous n'avons pas connecté notre vue de table et nous ne nous sommes pas connectés, Al, c'est sur nous-mêmes. Donc j'ai un peu d'avance sur nous-mêmes ici. C' est OK. Réparez facilement ce qu'on va dio. Ok, c' est ça. Cliquez sur le contrôleur et voyez où il indique la vue de tableau. C' est notre sortie pour bébé. Tout ce qu'on a à faire, c'est de le faire glisser vers notre vue de table. Pas si mal. D' accord. Et puis sur votre portable, qui est juste là. Ce type ici, cliquez avec
le bouton droit de la souris et a remarqué. Euh, attends une minute. Oh, c'est juste là. Tu vois ça ? Juste ici, à l'intérieur de la table de vous Sell. Non, ce n'est pas le cas. Où est-il ? Je cherche nos points de vente, mais je ne le vois pas ici. C' est intéressant. Ok, allons-y. Retournons en arrière et regardons notre horrible cellule. Oh, je sais pourquoi c'est. C' est pourquoi donc sur votre table de vous vendez ici, nous avons oublié de lui donner la classe personnalisée. Ha ha. Ce qui est si vous allez par ici, cliquez sur cette petite cellule rectangulaire laide. Tu vois, on a mis la classe pour qu'elle reconnaisse les points de vente. D' accord ? Et aussi, nous devons lui donner la réutilisation. Identifier le droit ? Et si nous nous souvenons, vrai, l'identifiant de raison que nous lui avons donné est une cellule moche avec une minuscule. Ça va ? Soyons conventionnels et donnons-lui juste une majuscule comme le nom de la classe. Donc, tout est cohérent. Mais revenons au storyboard du Maine. Cliquez sur votre vente et donnez-lui un identifiant reiss de cellule laide. Ok, maintenant, si vous faites un clic droit sur Ugly Cell, vous devriez voir là c'est votre image principale afin que vous puissiez le faire glisser et sélectionner l'image et votre étiquette
principale et le faire glisser et sélectionner l'étiquette. Ok, Megan Progress. Allons de l'avant et construisons et voyons si nous avons résolu tous nos problèmes. Ici vient et regarde ça. Ça marche. Ça marche, même si on dirait qu'il a abattu Teoh. Téléchargez trois des images. OK, donc c'est une bonne chose que nous définissions la valeur par défaut. Vendez leur droit. Um, ouais, c'est ah, ça n'aime pas faire ça. Ils ne sont pas trop mauvais. Trois des images sont tombées à télécharger qui auraient pu être Jeffs ou quelque chose et ne
savaient pas comment l'analyser correctement. C' est bon,
mais on sait que ça marche bien. C' est bon, Ça a l'air bien, mais le texte que tu sais quoi ? C' est un peu grand. Et si on voulait rétrécir ? Donc, nous pouvons faire est que vous pouvez sélectionner votre étiquette de texte juste ici. Et au lieu de la taille de police fixe dans le côté droit sous rétrécissement automatique, pourquoi ne pas faire une taille de police minimale et lui donner une taille de police de, comme, 10 ? Ce qui veut dire que ça va le réduire jusqu'à 10 ans jusqu'à ce qu'il corresponde. Aussi, je n'aime pas que je n'aime pas les lignes de séparation. D' accord ? Pas du tout. Donc je vais cliquer sur mon portable, et je vais en fait, je vais cliquer là. Ce non, ce n'est pas ça. Je vais cliquer sur ma vue de table, et je vais aller au séparateur et me tourner vers zéro. Donc on va éteindre les séparateurs. Je ne l'aime pas. Et ah, alors je n'aime pas la façon dont il y a les images Air Square. Allons à notre horrible cellule que nous allons faire est notre réveil de la fonction plume. Nous allons à cela est appelé quand cela se réveille et apparaît sur la vue. Ce qu'on va faire, c'est lui donner un coin arrondi. Il suffit d'y ajouter un peu d'amour. Un peu d'amour et d'attention peut prendre une application IOS un long chemin. Donc on va dire que le rayon du point de repaire est égal à cinq points. Oh, donc ça va faire arrondir
les frontières. D' accord. Et ah, alors aussi, ce que je vais dire c'est que je vais dire clip ou point de couche Voyons voir ici, Blair Mayne image principale, pas clip pour rebondir d'accord, égal vrai. Donc ce qui va se passer, c'est que ça va faire mon image. Vous avez des coins arrondis, mais si je ne fais pas de clip aux limites, l'image réelle à l'intérieur de celui-ci va toujours en sortir. Et on ne veut pas ça. Nous voulons que tout ce qui est hors des limites soit coupé. Donc, il nous donne ce joli style
arrondi Scott et le reconstruire et voir si nous nous sommes débarrassés de ces lignes et fait notre image est un peu plus ronde. Et voilà, Moment de vérité. Hé, regarde ça. Donc les images sont là. Mais ça ne les place . Nous devons réparer ça, en fait, et ah que ah, les fonds. Donc ils ont vraiment rétréci en taille ici, donc c'est vraiment cool. C' est vraiment, vraiment cool, en fait. Donc, euh d'accord, fait, je ne sais pas pourquoi le rayon du coin n'a pas vraiment fonctionné. Um oh, c'est pour ça
que ça devrait être le rayon d'angle du point de repère de l'image principale. J' ai fait le rayon du point de cellule lui-même. Nous devons définir l'image pour avoir un coin arrondi. Vous avez déjà vu ce mannequin ? Désolé. Ça ne peut pas être parfait. Plutôt proche, cependant. Là pour voir comment il est arrondi. Maintenant a l'air génial. Nous venons de faire une application vraiment cool en très peu de temps. Temps de téléchargement d'images à partir d'Internet, en utilisant une cellule personnalisée avec des points de vente personnalisés, toutes sortes de bonnes choses se passent. C' est ainsi que vous voulez développer des saps IOS comme celui-ci, en utilisant des cellules personnalisées, rend vraiment agréable. Ça n'a pas pris beaucoup de temps. Un peu plus de travail avec un long chemin pour en faire une
application beaucoup meilleure . Je pense que
oui, oui, les choses sur elle sont moches, mais c'est une application assez moche. Alors c'est tout. C' est une table personnalisée pour vous. Ceci est des vues de table personnalisées et c'est le prix de marque avec les pentes de la mort signant CIA la prochaine fois
61. NSUserDefaults: Hé, tout le monde, Mark Price ici en profondeur pentes dot com. Et aujourd'hui, nous allons parler des valeurs par défaut utilisées par Ennis. Vous allez les utiliser dans l'application my foot sur leur excellent moyen de,
um,
pour um, stocker des données sur votre appareil et sur un pullup dans un nouveau projet ici. Donc, déposez un nouveau projet. D' accord. Et donc l'objectif est de pouvoir persister des données sur le disque. D' accord ? Cela signifie que lorsque l'application se ferme, nous pouvons toujours charger des données à partir de l'application iPhone. Et, euh, dans les valeurs par défaut de l'utilisateur, nous allons l'enregistrer sur l'appareil. Et ce n'est pas aussi robuste que certains des autres systèmes comme la base de données SQL light ou les données de base, Um, mais toujours très puissant. Et beaucoup,
beaucoup, beaucoup, beaucoup d'applications peuvent être construites en utilisant juste cela, même si vous le savez. Donc, si vous ne commencez pas les choses sur Internet,
vous pouvez le faire avec les paramètres par défaut de votre utilisateur. Vraiment cool. Alors allons de l'avant et cliquez sur Application de vue unique. Et appelons simplement que les valeurs par défaut sont amusantes. Il est créé ici sur le bureau. C' est très bien. Et allez dans votre contrôleur de vue ici. Donc, ce que nous voulons faire est, disons que nous voulons stocker um, couleur préférée d'
un utilisateur. Pourquoi pas ? Allons au plateau principal,
en fait, en fait, et asaib déboutons. Ok, ce qu'on va faire avec ce bouton, il va faire un peu plus gros ici. Je vais enlever le mot, mais je vais lui donner une couleur de fond ici et on va dire que tu choisis couleur
que tu veux. C' est très bien. Faisons une belle élection électorale. Faisons un joli rectangle ici. On va faire trois seaux,
K, K, et on va aller de l'avant et faire un dans une hauteur. Et je vais juste contrôler C Control V et contrôler C et vous contrôler encore une fois. Et, euh, je vais changer celle du milieu en une couleur différente. Le défilement vers le bas. Changeons ça. Teoh jaune et le plus étrange au bleu. Donc rouge, jaune et bleu, ces trois boutons d'air, OK, et alors allons-y et dormons les trois et alignons tous horizontalement dans le conteneur. D' accord. Et puis ce haut,
on va aller de l'avant et on l'épinglera du haut, et c'est bon. Et nous épinglerons celui-ci à partir des 1 20 pixels rouges et celui-ci à partir du bleu à 20 pixels . Ça a l'air super. Et ils devraient aussi avoir leurs hauteurs à l'intérieur. Oui, ils sont d'accord, donc on a nos trois boutons ici, alors allons-y et ouvrons le rédacteur adjoint. Et ce que nous allons dio, c'est Ah, éteignons le côté gauche ici et le côté droit juste pour plus d'espace que nous allons créer trois actions I be. Donc, juste là, monsieur. Contrôle traîné à partir du rouge. Et changeons ça à l'inaction. Et on va appeler ça, euh, juste l'appeler rouge et contrôlons la traînée d'ici. Appelons ce changement à une action et appelons-le jaune. D' accord ? Et puis contrôlons le drag à partir d'ici, et nous appellerons celui-ci bleu Changez-le à une action. Ok, donc on a le rouge, le jaune et le bleu. Et que va-t-il se passer ? Nous voulons dio est de stocker la couleur préférée des utilisateurs. Ok, alors fermons ça très vite et ouvrons le côté droit. Et une autre chose que je veux faire est d'avoir une étiquette en haut qui montre juste la couleur
préférée des utilisateurs . Alors quoi ? Il sera donc comme ça plus grand ici ? Non. Eh bien, centrez-le. Rendons-le encore plus grand. D' accord ? Donc centré là. Et tu sais, alors ça ressemblait à ça. Ça dira la couleur préférée. Et ils diront, comme du bleu. Ok, Um, ou quelque chose comme ça. Ok,
ça m'a l'air bien. J' aime ça. Alors allons de l'avant et donnons-lui une hauteur à l'intérieur. Amputer 25 par le haut. Et nous allons également cliquer sur le menu d'alignement et horizontalement et conteneur. Ok, donc l'idée ici est, euh fondamentalement, s'il n'y a pas de couleur préférée, ça va dire que ça va dire un choix, une couleur préférée. Et s'il y a une couleur préférée la prochaine fois, le téléchargement qui va montrer cette couleur Ok, en utilisant les paramètres par défaut de s utilisateur. Alors allons-y et assistante rédactrice à nouveau, et je vais juste faire et je serais hors de contrôle ici et on va appeler cette étiquette de
faveur maintenant fermer l'éditeur assistant. Et puis ouvrons le côté gauche ici et ouvrons le contrôleur de vue. Et ce qu'on va faire, c'est quand on appuie sur des boutons, on va le sauver. qu'on peut faire, c' Cequ'on peut faire, c'est, euh, euh disons, , si les boutons rouges appuient bien, on va le faire ? Deux choses étaient à dire label de faveur. Ok, étiquette de
faveur. Um égale, hum, Faiveley ne sera pas le texte égal à la couleur préférée. D' accord. Et nous allons faire l'index des insertions de variables spéciales ici, et nous allons juste dire,
en fait, en fait, n'en a même pas besoin, pour être honnête, parce que ce n'est pas une variable. Donc, je dirai très couleur rouge. Et en fait, nous pouvons copier et coller cela sur tous ces. Ce n'est pas nécessairement une grande pratique de revêtement, vous savez, nous
répéter ici. Mais c'est juste que ce n'est pas le but de l'exercice. Si jaune. OK, donc on va mettre à jour l'étiquette qu'on va aussi dio. Ok, Ce que nous allons aussi faire c'est les valeurs par défaut d'un utilisateur n, pas les valeurs par défaut standard qui définissent, euh, l'objet. Donc, aujourd'hui, lorsque vous objectez sur la valeur d'une clé dedans ou que vous pouvez définir la valeur quatre clé, d'eux fonctionnera. D' accord ? Il semble aller de l'avant et dire valeur définie pour la clé, et nous allons dire que la valeur va être lu quatre couleurs de clé, ok. Et ce qui affaiblit Dio est, euh ,
copier et coller, C'est bien, deux sur chacun d'eux vont changer les couleurs. Ok, donc je vais changer cette couleur en bleu garderait le nom de la clé le même, mais changera la valeur réelle et celle-ci sera jaune. Donc, ce que nous avons fait est que nous avons obtenu ces utilisateurs par défaut ici, et nous avons défini la valeur pour la clé. Il y a une autre chose que nous devons faire est de dire, Ennis, l'utilisateur par défaut que standard vous les valeurs par défaut de l'utilisateur standard qui synchronisent. Et ce qui synchronise va faire, c'est que ça va réellement l'enregistrer sur le disque ? Et donc nous allons appeler cela à chaque fois aussi, à chaque fois que nous voulons enregistrer quelque chose va synchroniser. Ok, Synchroniser, synchroniser, synchroniser. D' accord. Et puis la dernière chose que nous voulons faire ici est sur Viered it load lorsque l'APP se charge pour la première fois. S' il y a une valeur là-dedans, assignons. Si ce n'est pas le cas, nous changerons l'étiquette en conséquence. Donc, nous allons dire, um, si laisser et nous allons juste dire couleur, nous allons obtenir la couleur de chaîne égale N valeurs par défaut utilisateur que l'utilisateur standard par défaut dot value quatre réaction clé. Donc on va avoir de la valeur pour la clé, accord, et la clé sera la couleur. Donc, ce qu'on dit,
c'est ,
c' prendre la valeur de la clé. Et bien sûr que ce n'est pas le cas. Il ne sait pas quel type c'est, donc on peut dire comme chaîne, OK. Et on y va. Donc, en gros, on va essayer d'attraper la valeur de cette clé. Si on entre ici, ça veut dire qu'il y avait une valeur si on n'est pas arrivés ici, on sait que c'est la première fois qu'on se charge. Donc, ce qu'on pourrait faire, c'est dire autre chose. Donc, s'il n'y avait pas de valeur, nous pouvons dire que le texte de point d'étiquette de faveur est égal à choisir une couleur. D' accord. Et, euh, sinon, s'il y a une valeur, ce que nous allons faire est que nous allons dire que le texte de point d'étiquette de faveur est égal à la couleur préférée et maintenant utiliser l'index de chaînes spéciales ici. Insérer l'insertion de variable dira la signification de la couleur, se référant à cette variable ici que nous avons appelée couleur. Donc, c'est ce qui va se passer lorsque l'APP se chargera pour la première fois. S' il n'y a pas d'utilisateur par défaut, cela n'a jamais été dit auparavant. Il va dire, choisissez une couleur sur l'étiquette. Sinon, nous allons la mettre à la couleur préférée qui a été choisie juste pour montrer qu'elle existe au-delà la mort d'une application. Et, euh, ce que nous avons ici, c'est quand vous cliquez sur les boutons rouge bleu ou jaune. Il va,bien
sûr, bien
sûr, étiquette
mise à jour, mais il va aussi Teoh définir une valeur pour chacune de ces couleurs. En fin de compte, l'utilisateur standard utilise par défaut la couleur de la clé, elle sera soit bleue, rouge ou jaune. Et cela va stocker sur votre appareil et synchroniser réellement synchronise et l'enregistre sur
l' appareil. Donc, si je fais ça,
on devrait s'attendre à ce qu'il dise choisir une couleur parce que nous n'avons jamais encore rien sauvé. Ok, on y va. Exécution de l'application. Cruz est là. On y va. D' accord, c' est ça. Jaune et bleu. Donc je clique sur le rouge Faisons en sorte qu'ils fonctionnent tous jaune-bleu pour qu'ils travaillent tous aussi loin que vous que j'entends. Et donc nous allons faire la lecture. Et donc cela aurait dû appeler cette fonction rouge ici et aurait dû la sauver à Ennis. Les valeurs par défaut de l'utilisateur, non ? Je me souviens comment dans le passé, nous avons fermé le rechargement de la pomme et tout sera réinitialisé. Donc maintenant si j'arrête ça, accord et que je vais ici et que tu pourrais faire le changement de commande H, ça va t'emmener à l'écran d'accueil. D' accord ? Commande Shift H et ensuite si vous faites le changement de commande Uh um h deux fois de suite, très vite. Il ouvre le gestionnaire de tâches multiples ici, et nous pouvons simplement glisser vers le haut pour le fermer et le tuer. Ok, donc il est officiellement tué. L' APP ne se charge pas du tout. C' est hors de mémoire. Donc, quand nous chargeons ceci, nous devrions nous attendre à ce que l'étiquette basée sur cela ici. On devrait s'attendre à ce que cette étiquette dise rouge. Et cela signifie que les valeurs par défaut des utilisateurs RN fonctionnent. Il est sûr pour l'appareil de cliquer sur l'application. Et c'est là. Couleur préférée rouge. Donc, il a définitivement enregistré sur l'appareil, ce qui est génial. Alors, que pouvez-vous sauver ? Avec N valeurs par défaut utilisateur, vous pouvez enregistrer des chaînes. Vous pouvez enregistrer des entiers. Tu dis des milliards. Tu sais, toutes sortes de chiffres, choses comme ça. Vous pouvez même stocker, comme, plein sur les classes et les données. Et on va en parler maintenant. Donc on l'a fait. C' est juste une valeur simple ici, bonne chaîne. Nous aurions également pu faire un nombre de définir une valeur pour le numéro Kia. Quelque chose comme ça. Hum, donc nous avons juste mis des chaînes simples, et au fait, c'est très puissant en soi pouvoir définir des chaînes. Vous savez, si vous voulez enregistrer, hum, une chose unique pour cet utilisateur ou toutes les données que vous voulez. Mais parlons d'une meilleure instance où Disons que vous avez une liste d'éléments. Disons qu'on crée un nouveau fichier appelé « personne ». Ça va être un cours. Ok, donc qu'est-ce qu'une personne et le mettre ici et ce qui va traiter dira classe, personne, et nous allons avoir un de nos prénoms de type barre de chaîne, Nom de famille de type chaîne. Nous n'allons pas aux variables privées en ce moment, juste à des fins de démonstration. Donc, un prénom dans le nom, droite, Et puis un initialiser er er premier de type chaîne et dernier de chaîne de type. D' accord. Et, euh, je n'ai pas besoin de ça. On y va. C' est ce qu'on pourrait dire, c'est Ah, le
prénom est le prénom et le nom est le dernier. C' est le premier Isar a l'air bien. Et donc disons à notre avis, contrôleur ici. Ok, disons que nous voulons avoir un éventail de personnes jusqu'à présent, les gens sont égaux à un tableau de type personne. Allons juste faire un rayon vide bien. Un tableau vide de type personne et puis juste ici nous pouvons juste ah, affaiblir, s'asseoir. Nous pouvons créer quelques personnes. Créons trois. Ok, donc Var, um personne est égale personne. Donnons-lui un prénom. Nom de famille. Euh, aile John Everyone Wing Chun ce soir et ah, personne B égale personne. Et disons, euh, Lady Gaga, si elle est toujours classée comme un être humain et une personne de bar, c est égal à personne et ah, ce sera Justin Beaver, le bébé. Euh, qui se soucie de son nom est Bill ? Bon, alors on y va. On a trois personnes différentes, non ? Alors, comment pouvons-nous sauver ça maintenant ? On pourrait faire quelque chose comme ça ? Pourrions-nous d'abord, ajoutons en fait à droite. Désolé, les gens ajoutent une personne A. Ok, les gens ajoutent des personnes B. Cette personne append. On se voit maintenant. Voyons ce qui se passe si nous Oh, ça n'aime pas ça pour une raison quelconque. Qu' est-ce que je lui ai épelé ? Non, je crois que ça trébuche ici. OK, ça a marché. Donne-moi un air aléatoire. Je l'ai construit et c'est bon. Bien sûr que ça veut que tu sois, soyons que je déteste avoir ces avertissements sur l' écran qui me rend folle. OK, donc je pense que c'est pour ça que ça a fait du bruit ? Donc nous le faisons comme ils le veulent. Ok, donc nous avons ajouté ces gens au tableau à peu de temps ici. D' accord. Sur la vue a été chargé. Maintenant peut-être que vous pensez, eh bien, économisons les tarifs. Disons Ennis, l'utilisateur par défaut que les valeurs par défaut de l'utilisateur standard définies, objet. Donc, nous pourrions dire définir, objecter et dirons les gens pour clé. Je veux dire que les gens sont la clé. Ok, temps en temps, on peut faire. Et cet utilisateur par défaut, les normes de points n'ont pas été synchronisées. Ok, donc peut-être que tu penses que ça marcherait. Allons-y et essayons de le faire. Donc ça va arriver, non ? Quand la pomme Avoine, on va ajouter ces gens et essayer de sauver ce tableau. Ok, on a un problème. Regarde ça. On a une application de terminaison aérienne. Teoh dans s argument invalide tentative d'exception d'insérer une liste de propriétés non objet. Ok, donc peut-être que ça ne veut rien dire pour toi en ce moment. Euh, genre, qu'est-ce que ça veut dire ? Eh bien, c'est un peu dur à lire, mais ce que cela signifie est que notre application ne peut pas enregistrer ces données parce qu'elle ne sait pas comment reconnaître un objet de personne. C' est une classe personnalisée qui contient des propriétés et des sépultures, mais elle ne sait pas comment le reconnaître comme un objet qui pourrait être sauvegardé car lorsque choses sont sauvegardées, elles doivent être ce qu'on appelle encodé. Ok, ils doivent être encodés pour qu'ils puissent économiser sur l'appareil. Quand ils sortent, ils sont décodés. Les cordes peuvent le faire normalement en milliards de jurés
qui se produit automatiquement, c'est pourquoi nous avons pu le faire avant. Mais la classe personnalisée est ok. Vous voulez stocker un tableau de choses sur des classes personnalisées. Ça ne marche pas si facilement. On doit faire autre chose. Donc, chaque fois que vous voulez stocker des données personnalisées comme des classes et que vous devriez être toutes vos données, la plupart devraient être dans des classes personnalisées. Vous savez, ce sera un magasin très commun,
un tableau, une application que j'ai construite s'appelait Make a Snowman et vous déplaceriez des objets de bonhomme de neige et choses comme ça. J' avais donc besoin de sauvegarder les coordonnées et les positions et les transformations à ce que j'ai fait, c'est que j'ai créé une classe
personnalisée qui stockait toutes ces positions transformées et des choses comme ça. Et puis je les ai enrobés et décodés. Et donc nous avons dû faire quelque chose comme ça où nous avons un tableau d'objets. Et donc ce qu'on va dio va à notre cours de personne, et il y a des choses qu'on doit faire pour que ça marche. abord, euh, si nous voulons être en mesure de sauver la classe aux valeurs par défaut de l'utilisateur Ennis, nous devons implémenter ou après hériter de l'objet N. OK, c'est un objectif C Class K. Et cet objet et le codage s sont un protocole que nous devons implémenter. Ok,
Donc, si vous voulez enregistrer un utilisateur de tennis de classe personnalisée par défaut, c'est
ce que vous devez faire. Tu n'as pas moins de la moitié. Vous n'avez pas à le comprendre complètement, mais vous devez savoir que c'est ce que vous devez faire. Vous devez implémenter dans son codage et l'objet Ennis. Et l'objet est que c'est le classique parent, et c'est des revêtements de protocole. Et ce qu'on va dio, c'est qu'on va mettre en place un, euh ,
initialisé, et ça va s'appeler la commodité requise dedans. Et il va être codeur devrait apparaître automatiquement, mais ce n'est pas un codeur s. Ok, donc ce qu'on va dio, c'est qu'on y va. Nous devons créer cette commodité initialize er, et nous devons également créer et juste un er d'initialisation vide aussi, aussi. Ce qu'on va faire, c'est qu'on va d'abord appeler le point habituel lui-même initialisé dedans, celui-là qu'on vient de créer ici. On va appeler ça d'abord, d' accord ? Et donc nous avons la commodité initialize er, et il y en a un où nous devons implémenter, et il va encoder avec le codeur. D' accord ? Et c'est l'autre chose que nous devons mettre en œuvre. Donc, ce que nous allons faire, c'est que lors du chargement à partir des paramètres par défaut de l'utilisateur N, cela va être appelé automatiquement. D' accord. Il va automatiquement appeler cette initialisation spéciale ici pour le décoder de votre système . Ok, donc c'est ce que vous devez l'avoir ici parce que ce que nous devons faire est assigné la valeur. Donc, ce que nous allons faire est que nous allons dire que le prénom de point auto est égal à un décodeur point objet, quatre clés. Et la clé sera ce que vous voulez lui donner. On l'appellera exactement le même nom que notre propriété en tant que forces. Ce que vous faites quand vous décodez quelque chose. Ok, quand tu décodes quelque chose quand ça s'appelle automatiquement,
tout ce que tu veux dire c'est, Hey, qu'est-ce que tu l'as sauvegardé ? Qu' est-ce que tu as dit ? Cet objet codé comme pour que je puisse le sortir et le transformer en une chaîne ou tout ce que vous voulez transformer en. Donc c'est juste qu'il prend juste l'objet, et il le met en forme pour vous. Et donc vous allez vouloir le faire pour tout ce que vous voulez enregistrer sur le disque dans votre classe
personnalisée. Tu dois faire ça. Vous devez écrire un décodeur pour comme nous le faisons ici est le nom de famille va être un décodeur point objet pour clé. Et ça va être encore un nom de famille. Ces clés. Vous pouvez les enregistrer à la clé que vous voulez, mais il est logique de l'enregistrer car le même nom est la variable. C' est ce qui arrive quand on le décode. Quand il se charge à partir du disque, il va faire automatiquement va appeler cela pour vous automatiquement et mettre les variables ici pour vous automatiquement. Mais qu'en est-il de l'encodage lorsque vous voulez l'enregistrer sur le disque ? Eh bien, on doit le faire aussi. Donc, un point de codeur dans l'objet de code. D' accord. Et un faux dans l'objet encoder pour la clé. C' est ce qu'on veut. Donc, nous voulons encoder l'objet pour la clé et l'objet que nous voulons encoder ici est self Ce prénom pour le prénom de la clé. Donc encore une fois, nous aurions pu appeler ça tout ce que nous aurions pu appeler la maladie. Facile. Peu importe. Peu importe, mais il est logique de l'appeler exactement le même nom que votre propriété. C' est ce que vous félicitez ici aussi. Et puis un codeur point objet encoder, et nous dirons auto point nom de famille quatre clé nom de famille. Donc, quand vous dites des valeurs par défaut de l'utilisateur, lorsque vous faites les valeurs par défaut de l'utilisateur Ennis comme set, objet pour clé, puis synchroniser. Ok, ça va être appelé automatiquement. Tu n'as jamais à t'en soucier ici. D' accord ? Il va faire ce genre de choses automatiquement, mais vous devez les implémenter si vous voulez enregistrer sur le disque et recharger sur la classe personnalisée est comme nous le faisons ici. D' accord ? Alors que ces air maintenant sauvé, décodé, encodé. Donc maintenant, si je vais à mon contrôleur de vue ici Donc nous avons créé ces gens se souviennent que ces gens ont juste qu'ils sont maintenant capables d'être décodés et encodés. Et donc ce que nous disons est, hey, ajoutons dans le tableau et puis sauvegardons ce tableau. Alors maintenant, voyons ce qui se passe si j'exécute mon application. Si nous obtenons des erreurs lorsque nous cliquons ensemble, objet pour clé, puis nous synchronisons. Ok, donc on a encore un air. Ok, il y a encore une chose qu'on doit faire. On peut sauver. Ok, on doit tourner notre objet. Nous voulons enregistrer dans les données. Ok, donc ce qu'on veut faire, c'est juste là, d'accord ? Nous voulons créer une nouvelle variable qui convertit sont. C' est si bien que ça va tenir sont des convertis une course. Donc, nous allons dire que les gens les données sont égales à n Eschede archiver les données archivées avec l'objet racine. On va taper juste pour mettre dans le tableau des gens. Ok, donc on va dio, on va prendre ce tableau de personnes. C' est juste là, et on va le convertir en données. Rappelez-vous les données à l'intérieur de celui-ci a envoyé être encodé, capable et décoder à base de plantes. Et puis nous devons le convertir en données comme nous le faisons ici. Et puis, au lieu de définir les personnes objet, nous définissons les données des personnes. Ok, donc maintenant nous définissons les données, donc nous sommes devenus des données, des octets et des bits. C' est ce qu'on a fait ici. On est en train de l'archiver. Nous le préparons pour être en sécurité. Maintenant, si vous pensez maintenant, c'est beaucoup de travail. Je deviens vraiment confus. Eh bien, tout d'abord, nous regardons les vidéos encore et encore, mais c'est le moyen le plus simple d'enregistrer des données et IOS. Ça devient plus complexe à partir d'ici. Donc, si vous voulez le moyen le plus simple, c'est certainement tout. Donc tu veux que tu veuilles apprendre à le maîtriser. Alors allons le faire maintenant et voir ce qui se passe. D' accord ? Et ça a marché. Maintenant tu es genre,
eh bien, eh bien, rien ne s'est passé. Eh bien, tout ce qu'on fait, c'est la sauver. C' est pour ça que rien ne s'est passé. Mais parlons de le charger maintenant. Donc, disons qu'après l'avoir sauvé ici, déchargez. Lorsque nous cliquons sur le bouton bleu, nous le voulons juste. Nous voulons charger ces gens et nous voulons les imprimer. D' accord ? Donc, hum, ce n'est pas trop mal. Pas si mal d'accord. Donc ce qu'on va faire, c'est qu'on va dire si on laisse, hum, les gens
chargés vont bien ? Est égal à n valeurs par défaut de l'utilisateur. L' utilisateur non standard utilise par défaut cet objet pour la clé. Souviens-toi qu'on l'appelait des gens. Droit. On l' appelait encore des gens juste là. Et rappelez-vous, nous n'avons pas enregistré le tableau réel. Nous avons enregistré le tableau en tant que données, alors convertisons-le en données. Donc, ce sont des données. Donc, ce que nous disons est, hé, attraper les personnes qui sont dans cet utilisateur par défaut ces données et les convertir en données. Et si on arrive ici, on sait que ça a marché, et on dira que c'est ah, si on laisse les gens s'arranger, accord ? Egal n Eschede archives de l'ONU. a Onaappelé les archives. Transformez-le en données. Maintenant, il est sur l'archive sur l'objet d'archive avec des données, et ça va être chargé, People. D' accord. C' est ce qu'on appelait ça, je crois. Oui. Et, euh, ne dis jamais, car c'est une foule de gens. Droit. Alors, convertisons-le en un tableau de personnes. D' accord ? Personne d'espoir, pas les gens. Un ensemble de personnes. Ok, donc encore une fois, les personnes
chargées sont les données Donc nous allons revenir dans les valeurs par défaut de l'utilisateur ont été saisissant l'objet que nous avons enregistré. Et, bien
sûr, nous avons enregistré des données. Nous n'avons pas dit que l'objet lui-même le convertirait en données. Et puis nous ne archivons pas ces données dans un tableau de personnes réel, et nous les convertissons en une personne. Ok, donc tout ce qu'on a à faire maintenant, c'est dire que pour chaque personne dans le tableau des gens, on va juste l'imprimer et voir si ça a fonctionné. On va imprimer le prénom de la personne point. Ok, donc encore une fois, c'est charger des données, OK ? Pour récapituler apparaître, nous avons pris le tableau. Nous avons d'abord encodé notre classe qui va être de la bonne façon, encodé et décodé. Et puis ce que nous avons fait c'est que nous avons archivé le tableau de
personnes dans les données s,
et ensuite ce sont les données N que nous avons enregistrées dans nos valeurs par défaut utilisateur standard. tableau de
personnes dans les données s, Et puis on se synchronise ici quand on clique sur ce bleu. Mais nous allons le charger, et ce qui va arriver, c'est que nous allons extraire ces données des énergies des valeurs par défaut sur , archiver dans un tableau de personnes ou de personnes. Et ils allaient imprimer pour s'assurer que ça marche. Donc, si tout cela a fonctionné quand je clique sur ce bouton bleu, nous devrions voir chacun de ces noms imprimer, et il les a attrapés sur le disque. Ok, alors donnons-y un coup de feu. On y va. Moment de vérité. Donc, nous savons que quand il se charge, il l'enregistre sur le disque. Ok, maintenant, voyons ce qui se passe si je clique. C' était le bleu, non ? Oui. Dame de l'aile Justin. C' est un nom plutôt cool. Comme un tueur en série a mis bizarre. Ok, donc ça a marché. Et juste pour souligner que cela a vraiment fonctionné. Changeons un Justin en bière muffin. Et ce qui va se passer, c'est que ça va stocker ce nom, et on devrait voir ce nom s'imprimer ici à la place. Lorsque nous cliquons sur le bouton bleu, c'est juste un deuxième test qui nous fait savoir qu'il est absolument sauver. Nous le chargeons de l'aile de disque, Lady Muffin. Donc ça a fonctionné. Ok, donc c'est vraiment cool. Ce que je viens de vous donner, c'est tout ce dont vous avez besoin. Tout ce dont vous avez besoin pour stocker des données sur l'application iPhone. Donc, si vous êtes prêt à prendre des démangeaisons pour obtenir votre première application là-bas. Ok, tu as ce qu'il te faut. Maintenant, vous pouvez stocker une augmentation. Vous pouvez commencer les données. Tout ce que
vous voulez, vous pouvez maintenant stocker, et ça va démarrer l'appareil. Attention à toi. L' utilisateur supprime le périphérique sont supprimés. L' application hors de l'appareil. Toutes ces données ont disparu. Mais il était si longtemps que l'abside là-bas il restera. D' accord. S' ils tuent l'application, vous savez, éteignez-la. Peu importe. Il sera toujours là quand il reviendra à charger afin que vous puissiez construire de nombreuses applications. Et en passant,
l' application que j'ai construite faire un bonhomme de neige. Vous savez qu'utiliser ce genre d'épargne, vous savez, j'ai eu comme 500 000 téléchargements faits, comme 10 000$. Donc vous pouvez faire un long chemin avec toutes ces choses, mais nous le faisons maintenant, donc si vous ne le comprenez pas, juste ce que nous regardons de nouveau la vidéo et pour résumer. Et si tu ne veux pas que je résume encore, tu pourrais mettre fin à la vidéo. Mais pour résumer si vous voulez enregistrer une classe personnalisée, qui est ce que vous devriez mettre en œuvre dans la plupart des cas, rappelez-vous que vous allez avoir besoin d'hériter de l'objet N, vous devrez implémenter le protocole de revêtement n s et ensuite vous Je vais vouloir mettre une initialisation vide Er, euh, mettre votre commodité requise initialiser er er avec un codeur un point auto décodeur
dedans, ça va appeler celui-ci ici. Et puis vous devez pour chacune des propriétés que vous voulez enregistrer, vous n'avez pas à les enregistrer toutes. Quels que soient ceux que vous voulez enregistrer, vous devez d'abord décoder Teoh l'objet qui est celui-ci quand il se charge. Donc ça va appeler ça automatiquement quand il se chargera pour la première fois. Et donc vous voulez le décoder avec les noms de clés exacts que vous l'enregistrez et ensuite
chaque fois que vous l'enregistrez dans les paramètres par défaut de l'utilisateur Ennis désabusant. Cela va être appelé automatiquement, et vous voulez le faire pour toutes les propriétés que vous voulez charger également, bien sûr, les noms
de clé doivent être les mêmes. Et le contrôleur de vue, lorsque vous voulez enregistrer quelque chose comme un tableau correct, ou juste un objet individuel, vous allez vouloir le convertir d'abord en données afin d'archiver les données avec l'objet via. Vous convertissez votre objet en données. C' est dans ce cas, c'est un tableau. Et puis vous allez Teoh, définissez l'objet dans les villes intérieures ou par défaut l'objet de données. Ok, si c'est juste une chaîne régulière ou booléenne ou un entier ou double quoi que ce soit. Vous n'avez pas à faire cet archivage. Vous pouvez définir la valeur directement parce que c'est déjà euh euh fonctionne avec le codage Ennis. Mais sinon vous devez définir les données, définir une clé pour cela, et ensuite vous devez synchroniser pour les enregistrer, accord ? Et puis si vous voulez le charger hey, vous venez de le sortir du Pas celui-là juste ici. Vous le retirez des valeurs par défaut de l'utilisateur Ennis converties en données N, puis vous avez obtenu une archive de l'un à partir de données dans l'objet qu'il était, et puis vous pouvez l'utiliser, et c'est tout. Vous le faites avec n'importe quelle application maintenant, donc vous avez les valeurs par défaut de l'utilisateur d'énergie vers le bas. Félicitations. Utilisez ceci dans votre APS et faites quelque chose de génial
62. UINavigationController: tout le monde marque pricier à Deb pentes point com. Et oui, encore une fois, je porte un T-shirt blanc. Et si vous pensez peut-être qu'ils sont tous les mêmes T-shirt. Laisse-moi t'assurer que
j'ai acheté un paquet de cinq. Laisse-moi t'assurer que Donc tout va bien. Allons de l'avant et faisons la leçon pour aujourd'hui, qui est les contrôleurs de navigation, et vous allez les utiliser beaucoup, beaucoup, beaucoup, beaucoup, beaucoup,
beaucoup tout au long de votre carrière dans chaque application, probablement l'idée derrière un contrôleur de navigation. Allez-y et créez un nouveau projet. L' idée derrière un contrôleur de navigation est qu'il gère les manettes off d'un Siri pour vous . OK, c'est comme un conteneur. C' est ce que c'est techniquement. C' est un conteneur, et fondamentalement il est optimisé pour les performances. Donc, fondamentalement, lorsque vous cliquez sur les données, cela vous amène à un écran. Si vous cliquez sur quelque chose qui vous amène à un autre écran, puis si vous appuyez sur le bouton de retour, il revient en arrière, arrière, en suivant toute la trace de vos contrôleurs, bien que vers le bas vers le bas au début, si vous n'aviez pas le contrôleur de navigation, vous devrez écrire tout ce code vous-même. Vous devez écrire un conteneur qui gère la tenue de tous les autres contrôleurs de vue. Laquelle ? En bas. Laquelle ? En haut, ici. C' est gérable pour nous. Un très gentil. Alors allez-y et faites une seule application de vue. Ils ne sont pas très difficiles à utiliser. Il suffit de nous appeler le contrôleur Knave juste pour court prochain et créé ici sur le bureau. Ok, donc ils bougent mon ex un peu ici et vont dans votre
storyboard principal . D' accord ? Et quand ça décide de charger, on
y va. Nous avons un contrôleur de vue, mais si vous voulez utiliser un contrôleur de navigation, vous devriez le mettre à l'intérieur. C' est une remorque de navigation sera notre point de départ maintenant. Ça n'a pas à l'être. Vous n'avez pas besoin de démarrer votre après le contrôleur de navigation. Tu pourras le mettre plus tard. Vous pouvez même l'ajouter par programme quoi ? On va faire le nôtre dès le début. Alors cliquez sur votre contrôleur de vue ici et allez en haut de l'écran et allez à entrer dans le
lit dans le contrôleur de navigation. Et c'est là. D' accord. Pas si grosse affaire. Points de départ ici qui a fait tout le travail pour nous. Et alors quoi ? On va faire glisser quelques contrôleurs de vue ici. Donc on va en traîner un ici et en traîner un ici et ensuite on va les relier ensemble. Donc, sur celui-ci,
cliquez dessus, puis changeons l'arrière-plan à lire, juste pour montrer qu'il s'agit d'une vue différente. Allez-y et lancez un bouton, accord ? Et puis contrôler glisser à partir de cet écran. J' ai fait cet écran. J' essaie de vous montrer à quel point c'est rapide, à
quel point on peut passer d'une natation à l'autre, puis cliquer sur
celle-ci ici et la changer en jaune, puis aller et lancer un autre bouton. Ensuite, contrôlez, faites glisser sur ce troisième contrôleur de vue et cliquez sur montrer, puis cliquez sur le contrôleur de vue et la vue et modifiez-le en bleu. Donc nous avons rouge, jaune bleu Maintenant, gardez à l'esprit que contrôleur de
navigation ne montre pas sa propre vue. Il montre une racine de votre contrôle. Il s'agit du contrôle de vue d'itinéraire U du tout premier que vous contrôlez. Donc c'est ce qui va vraiment être montré. Il va juste être tenu à l'intérieur d'un conteneur. Donc si je garde ça et que je fais commande sont de l'exécuter, ok ? Ça devrait marcher tout de suite pour nous. Et c'est là. Donc nous avons du rouge Si je clique sur le bouton, nous avons maintenant du jaune Si je clique à nouveau, nous avons maintenant du bleu Oh, mon Dieu, je ne vois pas. Je n'ai pas mis de boutons sur l'alcool comme je ne vois pas. C' est Oh, tu es genre, OK, on l'a déjà fait, mais il y a une différence. Regarde le côté gauche dur. Il y a un dos, mais il le fait automatiquement pour vous. Maintenant, lorsque vous appuyez sur le bouton Retour vous ramène en arrière et en arrière. C' est cool ? Donc, sans avoir à écrire de code supplémentaire, grâce au SDK d'Iowa, il gère le popping et le push de vos contrôleurs. C' est comme ça que ça marche. Donc, quand vous ajoutez une nouvelle année de contrôleur de vue, euh, le
poussant sur une pile, ok. Et pensez à ça comme Pez. Vous savez que vous connaissez les bonbons, comme avec la tête cool Star Wars ou mon petit poney si vous êtes un Baroni ou dans ce genre de choses. Et en gros, tu mets le paysan Ouais, tu le pousses vers le haut et tu le déposeras. Donc l'idée est que le dernier dans est le 1er 1 sorti qui s'appelle une pile, non ? Comme une pile de livres, Jenga, tout ce que tu veux faire. Alors c'est ce qui se passe. Nous poussons sur un contrôleur de vue et nous appuyons sur. C' est super cool. Il fait toute la mémoire. La direction le garde là, donc c'est sympa et rapide, donc vous n'avez pas à faire tout ça. Donc c'est comme ça que ça fonctionne tout de suite, vraiment facile. Bien sûr, nous avons quelques problèmes,
mais l' un est que ces contrôleurs de vue ils ne sont pas liés à un code juste là, montrant
juste des écrans. Nous n'avons pas de code pour les gérer. Et donc ce que je veux faire est juste de vous montrer comment regarder papa contrôleur par programme. C' est la dernière chose que je veux montrer pour qu'on puisse le faire ici sur l'écran jaune. Faisons un nouveau mais ici, et j'ai attrapé quelque chose de différent cette fois. Appelons ça ça, parce que ça va apparaître quand on clique dessus,
ok, ok, et allons de l'avant, cliquez sur le dossier du contrôleur naff ici et faire un nouveau fichier et source et classe tactile cacao. Et nous voulons hériter de vous. Je vois le contrôleur. Et appelons simplement ce VC jaune pour le contrôleur de vue jaune que nous n'avons pas besoin Est-ce parce que
c'est dans le storyboard et créer ? Ok, donc on a un contrôleur de vue. Ce n'est pas encore connecté. Si vous vous souvenez, nous devons cliquer sur notre contrôleur de vue ici et cliquer sur le petit rectangle ici. L' inspecteur d'identité. Et on doit le changer aussi. Je suis toujours sélectionné. On y va. Contrôleur de vue. On y va. Je clique sur le contrôleur de
vue, inspecteur
d'identité, et allons de l'avant et changeons ça en V jaune. Donc maintenant il est officiellement connecté. Droit ? Ok, alors ce qu'on va faire, c'est ouvrir l'assistant rédacteur en chef. Il va maintenant ouvrir notre code V C jaune ici, et vous pouvez dire qu'il fait plus de place ici. Il est proche du côté gauche, et tout ce qu'il nous faut, c'est un I B. L'
action sur les droits pop va contrôler la traînée ici, créer une action I B. Peut-être n'importe quoi, tu sais, tu as fait quelque chose. Oui. Vous avez chargé une image. Peu importe. Peut être n'importe quoi. Quoi que tu veuilles faire pour y retourner ? Euh, tu sais, peut-être un téléchargement abattu. Voulez-vous voir l'utilisateur revenir à l'autre écran ? Parce que c'est un écran de téléchargement. Peu importe. Je change juste à l'action. Et appelons ça pop V C. Ok, fermons l'assistant rédacteur en chef. Allons de l'avant et ouvrez le côté gauche ici et cliquez sur Veazey jaune. Donc, chaque fois que les boutons
pressent, ce que nous voulons dio est vraiment facile. Vous dites pop donne Ah, chaque auto que le contrôleur de navigation point pop vous pop pop contrôleur de vue pop. Il y a donc quelques options différentes qui apparaissent. Approuver, vous contribuez chalutier qui va tout le chemin vers le bas sur. Vous pouvez apparaître sur un contrôleur de vue spécifique. Si vous avez 50 contrôleurs de vue, vous pouvez trouver celui que vous voulez et le faire apparaître à celui-ci. Ou tu pourrais revenir en arrière, ce qui est celui qu'on veut. Donc, contrôleur de vue
pop. Encore une fois, vous appelez le contrôleur de navigation douteuse de soi. Maintenant, voici quelque chose d'intéressant. Il s'agit d'une option. Donc, si vous appelez cette fonction et qu'elle n'existe pas, votre programme ne va pas planter, et c'est bon. Mais sachez ça parce que c'est facultatif. Cela signifie que cela peut ou peut ne pas fonctionner. Maintenant, on sait que ça va marcher parce qu'on a un contrôleur de navigation. Donc, si nous en avons créé un dans le storyboard et si cette vue contrôle une partie de celui-ci, qui est en ce moment parce que nous l'avons fait dans le storyboard, il le trouvera. Mais disons que nous n'avons pas utilisé de contrôleur de navigation dans le storyboard et que nous
utilisions simplement des contrôleurs de vue. Cela ne fonctionnerait pas. Alors gardez ça à l'esprit. On accède à la vue, au contrôleur de navigation s'il existe, accord. Et donc tu peux le faire comme ça. En fait, vous n'avez même pas besoin du point d'auto. Vous devriez juste être capable de l'appeler juste comme ça. Voulez-vous animer le Oui, Tout devrait être animé. Et, euh donc si on clique dessus, il devrait apparaître sur le contrôleur de vue précédent. Alors encore attrapé de vous, prenez le contrôleur de navigation. Si c'est là, puis appelez cette fonction dessus. Alors allons de l'avant et lançons et voyons si notre bouton fonctionne. Ok, donc on charge le jaune en cliquant sur pop, et il apparaît. Ok, faisons un de plus Créons notre troisième contrôleur de vue. Donc je veux juste m'assurer de savoir de quelle couleur il est. C' est le bleu. Alors faisons un pour le bleu et remonte jusqu'au début. Un. Ok, alors allons de l'avant et créons une nouvelle vue. Contrôleur. Nouvelle source de fichier. Classe Cacao Touch. Vous avez des contrôleurs ? Très bien. Appelons ce Balu V C et cliquez. Cliquez sur Suivant et créez et allez dans votre storyboard principal défiler vers le bas jusqu'au bleu ici. Cliquez sur le contrôleur de vue ouvert le côté droit et changer la classe en bleu V C. Assez
facile. Ça passe par un bouton ici. Et celui-ci est trop bleu pour moi. Alors je vais changer de couleur. Je clique ici. Je vais changer la couleur en blanc. Ok, appelons celui-là. Euh, Pop deux. Ou c'est rouge ? Alors d'accord, regarde ça ici. Donc jaunit le suivant. Mais le rouge est la racine de vous. Contrôle, à droite. La très, très base. Ok, donc on s'est fait sauter pour lire. Allons de l'avant et ouvrons le rédacteur adjoint et assurons que nous sommes dans le bon . Donc, c'est le contrôleur Blue View, juste là où nous voulons être contrôlés. Faire glisser pour créer une action I B change en action et disons pop to root. Éteignez l'éditeur assistant. Allez à notre contrôleur Vyugin Blue View juste ici et ensuite ce que nous allons faire est, nous dirons, contrôleur de
navigation point pop to root view controller. Donc celui-ci devrait nous ramener jusqu'au début, tandis que l'autre nous en a ramené un. Celle-ci devrait remonter au début. Voyons si ça marche. Donc, le point que je veux faire ici est que vous pouvez accéder au contrôleur de navigation à partir de votre code s'il existe. Donc, nous chargeons le cours jaune en cliquant sur Pop retourne à lire des charges jaunes. Chargons la pop bleue pour lire nous ramène tout le chemin au début, sorte que les contrôleurs de navigation pensent à cela. Il y a tellement d'applications que
vous avez une liste de données. Disons que vous avez une liste de recettes, et lorsque vous cliquez dessus, vous voulez voir les détails du reste de l'image qui marche bien, contrôle de
navigation. Ce serait un excellent choix pour ce genre d'application. Vous affichez une vue, puis la vue détaillée. Et peut-être que cela a même 1/3 vue comme il montre comment faire la recette, puis a un lien pour le magasin que vous voulez aller pour les acheter. Donc, il pousse sur un nouveau contrôleur de vue comme une vue Web ou quelque chose, puis vous pouvez regarder là et il y a plusieurs vues. Donc très puissant utilisé est dans vos applications. Vous allez maintenant que vous avez vu l'ici, si vous retournez et regardez sur l'App Store, une partie de l'abside que vous avez, vous allez remarquer la plupart d'entre eux. Utilisez ce type de configuration ici. Vous pouvez utiliser des contrôleurs de navigation avec les onglets nôtres. Vous pouvez utiliser les contrôleurs de navigation ultérieurement dans votre application. Ce n'est pas forcément le point d'entrée. Vous pouvez les utiliser quand vous le voulez. Vous pouvez les charger par programme aussi bien que vous n'avez pas à le faire à partir d'un storyboard. Vous pouvez le créer à partir de votre code et le charger au besoin. Très puissant. De nombreuses façons de l'utiliser. Je vous ai montré le moyen le plus simple, et vous pouvez construire la plupart de vos aps en l'utilisant juste comme je vous ai montré ici. Tellement puissant. Commencez à l'utiliser dans vos points d'accès. C' est Mark Price avec des pentes sourdes dot com et nous sommes à un pas d'être un autre pas d'être un développeur professionnel, en fait, c'est beaucoup d'étapes, mais, euh, ce que je vous recommande de faire est d'utiliser ces compétences de renforcement se produire dès que possible. Des trucs très cool. À plus tard.
63. App: The Walking Dead (UIScrollView): Hé, qu'est-ce qui se passe ? Tout le monde a marqué. Lève-toi ici sourds glisse point com. Et aujourd'hui, nous allons parler de Scroll. Allons de l'avant et ouvrons un nouveau projet Exco. Votre code ex Aller au dossier du nouveau projet. Ok, je vais le sortir ici et ah, célibataire. La demande est bonne. Et on va appeler ça le rouleau de marche de toi. Tu verras pourquoi tu sais déjà pourquoi. Ok, donc des veaux de défilement vraiment cool. Um, ils vous permettent d'avoir du contenu sur eux et pour qu'il soit évolutif sur l'écran. Maintenant, avec cela étant dit, comme je me développe de plus en plus absent à mesure que je reçois dans le code mawr des autres, écureuil voit l'air comme une chose du passé. Ils ne sont pas utilisés aussi souvent qu'ils l'étaient avant la mise en page automatique et surtout empilés pour une utilisation. Maintenant, ils aident vraiment avec beaucoup de choses que vous pourriez avoir à faire défiler ces pour dans le passé. Maintenant, une vue de scrawl Ok, euh, est vraiment bon quand vous avez juste quelques éléments que vous voulez peut-être faire défiler. Ok, euh, parce que nous avons des vues de table, nous avons des vues de collection qui sont optimisées pour montrer beaucoup d'éléments et pour être à base de plantes défilées . Hum, et il réutilise des cellules et des choses comme ça. Et donc la vue de défilement ne fait pas défiler. Il ne réutilise rien. Donc, tout ce que vous jetez dessus est chargé en mémoire. Donc, plus vous mettez de choses sur une vue de défilement,
plus , la mémoire sera utilisée. Mais ce qui est intéressant, c'est une vue écureuil américain, en fait, Est-ce que la classe parent d'une vue de table utilise une vue de défilement, mais encore une fois, la vue de table dans les vues de collection est hautement optimisée. Donc, le cas d'utilisation pour une vue d'écureuil est très, très faible. Vous ne voudrez pas l'utiliser autant,
mais je vais vous montrer une façon de l'utiliser, ce
qui est amusant. Vous ne voudrez pas l'utiliser autant, mais je vais vous montrer une façon de l'utiliser, ce Alors allez-y et entrez un U je vous fais défiler ici. D' accord. Et nous allons simplement le faire glisser d'un coin à l'autre sur notre vue principale. Et ce qu'on va faire, c'est un fanion sur les côtés. Enlève les marges, épingle-la sur les sites, ok. Et ce que nous allons faire, c'est que nous allons avoir un tas de personnages que nous allons faire défiler travers l'écran comme comme une application de magasin de jouets comme peut-être que vous construisez une application pour un magasin de jouets, et ils veulent montrer certains de leurs jouets. Et donc nous allons nos jouets vont marcher morts, ce qui est vraiment cool. Eso nous avons notre parchemin de vous ici. Alors allons de l'avant et jetons des images dans le projet ici, donc peut-être trouver le mien là-bas. Juste ici. Je les prends sur internet, ces airs, ces jouets de vinyle pop. Et je pensais qu'ils avaient l'air cool. Ne le fais pas. On ne fait rien de gory. Les enfants regardent ce spectacle. En fait, ce sont probablement les enfants qui veulent le sang. C' est nous les gens normaux qui sont comme,
euh, mais de toute façon, pas de sang dans celui-ci. Désolé. Vous pouvez ajouter du sang sur votre temps libre à mon logo et ajouter mon étagère. D' accord. Très cool. Voici nos graphismes et retournez au tableau principal. Et ce qu'on va dio, c'est juste que notre petite zone soit belle ici. Alors allons de l'avant et jetons sur une image. On doit mettre la planche de bois en bas, et on va juste traîner ça ici. Je vais mettre l'image sur, euh étagère. C' est un peu trop grand. Allons dire Aspect fit. On y va. Un peu de pétoncles vers le bas. Ici. Effet. On y va. Bougez-le vers le haut. Juste quelques pixels. C' est là où je le veux. Allons de l'avant et juste Ah, fanion de gauche à droite dans le fond et donnez-lui un site fixe. Ok, voilà notre étagère. Allons mettre le logo. D' accord. Juste pour le plaisir, c'est juste pour le plaisir. Cela n'a rien de nouveau avec cette vue de fille. Mais pourquoi construire quelque chose si ça ne va pas être joli, changeons ça pour l'aspect en forme. D' accord ? Et c'est la mauvaise image. Moi, attrape un autre qui n'a pas cette ligne laide dessus. Ok, allons à la,
euh, c'est aller aux actifs ici et juste supprimer notre logo. Il y a une ligne laide dessus. À quoi je pensais ? J' ai juste traîné le nouveau ici beaucoup mieux. Ça pourrait rester storyboard. Et leur il y a le même nom. Donc juste mis à jour automatiquement pour nous, ce qui est cool avec moi. D' accord, donc ça a l'air bien. Mm. C' est un peu plus grand. Allez-y. On y va. Centrez-le. D' accord. Je vais lui donner un fixe en haut dans le menu des épingles là-bas. Et nous allons tourner 15 par le haut et carré et aligner son central dans le récipient horizontalement. Bon, alors on y va. On a un logo. On a ça ici. Nous avons un parchemin de, vous savez, gardez à l'esprit, en fait, que je pense que j'ai fait ça mal ici. Nous ne voulons pas que l'étagère dans le logo à l'intérieur de la vue de défilement elle-même le veuille réellement au-dessus . Donc, on va devoir régler nos problèmes. En fait, parchemin de vous a besoin et je dis au-dessus et il apparaît. Mais donc la vidéo de défilement ici dans le côté gauche,
en fait, en fait, Dragon en dessous il y a là. Maintenant, nous faisons des progrès. Qu' est-ce que ce gars me montre vraiment comment faire des AP ? Eh bien, c'est comme ça que tu fais des casquettes. Tu merdes, et tu le fais de la bonne façon. Donc, euh, les plus élevés avec ils sont toujours bons, mais allons de l'avant et épinglons le dans le top 19. C' est bon. Je m'en fous. Et c'est bon. Et la ligne horizontalement et conteneur, puis l'étagère avec ou la hauteur est encore bonne. On veut juste le traîner vers le bas. Un peu plus haut, juste là. Allons de l'avant et fanions à gauche. À droite, en bas. D' accord. Pas grand-chose. On l'a sorti du parchemin. Toi et, euh oh, mec. Vous le mettez à nouveau à l'intérieur de la vue de défilement. Réparons ça à nouveau. fumées sacrées. Vue défilement vers la droite. Obéissez. Ok, donc le problème, c'est que
quand tu fais glisser des trucs,
ça aime plopper un inscrutable parce que c'est un conteneur de toi. Donc on va devoir faire ça à la dure. Donc je veux que vous cliquiez sur le logo, alors remarquez que ce n'est pas dans le défilement. Cliquez sur le logo. D' accord. Au fait, je suis content que vous ayez vu faire ça tout le temps, et vous êtes comme, que s'est-il passé ? C' est ce qui s'est passé. Alors mettons-le 10 du haut par ici. Je suis sous la règle et 10 du haut. Et disons que 15 du haut, nous allons le faire manuellement. Donc, je ne le glisse pas accidentellement dans cette vision du monde. D' accord ? Alors allez-y et épinglez ce 10 du haut et nous allons l'aligner ici horizontalement. Et puis cette étagère. Allons-y et déplaçons les mortels pour essayer 400. Essayons 500. D' accord, on se rapproche. Il suffit de cliquer. La flèche va toujours là où nous le voulons. D' accord ? Encore une fois. Lorsque vous cliquez et faites glisser et que vous avez un conteneur en arrière-plan, il aime penser pour vous et le déposer là-dedans. Et ce n'est pas ce qu'on veut. Nous voulons cela devant le parchemin de vous. Ok, alors on y va. J' aime ça. Et ce qu'on va faire, c'est aller de l'avant et la même chose que nous avons fait avant, euh, sauf que nous allons désactiver la marge contrainte zéro de la gauche, zéro de la droite, et nous dirons 14 du bas. Et la hauteur est déjà définie. Très bien, on est prêts à y aller. Ok, Donc il y a notre vue de défilement, et ah, nous voulons faire est aussi de jeter une image sur la vue de défilement de notre personnage juste fins de
mise en page, juste pour voir où nous voulons qu'elle soit. Alors allez-y et prenez votre image, vous et remarquez comment il a ploppé dans le rouleau de vous cette fois. C' est ce que nous voulons. Et allons de l'avant et prenons cette image et ah, mets-la à l'un des gars ici dira, Darryl. Et bien sûr, ce serait l'aspect qu'on va faire, c'est qu'on va le redimensionner jusqu'à ce qu'il soit la taille qu'on veut. Et je pense que c'est une bonne taille. Pas plus grand. C' est une bonne taille. Ok, alors ce que je vais faire, c'est que je vais le déplacer vers le bas, et ces pieds sont juste là. D' accord ? Juste là. C' est très bien. D' accord. Et vous remarquez qu'il est derrière. Donc, ce que nous allons réellement faire est ah, cette vue de défilement, nous allons la déplacer devant ces autres éléments. D' accord. Euh juste là. On y va. Donc vous remarquez comment il est maintenant en face. J' ai juste changé la commande là-bas, donc il est là où on veut qu'il soit. Donc tout ce que nous voulons faire, c'est se rappeler, euh, nous voulons nous rappeler que là où son positionnement est de 1 80 ou 96, il a une hauteur de 40 sur 3 97 Ok,
euh, et donc c'est bon. Pour l'instant, nous reviendrons et regarderons ça dans une seconde. Ici Allons-y et allons nous habiller. Donc l'idée est, voici l'idée. Vous avez un tas d'images que nous allons lancer sur la vue de défilement dans le code sur Adam par programme, et ensuite vous pouvez faire défiler cette liste d'éléments. D' accord ? Alors allez à votre vue, contrôleur. Et Ah, au fait, hum, pour qu'on rende ça plus amical pour nous, allons de l'avant et renommons ces images deux chiffres pour qu'on puisse juste le mettre dans une boucle pour. Donc 12, trois, quatre et Rick sera numéro cinq. On a nos personnages ici. Maintenant, allez à votre vue, contrôleur. Et, euh, je vais me débarrasser de ce code standard ici et dans la vue a chargé. Ok, rendons ça un peu plus grand pour toi ici dans le coffre vu chargement. Ce qu'on va faire, c'est qu'on va parcourir les images, créer une image et la jeter à l'écran. Et, euh et c'est ce qu'on va dio. Donc, une chose que je veux capturer est la largeur et la hauteur de l'image. Puisque nous faisons cela par programme, nous n'aurons pas à définir les broches et les contraintes que nous pourrions faire cela problématique qui ne
vont pas . Donc on va régler la largeur et la hauteur, comme ça avec le BCG flottant et laisser la hauteur. Ce sont des constantes vont voir g float. Donc, vous flottez. Retournons et attrapons ça maintenant, ils avec et le nom a changé dessus. Donc ça va, vous savez, euh donc le avec est à 40 dans le plus haut 3 97 Donc 2 43 97 et c'est une frontière parce que nous voulons nos gars soient sur le réel voudrait qu'il soit juste ici. Donc à 43 97. Donc, cela équivaut à 40 dans celui-ci est égal à 3 97 Donc c'est la largeur. Et c'est la hauteur de notre gars ou de nos personnages. Et alors allons-y et jetons-les là-bas. Donc, pour var, X est égal à un. Et alors que X est inférieur ou égal à cinq, droite, parce qu'il y a cinq caractères X plus. De plus, c'est juste une boucle for. Ensuite, on va créer une image. Donc, laissez l'image vous égalera. Je lui donne un nom, qui est ici sous le nom et, euh, comment veux-tu l'appeler ? Eh bien, puisque nous l'avons appelé ah, numéro, c'est assez facile de mettre X là dedans. C' est un à cinq. Donc ça va marcher. Et, euh, alors nous devons créer l'image de vous. Bien sûr, parce que les images ne se déroulent pas seules, elles sont stockées dans une vue d'image. Donc, et ça vous égalera. J' image vue, et on va s'initialiser. C' était une image qui est celle que nous venons de créer. On y va. Et maintenant, ce que nous dio est programmatiquement, c'est que nous avons ajouté en tant que sous-vous. Donc, bien sûr, nous ne l'avons pas encore référencé, alors faisons-le. Maintenant. Créons une sortie de lierre pour notre vue de défilement à I b sortie semaine var. Et nous appelons la vue écureuil de type vous je fais défiler de vous. Donc, nous ajoutons le défilement de vous et ce que nous voulons faire est juste de parcourir les images et de les ajouter l'une après l'autre. Mais nous voulons les ajouter horizontalement. Eso nous allons avoir besoin d'ajouter au changement comme leur positionnement. Donc faire défiler point ajouter sous vous et nous allons dire image vous maintenant je veux que vous pensiez
à ce code comme il est en ce moment. Ok, si on le laisse juste comme il est en ce moment
, ça va les ajouter tous au même endroit et vous montrer qu'on va aller de l'avant et connecter notre contrôleur de vue ici. Allons ah, contrôle glisser à l'histoire au storyboard à la gommage vous et cliquez dessus. Ok, je vais le cacher. Vous ne vous souciez pas de lui. C' est juste un porte-place. Et donc, lançons ceci ici sur notre simulateur et voyons ce qui arrive pour voir si nos images se
chargent même du tout sur la vue de défilement. Ok, comme vous pouvez le voir, il les a tous chargés ici, euh, au milieu de l'écran, au même endroit. Ce n'est pas ce qu'on veut, évidemment. Alors réparons ça. Donc on l'a ajouté au sous-marin. Mais maintenant, nous devons changer la taille et le positionnement de celui-ci, n' est-ce
pas ? C' est ce qu'on va dire image. Donc, après l'avoir ajouté, nous allons dire que le cadre de point de vue de l'image est égal à C direct make. On va mettre le cadre. Rappelez-vous que le cadre est réglé à l'intérieur du haut dans le positionnement, et que le coin supérieur gauche est 00 OK, donc X va être négatif avec. Nous voulons simplement en soustraire certains pour le
mettre, le mettre sur le côté gauche. De plus, nous dirons avec et c'est notre temps constant. Tu as flotté ? On va passer à X ici. L' instance actuelle, l'instance actuelle qui était correcte. Et, euh, alors le blanc que la coordonnée blanche va être, eh bien, regardons là où nous le voulons vraiment. Donc, je l'ai sélectionné ici. Alors je vais à la règle, euh, pourquoi est-ce que
1 96 va bien, 1 96 Donc, faisons le pourquoi 96 C'est la position du pourquoi qu'on veut et le avec ce sera le avec. Évidemment, dans la hauteur va être la hauteur du gars là-bas. Donc tout ce qu'on a fini ici, c'est qu'on dit, Hey, où voulons-nous un poste ? Ce bien, rappelez-vous, nous l'ajoutons à son Nous voulons que chaque élément soit ajouté sur le côté droit des
vues de défilement . Vous pouvez les ajouter. Vous pouvez ajouter des éléments verticalement ou horizontalement, et ils vont quitter l'écran maintenant. Le cadre de votre parchemin de vous ne va pas changer, mais le contenu réel à l'intérieur de celui-ci. Ça va se développer, et ça s'appelle le contenu, comme la taille du contenu. Donc, il y a une taille de contenu et il y a un cadre sur un scrubby, les tailles de contenu , les choses que vous y mettez, combien de temps il est. Et donc ce que nous voulons faire est que nous voulons ajouter des choses horizontalement sur le côté droit pour chacun des personnages, euh, et juste ajouter ces éléments là, et c'est ce que nous faisons ici. Donc je dis juste, Hey, tu sais quoi ? Commençons un peu à gauche. Ne commencez pas juste au milieu du côté droit. Commençons un peu à gauche. C' est pourquoi je mets un négatif dans leur Et ils disaient, Prenez le temps avec, le X actuel. Donc si
c'était le premier élément, ce serait à 40 fois un, qui le mettrait dans la fente numéro un. Ok, c'est juste des maths simples. Si nous voulions lui une fente pour aller bien, ce serait avec deux fois, ce qui se passe ici dans le tableau avec Time Street avec temps quatre. Ça va prendre à 40 et se multiplier sur chacun de ces, et ça va évidemment le déplacer vers le X par ce numéro. Donc on multiplie juste sa position par son avec ok. Et la dernière chose que nous devons faire est lorsque les vues de défilement sont faites, nous devons réellement définir lorsque nous avons fini d'ajouter des éléments du défilement. Mais, je veux dire, nous devons réellement définir la taille du contenu. C' est là que je vous disais, vous devez Il y a une taille du contenu qui dépasse ses limites, donc nous devons définir la taille pour qu'il sache jusqu'où faire défiler et n'est pas la taille du BCG. On va faire une taille, et le avec va être le avec le personnage, juste fois cinq. Parce qu'il y a cinq personnages, c'est comme nous le voulons, et la hauteur pourrait rester la même. C' est donc une vue d'écureuil qui cadre cette taille. Tout ce que nous faisons est de saisir sa hauteur actuelle et de la remettre là pour la maintenir à la même hauteur. Euh, voyons si ça marche, nous pourrions devoir faire quelques ajustements, alors continuons et lançons ça ici. On y va. Et si vous remarquez que c'est défilant, mais il est un peu plus haut que moi, alors je veux qu'il soit ou que tous les personnages sont, mais vous remarquez comment ça grandit. Maintenant, c'est vraiment cool. Regarde. Ça a l'air sympa. En fait. Tu devrais aller approcher cette compagnie et dire, Hey, on veut construire Jonah. Hum ok, donc le pourquoi n'est pas ce n'est pas assez loin, ce 1 96 Alors essayons de 50. Essayons ça. On joue juste avec des nombres ici, parfois avec des vues de défilement. Tu dois jouer avec les chiffres. Il ne fonctionne pas parfois dès la sortie de la boîte est essayer de 70. Bon, on
y va. Plutôt cool. Donc encore une fois, les vues de
défilement sont vraiment bonnes pour montrer quelques éléments comme celui-ci où c'est comme, Est-ce que je veux vraiment une table de vous délégué avec un chemin d'index Fero de cellule et tout ce que je montre
juste quelques choses. C' est une excellente option pour les vues sur les écureuils. Une chose que vous allez aussi dio ce ne sera pas super joli parce que nous devons jouer avec les chiffres, mais vous pouvez aussi aller à votre storyboard principal ici et vous pouvez couper votre parchemin de vous. Et, euh, l'inspecteur des semaines après a activé la pagination sur la pagination. Et encore une fois, ça ne marchera pas parfaitement parce que leurs numéros ne sont pas là. Mais je veux vous montrer que c'est une caractéristique des vues d'écureuil où vous balayez et il s' enclenche en place. Donc, quand il décide de charger ici, si je fais glisser, voyez comment il s'accroche en place. Je vois. Donc, quand vous pouvez faire est que vous pouvez changer le positionnement de ces personnages afin qu'ils soient parfaitement positionnés chaque fois que vous balayez, il en apporte un nouveau sur l'écran, juste au milieu à nouveau. C' est juste jouer avec les chiffres, comme positionner la taille là où vous voulez lui mettre les limites. Des choses comme ça, vous pourriez ajouter un espaceur parce que je suis juste en train d'ajouter une image pour que les images se
touchent réellement . Je n'ai pas ajouté d'espace, mais vous pourriez ajouter un espaceur de la taille de l'écran entier, puis vous êtes en pagination. Sera que cette taille de l'écran et les boutons pression à l'endroit, ce qui est cool. Um, je vais l'éteindre, cependant. Donc, c'est ce que nous avons fait ici dans le contrôleur de vue, c'est qu'on vient d'attraper notre
vue écureuil . Nous avons traversé une boucle de quatre éléments ajoutés aux images comme sous-utilisation sur le défilement de vous. Et puis on lui a juste donné une position dans le parchemin de vous l'un après l' autre. Après avoir pu les mettre n'importe où, j'aurais pu le mettre verticalement ou horizontalement. Je viens de les positionner horizontalement. Et puis nous définissons juste la taille du contenu de la vue
de défilement, qui , bien sûr, est le avec des caractères fois cinq, parce que c'est la durée que nous voulons. Il y a donc une grande utilisation pour les vues de défilement. Il suffit de rejoindre quelques éléments, et là, vous avez vraiment cool. Il y a une autre utilisation vraiment importante pour les films de défilement, et probablement l'utilisation la plus populaire. Et cette utilisation est quand vous j'ai besoin de construire un type d'écran et maintenant tout si elle sur l'écran, donc vous devez faire défiler. C' est un problème très commun, en fait, faites défiler ceux-ci qui n'étaient pas l'utilisation principale pour les vues de défilement, mais maintenant c'est devenu une sorte d'utilisation principale pour les vues de défilement parce que vous voulez afficher tout votre contenu sur le écran. Et donc parfois, même si vous avez des vues empilées et une mise en page automatique, parfois les choses ne tiennent pas à l'écran. Mais tu voulais Teoh. Alors allons-y et, euh, allons faire un nouveau projet, ok ? Et faisons une seule application de vue, et ce n'était pas trop mauvais. On va appeler ça pour moi à l'écran, OK ? Suivant. Ok, donc je veux que vous fassiez attention. À quoi ? On est ce qu'on fait ici. Parce qu'il y a une certaine façon de le faire. Et si tu ne le fais pas, ça ne marchera pas. Euh, alors faites attention. Cliquez sur votre storyboard principal ici. Disons que vous avez un formulaire que vous devez remplir, accord ? Et il ne convient pas à l'écran. On ne va rien faire de joli ici. C' est ce qui est purement c'est purement Ah. Um juste, euh, des contrôles. Ok, disons
que j'ai ce type ici,
et, et, tu sais, peut-être qu'il y a ah, voir que je t'ai, ok ? Et je l'ai traîné ici et disons qu'on le met vraiment long ici. Hum et, ah, tu sais, rendre ça rouge. Joli, rouge. Et disons que nous cliquons sur le contrôleur arcview ici et que nous allons réellement à la règle. Et nous changeons la taille en forme libre sauf si nous faisons la hauteur, genre, 1200 comme hors de l'écran ici. D' accord. A moins qu'on ne fasse une autre vue ici. Ok, rendons celui-là bleu. Ok, rendons celui-ci bleu et faisons une autre vue, d' accord ? Et fera celle-là comme un joli jaune. D' accord. Et alors ce que nous ferons c'est que nous l'épinglerons en haut et à gauche, dans les côtés, et celui-ci fera de même. Dit :
Ah, Ah, en haut à gauche, l'intérieur. Et nous mettrons la hauteur sur celui-ci. Celui-ci sera la même chose. En haut à gauche, euh, à droite. Et puis la hauteur. Et celui-là, nous allons juste aller de l'avant et faire la fosse le long du chemin. Ok, maintenant, allons de l'avant et lançons ça. Voyons ce qui se passe. Ok, donc le nom de cette application me correspond à l'écran. Mais regarde, tu
peux même voir le jaune ? la En fait, moitié du bleu est coupée et tu ne peux rien y faire. C' est un problème très courant. Personne d'autre ne vous apprendra ça. C' est un problème très commun que tu vas sortir ici. Pourquoi je ne peux pas dire tout ce que votre patron voudra à l'écran et vous ne pouvez pas
comprendre ? Eh bien, tu dois utiliser le parchemin de toi. Et donc ce que nous voulons faire. Ok, ce qu'on veut faire, c'est que ça marche, euh, comme il se doit. En fait, je pense que notre petit gars ici a un problème n'apparaît pas à l'écran. Réparons ce premier, hum, espace
supérieur. Espace inférieur. C' est très bien. Mais peut-être qu'on a juste mis la hauteur sur un Peut-être. Peut-être qu'il se rétrécit. Était reconstruire ceci ici et assurez-vous juste qu'il apparaît sur l'écran sont peu de
champ de texte là-haut. Il est là. Ok, donc oui, clairement c'est coupé. Alors, qu'est-ce qu'on fait ? Comment on répare ça ? Eh bien, c'est ce
que le défilement voit le divorce. Alors allons-y. Et Ah, je vais juste supprimer tout ça maintenant. OK, donc c'est supprimer, supprimer, supprimer et élite. Donc, au fait. Peut-être que vous ne m'avez pas vu faire ça avant,
mais j'ai cliqué sur mon contrôleur de vue ici,
et je suis allé à la règle et en fait changer la taille. Peut-être que vous ne m'avez pas vu faire ça avant, mais j'ai cliqué sur mon contrôleur de vue ici, Tu pourrais faire ça. C' est parfaitement bien. Sachez juste que les choses vont être coupées. Ils ne tiennent pas à l'écran. Et donc la seule fois que vous allez vraiment changer la largeur et la hauteur de ceux-ci, pour la plupart, c'est quand vous avez besoin de choses pour sortir de l'écran et de vues de séquestre des unités. Alors allons-y et faisons-le. Hum, donc nous avons notre contrôleur de vue ici. Maintenant, ce que nous voulons faire est à une vue de défilement dessus. Trier l'école de Kevin, d'accord ? Et votre vue de défilement, il doit être. Et c'est Teoh. Eh bien, ça pourrait être n'importe où. Il a juste besoin d'être épinglé. Ok, donc ce que vous voulez faire, c'est vous assurer que les quatre coins de votre parchemin sont complètement épinglés. Si tu ne le fais pas, ça ne marchera pas. Ok, encore une fois, votre vue de défilement. Peu importe si c'est sur les bords de cet écran, d' accord ? Peu importe où il est, il suffit d'être complètement broche de chaque côté, chaque côté. Ok, c'est une règle. C' est la règle numéro un. Donc, je clique sur le menu de la broche. Je vais décoller restreindre la marge. Juste 2000 et zéro. Ok, donc maintenant une vue de scrawl, il obtient sa taille à partir de son sous-contenu sur. Et il y a un certain moyen de faire ça ici dans ce storboard. De façon très spéciale. Donc, la première règle est peu importe où votre vue de défilement se trouve, vous devez épingler les quatre côtés. Il n'a pas besoin d'être sur les bords de sa super vue, mais c'est ce que j'ai fait. Mais les quatre tailles à épingler. La deuxième règle est que vous mettez un vous une vue,
une vue de contenu à l'intérieur de celui-ci, et qu'il doit aller dans les limites entières. Ok, donc voici mon point de vue. Faites défiler vers le bas comme vous pouvez le voir jusqu'aux bords. Ok, donc ça doit traverser tout le rebond. Tu l'as eu ? Ok, c'est la règle numéro deux. Donc, votre défilement, vous devez avoir une vue de contenu. A u je vois qui couvre les quatre coins 100% de la taille et ce que vous voulez faire maintenant pour vos contraintes. Ok, c'est vraiment important. Vous voulez épingler la hauteur, mais pas le avec. Ok, épinglez la hauteur. Nous voulons dire que c'est une hauteur fixe. Tu te souviens ? Il doit être aussi élevé parce que c'est une vue de défilement. Nous connaissons le haut. Peu importe l'appareil sur lequel il va être. On sait quelle est la hauteur parce qu'elle est allumée. On a X objets qu'on doit tenir à l'écran. Donc, vous définissez votre hauteur, qui dans ce cas est de 1200. Donc, le haut est maintenant fixé. Mais vous êtes comme, et bien, qu'en est-il de la pièce critique, c'est sa règle numéro trois. Cliquez sur votre affichage de contenu, puis sur votre vue principale. avez ignoré la visionneuse de défilement, mais cliquez sur
la vue principale , celle qui va être chargée au chargement de l'application. OK, cliquez dessus. Donc, j'ai maintenu la commande enfoncée et je clique dessus et cliquez sur votre menu pin et dire égal avecs. D' accord. C' est comme la vue principale de l'application et puis votre contenu que vous égalez avec ce qu'il va dio est qu'il va correspondre le avec de votre défilement de vous pour être la taille de votre vue principale. C' est très important. Sinon, il ne récitera pas. Donc la règle numéro un était votre vue écureuil doit avoir les quatre sites épingler à quelque chose. Règle numéro deux est votre lecture de votre vue de contenu à l'intérieur de celui-ci. D' accord. Doit correspondre à la taille complète de la vue de défilement. D' accord ? Et puis vous épinglez la hauteur à n'importe quelle hauteur doit être, puis le avec vous épinglé à la vue principale comme égal à. Donc d'accord, donc c'est pour que nous soyons bons. On est bons juste là. Ok, maintenant ce qu'on veut faire, c'est la même chose. Donc on prend notre champ de texte, non ? Mettons-le ici. Alors rends-le un peu plus grand. Disons juste que,
OK, OK, donc nous avons notre champ de texte ici, et puis nous allons Ah, allons l'épingler du haut et allons de l'avant et donnons-lui une hauteur. Et allons de l'avant et aligner horizontalement et conteneur et mettre un vous avez vous ici. Vous, je vois. On y va. D' accord. Et, ah, rendons ce petit peu plus grand ici. C' est l'heure. Nous sommes parfaitement les mêmes que l'autre que nous venons de faire sans. Ok, rendons celui-ci jaune cette fois et on dira, hum, 54 du haut, ok ? Et lui donnera une hauteur. Et ah, et le avec ça va. Et allons de l'avant et alignons horizontalement dans le conteneur et,
ah, ah, allons de l'avant et créons une autre vue. Faites-le comme un bleu, accord. Je suis sûr qu'à ce point nous sommes hors de l'écran, ce qui est très bien. Alors voici notre vue bleue et allons de l'avant et changons-la ici en bleu et nous allons l'épingler
du haut. Donnez-lui un à l'intérieur d'une hauteur. Allons de l'avant et alignons horizontalement. Et les analystes de conteneurs font une autre vue qui descend vers le bas, ce qui est très bien. Et cela, bien
sûr, ne serait pas des vues décolorées. J' essaie juste. C' est un exemple. Vous auriez des formulaires, des contrôles, quelle que soit votre application en tant qu'utilisation d'image, cela n'a pas d'importance. Et allons de l'avant et re sur le rouge maintenant. Oui, on est en rouge. Allons de l'avant et épinglons celui-ci du haut. Donnez-lui un dans la hauteur et, euh, allons de l'avant et aussi, euh, nous allons en fait enlever la hauteur. Allons juste l'épingler en bas. En fait, on
y va. Et envoyons-le horizontalement dans le conteneur. Ok, donc nous avons notre point de vue et ils sont dans un parchemin de vous. Voyons s'il fonctionne dès la chauve-souris, il peut ou non. On verra. Juste des tests. Donc, nous allons voir comment ça ne marche pas parce qu'il y a une autre chose que nous avons besoin dio. La dernière chose que nous avons besoin de dio, ce que j'ai oublié, c'est sur cette vue ici. Nous devons épingler tous les bords. Donc, nous lui avons donné un souvenir nous lui avons donné une hauteur et nous avons fait le avec avec la vue, mais nous avons en fait nous devons aussi l'épingler sur les bords de la vue défilement. Ok, comme bien, assurons qu'on soit là. En fait, oui, ce n'est pas là, alors faisons-le. Maintenant. Allons Ah, sur les bords du gommage. Je t'ai dit que ça faisait partie de la règle, tu te souviens ? J' ai dit, tu dois en faire le plein dans les limites du parchemin de toi. J' ai juste oublié dépendante. Alors allons de l'avant et épinglons ça. J' ai donc pris cette visualisation du contenu à l'intérieur ajouté aux coins du défilement de vous. Laissons-le encore. On y va. Alors regarde ça maintenant. Vous pouvez placer autant de choses sur l'écran que vous le souhaitez. J' ai oublié de me contenter de ça. C' est bon. Donc tu vas mettre autant de choses à l'écran que tu veux. Alors rappelez-vous les règles. Veuillez mettre la vidéo en pause. Et rappelez-vous les étapes pour les règles. Eh bien, si vous n'avez pas mis la vidéo en pause ou si vous l'avez fait ou non, vrai numéro un est lorsque vous placez une vue de défilement sur votre dans votre application dans votre Story Board, peu importe si elle est épinglée jusqu'aux bords de la vue. il Maisiln'a pas besoin d'être épinglé sur les quatre côtés. Maintenant, cela
étant dit, il est très courant de simplement épingler votre vue de défilement à l'air intérieur toute la partie de votre vue, parce que vous voulez que tout ce qui évolue a du sens. droite. Ok, alors rappelez-vous, c'est se souvenir d'une douleur juste. Les quatre bords de votre défilement à travers la règle numéro deux sont que vous avez besoin d'une vue de contenu à l'intérieur de celui-ci, ok ? Et cette vue de contenu doit être épinglée sur les quatre bords de la vue de défilement épinglée. D' accord. Ainsi qu'un lui donnant une hauteur fixe comme contrainte, quelle que soit la hauteur que vous voulez. Et puis le avec doit correspondre à l'avec de la vue principale. D' accord ? Ils ont besoin d'avoir un égal avec. D' accord. Et puis à l'intérieur de votre parchemin
de vous, bien sûr, vous voulez définir votre contrainte et tout l'intérieur de votre contenu, vous sur tous vos éléments. Ok, donc maintenant vous l'avez maintenant, n'importe lequel d'entre vous. Vous avez l'un de vous, ça va maintenant. Ah est un Scrabble sur vous pour tout ce qui est à l'écran. Et rappelez-vous combien d'APS vous connaissez, nous aimions le mode paysage, n' est-ce pas ? Eh bien, regarde ça. Maintenant, vous pouvez faire le mode paysage sur à peu près n'importe quelle application. Si vous utilisez un défilement, soyez de cette façon. Des trucs vraiment cool. C' est la façon la plus courante de l'utiliser. Donc, si vous rencontrez un problème ou que les choses ne conviennent pas à l'écran, vous ne savez pas quoi dio. Peut-être que vous pensez à mettre les choses sur un nouvel écran ou quoi que ce soit. Une vue d'écureuil pourrait être une solution parfaite. C' est beaucoup plus commun. Le premier exemple utiliser les deux sont géniaux, cependant, et de sorte que les vues de défilement prévoient de commencer à les utiliser parce que vous allez les utiliser tout au long votre carrière, et il est logique de le mettre en votre absence et possible. Alors c'est tout. Marquer des déficits plus importants point com Se déplacer.
64. Introduction à l'application: un tout le monde marque prix ici les pentes sourdes dot com et nous allons passer en revue l'application que nous
allons construire aujourd'hui, et ça s'appelle ma nourriture. Donc, en gros, l'idée est que tu n'aimes pas tes voisins. Vous n'aimez pas votre quartier, il suffit de faire le tour, prendre des photos, poster des commentaires de ce que vous n'aimez pas à ce sujet maintenant. Et cette application, il sera tout ici sur l'écran, sur notre téléphone. Ça ne va pas poster sur Internet, pour que les gens puissent voir. Mais c'est vraiment cool. Eso essentiellement juste rouler leur une liste de commentaires et de photos du quartier, et vous pouvez en ajouter de nouveaux. J' avais une photo ici, tu sais, je peux ajouter Ah,
non, ce n' est pas le cas. Et cela ajoutons une photo d'une tarte. Je déteste les tartes. Quoi ? Le monstre ? Pourquoi on a des tartes
ici ? Eso Ouais, je déteste la tarte. Arrête de les laisser à ma porte. Je ne veux pas te rencontrer. Très bien, Donc vous écrivez un commentaire, faites votre description et vous le postez. Et puis il est apparue en bas de la liste juste là. Plutôt cool. Et si tu te demandes, toutes ces photos m'appartiennent ? et ma maison. La réponse est que je ne vais pas le dire. Et donc c'est l'application. Vraiment cool. Tu vas apprendre beaucoup de choses. Tu vas apprendre à,
ah, ah, stocker des données sur ton appareil, comment stocker des images. Tu vas apprendre à recadrer des images et ces cercles, tu vas apprendre à coiffer les choses. Comment ? Teoh Chargez des photos. À partir de votre téléphone,
comment enregistrer des données,
comment encoder et décoder des choses. À partir de votre téléphone, comment enregistrer des données, Tu vas apprendre beaucoup de choses. Vous allez apprendre à utiliser une vue de tableau, une cellule de tableau personnalisée. C' est un grand pas dans la bonne direction et vous aider à devenir un
développeur professionnel de l'Iowa . Alors ne manquez pas cette application et allons-y.
65. Application : MyHood Partie 1: Il a déjà pour se salir les mains ? Je le suis. Parce que c'est Mark Price de Deb pentes dot com et nous allons apprendre à coder et faire iPhone. APS. Comment ça sonne ? Alors passons directement dessus. Ouvrez votre code ex. Vous devriez savoir comment le faire maintenant, j'espère et aller de l'avant et ah, créer un nouveau projet. Je vais le faire moi-même. Il suffit de le tirer ici, dans l'écran. On y va. Et je suis allé déposer un nouveau projet. Et donc ce qu'on va dio, c'est une application à vue unique, d' accord ? Et le nom du produit. Tu peux l'appeler comme tu veux. Je vais l'appeler. Ah, ma capuche. Pistes de développement. D' accord. Et Swift, c'est bien. Univers très bien. C' est tout bon. Ok, conservez-le où vous voulez. Créez un référentiel git pour cela car vous devriez les soumettre sur votre
compte get help afin que vous puissiez avoir des pièces de portfolio pour montrer les gens. Euh, donc ça a l'air bien ici ? Je ne vais rien changer ici. Plongons juste et parlons de ce qu'on va faire avec l'application. On a déjà appris ce que l'AP va dio, alors réfléchissons à ce qu'il faut pour
que ça se produise. Donc, cette fois, je pense que je veux démarrer l'application en construisant le modèle en construisant les données. Je le fais vraiment assez souvent sur beaucoup de mon APS. Je commence avec le modèle, cependant, ces maisons les données vont se connecter et je le casse. Je le décompose de l'interface utilisateur ou me moque Teoh aux données dont l'Abscam besoin. Alors réfléchissons à ça. Donc on sait qu'on va avoir besoin d'un titre et on sait qu'on va avoir besoin d'une description. Maintenant, quant à l'image, c'est quelque chose de vraiment intéressant où l'image va vivre. Eh bien, dans cette application, nous allons réellement enregistrer des images directement dans l'application dans le répertoire des documents de cette application. Donc, hypothétiquement, si vous continuiez à enregistrer des images, votre application deviendrait massive, vous savez, des centaines de mégaoctets et, euh, à l'avenir, vous savez que vous ne feriez pas ceci. Vous stockez votre image est probablement sur Internet quelque part sur un serveur, mais c'est ah, bébé, pas dans la bonne direction. Nous allons donc enregistrer nos images sur l'appareil dans l'application elle-même. Et donc ce que nous devons faire est de stocker le chemin vers cette image. D' accord ? On ne va pas stocker cette image dans une base de données ou quelque chose comme ça. Nous devons donc commencer le chemin vers cela. Alors allons de l'avant et dans votre projet ici, euh, accord. Cliquez sur le dossier et créez un nouveau groupe et créez un groupe appelé Modèle, comme dans Model View Controller et à droite. Cliquez dessus et accédez au nouveau fichier. D' accord. Et on va faire un fichier de Jane Swift, et on devrait appeler ça, c'est leurs messages. Alors appelons ça un post aussi rapide. Ok, on rend ça un peu plus grand ici pour toi et ah, poste
de classe. D' accord. Et pensons aux données que nous voulons dans la classe eso dont il a besoin,
Ah, Ah, un chemin d'image du titre et une description Donc privé,
plus d'image, plus d'image, chemin de chaîne de type à nouveau, rendant les variables privées. Nous sommes donc de bons codeurs, et personne d'autre ne manipule nos données. Ça ne devrait pas l'être. Et ah, le titre va être de type chaîne et ah, on va faire la description de poste. Um, je le trouve. J' ai découvert quelque chose de vraiment intéressant qui m'a causé un problème plus tard. Mais n'appelez pas votre application. N' appelez pas votre description de variables car elle peut réellement entrer en conflit avec la description de
classe sous-jacente . Donc on va l'appeler Post. Nous allons juste couper le disque de post pour une description. Ok, ça a l'air bien. Et puis créons un izer initial. Bien sûr, c'est un besoin classique initialiser er et je dis que nous ne laissons personne créer un objet. Un objet post a les trois d'entre eux rendra nécessaire tant le chemin d'image de type,
chaîne, chaîne, titre du type, chaîne et description de la chaîne de type. C' est OK de mettre la description ici car c'est un nom de paramètre. Et rappelez-vous, la raison pour laquelle nous mettons ces points d'exclamation ici, c'est parce que nous disons à moment
donné qu'ils auront certainement une valeur. Et en fait, puisque nous l'initialisons ici à partir de l'izer initial, nous pouvons réellement les enlever et ah, fondamentalement tant que nous les initialisons et dans l'Isar initial, cela nous permettra de le faire. Donc, en gros, il est garanti d'avoir une valeur si vous le transmettez dans l'Isar initial, donc nous allons le faire maintenant. chemin de l'image personnelle est égal au chemin de l'image et au titre du point auto est égal au titre et la description de l'auto-post est égale à la description. Maintenant, cet air devrait disparaître. Espérons que et là vous l'avez. Donc, nous n'avions même pas besoin de faire le point d'exclamation implicitement débordé. Euh, cet air est juste bon pour aller. Nous disons que nous garantissons absolument qu'ils auront des valeurs parce que nous
les mettons dans l'Isar initial. Si tu n'avais pas ça ici, on a jeté de l'air. Eso cool. Nous avons donc créé une classe pour stocker nos données. Ce n'est pas trop mal du tout, en fait. Nous faisons de grands progrès. Donc c'est cool. Allons à notre storyboard maintenant et faisons des choses alignées là-haut. Voici donc notre storyboard principal point, et voici notre contrôleur de vue. C' est ah, le point d'entrée principal, ce qui est très bien. Donc, nous allons utiliser une vue de table, alors allez-y, tapez
simplement dans la table et ne cliquez pas sur le contrôleur de vue de table. On va juste faire la vue de table elle-même. Nous n'avons pas besoin du contrôleur de vue de table parce que nous gérerons personnellement la
source de données dans le délégué et tout ce genre de choses nous-mêmes. Voici notre vue de table. Il suffit de le faire glisser ici et de le faire glisser ici. Aussi, je sais qu'on va avoir besoin de la bannière bleue en haut, alors faisons-en un U que je vois. Hum, et tu sais, on aurait pu utiliser un contrôleur de navigation et l'appeler, mais ça n'est pas trop complexe. Nous allons juste construire notre propre vue ici, rendre ça agréable de devenir un peu plus grand. C' est donc cette petite barre d'état de la batterie, ne la couvre pas. Et passons à la couleur, qui est juste ici. Et si vous voulez cette couleur, c'est deux e 87 C trois. Ok, donc ça a l'air bien. Je l'aime et juste le faire glisser là-haut et allons de l'avant et épingler ça Donc épinglez le vers le haut. Enlevez la contrainte, les marges vers la gauche, vers la droite. Et, bien
sûr, la prochaine chose que nous voulons faire est la bonne hauteur ? Et donc la dépendance à la gauche du haut vers la droite et lui donner un serré fixe. Donc, pour ressembler à ça sur tous les écrans et il va s'étirer en conséquence. Et maintenant notre vue de table. Allons-y et ah, eh bien, comment voulons-nous faire ça ? Voulons-nous passer du bord de l'écran au bord de l'écran Ou voulons-nous
lui donner des marges ? On peut jouer avec les marges. Essayons ça. Faisons-le. 20. De là, nous dirons 20 du haut ou environ et 20 de là. Donc et dira même 20 du bas. Juste pour le plaisir. Eso Allons-y et faisons-le. Maintenant, je me suis approché. Il était 18 ans. Donc 20 zéro sur la gauche, là sur les yeux droit. Qu' est-ce que tu veux ? Parce que ceux qui évaluent les marges, tu te souviens ? Et puis 20 du bas est bien, et donc cela va l'étirer à travers l'écran, qui est ce que nous voulons. Ça a l'air génial. Et, ah, donc il y a notre vue de table. Qu' est-ce qui manquait d'autre ? Hum, on peut Ah, on pourrait mettre notre logo. Ce sera amusant. Laisse-moi aller de l'avant et prends ça ici. On y va. Retirez ce logo. En fait, nous allons cliquer sur le dossier Assets. Bien sûr d'abord, puis faisons glisser le logo dans. Si ça ne veut pas nous planter, ça n'était peut-être pas bon. Allons de l'avant et chargeons Thea jettent l'
écran de démarrage pendant que nous y sommes et l'icône de la caméra pendant que nous y sommes,
parce que nous allons aussi en avoir besoin. Et bien sûr, vous avez accès à ceux-ci dans le cadre du code source. Donc ça a l'air bien. Retournons à notre storyboard et faisons entrer cette caméra. C' est foutu avec ça. D' abord, ça va être un bouton, , parce que ça ah, tu cliques. C' est logique. J' ai juste traîné un bouton
ici, au fait, et je vais enlever le texte et je vais mettre l'image à la caméra, et je vais juste changer et l'agrandir. Les choses qui ont une bonne taille Oui, ça ne se dispute pas avec moi. Ok, donc, hum, ça me semble bien. Et allons de l'avant et donnons-lui une hauteur fixe et fixe, et nous allons juste le dire huit par le bas et huit par la droite et ça le gardera là où nous
le voulons. Et allons de l'avant et obtenons notre logo juste ici au milieu. C' est juste un logo statique. Les soldats en font une image de vous. Toi, j'imagine et moi, traînez-la ici, d'accord ? Et, ah, c'est un peu grand. Ici, nous allons, le
rendre plus petit et l'image va être logo bannière. Bien sûr, il est étiré nous ne voulons pas que ce soit de bons programmeurs et obéir à la roue de nos artistes et dire Aspect ajustement. Oh, ça a l'air bien. Ça a l'air sympa. Qu' est-ce que tu en penses ? Je pense aussi. Ok, donnons-lui juste un fixe. Ah, dans la hauteur. C' est très bien. On va faire ça avec un peu trop longtemps. On n'en a même pas besoin. Vraiment, euh, je ne veux pas gaspiller de l'espace supplémentaire. Hum, on
y va. Oh, au centre. D' accord. Et maintenant, donnons-lui une hauteur fixe, et ça a l'air bien. Et sortons et épinglons ça. Huit par le bas, ce qui est très bien, et la dernière chose que nous devons faire est juste une ligne. C' est de cliquer sur le menu d'alignement en bas et de l'aligner horizontalement dans le conteneur. Maintenant, je ne l'ai pas vérifié,
mais parce que nous devenons si bons dans les contraintes, je vais supposer que ça a l'air beau et joli. Moz, je clique sur l'assistant éditeur sur le côté droit en cliquant sur Prevue et le
point principal Storyboard Uh, air sympa. air vraiment sympa, en fait. Hum et ah, 5,5 pouces. Ça a l'air bien là-bas, aussi. Bon travail, les gars. Oui. Ok, donc on a ça. On l'a et on a sa table de toi, donc c'est vraiment cool. Je dis que nous ajoutons notre cellule de vue de table, donc tapez le mot dans votre recherche d'objets en bas, tapez la cellule de mot, et nous allons faire une cellule de vue de table. Allez-y et faites-le glisser directement dans votre vue de table, et il plonge juste là dedans. Et, euh, ce que je vais faire, c'est juste mettre une couleur de fond dessus, parce que le blanc est difficile de voir où les limites vont changer ça plus tard. Mais je veux voir quelles sont les limites. Il y a donc les limites. C' est un peu trop petit. Et donc, comment cela fonctionne, c'est que vous créez votre cellule personnalisée ici dans le storyboard. Si vous n'utilisez pas l'application storyboard, vous devez le faire dans un fichier ZIP séparé, puis chargé dans votre code. Mais c'est vraiment pratique de le faire ici dans le storyboard. Donc nous définirons notre cellule sur ce à quoi ça va ressembler. Et puis il va juste le réutiliser et le répéter, ce qui est vraiment cool. Donc nous savons que sur le côté gauche nous avons une image, non ? Alors allons-y et faisons ça et Dragon entre. Et bien sûr, ce n'est jamais assez intelligent pour le mettre à la taille dont nous avons réellement besoin. Et ah, regarde Ok, faisons-en un égal 70 et 70. J' ai juste cliqué sur la règle ici. Au fait, j'espère que vous vous familiariserez avec cette navigation. J' ai cliqué sur la règle. Les attributs permettant de modifier les attributs ont du sens. Euh, ça a l'air bien. J' aime ça. J' aime les mots .
Allons-y. Et ça a l'air bien. Ah, c'est tellement remarqué. Ici, en haut et en bas, il dit marges concernées cette fois il zéro à l'intérieur d'une table de vous vendre. Il y a des marges en haut et en bas, alors que sur l'autre vue, il n'y avait que des marges à gauche et à droite, si vous vous en souvenez. Donc c'est cool. Nous voulions de la gauche, le haut et les droits exactement ce que nous voulons, puis aller de l'avant et lui donner une largeur et une
hauteur fixes . Ça va rester exactement comme ça. Et Ah, ça a l'air vraiment cool. En fait
, , je suis impressionné. Je veux dire, je l'ai conçu, tu sais ? Bien sûr que ça va avoir fière allure. Donc je vais faire maintenant est d'obtenir un exemple. Image. Je vais cliquer sur le dossier des actifs ici et juste jeter un exemple. Image de test. Eso, je peux, euh, voir à quoi ça ressemble. Assurez-vous que c'est ah, venir ensemble. Donc j'ai cliqué sur ce type ici et allons-y était un pont d'eau en baril. Et je vais dire que l'aspect se sent dans ce cas, je ne veux pas que mes images soient vraiment belles et remplissent l'écran entier donc je ne fais pas l'aspect adapté parce que si je fais
ça, ça va laisser un espace supplémentaire et ça va sembler bizarre. Aspect feel est la bonne solution dans ce cas. Donc j'aime ça. J' aime ça. J' aime ça. Et allons de l'avant et ajoutons ses étiquettes maintenant. Et au fait, nous les ajoutons à la cellule. Si vous avez accidentellement ajouté un de ces contrôles en dehors de la cellule, vous devrez le changer parce qu'on ne le veut pas en dehors de la cellule. Voilà votre étiquette. Je vais le faire glisser tout le chemin à travers je vais changer la police pour personnaliser et puis Helvetica nouveau Et ça a l'air correct et je pourrais changer la couleur comme si on avait un
fond blanc et pas un fond bleu je vais changer la couleur too A dark grey Voici un conseil de design pour vous. Dans la plupart des cas, noir est toujours au
noir, noir et blanc est toujours au noir Toujours envie d'aller avec un plus sombre un gris plus foncé Il
semble juste beaucoup mieux que la légère différence pourrait faire toute la différence Eso ah, Il y a un conseil de design de votre part. C'est tout droit de Ah, Designer. En fait, ce ne sont pas seulement mes mots, mais d'accord, donc il y a une étiquette et Ah, on
y va. Il y a ce serait notre multi ligne étiquetée. C' est comme une description qui pourrait avoir ah dire trois lignes. Et donc, euh, tu sais que ça pourrait être comme, Hey, ce voisin est un tel punk. Il explose sa musique de maïs. Le maïs est n'importe qui. Écoutez, les gars, vous êtes même nés dans les coins un peu. Bref, euh, pour ceux d'entre vous savez que c'est le cas. C' est bon. Tu es cool. J' ai soufflé la musique de maïs trop fort. Hum, et ah, je pense à brûler sa maison. La jeunesse comme un voisin en colère. Um, c'est bon. Remarquez comment c'est coupé. Ce n'est pas tout à fait adapté à trois lignes. Donc ce que nous voulons faire ici, c'est Ah, voir cette force automatique juste ici. Passons de la taille de police fixe à la taille minimale, et nous en sommes à 17 en ce moment. Je pense qu'on devrait réduire à 12. Donc, en gros, si ça ne va pas, ça va diminuer jusqu'à 12 ans. Jusqu' à ce qu'il fasse quelque chose en dessous de 12 est tout simplement trop petit. Alors ça va le couper, mais je pense qu'on ira bien. Donc on a son étiquette. On a son image. L' image a des contraintes que les étiquettes ne font pas. Voici notre titre, en fait. L' homme de musique a besoin d'y aller. Cal, débarrasse-toi de ce type. Et, euh, aussi, voici un autre conseil de design. Euh, tu sais, c'est très courant de vouloir que Teoh fasse ça audacieux, non ? C' est un en-tête. Il devrait être audacieux. Vous savez, euh, les designers avec qui j'ai travaillé... suggèrent de ne pas faire ça comme vos en-têtes. Il suffit d'utiliser une taille de police normale. Et puis ce que vous faites sur la taille de la sous-police est en fait la changer. Teoh Une lumière ou italique pour que je puisse changer ça en italique clair, et ça commence à vraiment bien paraître. Cela semble presque audacieux maintenant, mais ce n'est pas trop fort. Ça crée juste le parfait Ah, l' équilibre
parfait là. Il y a donc un autre conseil de conception. Utilisez Teoh régulier et léger. Faites en sorte que vos affaires aient l'air bien. Hum, et alors allons et contraints cette étiquette ici en haut et à gauche, c'est bien, en fait. droite. C' est bien de le faire étirer dans cela. Dans ce cas, nous n'avons pas besoin de lui donner un avec Donnons-lui juste une hauteur, parce qu'il va avoir un flexible avec parce qu'il est épinglé à gauche et à droite. Donc, c'est bien. Et
enfin, enfin, ce gars ici va à la même chose trois du top 8 du,
euh, euh, gauche zéro de droite,
et on va aller de l' avant et lui donner une hauteur. Ok, je vais appeler ça bon. Allons-y et débarrassons-nous de ça. Ah, ce fond bleu ne correspond tout simplement pas. Mais avez-vous vu comment cela nous a aidés à comprendre ce que nous devons faire ? Où est ce contexte ? Hum, c'est
là. C' est sur le point de le changer en, hum, par défaut. Ils ont des fonds de couleur blanche ou claire, ce qui fonctionne pour nous. Hé ! Ça n'a pas l'air sympa, je pense que c'est sympa. Ça a l'air vraiment cool, en fait. Il y a donc notre vue sur la table. Qu' est-ce que tu en penses ? Comment ça a l'air, je pense que ça a l'air plutôt bien. Vous aussi, y, parce c'est vraiment fait. Ce n'est pas mal. Alors allons de l'avant et allons dans notre, euh, notre code, notre contrôleur de vue. Et ce que nous devons faire est de créer une prise de lierre pour notre vue de table. Donc, à la semaine de sortie de notre, euh, nous allons juste appeler cette vue de table de type vous I vue de table. C' est là. Et, ah, vous savez, ce que nous allons faire ici, c'est en fait ajouter un bouc émissaire de cet avertissement de mémoire. On va aller de l'avant et, hum, ajouter les protocoles des délégués ou les délégués du protocole ou comme vous voulez le prononcer. Donc, vous je tableau voir délégué. Donc, fondamentalement, comment cela fonctionne est si vous avez une vue de table. Alors comment ce travail est table ? Non. S' il y en a un en jeu, un en cours d'exécution Ce qu'il va faire, c'est appeler des fonctions. Ça va appeler le chemin d'index auto Arrgh. Ça va appeler le nombre de lignes et de section. Il s'attend à ce que certaines fonctions appellent. Il s'attend à appeler ces choses,
cependant, depuis, mais il ne va pas appeler dans sa propre classe comment fonctionnent les délégués et les protocoles. Comme vous le dites. J' implémente la réunion de protocole, je promets d'implémenter les fonctions que vous cherchez pour Mr Table View et Mr Table View dit, Oh, vous avez mes fonctions. Super. Je vais les appeler et vous donner des trucs pour que vous puissiez les utiliser. Donc, ce que nous voulons faire est d'implémenter les fonctions pour la table blanche de votre délégué afin que la table de vous puisse les appeler, et que cela puisse fonctionner. Donc, pour que nous puissions transmettre des données et des choses comme ça. Et la raison pour laquelle ils ont fait ça c'est parce que, euh, ils ne voulaient pas que vous ne puissiez pas avoir accès aux choses dont vous avez besoin pour faire fonctionner une table. Ils étaient comme des fonctions ouvertes que vous pouvez utiliser pour effectuer des opérations, et donc ils doivent être dans des protocoles que vous pouvez implémenter d'autres classes afin que n'importe quelle autre classe puisse les utiliser. Et c'est un peu complexe d'un sujet pour toi. Ne le comprends pas complètement. C' est très bien. Sachez juste que pour implémenter ces protocoles, vous mettez une virgule après la classe dont il hérite. Et puis vous implémentez le protocole juste là, et nous allons implémenter deux protocoles. Ok, Vous une vue de table, délicate et nouvelle source de données de vue tableau. Donc nous disons, Hey, c'est le délégué de la table de vous. Donc il va écouter certaines fonctions. Et aussi Hey, c'est là que vous obtenez vos données à partir du Nous devons définir nos données ici aussi, aussi. Et Apple a choisi de les mettre dans deux autres qui auraient pu le mettre dans le même
ensemble. Et Apple a choisi de les mettre dans deux autres qui auraient pu le mettre dans le même Je n'ai jamais utilisé l'un sans l'autre. Alors, euh, mais peu importe. Hum, donc on a ceux qui sont super. Donc l'autre chose que nous avons besoin de dio est ah se vue table. Donc, l'appelant vue de la table et dire déléguer soi égal. Alors rappelez-vous comment il a dit que M. Table avait vu, cherchant un délégué à appeler, il est comme, Hey, qui va être le délégué ? Et je suis celui qui est le délégué et qui a mis en œuvre ces fonctions. Je vais les appeler pour toi. Et donc il le cherche. Donc on doit dire, Hey, je suis le délégué. Mon contrôleur de vue. Ce type ici, c'est le délégué et il écoute. C' est tout ce que nous disons dans la vue de tableau source de données point est égal à soi. Et ah, même chose avec la source de données. Où sont les données ? Quoi ? Je le porte. Je vais t'aider avec ça. Et Ah, c'est vraiment cool. Le problème est ce que vous voyez cet air ici est que nous n'avons pas implémenté le, um nous n'avons pas implémenté les fonctions qu'il nécessite, mais je voulais vous montrer une autre façon. Donc, nous faisons ça dans le code ici. Vous pouvez également le faire à partir de votre storyboard. Donc, si je sélectionne ma table de vous ici, euh et ah, j'ai coincé mon contrôleur de vue en fait vice versa. Si je sélectionne mon contrôleur de vue que ma vue de table, je pense que je sélectionnais la cellule. Euh, OK, donc tu vois cette vue de table juste ici ? Quoi ? J' ai aussi dit en passant, ce que je viens de faire, c'est que j'ai connecté ce point de vue de table. J' ai juste cliqué et traîné avec le contrôle glisser. Je suis allé comme ça. Contrôle de la glisse. D' accord. Quoi qu'il en soit, cliquez sur votre vue Tableau. droite. Cliquez dessus et Ah, voir comment il dit source de données et délégué. Vous pouvez faire glisser ceux-ci à votre contrôle ou dire, Hey, cela appartient à la source et ceci dans les délégués juste là aussi avec cela étant dit, je reçois un peu bizarre, Uh, fatigué ou sanglant de, ah de faire ce genre de choses dans les storyboards parce que ce qui finit par se passer et maintes fois, c'est que tu oublies et c'est difficile à déboguer. Difficile de savoir où est juste ici dans le code. C' est dans ton visage, tu sais que tu l'appelles. Donc, euh, j'aime faire ça autant que je peux entendre dans le code. Donc, c'est vous pouvez le déboguer et le suivre. Nous devons donc aller de l'avant et mettre en œuvre certaines de ces méthodes de délégation. Ok, donc l'un d'eux que nous devons faire est le nombre de sections et la vue de table. D' accord. Remarquez comment juste fait ça pour moi automatiquement. Vraiment gentil. Eso une section est juste Hey, combien de façons logiques différentes vous voulez séparer vos données et dans la plupart des cas, la plupart des APS que j'ai jamais des capacités. Tu en as toujours un. Mais dans certains, j'ai construit plusieurs sections. Et donc, comme, vous savez, si vous l'étiez si vous construisez comme un Pokémon à et que vous vouliez séparer tous les Pokémon par type, comme un feu d'herbe, quoi que vous puissiez, vous pourriez faire différentes sections, et chacun peut avoir daté un tas de rose de table dans sa propre section. Mais dans notre cas, nous ne rendrons qu'une seule section, accord ? Et, ah, en passant,
cela commence par le nombre de sections et la vue de table. C' est le nom de la fonction. La plupart Ces autres commencent par la vue de table de mots afin que vous puissiez voir tous ces. Ça ne s'afficherait pas, au fait, moins que nous ayons mis en œuvre ces protocoles au-dessus d'eso. Il y en a quelques-uns qu'on doit avoir. L' un est le chemin d'index auto pharoah et ce que cela nous dit, Ok, ce qui nous dit,
c'est c'est que
vous avez un tas de données que vous voulez montrer chaque fois que vous voulez montrer des données à l'écran. Créons une cellule, une cellule de vue de tableau et mettons des données dans et montrons à l'écran. Donc tu dois livrer une nouvelle cellule à chaque fois et dire, Hey, quelles données veux-tu que je montre dans cette cellule spécifique ? D' accord. C' est donc la première chose que nous devons faire. On a aussi besoin de Teoh. Faites-en un peu plus ici. Nous devons faire défiler vers le bas et le trouver ici. C' est bon, celle-là. Hauteur du chemin d'index de ligne. Il veut connaître la hauteur de votre cellule. Ok
, , donc si on va à notre tableau principal et qu'on regarde notre cellule sur le côté
droit ,
on sait qu'il fait 87 pixels de haut. Ok, alors revenons à notre contrôleur de vue ici, et ah, retournons 87 0.0. Ok, hum, maintenant, dans l'Iowa de 8 ans et plus, si tu veux. Si tu ne veux pas mettre, hum, une hauteur fixe ici. Ah, et tu voulais être plus flexible et tu veux ton genre, par
exemple, tes étiquettes. S' il y a beaucoup de texte, vous voulez qu'ils grandissent et que des choses comme ça vous pouvez réellement vous débarrasser de cela. Et ce que vous pouvez faire est que vous pouvez dire tableau de vous point estimé hauteur de ligne et ensuite vous lui donnez juste une hauteur estimée, donc il a une sorte de base à partir de. Dans ce cas, ce serait 87. Et puis, ce que vous faites, c'est que vous concevez vos contraintes dans votre storyboard, afin qu'elles soient flexibles. Donc vos étiquettes félicitent. Oh, et rétrécir et ensuite ils changeront en conséquence. On ne va pas faire ça ici. Pas aujourd'hui. Donc, pas grand-chose. Je voulais juste te faire savoir que tu peux faire ça. Vous pouvez avoir estimé et grandir et rétrécir. Vous devez configurer vos contraintes d'une certaine façon pour le faire. Et, euh donc nous avons Heifer Road et nous attendons le chemin de l'index Self Une ligne et le chemin suivant. Maintenant, ce qu'il nous faut, c'est, ah, nombre d'entre nous ont besoin d'une table de vous. Nombre de lignes dans la section. Donc, le nombre de sections dans le tableau est le nombre de sections que vous avez le nombre de roses chaque rangée que vous allez avoir dans chaque section où nous n'avons qu'une seule section. Et donc ce qu'on dit c'est, hey, combien de lignes allons-nous montrer ? On n'a pas encore un bon numéro pour ça. Donc, ce que nous devons faire est d'ajouter les données pour cela. Donc nous faisons une sauvegarde de nos, euh ,
messages ,
euh ,
égaux, et nous allons juste initier tout de suite ici comme un tableau vide. Donc on va avoir, hum, tableau de post. Chaque fois que vous faites un post, nous allons l'ajouter au tableau. a du sens, non ? Et donc le montant de la quantité totale de cellules devrait toujours être égal au nombre total de postes. Fais du sens. Alors, qu'est-ce que tu penses qu'on devrait mettre ici ? Si vous avez dit que le nombre de points de retour des messages, vous auriez raison. Nous devons retourner le nombre total de publications qui sont dans notre vue de tableau. C' est tout à fait logique. Et Ah, donc nous avons eu le nombre de lignes et la hauteur de section pour la ligne et le chemin suivant Self a écrit et attendu. Il y en a un ici qui n'est pas nécessaire. Je vais vous montrer quand même,
mais c'est ah,vue
de table,
et il a sélectionné Rola et le chemin suivant. Je vais vous montrer quand même, mais c'est ah, vue
de table, Et c'est ce que vous faites lorsque vous voulez sélectionner une ligne à charger. Quelque chose Une nouvelle vue de nouvelles données. On ne va pas faire ça ici. Ah, et ce Ah, dans cette application. Mais c'est ce que vous implémenteriez lorsque vous sélectionnez une ligne et qu'il vous emmène
ailleurs . Dans notre cas, nous allons juste montrer les données, et, euh, nous ne pouvons pas les éditer maintenant. Et enfin, tu es probablement genre
, , pourquoi on air Selvan ici ? Eh bien, il nous cherche de retourner une table de vous vendre. Ok, mais ce qu'on doit faire, c'est créer une vente sur mesure. Donc, si vous avez remarqué ici dans le storyboard principal, nous avons mis l'image dans les étiquettes ici. Mais comment pouvons-nous obtenir le code qui parle au tableau du magasin à ces données ici ? Eh bien, vous avez l'habitude de cliquer et de faire glisser les vues orteil. Je suis des points de vente, mais nous n'avons pas le moyen de le faire. Donc, ce que nous devons faire est en fait de créer une table de vue personnalisée habituée de vous vendre. Alors allez dans votre dossier ici, votre dossier principal dans un nouveau groupe. Nous devons appeler celui-ci l'un de vous chaque fois que j'écris un code de vue personnalisé. Je l'ai mis dans le contrôleur de vue du modèle de dossier View. Je vais juste arranger ça. Et donc il y a notre dossier de vue Faisons un nouveau fichier et allons à la source cette fois. Classe tactile cacao. D' accord. Et allez-y et changez ça pour vous. Cellule de vue de la table. D' accord. Et la classe, vous pouvez juste l'appeler Post sell parce que c'est, ah, la cellule postale qui va avoir toutes les choses dont nous n'avons pas besoin pour créer un fichier zip parce que nous avons déjà créé la vente à côté de notre storyboard. Pas grand-chose. Alors cuisiner ensuite et puis créer et assez facile Nous n'avons pas besoin de cette fonction ici. C' est le réglage quand il a sélectionné et, euh, pas différent quand vous voyez avant sauf ici nous héritons de vous, je vue de la table. Donc, c'est ceci est une classe personnalisée. Tu feras ça tout le temps. Si vous n'écrivez pas fréquemment des classes personnalisées sur vos vues, probablement pas le faire de la meilleure façon, parce que le meilleur moyen est toe est due module Repose le meilleur que possible sous-classe et maintenez votre logique pour ces vues à l'intérieur de ces classes. Donc, à I b semaine de sortie var et nous savons qu'il y a une image, non ? Alors appelons simplement cette image de poste de type vous j'image vue d'ailleurs. Il est courant pour certaines nuits que de nouvelles personnes vous laissent accidentellement l'image. Ça ne marchera pas. Ça ne va pas te donner ce que tu veux. Image d'utilisation. Maintenez les images, mais les images ne fonctionneront pas sur votre écran sans une vue d'image. Et allons de l'avant et créons les autres bar de la semaine. Et c'est ah, étiquette de
titre, droit de type vous j'étiquette et une semaine de plus de notre et ça va être, euh, ce qui dit étiquette de bureau de type votre étiquette pour description. Et il y a nos points de vente I B plutôt cool, en fait. Et ah, alors allons-y et connectons-les. Mettez votre storyboard principal ici et ah, voyez-vous cette cellule sur laquelle on vient de cliquer ? Ok, on vient de cliquer sur la table de vous vendez. Allez ici sur le côté droit, cliquez sur le rectangle ici, l'inspecteur d'identité, et changez votre classe pour publier la vente. C' est vraiment important. Si vous ne le faites pas, vous ne serez pas en mesure de reconnaître que ces points de vente racontaient essentiellement le storboard. Hey, c'est une cellule personnalisée, et on doit l'utiliser. Donc maintenant, si vous faites un clic droit sur votre cellule ici. Vous verrez les étiquettes de titre juste ici pour que vous puissiez cliquer dessus et simplement faire glisser le curseur vers le titre . L' image de la publication s'est glissée vers l'image de la publication et l'étiquette du bureau. M. Je passe à la description assez facile que c'était aussi facile. D' accord, si facile. Pas grand-chose. Euh, aussi pourquoi on est ici sur cette cellule. Allons au séparateur. Euh, en fait, la table voit cette table de votre ici. Allons à notre séparateur et mets-le à zéro. On ne veut pas de séparateurs Perrigo, et ça a l'air bien. Ok, donc il y a encore une chose qu'on doit voir sur notre portable, cliquer sur toi-même et aller l'identifier. Et, euh, quand vous créez des cellules de vue de table, il est utilisé encore et encore. Imaginez ceci. Imaginez si vous aviez ah, 1000 lignes. Beaucoup de données sont affichées. Pensez-vous qu'un iPhone ou un téléphone mobile puisse gérer 1000 lignes en mémoire ? Probablement pas. C' est beaucoup. C' est beaucoup de vues. Ça crée un souvenir. Donc, ce qu'il fait est quand les vues sortent de l'écran, il les prend et les réutilise et les renvoie à l'écran. Donc vous n'avez peut-être que, genre, 30 ou plus jamais en mémoire, et ils continuent juste de vous obtenir re. Donc, vous devez avoir une nouvelle utilisation identifier dire, Hey, cette cellule est de ce type et je veux l'utiliser à nouveau. Donc, par
exemple, si vous l'aviez fait, disons trois sections différentes, mais elles avaient toutes trois styles de vente différents. Eh bien, vous ne voulez pas réutiliser la mauvaise cellule et mettre les mauvaises données, et cela n'aurait pas de sens. Donc on doit juste lui donner un
I.D en disant, Hey, c'est ce type de cellule pour qu'on sache quel type de données y mettre. Donc identifier ici va être appelé la même chose est le nom de la cellule post de classe. D' accord. Et, euh, maintenant allez à votre contrôleur de vue et nous allons écrire du code que nous allons dire, hum, si la cellule est égale table view dot de Que cellule réutilisable avec identificateur. Rappelez-vous, c'est
ce qu'on appelle la cellule post. Je vais dire, en tant que post self, parlons de ce qui se passe. Donc, ce que je suis ce que fait la vue de table est quand vous arrivez à vendre pour sur le chemin suivant. C' est ce que je te disais à ce sujet. Est-ce ce que c'est quand il réutilise ces cellules ? Alors tu appelles ta table et tu dis, Hey, tu dois vendre pour moi. Si vous remplissez mon chemin, je vais le réutiliser, et je vais mettre à jour les données qui sont à l'intérieur.
66. Application : MyHood Partie 2: Hé, tout le monde, Mark Price. Ici, Deb pentes point com Et nous sommes ici pour la conclusion excitante de mon capot, et il s'avère assez bon jusqu'à présent. Je dois dire que
c' est là qu'on s'est arrêté, si vous vous rappelez à certains d'entre vous qu'il y a 15 secondes. Pour d'autres, ça fait quelques jours. Donc, pour ceux qui ont été quelques jours, vous devez être revêtement beaucoup plus souvent que cela. Si tu veux faire ça, fais ça tous les jours. Donc, nous avons notre vue de table avec des données de test, et cela a l'air bien. Les images sont un peu grandes. On ne sauve pas d'images et de choses comme ça, , mais on n'a pas vraiment un moyen de créer ces images de toute façon, parce qu'on l'a chargé du téléphone. Et donc, allons de l'avant et créons notre contrôleur de deuxième vue. Alors commencez à faire exactement ça. Alors allons de l'avant et créons un nouveau groupe ici appelé Controller, Bien
sûr, contrôleur de vue
modèle. On l'a terminé, accord ? Et allons-y, mais le contrôleur juste là et je vais aller de l'avant et faire glisser mon contrôleur de vue là-dedans . Et en fait, ces storyboards ici vous pouvez les mettre à votre vue, parce que leur vue euh, c'est du code. Et, euh, et l'interface elle-même qui pourrait tous être classé comme la vue. Et il y a donc notre premier contrôleur de vue. Créons un nouveau. Donc un nouveau fichier, j'ai juste cliqué dessus. Coco touch class est parfait, et celui-ci doit hériter de vous. Je vois le contrôleur. Et appelons simplement ceci ajouter post V C. C'est un peu commun dans IOS pour mettre fin à votre vue. Les noms des contrôleurs, les lettres V. C ne veulent évidemment pas écrire le contrôleur de vue avant. Je ne sais pas pourquoi Apple met ça là pour vous, mais fondamentalement à V. C au contrôleur de vue de fin, très parlant de ce que c'est. Cliquez sur Suivant et cliquez sur Créer. Ok, donc on a notre contrôleur de deuxième vue. Ça a l'air bien. Je vais aller de l'avant et
me débarrasser du code standard là-bas,
et je vais m'en débarrasser et entrer dans notre mot principal de l'histoire et créer uncontrôleur de
seconde vue. code standard là-bas, et je vais m'en débarrasser et entrer dans notre mot principal de l'histoire et créer un Et tout ce qu'on a à faire, c'est chercher en bas juste ici. Donc, visualisez le contrôleur et faites-le glisser sur l'écran. Ça a l'air super. Et, ah, on peut même créer le Segway juste ici. Alors prends ton bouton. Il nous permet de cliquer dessus. Nous devons zoomer et aller de l'avant et contrôler glisser ici vers votre contrôleur de vue et juste cliquer sur montrer pas grand-chose, d'
accord . Et sur le Segway cliquera dessus et on lui donnera de l'air non identifié, et ,
euh, j'aime juste l'appeler comme la vue que je vais voir. Donc, je vais appeler ce post d'annonce V. C. Et ça a l'air superbe. Une chose de plus lorsque vous avez sélectionné ce nouveau contrôleur de vue et cliquez sur l'
inspecteur d'identité ici ce rectangle et changez cela à votre nouveau contrôleur de vue de publication d'annonces. De cette façon, nous pouvons connecter des points de vente et des choses comme ça. Maintenant, ce dont nous avons besoin, c'est la question. On a besoin d'un moyen de revenir en arrière, alors j'annule. Mais dans nous avons besoin, um un endroit pour l'image pour montrer que nous en avons besoin lorsque vous appuyez sur cette image, il ajoute, vous
permet d'en ajouter une nouvelle. Nous avons besoin de quelques champs et d'un bouton pour faire le post et peut-être un titre en haut. Nous avons donc besoin de quelques contrôles. Voici donc ce que je vais dio est en fait dormi cette belle vue bleue ici et cliquez
ici et puis cette commande V à payer. Donc je commande C commande V pour le coller ici et, ah, nous allons nous débarrasser du logo ici. Et ah, débarrassons-nous de la photo ou de l'appareil photo et sortons et mettons une étiquette juste apparaître
en haut . La plupart centrent ça ok, et, euh, on
y va. Et nous allons juste donner droit à ce faire nouveau post qui semble bon pour moi et il correspond, sait changer orteil blanc. Donc je vais cliquer sur la couleur et changer le blanc orteil. Et nous allons le changer de système à tenu qu'il pourrait nouveau un peu plus grand maintenant. Alors rendons ça plus blanc. Ça a l'air très bien et OK, alors passons à notre menu de broches et nous allons aller de l'avant et épingler huit par le bas , et nous allons lui donner une hauteur dans une hauteur pour qu'il reste comme il se doit. Et puis allons de l'avant et les sénateurs horizontalement, donc c'est juste au milieu, et je pense que nous avons peut-être oublié d'épingler ça. Peut-être pas. Jetons un coup d'oeil. Eso il a transporté avec elle la hauteur mais il n'a pas porté sur les contraintes. Donc, quand nous l'avons copié Donc, nous allons cliquer sur le menu de la broche, désactiver les marges contraintes Cliquez à gauche en haut et à droite. Et je pense qu'on est en affaires. Il y a donc notre titre haut. Nous avons besoin d'un mais là-dedans. Donc je vais taper le mot mais court pour bouton. Et je l'ai mis ici à l'extrême gauche. Et nous allons changer le texte pour annuler et changer la police Teoh, Hellenic et nouveau. Et ce que je vais faire est en fait changer la couleur de l'orteil blanc, joli petit bouton d'annulation. Et, euh, je n'aime pas comment ça se concentre là. Donc ici, si vous regardez votre contrôle sur votre bouton, je peux cliquer sur l'alignement à gauche et, euh, je l'enregistre. Assurez-vous de sauver beaucoup tout le monde. Donc, quand votre programme se bloque, surtout avec le code X, euh ,
sept, ce qui se bloque beaucoup, que vous avez encore vos affaires. Ok, donc on a un titre. Je dois annuler, mais ça a l'air super. Allons de l'avant et mettons notre image ici et ah, on
y va. Et allons de l'avant et dire à 40 par 2 40 Un carré parfait. Nous allons en parler à propos de qui je l'aime et,
ah, ah, allons de l'avant et cliquez sur le menu d'alignement et nous allons le centrer horizontalement dans le conteneur. Nous ne voulons pas verticalement et dit, Nous voulons le menu pin. Allons-y et disons que 35 du haut est bien et donnons-lui un fixe avec et une hauteur
fixe, puis allez-y et l'échelle sont changées. Je suis cliquez sur l'image et ici, puis cliquez sur l'aspect sentir. Je veux que l'image se sent complètement et nous pouvons définir l'exemple Image ici. Juste pour qu'on ait quelque chose là pour l'instant, et ça a l'air bien. Maintenant Peut-être que vous demandez comment touchez une image pour charger un bouton ou pour charger les choses du
sélecteur d'image comme ça. Ce que je vais vraiment dio est jouée. En fait, beaucoup de gens font ça. n'y a rien de mal à ça. Il y a beaucoup de façons pour Teoh de cuisiner un poulet pour éplucher un chat pour battre une chauve-souris. Tu sais, je dis que je ne sais pas ce que je dis. Et, euh donc j'ai pris un bouton et je l'ai traîné ici, ok ? Et je le traîne ici, accord ? Juste comment il est simplement glissé à la même taille que la vue de l'image. Et assurez-vous sur votre côté gauche ici qu'il est en dessous sur l'écran. Donc c'est cliquable. Et ce qui va dio est va changer le texte en une belle couleur orange. On va faire disparaître ça, donc ça n'a pas d'importance. Mais voici l'orange si tu le veux ,
et ,
et
je vais la changer pour la nouvelle Helvetica et la rendre plus grande. Et faisons-le dire, hum, plus ajouter le choix. C' est ce que les boutons vont dire. Je l'aime bien et le choix et ne ferais pas quelque chose de amusant. Sélectionnez votre bouton et votre image et sélectionnez votre menu de broche et dites égal avec les
hauteurs égales . Puisque vous avez déjà défini un avec et haut sur votre image,
vos boutons vont se conformer,
ce qui est vraiment agréable, puis sur votre menu d'alignement, Il suffit de cliquer sur les centres horizontaux
et les centres verticaux et encore une fois, puisque les images déjà disposées votre bouton s'aligneront et se conformeront. Et, euh, c'est bon d'y aller. Alors allons de l'avant et créons nos champs. Voici les champs de texte, et on va le faire glisser ici, et on va le faire glisser vers la gauche, et on va le faire glisser vers la droite, et ah, je n'aime pas la façon dont il
regarde. Um, je vais le changer. La houle. Qu' est-ce qu'on veut faire ici ? Ce n'est pas trop mal. On quitte cet endroit. Titulaire, entrez le titre. Ok, escouade et centre ça. Je vais changer
la police Teoh Helvetica nouvelle et j'aime ça. Je pourrais changer la couleur de la police en gris foncé. Vous ne pouvez pas le voir encore, mais voyons si ça arrive. Oui. Ça a l'air bien encore. Grays ou c'était sympa. Et c'est un peu, hum, petit, je pense que j'aimerais qu'il soit un peu plus grand, je pense que, euh, ouais, allons le rendre plus grand. Ce qui est actuellement à cette trentaine. Passons à 40 maintenant. Il ne vous permet pas de faire glisser ces contrôles ici, vous devez
donc définir cela dans les contraintes Faisons ça maintenant. Allons-y et donnons-lui une hauteur de 40. Et, euh, eh bien, fanion du top 25 va bien. Et de la gauche et de la droite. Très gentil. D' accord ? Et donc ça a l'air bien. Allons de l'avant et il suffit de cliquer dessus et de contrôler. Voyez ou commandez C Command V pour en créer une autre et faites-la glisser juste là. Et appelons-le ça, hein ? Entrez la description. D' accord. Et voyons quelles contraintes transportées ici. Ça nous a donné la taille, mais ça ne nous a pas donné les autres, et c'est difficile. Alors faisons 25 du haut et zéro de la gauche et de la droite européenne ? Et ce sont les marges, bien
sûr. Et donnons-lui une hauteur de bien, en fait, ne lui donnez pas un haut. Il a déjà la hauteur séparée là, Donc qui semble bon. Et maintenant, nous avons besoin d'un bouton. Alors ajoutons un bouton, et ça irait ici, et ce que je vais faire est juste d'enlever le bouton mot pour faire,
dire, dire, faire du post et changera ce Funt en Helvetica nouveau, et nous allons changer la couleur de fond à ce beau bleu et encore une fois que le bleu est trop e 87 c trois et ne change la couleur du texte Toe Blanc. Ok, et il y a la couleur blanche et rendons ça un peu plus long. Ça commence à avoir l'air bien, d' accord ? Et donc ça me semble bien. Um, usine. Il suffit de le mettre comme ça et allons de l'avant et cliquez sur le menu de la broche. Donnez-lui un avec et battage médiatique et dira 25 du haut. Cela me semble bon et heureux et cliquez. Ajoutez trois contraintes, puis dans le menu d'alignement, modifiez-la horizontalement et conteneur. Maintenant, regardons notre aperçu et voyons à quoi ça va ressembler. L' écran. Ça devrait être OK si on faisait tout correctement. C' est plutôt beau pour moi. Je pense que c'est le cas. Au moins, euh, ouais ,
eh bien ,
tu sais, faisons le bouton. Tu sais quoi ? Faisons le même bouton que les autres choses. Ok, alors allons-y et partons avec ça jusqu'à 25 et, ah, faisons juste la même chose que nous faisons avant sur l'alignement gauche et droit. Fais juste ça. Et maintenant regardons son aperçu. Je préfère ça ? Qu' en pensez-vous ? Peu importe ce que tu penses parce que tu n'es même pas là. Je suis là. Tu es, genre, dans le futur, et je suis dans le passé. Donc c'est ce qu'on fait et Ah, ok, donc ça a l'air bien. Avons-nous tous les contrôles dont nous avons besoin ? Image. Mais dans les champs faire post. Je pense que nous avons tous les contrôles. Il est temps de commencer à écrire un manteau. Allez-y et ouvrez votre assistant éditeur ici. Passez de Prevue à automatique et ajouter post V C. Et ce que nous voulons faire est de cliquer sur ce bouton ici et de contrôle glisser vers le bas ici. J' aime mettre les actions au bas changement en inaction, et on va appeler ça « make post », mais dans pressé et ah, par ici. Sélectionnez votre bouton d'annulation et rat contrôlé. Ne fais pas ça. C' était le bon commandement. Cliquez dessus et contrôlez glisser vers le bas et modifiez-le en action. Et allons-y et appelons celui-ci annuler. Mais dans la presse et allons mettre ces points de vente ici pour rendre mon manteau un peu plus petit ici pour qu'on puisse ajouter ces choses. D' accord. Alors allons-y. Et ce, euh, M. a eu le choix de l'annonce, mais dans, hum a besoin d'avoir une action aussi. Alors ajoutons ça ici. On va le changer en action et l'appeler Ad Pick, bouton pressé et ok. Et puis cette image ici, nous devons commencer les points de vente afin que nous puissions changer l'image. Donc, je vais appeler cette image de poste et allons chercher ces champs. C' est ah, champ de
titre. Ceci est le champ Description. Ça me donne du chagrin. On dirait un bug. Ou j'ai fait quelque chose d'idiot parce que créer un espace ici. Essayons encore ça. Glissé ici et appelons ce champ de description. Très bien. Ok, donc j'ai l'image que c'est OK. Et, euh, je pense que ce qu'on veut, en fait, laisse-moi réfléchir à ça. Quand vous cliquez, vous ajoutez, mais dans um, ouais, ce n'est pas trop mal. J' aime ça. Alors qu'est-ce qu'on va faire ici ? Voyez comment cette annonce lorsque vous cliquez sur ce bouton de sélection d'annonces que nous voulons faire est de masquer ce texte, le
faire disparaître. montré l'image à la place, comme nous ne voulons pas qu'un haut de l'image semble un peu laid ici sur le côté droit, je vais changer n'importe quel objet pour vous je bouton parce que nous savons quoi bouton, non ? Et ce que nous allons à Dio, c'est juste dire l'expéditeur, le titre du set. Et, euh, on va définir le titre de l'état normal pour être vide. Tout ce qu'on dit,
c'est qu'une fois que tu as ajouté une photo,
rendons ce titre vide. qu'une fois que tu as ajouté une photo, Et je ne voulais pas cacher le bouton parce que je voulais encore taper un peu, mais je voulais ressembler à un caché. Donc, si nous mettons juste le titre à vide, il semble bon comme neuf. Il y a beaucoup de façons différentes de faire les choses dans la programmation Iowa S et M en général, donc je pense que nous avons tout connecté. Alors allons et fermons notre assistant rédacteur en chef. Allez à votre post d'annonce V. C et écrivons du code. Je vais nettoyer des choses ici. Je nettoie toujours mon code. Je ne supporte pas les vêtements désordonnés. Tu devrais faire la même chose. Nettoyer votre code, ne pas avoir à vous assurer que les choses sont cohérentes, vous savez, se
débarrasser des ordures, rendre agréable et OK, donc quand ils ajoutent le bouton choisi est pressé lorsque les boutons make post appuyez sur Eh bien, nous allons d'abord gérer le facile. Donc, lorsque le bouton d'annulation est appuyé, tout ce que vous avez à taper est de rejeter le contrôleur de vue Animé, Oui, faire animé. Et quand ça sera terminé, on se fiche de ce qui se passe. Faisons ça. D' accord ? Donc, lorsque vous appuyez sur le bouton d'annulation, il devrait vous ramener à l'autre écran. Ok,
ça a l'air bien. Euh, alors qu'en pensez-vous ? Tu crois qu'on devrait le tester maintenant ? Donc, lorsque nous cliquons sur l'image mais sur le bouton de l'appareil photo, cela nous amène au nouvel écran. Je pense qu'on devrait le tester. Donnons-lui un coup de feu. D' accord ? Et hé, regarde ça. Elle est apparue. Cela a fonctionné pour voir si le bouton d'annulation fonctionne. bouton Annuler fonctionne. Regarde ça. Et c'est animé. Il a l'air joli et ah, enveloppements se rassemblent vraiment. Et, euh, écoutez, ce genre de laid, c'est beau, grand et carré. Je veux dire, c'est OK, mais dans notre allaient autour juste pour le plaisir. Donc tu sais comment le faire. Donc ce qu'on va dio est juste ici en vue. Ne charge charges prévalentes. Euh, on va dire « Post image point repaire », rayon de
coin. Nous allons définir le rayon de coin de la couche de l'image, ce qui
signifie que les côtés et nous allons le régler. Teoh est égal à post image point cadre qui a dimensionné avec divisé par juste penser à ce sujet. Vous prenez le avec notre, euh, notre image, qui actuellement je pense est à 40. Donc ça serait mouillé 20 ans et donc, euh, on dit, Hey, on veut que le rayon du coin soit de 1 20 si peu. Si vous faites le rayon de chaque côté 1 20 ça fera un cercle parfait parce que vous coupez en deux. C' est comme ça que tu arrêtes, euh et ça va marcher. Mais une autre chose que nous avons besoin de dio est ah appelé images post qui coupées sur égal. vrai, estvrai,
quand ça va faire quelque chose qui est en dehors de ce cercle, ça va couper. Donc on ne voit pas si on ne le voyait pas, on ne verrait pas le cercle. Ok, allons-y et faisons-le. Je vais commander Plus pour l'exécuter et voir s'il fait ce qu'on voulait Cliquez dessus. Hé, regarde ça. Elle a l'air jolie mouche. J' aime ça. Euh, ok, très bien. Très bien. D' accord. Heu, storyboard
principal, mais nous ne voulons pas montrer cette image par défaut. Je vais l'éteindre parce qu'on ne devrait pas avoir d'image par défaut. Ça a du sens, non ? Droit. Était effrayé de l'image sur la vue de l'image. On y va. Revenons à notre contrôleur de vue. Donc, nous avons certainement testé cela lorsque l'écran fonctionne. Et donc ce que nous voulons faire est quand vous publiez, um, nous voulons qu'il,
euh, euh, sauve dans le tableau, et nous voulons qu'il mette à jour ce tableau. Et, ah, nous nous rapprochons vraiment ici. Donc je veux faire ce que je veux faire est en fait une chose de plus que je veux. Je veux réparer notre écran principal ici et rendre ce pas si laid et carré. Faites ce cercle aussi. Et peut-être que ce que nous ferons, c'est, euh, nous appellerons cette vidéo terminée. J' ai dit que j'allais être la dernière que je connaisse. Je t'ai encore piégé. Ensuite, nous nous concentrons sur le prochain juste pour obtenir les bonnes données. Faisons juste ce regard. Faisons en sorte que ça ait l'air très rapide. et ensuite passer à partir de là. Ce qu'est Weaken Dio va dans ton, euh, post vente Peritus et envie éveillé de la fonction plume. On va faire une sorte de chose similaire. Poster l'image dont le rayon d'angle du point de repère est égal à l'image de poste. Ce cadre qui a dimensionné avec divisé par deux et l'image de poste. Ce clip à limites est égal à vrai. Allons réparer ça ici, d' accord ? Et ça a l'air plutôt bien. Je dois le dire moi-même. Et juste pour que vous sachiez, il
y a d'autres choses qu'on aurait pu faire comme si Corner Radius était égal à 15 juste pour voir ce qu'il fait. Ok, toutes sortes de choses pour
le faire ressembler, mais nous voulons voir comment c'est comme un carré, et c'est presque comme un carré. Maintenant, c'est plutôt cool, hein ? Mm, vous contournez ça. Amuse-toi bien. C' est l'une des choses cool sur IOS. Beaucoup de plaisir. Vous pouvez avoir beaucoup de choses cool que vous pouvez faire. Ok, donc ça a l'air très bien. Les gars et les filles, allons-y et appelons cette vidéo terminée, et, euh, peut-être qu'on finira dans la prochaine ou peut-être qu'on en fera 10 de plus. Qui sait ? On va juste voir ce que ça ressent. Comment ça sonne ? Alors j'espère que les prochaines seront les dernières choses si bien ici. Assurez-vous de comprendre tout ce que vous faites. Retournez en arrière et regardez des vidéos si vous ne le supportez pas. Alors, Alors, allons-y et continuons dans la prochaine vidéo.
67. Application : MyHood Partie 3: Hé, tous, Mark pricier ordinateurs de bureau dot com Rappelez-vous qu'une fois, j'ai dit qu'on avait fini et qu'on n'avait pas fini et je vais faire une vidéo. Et donc nous voilà, faire une autre vidéo. Et, euh, je pense que c'est le dernier. Il y a tellement de bonnes choses que je veux t'apprendre. Il y a tellement de choses à savoir qu'il y a
tellement de choses que les cours ne couvrent pas. Et si j'avais tout le temps du monde, je te le donnerais. Mais sachez que vous obtenez tous les bons joyaux de la connaissance ici. Donc c'est là qu'on s'est arrêté. Hum, ça ressemble bien aux cercles arrondis May. Et maintenant, nous devons faire le post. Nous avons besoin d'obtenir, effectivement obtenir la publication de données à la liste rafraîchissante et aussi enregistrer sur le téléphone lui-même. Donc, quand nous fermons l'application, elle se charge de retour. Euh, alors allons-y et faisons-le maintenant. Donc, dans votre annonce VC juste ici. OK, nous avons ce bouton de publication enfoncé, et donc ce que nous voulons faire est de nous assurer que tous les champs ont des données dedans, ok ? Et, euh, mais on ne peut pas encore faire ça ? Parce que, euh ouais, le texte. Champ de titre. On pourrait vérifier le champ de description. On pourrait vérifier, mais le champ de l'image. On ne peut pas encore vérifier ça parce qu'en ce
moment, moment, , on ne peut pas charger d'images. Pourquoi ? Parce que nous n'avons pas écrit le code pour ça. Alors faisons ça maintenant. Ce que nous devons faire c'est quelque chose qui s'appelle Click. Ça s'appelle un contrôleur de sélecteur d'images U I. Donc je dois sauver notre sélecteur d'images du type de vous. Je t'imagine. Je le contrôleur de sélecteur d'image. OK, et ah, on
y va. Et donc ce que nous allons dio a vu le chargement. Souviens-toi, on met le point d'exclamation implicitement non enveloppé ici parce qu'
on sait qu'on va mettre une valeur dedans. Nous ne faisons pas ça parce que ça va dire, Hey, je peux ou pas avoir une valeur dans ça à un moment donné. Non, ce n'est pas ce que je veux. Je veux garantir une valeur, être là avant que quelqu'un ne s'en mêle. Donc c'est ce que je vais faire. Et puis ici, dans l'Isar initial, on va initialiser ça a du sens, non ? Alors allons-y et faisons-le maintenant Nous allons dire sélecteur d'images. Notre sélecteur d'images vous correspond. J' ai un contrôleur de sélecteur d'image et il suffit de l'initialiser. Pas grand-chose. Et une chose que nous devons faire est d'implémenter un protocole délégué ou d'autres protocoles. Délégué. Um donc l'application peut Non, Après avoir sélectionné une image comme si quand vous êtes le sélecteur automatique vient à interagir avec des choses d'album photo comme ça, il va dire notre manteau lorsque l'utilisateur a fini de sélectionner l'image. Et c'est ce qu'on appelle ça. Je t'imagine. Je sélecteur d'image, contrôleur, délégué. C' est une bouchée, et cela ne marche pas. Um, à moins que vous ayez, je délégué contrôleur de navigation
aussi, aussi, parce qu'il utilise un contrôleur de navigation Teoh travailler avec ses méthodes de rappel. Sachez juste que pour ce que nous faisons ici pour pouvoir écouter quand un utilisateur choisit une image, vous devez implémenter ces deux protocoles ici. Ok, prends
juste ma parole pour ça. Hum et OK, donc l'idée est que vous sélectionnez l'image, le bouton, il tire vers le haut le sélecteur d'image, vous sélectionnez l'image et ensuite nous avons enregistré l'image. Eso que nous aurons d'abord besoin de faire est de définir le délégué du sélecteur d'image point délégué égal auto . Rappelez-vous, cela ne fonctionnerait pas à moins que nous ayons juste implémenté ceci. Ce qu'on dit Hé, sélecteur
d'images. Cette classe va être celle qui écoute les fonctions de rappel. D' accord ? Et maintenant ce que nous voulons dio, c'est quand on appuie sur le bouton. D' accord. En bas sélecteur d'image. Et puis lorsque les images du sélecteur d'image sélectionnées, nous stockons cette image. Euh, juste ici dans cette vue d'image. Donc il y a une fonction que nous devons appeler ou qui écoute,
car au moins un contrôleur appelé sélecteur d'image a fini de choisir l'image, ok ? Et donc nous allons ah, utilisons cette fonction ici. Et ce qu'on va faire, c'est juste qu'on va dire, euh, premier sélecteur d'images, point dis mitt. Rejeter. Ainsi, lorsque l'utilisateur sélectionne une image, nous voulons masquer le sélecteur d'image. Droit ? Donc on va le faire ici et ensuite,
euh, euh, on va dire que l'image de poste est égale à l'image. Donc, ce contrôleur de sélecteur, on va l'avoir ici. Il nous donne une image de retour. Donc, quand l'utilisateur tape réellement une image, il nous donne juste l'image. C' est cool ? Super facile. Donc, si vous êtes confus du tout, Ok, nous avons implémenté le délégué du contrôleur de sélecteur afin que nous puissions entendre quand l'utilisateur sélectionne une image qui va appeler cette fonction automatiquement. Et ça fait parce que nous avons mis le délégué en disant, Hey, quand nous écoutons cette fonction, puis nous la rejetons et nous enregistrons l'image à notre image, vous et ensuite, euh ouais, alors je vais faire l'affaire maintenant ici dans la pression sur le bouton make post. Maintenant, on veut faire un post, non ? Donc on pourrait faire, disons, si on laisse, titre est égal au champ Titre, le texte de point dira,
que le script ou le bureau est égal au bureau, que
le texte soit suivi et ensuite on peut dire, hum, laisser je suis G égal à l'image de point de poste. Donc tout ce que je fais ici, c'est que je dis, avant de sauvegarder quoi que ce soit ou de laisser l'utilisateur faire un message réel, nous allons nous assurer qu'un titre existe. Nous l'attrapons s'il n'existe pas, ce code va s'avérer faux et ne fonctionnera pas ou dans la même chose avec la description . Heyzer dans un texte dans la description. S' il n'y en a pas, il va falsifier et s'exécute en se terminant par l'image que l'utilisateur n'a pas sélectionnée l'image. Nous saisissons l'image de vous que le code ne va pas s'exécuter. Et par conséquent, nous ne postons pas de junk ou de demi-date ou des choses comme ça. Et donc la question du jour est, maintenant que nous avons un titre, une description et une image, que faisons-nous avec ? Comment ajouter à notre liste et comment la sauvegarder ? Donc, en gros, on est en quelque sorte à un point d'arrêt ici parce qu'on ne peut pas vraiment faire quoi que ce soit avec ça. Les causes n'ont pas encore été mises en place pour cela, mais ce que je voudrais dio c'est, euh, tester cette fonction au moins jusqu'à présent. Voyez si le sélecteur d'image fonctionne et donnons-lui un coup de vue. Donc je vais construire et courir. Il suffit de cliquer sur le bouton de lecture ici. Ça arrive. On y va. D' accord. Cliquez sur le bouton de l'appareil photo et cliquez sur le choix de l'annonce. Donc, cela n'a pas fonctionné. D' accord. N' a pas fonctionné. Passer une annonce, appuyer sur un
bouton C'est parce qu'on
ne l' pas
présenté. Alors je suis content qu'on l'ait testé. Alors on y va. On dira, vue
présente, contrôleur, et on va juste présenter le sélecteur d'images que tu es comme Attends une minute. Sélecteur d'images de contrôle de vue. Ouais, c'est un contrôleur de vue et il fait différentes choses que c'est la mise en œuvre d'Apple de son propre sélecteur d'images. Donc, mais c'est un contrôleur de vue. Oui, animé quand il est terminé. Hum, on s'en fiche pour l'instant. Essayons de lancer cela à nouveau et de voir ce qui se passe. On va y arriver. Restez fort. D' accord ? Choix de la publicité. Oh, mon Dieu. Est-ce que ça marche ? On dirait que ça marche. Hé ! Hé ! On l'a fait assez cool. Il y a donc l'image qu'il a enregistrée là-dedans. Ça a l'air vraiment cool. Hum d'accord, donc on a fait des progrès. J' aime bien où on va. Parlons maintenant des données. Donc, les premiers sont, euh, notre contrôle de vue. Donc notre liste de messages est ici, et mon message publicitaire n'a pas vraiment un moyen d'y accéder, est-ce pas ? C' est ici, dans sa propre vue. Contrôleur. Comment puis-je enregistrer un post et y retourner ? Et puis il y a pensé à OK, eh bien, peut-être ce screener d'affichage, ce post publicitaire, peut-être qu'il l'enregistre. Et quand vous l'enregistrez, euh, celui-ci le chargera en quelque sorte du disque ou quelque chose comme ça. Mais plus nous avons de code à écrire à notre avis. Contrôleur, euh, les bases de code moins propres parce que les choses qui sont en relation avec notre modèle de données, comme sauver et persister et lire et écrire Cela devrait arriver dans notre modèle là-bas. Mais nous n'avons pas vraiment un bon moyen de le faire. Donc ce que je veux te présenter maintenant,
euh, euh, c'est quelque chose qui s'appelle un singleton, et je vais appeler ce service. Donc vous avez un contrôleur de vue modèle, mais vous avez un genre de services qui, oui, ça fait partie de notre modèle, mais c'est aussi un genre de service. Ça le pense. Je vais créer un nouveau groupe appelé Services. D' accord. Et nous y voilà. On va discréditer le nouveau dossier. Je suis juste en cliquant avec le bouton droit sur le nouveau fichier. Et ce serait un fichier rapide. D' accord. Et je vais appeler ça, euh, service de
données. Ok, donc on a un service de données, et ce qu'on voulait faire, c'est travailler avec nos données. Donc, il va créer une classe ici service de données de classe. D' accord. Et donc un singleton. Ok, l'idée d'un singleton est qu'il y a une instance en mémoire, et c'est globalement accessible. Hum, tout le monde va bien ? Euh, tu le sais. Ah, ce n'est pas le nôtre. Ici. Ce n'est pas accessible à l'échelle mondiale. Tout le monde, non ? Parce que l'ajout de publications ne peut pas y accéder. Quand on pourrait peut-être le
passer, remets-le. Mais c'est vraiment sale. Nous avons donc besoin d'un moyen d'accéder globalement à notre truc. Notre classe ici pour que nous puissions dire statique, laisser instance égale service de données. Ok, alors parlons de ça. Donc ce que Static dit c'est, hey, Onley a déjà fait une seule instance de ça ? Jamais, jamais. Jamais. Donc, peu importe combien de fois les gens qui essayent de désordre du service de données ne créent qu'une seule instance de
celui-ci, et chaque fois que vous y accédez , ce sera cette instance spécifique et la restaurer dans une variable. Je pourrais appeler ça n'importe quoi que je pourrais appeler blah, ou parfois les gens aiment l'appeler partagé. D' accord. Euh, oui, je suis colonel. car il s'agit d'un instant dans l'instance. Et Ah, donc c'est tout ce que vous avez à faire pour avoir un, hum, Singleton globalement accessible en swift par n'importe quelle autre classe qui garde à l'esprit. Tu dois les utiliser avec précaution. Ah, Singleton vit dans la mémoire et il ne s'arrête jamais et ne meurt jamais. Une fois que vous l'utilisez. Ok, donc c'est toujours un souvenir. Donc, alors que d'autres choses comme les messages et les variables, lorsque vous avez fini de les utiliser, la garbage collection les nettoiera et en prendra soin. Libre de votre mémoire. Pas si ici. Tous les singleton que vous créez vivront en mémoire pendant toute la durée de vie de l' application. Donc, vous ne les utilisez pas seulement partout parce que vous serez un chargement de votre application, hum, d'utiliser beaucoup de mémoire. Donc, euh, en utilisant soigneusement les utiliser à bon escient. C' est un bon usage ici. Donc, ce qu'on veut faire, c'est faire quelques choses à ce sujet. Notre service de données devrait charger les messages de notre base de données, qui est juste notre téléphone devrait également être en mesure de les enregistrer. Et aussi, il y a une nuance avec l'enregistrement des données sur le disque avec des images. Nous ne pouvons pas stocker des images au même endroit que nous allons stocker d'autres données comme des titres et des descriptions, parce que les appareils IOS ont un certain endroit pour stocker des documents et des fichiers pour lesquels il est destiné. Donc on doit faire quelques choses ici. Donc ce qu'on va dio, c'est abord, on va tenir. On va héberger nos données ici. Donc, privé, hum, je veux sauver sont des postes chargés. Donc c'est là qu'on va, euh, chercher notre salle de poste. J' aurais pu juste l'appeler des messages, mais je voulais indiquer que ces postes ont été chargés, et c'est juste un post. On y va. Donc au moment de l'exécution, ce sera juste un tableau vide, et nous l'initialiserons plus tard, mais , au fait, c'est toujours sûr. À faire avec une course. Si vous ne voulez pas avoir un accès accidentel aux options que Neil ou sortir des
limites,des limites, choses comme ça juste initialiser votre rasoir au moment de l'exécution, au début à une droite vide. , Ok, donc nous avons notre poste de bar privé chargé. Ça va créateur Getter en ce moment. Jusqu' à présent. Poteaux chargés. Euh, et, euh, appelons ce poste, et on va juste retourner des postes chargés. Juste une bonne pratique. Alors allons-y Ah. Ok, alors allons-y et ah, tout de suite. Les fonctions dont nous allons avoir besoin donc fonction enregistrer des messages. C' est là qu'on les enregistre tous au, euh, sur le disque. Quand je dis disque plus. La raison pour laquelle nous disons que parce que, vous savez, nous utilisions des disques pour économiser des trucs amusants, mais le disque dur de l'appareil IOS et nous allons fonctionner pour charger post, Donc charger des postes. Hum, ça a l'air bien. Aussi, nous allons aller une autre fonction, hum, pour enregistrer une image. Et maintenant, comment ça va marcher, on va enregistrer une image sur le disque, et ça va nous donner un chemin de fichier. Et ce chemin de fichier est ce que nous devons stocker dans nos données. Donc, quand nous stockons notre titre dans notre description, au lieu de stocker l'image elle-même avec toutes les données, nous allons juste stocker une chaîne de chemin d'image afin que nous puissions l'attraper plus tard à partir de la structure
de fichier de l'appareil. Eso nous allons dio est ah, nous allons faire une autre fonction appelée enregistrer l'image et créer le chemin. Et cela va prendre l'image elle-même. Donc l'image U que nous avons, n' est-ce
pas ? Et, ah, si vous remarquez ici que ça ne marche pas parce que nous ne vous avons pas importé comme ça, ça ne
peut pas fonctionner avec vous. Pourquoi les images ? Parce qu'il ne sait pas ce qu'ils sont. Si je mets ceci ici, il sait maintenant ce qu'un u I images et peut travailler avec. D' accord. Et, euh alors c'est sauver des images. Mais qu'en est-il de la récupération d'images ? Donc, l'image de fonction quatre chemin. Et, euh,
ça va retourner quelque chose, mais maintenant, je vais le laisser sans valeur de retour. Alors ne me crie pas dessus avec un héritier. Ok, donc on peut, hum, voir pour qu'on puisse sauver les messages. On peut charger les poteaux. Nous pouvons enregistrer une image et créer un chemin, puis affaiblir obtenir l'image pour un chemin. Oh, un de plus. Qu' en est-il quand nous voulons ajouter un nouveau post de, comme, le post d'annonce VC ? Alors, qu'est-ce que c'est aussi Weaken Dio ? Ajouter des messages et il faut un poste de type post. Et d'accord, euh, ouais, et donc chaque fois que ce qui est vraiment cool, c'est que vous pouvez un échafaudage de vos fonctions comme ça et commencer à assembler les choses et ensuite écrire la logique pour ça plus tard. Donc, par
exemple, ajouter un post chaque fois que nous ajoutons un post, je sais que nous devons le modifier à notre post, droite, donc nous pouvons dire des messages chargés dot append et, euh, passer le poste s'il veut obéir. Et on va faire ça. Et puis, bien
sûr, chaque fois que vous ajoutez un message, nous voulons sauvegarder toute la liste des messages, n'est-ce pas ? Donc c'est sur le disque pour que nous puissions appeler des messages de sauvegarde. Et puis après avoir sauvegardé des messages, nous voulons un poste bas. Droit ? Parce que chaque fois que nous chargeons une publication, nous voulons que la liste actualise et montre ce nouveau post que nous venons de charger. C' est logique. Et jusqu'à présent, ces fonctions ne faisaient rien. Mais au moins, on met des choses en place. Hum, et c'est la chose importante. est -ce que Weaken Dio ? Ah, c'est vrai, toute la logique. Teoh, sauvegardez ces trucs ici et ce n'est pas si complexe. Euh, certaines choses que tu dois savoir faire. Mais, euh, donc ce que nous voulons faire d'abord, euh, eh bien, parlons de sauver des messages, accord, parce que nous avons ajouté le post au tableau, mais nous voulons sauver toute une série de messages. Et comment faites-vous ça ? Et bien sûr, dans l'Iowa, multiples façons d'enregistrer les données d'
Esther aujourd'hui, nous utiliserons les valeurs par défaut des utilisateurs et nous
utiliserons le répertoire des documents pour les images. Dans les autres façons sont d'autres méthodes que vous pourriez utiliser sont l'utilisation de données de base postant des choses
sur un serveur que vous pourriez utiliser parse comme une base de feu principale. Vous pourriez avoir votre propre serveur. Euh, vous pourriez Ah, Localement sur l'appareil, vous pouvez avoir une base de données comme SQL et réellement exécuter des commandes de suite pour enregistrer deux bases de données nombreuses façons différentes de faire les choses. Donc d'accord, alors parlons de sauver des messages. Et ce que nous devons faire pour sauvegarder un message, c'est que nous devons archiver. Aller faire s'appelle l'archivage des données. Convertit comme les octets et les bits qu'il stocke sur votre appareil, alors enregistrez les publications. Ce qu'on va faire, c'est qu'ils laissent les messages des données qu'on va tourner, c'est qu'on va tourner. Nos objets sont chargés des messages dans les données. Tu sais, ces bits et ces octets, OK. Et, euh, ça va être une archive à clé. Er les données d'archive avec l'objet racine chargé un poste chargé. Ok, donc nous prenons notre tableau, et nous le transformons en données. Ok, c'est tout ce qu'il se passe. Ça pourrait être un tas de chiffres. Ça ne va pas être gobbledygook. D' accord. Et, euh, alors ce que nous allons dio, c'est que nous allons dire que les valeurs par
défaut de l'utilisateur par défaut point et, ah, ce sera poster des données des messages pour la clé et dira, Qu' est-ce qu'on veut appeler ça ? Je pense que juste post est probablement très bien. Donc, ce que nous faisons, c'est que nous prenons tout ce tableau de publications et nous le convertissons en données qui peuvent être stockées sur le disque. Et puis, euh, nous saisissons les valeurs par défaut de l'utilisateur standard. valeurs par défaut de l'utilisateur sont juste, ah mécanisme de stockage sur IOS saisissaient
la norme, la principale. Et on met un objet ici et on lui donne une clé. peu comme un dictionnaire, ou avez-vous une clé en valeur ? Donc, nous sommes juste en train de définir un objet pour une clé que nous pouvons récupérer à un moment ultérieur dans le temps. Et ce post désolé ira toujours au même endroit. Ce qu'on va faire, c'est remplacer qu'on ne va pas écrire où chaque fois qu'on
va juste dire qu'on va juste remplacer le tableau existant par ce qu'on a ici , rendre notre vie vraiment facile. Ok, donc ça a l'air bien. Alors allons-y et chargeons les poteaux. Donc, si je dis laisser, um publie des données, il y a b n s utilisateur par défaut point Um, utilisateur
standard par défaut objet point pour clé. Et cela va juste être des messages comme avant en tant que données de N. Ok, est-ce que ça a du sens ? Donc on fait le contraire ici, non ? Nous prenons Nous allons à Notre santé mentale est prête. Les gens disaient, Hey, on veut l'objet pour cette clé. Et si vous avez remarqué, nous,
euh, nous dupliquons ce code ici, alors mettons ça dans une constante. Donc je vais juste dire, laissez-les dire que les messages clés sont égaux à des messages. Il vaut mieux tout avoir en un seul endroit. De cette façon, si nous devions le changer, nous pouvons le faire en un seul endroit, retirer ceci et le mettre ici. Et juste ici. J' aime ça. Ok, donc il nous crie dessus, cependant. Voyons ce qui nous crie dessus. Hum oh, gardez les hôtes. Les déclarations Let ne peuvent pas être calculées propriété. Um, publie des données. Mm. Moi, construis ça. Quelque chose semble éteint. Initialisation des publications. Données. Oh, j'ai oublié ça si ce n'est pas très utile. code X n'avait même pas de sens. OK, alors on y va. On attrapera l'objet pour cette clé. Et si ça existe, comme si on l'a mal orthographié ou s'il y avait de la corruption et qu'on n'aura rien ici, donc c'est très important que tu fasses le Si on le laisse bien, donc si on l'a récupéré, OK. puis nous passons à l'étape suivante, nous devons retourner nos données dans un tableau de messages afin que nous disions si laissez les messages, tableau égal n Eschede un narc. Ivor. Ok, l'objet d'archives de l'ONU avec des données, et ça va être des messages comme un post un viol. Alors regardons cette étape ici. Donc, la première chose que nous avons fait était de saisir les données pourraient parce que nous avons stocké les données ici. On l'a convertie et on a commencé ici. Mais maintenant nous saisissons les données, et maintenant nous disons,
Hey, Hey, prenez ces données et convertissez-les en un objet que nous pouvons réellement lire. Ok, donc on est juste en train d'inverser, tu sais, ce qu'on a déjà fait. Et si cela a fonctionné, si nous sommes arrivés ici, ne dites pas seulement que les postes chargés sont égaux tableau de messages. Donc, si cela fonctionne ici, nous venons de définir sont chargés post. Alors peu importe. On vient de rentrer. Et, euh ouais, donc notre poste vient de charger. Pas grand-chose. NBD pas grand-chose. Um OK, donc nous avons ajouté un post. Nous avons sauvé le poste. On a chargé un poteau. Hum, ça a l'air vraiment cool. Ce que je veux faire, c'est, avant de jouer avec les images, je veux tester et m'assurer que nos valeurs par défaut d'utilisateur
fonctionnent uniquement pour les titres et les descriptions. D' accord, mais on a un problème. Donc disons, par ici, on fait un post, accord ? Et puis il enregistre, puis nous chargeons les poteaux. Comment notre vue contrôle-t-elle ou sait même que quelque chose change ? Ce n'est vraiment pas le cas. Ce n'est vraiment pas le
cas, donc nous devons faire un peu de connexion. Il y a plein de façons différentes de le faire,
en fait, euh, et nous allons le faire de la façon la plus simple. Il est de cette façon que je peux penser à ce qui est juste pour utiliser des notifications. Mais la première chose que nous devons faire est
de faire est de faire le post lui-même. Donc, revenons à ajouter le post v C et juste ici où nous avons fait cela. Vérifiez qu'il y a effectivement des données là-bas. Allons-y. Maintenant, créez nos objets de poste. Je vais sauver notre post égal post et le chemin de l'image. On va toujours le garder, Neil, juste pour l'instant. Hum, et ce que je vais faire, c'est que je vais lui donner un titre ici, et on va dire que c'est le titre. Allez, allez. Et celui-ci va être un bureau. OK, alors on y va. On a notre nouvel objet là-bas. Ça a l'air bien. Ça a l'air bien. Euh, d'accord. Et puis Ah,
Maintenant, ce que nous pouvons faire est parce qu'un point d'instance de point de service de données ajouter post que nous avons passé dans le post. Allez, le code
X me tuant. Oh, ouais. Alors regarde ce qu'on a fait ici. apporté des changements à un laissez donc regarder ce que nous avons fait ici. On était là. Nous avons toutes les données dont nous avons besoin à partir de maintenant. Ce que nous faisons, c'est que nous créons un nouvel objet post avec le titre et la description. Tu sais, je n'utilise pas l'image en ce moment. Euh, c'est parce que, euh , euh, on ne teste pas ça tout de suite, et ensuite on ajoute le post au post d'accord. Et ça va nous mener jusqu'à notre service de données. Il ajoute les messages, sorte qu'il au tableau. Et puis nous disons ce tableau, comme vous pouvez le voir ici et puis nous rechargeons. Nous rechargeons ce tableau avec les nouvelles données juste pour s'assurer qu'il est complètement coulé. Et chaque fois que cette affiche est chargée, ce qu'on veut faire est d'avertir quiconque s'en soucie que l'affiche est chargée. Donc, je vais dire N point centre de notification par défaut centré vers le haut la notification après. Et, euh, on va faire une nouvelle notification. C' est une notification, et nous allons la donner et le nom sur. Ça n'allait pas être appelé, hum, des postes chargés. Et les objets ? Neil, on ne le fait pas. Nous n'avons pas besoin de lui donner un objet. Ok, donc tout ce que nous faisons est de dire quand le Post a chargé, allons de l'avant et appelons notre centre de notification par défaut. Il utilise cette syntaxe. Vous ne comprenez pas comment fonctionne complètement. Hum, vous devez juste savoir que c'est ainsi que vous obtenez votre centre par défaut et vos nouvelles notifications. Toute personne qui l'écoute peut les entendre lui donner un nom en créant une nouvelle notification avec le nom chaque fois que les publications sont chargées. Et donc ce qu'on va faire est fini à notre avis, Contrôleur. Ok, débarrassons-nous de toute cette sécurité des données de test. Toutes ces données de test. D' accord. Ce qu'on va faire est ici. Dire N point centre de notification point point par défaut Ajouter observateur différent cette fois. Et les observateurs, c'est cette classe. Hey, cette classe écoute le sélecteur. Est-ce que la fonction que vous vouliez appeler lorsque cet événement se produit ? Et donc celui-ci dira sur les postes chargés. Et je mettrais ceci le deux-points là parce que cela signifie qu'il y a un paramètre parce qu'il
va nous envoyer un objet de notification. Nous devons avoir ça là. Et puis il veut le nom de la notification, qui est exactement le même nom que celui avant qu'un objet soit toujours Neil. Donc, encore une fois, nous avons appelé le centre par défaut. Nous disons juste, Hey, nous voulons écouter cette notification chaque fois que l'affiche est chargée,
um, um, chaque fois que l'affiche est chargée appelé dysfonctionnement. Et je n'ai pas encore créé un, Donc si je vais ici, je ne peux pas créer cette fonction et il faut un paramètre Nous allons juste appeler ceci n'importe quel objet. Ça va nous donner des objets. On doit le mettre là-dedans. Et puis tout ce que j'ai besoin de dio, c'est dire Eh bien, en fait, ce n'est pas le cas. Tout ce que j'ai besoin de faire est de dire des données de rechargement de points de vue de table, Et puis au lieu d'avoir nos messages ici, débarrassez-vous de cela. Tout ce que nous avons besoin de dio est un changement que d'où vient la date afin que nous puissions à la place dire, euh, service de
données que point d'instance, postes
chargés là il est juste là. Et donc on va le faire dans tous les endroits où on en a besoin au lieu d'y accéder ou de le stocker ici et un autre endroit. Je pense que c'est là. Donc j'ai juste attrapé tout ce que nous faisons ça au lieu d'avoir le post ici étaient juste
le saisir de notre singleton notre service juste ici. Et voici la syntaxe que vous pouvez voir est au lieu de,
ah, vous savez, vous savez, faire des parenthèses ou des choses comme ça n'étaient pas une instance de point de service de données. Ok, quand vous appelez la chose d'instance de point que nous avons créée et ensuite vous pouvez appeler la propriété. Et maintenant, nos vues de table sont alimentées par les données là-dedans. Et chaque fois que nous ajoutons un post, il va appeler cette fonction parce qu'il écoute la notification et il va recharger les données. Je suis vraiment curieux de savoir si ça va marcher. Alors donnons-lui un coup de feu. J' ai peut-être trouvé quelque chose parce qu'on continue un peu ici . Alors on y va. Allez, allez, allez. Et OK, donc écran vide. C' est compréhensible. On n'a encore rien. On ne travaille pas encore avec les photos,
mais j'ai besoin d'ajouter une image parce que notre code l'exige parce que c'est pour ça que nous avons conçu
notre titre côtier. On ne travaille pas encore avec les photos, mais j'ai besoin d'ajouter une image parce que notre code l'exige parce que c'est pour ça que nous avons conçu J' aime les jolies fleurs. Les fleurs me rendent malade. Je ne sais pas pourquoi je deviens fou. Pourquoi pas ? Ne me donne pas beaucoup pour travailler avec des fleurs sur les simulateurs. D' accord ? Alors voyons si ça marche. Ok, donc on a un accident, accord ? Et voir ce qu'il dit. Donc, il est arrivé au poste sûr, ce qui est cool. Il dit, euh, post n'implémente pas la signature de la méthode quatre sélecteur et l'objet de remplacement pour l'
archive Kaede er, donc cela peut ne pas signifier grand-chose pour vous. Comme quoi ? Mais il y a quelque chose de vraiment important que nous avons besoin de dio. Et donc chaque fois que vous travaillez avec, um, des données de
date comme l'enregistrement et le chargement, vous devez respecter le codage N. Vous savez comment il a dit qu'on prenait ces données les convertissait en bits et en octets. Eh bien, euh, on a essayé de le faire, mais le problème c'est que nos postes, ils ne sont conformes à aucun type de revêtement, ils ne sont conformes à aucun type de revêtement,
donc nous devons l'implémenter. Donc, si vous allez à votre modèle dans vos messages, pas rapide, OK ? Il y a quelques choses qu'on doit faire. La première chose que nous avons besoin de dio est que nous devons hériter d'une classe que nous avons héritée d'une classe ici, et la salle de classe dont il a hérité s'appelle NS Object. Cela vient de l'objectif C et, euh, toute
l'idée de l'archivage en bits et octets et des choses comme ça. C' est tout en utilisant du code objectif C dans les coulisses et autres choses. Il a été là pour toujours, donc nous avons besoin qu'il hérite de l'objet Ennis, car il a des choses très importantes de codage de code que nous devons utiliser. Et, euh alors nous devons également implémenter le codage n s. Euh, protocole. D' accord. Et, ah, cela nous aidera à coder sont le penser. Rappelez-vous, même si vous ne le comprenez pas, rappelez-vous
simplement si vous voulez archiver et archiver des choses, ok, Vous devez utiliser votre classe dont votre archivage a besoin pour les besoins à implémenter. Et c'est le protocole de codage et a besoin non héroïque de son objet. Sachez juste que c'est ce que vous devez faire. Si vous essayez d'utiliser N s paramètres par défaut K, pas grand-chose. Ce n'est pas si complexe. Ce que nous allons dio, c'est ah, nous allons créer des fonctions ici qui feront ce dont nous avons besoin pour faire de la
commodité si nécessaire . Et c'est celui qu'on veut ici. Coder un décodeur. Vous avez peut-être vu cela quelques fois auparavant. Ah, beaucoup de vues de table et des choses comme ça utilisent ça. C' est ce qu'on va faire. Voici la première sortie. Nous devons créer, nous avons d'abord besoin de créer une fonction er d'initialisation régulière, et il veut être remplacé. Donc, nous allons le remplacer ici. On y va. C' est juste que c'est juste une initialisation de base er nous avons notre propre Ici est bien à ce qui est très bien . Et puis, euh, on va appeler l'initialisation de base qu'il est juste nécessaire en fait partie. Vous devez vous initialiser quand vous décodez ici et puis nous allons dio est juste un chemin d'image auto point um est égal à un décodeur point objet de décodage pour clé. Et c' est tout
ce qu'on fait. Ok, c'est ah, ce n'est pas si mal. Alors pense qu'on fait que tu saisies le chemin de l'image. C' est là qu'on le charge, d' accord ? Et nous sommes en train de dire, Hey, um, quand quelqu'un t'archivera, ce qui va arriver dans notre singleton quand quelqu'un va t'archiver,
tout ce que tu as à faire c'est de le prendre d'ici. C' est tout dire, Hey, ce décodage d'abord. Donc ce que je dis est dans votre service ici quand le poste de chargement est appelé quand ce , uh, quand ce gars a appelé ici, vous voyez ça ? Et ce gars, surtout celui-là, objet d'archives de l'
ONU avec des données. Il essaie de comprendre comment faire ça. Et il ne sait pas comment faire ça à moins que tu lui dises comment faire ça ici. Ok, donc les noms clés que vous mettez ici seront appelés quand ça arrivera. Super important. D' accord ? Et il nous crie dessus. Voyons de quoi il s'agit de nous. , Ok, c'est pourquoi ça nous crie dessus ? Soi ? Ce chemin d'image. Ok, on y arrivera dans une seconde. C' est d'être très poli. Um, OK, alors allons-y et faisons les autres ici auto point Le titre de soulignement est égal à un décodeur point objet de
décodage pour clé. Et cela allait juste être appelé titre comme une chaîne, puis point de soulignement auto-point Post description est égal à un décodeur point objet pour clé. Et celui-là sera une description. Ok, comme une ficelle. Et ah, ça a l'air bien. Là. Pourquoi ça me crie dessus ? Mais ? Je ne vois pas pourquoi la valeur du titre juste rêve n'est pas déballé. Nous avons vraiment besoin de le déballer. Um, je suppose qu'on va juste les défaire à la place. Euh, eh bien ,
ouais, débarrassons-nous de ces airs très vite ici. Euh, allez. Il les cherche sur ces gars ici. Ok, j'ai une meilleure idée. Allons juste apaiser les dieux ici de x coat et mettre des points d'exclamation sur ceux-ci ici, et ça devrait disparaître. Voilà, tu y vas.
68. Introduction à l'application: Hey, une marque de décès plus rapide oates dot com. Nous allons parler de l'application que nous allons construire aujourd'hui, et c'est très similaire à mon application hotte, sauf qu'au lieu de consacrer les utilisateurs, nous allons utiliser les données du tribunal, ce qui est un très fort, euh, pour pouvoir stocker des données sur l'appareil. Et bien sûr, c'est le grand papa de tous les magasins de données et c'est IOS est recommandé
système de stockage de données . Cela étant dit, nous allons passer en revue les fondements simples de tout ça. Nous n'allons pas entrer dans les choses lourdes et
complexes que vous pourriez passer 152 103 100 heures dans les données du tribunal et toujours pas compréhensible. C' est très, il pourrait aller très profond et très puissant, mais il peut aussi être simple à. Donc on va parler de ça et de l'application que nous allons construire. Il s'appelle Recettes avec un Z, et fondamentalement il semble vraiment cool, styles et tout et contre des composants
simples, simples et solaires à l'autre. Mon capot à ce qu'on a construit, sauf qu'on fait des recettes et que tu vas ajouter des ingrédients et des choses comme ça et
des données du tribunal , tu sais, je n'ai jamais eu d'entretien d'embauche où ils m'ont demandé. Vous savez comment faire quelque chose dans les données du tribunal. Ils veulent juste savoir si vous pouvez apprendre des choses. C' est donc une excellente introduction dans le monde des données judiciaires. Vous allez vouloir continuer à vous entraîner et à l'utiliser dans vos applications et vous améliorer . Mais la plupart des emplois de programmation iPhone junior ne vous demanderont pas d'être un expert en données de base. Et s'ils utilisent dans le cadre de leur application sur, ils veulent vous donner un emploi ou parler d'emploi, suffit de faire quelques recherches sur elle, construit une énorme revendication de ce plus et montrer votre capacité à apprendre. Alors allons-y et commençons. Ça va être marrant, et tu vas apprendre.
69. App: Recipez Partie 1 (données centrale): un prix marque pentes point com et allons de l'avant et commencer avec nos recettes moitié. Alors allez-y et allez à votre code ex et créez un nouveau projet, comme nous l'avons fait dans le passé. Fichier Nouveau projet et application de vue unique est très bien. Cliquez sur Suivant bon et appelez cette recette avec un Z ou tout ce que vous voulez. Très important, cependant. Assurez-vous que l'utilisation des données de base est sélectionnée ici. Très, très, très important. OK, alors cliquez sur Suivant et, euh, créez. Donc, c'est là. Donc, pour résumer, données
judiciaires sont un système construit pour l'Iowa et permet à l'utilisateur, qui est votre développeur, d'
avoir une interface simple pour interagir avec les bases de données. Donc, dans le passé, peut-être avant les données de base et je développais APS avant, vous savez, vous utilisez la lumière SQL et vous devez exécuter des requêtes, hum, vous-même dans le code. C' était très douloureux,
et, euh, ce n'était pas une grande expérience. Et donc ils ont créé un système génial qui extrait beaucoup de ce travail de terrain, et cela facilite votre vie en travaillant avec des entités et des relations et des choses comme ça d'une manière très visuelle, et ce qui est intéressant, c'est vous peut toujours utiliser une base de données SQL light en dessous. Mais les données de base feront tout ce qui lui parle, et cela fera toute la conversion et toutes ces bonnes choses. C' est très puissant, très rapide, et les applications les plus complexes utilisent la coordination. Donc, si Absar stocke des données sur l'appareil, il utilise probablement des données de base. Cela étant dit,
beaucoup, beaucoup d'applications ces jours-ci vont 100% Internet Web basé. En fait, parce que l'Internet est de plus en plus répandu, certaines personnes suppriment même complètement le stockage de données local, sauf pour des choses comme les préférences et des choses comme ça, et bougent complètement, Streaming basé sur le Web et le naufrage. Alors que si vous ne pouvez pas vous connecter au Web, vous ne pouvez même pas vraiment utiliser votre application. Et ça devient un standard nok. La plupart auront des connexions ces jours-ci, mais il y a aussi des frameworks qui ont des moteurs de puits de Mike comme une analyse ou une base de feu, ce qui vous permet Teoh stocker des choses hors ligne et il fait tout le travail pour vous. Eso Vous voudrez peut-être utiliser la base de feu. Si vous vous connectez pour m'excuser, vous voudrez peut-être utiliser les données de base si vous vous connectez au téléchargement d'Internet, sauf que
quand vous sortez de la ligne, , vous voulez toujours être en mesure d'utiliser l'application et des trucs sûrs pour envoyer des trucs revenir sur Internet plus tard ? Parlons donc des données de base aujourd'hui. Allons et on y va et ce n'est pas si dur. C' est un peu ça. Dans sa forme la plus simple, c'est un peu plus facile que l'utilisateur Ennis par défaut, je pense que oui. Allons de l'avant et commençons avec notre storyboard. Réunissons notre numéro ici. Et donc ce que nous voulons est de montrer juste une liste de recettes. Il y aura une barre de titre. Rien de trop fou. Alors faisons ça maintenant. Donc on va juste mettre un maintenant Mettons juste une barre de navigation. Euh, en fait, nous allons juste cliquer sur votre contrôleur de vue ici et aller à l'éditeur incorporé dans le contrôleur de navigation . OK, et voilà notre contrôleur de navigation. Cliquez sur la barre de navigation juste ici dans le côté gauche et cliquez sur l'
inspecteur des attributs . Et changons le barman ici pour une belle orange. Mettons-la sous tente, et c'est bon. Ok, il y a un contrôleur de navigation entend notre contrôleur de vue donc ici, tapez la table et mettez une vue de table. On va le faire couvrir comme ça. Pas grand-chose. Et nous voulons aller sur les bords cette fois parce que nous le serons Nous voulons que nos
images de recette vont au bord de l'écran, ce qui est très bien. Et donc, désactivez, limitez les marges. 000 et zéro. Bam ! J' aime ça. D' accord. Et donc ça a l'air bien. Et allons-y et, euh, à une table de vous vendez juste ici. Et je vais juste faire ma vue de table, avoir une couleur d'arrière-plan temporaire pour que je puisse voir ce qui se passe. Il suffit de le rendre rose pour que je puisse voir à quoi ressemble mon portable. Et c'est ainsi que les vues de table occupent juste beaucoup d'espace là-bas. Qu' est-ce
qu'on veut que la cellule ressemble à quoi ? Eh bien, ce n'est pas si important. Ça va être une image sur le fond. Donc votre vue d'image et je pense que c'est un peu trop grand en ce moment. Je vais mettre un rouge là-bas d'un côté à l'autre. J' aime ça. Cliquez sur la vente ici et apportez cela dans vous voulez aller sur les bords et alors cliquez sur votre image et nous allons Thio, Thio décollage ! Contraindre les marges et faire 000 et zéro. Ok, et ah, c'est cool. Maintenant on a juste besoin d'une étiquette, euh, à mettre au milieu. Alors faisons ça maintenant, et je vais le faire revenir. Allons le faire passer tout le chemin à travers l'écran. On y va. Centrons ça. Je vais changer la coutume de police, et c'est bon. Et disons dio gras italique. Ok, faisons-le blanc. Et je veux une ombre sur celui-là. Alors mettons-nous une ombre. Utilisons ah, couleur de texte
sombre pour l'ombre. Je n'aime pas la direction dans laquelle il va. Allons sur la verticale. Changements juste orteil un et l'horizontale. Changeons cet orteil. D' accord ? Et rendons la taille de la police plus grande. On dirait que ça pourrait dire, euh, mamans. Joyeux hamburger. On y va. Allons-y et épinglons à gauche. Épinglez-le à droite. Faisons en
sorte qu'il ait,
ah,la
largeur et la hauteur qui sont fixes. sorte qu'il ait,
ah, ah, Et nous allons l'aligner horizontalement dans le conteneur et, euh, verticalement dans le conteneur et ai-je dit A dedans. Si je n'ai pas enlevé ça, on n'a pas besoin d'un avec toi comme peur de l'avec. On veut juste la hauteur. On met le côté gauche et le côté droit. Donc je viens de retirer le avec et il y a notre vue d'image. Ça a l'air bien. Ok, allons de l'avant et allons voir notre table ici. Et, euh, je n'aime pas qu'il soit rose. Bien sûr. Faisons pas
rose, rose, ce serait génial. On y va. Que fond a été tourné que du rose retour à la valeur par défaut. Ok, il y a notre cellule de vue de table qui a l'air bien. Ok, on fait des progrès. Allons de l'avant et un tas sur le côté droit ici, tapant le bouton. Et on va faire un bar. Mais un élément Nous allons le faire glisser sur notre barre de navigation sur le côté droit au lieu de changer l'
élément plus nouveau. Et changeons la tente en blanc. On y va. On dirait qu'il est devenu gris. Il n'y en a pas On
y va. Voilà notre bouton. Ça a l'air bien, bordée. Très bien. Le plan était clair. Faites commandé. Ça ne change rien. Ok, donc ça a l'air cool. On a un nouveau bouton qui va charger un autre écran. D' accord. En fait, nous pourrions probablement créer cet écran en ce moment. Je ne vois aucune raison pour laquelle on ne peut pas. Alors faisons ça maintenant. , le Dragon
, nouveau contrôleur de vue ici. On y va. Et ce que ça va faire, c'est qu'il va se charger quand on a appuyé sur le nouveau bouton. Donc, vous cliquez sur votre nouveau bouton et le contrôle glisser sur, affaiblir. Juste, euh, dis spectacle, ce qui est très bien. D' accord. Ça me semble bien. Nous mettons quelques champs de texte ici. Je pense que oui. Champ de texte. OK, il n'y a rien. Ah, rien. Ultra jolie. Vous savez, juste un champ de texte et un espace réservé. titre de la recette du Texas semble bon. Faisons un autre. Je commande juste C commande V. Alors on va appeler ça des ingrédients de recette. D' accord. Et puis une autre étape de recette. On y va. Les étapes de la recette et nous avons besoin d'une image. Donc c'est génial une image ici. Faisons un carré. Cliquez sur la règle. Changements pour dire 1 75 par 1 75 1 75 On dirait bien. Ok, donc c'est bien. Aucun de ces air n'a encore épinglé. Alors faisons un peu d'épinglage ici,
alors nous allons épingler la recette Title 32 du haut. Alors faisons un peu d'épinglage ici, C' est très bien. Zéro de gauche, zéro de droite. Je n'ai pas besoin de m'inquiéter pour les hauteurs car elles restent la même hauteur sur ces
champs de texte , donc ça va le forcer de cette façon. Donc ça m'a l'air bien. Oui. Et, euh, celle-là du haut de la gauche et de la droite. Et c'est 14 du haut. Et celui-là. Gardons-le pareil. Dit 14 du haut et zéro de la gauche. Zéro de droite. Bien paraître, cette vue d'image dira 43 en haut. Et allons-y et donnons-lui une largeur et une hauteur fixées ici. Et nous allons cliquer sur le menu d'alignement et le mettre horizontalement dans le conteneur. Ok, regarde. Et bien. Et maintenant nous avons besoin d'un mais ici Teoh pour aller au-dessus de l'image de vous pour ajouter une image. Euh, ou on pourrait aussi faire un,
hum, hum, comme un geste de claquage. Mais nous ferons un bouton cette fois, alors je dis bouton, mettez-le sur le dessus. faire aussi grand est juste gros, d' accord ? Et nous allons changer le texte pour dire, Ajouter une image ou ajouter une image. On y va et on le changera en White. C' est bon. Ok, ajoutez une image qui a l'air bien. Sélectionnez notre bouton ici et son image. Toi. Allons de l'avant et cliquez sur l'alignement et faisons,
um, um, centres
horizontaux et des centres verticaux. Cela permettra d'aligner notre bouton sur notre image, puis sur le menu Penn, avec les deux de ceux sélectionnés font égaux avecs et hauteurs égales. Et cela fera que le bouton aura la même hauteur et avec que l'image. Et nous avons besoin d'un bouton de plus en bas ici, et celui-ci va dire, Créer un bouton de recette. Vous appuyez réellement lorsque vous voulez créer la recette et croire que tout de même sur elle était juste aligné ici était une ligne horizontale dans le conteneur. Je dirai 39 du haut, et nous le ferons aussi dans une hauteur. Ok, il n'ira nulle part. D' accord, ça a l'air bien. Ok, alors allons-y et regardons. Donc, je viens juste d'avoir la vue hors du chemin là-bas. Revenons à notre contrôleur de vue ici. Et donc nous avons eu une vue de table que nous devons prendre soin de son bien ou du code dans notre
contrôleur de vue ici. Et, euh, nous
allons faire tourner notre tableau comme nous l'avons fait dans le passé. Alors appelons ça. Ah, vous je table vue source de données dans le nouveau délégué de vue de table I. Ok, ceux des protocoles que nous devons mettre en œuvre pour utiliser notre vue de table, et nous devons créer une prise de lierre pour notre vue de table. Jusqu' à présent, nous n'avons pas encore fait de données de base. Bien sûr, on doit sortir ça du chemin. Si faible var et, euh, vue de
table de type vous je vue de table. Attendez, vous je vue sur la table. On y va. D' accord. Je ne sais pas pourquoi c'est le point culminant parce que nous ne nous sommes même pas connectés à nouveau. Mais c'est bon. Tu es à cette ordure ici. Bon, donc pour les vues de table, nous savons que nous devons implémenter ah, cellule
de vue de table pour le chemin d'index Rohit. Et pour l'instant, nous pouvons juste retourner la cellule de vue de table blanche juste pour se débarrasser de l'air. Et nous savons aussi que nous avons besoin d'un,
euh, qu'est-ce que c'est un certain nombre de sections et une vue de table. Donc, retournons une section, et ensuite nous avons vue de table, nombre de lignes dans la section. Bon, maintenant, retournons zéro. Ok, donc c'est ce qu'il nous faut pour le truc de la chaudière ici. Et ça me semble bien. Tellement cool. Ok, donc on a ça. Allons connecter le storyboard ici. Euh, voyons voir. Ici. Allons, euh, à notre avis, contrôleur de contrôle, faites glisser sur la table, vous et sélectionnez vue de table. D' accord, c'est connecté maintenant. Données de base. Ok, la partie que vous attendiez. D' accord. Donc, les données de la cour ,
um, si vous remarquez ici, chaque fois que vous avez coordonné implémenté, vous avez quelque chose appelé dot xsi data model ivy et ou tout simplement model. C' est votre modèle de données,
et votre modèlede données est l'endroit où vous définissez vos données pour les données de base pour les données de base. C' est votre modèle de données,
et votre modèle Et donc, dans les temps passés, dans les temps qui viennent, nous créons beaucoup de classes,
recettes, messages, Pokemon, quoi que ce soit, quoi que ce soit, nous créons des classes, et donc les données de base vont toujours vous permettre de créer des classes comme ça. Mais ça va le lier aux données du tribunal pour qu'il puisse l'enregistrer dans la base de données, ce qui est vraiment cool. Donc, si vous allez à votre délégué d'application, puisque nous avons fait de cela un projet de données de base, il a en fait ajouté quelques choses pour nous, ce qui est vraiment agréable. Et je ne m'attends pas à ce que tu comprennes tout ça. Il y a beaucoup de choses qui se Regarde ça avec prudence. D' accord, mais si tu descends, ils font des choses ici. Tout d'abord leur définition de la pour les documents de demande. Directeur. C' est là que les données de base vont raconter la base de données dans votre répertoire de documents. Donc, il a créé ce re automatiquement une propriété qui saisit que le répertoire des documents. Et puis parlons de cela le coordinateur du magasin persistant. Donc, dans les données du tribunal, un port, un coordinateur de magasin persistant est une sorte de coordinateur qui dit, Hey, où vit ta base de données ? Sur votre disque. Où est le chemin ? C' est juste une sorte de manager qui, hum qui gère où les choses vont. Et si vous cliquez dessus,
c' est mal. Donnez-nous de l'aide. Les codes Ex ont eu beaucoup de problèmes ces derniers temps. Mais pourquoi ? Dit ici, le coordinateur de magasin persistant pour l'application que cette implémentation crée et renvoie un coordinateur, après avoir ajouté le magasin pour l'application à elle, ses propriétés facultatives. Comme il ya des conditions d'héritier légitimes qui pourraient provoquer la création de stocker est tombé toute façon. Ils ont écrit des trucs sympas pour nous, mais pensent en gros comme un coordinateur. OK, ça indique où vos données sont censées aller. C' est un peu comme le flic de la circulation de vos données qui renvoient et sortent des choses. C' est donc ce que le coordinateur de magasin persistant est. La prochaine chose importante que vous voulez comprendre est ce contexte d'objet géré. Donc, gérer le contexte d'objet est un peu comme un gratter pad. Ce que je veux dire, c'est, disons que vous avez des classes que vous apportez des modifications sur certaines classes de données de base comme vous changez le nom de quelque chose, peu importe ce qui arrive est, um quand vous travaillez avec ces données, il flotte en quelque sorte à l'intérieur d'un contexte d'objet géré est juste assis là, et jusqu'à ce que vous cliquiez ou entrez réellement, enregistrez comme ici, enregistrez le contexte essentiellement, jusqu'à ce que vous l'enregistriez réellement. Il ne passe pas réellement par le coordinateur de magasin persistant et dans la base de données, donc vous êtes géré contexte d'objet est tout comme le pavé à gratter le maintien. Vos données changent jusqu'à ce que vous persistiez sur le disque. Et c'est un peu comme les deux composantes principales des données de base. Bien sûr, il y a beaucoup de choses
qui se passent ici, que je ne vais pas expliquer. N' hésitez pas à lire cela en profondeur et à faire quelques tutoriels sur Internet si vous
voulez en savoir plus sur les données de base. Mais de toute façon, c'est tout ce qu'ils ont fait pour vous automatiquement. Donc, à tout moment, chaque fois que vous voulez faire une APP a coordonné. Je suggère que vous, euh assurez-vous que vous cliquez sur qui incluent les données de base, mais dans quand vous créez l'APP, tout
cela fait pour vous. Revenons donc au modèle de données. Cliquez sur ce qu'ils sont Donc ce que nous devons faire est que nous avons réellement besoin de créer un objet recette, um, um,
recette qui pourrait être enregistré dans la base de données. Droit. Donc, euh, si vous cliquez sur ce bouton d'entité publicitaire juste ici, ça va ajouter une nouvelle entité. Et encore une fois, il suffit de penser à cela comme une classe. Ok, euh, comme tu l'as peut-être fait avant. Nous voulons donc créer une classe de recette. Tout ce que vous avez à faire est d'appuyer, entrer et de changer le nom en recette. Fais semblant que ce n'est que les classes ou les entités. Ok, Donc à partir de maintenant, lorsque vous utilisez des données judiciaires, vous utiliserez des entités et tout comme une classe, elle a des propriétés. Dans ce cas, ils sont appelés attributs, tout comme
les besoins de recette. Les orteils ont une image, donc je peux l'appeler image, et vous allez vouloir faire ces données binaires. Donc, les images doivent être des données binaires, et il y a une autre chose que vous devez faire avec les images. Cliquez sur cette petite icône ici sur le côté droit. Affichez l'inspecteur de modèle de données, et ce que vous voulez faire est de cliquer permet le stockage externe sur vos images uniquement. Vous
ne voulez pas que ces images soient stockées directement dans la base de données. Nous en parlons plusieurs fois. Tout au long de ce cours, images doivent toujours être stockées dans un type d'espace de stockage, et donc cela va les stocker sur votre appareil dans le répertoire des documents, puis il va juste les référencer. Et c'est ce que tu veux. Ne stockez jamais dans une base de données sur n'importe quelle plateforme. N' y stocke jamais d'images réelles. Ce n'est pas le cas. Les bases de données ne sont pas faites pour des données
lourdes, des données lourdes comme ça. Ah, voilà votre image. Cliquez sur le bouton plus pour créer une nouvelle entité, et nous allons appeler cela ingrédients, et ce sera juste une chaîne pour le changer en chaîne. Ok, voilà nos ingrédients. Et puis nous avons un pas, comme des étapes pour faire la recette. Et c'est une chaîne et encore une fois remarquez. Il existe plusieurs types de données. Vous pouvez le faire à nouveau comme si c'était une classe et vous lui donnez un type sauf dans les données de la cour. Vous devez donner pour la plupart, vous devez donner des types de données brutes. Eso il peut persister à la base de données. Et donc, dans ce cas, une chaîne à nouveau. Et puis enfin, une recette a un titre. Alors donnons-lui un titre et appelons-le chaîne. Ok, et c'est tout. C' est à quel point il est simple de créer une entité. Ok, il
vous suffit d'ajouter et de voir des attributs d'annonce. Donnez-lui un type de données. Si vous travaillez avec des images, faites-les des données binaires et assurez-vous d'autoriser le stockage externe. Ok, cool. Maintenant, nous devons créer. Nous devions créer des données pour nous, n'est-ce pas ? Donc, nous allons Ah, abord pourrait faire un peu de nettoyage ici sur votre dossier de recettes. Droit. Cliquez dessus et accédez à un nouveau groupe. On va leur faire un truc de contrôleur de vue modèle. Donc mannequin, et ,
euh, on recommencera. Nouvelle vue de groupe. Je le referai. Nouveau contrôleur de groupe. D' accord, je vais faire glisser le contrôleur de vue dans la manette, et Ah, on
y va. Ça a l'air bien. Et puis nous allons dio est un retour à votre modèle de données ici. Ok, allez à l'éditeur en haut et allez, Teoh, créer des objets gérés Ennis sous-classe toutes les entités de données de base héritent de N
objet géré . Tu n'as pas besoin de t'en inquiéter pour l'instant. Sachez juste qu'il parle le cordon ou permet à votre classe d'être sauvé selon Rappelez-vous
comment avant que l'utilisateur Ennis ne soit par défaut, nous devions faire l'encodage et le décodage. Rappelez-vous, nous avons dû ajouter du co supplémentaire pour ça. Eh bien, ils ont leur propre version qui se passe dans les coulisses pour vous déjà. Donc, vous n'avez pas besoin d'écrire ce code, ce qui est vraiment sympa. Donc, cliquez sur Créer cette sous-classe d'objets gérés et, euh, vous voulez cliquer sur Cliquez sur votre modèle de données. Nous n'en avons qu'une, qui est des recettes. Et puis, euh, ça va énumérer plusieurs entités ici si vous en avez plus d'une. Mais nous avons juste une fois un sélecteur, une recette. Et puis, euh, ce qu'il va faire, c'est juste que ça va te dire, où voulez-vous le mettre ? Language Swift va bien, alors cliquez sur Créer. Et ça vient de créer deux fichiers pour nous. Comme vous pouvez le voir dans le haut ici recette point rapide et recette plus les propriétés de données de base qui est fouetté. Cliquez sur les deux et faites-le glisser dans votre dossier de modèle. C' est ce que vous allez les utiliser. Donc, si vous regardez votre recette ainsi que les propriétés de données de base, remarquez comment il a nos champs ici a maintenant quelque chose appelé et il est géré là-bas, que vous n'avez jamais vu auparavant. Mais c'est un peu comme, vous savez, le VARS Ok, il y a juste un tas de champs ici, donc je l'ai préparé pour vous, donc vous ne jamais, voudrez
jamais,jamais modifier ce fichier. Cette recette de recette ainsi que les propriétés coordonnées ne modifient jamais cela. Si vous voulez changer ces choses ici, revenez à votre modèle de données. Vous modifiez vos attributs d'entité, puis vous générez à nouveau cette sous-classe. Ne changez jamais ce fichier. ai eu. Ce que vous pouvez changer, cependant, est votre recette aussi rapide. C' est un code personnalisé. Ah, et bien sûr, ça va marcher avec ça. Mais c'est n'importe quel code personnalisé que vous voulez écrire pour votre classe. Si vous voulez des données de format comme mettre des signes de dollar devant la monnaie, choses comme ça, vous pouvez le faire. Très bien ici, ce qui est vraiment cool. Hum, et on va écrire du code ici. Teoh, gère la façon dont les images sont traitées. Et de toute façon, nous avons des données de base fonctionnant dans sa forme la plus simple en ce moment. Et alors pourquoi ne pas aller de l'avant et obtenir notre, um notre image fonctionne de la façon dont nous avons besoin. Et ce que je veux dire, c'est qu'on ne peut pas simplement enregistrer une image U Y dans le répertoire des documents. Tu te souviens de ça de l'application My Hood ? Fondamentalement, nous devons convertir les choses. données de Teoh. Donc funk set recette, image de type image. Vous je vous images ne surgissent pas parce que nous n'avons pas importé. Tu aimes ça ? Ugo, c'est ton image. Donc, nous voulons définir une image que nous allons mettre au point ou dire que les données sont égales à vous. J' imagine la représentation PNG et on va dire l'image et on va dire que l'image de point d'auto est égale aux données. Rappelez-vous comment dans notre entité ici, nous avons ah, image et ses données binaires ici et le reste des propriétés de données de base des gens, Nous avons l'image et c'est N données. Donc tout ce que nous avons à faire ici parce qu'il a une référence à elle, c'est une image auto-point. Cette même propriété est égale à cette donnée PNG super facile, puis funk get image de recette. D' accord. Et ça va juste revenir à l'image, et on va dire, Laisse-moi être G est égal à toi. J' image l'image à partir de données, et les données vont être l'image auto-point. On va juste prendre les données de l'image et ensuite retourner l'image. Donc, nous avons juste utilisé cette classe de recettes vraiment cool qui nous a été fournie à partir des données de base et ajouté des fonctionnalités personnalisées à elle. Notez qu'il hérite de l'objet géré Ennis, et, euh , ici, nous avons toutes nos propriétés pour nos données de base pour nos champs de données de base ici. Tellement cool. Ok, donc on a notre journée de travail pour nous ici, Hum et ah, allons de l'avant et regarde. Maintenant à notre avis, contrôleur. Par conséquent, les contrôleurs d'examen avec les vues de table à l'intérieur d'eux doivent référencer un type de données. instant, nous n'en avons pas encore, mais affaiblir la mise en place du cadre pour que les choses aillent là où elles doivent être. Alors, euh, allons-y et ah, euh, et déjà les recettes de Vira sont égales Ok, regarde ça. C' est vraiment cool. Donc, euh, on peut juste faire une liste de recettes Honore en utilisant notre classe de recettes. C' est vraiment cool. Et puis au lieu de retourner zéro ici, nous avons juste été retournés recettes dot count et ah, qui regarde bien, nous
criant dessus ici. Allons de l'avant et construisons nous même se débarrasser de ces erreurs ici. Euh, j'ai cassé quelque chose. J' ai oublié de mettre le point d'exclamation ici pour le déballer. Essayons de le construire. Maintenant, parfois si votre code ex trébuche et comme, les choses ne fonctionnent tout simplement pas. Euh, assure-toi de le construire pour qu'il ait confiné les Ares et qu'il s'en débarrasse. Parce que parfois un air provoque la rupture du reste de votre programme, qui n'est pas ce que nous voulons. Ok, donc très cool. Nous référençons à présent notre liste de recettes ici encore. n'y a pas encore de recettes dedans. Hum, et on y arrivera dans une minute. Mais ce que nous devons faire maintenant, c'est finir ou vous pourquoi ? Ok, on
a une cellule dont on doit s'occuper, non ? Nous devons obtenir,
euh, nous devons obtenir l'image et le titre apparaissant dans la cellule. On n'a pas créé cette cellule. Oui, faisons-le. Maintenant. Donc, fichier dans le dossier de vue ici, fichier nouveau fichier et cliquez sur la source sous IOS Cliquez sur Cocoa Touch Class. Et changeons ça. Vous avez une classe de parent contrôleur pour vous, une cellule de vue de table et celle-ci, on va juste appeler, euh, comment on appelle une cellule de recette ? D' accord. Cellule de recette et va le créer. Son créateur. Je suis des points de vente ici. Ok, on a déjà fait le U Y pour ça. Un générateur d'interface. On a juste besoin de faire le code ici. Donc, à Ivy Outlet semaine var. Et il a un titre. Euh, c'est le titre de la recette attrapé. Parfois, je m'inquiète en utilisant le mot description du titre, parce que parfois certaines classes de l'Iowa ont ces propriétés. Nous ne voulons pas contourner le conflit du marché. Donc titre de la recette Il va être vous, J'étiquette et je suis Outlet semaine var. C' est une image de recette après vue, je l'image de vous, et je pense que c'est tout ce que nous avons besoin de faire référence là à nouveau. On va faire notre fonction de cellule de configuration, funk, configurer cellule et ah, ça va prendre un objet de recette. Et ce que nous allons dio, c'est que nous allons dire, Ah, titre de la
recette point texte est égal à titre de point de recette et nous dirons image de point de recette image égale, um point de recette image de recette cette fonction que nous avons créée pour nous donner le réel U Y image. Donc, dans la cellule de configuration et le prochain chemin du téléphone portable, on appellera ça chaque fois qu'on aura besoin d'une nouvelle cellule et ça va le configurer. Et donc, connectons cela un constructeur d'interface. Cliquez sur votre principal et non sur le storyboard. D' accord. Et, euh, cliquez sur votre cellule ici
voir la table, voir la cellule, et évidemment il n'a pas de classes personnalisées ou ouvrez le côté droit ici en ayant les cellules sélectionnées. Cliquez sur l'inspecteur d'identité. Et passons cela à la cellule de recette personnalisée. Là, nous allons, Cliquez-droit maintenant et qui est l'image de la recette et il suffit de cliquer et de faire glisser ici et titre de la
recette. Cliquez et faites glisser ici. Nous avons besoin d'ajouter une réutilisation de cellules, d'identifier l'air. Alors cliquez sur vos attributs, inspecteur. Et appelons cette recette cellules juste appelé le même nom que la classe. Donc, ce n'est pas
déroutant, alors copions ça. Allons à notre contrôleur de vue ici. Et, euh, encore une fois, je suis juste en train de passer en revue les choses qu'on a déjà faites avant. Euh, et donc ce n'est pas une
grosse affaire. Nous n'avons pas parlé des données judiciaires trop en profondeur comme faras chercher des choses. Donc on va nous faire mettre plus de temps là-dedans dans une minute ici. Et, euh, ce qu'on va faire, c'est la même chose qu'on a fait dans le passé. Donc, nous disons, si vendons égal table view dot de Que cellule réutilisable avec identifiant, nous allons passer dans notre cellule de recette identifier que nous venons de créer comme nous allons appeler cette vente de
recettes. Ok, donc si on vend, on va dire qu'on a navigué. Wolf, en fait, abord nous allons jeter le poteau. Laissez la recette poster. Donc, laissez recette égale recettes chemin d'index dot ro. Donc, prenez la recette actuelle à l'index actuel, et puis nous pouvons faire vendre dot configure cell et nous pouvons passer dans cette recette. D' accord ? Et puis, bien
sûr, nous rendrons la vente. Si ça a été abattu, pour une raison que ça ne le fait jamais, on reviendra. Ah, la cellule de recette, comme ça. Voyez si ça marche pour nous. J' ai vu un petit flash rouge là-bas, mais ça marche. C' est OK. Donc, une chose que nous devons faire maintenant est, à notre avis, a fait charger. Nous devons définir les délégués de sorte que le délégué de point de vue de table est égal à soi dans la vue de table. Cette source de données est égale à soi. Parce que nous avons implémenté les protocoles, nous devons définir les délégués, et tout cela semble fonctionner. Allons de l'avant et lançons l'application. Et ce que nous devrions voir n'est rien. Mais j'espère qu'il n'y a pas de crash. Alors, allons-y et changeons-le. Teoh iPhone six. Ici. Je vais faire ça et encore. Euh, je teste juste pour voir si les vues de table sont connectées et il n'y a rien grand qui me manque donc on n'a pas à s'inquiéter de ça plus tard. Lorsque nous commençons à travailler avec les données de base, ici nous allons courir. Il est en cours d'
exécution, en
cours d'exécution, en cours d'exécution, mais il est là. Ok, donc ça a l'air bien. Pas encore de crash. Euh, encore. Mais on a une table de vous là-bas. C' est bon. n'y a pas de cellules. Et parce que de toute évidence, nous n' ,
euh, avons pas,
euh,nous n'avons pas mis de données États-Unis alors allons de l'avant et appelons cette vidéo faite dans celle-ci. Nous venons d'arriver à vous et tout est préparé pour les données de base. nous avons construit un modèle de données Cependant,nous avons construit un modèle de données. D' accord. Uh, avec des attributs de cette entité et nous avons écrit du code personnalisé pour obtenir et enregistrer des images. Et alors allons-y. Et la prochaine vidéo, qui est la dernière vidéo que nous allons aller de l'avant et montrer comment enregistrer pour les éléments de données aussi. Ça le sera. Ce n'est pas une grosse affaire. Donc, j'étais heureux et passer à autre chose.
70. App: Recipez Partie 2 (données centrale): Hey, tout le monde, continuons à construire nos recettes, et ce qu'on va faire maintenant c'est aller à notre contrôleur de vue et faire afficher nos données et
afficher un écran. Et encore une fois, nous ne pouvons pas vraiment afficher les données à l'écran tant que nous n'avons pas réellement de données. Mais c'est un bon endroit pour commencer. Donc, pour récupérer les résultats,
ok, ok, quand je dis aller chercher les résultats, chaque fois que vous voulez obtenir un type de données, vous devez le récupérer de la base de données. D' accord ? Et pour ce faire, vous avez utilisé un contrôleur de résultats récupéré, et nous devons en créer un afin de récupérer des données. Jusqu' à présent, le contrôleur des résultats
récupérés est égal à N s récupérés. Et ça ne marche pas. Pourquoi ? Parce que nous n'avons pas importé les données de base importées comme ça. Ok, essayons à nouveau et a récupéré les résultats Controller. Très bien. Et c'est génial. Et donc ce que nous voulons faire est que nous allons créer une fonction pour récupérer les résultats et ensuite les
définir après qu'ils aient été récupérés. Donc ah, funk va chercher et définir les résultats. D' accord. Et, euh, pour faire une demande de récupération, accord, nous devons travailler avec certaines des choses qui nous sont fournies dans le délégué arrière . A savoir juste le contexte de l'objet géré. Ou c'est là ? Ah, avis. Donc, il a créé une propriété dans notre application. Délégué juste ici. Et nous devons pouvoir l'utiliser. Ok, dans l'ordre, Teoh, fais des demandes. Il faut qu'on l'attrape. Alors allez à votre contrôleur de vue, et nous devons d'abord saisir le délégué de l'application. Alors laissez à égal vous. Je demande pas d'application partagée. C' est ainsi que vous attrapez les délégués de l'application, juste la façon dont vous le faites dot Delegate. Il n'y a donc jamais qu'un seul délégué d'application dans n'importe quelle application. Donc, votre application que le délégué de point d'application partagé vous donnera toujours le
délégué principal , et nous allons forcer le déballer parce que je sais que ça va marcher, et nous allons forcer le déballer en tant que délégué d'application. Et puis, euh, nous devons saisir son contexte du contexte d'objet géré que je viens de vous montrer pour que nous puissions nous souvenir du contexte du scratch pad, et nous pensons que nous devons être capables de mettre des données et de changer des données dessus, puis enregistrer ça. Donc, il passe par le coordinateur de magasin persistant dans la base de données. Et alors laissez le contexte égalent l'application. Donc appelé ce, euh, délégué d'application
gérée point contexte d'objet géré. D' accord. Et eso plus de faire est de saisir la propriété sur son application. Le délégué venait juste d'attraper ça ici. On appelle juste ça. Mais nous ne pouvions pas le faire tant que nous n'avons pas eu une référence au délégué APP, ce que nous avons maintenant. Ok, donc il y a un contexte d'objet géré, vous vous souvenez ? C' est le tapis à gratter. Et alors laissez aller chercher. requête est égale à N demandes récupérées et s demandes de récupération. D' accord. Donc, pour obtenir des données, vous devez faire ce qu'on appelle une demande de récupération d'Ennis. OK ? Comme ça. Et il cherche un nom de l'entité initialise une requête de récupération configurée avec un nom d'entité
donné. Quel est le nom de notre entité ? Eh bien, c'est une recette. Ah. Donc, l'entité que vous avez ici dans votre recette de modèle de données est la même que vous voulez appeler ici. Nous devons donc faire une requête de récupération avec cette entité spécifique. Ce qui signifie que nous voulons saisir toutes les entités qui ont ce nom dessus. Et bien sûr, coordinateur, vous pouvez faire du filtrage complexe et toutes sortes de choses. Donc si vous ne voulez pas si vous ne voulez pas tous les résultats comme, disons que vous avez eu 1 000 000 de résultats et que vous vouliez seulement, genre, 10 ou quelque chose comme ça. Vous pouvez faire tout ce genre de choses dans les données du tribunal. Donc, nous allons affecter, demander et affecter les demandes peuvent tomber. Donc, nous devons faire un bloc do. Sinon, il nous criera dessus. Donc on peut attraper le problème, non ? Ainsi, les résultats permettent aux résultats d'essayer le contexte. Donc, prenez votre objet géré Contextes qui exécutent la requête de récupération, OK, comme ça. Et il veut la demande, que nous avons déjà créée juste au-dessus. Ok, donc tout ce qui se passe ici, c'est que nous disons, hé, le contexte d'objet
géré. Faites une demande pour que nous parlions à la base de données, accord, et récupérez des données et nous les apportons. Donc il va parler à la presse est persistante. Le coordinateur du magasin va prendre des trucs pour nous. Euh, et, euh, ça va commencer ici et les résultats, OK. Et si cela a fonctionné, allaient dire recettes auto point égale résultats. Résultats comme, euh, recette. On va le forcer et l'envelopper parce que je sais que ça va être une recette, parce que je viens de dire que c'était une recette ici, donc si c'était capable d'obtenir des résultats. Allons-y et stockons-le dans notre gamme de recettes juste ici. D' accord. Euh, très bien. Et puis on dira attraper Got. Toujours avoir cette capture, cause juste comme il va jeter Ennis Air, nous pouvons juste imprimer l'
air, la description de débogage de point d'air si elle avait un problème ou autre. Ok, donc très cool. Maintenant, quand voulons-nous récupérer et définir les résultats ? Eh bien, réfléchissons à ça. Donc, quand, bien
sûr, les premiers chargements, nous voulons tirer vers le haut et globaliste des données. OK, Aussi, si nous ouvrons l'autre écran pour créer un objet créent une recette à moins qu'ils cliquent, enregistrer dans l'écran disparaît chaque fois que cet écran réapparaît. Cette liste ici, nous voulons Teoh, nous voulons rafraîchir donc vu Load. Je ne suis pas sûr que ce soit le meilleur endroit pour ça cette fois, parce que ça ne sera appelé qu'une seule fois. J' ai donc vu qu'il semble être un meilleur endroit pour faire cette vérification. Donc, chaque fois que la vue apparaît, nous allons juste obtenir les résultats à nouveau. Donc on va dire, euh, chercher et fixer des résultats. Et une fois que nous avons récupéré et défini, les résultats allaient dire vue de table qui rechargent les données. D' accord ? Et il me crie dessus. Construisons ça et voyons pourquoi il me crie dessus. D' accord. Oh, il, euh, il veut l'override. Donc, notre auto complète et la bêta Exco a parfois des problèmes. Donc le nom de membre attendu ou l'appel du constructeur. Ce ne serait pas un signe égal. Ça devrait être un deux-points. Ma méchante. D' accord. Et, euh, tu sais quoi ? Je ne pense même pas dans ce cas. J' ai devancé moi-même. Je ne pense même pas que nous ayons besoin du contrôleur de résultats récupérés n'importe où, parce que je ne pense pas que nous l'utilisions. En fait, oui, on l'a fait. Nous ne le sommes pas. Vous n'utilisez même nulle part. J' ai construit tellement d'applications de données de base qui sont un peu plus complexes dans ce domaine que
c'est juste une habitude de mettre ça ici. J' ai construit tellement d'applications de données de base qui sont un peu plus complexes dans ce domaine que Un contrôleur de résultats de récupération fonctionne avec votre vue de table pour faire des choses plus complexes. On ne fait rien de trop complexe, alors grattez la tête. Excusez-moi ? On n'en a pas besoin, alors je vais aller de l'avant et courir, Command Plus doit courir et s'assurer qu'il n'y a pas de crash en cours d'
exécution, exécution, course, accord, pas de crash. C' est très bien. Ok, je suis curieux. Si ce nouveau bouton fonctionne, nous le faisons. Nous essayons de voir si ça marche. Cela fonctionne dans le bouton de retour. Ça marche aussi. Joli. Donc d'accord, sorte que le nouvel écran est définitivement chargé là, ce qui est vraiment cool. l' J' ail'impression qu'on a besoin d'une image de porte-gabarit là-bas. Aussi, nous devons créer le contrôleur de vue pour cet écran ici,
euh, et, euh, euh, que nous puissions réellement enregistrer des données. Et je pense que c'est le dernier composant. Vraiment. Parfois, quand je construis de grandes applications, je ne le ferai pas. Je ne vais pas passer tout ce temps à vous construire y pour les deux écrans afin que je puisse poster et enregistrer. Ce que je vais probablement faire est d'exécuter des tests, enregistrer ici dans ce contrôleur de vue, et d'exécuter des sauvegardes ici. Comme dans la vue, n'a chargé juste pour voir s'ils peuplent là. Mais c'est une petite application. Ce n'est pas une grosse affaire. Alors allons de l'avant et avançons. Um, pourrait rester storyboard. La première chose que je veux faire est sur ce contrôle de vue ici. Je veux y mettre un modèle pour notre image de base. Si je pouvais en trouver un n'importe où,
oui,
on en a un ici. Si je pouvais en trouver un n'importe où, oui, J' ai le hamburger de l'école, cette nourriture. Alors cliquez sur vos actifs ici juste faites glisser cette nourriture là. Retourne à ton storyboard principal et je vais ouvrir le côté droit ici et m'assurer que j'
ai sélectionné mon image. Ça a juste changé le fond de la nourriture. Et ça va être un aspect. Phil a l'air génial. Ok, voilà notre nourriture. J' aime ça. Ok, créons un contrôleur de vue pour cela maintenant. Donc dans notre dossier de contrôleur, non ? Cliquez sur et allez dans un nouveau fichier, classe tactile
Cocoa et, euh, non, attendez. Au lieu de la table de vous vendre, disons, euh, vous je vois le contrôleur, et celui-ci va s'appeler créer une recette VC pour contrôleur de vue A Riggio. Débarrassons-nous de ce truc de chaudron. Ok, ça a l'air bien. Et, euh, nous allons à droite sur le code ici. Alors, qu'est-ce qu'on veut qu'il arrive quand on aura nos points de vente pour les champs ? Euh, sélection d'
image, puis l'enregistrement et tout ça. Tout ce jazz. Alors allons de l'avant et faisons nos points de vente I B à IBL. Une semaine de notre titre de recette est vous. Champ de texte I pour le titre. Je suis Outlet Week Bar ingrédients recette. Champ de texte W I. Je serais un bar de la semaine et ce sont des étapes de la recette. Vous je champ de texte je suis Outlet semaine var recette type d'image vous I image vue, puis ibl il barre
semaine ajouter recette, Ajouter bouton recette DepuY bouton. On veut Teoh. Gardez une référence au mais là-dedans. D' accord. Et puis on a besoin d'un sélecteur d'images, non ? Et nous venons de le faire avec la dernière application. Allons donc voir si nous pouvons nous rappeler comment le faire. En fait, si vous vouliez mettre en pause la vidéo et voir si vous pouvez implémenter la sélection d'image sur votre propre et les parties OK, je suis sûr que vous avez fait ça. Allons de l'avant et disons que je t'imagine. Je sélecteur d'image, contrôleur, délégué. Et puis, bien
sûr, nous avons besoin de l'associé. Um délégué du contrôleur de navigation. D' accord. Et puis nous devons stocker un sélecteur d'image lointain sélecteur d'
image, sélecteur d'image. Bien sûr, encore une fois, je vais un peu plus vite ici que la dernière vidéo parce que nous venons de le faire et nous sommes ici pour renforcer les concepts et j'espère que vous faites beaucoup de choses par vous-même. Si vous savez déjà comment le faire, ne me copiez pas si vous n'avez pas à le faire. Allons de l'avant et créer notre sélecteur d'image et vu le chargement. Donc, je contrôleur de sélecteur d'image un sélecteur d'image dot délégué Equal self Rappelez-vous tout
cela ? Pas grand-chose. Um ok. Et, ah, disons,
euh, image de recette point euh, couche, disons vite que je déteste les coins carrés. Normalement créé vue personnalisée pour cela, mais vous savez, vous savez déjà que ce n'est pas une image de recette grosse affaire Ce clip aux limites est vrai. Donc, il ne sort pas des bords des coins arrondis. Ça a l'air super. Hum, maintenant qu'en est-il de la, euh, la méthode déléguée dont on a besoin pour appeler son contrôleur de sélecteur d'images a fini de choisir l'image. Et quand cela se produit, nous voulons, bien
sûr, rejeter le sélecteur d'images. On se fiche du rappel. Um, puis la recette image point Image est égale à l'image sélectionnée que nous venons d'obtenir du
sélecteur d'image ici. Côté gauche, un peu plus d'espace ici. Ok, donc on a rejeté le piquet de grève, la vigueur de l'image, et ensuite on a mis l'image du sélecteur. Ça a l'air génial. Euh, d'accord. Et puis qu'en est-il quand la personne appuie sur le bouton Teoh loden image. Donc, créditons que je sois d'action pour ça. Je suis l'action funk, ajouter l'expéditeur d'image. Tout objet que vous avez vu intact avant. Ça va nous envoyer le Mais dans ce cas,
nous, euh, que nous, euh,avons euh, cliqué sur et puis présenter le contrôleur de vue, ça va être un sélecteur d'images. Animé est vrai parce que tout ce qui n'est pas animé, c'est un peu ennuyeux. Hum, donc nous chargeons juste l'image quand elle est sélectionnée, ce qui est très bien. Euh, ok, quoi d'autre ? Euh, le bouton Créer recette un autre je réaction funk, créer l'expéditeur de recette. N' importe quel objet. D' accord. Et, euh, nous allons nous assurer que, euh, nous allons juste nous assurer qu'il y a un titre. C' est la seule chose qui soit nécessaire. Donc, si le titre est égal à un texte de point de titre de recette où le titre n'est pas égal à une chaîne vide , assurez-vous juste qu'il y a ,
ah ,
un titre dessus, et assurez-vous
que non, c'est bien. Juste un titre. Ok, hum, faisons un peu. Allons faire toutes les autres choses là-bas, aussi. Donc, euh, d'accord, on a une image. On a une description. Euh, eh bien, ce qu'on va faire, on veut les extraire des champs de texte, et ensuite on veut les sauver. Donc, um, faire afin de sauver quelque chose, les données de base, nous allons avoir besoin de ce contexte d'objet géré à nouveau. Droit ? Alors laissez à égal vous. J' applique cette application partagée, pas déléguer en tant que délégué. Ok, juste Graham sans aide, il l'
attrape encore. Laissez le contexte est égal au contexte d'objet géré par point d'application. Et cette fois, quand vous créez réellement et qu'on doit obtenir une référence à une entité que nous allons
sauver ,
alors, euh, euh, en fait, pourquoi ? Mais l'entité est égale à l'entité N, euh, importer des données de base en haut ici. Continuez à oublier. Vous voulez utiliser quelque chose, vous devez importer des données de base importées. D' accord. Chaque fois que l'auto se termine, ne travaillant pas sur un genre de classe, j'ai réalisé que je ne l'ai probablement pas importé. Donc l'entité est Ennis. Entité description point Entité pour le nom, et nous voulons recette dans le contexte d'objet géré. Vous pouvez en fait avoir plusieurs contexte d'objet géré dans une application. On n'en a qu'une. Mais c'est pourquoi cela vous donne la possibilité d'en choisir un. Donc, pour créer une nouvelle classe de recettes, nous devons dire quel genre d'entité ce sera, qui est juste ici. Ok
, je pense qu'ils devraient gérer ça en interne. Je ne sais pas pourquoi ils le séparent comme ça, mais c'est juste la façon dont cela et puis nous dirons, Laissez recette égale une nouvelle recette comme ça. Et ça ne va pas faire l'auto complet pour toi. Faites donc attention aux paramètres que j'entre. Donc, c'est l'entité. Nous allons passer dans l'entité et ensuite insérer dans le contexte d'objet géré. On y va. OK, donc, euh, puisque notre classe de recettes hérite de l'objet géré Ennis. D' accord ? L' un des er d'initialisation nous permet de passer dans une entité, puis il veut le contexte dans lequel vous allez enregistrer à nouveau. Je pense qu'ils devraient faire cela en interne. Manipulé ? Je ne sais pas pourquoi ils ne le font pas, mais c'est comme ça que tu dois le faire. Et j'ai besoin de Teoh. J' en ai besoin. Développez notre entité ici. J' ai mis l'exclamation à la fin. Ok, ça a l'air bien. Allons, euh donc nous avons donc ce que nous avons jusqu'à ce que nous avons obtenu, nous attrapons le délégué de l'application qui a saisi le contexte de l'objet géré. Nous avons créé une référence d'entité pour la recette, puis nous avons créé une nouvelle classe de recette réelle cet objet que nous avons créé et utilisé. Donc maintenant nous avons besoin de dio est nous assigné les valeurs dans un objet de recette. Donc le titre de point de recette est égal à ce titre ici que nous avons sauvé, ce qui est très bien. Et, euh, cet air sur l'écran est un peu ennuyeux. Je ne vais pas mentir. D' accord. Et puis les ingrédients de point de recette est égal à ce qui l'a rappelé. Ingrédients de recette Ingrédients de recette texte point pas de recette de point égal étapes de recette point Texas Prenez hors du champ de texte. Si elle existe. Image de recette de l'ensemble de points de recette. Et celui-ci sera l'image de recette de l'image, saisit l'image et la transmet, et on va supposer qu'il y a une image ici. Vous pouvez lire plus de traitement de l'air par vous-même. Tu l'as déjà fait avant ? Pas une grosse affaire. Ok, donc on a ce qu'on a fait ici. Excusez-moi ? Ce qu'on a fait ici,
c'est ,
c' créer une recette. Hum, et nous utilisons une entité spécifique, qui est l'entité de recette. Ok, on dit juste, Hey, ces matchup, c'est le contexte qu'on veut sauver aussi. Et puis c'est juste le champ de classe ici. Donc si j'ouvre mon côté gauche ici et que je clique. Euh, ma recette. C' est notre robe d'être ici. C' est juste ces champs que nous saisissons. C' est mis à notre disposition. Et donc oui, les ingrédients
du titre, les
étapes, étapes, l'image de
la recette. On est juste en train de mettre tout ça ici. Maintenant, nous ne l'avons pas encore fait. Creed l'a encore sauvé. Allons-y et faisons-le maintenant. Donc, disons un objet d'insertion de point de contexte, et c'est insérer notre recette. Celui-ci ici, insérons-le dans le contexte. Rappelez-vous, le contexte est un tapis à gratter. Rien de ce qui a persisté jusqu'à ce que nous lui disions ce qui n'est pas encore arrivé. Et encore une fois, cela peut jeter sur l'air. Donc ce qu'on va dio est dû. On va dire, essayez le contexte sans danger. D' accord. Donc, tout ce qui flotte dans ce contexte d'objet géré, nous allons Teoh Now, sauvez-le. On va attraper n'importe quel héritier, et on est censés juste imprimer, euh, on ne peut pas dire recette. Ouais, d' accord. Et qu'est-ce qu'on veut faire ? Donc, ouais, après avoir sauvegardé une recette, allons-y et, euh, contrôleur de vue
rejeté animé. Allons le rejeter. Ok, on a beaucoup de choses à faire, mais ce n'est pas tant que ça. C' est en fait que 62 lignes de code. Ok, donc, ouais, tu as choisi l'image, tu l'as sélectionnée. Et quand vous allez le sauvegarder, nous créons notre entité, notre contexte, nous fixons juste les valeurs. Et puis nous l'insérons dans le contexte, puis nous essayons de rester dans le contexte. Chaque fois que vous appelez dot save sur le contexte va parler au coordinateur du magasin persistant , une tentative de sauvegarder cela dans le stockage permanent, ce qui est vraiment cool sont notre seul problème en ce moment est, euh, nous n'avons pas branché les points de vente. Alors allez à votre storyboard principal. Cliquez sur ce type ici, ouvrez le côté droit. Assurons-nous dans l'inspecteur d'identité que nous ne sommes pas vous, le contrôleur de vue. Assurez-vous de cliquer pour afficher le contrôleur. Assurez-vous que nous changeons la classe pour créer un contrôleur de vue de recette afin que nous puissions définir les vente et autres choses. Droit ? Cliquez dessus et oui, il y a des étapes de recette. Donc la recette de celle-ci suit les ingrédients de la recette de celle-ci. Je suis juste en train de cliquer et de faire glisser. Il y a une image de recette. En fait, l'adresse doit être, mais je ne pense pas que nous ayons vraiment besoin de le faire. Cette référence déformée à cette cause nous ne faisons rien avec elle. Et puis le titre de la recette. Ensuite, nous avons eu quelques actions. Donc, cette image de l'annonce, um, vous pouvez simplement cliquer et faire glisser là et faire retoucher à l'intérieur, et puis cette grande recette, cliquez sur le bouton, Retouchez à l'intérieur. Ok, tu devrais essayer. Donnons-lui un coup de feu. On y va. On y va. Montre-moi l'argent. D' accord. Rien de sérieux. Nous n'avons rien créé, donc il est clic nouveau charge l'écran, le titre. Et comme les autres choses sont nécessaires, je ne vais pas les ajouter maintenant. Alors disons le titre et appelons ça,
euh, euh, trucs
super cool parce que ce ne sera pas une recette. Je n'ai pas de recettes sur le simulateur Images. Cliquez au moins sur Ajouter une image. Oui. Autoriser l'accès. Nous allons faire cette image de l'application ici. D' accord. Et allons de l'avant et cliquez. J' ai l'impression que ce n'est pas arrondi, mais peut-être que c'est peut-être que je deviens fou ici et puis cliquez sur Créer une recette et je sens que
rien ne s'est passé. Cliquons en arrière. Eh bien, c'est définitivement là, en fait. Je sais ce qui s'est passé. Revenons à notre contrôleur de vue de recette de création. On ne veut pas le contrôleur de vue. On veut Ah, pop. Non, nous voulons auto que le contrôleur de navigation point pop Um Pop do contrôleur animé. C' est ce qu'on veut. Nous voulons un poppet, retour aussi, je sens que cette image ici est tendue dans notre cellule. Alors allons de l'avant et ne pas l'étirer. Allons de l'avant et allons sur notre Story Board principal et cliquez sur le contrôleur de la première vue. Et sur cette vue d'image ici, mettons-la à ne pas mettre à l'échelle pour remplir. Mais l'aspect se sentent là, nous y allons. Et
essayons de le faire fonctionner à nouveau. Et en fait, l'image devrait toujours être là parce que nous avons enregistré dans les données judiciaires même après la fermeture de l'application . Ok, c'est leur très agréable que je n'aime pas ces lignes ici, et c'était une mauvaise image à choisir parce qu'elle ne couvre pas tout l'espace, donc il n'a pas l'air aussi cool que l'exemple à, mais cliquez sur nouveau. Et appelons ça, euh, sauce
baume. C' est clic. Ajouter l'image choisira un 11 différent qui est en plein écran, comme cette bande de recettes très qui semble beaucoup mieux. En fait, je ne peux pas vivre avec ça. Je dois le supprimer. Je dois juste demander à un gars de s'en débarrasser. Essayons encore ça. Je ne peux pas le supporter avec quelque chose qui n'est pas à sa place. Il faut juste que ça soit parfait. Ok, donc ces lignes, OK, allons-y. Euh, répare ça. Ici, découpez votre vue de table et votre séparateur sur la droite. A l'intérieur. Cliquer sur terminé. Et séparez-la. Ouais, c'est très bien. Arrêtons-le et recommence-le. Ok, beaucoup mieux est parti maintenant. Ok, New a encore essayé. Sauce bombe. Ajouter une image. On dirait que cette cascade fraîche n'est pas des recettes, mais ils vont faire le travail. C' est bon. Nouveau encore. Va dire Luke. Luc. Juste parce que les analystes aiment une autre cascade. On y va. Ouais, il a les beaux bords arrondis, donc on dirait que ça marche chaque fois qu'on va voir. C' est rafraîchissant. Il récupère les résultats de notre base de données. Um, faire un nouveau Larry 3 effrayant. Je pense que c'est un film. Pas vraiment. Euh, d'accord. Beaucoup de cascades. Peut-être qu'on devrait appeler ça des cascades du Z au lieu de recettes avec Z. Ok, donc on a, hum on a des recettes en cours ici. Ça a l'air bien. Ça a l'air bien. Alors c'est tout, Vraiment. Je veux dire, donc ce n'était pas très différent. En ce qui concerne le vent, n'
est pas différent de ce que nous venons de faire sur mon application de capot. La seule différence est que nous avons utilisé des données de base, qui ont des entités, comme vous pouvez le voir ici. Nous l'avons inclus quand nous avons créé le projet, qui a créé tous ces trucs de chaudron ici. Si vous ne l'avez pas sélectionné et que vous ajoutez des données de base plus tard à votre projet, vous devrez implémenter tout cela par vous-même. Ok, Donc quand vous
apprendrez, assurez-vous de créer votre projet avec ceci. Tu n'as pas à le faire tout seul. Donc ce qu'on a fait c'est qu'on a créé une entité ici, et ensuite on, euh, générerait. Nous sommes allés à l'éditeur, puis nous générons, créé et sa sous-classe d'objet géré. Et puis il a créé ces deux-là pour nous. OK, on n'a jamais touché ceux-ci. C' est intouchable. Le fichier a juste nos propriétés. Celui-ci ici, nous pouvons toucher, nous définissons une image définie et recevoir ou obtenir une image qui le convertit en une seule donnée et vice versa . Et puis, euh, dans notre contrôleur de vue, nous avons juste fait une demande de récupération pour récupérer les résultats. Et ce n'était pas beaucoup de lignes de code. Juste ceci. Il suffit de trouver les résultats et de les saisir et de les montrer. Et puis dans notre recette de création, tout ce que nous avons fait était de saisir le contexte comme nous l'avions fait auparavant. Mais cette fois, nous avons créé une entité, mettez-la à l'intérieur de notre recette. Et puis nous avons dit les ingrédients du titre, etcetera, etcetera. Nous l'avons d'abord commencé dans le contexte, puis nous avons sauvé le contexte. Et c'est l'ETA de maïs et sa forme la plus simple. Donc, si vous voulez une simple persistance des données, c'est un excellent moyen de le faire. C' est beaucoup plus rapide, je pense, que les valeurs par défaut de l'utilisateur Ennis et beaucoup mieux adapté pour tout. Je suggère donc de le faire à la place. Mais les valeurs par défaut de l'utilisateur Ennis sont idéales pour stocker des choses simples. Alors fais ce que tu veux, même si ce n'est pas grave. Mais commencez à prendre du temps pour en savoir plus sur les données. Cela vous profitera dans votre carrière, et c'est tout. Plutôt cool. Allons de l'avant et
71. Vitrine pour les apprenants: Hé, tout le monde, Mark Pricier sourd soaps dot com et je voulais juste prendre un moment et vous montrer une
vitrine étudiante après ce que je veux dire, c'est qu'il y a un gentleman avec qui je travaillais en personne comment son nom est Pierson, et il était quelqu'un que je mentorais dans IOS Development et il a bêta test de ce cours, et il a fait une sieste et en fait sorti sur le magasin APP. Et tout ce que nous faisons dans ce trimestre vous permettra de construire une application
professionnelle comme il l'a fait. Et vous pourriez réellement construire une application semblable à celle qu'il a construite et ce qu'elle est. C' est une application de recette, et il parle sur un P I et télécharge ah, liste de recettes, et vous pouvez mettre dans les ingrédients et les recettes finales qui ont ces ingrédients en eux afin que vous
puissiez trouver voir ce qui est dans votre armoire et voir si vous avez la recette. Est-ce que les ingrédients pour ces recettes de sorte que vous pouvez faire la nourriture et l'étudiant vraiment bien dans l'APP Store ? Il a même eu des investisseurs qui l'approchent. Il est en fait vraiment vraiment cool, et il est donc très simple dans la nature d'un très puissant sur L'APP est appelé No Time et
c' est sur le magasin APP disponible au point absolu com. Slash avant pas de temps et la raison pour laquelle je l'évoque est parce que je veux vous faire savoir que vous pouvez le faire. Vous pouvez faire ce cours et construire des applications professionnelles, et je suis là pour vous aider. Et je veux que tu réussis et que tu publies absolument absolu. Et cela vous aidera également à trouver un emploi. Donc c'est l'histoire, se soucie de l'application, vérifier. Vraiment cool. Et j'espère que vous pouvez faire quelque chose de génial comme ça, aussi, parce que vous aurez les compétences pour le faire par son cours.
72. DevCamp iOS 9 App: créer le projet: Hey, qu'est-ce qui se passe, tout le monde ? Mark Prix ici avec Deb pentes dot com. Et vous savez, beaucoup de gens me l'ont demandé ces derniers mois. Pourquoi tu ne fais rien sur le sport ? Comme le sport ? APS voulait porter des vêtements de sport. Eh bien, ton jour de chance, tu es genre, Attends, ce n'est pas une équipe sportive. Eh bien, c'est le Punisher. Il fait le tour de tuer des gens. Ce n'est pas vraiment un sport, mais si c'était un sport, je le regarderais probablement comme ça. Les gars ont foiré. Eh bien, juste comme je suis né. Désolé, les gars. On va créer un nouveau projet ici. Je vais aller au fichier de code X. Nouveau projet. Désolé. Un autre moniteur ici. Tirez-le dessus. On y va. Ok, donc on a un projet Exco. Ce qu'on va faire, c'est construire le U Y pour notre application basée sur la localisation. Ce sera une simple carte, vue et vue de table. Il suffit d'obtenir tous les composants en pièces de travail afin que nous puissions construire plus tard les
composants de l'emplacement réel . Donc ce qu'on va dio, c'est à une application de tabulation. On va faire semblant que notre application a,
genre , un écran qui est dédié à un écran qui est dédié à
nos magasins et un écran comme l'écran d'accueil. OK, alors faisons juste une application de tabulation et appelons ce Dev Boot Camps parce que nous voulons
savoir où sont tous les camps de démarrage afin que nous puissions apprendre le codage et tout le reste ici a l'air génial. Je n'ai pas besoin d'avoir un dépôt. Je vais le mettre sur le bureau et on y va. Ok, couleurs
un peu différentes ici. J' ai un nouveau moniteur de 4 K et le blanc était comme, m'
aveuglant. Donc j'essaie quelque chose de nouveau. Faites-moi savoir ce que vous en pensez. Nous avons donc un contrôleur de deuxième vue et un contrôleur de première vue. Je n'aime pas les noms de ceux-là, alors je vais le changer. Appuyez sur Entrée sur celui-ci ici, et on va appeler cet emplacement VC emplacement BC. Je changerai ça à l'emplacement V. C. Et, bien
sûr, il y a un autre endroit où nous devons le faire. Connaissez-vous un endroit qui l'est ? Tu es genre, non. Eh bien, si tu ne le fais pas, tu devrais. Parce qu'on l'a déjà fait. Allons-y et cliquez ici. Deuxième vue et nous allons changer le type de classe ici du contrôleur de deuxième vue à emplacement BC Donc maintenant, il est également attaché sur notre storyboard,
aussi . Donc encore une fois dans les endroits ont la partie supérieure va être une carte, et la partie inférieure va être une vue de table, comme montrer une liste de nos emplacements pour nos magasins. Et donc, continuons et faites simplement glisser quelques vues ici, tapez le mot map ici en bas et faites-le glisser vers le haut. Et je fais ça comme ça et ce que je vais faire, c'est que je vais cliquer sur le menu de la broche ici, l'
épingler en haut. Je vais éteindre, limiter les marges et les minutes à gauche et à droite, et nous allons lui donner un type fixe de 215 pixels. Ensuite, faisons glisser une vue de table juste en dessous,
Pas une table de votre contrôleur, attention vous. Et je vais juste le traîner comme si Ok, et je vais laisser un peu de place là, donc je ne me chevauche pas. Je vais le faire zéro, mais parfois si vous vous chevauchez, je vais vous montrer un exemple ici. Si je clique dessus et que je me chevauche, puis quand je vais à épingler, il me montre 185. Donc, il est de trouver le haut de la vue comme la prochaine chose dépendante, aussi. Et ce n'est pas ce qu'on veut. On veut l'épingler au bas de la carte, donc je vais juste la laisser juste au-dessous, et on s'assoit ici pour que je m'éteigne, contraint les marges. Il va être 000 au lieu de trois. Ça va être zéro, et ça me semble bien. Maintenant, nous avons notre vue sur la table. Ça a l'air bien pour moi. On a notre carte. Super. Allons dans notre code maintenant, dans notre position V. C. Et nous allons juste faire tout ce que nous avons l'habitude de faire. Alors rendons ça un peu plus gros ici, et je vais agrandir ça. Et qu'est-ce qu'on veut faire ? Donc, nous avons une vue de table, donc nous savons que nous avons besoin du délégué de vue de table blanche U et vous I table view source de données. Et puis on sait aussi qu'on va avoir besoin de notre point de vue ici. Donc nos points de vente, je suis Outlet Week bar. Vous aimeriez dire qu'à quelqu'un comme quand vous êtes en colère contre eux, vous êtes une semaine Var Qu'est-ce que vous dites ? Je dis coder blagues chasse Tu te fais frapper dans la semaine du visage de notre table de toi. Ce type ne se tais-t-il jamais ? Désolé, trop de caféine aujourd'hui. Donc, vous vue de table blanche vue de table à Ivy Outlet Week var et nous allons dire une carte parce que nous avons besoin d'une carte. Ça va être venu à la vue, mais ça ne va pas sortir maintenant. La raison pour laquelle nous avons besoin d'importer le kit de carte. Alors faisons-le maintenant dans le kit de carte d'importation supérieur. Maintenant, il va dire m k vue de la carte, et nous y allons. Et nous, bien
sûr, mettons les points d'exclamation ici l'optionnel implicitement déballé parce que nous savons pour un fait que nous allons ranger jusqu'à l'U. Y. et R. AP ne fonctionnera pas sans elle. Et donc si vous obtenez un plantage au moment de la compilation, vous avez juste besoin de le réparer, et alors vous n'avez plus jamais à vous inquiéter à ce sujet. Si complètement. OK, une autre chose que nous devons faire est d'avoir le délégué pour la vue cartographique ici. Eh bien, est-ce qu'on veut faire ça, on va faire la prochaine vidéo. Laissons-le comme nous le laissons comme il est pour le moment. Je veux juste mettre ça en marche avec les trucs dont nous avons besoin. Je vais me débarrasser d'un avertissement de mémoire. Et ce que je vais faire est d'implémenter la vue de table, protocole
délégué et la source de données, les méthodes ou les fonctions. Appelle-le ce que tu veux. Et nous y voilà. Donc, nous savons que nous avons besoin d'un certain nombre de sections dans la vue de table, et pour l'instant, nous allons juste en retourner une. Je toujours quand je cods, je reçois toujours le truc de la chaudière fait en premier et essayer d'obtenir une construction dès que possible. Ah, ce qui veut dire ? Exécutez l'application dès que possible s afin que je puisse m'assurer que tout est bon pour aller Le nombre de sections et la vue de table et nous avons besoin de vue de table, nombre de lignes et de section. instant, nous allons juste en retourner un. Et de quoi d'autre avons-nous besoin ? Une table de vous ? C' est obtenir de vieilles choses que nous avons besoin de vendre chemin d'index fero. Et pour l'instant, juste pour apaiser les exigences de la fonction, nous allons retourner la cellule de vue de table. Nous allons juste en créer un générique pour l'instant. De quoi d'autre avons-nous besoin pour s'amuser ? Allons faire Ne Select Row a sélectionné Croissance. C' est comme l'artiste. C' est l'électro au chemin de l'index. Assurez-vous que vous n'avez pas sélectionné, De Select a écrit au chemin d'index. Ok, donc ça a l'air bien. Ça a l'air bien. Ce n'est plus me crier dessus, ce qui est sympa. Revenons à notre storyboard ici et je veux relier ces choses. Je ne vais pas ouvrir le rédacteur adjoint cette fois. Je vais juste faire un clic droit sur cette icône orange ici et je vais juste faire glisser ma
vue de table vers ma vue de table. Je vais faire glisser ma carte sur ma carte et peut-être que vous vous demandez pourquoi il le fait de cette façon ? Il devrait simplement glisser et déposer des commandes. Eh bien, parfois que quand vous les avez tous les deux ouverts, il pourrait fonctionner plus lentement spécialement si un ordinateur plus lent. Je veux dire, je ne sais pas, mais parfois c'est plus facile juste que quand vous êtes dans l'esprit de revêtement juste d'aller dans le code et de le faire de cette façon aussi bien que vous pouvez faire ce que vous voulez. Je ne suis pas ton patron. Ok,
ça m'a l'air bien. Ok, je suppose que j'ai tout là-bas. Je ne pourrais pas. Allons-y et faisons-le et voyons que j'ouvrirai mon iPhone six ans et qu'on
y va, ok ? C' est en marche, cliquons ensuite et nous avons une carte et nous avons une vue de table vide, ce qui est très bien pour l'instant. Donc, ça marche définitivement. Et bien sûr, c'est une vraie carte. Tu peux, tu sais, Allons voir ce qui se passe en Utah aujourd'hui. Je pourrais vous dire ce qui se passe. C' est de la neige. J' ai besoin de bouger. Vous avez des pistes sur les maisons en dehors de l'Utah où c'est magnifique tout le temps. Faites-moi savoir S Oh, ouais. Quoi qu'il en soit, la carte fonctionne définitivement et la vue de table est bonne. n'y a pas d'accidents ou d'héritiers. Allons de l'avant et appelons cette vidéo terminée. On a, Es-tu ? J' ai mis en place dans la prochaine vidéo passionnante. Nous allons faire des trucs de carte amusants avec des emplacements, donc c'est tout. Marquer Prix à la profondeur pentes point com. A bientôt
73. DevCamp iOS 9 App: travailler avec l'emplacement des utilisateurs: retour à nouveau, tout le monde Mark Pricier Deb pentes dot com Et la dernière fois que nous avons notre vue de table et notre carte travail et prêt à aller ne pas faire grand-chose, mais
là, il et il n'y a pas d'accidents. Donc, dans cette vidéo, nous allons trouver l'emplacement de l'utilisateur et laissez-moi expliquer le processus. Ce que vous dio, c'est que vous demandez à l'utilisateur de l'emplacement lorsqu'il veut utiliser lorsque vous voulez que votre application utilise cet emplacement ou cet emplacement d'utilisateurs. Et donc nous devons configurer cela dans notre code. Nous devons également configurer cela dans les autorisations dans notre info en haut du fichier liste. Alors allons-y et commençons. Les premières choses d'abord. Chaque fois que vous travaillez avec l'emplacement d'un utilisateur ou des dislocations en général, vous allez vouloir configurer le gestionnaire d'emplacement avec le gestionnaire d'emplacement C l l l. Donc je crée une constante ici, et je vais aller de l'avant et me tenir debout. Elle l'a mangé ici au moment de l'initialisation parce qu'on en a besoin tout de suite. Et fondamentalement, le gestionnaire de localisation va gérer les autorisations disponibles pour cet utilisateur parce qu'un utilisateur peut dire non,
n' utilise pas mon emplacement. Ils peuvent l'éteindre, et donc vous devez être en mesure de savoir s'ils l'ont nié ou l'ont accepté, etc. OK, aussi, chaque fois que vous travaillez avec des cartes, si vous faites autre chose que simplement montrer la carte, vous allez vouloir utiliser le délégué de vue de carte M K M k délégué de vue de carte. Le délégué de vue de carte M K possède une série de fonctions facultatives que vous pouvez implémenter en réponse à des événements de carte. Parce que la plupart des événements cartographiques sont asynchrones, ils ne seront pas instantanés. Et donc vous devez être rappelé chaque fois que les choses sont terminées. Comme si l'abside récupérait l'emplacement de l'utilisateur, utilisait le GPS, des choses comme ça. Donc, je vais commander cliquer dessus juste pour vous montrer que vous avez beaucoup de fonctions qui sont disponibles pour vous ici. Délégués de la vue cartographique tels que le changement régional. Matt View va commencer à rendre la carte un tas de choses différentes ici que vous pouvez utiliser . Vous pouvez référencer ceci et les musées dans votre demande. Alors maintenant, vous savez où aller, quoi faire. Le gestionnaire d'emplacement gère l'emplacement d'un utilisateur. Quelles autorisations, Etcetera. OK, donc on a le directeur de localisation maintenant. Ce que nous voulons dio, c'est quand la vue se charge. Nous voulons voir si l'utilisateur nous a donné l'authentification pour utiliser l'emplacement. Si ce n'est pas le cas, nous voulons demander l'authentification à l'utilisateur. Tu sais, ces petits pop ups sur l'écran qui disent, Hey, tu veux donner ça à la permission d'utiliser l'endroit ? Nous avons besoin de Teoh créer quelque chose qui fait cela, mais nous ne voulons pas le faire dans la vue ne s'est chargé parce que cela ne va être chargé
qu' une fois lorsque les vues d'abord chargées correctement en mémoire et ne jamais être appelé à nouveau. Mais nous voulons nous assurer que chaque fois que l'utilisateur revient à cette vue que les autorisations sont là afin qu'ils puissent réellement utiliser l'emplacement. Donc on va le mettre
en vue. Il est apparu, mais nous allons créer une fonction pour et vous avoir à faire, appeler
par les pairs cette fonction, si cela a du sens. Alors allons de l'avant et créons cette fonction que nous allons appeler ici. Je vais le faire, mais ici en bas et on va annuler l'état de cet endroit. D' accord. Où est mon orthèse de fermeture ? On y va. Un peu en bas. Pour qu'on puisse le voir. Donc emplacement hors statut et c'est juste une fonction de commodité agréable que nous allons utiliser pour vérifier l'état de l'emplacement et les autorisations. Et alors allons-y et appelons-le ici et vu qu'il semble juste pour le préparer. Et ça m'a l'air bien. Allons-y et faisons ce que nous devons faire. Donc, si le gestionnaire d'emplacement CLL, le statut d'autorisation est égal à point autorisé lors de l'utilisation. Ok, donc parlons de ça quand on annule l'état de l'emplacement, chaque fois qu'il apparaît. Ok, on veut vérifier l'état de l'autorisation. Il y a donc deux types de statuts ici. Il est autorisé lors de l'utilisation. En fait, nous allons juste les regarder tous les deux ici et il y a une victoire autorisée toujours. En cours d'utilisation est lorsque vous souhaitez autoriser ou autoriser l'utilisateur à utiliser l'emplacement pendant que l'APP est en cours d'exécution pendant qu'il interagit avec elle. Ok, c'est la façon recommandée par Apple de travailler avec l'emplacement autorisé signifie
toujours que votre application peut toujours obtenir l'emplacement en arrière-plan. Et Apple ne recommande pas que pour sécuriser leurs problèmes de sécurité, et il draine votre batterie s o c'est la façon recommandée. Bien sûr, vous n'êtes pas interdit d'utiliser autorisé. Toujours. Sachez simplement que vous pouvez avoir plus d'utilisateurs qui ont refusé cette option parce qu'ils ne veulent pas que leur autonomie de batterie meurt. Mais si l'Europe exige que l'Europe l'exige. Donc ce qu'on fait, c'est qu'on vérifie. On appelle ce statut d'autorisation, OK ? Et sait que nous n'appelons pas cela sur notre objet de gestionnaire de localisation ici. Ok, on l'appelle dessus. C' est une, euh, une fonction statique ici, ok ? Et donc nous l'appelons sur la classe elle-même. Et donc ce que nous voulons dire dio carte qui montre l'emplacement de l'utilisateur est égal à vrai. Ok, donc quand on le voit, ça se passe, on va vérifier le statut, ok ? Et nous allons dire,
hé, hé, est si c'est autorisé, gagner et utiliser des diffuseurs autorisés à utiliser, permettre leur emplacement d'être utilisé lorsque l'utilisation est absente . Allons de l'avant et montrons l'emplacement habituel sur la carte, puis la carte montrera cet emplacement. D' accord ? Sinon, nous devons montrer ce pop-up qui demande réellement l'autorisation à l'utilisateur. Donc sinon Eh bien, dites gestionnaire d'emplacement que la demande lors de l'utilisation de l'autorisation. Donc, si l'utilisateur n'a pas encore donné l'autorisation. Cette autre déclaration va s'appeler. D' accord ? Et ça va Teoh, montrer ce pop up. C' est Hey, voulez-vous laisser cet utilisateur, euh ou voulez-vous cette application ? Avoir mon emplacement essentiellement plus ou moins, donc c'est cool. Deux choses que nous devons faire ici sont, bien
sûr, définir le délégué de la carte. Donc, le délégué de points de carte est égal à moi. Ok, si tu ne fais pas
ça, ça ne marchera pas. Ok, tu auras des problèmes. Bon, alors allons-y et mettons-nous aussi nos points de vue sur la table ou excusez-moi les délégués, pas les points de vente. On l'a déjà fait. Egal. Self et onglet de table, point de vue de table
inale Source de données est égal à soi. Ok, il y a encore une chose qu'on doit faire. J' ai déjà mentionné cela, mais ce sont les autorisations. Ok, donc ce qu'on va dio, c'est passer à la liste info point p, et au bas de l'article, cliquez sur le signe plus, OK ? Et je vais le suivre, et je te le lirai parce que c'est long. Ok, donc le nom de la clé est l'emplacement de N. Lorsque vous utilisez la description d'utilisation OK, essayez de dire que cinq fois plus vite à cet emplacement. Lorsque vous utilisez la description d'utilisation, assurez-vous qu'il est orthographié comme je l'ai ici camel cased. Si tu ne le fais pas, ça va se casser. Et la chose que nous devons mettre ici dans la valeur réelle est le message que vous voulez montrer à l'UE. Rappelez-vous quand l'AP apparaît, lorsque l'APP apparaît dans les charges utilisateur de la carte, il va montrer ce pop-up disant, Hey, voulez-vous donner à cet utilisateur l'accès ? Voulez-vous obtenir cet accès application à votre emplacement et ensuite vous pouvez avoir votre propre message ici. Dans notre cas, on va dire l'emplacement nécessaire pour vérifier la distance des emplacements des camps de démarrage. Nous voulons obtenir un message qui indique clairement pourquoi vous voulez donner l'emplacement afin que l'utilisateur puisse prendre une décision éclairée. Ok, donc ça a l'air bien. Maintenant, allons de l'avant et allons juste faire ça et voir ce qui se passe. En supposant que j'ai tout fait correctement, on ne sait jamais. J' ai beaucoup foiré. OK, cliquez. Deuxième vue. Et bien, il y a un endroit là-bas. Tu sais pourquoi je n'ai pas lu ça avant. Et donc ça ne m'a pas demandé ce pop-up. Ce que je vais faire ici, c'est que je vais supprimer cette application de l'appareil et reconstruire, OK ? Parce que ces emplacements seront stockés. Il se souviendra de votre décision afin qu'il n'ait pas à vous demander. Donc c'est une bonne note. Ok, si tu testes des choses et que tu veux, où est mon pop up ? Allez-y et supprimez l'application car elle stocke localement les informations sur lesquelles vous avez accepté l'autorisation. Donc, sachez juste si vous voulez tester et que ce pop-up remonte, faites-le et reconstruisez-le. Allons-y et essayons ça maintenant. Deuxièmement, il est permis de démarrer des camps. Accédez à votre emplacement lorsque vous utilisez l'application. Emplacement nécessaire pour vérifier la distance des emplacements des camps de démarrage. C' est ce qu'on a mis là-dedans. Donc, si je clique sur Autoriser, alors la pomme commence à utiliser cet emplacement. Ok, ce qui est plutôt cool. Laisse-moi te montrer encore une chose. Quelques-uns de ça ici en bas. Lorsque votre application s'exécute sur le simulateur, vous pouvez simuler un emplacement réel. Donc si j'y vais, disons San Francisco, Californie. D' accord. J' ai choisi ça dans le petit menu déroulant là-bas. Je vais aller de l'avant et arrêter l'application et la reconstruire ici et maintenant je peux réellement stimuler New York City. Excusez-moi. San Francisco, New York. Quoi ? Fumer quelque chose ici parce que simuler San Francisco sur la carte parce que, euh oh, allez. Voilà, tu y vas. Euh, et c'est là, comme vous pouviez le voir. Bien sûr, vous pouvez double-cliquer pour zoomer ici, mais remarquez le problème. Comment la carte est juste trop zoomée. Ce n'est même pas utile pour nous. On va réparer ça dans la prochaine vidéo. Mais c'est ainsi que vous pouvez simuler un emplacement. Je vous recommande fortement d'effectuer toutes vos cartes de périphériques réelles et de tester l'emplacement sur un appareil. C' est des mises en accusation. Dites, faites votre emplacement de test de carte sur l'appareil. La raison en est que le GPS est plus précis. La simulation est active. Un simulateur n'est pas une bonne représentation de la façon de travailler avec les cartes et le GPS. Vous absolument, absolument,
absolument, absolument besoin de tester sur un appareil. Ne pas Shippen app sans test. Ah, cartes et GPS sur votre appareil. Donc tu vas vouloir l'exécuter sur ton appareil, si tu peux. Pour toutes vos applications, cela deviendra plus évident pour vous lorsque vous commencerez à faire des choses plus complexes. Mais c'est tout. Pour l'instant. Nous avons notre carte simple qui fonctionne. Nous montrons l'emplacement de l'utilisateur dans la vidéo suivante. Ce que je veux faire est de définir un niveau de zoom lorsque le premier charge au niveau de zoom approprié. a du sens pour les applications, mais c'est tout pour l'instant. Mark Prix il pentes Deb dot com
74. DevCamp iOS 9 App: Zoom sur la carte: Hé, quoi de neuf, tout le monde ? Mark Price Entendre avec des pentes sourdes dot com et auparavant nous avons mis en œuvre une carte et une
vue de table qui ne fait absolument rien. Et puis nous avons implémenté l'emplacement de l'utilisateur avec des autorisations afin qu'il affiche l'emplacement de l'utilisateur sur la carte. Mais la prochaine chose que nous voulons faire est de définir le niveau de zoom de la carte parce qu'elle est juste trop loin. Et ce n'est pas utile, surtout si nous cherchons des endroits. Tu sais, supposé bientôt que c'est comme une application Starbucks, non ? Ou vous faites une recherche et vous probablement à moins de cinq milles de vous, selon l'endroit où vous vivez. Il y a 3 à 5 Starbucks et donc vous voulez être zoomé d'une manière qui convient votre application spécifique. Ok, donc, je veux dire, si vous faites une application qui est vous savez, bases militaires
U S, vous savez, qui sera répandue partout aux États-Unis, rencontrez votre carte pourrait être beaucoup plus grande. Vous pouvez voir tout les États-Unis ou quelque chose comme ça, mais, euh, ce n'est pas ce qu'on fait. Alors allons de l'avant et définissons le niveau de zoom, ce qui est important à savoir pour n'importe quelle application. Alors allons-y et faisons-le maintenant. Les premières choses d'abord. Nous avons besoin d'une distance C L. Alors faisons ça ici. Ça va être une constante. On va appeler ce rayon de la région CLL , distance
dissed, et on va le mettre à 1000. OK, et c'est un double. C' est juste comme un alias de type ici qui donne un nom différent, mais il est important, euh, que nous utilisions le type réel dont nous allons avoir besoin, ok et type utilisé pour représenter une distance en mètres, Tu sais ? Donc environ 1000 mètres mettaient ici nombre arbitraire. C' est ce que j'ai ressenti. Regarde bien. D' accord. Tu sais, il fait environ 3 000 pieds. Euh et tu sais, pas un kilomètre va jouer avec ça en une minute, mais nous devons fixer un taux, un rayon de région. Il s'agit d'une valeur par défaut qui sera définie pour le rayon de notre région. En ce moment, c'est environ 1000 mètres, ok. Et la prochaine chose que nous voulons faire est d'avoir une fonction ici, et il n'a pas besoin d'être dans une fonction si vous voulez juste le faire une fois. Mais j'ai aimé tout mettre et les fonctions juste au cas où j'aurais besoin de le réutiliser. Et nous allons appeler cette carte centrale sur l'emplacement, et nous allons passer à l'emplacement actuel des utilisateurs. Ok, donc emplacement Cl, emplacement
CLL. Ok, ça marche. Donc, l'idée ici est quand l'APP obtient l'emplacement de l'utilisateur, ok, travailler et écouter ce que nous n'avons pas encore implémenté. Nous allons saisir l'emplacement des utilisateurs, et ils allaient le passer dans la fonction de la carte centrale sur l'emplacement et faire un zoom vers le bas sur la carte au niveau que nous voulons qu'elle soit. Donc, ce que je vais dio à l'intérieur de ceci est maintenant créer une région de coordonnées, donc je vais créer une région basée sur les coordonnées. emplacement de l'utilisateur est égal à la région de coordonnées m kay faire avec la distance. C' est celui que nous voulons. C' est un peu long. C' est OK. Donc, le sénateur co ordinate va être le point de coordination. Souviens-toi, on passe à l'emplacement de l'utilisateur, accord ? Et donc une fois que nous avons cela, l'emplacement des
utilisateurs a été en fait attrapé la cour dedans hors de l'objet de coordonnées de l' emplacement. D' accord. Et coordonnée a la longitude et la latitude. Si je commande cliquez sur ceci, hum, ça ne s'affiche pas ici, mais fondamentalement c'est un emplacement. Coordonner à D. C. Si celui-ci montre qu'il y a latitude et longitude. OK, donc selon la latitude débarquée et la longitude. Et, euh, vous faites à peu près n'importe quoi quand vous avez la latitude et la longitude et la deuxième chose
que nous voulons passer ici est la chose que nous avons créée plus tôt Region Radius. Et on va se multiplier cette fois pour le rendre plus long d'environ 6 000 pieds, environ 2 000 mètres environ,
juste un peu plus d'un kilomètre. Et encore une fois, ce sont des nombres arbitraires. C' est une sorte de regard et de sensation. Et la raison pour laquelle j'ai laissé cela apparaît à une valeur par défaut de 1000 au lieu de construire toute la distance ici est juste au cas où. Je veux l'utiliser à nouveau pour autre chose, et je peux exécuter mes propres calculs sur l'autre chose que je veux utiliser. Mais pour l'instant, fois deux est sur le rayon de la région droite Times deux pour le troisième argument ici. Ok, donc on vient de dire une région de coordonnées juste une région sur laquelle on veut zoomer. Et puis dans votre carte, vous avez juste une carte qui définit la région. D' accord. Et on va dire coordonné région animée. Bien sûr. Pourquoi ne pas le faire animer ? Donc ça m'a l'air bien. Donc, quand le centre de l'emplacement de la carte est appelé, il va saisir. Ça va créer une région basée sur la distance que nous voulons, vous savez, des arcades d'environ un kilomètre. Je ne sais pas combien de kilomètres c'est. Peut-être que vous pouvez le traduire. Ceux qui sont en dehors des
U.S. U.S Et ça a l'air bien ici. Donc la dernière chose que nous avons besoin de dio a en fait trouver un moyen d'obtenir cette carte centrale sur l'emplacement à appeler. Et cela, bien
sûr, se
produira lorsque la carte obtient l'emplacement de l'utilisateur ou lorsque l'APP le fait. Et puis il appellera cette fonction de délégué de rappel dont je vous parlais. Donc, vue de la carte et nous voulons qu'il vient de mettre à jour l'emplacement de l'utilisateur indique au délégué que l' emplacement de l'utilisateur, il a été mis à jour OK, fonctionne pour moi. Donc c'est un simple comme dire si laisser la chance pour l'emplacement, l'emplacement de l'utilisateur, emplacement des
points et ensuite nous allons dire centre Matt sur l'emplacement et passé dans cet endroit. Ok, ça a du sens. Que se passe-t-il ici ? Nous avons donc dit que nous voulons que l'APP commence à suivre l'emplacement de l'utilisateur. Ils nous ont donné la permission. Et donc le délégué de la carte M K délégué va commencer à rappeler les fonctions si nous les avons implémentées. Et si on les a implémentés, ça va appeler et passer à l'emplacement des utilisateurs, qui est juste ici. Maintenant, la raison pour laquelle je fais et si let est parce que si nous allons dans cet emplacement utilisateur m k, remarquez comment l'emplacement est facultatif, OK, nous ne voulons pas simplement forcer le déballer. S' il y avait un problème et qu'il nous rendait un objet Neil, ça se bloquerait. C' est pourquoi nous utilisons une option de valeur parce que nous avons besoin d'une valeur réelle ici . Donc seulement sénateur la carte quand nous avons vraiment un emplacement. C' est ce qui se passe ici. Ok, et voyons si ça fonctionne bien sur le simulateur. Si ce n'est pas le cas, je vais aller de l'avant et le tirer sur les appareils Eh bien, aussi. Mais donnons un coup de feu sur le simulateur ici. C' est là que cela a commencé à devenir vraiment important. Vous commencez à tester sur des appareils réels, donc j'espère qu'il reste juste dans la région de New York et fait un zoom avant parce qu'il suppose un emplacement pour nous ici. Donc c'est rapide. Deuxièmement, voyons s'il zoome dans Bam. Et là, vous l'avez zoomé, euh, vous savez, environ 6000 pieds ou environ un peu plus d'un kilomètre ici à San Francisco, et ça a l'air bien. Donc, pour résumer ce que nous avons fait jusqu'à présent,
ce n'est pas beaucoup de code, vraiment. Les choses concernant les cartes implémentent vraiment le délégué de vue de carte. C' est ce qu'on a fait jusqu'à présent. OK, puis nous avons demandé à l'utilisateur un emplacement chaque fois que la vue apparaît. Ou plutôt, nous voyons si les utilisateurs autorisés pour l'emplacement déjà s'il ne l'est pas. Ensuite, nous avons demandé l'emplacement, assurés que dans le fichier info point P lis, nous avons cette propriété là-dedans, puis une fois que l'utilisateur regarde, nous avons la permission d'utiliser l'emplacement d'un utilisateur lorsque la carte dans l'APP en fait saisit l' emplacement
des utilisateurs. Ok, ça va rappeler. Cela a mis à jour les emplacements des utilisateurs. Donc l'a mis à jour. Et quand ça appellera ça, on appellera le centre de la carte où on zoomera sur la quantité avec laquelle on a joué . Et encore une fois, ça va être jugé sur les ondes pour vous. Jusqu' où vous voulez zoomer ou non. Ce n'est pas un genre de chose à sens unique. Vous prenez juste une région. Nous venons de créer une région sur la carte dit, Hey, allons dans cette région ici. C' est logique. C' est ce que nous avons fait, faisant de grands progrès. Vous pouvez déjà faire beaucoup de choses cool avec cela, juste avec cette connaissance limitée ici. Mais c'est tout. Pour l'instant. Allons de l'avant et continuons et Ford.
75. DevCamp iOS 9 App: Annotations et Geocoding: Bienvenue à la fête, tout le monde. Mark Pricier Deb pentes point com. Et aujourd'hui, nous allons continuer notre projet ici. Et ce qu'on va faire, c'est qu'on va faire tomber des épingles sur les maths. D' accord ? ce qu'on appelle des annotations, et ce qu'on va aussi faire, c'est qu'on va avoir des effets négatifs, et on va les coder géo. Et ce que le codage géo est de prendre une adresse basée sur une chaîne plus ou moins et de la convertir en coordonnées de
latitude de longitude. Et allons-y et commençons. La première chose est d'aller de l'avant et d'obtenir quelques ists adverses Aller à Google ici et ce vous pouvez Dio déjà avoir quelques adresses que je vais suivre ici dans juste un instant. Mais ce que vous pouvez dio c'est un San Francisco fait aller orteil à pied Apple quartier général sur Infinite Loop ? Cupertino. J' ai été là, au fait. Super cool. Tu devrais aller vérifier. Ils ont une Apple store avec des produits Apple exclusifs et des articles que vous ne pouvez obtenir
au siège social que si vous ne le saviez pas. Et alors quoi ? J' ai fait la capture de ces ajouter contre c'était que je suis allé trouver des endroits comme ce Cupertino dans, et puis j'ai juste copié l'adresse, comme ça. Ok, alors allez-y et trouvez quelques adresses que vous aimez dans votre quartier et votre ville dans votre pays, comme je l'ai fait ici. Ok, donc ce que je vais dio va copier quelques adresses, le
mettre ici. D' accord. Et ceux-là sont en fait très bien à Cupertino. C' est juste un tableau d'adresses. Ok, String adresses adresse adresse, au moins aux États-Unis C'est l'adresse. Um, la ville. Excusez-moi. Je ne sais même pas de quoi je parle. C' est l'adresse de la rue. Et puis la ville, puis l'état. Et puis le code postal. Tellement bien. Mais vos adresses dans, cependant, elles sont censées être formatées dans votre pays particulier. Et c'est avec ça qu'on va travailler. Kayla. Annotations de saga. Qu' est-ce qu'une annotation ? Eh bien, une annotation est simplement une classe d'objet qui représente un emplacement sur une carte. Et il y a des choses très spécifiques que vous devez faire avec les annotations, donc je vais faire un clic droit sur les camps de démarrage de la mort. Je vais aller au nouveau dossier. Nous allons créer un fichier rapide, cliquez ensuite, et allons de l'avant et appelons ce camp de démarrage et la notation. Nous faisons semblant d'avoir un camp de démarrage ou plusieurs emplacements de camp de démarrage, et nous devons créer une annotation pour cela. Alors allons de l'avant et créons cela maintenant et vous constaterez que c'est assez simple travailler avec elle. Eh bien, la première chose que vous faites est d'importer un kit de carte. D' accord ? Et puis revenons à la classe de crédit. Ceci est une annotation de camp de démarrage. Maintenant, voici quelque chose qui est important pour une annotation. Teoh. Être une annotation qu'il doit hériter de l'objet N. Ok, tu ne peux pas. Je travaille avec des annotations sans le faire. Et puis il doit se conformer à l'annotation M K. Euh, protocolez mon ici. Et si je commande, cliquez sur votre comme ça. Bien trop petit. On y va. Désolé, les gars, si je clique ici, ça m'emmènera dans le protocole. Et très important, il nécessite une propriété appelée co ordinate, puis éventuellement il a un titre et un sous-titre . Ok, si vous pensez à une goutte d'épingle sur la carte IOS, vous les avez probablement vus. Parfois, c'est simple comme vous le savez, il y a l'assainissement et il y a un appel qui a un titre dans un sous-titre dessus. Ok, donc la chose la plus importante
, , c'est cette coordonnée ? Donc, nous sommes des objets. Notre classe doit se conformer à ce protocole et avoir une coordonnée qui, bien
sûr, C l l l coordonnées des fonctions ont une latitude et une longitude. Ah, OK, donc nous l'avons. Nous avons implémenté la définition du protocole. Allons de l'avant et remplissons effectivement les exigences de ce protocole avec les coordonnées. J' ai donc besoin de créer une propriété appelée co ordinate. D' accord. Et l'emplacement BCL est-il à coordonner à D ? Je vais juste le créer ici de la chauve-souris, comme dans juste ah, générique l'emplacement générique ou excusez-moi, coordonnée
générique. Mais tu dois avoir ça ici comme ça. Cela répond aux exigences du protocole. Ok, je suis le nom. Tout doit être comme ça. D' accord ? C' est que nous disons, Hey, puisque nous implémentons ce protocole, nous allons implémenter cette propriété nommée coordonnée de ce type. Ok, si tu ne le fais pas, ça ne marchera pas très, très important. D' accord ? Et puis nous allons juste créer un lynch initialiser er er où nous passons dans le cordon dedans. Où passer une coordonnée. Ok pour toi-même. Cette coordonnée est égale coordonnée, et c'est tout. C' est notre annotation. Tu es genre, c'est facile. que c'est, Tout ceque c'est,c'est une représentation sur la carte. Vous pouvez personnaliser les clients. C' est beaucoup plus. Mais c'est tout ce dont nous avons besoin en ce moment. Juste une annotation simple. Ok, alors revenons à notre emplacement. VC. Donc on a des adresses, non ? Mais avec votre carte, vous devez vraiment travailler avec les coordonnées. Parce que, rappelez-vous, comme vous venez de le voir dans notre annotation de camp de démarrage se déplaçant ici dans notre annotation de camp de démarrage. Il cherche une coordonnée avec la latitude et la longitude, donc les annotations fonctionnent avec les coordonnées. Alors, comment faire pour obtenir ces adresses en coordonnées ? Eh bien, nous devons faire du codage géo pour ne pas être confondu avec l'encaissement géo où vous allez et trouver ordures dans la terre. codage géo est le processus de prise contre la chaîne est adverse et de les transformer en coordonnées
utilisables et le codage géo inverse est capable de prendre des coordonnées et de les faire en adresses lisibles. D' accord. Et tu n'as pas besoin d'utiliser le Guei p i pour ça. Certaines personnes pensent que vous dio certaines personnes vont puiser dans Google, utiliser leur système de codage géo. En fait, Apple a un système intégré. Il faut des services réseau parce que ça va faire de la magie dans les coulisses du A p I. Mais on peut l'utiliser. Alors allons de l'avant et utilisons-le. Ce que nous allons faire est une fonction appelée get place,
place mark à partir de l'adresse de la chaîne de type. Donc, fondamentalement, pour chacune des adresses que nous avons, nous allons appeler cette fonction et le chemin dans l'adresse, et ensuite nous allons le coder géo. On va dire Cl Geo coder. Ok, on va faire ça aussi. À Stan. Elle l'a mangé là-bas, et on va dire une chaîne d'adresse de code géo. Je pense que c'est celui que nous voulons. Oui. Adresse de code géo, chaîne et juste passé dans l'adresse. Comme ça. Et dans le gestionnaire d'achèvement, appuyez
simplement sur Entrée et appuyez à nouveau sur Entrée, et vous pouvez même cliquer ici et appuyer sur Entrée. C' est l'une des multiples façons de travailler avec la divulgation, donc je pourrais juste mettre ici des marques de place. Ok, donne-lui
juste un nom de variable. Appelle celle-là. Et donc ce qui va se passer, c'est quand tu codes cette adresse, ça va te donner un tableau de repères. Bien sûr, nous n'avons qu'une seule adresse ici et nous cherchons bien. Non, on ne va récupérer qu'un seul objet. Donc nous allons supposer que nous allons travailler sur l'hypothèse que nous ne récupérons qu'un objet , mais il doit toujours être un tableau. Et il pourrait encore y avoir à Oeiras. Eh bien, d'accord. Tu es avec moi jusqu'à présent ? Allons de l'avant et avançons. Disons que si laissez et appelons simplement ces marques comme signifiant plusieurs repères. OK équivaut à des marques de place. C' est ce qu'on va faire, c'est s'assurer qu'il n'est pas agenouillé parce qu'il y a un optionnel avec un point d'interrogation. D' accord. Et nous allons dire où le nombre de points Marx est supérieur à zéro. Donc ce que je dis ici, c'est que je veux seulement travailler avec les repères. S' il y en a un. Si ce n'est pas à genoux et où il y en a plus, il y a au moins un objet dedans. Donc, nous sommes juste en train d'exécuter une logique simple ici. J' aurais pu dire, vous savez, si les marques de place ne sont pas égales à s'agenouiller et à l'intérieur de la sortie, vous savez, et, euh, où les marques de place qui comptent sont supérieures à zéro. Mais si nous sommes la façon de le faire, bien
sûr. Et Swift. Et donc pour aller plus loin si laisser verrouiller signifie emplacement, marques
des gens, zéro remarque est un emplacement de point de tableau. Ok, alors rappelez-vous, c'est une marque C l à l'intérieur de ce tableau. C' est le type du tableau. Et donc ce qu'on fait, c'est si on est passé ici, on sait qu'il y a au moins un objet. Ok, donc ce qu'on fait, c'est qu'on récupère cet objet du tableau et, bien
sûr, c'est un lieu de scellement, marque, objet et un sceau. Mark a juste un emplacement. Propriété, comme vous pouvez le voir ici. Emplacement CLL, qui à son tour a vos coordonnées. D' accord. Tu es avec moi jusqu'à présent ? Je suis plus de l'expliquer ici, mais vous avez le code pour faire ce que vous voulez avec et regarder aussi souvent que vous en avez besoin. Alors, on a quoi ? Fondamentalement, à ce stade, nous avons un emplacement valide avec les coordonnées que nous avons obtenues des chaînes réelles, ce qui est vraiment cool. Nous n'avons pas eu à faire grand-chose pour que ça marche. Donc la prochaine chose que nous voulons dio est maintenant que nous avons maintenant une adresse valide ici, nous voulons Teoh, prendre ces adresses et créer des annotations. Le médecin les a laissés tomber sur la carte. Mais d'abord, mettons ces adresses dans cette fonction là-bas. Donc, cette fonction est appelée get place mark from address. Donc, ce que je vais faire ici en vue a Load est de créer une boucle for. Donc, pour chaque annonce dans les adresses, allons de l'avant. Et qu'est-ce que cela crée ? Adresse ? Obtenez la marque de place au deuxième membre ici. Alors prends la marque de place de l'adresse, et on va passer une annonce. Ok, c'est pour chaque boucle. Ça va juste appeler cette fonction à chaque fois. Et cette fonction est asynchrone. D' accord ? Ce n'est pas synchrone. Ça n'arrivera pas instantanément. Il va frapper les serveurs du réseau, et il va frapper le A P I dans les coulisses. Et donc ce n'est pas synchronisé. Il va tomber sur la carte comme ils le jugent bon. Ok, on n'a même pas fait de manutention d'air ici. exemple, Par
exemple, s'il n'y avait pas de type d'air, que voudriez-vous faire à la place ? Vous ne pouvez pas trouver l'emplacement ou quelque chose comme ça ou peut-être ne rien faire du tout. On ne fait rien du tout. Et si vous avez une application complexe, en passant, vous pourriez ne pas le mettre ici. Vous pouvez avoir un service de codage géo entier que vous créez un service singleton qui gère votre codage géo, en créant des annotations et en les renvoyant au contrôleur de vue. Nous le faisons ici parce que notre application est si simple. Mais sachez qu'il n'a pas besoin d'être ici. Et il y a plusieurs façons de faire ce que je fais. Le principe important pour vous de comprendre est que si vous avez une adresse de chaîne, accord, vous avez une géo codée pour la transformer en un emplacement coordonné. Et puis, si vous voulez afficher des gouttes d'épingle sur une carte, accord, vous voulez vous assurer de lui transmettre les coordonnées et les emplacements. Donc, que vous obteniez vos emplacements ici ou ailleurs ou à partir d'un serveur de quoi que vous fassiez, c'est bon. Mais ceux des étapes et nous faisons juste d'une façon, nous le faisons juste d'une façon. Obtenir sur la carte d'une manière et d'une forme pour que nous puissions le faire maintenant est en fait, euh, grandes annotations. Donc, faisons que funk crée une annotation. C' est comme un de ces mots qui, comme, si je vais trop vite, j'épelle absolument incorrectement emplacement. Vous avez de la chance. Tu peux voir toutes les erreurs stupides qu'ils font et rire de moi, et je ne vois rien. Ce que tu fais. Ok, créez et notation pour l'emplacement. C' est comme Mary Poppins, genre de rime ou quelque chose
comme ça. Comme quoi ? L' hexagone. Mary Poppins. Ok, donc ce que nous voulons faire est de saisir cet emplacement et de le transformer en annotations. Leslie, ça ne laisse pas le camp de démarrage équivaut à l'annotation du camp de démarrage. C' est la classe en huit que nous avons faite. Et de quoi a-t-il besoin ? C' est un co-ordonné. Comment obtenons-nous une coordonnée ? C' est aussi facile que de faire la localisation des points coordonnés Est-ce que tout se réunit maintenant ? Alors, juste ici. On a créé cet endroit, d' accord ? Et ce qu'on fait c'est qu'on va le passer ici, et ensuite on va passer ça dans l'annotation. Donc, nous avons pris une adresse de chaîne, avons
transformée en une marque de place c
l, qui avait un emplacement ,
emplacement SCL que nous saisissons la cour et hors de l'emplacement et le mettre dans l'annotation. Et bien sûr,
ici, nous voulons aller de l'avant et appeler cette fonction. Créer une annotation pour l'emplacement. En fait, nous devons utiliser le mot-clé self puisque nous sommes à l'intérieur d'un self de fermeture qui crée une annotation pour l'emplacement. Je devrais faire un rap que j'ai presque voulu, comme sortir en chanson, disant cette annotation pour l'emplacement. Ok, emplacement. Et passons par chance. Cette serrure juste là. Cet endroit, nous avons attrapé de la marque de place. D' accord. Et donc on y va. Et la raison pour laquelle nous ne l'avons pas si c'est pour nous assurer que nous avons réellement des objets. Donc, si nous en sommes arrivés à ce point, nous ne devrions pas avoir de plantages, car il y a des objets valides là-bas. Et donc nous avons notre camp de bottes. Ça a l'air génial. D' accord. Et donc, allons de l'avant et disons point de carte Ajouter une annotation. Ok,
ça a l'air d'un bon camp de démarrage. Donc, nous sommes juste en train de l'ajouter à la carte, comme alors continuons à ce stade et lançons et voyons ce qui se passe. D' accord, en supposant que j'ai tout fait correctement, j'
espère que je l'ai fait. Ok, on
y va. Nous courons. Allons au contrôleur de deuxième vue ici. Et regarde ça. Il a laissé tomber trois gouttes de broches, ce qui est assez cool. Maintenant, si vous cliquez dessus, rien ne se passe. Droit ? Mais ces gouttes d'épingle représentent en fait ces adresses. Donc nous savons que ça marche à ce stade, qui est parti, ce qui est vraiment cool. Qu' est-ce que vous pensez les gars ? Ouais, c'est génial. Non. Et si tu n'aimes pas le rouge ? Je déteste absolument la couleur rouge. Je plaisante. C' est bon. Mais que faire si vous voulez changer la couleur ou quoi ? Si vous voulez personnaliser votre annotation
du tout, ce que nous, ce que nous,bien sûr, faisons cela parce que cela va conduire à plus de personnalisation dans le futur que nous allons vouloir dio. Donc, allons de l'avant et réellement créer des annotations personnalisées. C' est ce que nous allons dio sa fonction de crédit appelée vue de carte pour l'annotation. Cela fait partie du délégué de vue de carte apparaît au sommet de la carte M K, vous déléguez. Donc, en gros, vous voyez ici quand nous sommes assis, nous cartographions l'annotation de l'annonce. Eh bien, chaque fois que cela est appelé dans les coulisses, si le si nous les avons implémentés est venu à la vue délégué ok, dans les coulisses, ça va appeler cette fonction avant que chacune de ces gouttes d'épingle arrive. Maintenant, nous n'avons pas inclus les inclusions auparavant parce que c'est facultatif. Mais ce que cette fonction affiche pour l'annotation est qu'elle l'intercepte juste avant qu'elle ne tombe sur la carte. Il y a donc une interception entre quand cela est appelé et quand c'est ou quand cela est appelé, quand la chute de broche va réellement sur la carte que cette fonction appelée entre Donc nous pouvons personnaliser ces gouttes de broche comme bon nous semble, c' est ce que nous voulons faire. Mais gardez à l'esprit qu'une annotation inclut également des emplacements. Alors tu te souviens quand ce point bleu clignotant sur la carte est toi et ton emplacement ? C' est aussi une annotation. Nous savions donc ce que nous devons rendre compte aussi. Le point d'annotation est une sorte de classe, donc si c'est une annotation de camp de démarrage que vous voyez que
je fais ici, je dis juste ,
Hey, si cette annotation qui est déposée sur la carte est un camp de démarrage, faisons Quelque chose, OK ? Et puis si nous
disons, disons que si le point Anil Tae Shin est une sorte d'emplacement utilisateur de classe M K et que nous pouvons réellement retourner Neil et ensuite ici, nous pouvons retourner Neil. Maintenant, vous réfléchissez probablement. Vous réfléchissez probablement en ce moment. Euh, attends une minute. Pourquoi tu rentres ici, Neil ici et agenouillez-vous ici. N' est-ce pas redondant ? En fait, c'est redondant. Mais je voulais vous montrer que c'est ainsi que vous vérifiez l'emplacement de l'utilisateur. D' accord. Dans un monde réel, j'aurais pu dire que je pouvais prendre tout ça ici à mon retour. La même chose vous débloque d'être ici. Et si nous arrivons ici, nous saurons revenir, Neil. Mais juste pour vous montrer explicitement que vous devez retourner Neil pour l'emplacement de l'utilisateur final, vous ne voulez pas toucher l'emplacement de l'utilisateur. Laisse-le comme il est. Ne joue pas. D' accord ? Donc, si c'est du type Boot Camp, qu' est-ce qu'on veut faire ? Eh bien, créons une vue Anil égale la vue d'annotation de broche M k. Donc, un camp M, en vue d'annotation est une broche comme vous venez de voir. D' accord. Et il attend une annotation, et donc je vais passer l'annotation qui tombe sur la carte. Tu te souviens de celui-là ? D' accord. Mappé à l'annotation. D' accord. Et re utiliser identifier en ce moment. Ce n'est pas important. On va juste appeler ça par défaut. Ok, et disons une couleur de stylo pour tente à points O anil vue, comme vous pouvez le voir. Ici, c'est un ID obsolète. Ne l'utilisez plus. En outre, il était toujours limité à des couleurs spécifiques. La couleur de la teinte épingle vous permet de choisir la couleur que vous voulez, ce qui est vraiment cool. Alors épinglez la couleur de la tente et nous allons juste aller de l'avant et mettre une couleur ici. De quelle couleur veux-tu ? Nouveau point de couleur blanche Que diriez-vous de la couleur jaune Obtenir laid ? Ilo Parce qu'il est tellement mieux que le rouge et encore une fois vous Pourriez vous Quelle couleur RGB valeurs ce que vous voulez là-dedans, mais qui est vraiment cool. Et puis un aperçu de la pensée s'anime, Drop. Faisons l'animer vers le bas. Bien sûr, ça me semble bien. Donc animal Anil View qui anime tomber. Tu sais comment ils sont apparus là avant. Voyons si nous pouvons le faire descendre si nous ne pouvons pas arriver à temps, car il peut se charger trop rapidement avant de le charger. Mais on va lui donner un coup de feu. Donc ça m'a l'air bien. Et enfin, nous avons juste besoin de retourner la vue Anil. D' accord. Tu es avec moi ? Jusqu' à présent. Donc maintenant que nous avons un emplacement valide et que nous créons une annotation ici Ok, puis nous avons ajouté au Met. Eh bien, nous ajoutons ceci à la carte, mais avant qu'elle ne tombe réellement dans la carte à chaque fois que vous avez une chute de broche qui va à la carte, cette fonction sera appelée automatiquement par le délégué du protocole. Et ce qu'on fait. C'est pour ça que nous
disons, Hey, tu fais tomber une annotation de camp de démarrage ? Si c'est le cas, allons de l'avant et créons une épingle. Ok, épinglez l'annotation et rendons-le jaune. Et puis retournons celui-là à la place. Donc il va toujours avoir notre invitation au camp de démarrage. Comme vous pouvez le voir ici, s'agit d'une annotation racine car elle hérite de l'annotation M k. Donc c'est tout ce que la date est toujours là, sauf qu'on change juste la couleur dessus. Et voyons si cela fonctionne. Je suis curieux. Curieux. Ok, il est chargé. Cliquez sur le deuxième et il effectue un zoom avant. Oh, c'est vilain Jaune. Tu es comme toi que le rouge est mauvais. Oh, c'est plutôt moche. Mais de toute façon, comme vous pouvez le voir, nos trois gouttes sont maintenant jaunes. OK, donc ces installations d'urinoir
d'air, au fait, c'est ce
que vous les représentez avec cette mauvaise couleur jaune eso Là vous l'avez. Et, euh, honnêtement, je ne peux pas le prendre. Les gars, euh hum faire la couleur noire. Voyons voir. Voyez à quoi ressemble une couleur noire, mais c'est comme ça que vous le faites. Ok, donc on a plein de choses qui se passent ici, mais ce n'est pas tant de manteau, accord ? Vous avez appris beaucoup de choses cool en ce moment. On y va. Black Boehm, ce sont des agents. Ok, donc cours de questions. Non, pas de questions. Super. Donc là, vous l'avez. Marquer le prix aux profondeurs. Dot com du pape Faire de grands progrès.
76. Comment fonctionnent les demandes Web: tout le monde Mark Price ici à dev pistes dot com. Et aujourd'hui, nous couvrons un principe très étranger. C' est essentiellement la façon dont les requêtes Web fonctionnent, comment Internet fonctionne en ce qui concerne les requêtes Web. On ne va pas parler de la façon dont Internet fonctionne vraiment. Ce n'est pas une leçon philosophique sur la vie privée et Internet se connectant à toutes sortes de ordures. C' est juste à propos de la façon dont Teoh parle au serveur Web. Donc très important, bien qu'en fait, jusqu'à ce que je devienne un développeur Web plus tard dans ma carrière, , et je l'ai fait juste pour le plaisir jusqu'à ce que je comprenne ce qui
se passait vraiment dans les coulisses. Je n'ai jamais été vraiment génial pour interfacer avec des serveurs sur mon application iPhone, donc c'est un principe très important. Alors, euh, regardons ça comme ça. Donc tu as un téléphone. Ok, voilà ton iPhone, non ? air super. Voici votre téléphone Android cool, vous savez, pas l'iPhone d'une école, mais toujours assez cool. Et puis vous avez ce téléphone Windows cassé que personne n'utilise jamais. Ok, il pourrait encore faire ce qui demande une fenêtre. Vous étiez comme des idiots. Je dis ce que je veux et tu dois regarder. Ok, donc, euh, faisons semblant que ce sont des clients, parce que c'est ce qu'ils sont. Ces clients aériens. Ça pourrait aussi être un ordinateur, non ? Un navigateur. Donc les clients israéliens dans le passé, Ah, les
sites Web étaient très statiques, non ? Comme devant. Et vous avez juste un site Web avant même APS existait sur l'application mobile iPhone. Donc, vous auriez un site Web avec des données statiques dessus. Ça ne ferait pas grand-chose. Vous y vivriez tous. Mais au fur et à mesure que les jours passent, les
sites Web commencent à réfléchir davantage. Et puis l'APS mobile est sorti, et c'est comme, Eh bien, comment faire parler nos données à notre APS mobile ? Et comment on fait fonctionner tout ça ? Eh bien, euh, nos jours, Ok, tout est dans le nuage. Et quand je dis cloud signifie serveurs virtuels partout, et cela nous permet d'avoir nos clients parlent à notre serveur afin que nous puissions avoir
un accès instantané aux données sur toutes les plates-formes. Donc ici, c'est là que nous avons notre serveur. C' est notre serveur cloud. D' accord. Et, euh, on a un serveur ici. D' accord. Et connecté au cloud est une base de données. Il pourrait être vivant sur le même serveur ou il pourrait être sur un serveur différent. Mais fondamentalement, base de données est ce qui va stocker des données en permanence. Nous avons donc ces clients qui ont besoin de données. Alors, comment ça marche ? Eh bien, vous probablement de toute évidence, il parle au serveur et renvoie, et c'est le cas. Mais il se passe un peu plus que ça. Donc, Donc, avec cela à l'esprit,
cependant, cependant, c'est le flux de base. Les clients ont parlé au serveur et le serveur est là, et le serveur renvoie les données, OK ? C' est ainsi que nous communiquons généralement avec les appareils et sur le Web. Et fondamentalement, ces demandes et cette discussion d'aujourd'hui, nous ne parlons pas d'autres sujets. On va supposer que c'est comme ça que c'est fait, parce que c'est surtout le cas. On va parler de http que tous utilisent le protocole H T t p. Maintenant, si je vois cela dans votre navigateur comme lorsque vous tapez dans http deux-points pour ses quatre dernières slash https, qui est sécurisé. Um, vous les utilisez depuis toujours. Et ce que cela signifie, c'est le protocole de transfert hyper texte. Ok, protocole
de transfert hypertexte. Je ne vais pas l'écrire. Vous pouvez le rechercher en ligne si vous voulez lire ce que cela signifie, mais fondamentalement, c'est un protocole que, hum, clients et les serveurs obéissent pour transmettre des données d'avant en arrière. Donc, si oui, par
exemple, sur Google Chrome tout droit, ils obéissent au protocole http, qui permet aux données d'aller de votre navigateur au serveur et vice verset, ex cetera frame. Il y a des amis web qui font ça. Vos clients aiment, euh, IOS. Il obéit aussi aux particules http. Donc, dans IOS, nous utilisons une classe appelée session N S U R L. Ok, dans cette session SQL vous permet d'effectuer des requêtes Web aux serveurs. Et donc IOS a dû mettre en œuvre ce protocole. Android a dû faire exactement la même chose et genre de fenêtres. Donc, toutes ces plates-formes pour les bases de code à caution, pour parler aux serveurs, ils implémentent ce protocole et plus ou moins quoi ? Quoi ? Ce que vous faites dans une requête, c'est que vous avez juste passé des données d'avant en arrière. Ok, donc les données vont et
viennent, d'avant en arrière, et donc parlons un peu d'une demande. Ok, donc tu as une requête web. Je vais juste appeler des demandes web. C' est une sorte de terme commun. Donc disons que,
euh, on fait un kidnap, tu sais, pour toutes ces vidéos de chaton. Donc, vous savez, mignon petit chaton en place. Ok, c'est un chat heureux. Ok, on fait un kidnapping, et on doit le faire donc l'utilisateur ici sur cet iPhone ou l'un de ces appareils, l'
un de ses clients ? Ce qu'ils ont fait, c'est qu'ils ont ajouté une photo de leur chat, et nous voulons économiser sur le serveur. Donc, la prochaine fois qu'ils chargent l'application, elle l'extrait du serveur, et elle est toujours là. Donc, disons que la demande ressemble à ceci. Et ces demandes sont, hum vont être à Jason. Ok, euh, vous pouvez aussi utiliser XML, mais à peu près tout Internet est en train de passer à Jason. Et, en gros, disons qu'on a un objet chat ici, et disons qu'on a un objet chat ici,
et
qu'il a un nom. C' est donc un objet appelé nom. C' est sans citation. Donc ce sont des citations. Et, euh, le nom est Liu Liu. Ok, il y a une virgule. Et puis, euh, il y a une, euh, une image ou je. Ok, donc peut-être que votre iPhone l'a téléchargé sur Amazon, et il a stocké l'huile ici et maintenant on doit l'envoyer au serveur. On a une image ou un l. et c'est Http Colon, deux-points,
quel que soit le point com et quoi d'autre alors ? Peut-être une description, non ? Eh bien pour dire DSC et ah, tu sais, c'est mon chat préféré. Bloc probable. Donc, nous avons juste ce que nous avons fait ici, c'est que l'utilisateur a ajouté un nouveau chat. Donc, de votre point de vue, ils ont cliqué sur le bouton, ils ont pris une photo, ils ont cliqué sur le bouton et ont dit, hey, sauvé mon chat. Et il a donc pris cette demande ici et dans notre code. Nous avons écrit un type de code pour transférer des données dans Jason. Ce que tu vas voir comment dio, ce qui est vraiment cool. Et donc fondamentalement, nous avons ce texte maintenant protocole de transfert hypertexte. Donc, nous transférons simplement du texte pour le transfert le plus important de barbier dans le texte à travers. Donc notre client est iPhone ici. Il fait cette requête, et cette requête de Jason va au serveur et le serveur le reçoit alors dit, OK, cet objet semble bon. Les données semblent bonnes. Allons-y et stocké ici. D' accord ? Et en passant, cela s'appelle une demande de poste. Quand vous publiez quelque chose de nouveau. Ok, donc on vient de poster quelque chose sur le serveur. Maintenant, disons que nous venons de charger l'application et que nous voulons obtenir une liste des meilleures vidéos de chat. Eh bien, ils
ont été postés sur le serveur. Donc maintenant, nous venons d'en faire un nouveau post répressif. Prenons notre application iPhone. Laisse-moi effacer. Mauvaise couleur. Noir et noir. Pas une bonne combinaison. Leurs ego ne font que changer. Toi aussi. Blanc sous le détail ici. Et on y va. D' accord. Et je vais juste effacer ça. Il se dégage de l'espace, d'accord ? Disons qu'on doit avoir une liste de vidéos de chat. Donc ce qu'on va faire, c'est qu'on va faire une autre demande au serveur. Ok, donc on fait une demande. Et à quoi ressemble la demande ? Ce dont nous avons parlé, ce dont nous avons parlé ici, c'est juste ce que nous avons posté. Donc ce truc ici s'appelle le corps. Ok, on a juste fait une question d'affiche, on passe dans le corps, mais une demande a plus que ça. Donc, si je fais une demande get, ok,
ça s'appelle une demande get. Nous allons obtenir des trucs du serveur et sur une demande get. En fait, tu ne mets pas de corps. Ce que vous êtes habituellement dio est votre quête vient avec quelques choses. Il est livré avec une URL, sorte que chaque demande aura une fille. Ok, euh, vous pourriez avoir ce qu'on appelle un en-tête. Donc, disons ou en-têtes un ou plusieurs en-têtes. Supposons que vous ne pouvez pas faire de demandes à moins d'être connecté. Donc, parfois est typique dans la partie en-tête des requêtes http à transmettre,
vous savez, vous savez, comme une autorisation et hors jeton eso fondamentalement ou votre nom d'utilisateur et mot de passe. Donc, fondamentalement, vous dites, Hey, je suis autorisé à faire cette requête parce que parfois sur un serveur, vous ne voulez pas que quelqu' obtienne des données. S' il s'agit d'un compte bancaire, par
exemple, voulez-vous que quelqu'un se connecte à votre compte et obtienne vos données ? Non. Alors dans ta tête ? Ou vous pourriez avoir un mot de passe ou un jeton d'authentification pour dire, Hey, c'est qui je suis. Donc, vous faites une demande et dans ce cas est une demande get. Donc le serveur le prend et ils disent, OK, oui, ce gars est autorisé dans notre cas dans une partie de l'abside pour construire. On ne va pas s'inquiéter de l'autorisation. Ils viennent d'ouvrir la glace AP qui nous permet d'obtenir des données à partir de lui. Donc, fondamentalement, nous avons fait une demande get. Les services ? Oui, c'est bon. Et puis devinez ce qu'il renvoie ce qu'on appelle une réponse. Ok, donc le serveur renvoie votre réponse, puis le clank et gérer la réponse, et c'est ce que nous allons faire sur notre application. Donc, vous récupérez le Jason cette réponse. C' est Jason dans la plupart des cas, puis vous l'analysez, puis vous utilisez les données S dans votre application. Donc, ce sont des communications de base sur le serveur juste là. Maintenant, allons de l'avant et effacons tout cela pour un instant. Montrez quelques autres principes ici. C' est vraiment important pour vous de le comprendre. OK, donc on a parlé de quelques opérations, ok. Et parlons d'un peu plus. Ces opérations sont en quelque sorte connues sous le nom de « foule ». Et si vous ne savez pas ce que cela signifie créer,
lire, lire, mettre à jour et supprimer. Ok, ce sont les opérations courantes que vous allez effectuer sur les données et ah, en d'autres termes, créer son poste. Lire c'est obtenir. Mise à jour est mise et élite est supprimée. Donc ces termes communs d'air que vous allez voir. Donc quand vous publiez quelque chose, votre poster quelque chose de nouveau, ok, supposons quelque chose de nouveau ? Quand vous obtenez quelque chose, vous récupérez, accord ? Et lorsque vous mettez quelque chose que vous mettez à jour, vous prenez
donc des données existantes et les modifiez. Et quand tu supprimes, c'est parti, bébé. Ok, c'est un point d'exclamation. Très bien, donc ceux de la demande typique que vous allez faire son post être mis, supprimez votre poste sur un serveur. De nouvelles choses. Vous récupérez des éléments du serveur que vous mettez à jour ou supprimez des éléments. C' est très typique de la plupart des applications des opérations que vous allez effectuer dans notre cas. Tu sais, comme sur l'application
Pokemon, on va faire seulement recevoir des demandes. Beaucoup de fait absolu, beaucoup d'APS qu'il peut ne faire obtenir des demandes. Et beaucoup de fait faire des trucs demandés post est bien, aussi. Et donc, en gros, comment ça marche, c'est ,
euh, pour résumer ce dont nous avons déjà parlé, c'est que
vous ferez de Here votre client. Et voici votre serveur. Ok, c'est le serveur. C' est le client. Ainsi, le client fera toujours un certain type de requêtes, et le serveur dans la plupart des cas donnera toujours une réponse. Donc vous avez une réponse. Tu as une demande, OK ? Et ils sont à la fois la réponse et la demande de respecter ils respectent le protocole http. Ok, http, tu n'as pas à t'inquiéter de ce qui se passe sous les scènes avec http. C' est très complexe. Un groupe de grandes entreprises, d'
énormes individus et de leaders d'opinion dans le monde s'assoient et disent : Qu'est-ce qu'Internet doit être ? Et puis ils créent des normes, et ce protocole est modifié de temps en temps. Et donc fondamentalement, tous les clients y adhèrent. Donc, s'ils n'aiment pas, vous pouvez créer votre propre protocole. Fais ce que tu veux, mais personne ne l'utilisera. Tu sais, Chrome doit l'adopter. Votre application iPhone doit l'adopter. Tu sais, ça n'a pas de sens de construire le vôtre. Et donc vous faites une demande. Si c'était une demande de poste, il pourrait y avoir un corps. Ok, tu pourrais avoir des en-têtes. Rappelez-vous le corps est ce que vous envoyez au serveur. Ce Jason. Donc si vous publiez de nouvelles choses, vous allez le transmettre, Jason au corps de la réponse. Euh Eh bien, le genre de réponse a le corps à. Dans la plupart des cas, vous renvoyez un ensemble de données, vous savez ? Hé, comme, par
exemple, une demande get. Comment toutes les vidéos de chat. Donc ça renvoie une liste de Jason pleine de vidéos de chat, et ah, c'est comme ça que ça marche. Ce n'est pas trop mal quand vous regardez dans cette perspective visuelle, vous faites simplement une requête au serveur et ils reviennent. Et puis tu analyses les données, etcetera, euh, trucs
vraiment cool. En fait, ce que nous pouvons faire ici, c'est juste montrer un peu plus comment cela fonctionne. Donc, si je ferme ici, sortons de la boutique photo et allons de l'avant et ouvrir un navigateur. D' accord ? Que se passe-t-il lorsque je vais à google dot com ? D' accord. Maintenant propriété de l'alphabet. Si vous n'avez pas lu les nouvelles, Google n'est plus Google. Eh bien, c'est vrai, mais ce n'est pas le cas. Et donc Google dot com, vous êtes comme,
OK, OK, qu'est-ce que vous me montrez ? C' est une chose que je fais tous les jours. Eh bien, oui. Donc, si quelque chose d'intéressant ici, vous venez de faire une demande get. Donc, votre navigateur Google Chrome. Il vient de faire une demande get à Google et Google renvoyé hte familier comme Wait, quoi parlez-vous ? Eh bien, tu veux faire quelque chose de vraiment cool. J' ouvre mon terminal de commande. Ok, vous voyez ici dans le côté droit pour le rendre très grand. Voici quelque chose d'intéressant. Si je tape dans curl google dot com curl est une, euh, une commande Mac pour faire quelles demandes. Donc, dans le cas du navigateur, le client est ce navigateur, et dans ce cas, le client est mon combat terminal. Curl google dot com. Regarde ça. C' est intéressant. Hum, nous faisons mieux, euh, allons boucler le https réel. Www dot google dot com Vous êtes comme, Whoa, regarde ça. Il renvoie du HTML. Donc, ce qui est intéressant, c'est que votre serveur renvoie des données, et c'est tout ce qui se passe ici sur Chrome. Les différences Chrome sait comment gérer HTML, sorte que le serveur renvoie. HTML dit, Faites ce que vous voulez avec, et donc Chrome sait comment le gérer parce que c'est un navigateur. Mon serveur est excusant. Mon terminal ne sait pas quoi faire avec tout ce html il le renvoie, mais il ne peut rien faire avec. Parce que le terminal n'est pas un navigateur,
donc ce sont les deux clients,
et ils ont tous les deux fait exactement la même requête. Parce que le terminal n'est pas un navigateur, donc ce sont les deux clients, C' est vraiment cool. Donc les serveurs consentent à ce qu'ils veulent. Et donc dans ce cas est renvoyé HTML vraiment, vraiment cool. Et si on retourne voir notre facteur si je lance le facteur ici, donnons-le une seconde ici, je crois. Et cela a une Star Wars ap DiNozzo. H T T P s W e a p Je doute PDG slash ap glace moins planètes tester un. Si je veux tirer une demande get et cliquez sur envoyer. Ok, ça me donne des données. Maintenant. C' est aussi un facteur client. Son propre sort. Celui qui fait la demande est un client. Donc ici, nous n'avons pas reçu de demande. On l'a caché, j'ai une p. Je nous ai renvoyés Jason. Et c'est là. Donc on vient juste de faire une demande get. Des trucs plutôt cool. Ok, euh, c'est un format brut. J' ai juste cliqué sur le Robert, et c'est à ça que ça ressemblera quand tu l'auras. On a juste, tu sais, on a rendu ça joli, euh, et voyons ce qui se passe si on essaie. Je vais faire cuire le bouton de réinitialisation si nous essayons de charger Google ici, https google dot com et je clique sur envoyer. Donc c'est comme, OK, eh bien, il y a le HTML que j'ai récupéré, juste mon terminal, donc exactement la même chose. Mais si je clique sur Preview a son propre petit truc de navigateur, nous sommes en quelque sorte ici. De toute façon
, le facteur est un client. refus de votre navigateur Web. Vos iPhones acquièrent Androids, un client, tout ce qui fait nos questions. Serve est un client. Tout ce qui se passe, c'est que vous faites des requêtes sur le serveur, renvoyez des choses, et c'est des requêtes Web. C' est comme ça que ça marche. Donc quand tu creuses dans ce truc, sachez
qu'il n'y a pas de magie. C' est juste Jason. Dans la plupart des cas, étant transmis d'avant en arrière, vous pouvez en extraire des valeurs. Cliquez ici pour recharger ma dernière demande. Vous pouvez en extraire des valeurs. La rotation du nom, vous Toutes ces choses sont des valeurs clés. Ceci est un tableau. Um, tu vas utiliser Jason à peu près. La plupart des applications. Donc, ce sont des requêtes Web. C' est comme ça que ça marche. Vous allez voir une action pendant que nous allons ici. Mais si jamais vous avez des questions sur comment cela fonctionne, vous vous référez à cette vidéo sur et savez que c'est un principe fondamental. Et si tu peux comprendre ça, si tu peux y réfléchir et vraiment le faire tomber, tu devanceras beaucoup de gens qui sortent de l'école. Au fait, si vous faites ce cours et que vous faites toutes ces choses, vous serez bien en avance sur les gens qui sortent des diplômes d'informatique parce qu'ils sortent sans connaissances pratiques, il enseigne encore c plus plus à des diplômes dans les universités, vous savez qui utilise C plus comme les programmeurs de jeux vidéo et la NASA. Donc, si vous ne prévoyez pas d'être un programmeur de jeu, pas de travailler à la NASA, vous voyez des choses très importantes. Apprenez ces concepts, faites-le descendre. Mark Prix de la mort pentes dot com Merci pour le réglage dans, et je vous verrai la prochaine fois
77. Travailler avec POSTMAN: Hey, un point de profondeur plus rapide pentes point com Aujourd'hui, nous allons parler de Facteur. Donc, la chose à propos de ce film est un peu excitant, mais aussi un peu sec. Je sais ce que vous pensez, mais je ne pense pas que ce soit le facteur que vous attendiez probablement. Au fait, c'est un film cool. C' est bon. Un peu plus là-bas. Je ne sais pas. Tu vois ça peut être ne pas le voir. Mais ne l'achète pas. Eca Et,
euh, c'est quoi le facteur ? Je vais taper le Facteur Chrome, d' accord. Et fondamentalement, en tant que développeur IOS professionnel, vous allez interagir avec des serveurs Web tout le temps. Et vous faites des demandes, et comme nous avons parlé déjà peut créer,
lire, mettre à jour, mettre à jour, vous pouvez poster des choses déjà dit, C'est créer,
um Quoi
qu' il en soit, um, Vous connaissez toutes sortes d'opérations et vous devez savoir à quoi ressemblera le Jason, quoi ressemblera le jour. Et parfois, quand vous êtes sur IOS, vous allez avoir des pensées indiquant que le concert peut avoir l'air vraiment méchant. Il est difficile de savoir si votre demande arrive correctement. Il est difficile de savoir si votre code est mauvais ou si la demande est mauvaise ou peut-être que vous appelez le mauvais ou bien alors ce que vous voulez faire est que vous voulez obtenir facteur, alors allez à Je viens de chercher des hommes de poste chrome et il apparaît juste ici. Vous pouvez simplement cliquer sur Ajouter aux esprits chromés déjà installés Et quand vous cliquez, ajouter au chrome ici. Quoi ? Il va en fait dio je vais le tirer ici sur le côté droit va installer,
hum, hum, le lanceur d'application chrome juste ici. Tu viens de cliquer dessus et, euh juste ici, tu as chrome onda. Euh, il n'est pas là. Eh bien, ajoutons juste qu'il n'est pas là. Je ne sais pas ce qui lui est arrivé. Cliquez sur, ajouter. D' accord. Et c'est la vérification et son installation. Vous pouvez le voir juste là et là. C' est bon, donc le facteur est maintenant installé, donc je vais cliquer dessus, faire glisser ici. Ce type a un peu ici, d' accord ? Et il suffit d'aller à l'application. Et donc ce que fait le facteur, c'est qu'il vous permet de simuler des requêtes Web comme vous pourriez le faire via l'application, mais vous pouvez voir exactement quelles données vous récupérez. Donc, si les données correspondent ici et ensuite les données correspondent dans votre IOS, vous vous en sortez assez bien. Alors allons de l'avant et tapez dans le navigateur Star Wars, un p I. Et il est juste là. Le top. Il est s w a p i dot PDG et ce qu'il est, c'est juste un libre en ligne un p I. qui a des trucs. Donc, par
exemple, celui-ci a Luke Skywalker, par
exemple, Si vous mettez ceci votre Ellen ici et alors qu'est-ce que vous pouvez dio comme je peux copier ceci ici. Allez sur le facteur et c'est une demande get k. Vous pouvez le changer de get to post to put to delete et tout un tas d'autres. Mais ceux qui sont les principaux, vous pouvez mettre la fille là-dedans et celui-ci est les gens de Ford Slush Ford slash une barre oblique et tout ce que vous avez à faire est de cliquer dit et il est là. Donc, notre demande, il a frappé le serveur dans un retour de données, et ici il est au format Jason. Et, euh donc si nous faisions ça dans notre application et que ça ne se produisait pas, nous aurons autre chose. Nous saurions que nous faisons quelque chose de mal avec notre code et donc tout le temps je vais allers-retours le facteur faisant des demandes différentes, testant des choses pour voir exactement quel type de données je cherche. Je vais cliquer sur ces choses ici et aller à la documentation. Et, euh, on
y va pour que tu puisses faire toutes sortes de choses. On dirait qu'ils ont un plan. C' est un. Donc, si je mets en évidence les planètes ici, j'ai appuyé. Envoyer tire des données différentes, donc je sais que ça marche. Donc, vous allez vouloir utiliser ceci comme vos tests, vos données et votre Jason pour voir comment ça ressemble vraiment et fonctionne. D' accord. Très fantastique, outil. Je l'utilise tout le temps. Et aussi, si je copie ceci ici et que je colle réellement dans une fenêtre de navigateur, faisons-le ici. Il fait une demande get, et c'est sympa
qu'en fait,
celui-là nous ait envoyé sur ce joli,
euh, euh, écran de
quatre matières. Voici Ah, Python et Jane. Revenez en arrière et faites-le pour vous Automatiquement. Allons à un A p que je porte. Ça ne rend pas tout ça assez gratuit. Allons à la pokey je crois que c'est le Pokemon ap je pokey ap Je doute PDG va travailler avec celui-ci. J' ai copié ça ici. D' accord. Et puis j'ai mis dans Pokemon slash une barre oblique. Ok, c'est
là. Excusez-moi. Donc ce qu'on a récupéré, c'est un tas de Jason, non ? Tu es genre, Oh, mon Dieu, c'est méchant. Donc, sur Obtenir les demandes. Vous pouvez simplement les mettre dans un navigateur. Pas grand-chose. Mettez-le dans un navigateur. Vous pouvez voir toutes les données qui sont ici, mais assez difficiles à lire. Donc, ce que j'aime faire parfois c'est aller sur ce site. Je viens de taper Jason en ligne pour le sujet. Jason Online quatre questions et tout ce que vous avez à faire est collé dans votre commande V à Coller. Je commande une commande. Tu vois ? Et puis, euh, commande V. On
y va. Donc il y a notre Jason je clique processus et il pour méditer pour nous gentiment. Alors que vous allez construire votre application Pokemon ou toute autre application, vous serez comme,
Oh, Oh, ouais. Je veux avoir accès aux capacités. Vous pouvez étendre ces choses. Vous pouvez le regarder comme,
oh, oh, des descriptions. Tu peux avoir tout l'Oural, tu peux t'effondrer. Il est très agréable de regarder le manteau parce que quand vous êtes sur IOS et votre empreinte sauf sur
la console, ça ne va pas ressembler à ça. Ça va avoir l'air plutôt méchant, en fait. En fait, je l'ai tiré ici en code X. C' est le projet Pokemon travaillera sur. Et je viens d'imprimer les données qui proviennent du serveur, et c'est juste ici au conseil. Habituellement, tes consuls comme ça, tu sais, c'est bon de travailler avec, mais ce n'est pas le plus beau, juste un tas de blocs. Je ne peux pas m'étendre ou m'effondrer. Bref, juste un exemple rapide de quelques outils que vous allez utiliser régulièrement ou que vous allez vouloir utiliser. Il vous aide à déboguer les problèmes et à comprendre les choses. Et la plupart des nouveaux développeurs traversent des tonnes de stress en difficulté, essayant de comprendre comment se connecter à Internet et résoudre ces problèmes ici pour
vous rendre la vie un peu plus facile. Ceci est Mark prix profondeur savons dot com, et continuons à aller de l'avant
78. Demandes Web (NSURLSession): Hé, tout le monde, Mark Price entend avec les sourds et nous avons beaucoup parlé de Weber Plus, alors allons-y et en faire un avec l'Iowa. Alors quand ouvre ton code ex et que je vais déposer un nouveau projet, tire-le ici pour toi. Voir le fichier nouveau projet. OK, cliquez
donc sur le nom du produit d'application unique. C' est ce que l'on appelle ce test de requête Web et je vais aller de l'avant et laisser tout le reste de la même façon. Cliquez sur Suivant et nous le stockerons sur le bureau. Ok, Donc la raison pour laquelle je vous montre, euh, c'est parce que vous allez utiliser ça beaucoup tout au long de votre carrière et que vous n'utilisez peut-être pas la session SQL Si vous décidez d'aller avec le framework que nous ferons plus tard sur, nous nous tournons vers Alamo fire pour les demandes rapides, car c'est très élégant, mais c'est un outil très pratique que IOS nous a fourni, et il n'y a rien de mal à cela. C' est fantastique. C' est simple à utiliser. Je vais te le montrer parce que tu n'utilises peut-être pas un cadre à ton travail. Vous pouvez utiliser le fabricant de requêtes par défaut iPhones, qui est une session SQL. Donc je suis juste là en vue. Il a chargé. Il s'agit d'une application iPhone. Et donc, en gros, ça va s'appeler. Ça va s'appeler la seconde où nous, hum, exécutons l'application ou que nous exécutons. Et alors, allons de l'avant et faisons une demande. abord, testons la requête. Euh, ici sur Star Wars. Ok, donc on va le faire ici. Ce peuple veut, alors je vais ouvrir. Mon facteur. Facteur du Launchpad. Non, j'ai cliqué sur le mauvais. En fait, j'ai besoin d'aller au lanceur d'APP puis facteur. Ok, donc voici notre facteur. Il est en train de charger. Je vais prendre l'URL. Donc c'est celui-là. je vais le mettre ici ,
et je vais aller de l'avant slash les gens pour ça slash un et slash. Et ce qu'on va faire, c'est d'atteindre ce point de terminaison et d'obtenir les données. Donc, il a déjà fonctionné près de ce client a déjà implémenté du code pour télécharger cela. On doit le faire nous-mêmes. Et donc le résultat final de ce que nous obtenons sur iPhone devrait ressembler à ceci. Ok, ce n'est pas trop mal. Alors laissez-moi fermer de ce site a p I ici. Je vais déplacer ça ici pour qu'on puisse le voir. Et regardons notre code ici. Nous allons éteindre le côté gauche pour voir plus de code. Et d'accord, on y va. Nous voulons que cela soit le résultat final. Donc ce qu'on va faire, c'est abord, mais le vôtre. Alors je vais le dire. Laissez votre chaîne l égale http s w a p i dot code a p i slash gens slash une barre oblique joyeux aller après le côté droit ici aussi. Alors c'est tout, non ? Il y a votre l Allons de l'avant et maintenant créer une session. OK, donc une session est bien, Rudo dit que la classe de session n zéro et les classes associées ont fourni un p I pour le
contenu téléchargé via http Ce AP I fournit un riche ensemble de méthodes de délégué pour la prise en charge l'authentification et vous donne votre donner à la possibilité d'effectuer des téléchargements en arrière-plan. Lorsque votre application n'est pas en cours d'exécution dans IOS. Pourquoi rap est bla, bla, bla,
bla , donc n'importe quelle façon vous pouvez regarder, vous pouvez toujours regarder le code de référence ici, Par ailleurs, très utile presse entrer si fondamentalement pensez à une session comme hey,
je veux que mon application ait une session où elle fait de nombreuses requêtes Web de tous
les différents formats et types. Cependant, je vais définir des paramètres globaux qui s'appliquent à tous et penser à. Lorsque nous avons parlé de la façon dont certaines demandes nécessitent un nom d'utilisateur et un mot de passe ou une
authentification avec un jeton d'authentification, vous pouvez réellement les définir sur votre session. Ainsi, chaque requête Web que vous faites n'a pas besoin d'aller ajouter ce jeton
d'authentification. Tu le mets juste une fois. Une autre chose qui change est le ou bien que vous essayez de frapper. Donc, c'est pour cela que vous utilisez une session et vraiment simple. La commande que nous voulons. La fonction est des données chargées avec votre l. Et c'est le juste assurez-vous que c'est celui que nous voulons. Vous voulez juste passer dans votre I et, euh, nous n'avons pas encore ça,
en fait, en fait, fentes. Euh, disons que votre URL est égale à N S u R l et cliquez simplement sur celui qui a le paramètre de chaîne et ah, je voulais le faire. Et on y va. Donc j'ai juste mis un point d'exclamation à la fin parce que je sais que c'est votre El. Si cela a été détruit en mettant quelque chose qui n'était pas un Eurail, cela pourrait ne rien me rendre. Et puis il planterait l'application quand je fais cela. Mais je sais pour un fait que c'est une bonne fille, signifie qu'elle est formatée correctement. Donc, c'est OK. Et alors allons de l'avant et mettons notre Ellen ici maintenant, juste là sur un onglet de presse et puis appuyez sur Entrée. Je ne veux pas tout présenter à la main. Donc quand une presse entre et que vous savez que c'est comme ça que ça m'a donné des choses, Teoh Highlight. Donc je vais appuyer sur l'onglet Entrée, Entrée, Entrée, Entrée. D' accord. Et elle est toujours cassée. Je vais supprimer le code ici. Il est toujours cassé parce que cela nous donne les types de données, mais il ne nous a pas vraiment donné de paramètres à utiliser, donc je vais mettre ces données moi-même espace deux-points, juste comme une fonction droite. C' est tout C'est une fermeture, et il n'a pas automatiquement mis dans la force des paramètres qu'il nous a donnés. Les types n'étaient pas les noms de paramètres réels. Je vais appeler ça une réponse, et je vais appeler ça un seul air ? Pas trop. Pas trop mal. Ok, donc ça a l'air cool. Donc, comment ça marche, c'est que tu dis, Hey, faisons une tâche. Récupérons quelques données K chargées avec votre autre. On fait une demande get. Et quand ce sera fait, ça ira dans ce bloc ici, et les données seront remplies de données. S' il y avait une date, s'il n'y a pas de données, cela pourrait être vide. Ça pourrait être Neil. Tu sais, tu vois le crash, son application. Si vous essayez d'y accéder directement sans vérifier d'abord, ça va nous donner une réponse. Était-ce un succès ? C' était un air ? Hum, et puis ça va nous donner une erreur si elle existe. Donc, euh, pas trop compliqué, hein ? Donc on va dire si les données sont égales aux données. Et si vous ne vous souvenez pas, ce que nous faisons ici, c'est que nous saisissons ces données de réponse ici, et nous les mettons dans une nouvelle variable appelée data. C' est le même nom, d' accord ? Et on le met juste là-dedans et ça. Donc, si les données ne savent pas si tout va bien,
cela va entrer ce code. Les blocs disaient essentiellement Hey, si cette date est OK si elle n'est pas vide, allons-y. J' aurais pu appeler ça. J' aurais pu appeler ces données de réponse pour ne pas vous confondre. Donc, euh, nous allons juste le faire juste pour ne pas être déroutant. Donc, si les données de réponse sont égales aux données, ok, les avertissements nous disent que nous ne l'utilisons pas encore. Et ce qu'on veut dio, c'est qu'on veut prendre ces données et les convertir en, um convertir dans le Jason. Nous avons parlé de Jason quelque chose que nous pouvons réellement lire et utiliser notre application. Donc ce que je vais faire, c'est que Jason soit égal à N, Jace N S J fils sérialisation. C' est ah, classique vient avec IOS point Jason objet avec des données, OK. Et il veut que nous transmettions les données que nous voulons essayer de convertir à Jason, puis options. Je vais dire qu'Ennis J. Son lecture des options dot permettre des fragments. C' est juste ici, et il dit que le parson devrait autoriser les objets de niveau supérieur qui ne sont pas une
instance d'un tableau ou d'un dictionnaire au cas où il s'agissait juste d'une chaîne ou quelque chose. Ce n'était pas un objet et Jason, mais peut-être que quelqu'un nous a donné un numéro. On dit juste qu'on veut le permettre. C' est très bien. Que ça n'a pas d'importance. C' est juste qu'on lui donne une option. Et , maintenant,on ne va pas pouvoir l'utiliser. Satisfait si j'ai imprimé Jason. Oh, au fait, vous remarquez comment il y avait un air sur le côté gauche, voyez comment il y a,
hum, hum, un triangle et un carré ? Eh bien, ça ne me laisse pas choisir les deux, donc je ne vois pas vraiment ce que la zone. Donc si jamais tu vois ça où c'est, tu n'utilises pas ça et ça te donne le triangle. Il suffit de l'utiliser très rapidement. Il suffit de le mettre dans une impression afin que le triangle jaune disparaisse de sorte qu'au moins vous pouvez voir ce que la vraie héritière. C' est un peu ennuyeux, mais eso dit que vous pouvez appeler lancer, mais ce n'est pas marqué par essayer. Donc, le problème est N s Jason sérialisation. Cela peut lancer une erreur, et avec deux points rapides non, nous devons les attraper. Ça ne nous laissera pas le faire. Donc on a un qu'on doit mettre ça dans un bloc do. Donc je vais dire, faire ce qu'on va faire, c'est dire. Eh bien, en
fait, emmène ce gars ici et ce gars, et on va le mettre dans le bloc do, et ensuite on aura juste un bloc de capture ici. Juste pour satisfaire les exigences,
et on dirait qu'on a toujours un problème. Juste pour satisfaire les exigences, Oh, et ça va jeter un coup d'oeil ici, hum, en oubliant le mot-clé try. Donc, nous voulons essayer de le faire d'abord. Ok, donc ça va essayer de sérialiser ça à Jason. Si ce n'est pas le cas, on doit s'en occuper ici. Et ça pourrait être, tu sais, impression, euh, ne
pourrait pas sérialiser. Ok, peu importe ce
que tu veux, ce que tu veux mettre leur et donc on y va. Il va essayer et, euh, exécuter la demande, et ensuite ah, c'est juste donner n'est pas nettoyer ici. Et juste, euh, juste pour l'achèvement, je vais appeler point CV à la fin. C' est une fonction que vous pouvez appeler les données chargées avec votre et donc si cela est accroché , il attend quoi que ce soit. Le CV va juste le laisser aller de l'avant. Et c'est notre demande, OK ? Et si je dirige ça, ça ne marchera pas. Mais je voulais que tu vois pourquoi. Alors je vais aller de l'avant et courir. Et encore une fois, les résultats finaux pour que notre Jason ressemble à ça. Jason, là-bas que tu as vu et que tu as couru. Courir. Ok, on y va. Presque là. Il est là. Regarde ça. Tellement apte. La sécurité du transport a bloqué un texte clair http. Donc, avec le nouveau code X et IOS neuf Okay, vous ne pouvez plus faire de requêtes Web à moins que ce ne soit pour sécuriser les sites Web avec le https. Ça t'empêche de faire ça ? Quoi ? Ce qu'Apple essaie de dire, Hey, nous voulons mieux protéger nos utilisateurs. Alors arrêtez de leur envoyer des sites Web qui ne sont pas sécurisés. Et, euh, c'est par défaut. Non, parce qu'ils veulent encourager les gens. Teoh, euh, est-ce que tu sécurise ces sites web sécurisés ? Et, tu sais, euh, les gens qui s' soucient
vraiment, tu sais, comme tout ça est
fantastique, fantastique. Tu sais, euh, on veut obtenir une intimité plus
sûre, plus sûre,
comme , je suis juste un professeur. Je m'en fiche vraiment. Beaucoup d'abdos, donc je vais juste l'éteindre, éteindre. Nous allons permettre à toutes les requêtes Web de passer comme avant,
avant que j'aie neuf ans. Donc tu vas t'occuper de ça dans ton APS ? Juste pour que tu saches, je vais bouger ça. Ce qu'on va faire, c'est ouvrir le navigateur ici. J' ai cliqué sur le bouton gauche et je vais aller à ma liste de points d'info. Et il y a une chose, une clé qu'on doit ajouter et elle ne va pas apparaître automatiquement. Nous devons en fait le taper manuellement. Ce n'est pas comme si tous les autres que vous voyez apparaissaient juste là. Donc ça s'appelle N s AP Transport Security. D' accord. Et on en fera un dictionnaire. Ok, Vous pouvez cliquer sur cette flèche ici pour le déposer et faire cuire un signe plus, et une autre clé va être N s. Permet un r b i traer e charge si arbitraire. Je l'épelle juste. C' est un de ces mots que vous aimez que vous avez confondus sur les frappes. Et ça va être un booléen. On va le mettre sur Oui. Donc, ce que nous disons est sur le transport de l'application, la sécurité, permettons des charges arbitraires. Permettez-nous de travailler avec n'importe quelle requête arbitraire d'Earl. OK ? Et je l'ai dit. Je vais recommencer. Allons éteindre ce côté gauche ici en courant à nouveau et ça arrive. Il est là. Et regarde ça. Donc c'est intéressant. Ça nous donne dans un ordre différent. On dirait que sur le côté gauche, le nom est le premier Luke Skywalker. Et ici, c'est en bas. Donc, ce qui est vraiment intéressant et important pour vous de savoir, c'est que vous ne pouvez jamais garantir que
ce que vous obtenez d'un serveur sera dans l'ordre que vous voulez. Il ne peut jamais le garantir. Ne garantissez jamais dans aucune de vos applications que quelque chose sera
trié . Vous savez, il y a des points et des points que vous pouvez frapper qui font délibérément ça, et c'est un cas différent. Mais supposez toujours que les données vont venir et quel que soit le format qu'elles vont
entrer . Et donc remarquez quelques différences ici. Donc nous avons l'objet ici, mais vous remarquez que sur le facteur il y a un côlon. Mais ici, le conseil X Code, ça met un signe égal. C' est bon. C' est toujours un dictionnaire. Ok, voilà votre clé. Et voici votre valeur. Voici votre clé. Et voici votre valeur et remarquez comment certains d'entre eux ont des citations autour et certains d'entre eux, certains d'entre eux ne vous inquiétez pas à ce sujet. Pour être honnête, personnellement, je ne sais pas pourquoi quand il imprime sur le Conseil du code X qu'il fait cela, euh, mais vous pourriez juste être sûr que ces clés et ces valeurs sont là pour vous d'utiliser. Et donc nous venons de faire avec succès une requête web qui a téléchargé les mêmes données que ce client a fait ici. Donc on vient de faire ce que le facteur est fait. Et c'est là. Pas trop de lignes de code. D' accord. Tu sais, avec la classe et tout, on cherche 35 lignes de code. Vraiment ? C' est plus comme, tu sais, autant et si bon travail. On a pris les données. Eh bien, nous avons pris un u R. L. Ensuite, nous avons fait un dans sa session rurale, et puis nous avons lancé une demande get en utilisant des données chargées avec l'euro sur la réponse, il nous a donné des données retour, que nous converti en Jason. D' accord. Et il a réussi à passer par le chemin juste imprimé. Et vous pouvez l'utiliser pour beaucoup d'Europe en fait, les
nouvelles pour beaucoup de questions. Alors c'est tout. C' est des demandes simples et passer à autre chose.
79. Cocoapods: Hé, Mark Price ici, Deb remonte sur la selle. Et aujourd'hui, nous allons parler des pots Coco maintenant va ouvrir le site ici afin que vous puissiez le voir. C'
est des gousses de cacao, cet orgue. Maintenant, vous allez découvrir que lorsque vous codez des projets, il y a beaucoup d'outils et de choses que vous ne voulez pas écrire. Vous voulez vous faciliter la vie en utilisant du code que quelqu'un d'autre a écrit. Et dans le passé, tu ferais ça. Vous allez sur Internet, recherchez sur get hub, vous trouverez des projets devraient les télécharger pour les installer. Si vous traînez votre projet, c'est devenu une grande douleur. Comment les gérez-vous sur votre levé et sur votre propre jab ? Et donc des pots de coca sont sortis, et fondamentalement c'est un gestionnaire de dépendance. Il vous permet d'utiliser leur système pour apporter d'autres paquets dans votre projet. Et fondamentalement, vous dites simplement quel pot, quels pods ou projets vous voulez inclure dans votre projet, et il les installera automatiquement pour vous. Et tellement à peu près. Depuis que le cacao flic gousses de cacao est sorti, j'ai utilisé sur chaque projet professionnel unique ou un projet que j'ai été inclus sur son usagé. Il est donc vous pouvez aller sur leur site Web et vous pouvez commencer pour quelque chose. Donc c'est comme, Hey, hum, si
je veux faire une demande Web ? Va voir tous ces paquets que je peux utiliser ici, euh, un
très populaire, que nous allons utiliser et ce que tu devrais utiliser pour. C' est comme le meilleur feu d'Alamo. Ok, c'est,
euh, une bibliothèque de
réseautage. Et voir si vous cliquez dessus, il vous parlera du paquet. Ce qu'il peut faire maintenant Nous allons l'utiliser à la place de N S, u R L session et comment l'installer,
etcetera, etcetera, etcetera, etcetera, et obtenir des informations sur les paquets que vous voulez utiliser des trucs vraiment cool et tout ce que vous pouvez penser. Comme, Hey, j'aimerais avoir un super pop up pour mon application,
tu sais, tu sais, donc je pourrais dire pop up et,
euh, tu sais, tu sais, qu'est-ce qu'il y a un peu de toi et regarde, ils ont même des exemples de la façon dont cela fonctionne. C' est comme, Oh, c'est facile. Donc tout ce que vous pouvez penser, vous pouvez probablement le trouver là-bas et les gousses de cacao. Sois prudent. Tout le code n'est pas génial. Certains d'entre eux sont meilleurs que d'autres. Et donc vous pouvez regarder par combien de téléchargements Il a des choses comme ça. Ce type a un téléchargement en un mois. Mm. Mais si vous regardez Alamo Fire, revenons à celui-là. Je suis curieux maintenant. Alamo Fire qui ? 36 357 téléchargements et seulement 10 000 téléchargements la semaine dernière. Donc pas trop mal. Ok, donc c'est Kobe Pots. Vous n'allez probablement pas vraiment aller sur le site Web beaucoup, sauf, comme, regarder des paquets comme celui-ci. Ce qu'on va faire, c'est tout ça et se refermer ici, c'est que tu vas vouloir ouvrir ton terminal. D' accord ? esprits ici. Vous pouvez également commander type d'espace dans le terminal et pour le rendre très grand afin que vous puissiez le voir. Disons que nous voulons installer des gousses de cacao sur notre ordinateur. Vous ne l'avez peut-être pas encore. Eh bien, peu près tous les livres Mac ou Mac OS X est livré avec Ruby installé et Rubies. Un langage de programmation et des gousses de cacao est construit sur revue. Donc ce que vous allez vouloir faire en premier est de taper dans Sudo gem Installer des pots de cacao. D' accord. Et qu'est-ce que ça va faire ? Le pseudo est vos privilèges d'administrateur. Donc il peut me demander un mot de passe et vous le savez et le mettez. Donc ce qu'il va faire, c'est installer des gousses de cacao. Il va le trouver sur le responsable des
dépendances deRuby dépendances de . Il va l'installer pour vous et si heureux et appuyez sur Entrée. Il veut un mot de passe. Alors je vais mettre mon mot de passe. Je l'ai déjà installé, donc ça va juste le réinstaller pour moi pour obtenir la dernière version pour vous, il va probablement l'installer pour la première fois. Donc c'est juste penser ici qu'il fait son truc. Il fait son truc. Là, nous allons installer avec succès des cosses de cacao si le vôtre n'a pas installé ou, pour une raison quelconque, votre vous ne pouvez pas reconnaître la gem de commande sur votre ordinateur. Ce que vous allez avoir besoin de dio, c'est ,
euh, aller à des gousses de cacao et je crois qu'ils ont une section de démarrage ici, et ça vous donnera des étapes sur ce que vous avez besoin de dio afin de Teoh pour l'installer. Et si cela ne fonctionne pas, ils ont une autre ressource est donc là vous allez, Il est installé. Maintenant, la prochaine chose que vous voulez faire est de l'utiliser et de bien l'utiliser, ouvrez X Code Beta et lancera un nouveau projet. OK, cliquez sur suivant, et on appellera ce test de dash de cacao. D' accord. Enregistrez-le sur le bureau. C' est très bien. Créé. Et c'est là. Et maintenant tout ce dont vous avez besoin pour dio divulgation projet. Sortez de votre projet. Je viens juste de commander Qué de tuer Xcoat. Et ici, dans votre terminal. Ok, naviguons. Oh, non. Le terminal Naviguons dans le terminal. C' est là qu'on est en ce moment. Et ça va sur le bureau. Donc le bureau fuyant sur le président Tab ls. Et il y a notre dossier de test des gousses de cacao, test des gousses de cacao. On va juste y aller. Et si je tape, je suis sûr qu'il y a mon projet. Pas encore de gousses de cacao installées. Donc, c'est comme ça que vous obtenez des gousses de cacao en cours d'exécution type de pod dedans. Et maintenant, si je tape l s u C quelque chose appelé un fichier pod, pas grand-chose. Droit ? Donc ce qu'on va faire est de retourner à Google Chrome goto gousses de cacao et allons faire Alamo Fire. Alamo Feu ! D' accord. Et je fais juste défiler vers le bas pour voir comment l'installer. Um, où est-il ? Ici. C' était en fait. Allons là-bas. Obtenir le site Hub tellement mieux. Je n'aime pas la façon dont ça marche ici. Si je vais vraiment Teoh zones juste ici pour avoir costume à plusieurs reprises sur le fond. Droit. Cliquons sur ça. Et c'est là que le code est réellement hébergé. Ils sont beaucoup plus jolis. Ok, l'installation. C' est celui qu'on cherche ici. Donc c'est ce que vous devez mettre dans votre fichier de gousses de
cacao. Alors allons à votre détecteur. Allons sur le bureau. Allons au fichier du pot de test de cacao. Il suffit d'ouvrir avec n'importe quel éditeur de texte édité, Adam Sublime. Tout ce que tu veux. Je vais faire sublime parce que c'est ce que j'ai mon ordinateur. Si vous n'avez pas sublime dans l'éditeur de texte libre vraiment cool à nouveau. Tout éditeur de texte fonctionnera. Et donc la plate-forme Iowa, six points. Oh, eh bien, c'est vraiment vieux. Changons-le à huit. Soutiendra huit et plus. C' est très bien. Et donc ça a l'air bien. Nous avons aussi besoin de ce, um, ce mot clé d'utilisation des frameworks ici. Hum, en fait, toutes ces choses ici, on va avoir besoin d'avocats. Allez-y et copiez-le. En fait, copions le tout et débarrassons de tout ce qu'on a ici. Il suffit de coller à des choses si importantes est utilisé frameworks avec swift, vous devez utiliser des frameworks. Et voici la capsule elle-même. Ok, en fait, défaites ça parce que je ne veux pas que vous ne vouliez pas vous donner de mauvaises informations. Je ne copie pas complètement ce qu'ils ont ici. Laisse Centcom programmer cette année,d'
accord,
on le gardera à huit heures. Laisse Centcom programmer cette année, accord, Et puis juste ici, dans votre cible. C' est juste dire, Hey, ta cible principale, c'est
ce que tu vas inclure ici. D' accord ? Et donc les cadres d'utilisation, nous allons inclure. Eh bien, mettez-le juste ici et là. C' est là que vous mettez vos gousses. Ok, voilà. Donc on veut inclure Alamo Fire. Il sait où il est parce que les gousses de cacao y ont une référence, et nous voulons la version 1.3. Donc, ça me semble plutôt bien. Je vais le sauver. D' accord. Je vais m'en sortir ici, et tu devrais ressembler à ça, ok. Ou quelque chose de similaire. Ok, je viens de partir. Je voulais cibler ici parce que nous disons hé, tout pour cette cible spécifique. Certains projets ont des objectifs multiples, donc nous y allons. Fermeture de cela maintenant, retour à l'espace de commande du terminal où nous entendons la commande Terminal de l'espace. Ok, donc nous sommes toujours dans notre répertoire ici, comme vous pouvez le dire, et tout ce que j'ai à faire maintenant est de taper l'installation de pod, ok ? Et ça va lire dans le fichier pod, et ça va installer n'importe lequel de ces pods qui sont dans mon projet. ce moment, il met à jour les spécifications des gousses de cacao. Et ce qu'il va faire, c'est qu'il va prendre le feu d'Alamo, installant le feu d'Alamo juste là. Et puis il vous donne ce petit avertissement vert Ici, s'il vous plaît fermer les sessions Exco en cours. C' est pour ça qu'on l'a fermé. Et à partir de maintenant, utilisez l'espace de travail. Attends. Qu' est-ce que ça veut dire ? Retournez à votre dossier ici. Il y a maintenant une nouvelle icône. Donc à partir de là, à chaque fois que vous utilisez des gousses de cacao, accord ? Et vous les avez installés. Tu vas utiliser l'espace de travail à la place de ça. Si vous utilisez ceci. Tu n'auras pas tes projets externes. Ils ne seront pas inclus, OK ? Et maintenant, tout ce que je dois faire pour que ça marche, c'est juste double-cliquer sur l'icône blanche, ok ? Et il va charger le code X avec les paquets que nous avons installés. Et c'est là. Voici notre projet. Ok, pas trop différent de ce qu'il était avant. Et voici les pots. Si on va dans les gousses, il y a le feu d'Alamo. Donc, il l'inclut juste là dans notre projet. J' ai tout fait pour nous. Et si vous voulez l'utiliser,
c' est simple comme aller à votre code, qui est, euh, voyons ici. Voici notre code de votre contrôleur. Si vous voulez l'utiliser,
tout ce que vous devez faire est important le paquet ou suivre les étapes. Droit ? Donc, il y a là qui dit, Hey, si tu veux l'utiliser, hum, où est-ce ? Importer ? Alamo ? Euh, juste là, ce type a importé le feu d'Alamo et il n'a pas été terminé automatiquement. Parfois, ils ne le font pas, alors c'est bon. Et on nettoie mon projet ici. Oh, c'est un très bon point. C' est vraiment un bon point. Si bon que nous sommes tombés sur ce problème. Donc, cette version d'Alamo Fire ne supporte pas Swift encore deux points. Oh, rapide à pointer. Il y a un tas de changements. Donc, si jamais vous rencontrez ce problème lorsque vous êtes dans une bêta ou même quand il n'est pas fait, il peut être que le hub donne a une branche ah réelle où ils soutiennent Thea. Version plus récente. Donc, euh, si on retourne sur le site, Alamo tire et clique sur les branches Ok, il y a Maître. Attends, qu'est-ce que c'est ? Un Swift 2.0, branche. Oh mon Dieu, ils le font. Ils le soutiennent. Comment puis-je l'utiliser ? Donc, nous allons cliquer dessus et voir s'il a des instructions. Ok, Allons descendre tout ce qu'ils ont des instructions au lieu d'utiliser cette autre version. Utilisons celui-ci et il le tire directement à partir de Get up cette branche
spécifique. C' est un joli, donc c'est une copie que maintenant. Et revenons à notre détecteur ici et allons au fichier pot à nouveau ouvrir avec aller faire sublime. Et maintenant, je vais sortir ça et mettre dans la get une branche qui prend en charge Swift 2.0, parce que notre projet avait une erreur. Ça ne marchait pas, donc c'est vraiment cool. Ok, eh bien, merci, les gars. Au feu d'Alamo. Tu as un gentil petit ah Swift. Deux points. Oh, merci de retourner à votre terminal ici, accord ? Et il suffit de taper dans le pot et de décrocher à nouveau. Ça va se débarrasser de l'ancien. Et ça va, Teoh, installer le nouveau. Plutôt cool, hein ? Et il rafraîchit le projet. Mais je termine toujours parce que, euh, on ne sait jamais quel genre de problèmes tu vas avoir. Et donc il l'a installé. Très bien. Allons-y et ouvrons le blanc ici. D' accord ? Et, euh, on y va. En fait, voyons ce que ça fait si je le construis. Il est en train de construire en ce moment. Et l'air ? Eh bien, je nous donne toujours une erreur, mais notre projet est construit. Donc, c'est un bug de code ex. Si vous courez là-dedans. Ok, bogue bêta du code
X. C' est définitivement là. C' est juste que ce n'est pas ça, c'est être idiot. Donc, euh, si je voulais, genre, essayer de l'utiliser, je suis sûr que ce serait, euh, point de feu
Alamo euh, oui, c'est définitivement travailler. Vous pouvez voir juste là. Que leurs méthodes étaient là, mais ils donnent de l'air. Donc c'est un problème de bêta. On y va. Donc c'est des pots de cacao. OK pour récapituler. espère que je ne vous ai pas confondu en courant à ces problèmes, mais vous risquez de tomber dans ces trucs et vous devez le comprendre. Donc, en gros, vous allez trouver la capsule que vous voulez, genre, juste ici. Vous suivez les instructions d'installation, puis vous allez dans votre fichier pod, ok ? Et vous le modifiez comme si vous mettez dans les pods que vous voulez avec le pod. Mot clé, assurez-vous que vous utilisez les frameworks est là, et c'est la plate-forme que vous ciblez la plate-forme minimale. Et puis dans votre terminal est faire installer pod dans le dossier que vos projets sur. Ensuite, vous pouvez toujours vous assurer de cliquer sur l'espace de travail ici. Et si vous voulez désinstaller pod dans ce fichier pod,
ok, ok, tout ce que vous avez à faire est de supprimer le pod, enregistrer et de lancer le pod installé, et il se débarrasse de lui. Il suffit de réinstaller tout ce qui n'est pas là. C' est des capsules. Tu vas l'utiliser sur de nombreux projets. Donc c'est le marché. J' espère que cela a du sens. se référer à ce projet en cours d'exécution des problèmes, et nous sommes en version bêta, donc vous pouvez exécuter les autres problèmes. C' est bon. Nous avons un salon de chat dans les forums pour toute aide. C' est ça. C' est une pellicule. gousses de cacao. On y
va, en remontant.
80. Json: Hé, tout le monde, qu'est-ce qui se passe aujourd'hui ? Je lis juste un commentaire sur une de mes vidéos et quelqu'un dit, je ne mange pas de crack plus souvent. Déplacer le programme assez de comédien. Les gars, donnez-moi une pause. Vous devriez essayer d'écouter certaines de ces autres vidéos aujourd'hui, nous allons d'abord construire une
application iPhone . On va s'ennuyer d'écouter ma voix toute la journée. Oh, ouais ? Rends-le aussi excitant que possible. Des trucs super cool aujourd'hui. Analyser Jason. C' est le pain et le beurre de tout ce que vous allez faire chaque jour de votre développement
professionnel en tant que programmeur. Et c'est prendre ici ces données que nous venons d'obtenir de notre dernière application. Même à,
au fait, tirez-le ouvert. Si vous n'êtes pas déjà allé au fichier ouvert récent ou, vous savez, vous pouvez cliquer sur votre projet ici. Double-cliquez sur l'icône tout ce que vous devez faire pour ouvrir le projet que nous venons de construire ou suivre et nous allons prendre les données et les rendre utiles. Il ne sert à rien d'utiliser des données si, euh ou de télécharger des données. Si tu ne peux rien faire avec ça. Donc, dans ce cas, on téléchargeait une personne de Star Wars, je crois. Remontons au concert, cette icône du milieu ici ? Euh, ouais. Il y va. Il a juste couru. D' accord. Des simulateurs ici qui ne font rien. Juste couru. Mais remarquez ici. Comment ? On a des données, non ? Ça a l'air bien. Et alors parlons de la façon dont nous pouvons, euh, rendre l'état d'utilité. Maintenant, je ne veux pas regarder ça ici et aller et venir et comprendre à quoi ça ressemble. Ce que je vais faire, c'est ce que je t'ai montré dans une vidéo précédente. Je vais ouvrir Google Chrome, et on va aller à En fait, il a été exécuté la même requête ici. Ok, mettez-le dans le navigateur. Le navigateur va le faire fonctionner. Je vais lancer une demande get. Il ne sait pas comment gérer Jason. Eh bien, celui-ci fait, parce qu'il me redirige vers une page Web était en fait. Laissez-nous le garder ici. C' est sympa et joli. L' autre chose que j'allais dire, c'est prendre ça et d'y aller en ligne. Jason. Joli feu. Mais c'est assez bon pour l'instant. Donc je vais le rendre un peu plus grand pour que vous puissiez le voir ici. Nous avons donc quelques données et ce que nous voulons en magasin. Disons que nous voulons stocker cela comme un personnage dans son application. Donc, la toute première chose que vous devriez faire est de commencer à penser des objets. Comment pouvez-vous prendre des données et les transformer en un objet ? Alors faisons-le d'abord. Avant de faire une analyse, construisons une classe. Alors allez à vos requêtes Web, testez ici, et, euh, créez un nouveau groupe. Si vous ne le faites pas encore, c'est le moment de commencer à le faire. Mettons tout notre modèle dans un dossier appelé Model parce que les modèles vos données et je suis un excellent nouveau fichier. Je clique juste sur un nouveau fichier et je vais aller à la source, pas au cacao touch, mais à une source rapide. Cliquez ensuite, et on va appeler ça une personne, accord. Et si c'était une Star Wars que je pourrais appeler cette personne du SW juste pour dire, , c'est une personne de Star Wars. Préfixe-le là et c'est là. Excusez-moi. Alors faisons un cours comme tu l'as vu avant, cours et on va appeler ce SW. J' aime donner la classe et le même nom que le nom du fichier, OK. Et, euh, il doit avoir un nom, donc un nom de bar privé, et il ou elle sur ça va être de type chaîne. D' accord. Et si vous vous demandez pourquoi je mets privé ici,
nous avons déjà passé cela avant, nous avons déjà passé cela avant, mais un bon programmeur gardera toutes les données privées et ne donnera que des utilisateurs extérieurs, qui sont d'autres programmeurs seulement leur donner l'utilisation de ce qui est absolument nécessaire. Donc ah, mon nom voudrait aussi capturer euh, il y a une hauteur là-bas. Um, faisons ça jusqu'à présent, hauteur. Et on dirait que c'est une ficelle. En passant, lorsque vous voyez Jason dans une chaîne, cela signifie généralement que c'est ou entre guillemets. Je suis désolé. Cela signifie généralement que c'est une chaîne. Maintenant, je ne peux pas garantir que ça va se passer sous forme de ficelle. C' est une de ces choses qui est difficile à savoir. Avant que vous avez réellement téléchargé dans l'application ici. Je viens de l'ouvrir ici, et donc il peut nous le donner comme un entier ou peut nous le donner sous forme de chaîne. Je ne sais pas pour le moment, mais nous le découvrirons au fur et à mesure que nous analysons les données, et nous pouvons changer ce type de données si nécessaire. On a un nom, une taille et une année de naissance. D' accord. Année de naissance. Et faire de ce monde à cordes est en fait un autre toi, Earl, où tu téléchargerais la planète. La planète Information. On ne va pas faire ça
aujourd'hui . Et, euh, les
derniers font juste une de plus fera. Couleur des cheveux. Donc la couleur des cheveux de bar privé. D' accord. Et faites que de type chaîne. D' accord. Et puis nous avions besoin d'une première Isar. C' est ce que je vais faire, c'est que je vais créer une commodité, alors bien, faisons-le juste ça. D' abord. Créons un er d'initialisation régulier et voyons ce qu'il fait. Donc, disons que chaque fois que nous créons une nouvelle personne d'étoiles, nous voulons que ces données soient transmises immédiatement. Donc, ce que nous allons faire est de dire, nom de la chaîne de type, hauteur des slips de type, hauteur de la chaîne de type. Je dirais juste année. Eh bien, on dira l'anniversaire ici. Pourquoi pas ? Même chose. Berthier de type, ficelle et de couleur de cheveux de type string. Ok, donc nous venons de créer un Isar initial et nous voulons initialiser certains champs chaque fois que cela est appelé. Alors on va le faire. On va dire que le nom est égal au nom ? Oups. Au fait, je mets des soulignements sur ceux-ci parce que nous allons créer des getters et des centres ou au moins des getters pour eux en ce moment. Et donc encore une fois, nous les rendons privés pour que les autres ne puissent pas y accéder et détruire notre façon de faire
des données. Vous voulez déterminer plus construire notre classe ? Qui pourrait faire quoi avec nos données, donc le nom est égal au nom. La hauteur est à nouveau égale aux hauteurs. Nous assignons juste les valeurs par défaut ici à ces propriétés globales ici, à celles qui arrivent. En fait, vous auriez pu dire le nom de point auto et la hauteur de point auto. Si tu as envie de t'en servir quand on n'en a pas besoin, tu peux. Certains programmes le font. Ils ont essentiellement utilisé le mot-clé self sur tout ce qui est global. J' ai tendance à ne pas écrire plus de code que je ne dois le faire, donc je ne mets que le mot-clé self quand j'en ai absolument besoin. D' accord. Et l'année de naissance est égale à l'année de naissance, et la couleur des cheveux est égale à la couleur des cheveux. Maintenant, si vous vous demandez, pourquoi tapons-nous les mêmes choses encore et encore, cela suppose que nous l'avons fait. C' est ce que tu dois faire. C' est ça programmer Ghetto. Prenez les mesures nécessaires pour garder vos données sécurisées, privées. Alors passons-le dans initialize. Vous allez répéter beaucoup de dactylographie, mais ça ne viole pas le principe du sec. Ne te répète pas. C' est de bonnes choses. Donc, tout ce que nous avons fait jusqu'à présent est créé un Isar initial et créé des variables privées. Allons de l'avant et créons les publics. Excusez-moi pour que les gens puissent accéder aux données. Alors comment on fait ça ? Eh bien, même chose. Donnez-lui un nom différent, mais similaire. Donc sans le trait de soulignement de la souche de type et nous allons juste retourner le nom. D' accord. Nom du trait de soulignement. On y va. Tout fait, est-ce que ça revient ? Ok, hum, hauteur
var. Et rappelez-vous, nous aurions également pu faire et ledit hauteur de retour si vous avez oublié. D' accord. Et bien sûr, c'est faux. Pas la hauteur de soulignement. Je dois lui donner un nom différent et de notre année de naissance de chaîne de type. Et nous reviendrons souligner l'année de naissance et la couleur des cheveux de la barre de type chaîne. Et ça va rendre la couleur des cheveux. Maintenant, c'est une bonne pratique de programmation. Si vous faites cela dans votre base de code et les choses que vous mettez, levez-vous. Et quand vous postulez pour des emplois, vos employeurs font Wow, ce type, ce type ou cette fille, ils savent que les données se cachent. Ils savent comment faire ça. C' est vraiment cool. C' est le genre de choses que seuls, comme les programmeurs seniors savent. Tu n'es pas contente de suivre mon cours ? Je te dis ces choses et tu apprends des choses cool, et ce n'est pas ennuyeux. Espérons que c'est ennuyeux. Dites-moi comment ne pas être si ennuyeux parce que je ne voulais pas être plus de couleur de cheveux, année de
naissance. Donc, en ce moment, saviez-vous que personne ne peut modifier ces données à part votre initialisation ? Parce que vous n'avez pas donné accès à cela. Donc, je ne serai pas en mesure de changer tout cela à moins que lorsque je crée un nouvel objet. C' est vraiment cool. , Ok, donc il y a notre classe. Classe simple. Pas grand-chose. Ok, personne, pas grand chose. Et allons au contrôleur de vue ici où nous avons des données et parlons de l'analyser . D' accord ? Je vais fermer le côté gauche pour le rendre un peu plus spacieux, et nous savons que nous imprimons le Jason. On sait que ça marche, rappelez-vous, c'est juste. C' est juste ici. C' est très bien. Alors allons de l'avant et créons un peu d'espace. Si nous sommes arrivés ici, nous savons que tout fonctionne. Ok, donc Jason vient dans une augmentation et des dictionnaires, vraiment, c'est ce que tu vas utiliser. Et si on le regarde ici,
c' est juste un gros dictionnaire géant. Donc ce que je dis, c'est ces accolades ouvertes ici ? Ok, pensez-y. C' est un dictionnaire géant, et il a des clés et des valeurs. La clé est de type string, donc ce sont toutes des chaînes toutes les clés ici. Cordes avis. Ce ne sont pas des chiffres. Ce n'est pas cinq ou six. Chaque clé est une chaîne, et les valeurs le seront. Ils semblent être toutes des cordes. Je ne suis pas encore tout à fait sûr, comme je le sais sur leur site Web l'a entre guillemets, et il dit que c'est une chaîne, mais je ne suis pas sûr que ce soit vraiment. Tu ne peux jamais vraiment faire confiance tant que tu ne l'auras pas vraiment, OK ? Et en passant, votre code,
vous, vous, le client Iran peut avoir sa propre façon d'analyser les données, et c'est Jason qu'il peut le convertir en un nombre que vous ne connaissez pas, alors ne lui faites pas confiance à 100% mais nous sommes assez proches ici. Donc nous savons que nous avons un dictionnaire parce qu'il a les accolades et nous savons qu'il y a des clés et des valeurs. Donc ce que je dois faire, c'est prendre ce Jason et d'abord convertir Teoh un dictionnaire, quelque chose qui est utilisable et, euh en fait,
allons d'abord voir ce que ça me rend vraiment. Il retourne n'importe quel objet, donc c'est juste me donner dans n'importe quel objet. Vous pouvez le voir ici dans n'importe quel objet, ce qui signifie que ce n'est pas cela ne signifie rien pour nous. convertit. Disons que si nous l'appelons « D I c t « et dirons « égal « Jason « , pas Jason. Jason comme point d'interrogation. Et nous allons dire un dictionnaire de type chaîne pour la clé. Et on ne sait pas s'ils vont être des nombres
ou des cordes. Vous n'avez pas besoin de vous. Vous voulez garantir que la plupart du temps vous allez mettre n'importe quel objet. Ok, donc tu vas mettre n'importe quel objet comme type de valeur ? Ça pourrait être une chaîne. Peut-être un entier pourrait être une intimidation. Juste à moins que vous sachiez absolument que chaque valeur va être un stringer d'un certain type, toujours mettre n'importe quel objet là. Donc ce qu'on dit c'est, hé, prends ça, Jason. Et si je m'en souviens, les ouvriers, c'est ça, ok ? Il le convertit et les marchés des questions. Et ici, on ne sait pas si ça va marcher ou pas. Nous ne pouvons pas le garantir parce que pour le moment, les Jasons n'importe quel objet nous ne savons pas quel type de données est. Maintenant nous le faisons parce que nous regardons le Jason ici, mais nous ne savons pas avec certitude. Donc, utilisez la question, marquez parce que cela peut ou ne pas fonctionner. Et au fait, c'est comme
ça que tu fais la façon dont je te montre en ce moment. Avoir Jason ouvert ici et regarder tes données ici, c'est comme ça que tu vas le faire. Profession. Tu vas aller et venir et aller et retours,
et c'est comme ça que tu vas programmer. Tout ce que je fais ici est la vraie affaire. Alors mets-le dans ton cerveau, d'accord ? Et puis on est donc en train de le lancer comme un dictionnaire. Une dépendance. Nous devons avoir un genre, non. Il doit avoir un type de clé dans un type de valeur. Eh bien, nous connaissons le nom des clés ou des cordes, hauteur ,
la masse, ces cordes. Et n'importe quel objet pourrait être un entier. Ça pourrait être un nom. Euh, donc on ne sait pas. Et si nous arrivons ici, nous savons que la conversion a fonctionné. Donc si nous avons ici le travail de conversion ,
alors essayons
juste. Était-ce la première étape ? Je vais dire imprimer et on va dire,
euh, est-ce qu'on est arrivés et ensuite on y va. Et aussi, nous allons mettre dans le dictionnaire ici en utilisant la chaîne littérale est indexeur et dire addict. D' accord. Et nous disons que la description de débogage ,
c'est ah, c'est une propriété du dictionnaire et il va juste pouvoir une description de débogage est juste quand vous voulez imprimer quelque chose à l'écran, cela le rend un peu plus
Jolie. Et je vais ouvrir mon conseil ici. Ok, allons-y et pouvions ça. Je vais appuyer sur le bouton d'arrêt pour le relancer. Ok, le
voilà. Voyons voir à quoi on a l'air. Il est en train de charger. La demande est sur le point de commencer. Je suis sûr qu'il y a la demande et ah, on est arrivés ici ? Hé, on y est arrivés. Il a converti notre Jason en dictionnaire. Et c'est là. Ecoute, ça n'a pas l'air trop mal. Hum, alors remarquez comment il a mis des crochets ici comme un tableau. Je ne sais pas pourquoi il fait ça à nouveau. Ne fais pas confiance à ce que tu vois dans le conseil ici. D' accord ? Confiance. Faites confiance à tout ce que vous devez faire. Est-ce que ce test est à chaque étape du chemin ? Assurez-vous que vous obtenez ce dont vous avez besoin, parce que maintenant il y a, genre, choses
bizarres, comme des parenthèses et des trucs, genre, ne faites pas trop attention à ça. Ok, hum, mais ça a l'air bien. Et, vous savez, c'est une sorte de dire que déteste un tableau. Hum, donc on a des données. C' est génial. On sait que ça marche. Nous savons que nous avons analysé avec succès le dictionnaire externe. Je suis en train de supprimer ce clic ici. Ok, alors qu'est-ce qu'on veut dio ? On a ces données. Voyons si on peut l'utiliser. Donc, euh, allons de l'avant et disons juste, hum, faisons-le comme un tout tombé est passé genre de chose où nous devons juste obtenir
ces propriétés que nous recherchons. Donc ce que je vais faire, c'est dire si on dit que le nom est égal à Dit et qu'on va en tirer
le nom. Alors remarquez comment cette clé ici est exactement la même. Keir, c'est très important. Votre clé doit être exactement la même que celle du Jason. Ou tu vas avoir des problèmes. On va dire qu'on va essayer d'extraire cette valeur du dictionnaire. Et donc si le nom est coupé Ok, euh, Ardèche nom comme et on ne sait pas quel type de. Rappelez-vous, il s'
agit de tous les objets que nous devons utiliser comme mot-clé. Si cette chaîne, je n'aurais pas à le faire. Je n'aurais pas à faire les annonces. Ok, euh, parce qu'il saura que c'est une souche, mais ça ne sait pas du genre évident. Donc, si le nom est égal à Dit comme chaîne, c'est le 1er 1 que nous voulons. Et on va dire, quelles
étaient les autres qu'on a déjà oublié les autres qu'on voulait. Donc on voulait la hauteur du nom, Berthier, la couleur des
cheveux. Ok, faisons de la hauteur. Si près que la hauteur de laisser est égale à la hauteur de l'addict. Et, euh, vous étiez comme, j'attendais juste qu'il dise mal que je puisse rire de lui. Mais je ne le ferai pas. Et, euh, ça va être une corde droite ? Je ne sais pas. On dirait une ficelle. On verra ce qui se passe. Et
bien, bien, Dio le suivant était l'année de naissance, non ? Disons que la naissance est égale à Dit, et ça s'appelle Ah, soulignement de
naissance ici. Je regarde juste le Jason tapant exactement comme il est. Ok, tu sais, et c'est comme ah string aussi. Donc on a 1231 de plus et on va dire que j'ai oublié d'avoir quelle était la
couleur des cheveux fumés sacrés , non ? C' était la couleur des cheveux de la vache. Il suffit de le descendre. Couleur des cheveux. Oh, ouais, Woo ! D' accord. Et puis on appellera ce cheveu égalé, et on appellera cette couleur de soulignement de cheveux comme de la ficelle. Donc ce qu'on dit, c'est que tout ça doit fonctionner, ou s'ils ne le font pas, alors on va, euh, ça ne va pas entrer dans ce bloc de code juste ici. OK, donc je pense que oui c'est nous dire que nous ne l'utilisons pas. C' est bon pour l'instant. Tellement cool. On est là, alors allons-y. Et, euh, il a été facturé pour s'en assurer. OK, donc ça marche. Et ce qu'on va faire, c'est prendre notre objet Star Wars, non ? Quelqu' un sauve notre, hum, personne égale Sw personne. Et regardez qui sont initialiser. Euh veut des choses. Il veut les noms que nous passons dans le nom qu'il veut les hauteurs que nous passons dans la hauteur. Il veut l'année. Donc nous passons à
la la naissance. C' est comme ça que je l'ai appelé ici. Et la couleur des cheveux. Je viens d'appeler les cheveux. Et si ça a marché, on est arrivés là, et c'est là. Et faisons-en un laissez-passer parce qu'il nous crie dessus. Et maintenant, si ça a fonctionné, affaiblir, dire, euh, imprimer. Rappelez-vous comment, au fait, nous n'avons pas donné accès à ces champs dans la personne. Si je dis personne point, merci. C' est penser ici, personne point euh, cheveux. Comment ça s'appelle ici ? Comment on appelle, hum, nom ? C' est une personne. Ce nom. Ok, voyez, maisons construites ont réussi parce qu'il peut vraiment saisir le nom. Mais regarde si je fais ça. Si j'essaie d'appeler ça Darth Vader parce qu'on a fait un privé, on ne peut pas modifier. C' est vraiment cool. Donc nous ne pouvons pas envoyer de propriété pour obtenir seulement la propriété, donc nous faisons de bonnes choses ici. Allons-y et imprimons ça pour s'assurer qu'ils fonctionnent. Donc, allons dans l'impression personne point Nom. D' accord. Imprimer personne point hauteur, impression, personne point cheveux. Allons juste des commandes. Je tiens maintenant, commande, et je clique. Je ne peux pas lire le nom exact. Son nom. Taille, année
de naissance. Vous devriez probablement avoir en majuscules leur année de naissance et scène de couleur de cheveux, année de
naissance, couleur de
cheveux. Donc c'est une couleur de cheveux et impression personne point Pour une raison quelconque, mon auto complète pas apparaître juste être bizarre. Hum, je suis devenu trop dépendant de ça. Ok, Donc si tout a fonctionné, nous devrions voir ces impressions sur cet écran individuellement. D' accord. Et assurons que j'ai enlevé toutes les empreintes d'ici. On y va. Alors oui. Donc d'accord. Donc, gros, et j'ai juste commandé f de faire une recherche rapide. Fondamentalement, nous savons que tout a fonctionné. Nous, si nous arrivons ici. Donc ce que ça veut dire, excusez-moi. Nous savons déjà que le dictionnaire fonctionne quiz. Nous avons testé cela, Mais ce que nous disons, c'est que nous savons que nous avons réussi à saisir ces valeurs du dictionnaire avec succès, et si convertis avec succès à leurs différents types. Et puis nous avons créé avec succès un objet et passé avec succès les données et imprimé
avec succès. Donc, si on arrive à l'impression, on sait que tout a fonctionné. Et c'est ainsi que je code personnellement comme ça. Juste tester les choses, s' assurer que ça marche. Moment de vérité. Allons-y et courons-le. Voir ce qui imprime à l'écran. Luke Skywalker, 1 72 blonde. Et c'est la Guerre des étoiles. Année de naissance. Et ça a fonctionné. Et aussi, nous savons aussi maintenant, aussi, que cela n'est pas sorti comme un entier. Il nous l'a donné en tant que ficelle. Certains yeux AP vous donneront des nombres réels. Certains ne le feront pas. On ne sait jamais. Et vous ne pouvez jamais vraiment faire confiance à ce qui est l'impression que vous avez, en fait le voir et le tester. Et donc, par
exemple, si c'était un nombre une fois la hauteur de 1 72 Ok,
ça aurait abattu, et nous n'aurions jamais vu ça. Et cela aurait été une indication pour moi. Oh, tu sais quoi ? Ça n'a pas marché. En fait, vous voulez le voir fonctionner. Changeons la hauteur ici. Faisons semblant que nous pensions que c'était un nombre, donc je le change d'une chaîne à une fin. Ok, faisons semblant que c'est un nombre et pas une chaîne, OK ? Oh, et, euh,
est-ce que les gens nous crient dessus parce qu'il veut une ficelle ? Alors convertissons cette hauteur ici. Ce que nous allons faire est que nous allons réellement le convertir en une chaîne et le mettre entre guillemets là. Est-ce que ça a du sens ? Je convertis ceci à une fin, mais parce que notre personnage existe en attendant une chaîne, je suis juste en train de le changer. Je le convertis en une chaîne, mais nous voulons vraiment tester ce qui se passe si je supposais que ce n'était pas un entier, mais ce n'était vraiment pas une chaîne que nous savons que c'est. Voyons ce qui se passe. Ok, remarquez comment rien ne se passe. Rien d'imprimé. C' est parce que ça a abattu ici. Droit ? Tu vois ce qui se passe ici ? Si vous voulez vous voir faire plus loin juste pour tester,
ok,
c'est important de ok, savoir,
affaiblir, disons, euh,
disons euh, juste que la hauteur soit égale à ça. D' accord ? Et puis cela dit comme un entier. Ok, donc il est en train de le convertir en entier. Et puis voyons si j'imprime la hauteur. Voyons ce qui se passe. Mm. Qu' en pensez-vous ? Qu' en pensez-vous ? Un clou ? C' est vide. Qui ? Alors imaginez si j'essayais de bien faire. Voici quelque chose de réel intéressant. Imaginez si j'essayais de le faire avec un point d'exclamation. Je le force. Je le force à être un entier. Voyons ce qui se passe. Un accident, OK ? Des choses très importantes ici. D'
abord, abord, tu le sais déjà et ceux d'entre vous qui ne le savaient pas, parce que je suis venu chez
toi et je t'ai battu parce que tu ne fais jamais ça. Tu ne déballeras jamais les choses avec force. Sauf si vous n'êtes absolument pas, ça va marcher. Ce qu'on a fait,
c'est qu'on a dit , Hey, ça va être un entier et on va le forcer là. C' est donc notre premier problème. On l'a forcé. Et bien sûr, ce n'était pas le cas. Et notre application vient de s'écraser. Ok, alors et le deuxième problème était quand c'était un point d'interrogation. Il nous a donné une valeur Neil parce que ce n'est pas un entier à chaîne. Problème si commun. Vous pourriez expérimenter cela vous-même pendant que vous passez par vos programmes ici, alors ne faites pas ça. Ok, euh, vérifiez vos valeurs, assurez-vous qu'elles vont bien. Si vous avez des accidents,
c'est parce que vous déballez quelque chose. Ça ne devrait pas être si rien n'est imprimé ici comme il aurait dû, j'aurais pu faire un point de rupture
aussi, aussi, au fait. Mais si rien n'est imprimé ici, c'est parce que quelque chose ne va pas. Et donc c'est facile à savoir. Hey, mon type de valeur est-il incorrect ? Et bien sûr, dans ce cas, c'est donc une façon de déboguer. Et nous allons de l'avant et nous retournons à une chaîne. Et allons de l'avant et remettons la hauteur ici parce que maintenant c'est une corde à nouveau et nous sommes prêts à y aller. C' est comme ça que tu analyses Jason. Pas trop mal. Sachez juste que c'est plein de dictionnaires, de clés
et de valeurs. Et, euh, peut-être que vous vous demandez, Et le tableau là-bas ? Eh bien, comment allez-vous gérer ça ? Eh bien, ce n'est pas trop mal non plus. Donc nous sommes ici dans le dictionnaire. Il a traversé. Et donc si je vais voir les films là-bas à gauche, nous savons que c'est un tableau parce que c'est bizarre. Un support carré, donc sous la pluie, a un ensemble de cordes. Dans ce cas, ce n'est même pas un tableau d'objets est juste un tableau de chaînes qui n'est pas trop mauvais. Celui-ci devrait être plus facile. Donc ce que nous faisons est, disons-nous, bien, plus facile que s'il y avait des objets dedans. Donc, nous dirons si les films sont égaux films déchirés. Ok, comme et ça va être un tableau de type quelle force de type. Alors prenez le film hors de lui et convertissez-le en un tableau de type string. C' est comme ça que tu fais sous la pluie. Et si vous voulez voir si ça a fonctionné, nous pouvons juste le faire pour chaque film en films, imprimés, . Donc, si cela a fonctionné, nous devrions voir 12341235 votre autre impression à l'écran. Et en passant, sont votre monde parce qu'il vous amène à un autre A p I et point, je reçois ma copie, cette adresse de lien de copie, et je la colle ici. Ok, c'est juste un autre point de terminaison où nous allons a plus de données, et c'est très commun. AP que j'ai conçu. Il vous donne un U R l deux autres données afin que vous puissiez l'attraper au lieu de simplement l'incorporer dans le même fichier. Donc, si cela fonctionne, nous devrions voir chaque film imprimer dans le cri après cette information de base. Kammen. Voilà, tu y vas. Et ça a marché. Vous pouvez voir ici. D' accord. Dans cette autre ordure, je ne sais pas ce qui se passe avec c'est que c'est actuellement exclure l'appât, et j'ai eu beaucoup de problèmes avec elle. Donc, j'espère que vous êtes l'un des rares qui font maintenant cela Lorsque l'application lorsque l'expert a été libéré sur le magasin APP. Sinon, tu vas supporter avec moi et résoudre des problèmes toi-même. Et en passant, si vous avez des problèmes, le code suivant va à la salle de chat, va sur les forums, il va obtenir de l'aide. Donc ça a fonctionné. Voilà notre rayon. Y a-t-il d'autres types de données qui sont sur ici alors que vraiment, c'est bon. Hum donc on a pris un tableau qui ici et puis on a juste pris les éléments hors de lui. Pas grand-chose. Donc là, vous l'avez. Simple, Jason analyse. Assurez-vous de les faire si nous allons bien dire, Hey, si vous retirez ça quand il se convertit bien, passons à la suivante, la suivante. Et si tout ça marche maintenant, on peut les utiliser. Si nous sommes toujours dans votre Jason toujours, toujours, toujours Si laissez ne pas forcer ou vous avez beaucoup de problèmes. C' est comme ça que tu le fais. C' est la meilleure pratique pour analyser Jason. Ok, désolé d'avoir trop parlé. C' est de bonnes choses. Et voir une prochaine fois ici sur les pentes sourdes dot com.
81. Introduction à l'application : Pokedex Pokedex: Hé, tout le monde, Mark Price ici en profondeur pentes dot com et aujourd'hui vous allez construire votre propre indice de
poke. Et ce n'est pas un indice ordinaire de poke. Ceci est un frickin cool polka decks avec beaucoup de graphismes cool sur 718 Pokemon que vous allez travailler avec. Et vous pouvez faire défiler la liste pour trouver toutes les belles images Pokemon, superbes graphismes. Vous pouvez également rechercher un filtre. Donc, comme vous tapez modèle pokey, soyez filtre afin que vous puissiez trouver ceux que vous cherchez. Et puis nous avons également mis en place une fonctionnalité où vous appuyez sur un Pokemon et vous allez regarder les détails de ce Pokemon comme la prochaine évolution, le poids et la taille, et ont été très bien fait. C' est certainement un projet de portefeuille pour vous. Les choses que tu vas faire ici ou ce que tu vas faire probablement 90 % du temps dans un vrai boulot. Maîtrisez donc ces principes et vous serez si près d'avoir un emploi ou d'être en mesure de manger applications
professionnelles et de les libérer sur l'APP Store. Il s'agit certainement d'un projet de portefeuille. Jetez-le sur votre émission, vos amis et votre famille, et vous pouvez l'emmener aussi loin que vous voulez. Faites en sorte que l'ensemble du Codex soit aussi impliqué que vous le souhaitez. Je suis tellement excité de construire ça. Allons-y et commençons.
82. App: Pokedex Partie 1 : Setup de projet, images, Data, Github: tout le monde Mark Price Entendre avec des pentes sourdes dot com Et aujourd'hui est le jour le plus excitant de tous . Nous allons construire nos propres decks pokey app Pokemon. Et au fait, j'ai oublié de vous dire que vous ne pouvez pas construire ce numéro à moins que vous ne portiez un genre de chemise Pokemon pour chapeau pour que vous n'en ayez pas. Allez-y et arrêtez la vidéo. Allez à votre sujet chaud le plus proche ou amazon dot com et vous-même une année de poker parce que vous
devez être dans la zone pour construire quelque chose d'aussi cool. C' est ça ou pas ? Vous n'avez pas besoin de l'avoir, mais fortement recommandé des choses tellement excitantes. On va juste plonger dedans. Ça va être une application plus longue, Angleterre, et créer un nouveau projet. Il charge et crée un nouveau projet Exco et une application de vue unique va bien. Efface tout ce que vous voulez dire poky decks par Deb Slopes et cliquez sur Ah, suivant semble bien et nous allons juste mettre celui-ci sur notre bureau et nous voulons créer un
dépôt git parce que nous allons aller de l'avant et mettre ceci sous get parce que si vous cherchez un travail, vous allez vouloir poster ceci et montrer votre code parce que ce sera un projet très bien fait. En fait, projet
haut de gamme comme si tu réussissais à faire ça, les gens seront comme, Wow, tu as fait ça. C' est à quel point ce projet va être génial. En fait, il m'a fallu environ 24 heures pour construire et perfectionner la première fois que je l'ai traversé
si bien, que bien, quece soit plus rapidement. Mais je voulais que ce soit parfait pour nous. Alors eso, tu pourrais avoir quelque chose de génial. Alors allez-y et assurez-vous que sélectionné créer votre référentiel. Et la première chose que nous allons faire est de mettre ça sur notre get have comptes pour aller de l'avant sur votre navigateur local, peu importe ce qui peut être, et aller chercher hub dot com et se connecter. Si vous n'êtes pas déjà signé, puis allez de l'avant et cliquez sur. Créer un nouveau référentiel. esprit dit que les années d'imposition passées vont dire votre nom d'utilisateur et appeler ce que vous voulez. Nous appellerons nos decks poky, pokey decks pour en avoir déjà un sur là-bas et,
euh, euh, vous appelez les vôtres ce que vous voulez esprits ce Gumby pokey decks au public et tout ça a l'air bien ici, créer un dépôt . Et puis ce qu'on va dio, c'est aller à ton terminal. Alors commande de l'espace, ouvre ton détecteur et va au terminal et, euh, l'esprit sur mon bureau. Donc, je vais voir le dans le bureau et le CD dans les pokey decks par les pentes de la mort. Il est déjà obtenir le dépôt parce que c'est ce que nous avons dit dans le code X. Donc ce que vous voulez faire est de taper Descendre, obtenir ajouter Dash A. Eh bien, vous pouvez d'abord vérifier et voir ce qui se passe ici. Alors obtiens le statut. Le rouge signifie qu'il y a quelque chose que nous devons ajouter, c'
est-à-dire nos fichiers de projet. Alors allez-y et obtenez ajouter un tiret get commit Dash EMS, et puis les citations Nous allons dire, euh, premier commit de projet. Et ce qu'on va dio, c'est que le tien sera différent. Mais je vais copier celui qui dit être distant à l'origine à nouveau. Le tien sera différent, donc je ne vais pas faire ça. Je vais copier ça et retourner à mon terminal, et je vais juste le rythme là-dedans. Nous ajoutons notre référentiel distant. Il est ajouté, et tout ce que vous avez à faire maintenant, c'est d'être poussé. Maître d'origine. Ok, un dépôt en place. Et si je rafraîchis ceci, obtenir de l'aide Page, vous verrez maintenant mon projet ici. Alors allez-y et faites ça. Faites démarrer votre projet. Et comme nous allons avec Mitt fera des commits et des choses comme ça cool. Donc on va juste mettre notre projet en place ici. , En gros, vous avez vu à quoi ressemble l'application. Et maintenant nous avons juste besoin d'obtenir certains des fichiers dont nous allons avoir besoin une partie de l'AP
va être construite en analysant. Ah, vois, les fichiers
SV et une partie de ça va se connecter à un point public I sur Internet. Donc tu vas apprendre beaucoup de choses aujourd'hui, et, euh, alors vas-y et va à pokey ap i dot ok. Et ici dans la page, ce meilleur lien vers leur hub get. OK, alors allez-y et cliquez sur ce lien en bas ici. Et c'est le projet que nous voulons. Ils l'ont rendu public, il y a toutes les images, les fichiers et les choses dont on va avoir besoin. Et donc pour la première partie, juste pour que vous sachiez, j'ai construit cette application entière au début. Vous parlez à 100% via Internet ? Non, pas d'analyse des fichiers CSC. Pas d'images localement. Mais ce qui se passait, c'était que le téléchargement des images prenait trop de temps. Vous savez, il y a 700 21 Pokemon maintenant vont absolument faire 718 au fait. Désolé pour les trois derniers. Et de toute façon, ça a été trop long. Alors je pensais, Comment puis-je créer une meilleure expérience utilisateur ? Et la solution était d'apporter ces fichiers localement et de ne pas les télécharger à partir
d' Internet. Voici donc le code source. Ok, alors allez-y et téléchargez le zip. D' accord ? Le mien va dans mon dossier de téléchargements. Je vais le mettre sur le bureau montrant le Finder, et je vais juste le faire glisser sur le bureau ici, ok ? Et double-cliquez dessus pour l'ouvrir. Supprimez le fichier zip. Je n'en ai plus besoin, et je vais fermer mon navigateur. Ok, donc il y a quelques choses que nous allons avoir besoin de ce projet pour commencer. Alors allez-y et cliquez sur votre dossier d'actifs. La première chose qu'on va faire, c'est Dragon. Toutes les images qu'on va avoir besoin. Donc, j'ouvre ce dossier Pokemon allant dans aucune donnée d'actifs, et les voici, poking veulent X y sprites. Et comme vous pouvez le voir, il y a tout un tas Il y en a 718 et la raison pour laquelle nous ne supportons que 7 18 en ce moment parce que c'est ce que ce code prend en charge. Vous pouvez toujours ajouter plus tard. Si vous êtes un fan de Pokemon dur, vous pouvez faire ce que vous voulez avec cette application et le rendre aussi grand que vous voulez. Donc je vais juste commander un pour mettre en évidence tout ça et littéralement juste glisser tous les 718 et le déposer ici. Et il pense, et je vais aussi fournir ces images dans le cadre de la ressource est dans le cas où ce compte
get hub tombe jamais, vous pourriez les attraper du projet. La ressource est OK, donc nous avons ses images, elles ont l'air super, et ce sont les sprites des jeux réels. Je ne possède aucun de ces airs disponibles publiquement, donc tous les droits et droits d'auteur existants sont debout, et donc notre image est la prochaine chose dont nous aurons besoin est, euh nous avons besoin d'une liste de tous les Pokemon. Donc fait aussi partie de ça un p I que nous allons puiser dans Ils n'ont pas vraiment eu . Eh bien, ce qui se passait, c'était la p. Je ne m'envoyais pas le Pokemon dans une liste ordonnée, et donc ils étaient tous hors de l'ordre et ils ne correspondaient pas aux images. Et c'était une grosse douleur, en fait. Alors allez-y et allez dans la version 1. Et il y en a un qui s'appelle Pokemon CSP. C' est celui qu'on veut. Et ce qu'on va faire, c'est ça. Faites glisser cela dans notre projet aussi. Juste là. Copier les éléments. Oui. Ok, donc nous avons copié le fichier Pokemon dot C S V. C' est juste là. D' accord. Et, euh, nous sommes des images. Et le plaidoyer, ils sont là. Alors voici notre Pokemon. Um, juste un tas de données tout le chemin ici, et on va en faire d'abord. Donc, au fait, j'ai sélectionné le fichier ici, Pokemon ce CSP, et nous allons nous débarrasser de certains de ces spéciaux ici. Ils en ont un tas de spéciaux et on va s'en débarrasser pour l'instant. Vous pouvez les prendre en charge dans votre propre application. Mais, euh, nous ne soutiendrons aucune des Maiga. Nous ne soutiendrons pas certaines de ces autres choses. Miao bâton, Dash femelle tous ces cas très rares, on va se débarrasser d'eux. Également après 7 18 Fait mettre en évidence cela tout le chemin en bas ici. Supprimons ces K et enregistrez-le. On n'ira qu'à 7 18 et la raison pour laquelle je ne les soutiens pas, c' est que j'essaie de vous montrer quelques principes. Et c'est que je n'ai pas les atouts pour tout ça. Donc on a juste les données ici, donc d'accord,
ça a l'air bien. Et c'est l'idée. Le numéro du Pokemon et l'identifiant est le nom. C' est tout ce qu'on se soucie vraiment en ce moment. Donc, nous devons voir le fichier SV. On a mis le projet en place. On a les images. On a tout mis en place sur Get hub et,
euh, euh, commence à être vraiment bon, j'ai déjà des images sympas. Le travail était d'aller de l'avant et d'ouvrir votre terminal et de taper ah, git statut et vous pouvez voir il y a Aton d'images. Alors allez-y et obtenez à Dash Capital A en ajoutant tous les fichiers, puis obtient le statut
à nouveau pour vous assurer qu'ils sont tous verts, ce qu'ils sont, puis obtenir commit Dash M images ajoutées et voir le fichier SV, puis obtenir push origine Master 70 85. On y va. Allez, bébé. Voilà, tu y vas. Donc, nous sommes tous prêts à aller pour notre application. Regardons juste,
amenons le hub ici et assurez-vous que tout est là qui doit être là. Alors allons dans mes dépôts. Allez. Où est pokey decks ? Et, euh, allons juste nous assurer qu'on a tout ce qu'il nous faut ici. actifs ? Oui, ils sont là. Ils sont tous là. Oui. Ok, donc c'est génial. Donc c'est tout pour l'instant. C' est la première partie de la vidéo qui vient de mettre en place le projet. Et, euh, passons à la suivante
83. App: Pokedex Partie 2 - Créer un cours Pokémontre: Hé, tout le monde, Mark Price. Ici, Deb pentes dot com Dans le dernier épisode passionnant de Build Your Own Poke Index façon amené en images, nous l'avons mis en place, levez-vous et nous nous sommes prêts à partir. Nous allons plonger directement dans, ouvrir votre projet et ouvrir le fichier récemment ou partout où vous avez stocké le fichier. Vous pouvez cliquer dessus et allons de l'avant et simplement passer à faire fonctionner les choses. Donc, le moyen de faire est de montrer une liste de Pokemon sur l'écran. Rappelez-vous, sur l'écran principal, tout
un tas de Pokemon, nous voulons montrer leurs images et nous voulons montrer leurs noms. Il y a donc quelques choses que nous devons faire en premier, c'
est-à-dire que nous avons besoin d'un type de données. Parfois, j'aime commencer avec le U I. Parce que c'est amusant. Mais probablement dans la plupart des cas, je finis par construire les données. D' abord le modèle et nous avons besoin d'un modèle lorsque vous avez besoin d'un objet Pokemon qui stockera aussi un nom
Pokemon, n'
est-ce pas ? Ah, ils sont Poquito Pokey Index, le numéro qu'ils ont été assignés. Je vais cliquer sur ce dossier ici. D' accord. Et rendons le code un peu plus grand. Je vais cliquer sur
ce dossier . Cliquez dessus et allez à New from New Group, en fait, et faisons un groupe pour notre modèle appellera modèle. Et à l'intérieur, je vais cliquer sur ce nouveau fichier et le fichier swift sous la source ici. Et on va appeler ce mois pokey. Tout ce que nous allons faire dans cette application est ce que je ferais dans la vraie vie si je
développais une application. Ok, j'ai construit 57 APS mobiles. Ce que vous allez voir, c'est mes meilleures compétences en pratique. Donc tu peux savoir ce que je ferais, ce qui est vraiment cool. Je ne
suis pas juste un gars au hasard qui enseignait des choses aléatoires. Je vais t'apprendre ce que je fais vraiment dans la vraie vie. Alors la classe Pokemon, et, euh, on
y va. Et donc nous avons besoin d'un nom, non ? Si privé de notre nom de chaîne de type. Ok, nous lui donnons l'exclamation parce qu'à un moment donné, il aura un nom qui garantira qu'il peut avoir un Pokemon sans nom. Donc il n'y a aucun intérêt à,
euh et,
euh,
mettre un point euh et, euh, d'interrogation là parce qu'on sait qu'on va l'avoir. Et puis on appellera ça poky decks I D et c'est non, ça va être un int parce que c'est un numéro et ça a l'air bien. Et allons de l'avant et créons déjà nos getters. Donc, vous devriez prendre l'habitude de faire ça juste des variables folles et ensuite créer vos getters et eso Nous allons sauver notre nom de chaîne de type. Allons dire retour. Nom de soulignement Anvar Pokey decks I d de type int et nous allons retourner Poke il excitant. Ok, donc on a ces champs et ça a l'air bien. De quoi d'autre avons-nous besoin ? Um, un premier Isar pour qu'on puisse transmettre ces données et ainsi de suite. Et nous allons dire le nom de la chaîne de type. Chaque fois que vous créez un nouvel objet Pokemon, il doit avoir un nom et doit avoir un decks à pois I d. Donc c'est pourquoi Pok Decks I d. C'est pourquoi il est correct de mettre ces points d'exclamation. Souviens-toi, ça pourrait être dangereux, non ? Si encore mettre ces ici parce que alors le programme ne va pas vous crier dessus pour
y accéder . Mais votre programme pourrait planter pour Onley jamais, jamais, jamais,
jamais, utiliser ça. Et vous avez entendu cela avant tant de fois, Il ne jamais utiliser ces. Si tu n'es absolument pas, il y aura de la valeur là-dedans. Eh bien, nous le forçons ici. Nous disons que vous ne pouvez même pas créer un objet Pokemon à moins de passer un nom dans un
decks à pois . Je d. Donc alors tout ce que nous avons à faire est de dire point auto Underscore Nom est égal nom et point auto Underscore decks pokey. Je suis égal à pokey decks. Je suis mort et, hum, c'est assez simple. On a notre classe. Ça a l'air bien. Et, euh, il y a notre modèle pour commencer. Et rappelez-vous, si nous voulions utiliser ça, nous allons nous débarrasser de ça ici si nous voulions faire ça correctement, euh, nous gardons juste notre Pokemon égal à Pokemon, et ensuite vous donnez le nom que vous savez, Charles et pokey decks. Je vais être Qu'est-ce que c'est ? Quel numéro est-il, genre, six ? Peut-être que je ne peux pas en être sûr. , Bien
sûr, on ne va pas le faire comme ça. On va le faire dynamiquement à partir des données qu'on va partager ici,
mais oui, mais oui, donc il y a notre cours en ce moment, c'est tout
ce dont on a vraiment besoin. Je vais casser cette vidéo très étroitement ici. Donc on va mettre fin à cette vidéo ici. C' est construire votre propre classe Pokemon et passons à la vidéo suivante.
84. App: Pokedex Partie 3 - UICollectionView, Storyboard Mise: tout le monde partie suivante dans la série Mark Price ici avec la mort pentes dot com Et nous voici . La dernière fois, on a construit un cours pour notre Pokemon ici. Et tu sais ce qui est vraiment cool ? Tu sais pourquoi j'ai choisi ce projet ? Mis à part le fait que l'a mis sur son vraiment cool j'aime les bogeymen. Je n'ai pas peur de la minute. Ok, euh, le gros,
cependant,c' cependant, est que tu fais tellement de choses. Vous allez apprendre tellement si vous le pouvez,
maître,
si vous pouvez maître, maîtriser tous les principes que nous apprenons ici en se connectant à la construction du réseau magnifique. Vous j'ai une grande expérience utilisateur. Si vous pouvez maîtriser cela, cette section vous aidera à trouver un emploi. Si vous publiez APS comme ça, vous aurez des utilisateurs que vous aurez. Tu vas avoir beaucoup de bonnes choses pour toi. Donc, nous ne sommes pas comme les autres cours où nous sommes juste en train de construire une application
simple, simple, simple, simple,
simple, simple, pour que vous puissiez simplement apprendre un principe. Fais juste ces choses très soigneusement. Mettez beaucoup d'efforts en eux, et vous serez très près d'obtenir un emploi. Les
gens aiment ce genre de choses, surtout même s'ils ne le disent pas, surtout quand les choses sont visuelles. Euh, tu le vends vraiment aux gens. C' est pour ça que je deviens si gros, parce que tous les bonbons au magasin sont les couleurs rouge vif, et je l'achète, et je continue à le manger,
alors faites de jolies choses et les gens le voudront. Ok, donc voici notre cours Pokemon. Tu es comme le type Collis ne se ferme jamais. Eh bien, euh, désolé. Il faut s'en occuper. Alors qu' est-ce qu'on veut faire ensuite ? Mettons en place ou mettons en place le storyboard principal. D' accord. Ah, voici notre point de vue. Contrôleur
, , nous avons besoin de quelques choses. La première est qu'on va vouloir mettre ce joli fond là-dessus et ensuite commencer à travailler sur. Est-ce que vous je Collection voir mettre. Ah, la cellule là-dedans. Euh, euh. Sella est en cll pour mettre vos images et vos trucs en place. Allons-y et faisons-le maintenant. Ok, alors allons de l'avant et attrapons notre graphique de fond. D' accord ? J' ai fourni ceci dans la ressource est pour vous et, euh, juste ici. La plupart des soldats, en fait. Allons, hum allons découper les actifs d'abord. Désolé. On y va. Et puis nous allons de l'avant et avons dû réfléchir pour une seconde cause tout ce qui se passe ici, allons de l'avant et traîner le B G là-dedans, et ça a l'air bien. Retournez au tableau principal de l'histoire. Et assez simple. Tapons l'image ici en bas, à
droite, droite, et nous allons juste le faire en plein écran ici, et ça a l'air bien. C' est ce qu'on veut ? Si on ne veut pas ça comme ça, on pourra changer plus tard. Mais je pense que c'est ce qu'on veut. En fait, mettons notre barre de frontière sur leur premier. Nous allons le mettre en dessous,
donc tapez le nouveau que je vois et traîne ce gars ici. Ok, on y va. Faites glisser tout le chemin ici vers la droite, et on dirait qu'il est suspendu au-dessus du bord. On y va. Je vais choisir ma couleur. Tu pourrais faire la couleur que tu veux. Je vais faire mon manteau, qui est ce rouge. Et si tu veux la couleur, c'est juste ici. F 5855 Et, euh, tu aimes que ce type utilise beaucoup cette couleur. Eh bien, j'aime ça. C' est vraiment cool. Et oui, alors mettons-lui des contraintes. Donc nous voulons désactiver les marges et je veux qu'il soit nul du haut zéro de la gauche. Zéro à partir de la droite, et la hauteur fera 55. Forcera la hauteur là afin qu'il reste ici et ajoute quatre contraintes. Et puis cette vue d'image. Allons de l'avant et, euh, éteignons les marges. Et donc on ne veut pas de lui 34 par le haut. Quoi ? Ça me dit quand ça dit 34 du haut que je me chevauche un peu. Ma vue rouge ici. Allons le faire tomber un peu. On y va maintenant, il en dit deux. Ok, donc on se chevauche. C' était d'essayer de trouver la prochaine frontière ici, mais c'est aussi le cas. Donc c'est ce qu'on veut. Et puis, au lieu de deux sur l'ensemble zéro et c'est zéro. C' est 00 donc on le met à partir de tous les bords. Il va s'étirer comme nous en avons besoin pour ajouter quatre contraintes, puis pour l'image à Stedman, BG Press. Entrez et je veux sentir l'aspect, et il a l'air cool. Ça ira mieux une fois qu'on aura les autres choses dessus. Il y a donc notre histoire. Ça a l'air bien si je clique sur l'aperçu ici. Sur le côté droit sont l'assistant éditeur, et je suis passé d'automatique à Prevue. Ok, ça a l'air bien, non ? Pas trop mal. Bouger. Déplaçons ça tout le chemin ici comme ça, ou comme ça. On y va. Donc je pense que ça regarde la façon dont nous le voulions. Ok, cool. Deal. Allons Ah, prenons notre collection de vous ici. Donc, vous je collection vue je viens de taper sur leur u j'appelle. Et c'est là. Et ah, mettons-le ici. Déplaçons-le ici, déplacons-le ici. Et ah, euh ok, donc ça a l'air bien sur vous êtes, genre, a l'air moche maintenant. Eh bien, on va y arriver, euh, et aussi, va mettre notre barre de recherche, et on ne va pas faire le code pour ça,
mais mettons-le en place. Donc, au moins, on a une bonne mise en page ici. Ok, donc les barres de recherche là-bas, s'il vous plaît ajouter quelques contraintes. Donc au lieu de deux en haut, je veux zéro et 10. Éteignez les marges ici. J' ai dit que zéro truc essayait d'être sournois. Il va à nouveau zéro. Merci. Et Ah, ça a l'air bien. Nous voulions zéro de zéro et la hauteur sur ceux-ci ne change pas. C' est une hauteur fixe, donc je n'ai même pas besoin de régler la hauteur, parce que ça ne changera pas sur moi. Je vais laisser ça là. Et enfin, nous avons eu notre vue de collection, et Ah, vous savez quoi ? Laisse-moi voir ici. Donc, vous avez cette vue de collection ? On ne veut pas, en fait, , on ne veut pas tout ça sur les bords parce qu'on voulait un peu flotter et être
vraiment sympa . Alors faisons 20 de tous les côtés. J' aime ça. Disons que ça dit 15 du haut. Je n'ai que 20 ans. Ça va être 20. Ça va être 20. Et ce serait 20. Hé, allez, obéis, mec. Ces mises en page auto, tu dois faire attention, parce qu'elles ne le font pas. Ils n'obéissent pas tout le temps. Donc ça m'a l'air bien. Et ah, on a eu un problème, cependant. Sur le côté droit, c'est ah qui donne quelques problèmes ici, en fait. Ce qui se passe là, M. vue de
M.
Collection. Essayons encore ça. Marges Eso sur. Oui, votre propre zéro. Et puis, euh juste ici, faisons 20 dans le pas de fond faire 20. On y va. Pour une raison quelconque, c'était bizarre, et maintenant il fait ce qu'on voulait. Ok, ça a l'air bien. Qu' est-ce que tu en penses ? Bien. Donc maintenant, nous avons cette petite collection que vous vendez, si vous savez qu'elle est juste ici. C' est la cellule. On peut le concevoir ici,
dans le storyboard. Donc je vais le rendre un peu plus grand. , C' est
quoi,mais c'est une bonne taille. Disons 1 25 pour maintenant sur 4. Ça semble un peu grand. Faisons juste 10 Non, c'est bon pour l'instant. D' accord. Et il y a une vue pour nous. Qu' est-ce qu'on a besoin de mettre ici ? On a besoin d'une image, non ? Alors allons de l'avant et tapons et images, et c'est un peu grand, alors rendons le plus petit, ok ? Et qu'est-ce qu'on veut faire ? Eh bien, je veux que ça passe sur tous les bords ici, et ensuite ce que je veux faire est de jeter l'étiquette sur le fond. Toi, je l'étiquette parce que, rappelez-vous, il y a une image juste et puis il y a l'étiquette en bas. Donc je vais le faire glisser d'un bout à l'autre ici. Ça a l'air bien. Je vais rendre ça un peu parfait juste là. Centrez l'étiquette. Changeons. C' est amusant du système à l'actualité personnalisée et Helvetica. Très bien, faisons-le petit. Peut-être la taille 12. Centrez-le. Ok, maintenant il a l'air bien et faites défiler ici par défaut. Les étiquettes ont en fait un fond clair, mais nous pouvons en fait lui donner une couleur d'arrière-plan comme le rouge, qui commence maintenant à prendre forme, changer la couleur de la police, mais le haut là trop blanc. Et ça a l'air très bien. A l'air vraiment sympa. Nous devons définir des contraintes. Ok, donc cette vue d'image, euh, ne contraint pas les marges. On en veut 000 et, euh, c'est bon pour l'analyse. Nous qui en ce moment et sur l'étiquette, allons de l'avant et assurez-vous que son fond fixé à 000 à moins qu'une hauteur sur ce. Ok, donc c'est bien. Et donc l'étiquette tout ce que je voulais, ce sont les images Reviens ici maintenant et je veux juste un fanion là bas. Et au lieu d'un, nous allons dire désactiver les marges contraignantes au lieu d'une. On va dire zéro qu'on voulait au ras de l'étiquette. D' accord. Et juste pour le plaisir, ce que nous pouvons faire est de changer l'image de celui-ci et juste s'assurer qu'il a l'air bien. Donc, chaque fois qu'elle a choisi, euh, je vais l'école indifférent à 97 qui est un grand gars qui change le mode à ce que l'aspect de la poubelle sent qu'on veut qu'on s'adapte à l'aspect. Qui ? Qui est-ce que tu aimes ça ? J' aime ça. Je pense que ça a l'air super. Euh, cool. Donc nous avons ce truc cool de l'école juste ici. Cliquez donc sur notre vue de collection. Et, euh, on ne veut pas d'arrière-plan là-dessus. Je pense qu'on voulait clair. Bon, pour que nous puissions voir les sont assez de fond. Donc nous sommes là où il est écrit fond en ce moment, c'est la couleur peu claire. Ok, maintenant tu ne veux pas changer l'Alfa. Laisse-moi voir ici. Eh bien, c'est bien, en fait, peut-être que nous le faisons. Changeons l'Alfa à 0.1. Hum, semble Alfa 20 Ah, eh bien ,
c'est la bonne chose choisie ici. Donc c'est une critique. Notre expérience est claire pour l'instant de nous assurer qu'elle change comme nous le demandons. OK, donc ça change. , Mais ce qu'on veut,c'est une couleur claire. C' est là. Couleur claire. C' est celui qu'on cherchait. Et maintenant sur notre cellule ici. Bien que, euh, on remarque qu'il n'y a pas de contexte là-dessus. Alors donnons-lui une couleur de fond de blanc et vous avez pensé, Eh bien, dans votre application, il est un peu transparent. C' est un peu transparent, alors faisons-le. Cliquez sur la partie blanche ici et partout, dit Opacity. Allons le ramener à 70 maintenant. On commence à le voir un peu. Ça a l'air vraiment cool. Donc ça a l'air bien. Laissons-le et voyons ce qui se passe. Cliquez donc sur l'exécution. Regardez sur l'iPhone six et voyez à quoi il ressemble. OK, donc il ne montre pas notre vue de collection. C' est bon. C' est attendu parce que nous n'avons pas écrit le code pour cela, donc c'est un peu invisible en ce moment, mais c'est OK où nous voulons être dans cette vidéo, nous avons des choses mises en place. Il a l'air de belles lumières et d'autres choses dehors. Je pense que ça a l'air sympa. Hum, tu sais que ce bar juste là. Pas complètement vendu dessus. Réparons ça très vite. C' est cette belle couleur, non ? Alors, nous allons cliquer dessus. Et, euh, le, euh, par ici, sur le côté droit. Qu' est-ce qu'on cherche ? Style de recherche. Minimum. On y va. C' est plutôt joli. Il y a,
genre,
un bleu là-bas. Il y a, genre, Um, ce n'est pas mal du tout. En fait. Je me demande si je devrais le garder. Je vais lui donner une tente de bar. Pensons à ça ici une seconde. Eh bien, en fait, j'ai une meilleure idée. Vous vous souvenez de cette vue d'image que nous avons faite ici sur le fond ? En fait, rendons juste plus petit. Qui vois-tu ce que je fais ? Tu vois ce joli blanc juste là. Donc ça a l'air bien. Donc, au lieu de 46 en haut du rouge, je clique sur la règle ici sur le côté droit. Je vais aller au haut de l'espace pour voir, et je vais juste le supprimer. Non, ce que je vais faire, c'est cliquer sur le bouton de la broche juste ici, et on va dire qu'on veut un zéro en haut juste là. Et maintenant, regardez-le. On a cette jolie barre de recherche blanche. J' aime vraiment ça. D' accord. Facile à réparer. Ça a l'air super. Allons de l'avant et appelons cette vidéo. Bien. Et, euh, prends ça. Soyez au courant ici, et on passera à la prochaine.
85. App: Pokedex Partie 4 - UICollectionViewCell: Qui ici nous allons à nouveau faire un fonds pokey OK de notre Chrissie ou sourds pistes dot com. Mettons-nous au travail. C' est là qu'on s'est arrêté la dernière fois. J' ai une belle vue de la collection, un podium funky regardant ici. Rien ne s'affiche à l'écran. C' est bon, cependant, quand je ne dis rien, je veux dire la collection vous lui-même. Donc, ce que nous devons faire maintenant, c'est que nous avons une cellule de vue de collection. Mais voici une question. Comment changer l'image sur elle ? Comment changer l'étiquette ? Qu' est-ce qu'on doit faire pour ça ? Donc, nous avons réellement besoin de créer une cellule de vue de collection U Y personnalisée qui a cette information elle. Alors allez-y et créez un nouveau dossier, un nouveau groupe. On va appeler cette vue, d' accord ? Et bien sûr, le modèle va toujours au-dessus de la vue parce que c'est modèle, vue, contrôleur. Et donc on a eu une vue ici. n'y a rien là-bas, ce qui est très bien. Et, euh, allons de l'avant et mettons un nouveau fichier et une classe de touches de cacao. Appelons cette cellule poky, comme dans votre région, une collection de vous vendre et nous allons changer la classe pour vous. Cellule de vue de collection. Ajouter un gent à la fin. Merci, Apple. D' accord. Excusez-moi. Donc nous n'en avons pas besoin si nous avons déjà la cellule sur le fichier lui-même dans le storyboard. Donc, ça a l'air bien et créer. Et il y a notre vente douanière. Éteignons l'assistant rédacteur en chef ici. Et, euh, rendons ça un peu plus grand pour que tu puisses le voir sur ton tout petit iPhone. Ok, alors la collection de cellulite pokey de vous vendre. De quoi avons-nous besoin ? Eh bien, nous savons que nous allons avoir besoin d'une image, d'
accord, parce que chacune de ces cellules est une image et il a une étiquette assez facile, je suis sortie semaine var. Et appelons ça. Ah, que
diriez-vous du pouce de l'image pour la vignette. Et, euh, j'ai tapé ton image blanche, n'est-ce pas ? Faisons un autre point de vente de lierre. Qu' est-ce qui est quelque chose ? L' étiquette. droite. Donc le nom va bien, si bon pour moi. Hum, quoi d'autre avons-nous besoin ? De quoi d'autre avons-nous besoin ici ? Oh, je sais. Hum, on doit stocker l'objet Pokemon, non ? Donc, comme chaque fois que vous avez créé de nouvelles cellules, nous avons une classe réelle qui utilisait la réserve de données que nous allons devoir recopier, comme le nom, la description, tout ça. On n'a pas à le copier partout. Alors allons-y et faisons-le maintenant, disons, de notre Pokemon de type Pokemon. C' est la classe Pokemon recréée ici dans notre modèle. Donc on veut juste stocker ça juste ? Et, hum, ça a l'air bien. Et de quoi d'autre avons-nous besoin ici ? Nous avons donc probablement besoin d'un moyen d'assigner ces choses à un moment donné dans le futur. Donc je vais dire funk, configurer cellulaire. C' est exactement ce que j'aime appeler ça. Chaque fois que je configure la cellule, je le mets en place. Ok, on va faire, c'est qu'on va passer un objet Pokemon, et, euh, on va prendre des trucs. Donc ce qu'on va faire,
c'est dire que Pokemon est égal à Pokemon. Et je dois utiliser l'auto-guérison parce que ce nom est le même que, ah, comme celui-ci juste ici. Si je change de nom, je n'aurais pas à le faire moi-même. C' est bon. Et puis nous allons considérer parce qu'un texte de point d'étiquette de nom est égal au nom du point de Pokemon. Et si vous vous souvenez, c'est vrai, du nom de notre COC d'approvisionnement. Aucun d'entre eux n'est capitalisé si vous pouvez voir ça juste là. Alors faisons ça maintenant, disons Ah, ficelle de mensonge
majuscule. Ça va chaque mot d'une phrase. Ça va mettre en majuscule la première lettre dedans. C' est une belle petite propriété calculée d'aide de la vie d'une chaîne. Et la prochaine chose que nous devons faire est de définir l'image pour que nous puissions juste, euh ce que nous allons faire, c'est que nous allons dire, nom étiquette non nommée étiquette pouce image dot image image image vous égale image, et nous allons le faire Nous avons fait ça avant, euh, image nommée droite. Et vous êtes comme, Eh bien, quel est le nom de l'image ? Eh bien, regardons ça. Toutes nos images ne sont que des chiffres, non ? Ce sont les noms, c'est très pratique. Donc on doit faire est de mettre le numéro, est-ce
pas ? Et quel est le numéro ? Eh bien, nous l'avons. C' est juste ici et moi, ce Pokemon qui pokey decks
je d. C' est juste le numéro. Ça va juste mettre 123 718 quoi que ce soit. Donc, chaque fois que configure Cell est appelé, il va passer dans le Pokemon, et il va passer son nom et passer l'image. De cette façon, la cellule peut être réutilisée encore et encore et encore. Donc ça a l'air bien. Tout ce qu'on a à faire maintenant, c'est probablement l'attacher. Je suis des points de vente dans notre storyboard. Alors faisons-le maintenant. D' accord ? Et il est là. Cliquez sur la vue de la collection, puis sur la cellule, qui est juste ici. J' ai un sélectionné et aller là-bas nous allons mettre la cellule, aller sur ce petit rectangle et changer la classe en cellule pokey. Droit ? D' accord. Et tout ce qu'on a à faire maintenant, c'est une traînée de contrôle de la cellule Pokey à, disons ,
euh, cette image ici et, hum, elle n'obéit pas. Attendez. Allons, euh, essayons ça d'une manière différente, non ? Cliquez dessus à chaque fois. Je ne sais pas pourquoi ça ne surgit pas. Ça pourrait être à peu près juste. Cliquez dessus pokey sources de cellules. Étiquette de nom. Allez-y et faites-le glisser ici pour étiqueter et inverser l'image du pouce. Sortez et faites-le glisser vers l'image. Nos vues sont maintenant connectées. Ça a l'air super. Donc, nous venons de créer une classe personnalisée que vous je collection Voir Sell ici. Ok, donc pas grand-chose. , La prochaine chose qu'on doit faire,c'est faire montrer toutes ces choses. Mais allons-y et appelons cette vidéo. Fait. Il s'agit de créer des cellules personnalisées. Cela crée également une vue personnalisée. La classe personnalisée est que vous allez faire cela beaucoup si vous ne créez pas de classe personnalisée est fréquemment pour vos vues et d'autres choses à l'intérieur de vos projets. Tu ne le fais probablement pas correctement. Cela signifie probablement que vous mettez tout votre code dans votre vue, contrôleur. Et c'est mauvais. Ok, ce module se pose. Si vous consultez la classe, elle sous-classe elle la met dans sa propre vue, envoyant avec vos classes décomposer les choses autant que possible. Rends-les réutilisables que possible. Et passons à la prochaine vidéo.
86. App: Pokedex Partie 5 - UICollectionViewDelegate, Data Source / Data Source Layout: Qui c'est ? Pokémon. Quoi ? Le Frick, c'est ça ? Allez, les gars. Qui a fait ça ? Ce n'est pas un Pokemon. Et je m'excuse d'avoir mis quelque chose comme ça là-dedans. Ok, de toute façon, passer à autre chose. C' est là que nous sommes. On a Voyons voir ici. Nous devons vous piquer une vue de collection personnalisée. Donc, nous l'avons attaché dans nos points de vente pour bébés à notre storyboard principal. Nous faisons de grands progrès. Maintenant, ce que je veux faire dans cette vidéo, c'est faire apparaître ces cellules à l'écran, tout
le tas d'entre elles, et nous allons juste utiliser testé au début. On ne va pas analyser le CSB tout de suite. Alors comment on fait ça ? Eh bien, on doit mettre en place notre contrôleur de vue. Nous devons l'envoyer pour pouvoir travailler avec les vues de collection. Donc ce qu'on va faire, c'est mettre quelques particules. Donc, le premier que nous allons faire est que vous I collection view délégué,
et, et, euh, il dit que cette particule définit des méthodes qui vous permettent de gérer cette sélection mettant en évidence des éléments dans une vue de collection et d'effectuer des actions sur ces éléments. Donc, excusez-moi, Nous devons avoir ceci ici, Donc nous pouvons cliquer sur une vue de collection et il répond et fait des choses comme ça. Si on n'a pas ces choses, ça ne fera rien. Et puis nous avons aussi besoin est de vous je collecte la source de données vue. Et regardez cela ici, responsable de fournir les données et les vues requises par la collecte Vous. Donc, nous disons, Hey, nous allons également donner à cette vue contrôleurs également gérer les données qui apparaissent dans côté de notre vue de collection. Et enfin, il y en a un de plus dont nous avons besoin pour vous dire que je la collection View Delegate flow layout et définit des méthodes qui vous permettent de coordonner avec un objet Buell flolo collection pour implémenter une mise en page
basée sur la grille . Donc, fondamentalement, c'est ah, le délégué a des méthodes et des fonctions de délégué qui nous permettent de définir la mise en page sur la collection réélectionner, dimensionnement et l'espacement et d'autres choses. Et donc, allons de l'avant et implémentons certaines de ces méthodes de délégué. Donc, si je meurs vue de collection de broches sait comment les choses apparaissent maintenant, ceux-ci ne seraient pas là si je n'avais pas ces protocoles implémentés que nous devons vendre pour l'article au chemin d'index. Okay, Nous devons aussi voir la collection dio Nous allons juste faire défiler ici. Hum, a sélectionné l'élément au chemin d'index. Ok, ça a l'air bien. Eh bien, cette vue de collection, quelles sont les autres ? Ah, nombre d'articles dans la section. Nous avons besoin de savoir combien il y a d'articles dans chaque section et ensuite, euh, on est presque là. Vue Collection. Je crois qu'il y a un certain nombre de sections. Hum, il n'est peut-être pas là, en fait, juste pour l'instant. Euh, nous devons peut-être taper le numéro de mot là. Ce nombre de sections dans la vue de la collection, et ,
euh, nous allons avoir une section. OK, peut-être dans différents absolus ont des sections différentes. Comme, si nous étions catégoriser chacun de ces Pokemon peut-être par catégorie, comme ou type comme type de feuille, type d'eau de type
feu. Nous pourrions avoir plusieurs sections, et chacune des sections a sa propre et des données en elle. Mais on va juste en avoir un qui va bien pour l'instant. Et de quoi d'autre avons-nous besoin ici ? Je pense qu'il y en a un sur le dimensionnement que nous devons mettre en place ici. Je vais juste aller Teoh, jeter un coup d'œil, et oui. Bien sûr, il y en a un de plus dont nous avons besoin. Et celui-ci, en fait il suffit de taper dans, Um comment ça s'appelle ? Vue de collection dans sa mise en page 1. Lequel est-il cependant ? Celui-ci est,
euh, euh, encartelé. Non, non, une ligne minimale. Espacement ? Non. Où est-il ? Nous avons besoin de taille. Il n'en aura pas besoin. Sa taille pour l'article dans le chemin passé suivant, vous pouvez voir juste là en bas de l'écran. C' est une sorte de surgir. On y va. Donc on ne savait pas. On veut définir la taille de la grille, non ? Eso, ça a l'air sympa. Et donc je vais revenir. taille du CG fait qu'on va faire une taille. Et c'est moi 105 par 5. C' est juste bien. Taille de la grille que j'ai testé et joué autour et l'un des cinq était une bonne taille pour chacune des grilles . Et ça a l'air bien. Et maintenant, il veut connaître le nombre d'éléments. Eh bien, commençons juste ses données de test. Combien devrions-nous en faire ? 30. Alors, retournez 30. Nous allons dire que nous voulons 30 éléments dans une section, puis pour chaque Celt,
Ensuite, nous avons cellule pour l'élément il chemin d'index. Ok, alors quoi, on va le faire ? On va Teoh juste mettre le 1er Pokemon 30 dedans. , En fait, on n'a pas besoin de faire ça. On peut juste ce que je peux faire. C' est facile, en fait. Affaiblir. Dites, hum, que va dire si laisser,
um, um, cellule de vue de la
collection pour le chemin d'index de l'élément ? Il veut un oui. Qu' est-ce que la cellule If let est égal à la vue de la collection que l'élément réutilisable avec identificateur ? On a oublié de mettre l'air d'identification dans notre storyboard. Alors appelons ceci, euh nous l'appelons juste le nom de notre vue personnalisée réelle appelée Pokey Self pour le chemin d'index est le paramètre qu'il veut. Donc fondamentalement, parlons de ça. C' est un peu comme une vue de table. Est-ce que ça me dit ici doit avoir un type optionnel. Oh, ouais. Sur ce sera comme on a un casting il. Tu te souviens ? Cellule Pokey ? Ok, donc ici, ce que nous faisons, c'est que nous allons faire la file d'attente maintenant, tout comme une vue de table une vue de collection ce qu'il fait pour préserver la mémoire et être plus efficace. Il réutilise ces cellules. Il ne continue pas à créer 718 nouvelles vues. Cela va créer,
cependant, cependant, l'argent est sur l'écran et les réutiliser encore et encore et encore. Ensuite, vous le nettoyez. Tu leur as mis de nouveaux trucs. Donc, quand nous disons de Que disaient Hey, prenez un qui n'est pas utilisé en ce moment qui est hors de l'écran. Prendons-le et mets-le sur l'écran et mets-le des choses dedans donc nous allons le faire si il y en a un disponible, il peut ou non en avoir un, mais il va, euh et nous allons trouver que nous voulons vous en prendre un Par ce i d. Et pour le chemin d'index. Le chemin d'index estl'
index courant l' de la ligne. Et donc on va juste l'attraper et la jeter comme notre cellule de pokey, c'est tout. Donc on l'attrapera ici, et ce qu'on peut dio, c'est bien Salix. Et ce qu'on peut faire, c'est juste retourner la cellule. Donc on va faire, c'est qu'on dit ici. Hey, si vous avez réussi à saisir une cellule vide de ce type, allons-y et retournons cela parce que la cellule de vues de collection pour Adam dans ce chemin, il va retourner une cellule, et ce qu'il fait, c'est retour. Il renvoie les cellules qui vont s'afficher à l'écran. Donc, comme vous vissez le prochain avant qu'il apparaisse sur les dysfonctionnements de l'écran appelés ici. Et puis vous vous conformez à votre cellule. Vous pouvez configurer les données et tout ce qu'il contient, ce qu'on va faire dans le futur. Mais vous pouvez configurer toutes vos données dessus, puis juste avant qu'il n'apparaisse que tout se passe, puis il retourne la cellule. Et puis il semble donc si, pour une raison quelconque, cela a bien été abattu,
ça ne le fera pas. Mais si pour une raison quelconque, vous pouvez juste retourner Ah, vous je collection cellule vue, vous pouvez juste retourner un générique avec rien dedans. , Encore une fois, ça n'arrivera pas. Mais nous devons faire une chose . Nous avons besoin de Teoh Goto, notre pape. Copiez cette cellule poky ici et dans notre principal, ce storyboard. Ok, appliquez votre cellule pokey et cliquez sur la droite à l'intérieur. Quelques-uns ont fermé le vôtre. Et ce que nous devons faire, c'est sur celui-ci juste ici. Nous devons mettre l'identificateur. Si nous ne le faisions pas, ça ne marcherait pas. Il aurait eu un accident. Alors récapitons avant de l'exécuter. Donc nous avons réglé l'air d'identification. Ce que nous avons fait, c'est que nous avons implémenté la vue de collection yuet. Délicate la source de données de la vue U. S. S.
Collection dans la nouvelle disposition de flux de délégué de la vue de collection I. Cela nous permet de définir la taille des choses. Hum, et, euh, la source de données dit, Hey, vos sources de données provenant de cette application sont ce contrôleur de vue. Et puis ce que nous avons fait, c'est que nous avons implémenté ces méthodes de délégué qui vont être appelées, donc chaque fois qu'il a besoin d'une nouvelle cellule à afficher à l'écran, ça va appeler ceci, et nous devons lui donner une cellule à s'affiche à l'écran. Chaque fois que vous sélectionnez un élément, nous voulons faire quelque chose. En ce moment, on ne fait rien. Donc ça ne va rien faire. Et, ah, combien d'articles veux-tu ? Eh bien, à l'avenir, ça sera basé sur le nombre total de Pokemon. Mais en ce moment, on l'enduit dur jusqu'à 30. Combien de sexe est juste une section pour cette application ? On n'a pas besoin de quelque chose de spécial. Et quelle taille voulez-vous pour chacun de ces articles ? D' accord. Et vous savez, cela pourrait être différent si c'était une application photo et que vous vouliez que chaque photo soit sa
taille réelle , paysage ou son portrait. Vous pourriez en fait faire cette dynamique dans le changement de basé sur la taille, ce qui est vraiment cool. Les plus grands seront des carrés parfaits. Et ça a l'air bien. Il y a une chose qui nous manque et nous devons fixer les délégués, et en fait, il y a une autre chose qui nous manque. Deux manquaient en fait notre vue de collection. Alors faisons cela maintenant à i b sortie semaine var. C' est juste qu'on appelle ça collection. Et il va avoir le type vous I vue de collection. Ok, donc on doit sauver ça, accord ? Et ça a l'air bien. Et puis ce que nous allons faire, c'est dire que le délégué de point de collection est égal à moi. Ok, nous disons, Hey, le délégué de cette collection va être ce cours, et nous avons bien sûr, euh, nous l'avons fait ici, ok ? Je me crie dessus. Je pense que c'est juste un prochain bug de code. Laisse-moi le construire. Oui. Bug de code X. Si jamais vous voyez ce problème, ou si vous avez un problème où le code X comme vous donne un air et qu'il ne devrait pas l'être , construisez
simplement votre projet. C' était un bug et la source de données point de collecte est égal à soi. Ce que nous disons,
c'est que nous possédons la source de données et que nous sommes aussi le délégué. Ok, regarde ce qui se passe si je sors ça ? Ce que vous je, délégué
de la vue de la collection. D' accord. Qu' est-ce qui va se passer et le construire ici ? Oh, laisse-moi sortir celui-là aussi. Maintenant, construisons ça. Voyez comment il y a un air là-bas. C' est comme, euh, attends une minute. Qu' est-ce qui se passe ? Vous essayez de donner quelque chose à mon délégué, mais vous ne respectez pas le protocole. Donc, la collection utilise la recherche d'une classe qui se conforme au protocole. Mais cela ne se conforme plus, parce que nous ne le sommes pas. On n'a pas mis ça là. Remettons ceux qui disent oui, nous nous conformons. Et, euh, si je retire la source de données, vous voyez ce problème ici ? Hey, ce n'est pas cette classe que tu mets ici, elle n'est pas conforme au protocole. Où est ton protocole ? Eh bien, c'est
là en ce moment. Je l'ai remis. Donc, nous nous conformons. Nous devons les mettre. Si vous ne les définissez pas, aucune de ces fonctions ne sera appelée. D' accord ? Le modèle de délégué est un peu complexe pour les nouvelles personnes. Délégués délicats et protocoles. Ces protocoles aériens, ces méthodes de délégués aériens savent simplement comment les utiliser. Il met en œuvre le protocole, et chaque protocole a ses propres méthodes. Et ce sont les méthodes juste là si vous cliquez dessus. D' accord. En fait, vous pouvez commander cliquer dessus. Et vous pouvez aller regarder les méthodes ici. Il y en a. Certains d'entre eux sont facultatifs. Similaire requis, Donc la vue de la collection devrait mettre en évidence mis en évidence. Donc, de toute façon, vous allez dans la classe et voyez réellement quelles choses sont disponibles pour vous d'utiliser. Plutôt cool. Et donc ça a l'air assez bien. Devrions-nous le construire et, euh, voir comment on a l'air ? Oui. Ok, faisons-le. Oh, ça ne marchera pas. Nous n'avons pas branché l'arrêt de sortie avant qu'il ne se bloque. Ah. Allons de l'avant et connectons le premier storyboard principal. Et tout ce que nous avons à faire, c'est votre contrôle de vue ici. Contrôlez, faites glisser le curseur vers votre vue de collection et sélectionnez collection. Maintenant, nous allons le faire. C' était un proche. Qui ? On y va. Est-ce que ça a marché ? 123 Donc 369 12 15 18 21. 24 27 30. Hey, je pense que ça a marché et n'a pas l'air joli. Ça n'a pas l'air vraiment sympa. était comme, euh, c'est cool, mais qu'en est-il des bords arrondis ? J' attendais que tu le mettes en œuvre. Je voulais savoir comment faire ça depuis toujours. Ok, assez
facile. Donc ça a l'air très joli. Regarde ça. On n'a même pas fait autant de choses. On construisait déjà un assez apt. N' est-ce pas fou ce que quelques belles couleurs peuvent faire sur une application ? Un peu de pensée dans le style. Euh, alors va à ta cellule poky, et ce qu'on va faire c'est ah, qu'est-ce qu'on veut faire ? Faisons-le dans l'Isar initial juste ici. On a ce super point initial d'Isar et ça va nous faire implémenter les deux. Maintenant, euh, à la fois le codeur et celui-ci. Si nous en implémentons un du tout, c'est bon, super point dedans. D' accord. Et c'est ce qu'on va faire,
c'est ça, euh oh. J' ai oublié de remplacer, hein ? Et celui-là va vouloir être nécessaire devant lui. Ok, Donc si vous implémentez une initialisation, ,
vous devez
implémenter ceci, euh, ceci en a besoin une ici. En fait, nous avons même besoin de mettre en œuvre celui-ci. Je suis curieux maintenant. Non, nous ne le faisons pas. Ok, débarrassons du cadre 1. Et juste ici. Allons juste dans notre premier Isar. Réglons les coins de notre vue pour être arrondis, et peut-être que vous vous demandez comment faire cela. Eh bien, chaque vue a ce qu'on appelle un calque, donc je peux dire un calque auto-point Oregon. Probablement juste dire couche sans le rayon d'angle de point auto-calque. Ok, le rayon à utiliser pour dessiner des coins arrondis, charges, arrière-plan. Ainsi, les couches sont dessinées sous la vue. C' est pour que chacun de vous ait sa propre couche. C' est là où tout le dessin se passe. Ok, euh, dessiner tout se passe au niveau du calque en dessous de la vue. Donc c'est tout ce que vous devez savoir. Si maintenant et donc je vais dire que le rayon d'angle de point de couche est égal à 5,0. Pourrait-il être aussi simple que ça ? Eh bien, découvrons. Hé, regarde ça. Ils sont beaux et autour de ça. C' est vraiment, vraiment cool. Qu' est-ce que tu en penses ? Ouais, que diriez-vous juste pour s'amuser ? Plutôt que de dire 30, c'est juste pour s'amuser. Plutôt que de dire 30 faisons juste, euh, on fera 718 parce que je sais qu'on en a 718. Hum, ce qu'on va faire est, euh, juste ici. Ce que nous allons faire c'est ah, nous allons dire maintenant que nous avons notre portable, ça marche très bien. Nous allons dire, canard
cellulaire, configurer cellule, et ah, En fait, allons juste ce que nous allons faire, nous allons créer un nouveau Pokemon pour chacun avant de le faire. Créons un nouveau Pokemon sont ici jusqu'à présent, Pokemon. Souviens-toi, ça va être appelé 718 fois, d'accord ? Parce que chaque fois que tu veux une nouvelle cellule va appeler cette fonction et on va créer un nouveau Pokemon. Et pour l'instant, euh, le nom vient de mettre un test. Tous les noms pourraient être les mêmes. Mais pour les decks de pokey, OK,
faisons quelque chose de différent. OK, Mettons le nombre réel de l'index Donc nous allons dire dans le chemin suivant. DOT a écrit maintenant ça va passer un inter Jurin de l'index actuel. C' est vrai ? Mais c'est bon, c'est bon pour le moment,
parce
que nous savons que toutes nos images numéros d'air,
rappelez-vous, rappelez-vous, donc ce sont tous des chiffres, donc je sais que ça va marcher parce que si on dit qu'il y a 718 c'est va appeler les 718 fois, et la ligne actuelle va être. Et quand je dis ligne, cela signifie l'idée réelle de chaque élément. Euh, ce sera le numéro que nous recherchons, pas c'est plutôt cool. Qu' est-ce que ça me donne ici ? Oh, c'est une fois qu'il ne veut pas de ficelle. Il veut juste t'enterrer. Voilà, tu y vas. Donc, nous avons créé le mois Pokey. Ça a l'air bien. D' accord. Et ce que nous allons faire est qu'il va maintenant dire, vendre dot configure Selmer. Nous avons créé cette méthode et c'est à la recherche d'un mois de pokey, donc nous allons le faire. On vient de passer au moment de la pokey. Créé, je me souviens, va avoir un nouveau numéro à chaque fois pour chaque Pokemon parce qu'il saisit le chemin d'index cette ligne, et cela change pour chaque cellule à nouveau. Ne vous laissez pas confondre par la ligne. Ce n'est pas comme une ligne dans, hum, comme une feuille de calcul Excel étaient comme les trois éléments que nous avons notre seule ligne Dans ce cas, chaque élément est son propre oeuf. Andi pense que cela vient des vues de table sur IOS, qui était autrefois juste une collection de lignes. Les vues peuvent contenir plusieurs éléments dans une corde. Et juste pour rafraîchir votre Pokemon ou votre cellule poky. Ok, quand on appellera cette cellule de configuration, ça va définir le texte et ça va définir l'image et ah,
ouais, ouais, devrions-nous lui donner une photo et voir ce qu'elle fait ? doigts de pression. J' espère que ça ne casse pas. Ok, le 1er 1 n'a pas marché. C' est bon. J' ai jeté ça dehors. Oh, c'est parce que ça commence. Ça commence à zéro. C' est pour ça que, euh, ça a du sens. À partir de zéro. Bref, , c'est juste que je voulais juste le tester et voir, mais regarde ça. Plutôt cool. Tous vos Pokemon sont montrés. Nous faisons cela depuis très longtemps,bien
sûr,
pour bien
sûr, cliquer dessus ne fait rien, mais juste après cela, vous avez une application vraiment cool. Je pense que c'est cool. Je veux dire, je sais que la création l'a conçu, mais vous pourriez en prendre le mérite. Je m'en fous. D' accord. Tu es le seul bâtiment que tu devrais être heureux. Donc, euh, super. Qu' est-ce que tu en penses ? Des trucs très amusants. Allons de l'avant et passons à la prochaine vidéo.
87. Application : Pokedex Partie 6 - Parsing CSV: Tout le monde. Marquer le prix. Vous êtes sourds pentes dot com et allons-y et continuons à construire sont très caca. J' espère que vous, Dex. Donc, la dernière fois, ça a eu nos images Pokemon apparaissant assez cool. Juste un test de rançon. Ce n'est pas rien pour les grands qui se passent en ce moment, mais ça a l'air joli. Nous sommes arrondis sont des bords. Nous avons fait des prédictions, et nous n'avons pas passé beaucoup de temps à le faire. Tellement, des trucs très cool. Allons-y et faisons-en plus. Pourquoi ne pas nous concentrer maintenant sur l'analyse dans les données RCs v afin que nous puissions réellement mettre de vrais noms Pokemon dans l'application. Donc ce qu'on va faire, c'est aller sur notre internet dandy, et on va aller chercher un hub dot com pour un slash spin tack. D' accord ? Et j'ai un repo ici que vous pouvez utiliser des dépôts et ici pour nous voir V. Swift. Donc, voici l'URL semble que vous avez point com barre oblique avant passé tack, barre oblique
avant CS v swift. D' accord. Et, euh, Gwen et téléchargez ceci ou ce que vous pouvez faire, c'est juste,
euh, vous pouvez copier ce code ici. Um, je pense que ça va se copier. Donc si je copie ça, vous savez, c'est téléchargé juste pour être sûr. Retournons ici et cliquez. Télécharger le fichier zip. C' est là, et je l'ai décompressé et il y a un fichier rapide. Tout ce que je vais faire, c'est de traîner ici dans notre projet. Clôtons ça. Oui. Copiez et cliquez sur Terminer. Ok, alors attrape ça. Tu vois ? Analyse SV. Je ne voulais pas avoir un tas de leçons dédiées à faire,
genre,
l'analyse virgule et des choses comme ça. Je ne voulais pas avoir un tas de leçons dédiées à faire,
genre, genre, Tant de gens allaient juste utiliser une petite bibliothèque ici qui le fait pour vous. Je vais juste te montrer comment l'utiliser. Vous pouvez regarder le code vous-même si vous voulez savoir ce qui se passe dans les coulisses. Et c'est là. Et créons un nouveau groupe ici à ce niveau supérieur ici dans un nouveau groupe. Je vais juste appeler ça Ah, vous jusqu'à court pour les services publics. Et mettons-le en dessous de la vue et je vais faire glisser voir SV dans leur Aussi, nous avons une vue de modèle, mais faisons un dossier de contrôleur. Israël nouveau groupe appelé contrôleur, contrôleur vue
modèle, et ah, ça fait glisser notre contrôleur de vue là-dedans, ok. Et, euh, tu sais quoi ? On peut même faire plus. Que diriez-vous d'un autre groupe appelé Resource est vraiment en train de faire ça ici et nous y allons. Et qu'est-ce que tu penses qu'on devrait mettre ? Resource c'est, diriez-vous de notre fichier CSB ? D' accord. Je suis comme, dans notre structure de dossiers. Commencez à prendre note. Vous devriez faire vos dossiers similaires à ceci. Alors on y va. On a le dossier RCSC. Nous avons notre CSP Parcher dans les services publics, et, euh, que veux-tu faire ? Donc, ce que nous voulons faire est quand l'APP se charge pour la première fois, nous voulons saisir toutes les données de celui-ci, créer un tas de Pokemon et charger leurs noms sur l'écran. Quoi ? On travaille déjà avec les images. On a failli tomber ça. La première fente est un peu désactivée. C' est ah, c'est vide, mais on va arranger ça. Alors passez à votre point de vue, contrôleur, euh, dans le contrôleur, bien
sûr. Et nous allons Ah, créons une fonction. On va le faire ici. Et on va appeler ce Funk Parse Pokey mois CSP. Et nous ferons est juste quand les premiers chargements feront ça. Donc, nous allons appeler la fonction que je fais parfois ça. Je crée juste le shell comme la fonction vide, et je l'appelle où nous le voulons. Parce que parfois, si je ne fais pas ça bien quand j'y pense plus tard, Robbie, comme diriger le passé. Comme, pourquoi ça ne marche pas comme Oh, ouais, j'ai oublié de l'appeler. Alors faites des choses quand vous vous en souvenez. Mix vous rend la vie un peu plus facile. Alors, allons-y et
analysons ce fichier CSTV ici et ce qu'on va faire, c'est prendre le fichier,
puis lancer le Parsa dessus et ensuite,
euh, euh, peu de magie à partir de là. ,c' , La première chose
,c'est qu'on se souvienne de ce qu'on a dit ici. La source de données se trouve dans ce fichier. Eh bien, nous n'avons actuellement aucune source de données. n'y a pas, il n'y a pas de tableau d'éléments. Vous vous souvenez d'une vue de collection ou d'une table de vous ? Ils doivent être basés sur un type de données,
OK,
et ma startup discute OK, pleinement de grâce à vous et à toutes ces vidéos et juste à manquer d' espace ici. D' accord, jusqu'à présent. Et nous appellerons ce Pokemon de type Pokemon. Ça va être un rayon, mais la Kabbale Honore. Ok, donc on va créer un pokey Monterey, et ça a l'air bien. Sauf que je pense, au lieu de le déclarer, allons de l'avant et,
euh, en fait, en créer un. Un vide. Ok, donc maintenant on a un pokey vide Monterey, et ce qu'on veut faire c'est récupérer les données du CSB 5. On veut un parson ici. D' accord
, mais d'abord, je vais trouver un chemin ensemble dans un DL filé. Ce bundle principal ce chemin pour la ressource. Vous l'avez déjà vu pour les fichiers audio, n'est-ce pas ? Pokémon de type C S V. Donc nous saisissons le chemin, c'est tout. Je mets un point d'exclamation à la fin parce que je sais que ce dossier est
là. Je mets un point d'exclamation à la fin parce que je sais que ce dossier est Je peux le voir de mes propres yeux pour que je puisse le garantir. Si ça se bloque, ça veut dire que j'ai fait quelque chose de mal, et je vais l'attraper au moment de la compilation. Et ce qu'on va faire, c'est qu'on va jouer notre rôle,
monsieur, monsieur, ce qui peut déclencher une erreur. Il peut jeter quelque chose. Donc on doit le faire. Le faire. Il suffit d'ajouter ces accolades ici, et allons de l'avant. C s V est égal à. Essaie. C' est le circuit partiel CSP, et nous allons passer le contenu de l'Euro. Et ça va être que je suis un chemin, ok ? Et puis, euh, je ne ferais pas le bloc de capture. Ce n'était pas sucré. Nous allons attraper, laisser l'air comme et s erreur et nous allons juste imprimer la description de débogage de point d'air s'il y a un problème, ok. Et puis c'est ce que l'icône rouge nous donnait aurait besoin pour le bloc de capture et nous allons faire juste prendre la rose hors de lui. Donc, laissez Rose égale C s v point rose. Ok, donc nous saisissons la rose du fichier Sea SV et nous allons l'imprimer et voir à quoi ça ressemble. Imprimer Rose. D' accord. Je vais lancer l'application, Souviens-toi, on sert. Vous avez chargé va appeler. Il va faire notre analyse ici et nous allons lancer l'application et voir à quoi elle ressemble et déteste mettre en place des choses. Bien. On sait que ça fait quelque chose. Ça marche. Donc, ça fait sortir notre rose du dossier CSB. Et alors, allons-y. On y va. Ce que nous voulons faire maintenant, c'est que nous voulons itérer à travers le rôti et créer un tas d' objets
Pokemon et les mettre déjà dans. Ok, donc nous allons dire pour chaque rangée de lignes que c'est un pour chaque boucle et dira, Prenons le pokey que j'ai laissé Pokot égal à int rang I d et nous mettons l'exclamation à la fin dans une autre exclamation. OK, alors ce qu'on fait c'est qu'on va dans la rangée, accord ? Et si tu te souviens, , si on regarde nos affaires ici, c' est un
C'est ce qu'on veut. L' idée, le numéro ici. Et donc ce que nous faisons, c'est chaque rangée ici est son propre petit dictionnaire. Ok, si tu te souviens quand tu as regardé ça, je suppose que je ne l'ai pas vraiment expliqué, mais c'est un tableau. Donc, c'est un tableau de dictionnaires. Et donc tu as remarqué qu'il y a un deux-points ici, puis un deux-points, Nettie. Donc, fondamentalement, chaque élément du tableau est un dictionnaire, c'est tout. C' est juste un dictionnaire. Et donc nous saisissons la ligne, l'idée hors de lui, et nous la convertissons en entier. Ok, donc c'est cool. On le convertit en entier et je sais qu'il est là. Donc je mets juste le signe de la livre. On pourrait aussi que je t'apprendrais probablement de mauvaises choses ici si pokey i d est égal à int se ro i d. et, euh on y va. Qu' est-ce qu'on fait ici ? Oh, on n'a pas besoin de le faire. Donc c'est cool. On n'a pas besoin d'un moyen. Nous pouvons revenir à ce que nous étions parce qu'il y a une valeur garantie juste là. Donc, c'est bien. D' accord, laisse pokey i d. et sortons le nom. Juste du code et pas parfait. Je ne veux pas être un programmeur parfait devant toi parce que je veux que tu vois les choses
stupides que je fais tout le temps. Prenons l'identificateur. Tu te souviens ? C' est le nom du Pokemon, tu te souviens ? Tu te souviens ? Goût. C' est le nom. Et, euh d'accord. Et alors, allons de l'avant et créons notre Pokemon. Donc on va dire que Pokey est égal au mois Pokey et qu'est-ce qu'il faut ? Il a besoin d'un nom. Est-ce que c'est le nom et le pokey ? Je suis le pokey i d et puis on va dire, um point Pokemon Upend C'est notre liste qu'on a créée en haut, non ? Et c'est pokey cool. J' aime ça,
sauf que ça n'aime pas ce qu'on fait ici. J' aime ça, Regardons ça. Il nous veut, Teoh. Il veut le signe de la livre. En fait, nous aurions pu le faire ici parce que ce n'est pas garanti la saisie et l'article de ce dictionnaire, est-ce pas ? Ce n'est pas garanti. Et tu te rappelles comment j'ai dit que c'est vraiment mauvais de mettre ces choses ici pour le forcer ? Eh bien, il l'est. Mais pensez au cas précis dans lequel nous sommes ici. Nous avons un fichier C S V droit, et il a besoin de la partie peu importe ce que dans ces parties. Et donc si nous avons des problèmes avec cela, nous l'attrapons ici avant de compiler avant qu'il ne soit publié à tous les utilisateurs. Et ça ne changera pas. Ça ne changera
jamais . On ne l'obtiendra pas d'Internet. Cela ne changera jamais. Donc, une fois que tu l'as là et que ça marche, tu sais que ça marche. Donc ça ne me dérange pas de mettre les panneaux de livre. Ils appliquent ces unwraps bien, parce que ça doit fonctionner avant de livrer à l'utilisateur, et ça ne changera jamais une fois qu'on le fera fonctionner, si ça a du sens. Donc nous avons attrapé le I d et nous nous souvenons des idées en nombre, OK. Et, euh, eh bien, ça sort comme une ficelle. Euh, mais nous voulons à nouveau convertir en entier. Puis la rangée. Nous voulons, euh, prendre l'air d'identification hors de la rangée, qui est le nom du Pokemon. Et ah, nous
y allons ont crédité Pokemon. Nous l'avons ajouté au tableau ici. Ok, alors maintenant on devrait l'avoir fait. Au moment où ce fichier sera analysé, nous devrions avoir 718 Pokemon. Et la différence est maintenant ici dans la cellule pour l'élément il chemin d'index, allons-y. Et, euh, au lieu de créer un nouveau Pokemon, attrapons-le. Sauvera notre pokey égale Pokemon. C' est notre tableau. Rappelez-vous, ce sont les crochets dans le texte de saisir un index hors de celui-ci dira chemin d'index, point écrit. Et au fait, c'est très, très commun. Uh, c'est
ce que vous faites dans ces auto pour les éléments dans le chemin d'index, comme vous le feriez sur une table de vous auto une ligne dans le chemin suivant. Vous,
euh, utiliseriez le point de chemin d'index ro à l'intérieur de l'index de tableau juste ici pour attraper le
Pokemon actuel car c'est comme une boucle. Presque. Il est en boucle à travers vos données, et il les saisit hors de lui. Et tout ce qu'on a à faire, c'est de passer le pokey dans leur Pokemon, accord ? Et voir ce qu'il nous crie dessus, Um oh, poke est égal au chemin d'index Pokemon, cette liste d'arguments de type Pokemon. Je ne pense pas que ce soit un tableau. Qu' est-ce que j'ai fait de mal ici ? Pokémon ? Non, c'est vrai. Vous construisez ça. Ok, Um bizarre bug de code X dégoulinant ici encore. Si jamais tu as un problème, tu es genre, je ne sais pas ce qui se passe. Il suffit de le construire. Il s'agit d'une version bêta. Donc tu vas avoir des problèmes comme ça. Donc la commande B est construit, au fait, nous l'avons fait depuis toujours. Mais le commandement soit. Et on y va. Donc, pour résumer, on
appelait les pièces du mois Pokey ? Nous avons saisi le chemin du fichier CS. Le code CSTV fait son travail ici. Il l'analyse dans le Sea SV, puis mettre deux lignes ici et puis nous l'entrons à travers les lignes et chaque rose un dictionnaire, et nous prenons juste le I d et le nom hors de la ligne et créerait un nouveau Pokemon. Nous avons ajouté à la liste quand je dis créer un Pokemon, c'est notre classe que nous avons créée. Qui, bien
sûr, sont Pokemon dans l'air du modèle ici il stocke le nom et les decks pokey, donc nous créons un tas de ces 718, puis sur soi pour le chemin d'index de l'article. Il va passer par toute cette liste à chaque fois que vous voulez en créer un nouveau, et il va saisir le chemin d'index actuel point de l'élément actuel dans cet index, et il va retirer notre Pokemon dont nous avons besoin pour cette ligne. Il va configurer le passé de la voile dans le Pokemon, attribuer le nom et l'image, et ça va retourner la cellule. Et c'est ça ? Voyons voir. Hé, hé, hé. On dirait que ça marche. Euh, oui, ça marche. Qu' est-ce que tu en penses ? Nous venons d'analyser dans un fichier C S V. Félicitations. C' est plutôt cool. Vous commencez à travailler avec des données. Faisons en sorte que cela fonctionne jusqu'à la fin 718. Pokemon est un bon nombre de ceux que vous allez. Hé, ça a l'air bien. Et au fait, suffit de remarquer à quel point ça ne va pas plus vite, c'est plutôt cool. Saviez-vous que si nous n'avons pas de que les cellules ici, cela fonctionnerait terriblement. Donc, en fait, l'APP pourrait se bloquer car elle ne pouvait pas contenir 718. Pensez-y. Qu' est-ce que vous voyez à l'écran ? 369 12 15 18. y a probablement qu'une trentaine d'éléments qui apparaissent à l'écran. Ok, euh, le reste est mignon. On voit à quoi ça ressemble. Un iPad juste pour le plaisir. Ça s'appelle l'iPad Air. Laissez-le construire ici une seconde. Ah, oui. Donc c'est réutiliser les cellules, ce qui est vraiment sympa. Il rend l'application exécutée très rapidement. D' accord ? Et ça me donne un air. Attends. Fermons un simulateur. Essayons encore ça. Oh, allez. Allez, allez. Regarde ça. C' est plutôt cool. C' est cool ? Je pense que ça a l'air cool. Écoute, toujours le piquer. Maintenant, dans ce cas, il montre beaucoup de cellules, non ? Et si tu ressentais n'importe quel type de lenteur, tu sais, peut-être que tu les rendrais plus gros. Donc, pas autant sont adaptés à l'écran. C' est bon. Pour l'instant, , c'est plutôt cool. Ça a l'air vraiment sympa. En fait, j'aime vraiment ça. Faisons-le tourner. Qui aurait même l'air bien dans le paysage ? Je viens de garder le commandement. Et dans la flèche droite qui tourne. Ça a l'air bien. Alors félicitations, vous parties au fichier CS. On a récupéré les données et on s'affiche à l'écran. C' est vraiment sympa. Allons de l'avant et continuons le camionnage.
88. App: Pokedex Partie 7 - Audio & Personnaliser: Hé, qu'est-ce qui se passe ? Tout le monde est revenu ? Mark Price pentes sourdes dot com Et continuons avec notre indice pape. Je vais le tirer ici et encore si vous avez besoin de le trouver. Fichier ouvert. Récemment trouver un projet et la dernière fois que nous avons notre analyse CSD et ils affichaient des données à l'écran, les noms et les images. Très cool. Maintenant, ce que je veux faire en ce moment est juste un peu de style avec un titre de police sur l' écran
principal, puis mettre un peu d'audio dans. Alors allons à notre planche principale. On veut mettre, euh, un titre ici au milieu, et je n'aime pas être ennuyeux, donc je ne veux pas mettre n'importe quelle police là. Allons-y et attrapons une police Pokemon. C' est ce que vous pouvez faire, c'est aller à Google et j'ai été Pokemon police et voilà. C' était facile. Et on ne veut pas du creux. Nous voulons le solide. Allons de l'avant et téléchargeons. Je vais cliquer ici et c'est là. J' ai le creux ou les critiques solides ce que tout le monde vous voulez. En fait, je vais utiliser le solide et tout ce que tu dois faire c'est prendre ça. Changeons le nom. Je n'aime pas les espaces et les noms, car cela provoque des problèmes. Je vais juste appeler Pokemon et juste le prendre et le faire glisser dans votre dossier de ressource dans votre projet. Et Ah, très, très important. Arrêtez ce que vous faites et concentrez-vous là-dessus. Cliquez sur ce bouton ici. Ajoute à la cible si tu ne fais pas ça, d'accord ? Ça ne va pas l'ajouter. Et, euh, ça ne sera pas dans ton paquet. La ressource est, et vous ne serez pas en mesure de la trouver ou du moins votre monde de constructeur d'interface. Donc je viens de l'ajouter. Ok, une autre chose que je dois faire est d'aller dans ma liste de points d'info. Cliquez sur ce signe inférieur plus en bas à droite ici. Et changeons. Commençons juste. Il suffit de taper dans la lettre F majuscule F o n polices fournies par l'application est juste là. Ok, c'est un tableau. Cliquez donc sur la petite flèche pour la déplacer vers le bas. Un élément zéro. On va juste se faire mettre le nom là-dedans, donc Pokemon dot TTF c'est tout. OK, maintenant nous devrions pouvoir l'utiliser dans notre application, donc si je retourne au Maine Storyboard. Ok, allons cliquer sur le côté droit pour ouvrir notre petit inspecteur là-bas et au bas type et l'étiquette et le dragon au centre pour le rendre un peu plus grand pour en faire beaucoup plus grand. Allez son dragon au centre du texte, puis ah, sur Funt changer à la coutume. Et puis au lieu de comment un canoë, nous devrions voir notre Pokemon s'est battu là c'est Pokemon solide et tu es comme si j'avais l'air moche. Eh bien, certains mots font Notre parole semble vraiment OK. Tu vois ? Rendons le plus grand. Les ont foi en moi. Je sais ce que je fais. Ça va avoir l'air bien de changer la couleur de l'orteil blanc. N' est-il pas étonnant de voir que quelque chose d'aussi simple qu'une police peut ajouter autant de valeur à une application ? Je vais te dire quoi. Ce sont les petites choses qui comptent de vous ici regarder ces vidéos parce que vous voulez faire une demande de 1 000 000$. Ne laissez pas de côté les petites choses très importantes si vous construisez. Si vous jetez des ordures là-bas, euh, vous savez que ça va frapper ou manquer toutes les meilleures applications sont vraiment bien faites. Donc si tu parles comme toi, à moi ou à d'autres endroits qui essayent de trouver des tutoriels et des vidéos et que les choses ne sont pas aussi bonnes que ce genre de choses, je serais juste bizarre parce que chaque petit détail compte et, euh, C' est ça, c'est la bonne façon. C' est le chemin de la pomme. C' est ce que IOS app store tout à propos d'être le meilleur, étant les applications de la plus haute qualité. Eso um Ok, donc je clique juste sur ce menu pin ici. Mais ce que je pense que ce que je veux faire est de l'aligner d'abord horizontalement et verticalement dans le conteneur et le conteneur est la vue juste ici. Donc, nous y allons et puis nous allons juste aller de l'avant et épingler l'intérieur de la hauteur pour qu'il reste. Ah, reste le même. Vraiment cool. Maintenant, la prochaine chose que nous voulons dio est ah avoir un bouton oh coquine Ici et par défaut, musique va jouer juste pour le plaisir, pour rendre votre application plus excitante après que vous l'écoutez boucle pendant environ 15 fois. Si tu veux l'éteindre, il y aura un bouton pour ça. Nous avons donc besoin du graphique pour ça. Donc je l'ai. Hum, et, euh, c'est juste là. Et il est dans la ressource est dossier pour vous. Et, en fait, en fait, je ne veux pas le mettre dans le projet. Je veux le mettre dans mes biens. J' ai cliqué sur les actifs. Je vais juste traîner sur la musique juste là. Il est quelque part là-dedans. Assure-toi juste, en fait. Ça ne ressemble pas à ça. Il est allé là-dedans. Essayons encore ça. Il est là en bas. Ok, trop peu de notes de musique là-bas. Retournons au storboard et,
euh, euh, attrapons un bouton. Je me suis serré c'est juste là. Il y a mes fesses dedans. Je vais enlever le texte parce que je n'en ai pas besoin et juste sortir et changer l'image. Teoh, euh, la musique nous est juste là. C' est vraiment grand. Ça le rend plus petit. D' accord ? Et je tiens le quart de travail pour m'assurer qu'il reste uniforme et ah, juste là a l'air juste et j'aime où il est. J' aime ça. Alors allons de l'avant et donnons-lui une largeur et une hauteur et mets-le 12 du haut huit de la droite. J' aime bien où il est. Je voulais dire la même taille aussi. Voilà notre bouton. Ça a l'air bien. Ouvrez votre éditeur assistant. Et allons juste y aller et créer une action pendant que nous sommes ici dans l'euh écho, ce
moment il tire le mauvais code de fichier X à nouveau. Goto automatique et commutateur pour afficher le contrôleur. OK, je clique sur ce contrôleur de vue automatique. On y va. Fermez le côté droit. Tiens, donne-moi un peu d'espace. D' accord. Et nous allons simplement créer un clic et le contrôle traîné vers le bas ici à l'intérieur des parenthèses. A moins que je ne change bientôt, je serai à l'action et ça s'appellera, euh ,
musique, mais dans la presse, OK. Et, euh,
ça a l'air bien. Donc on a notre titre là-dedans. On a notre bouton. Allons de l'avant et fermons l'éditeur assistant et passons directement dans notre code de
contrôleur de vue ici directement vers cela. Mais ces actions que nous avons créé et juste mis un espace là. Ok, Donc ce que nous avons aussi besoin de dio, c'est ah, créer la musique ou laisser la musique jouer quand elle démarre, puis ce bouton va la basculer. Alors faisons ça maintenant. Vous devriez vous rappeler comment faire cela. Nous avons donc juste besoin de créer un lecteur audio. Donc de notre lecteur de musique. En fait, nous devons d'
abord importer le cadre, importer une fondation V, et ensuite nous pourrions dire que le lecteur de musique est égal à une couche audio V. D' accord. Plutôt cool. Et ah, il me crie dessus. Oh, j'ai fait le signe égal. Je devais passer un appel là-bas. Je ne suis pas encore prêt à le créer. Nous allons le créer, cependant. Donc, ce que je vais faire est de créer une fonction appelée innit audio. Dans le cas où à l'avenir, vous voulez un plus audio ou des effets sonores, Vous avez une fonction pour le mettre là, et nous allons de l'avant et appeler l'air comme nous l'avons fait avec les autres fonctions. Préparez-le et rappelez-vous comment le faire pour voir que nous pouvons le faire par mémoire. Ok, donc nous devons prendre le chemin. Droit ? Donc, laissez chemin est égal à N s bundle dot principal chemin groupé pour la ressource. Et celui-ci s'appelle, hum, on n'a pas traîné la musique dedans. Ça ne s'appelle rien parce qu'on ne l'a pas traîné et on y va. Ah, trouve-le. Écoutez la musique point mp trois. Et encore une fois, c'est Ah, ça fait partie de la ressource, c'est que je vous fournit pour que je n'ai pas créé cette musique. Ceci est de la musique Pokemon disponible publiquement sur de nombreux sites Web. Barbara PD, etc. Ah, tous les droits d'auteur existants s'appliquent. Je ferais attention à la diffusion commerciale de ceci au monde. Mais votre choix Il y a un ba jillion d'autres sites Pokemon là-bas tellement. Et, euh, toute façon, donc il y a la musique et, hum, laissez le chemin. Ok, donc la moitié de la ressource est de type MP 3, ok. Et nous savons qu'il est là, alors continuons et forçons simplement le déballer pour qu'on puisse l'utiliser. Et rappelez-vous, le joueur ne fonctionne pas toujours. Je veux dire, ça peut lancer une erreur, alors allons-y et attrapons-le. Maintenant, laissez l'air comme N s air. Je pense que c'est ce qu'on cherche. Et ce qu'on va faire, c'est dire, on va dire, qu'est-ce qu'on essaie de dire ? Um, lecteur de
musique est égal, essayez un lecteur audio V. On y va. C' était à la recherche et ah, qu'est-ce que c'était ? C' était du contenu de l'euro. Oui. Et on va juste mettre, euh, un S u R l et passer ce chemin connu ici force. Et ceci est passé sur le chemin et nous le ferons. Je pense que c'est vrai ? Non. On n'a pas besoin de l'été dernier. Le dernier point d'exclamation. Juste celui-là. Il y a donc notre lecteur de musique. Et si ça marchait ? Joueur de musique point Préparez-vous à jouer, Alex. Bien. Et, ah, lecteur
de musique. Point du lecteur de musique Nombre de boucles égal à un négatif. Nous voulions faire une boucle infiniment, puis jouer par point lecteur de musique. Ok, donc et nous allons donc si il y a un airless juste imprimer la description de débogage diffusé. Ok, Allons-y, allons le faire et voir si ça marche. Si ça marche, , on entendra que ça a du sens. C' est un test assez facile. D'ailleurs, ailleurs, si tu avais d'autres lecteurs audio, c'est là que tu le mettrais en place dans ton rôle. Tu pourrais juste les faire. D' accord. Tiens, hum, rend ça agréable et facile. On y va. Montre-moi l'argent. Euh, est-ce que ça devient assez excitant ? On ne le fait pas depuis si longtemps ou on fait quelque chose d'assez excitant. Arrêt du camp. Donc oui, très cool. Donc, nous allons juste gérer le tout-petit maintenant. Donc, les idées disons que vous appuyez sur le bouton, et si elle joue, elle l'interrompt. Et si ce n'est pas le jeu, ça commence. Donc on va faire quelque chose d'intéressant ici. Donc ce qu'on va faire, c'est que je dirai, si ah était une musique. Si le lecteur de musique point jouer ing. Donc, si elle joue était un lecteur de musique point arrêter autre lecteur de musique qui jouent maintenant. Le bouton que nous voulons faire est quand il joue, il est entièrement blanc, mais quand il ne joue pas,
c'est, hum, hum, c'est la moitié. C' est transparent et un peu moins que transparent ou moins de la moitié. Je veux dire, euh et donc plutôt que de créer une autre IBL, laissez juste pour qu'on puisse le faire. Voici quelque chose d'unique et d'intéressant. Ce qu'on peut faire, c'est dans ce centre. Puisque nous savons que le bouton appelle réellement cette fonction, nous pouvons simplement saisir une référence à juste ici et changer ici. Donc, si les lecteurs de musique jouent, arrêtons ça. Donc quand ça s'est arrêté, ça veut dire, Ah, on est évanouis donc on peut dire que le point de l'expéditeur Alfa juste là est égal à 0,2. Et quand nous voulons bien jouer, dire le point de l'expéditeur Alfa est égal à un point. Ils sont totalement opaques. Donnons ça un coup de feu et voyons si ça marche. Voilà le bouton. C' est blanc parce qu'il joue. Il est fané maintenant. Je l'ai arrêté. On
dirait que ça marche. Donc l'audio fonctionne maintenant. On a notre logo Poke Index ici. Ça commence à avoir l'air vraiment cool,
et, ah, ah, encore une fois nous sommes attrapés. Celui qui appelle ce bouton est ce qui cause quand il est pressé, il passe dans le bouton lui-même. Et donc on saisit juste ce bouton d'ici et on le change, et ça marche. Rien de mal à le faire de cette façon. Donc là, vous avez un audio, une police personnalisée, vraiment cool, et c'est tout pour cette vidéo. Continuons à pousser vers l'avant sont piquer sauf
89. App: Pokedex Partie 8 - UISearchBar, Search Filtering: Hé, tout le monde, Mark, Pricier profondeur soaps dot com et nous sommes de retour pour construire plus de decks pokey. Plutôt cool. Aujourd'hui, nous allons nous concentrer sur la recherche. Ok, Si vous vous souvenez, notre application montre actuellement une liste de Pokemon, et fondamentalement vous pouvez faire défiler la liste et regarder leurs noms
et leurs images, et il va jusqu'à un 718. Il est coiffé correctement. Cela semble vraiment bon, mais ce que nous voulons faire, c'est le rendre plus efficace. Donc, fondamentalement, quand vous cherchez, vous commencez juste à taper des lettres et commence immédiatement à filtrer les différents Pokemon . C' est ce qu'on veut dio. Laisse-moi arrêter ça ici. Muet. D' accord. Et donc, euh, vous pouviez le voir juste là. Hum et on veut commencer à taper ici. D' accord. Dans la zone de recherche. Si je commence à taper comme C h r, il trouverait n'importe quel Pokemon qui a le mot. La lettre C h r dedans et ah, excellent outil de filtrage. Rends-le utile. Alors allons-y et faisons-le. Et ce n'est pas trop mal. Donc nous savons ici dans notre planche principale, nous savons que nous avons une barre de recherche. Ok, actuellement, il n'est pas connecté à notre application. Et ce qu'on veut pour Dio, c'est ouvrir notre assistante rédactrice ici. Faites défiler vers le haut de votre contrôleur de vue et faisons un lierre pour cela. Donc bon et contrôle a traîné votre barre de recherche ici, et nous allons juste appeler cette barre de recherche. Si nous avions plus d'une barre de recherche, je pourrais lui donner un nom plus précis, mais j'ai dit que c'est le seul, c'est tout à fait bien. On vient de le connecter ici. Ça a l'air bien. Et mettons-nous des textos temporaires ici. Texte d'espace réservé. J' ouvre le côté droit et l'espace réservé. Disons juste que, euh, la
recherche de bogeymen me semble bien. Allons faire notre contrôleur de vue maintenant. Ok, alors pense au problème que nous essayons de résoudre. Alors imaginez un type de lettre utilisateur. Chaque fois qu'une frappe arrive, nous devons voir s'il y a un Pokemon qui correspond à cette lettre. Donc nous ne le ferons pas après avoir tapé tous les mots après avoir appuyé sur le mot rechercher
chaque frappe. Alors, comment faites-vous ça ? Comment savez-vous quand l'utilisateur appuie sur un donjon ce que nous avons à mettre en œuvre. Le délégué de la barre de recherche. Fondamentalement, vous définissez le délégué de la de la barre de recherche. Et fondamentalement, chaque fois que ça impressionne une clé qui va appeler ce délégué pour que nous puissions répondre en conséquence . Donc ici, à
côté de vos autres protocoles, allez-y et tapez nouveau. Je recherche le délégué loin. D' accord ? Et nous avons notre barre de recherche connectée donc ici, semblable à ce que nous avons fait avant. Allez-y et dites la barre de recherche point Délégué égal moi, parce que nous venons d'implémenter le protocole. Maintenant, on peut, euh, un signe du délégué. Et quelle méthode de délégué recherchons-nous ? Eh bien, vous pouvez réellement commander Cliquez sur votre délégué de barre de recherche ici et voir ce qui sont disponibles. D' accord. Les barres de recherche doivent commencer à modifier. Aucun texte de la barre de recherche n'a commencé à être modifié. C' est
là que ça a commencé. Maintenant devrait terminer l'édition. Non. Est-ce que l'édition a fini ? Non. Euh euh Ah. Texte de la barre de recherche. changé appelé lorsque le texte change. Je pense que c'est ce qu'on veut ici. Changement par SMS. Donc, nous avons juste regardé les méthodes du protocole. Je vais revenir en arrière, marquer en bas, et taper. Ah, barre
de recherche. Juste là. le texte a changé. Et alors que voulons-nous faire chaque fois que le texte change ? Donc d'abord, ce qu'on veut dio,
c'est j'y pense en fait ici. Alors tu as tapé une lettre, non ? Et, euh, mais on veut filtrer la liste, mais comment on fait ça ? Donc nous avons un tableau, mais nous ne voulons pas Nous ne voulons pas nous débarrasser de notre tableau principal qui a notre Pokemon il Nous ne voulons pas détruire cela. Je pense
que ce qu'il nous faut c'est un deuxième tableau,
et fondamentalement ce tableau contient juste le Pokemon filtré. Je pense
que ce qu'il nous faut c'est un deuxième tableau, Hum, donc nous pouvons chaque fois que vous êtes en mode recherche , en
gros, nous allons utiliser le deuxième tableau avec ces résultats dedans, euh, au lieu du tableau principal. Donc je pense que ce qu'il nous faut, c'est un tyran en haut, un autre ensemble de données zélé. Jusqu' à présent, on va appeler. C' est dans notre volonté de dire en mode de recherche, plus par défaut à false. Et puis créons un nouveau tableau. On va appeler ça de notre mois de pokey filtré égal, et ça va être un tableau de type Pokemon. Nous allons juste initialiser cela dans un tableau vide dès le début. Donc, nous devons détecter si nous sommes en mode de recherche et nous avons besoin d'un deuxième tableau pour stocker sont filtrés Pokemon. Ok, ça a du sens. Ok, donc ce que nous voulons faire, c'est ici dans notre changement de texte signifiait qu'il va être appelé chaque fois qu'une frappe arrive, nous allons dire si le texte de point de la barre de recherche est égal à Neil ou si le texte de point de la barre de recherche équivaut à vide. Ok, donc fondamentalement, chaque fois qu'il n'y a pas de texte dans la barre de recherche, disons qu'ils ont utilisé une pression, la touche Retour arrière. Ok, euh, donc s'ils appuient sur la touche Retour arrière et que c'est vide qu'en mode recherche sera faux, qui signifie qu'on veut revenir au maximum et ensuite on va dire, euh quoi d'autre ? C' est bon pour l'instant,
je ne veux plus être en mode recherche. C' est bon pour l'instant, je ne veux plus être en mode recherche. Et alors ça veut dire qu'on a tapé une lettre. Et donc disons que dans le mode de recherche est égal à vrai. Et vous vous demandez peut-être quels motifs de recherche pour Eh bien, je vais expliquer dans une seconde, mais fondamentalement quand votre liste est filtrée qui vend le chemin d'index fero, nous devons montrer différentes cellules basées sur les données que nous avons. Et donc ce qu'on veut dio, c'est que si une lettre a été tapée, ça veut dire qu'on est en mode recherche. Ok, on doit commencer à filtrer le Pokemon. Donc ce que je vais faire, c'est que je vais saisir le mot qui est actuellement dans le champ de texte. Donc, je vais dire que le texte de point de la barre de recherche égal inférieur était en train de prendre le texte hors de la barre de
recherche. D' accord ? Et je mets une livre ici pour le déballer parce que nous savons pour un fait qu'il y aura message ici parce que, euh, on a déjà fait ce chèque juste ici. Ce n'est pas Neil. Ce n'est pas vide. Donc, il y a définitivement du texte là-bas, et puis nous allons le faire est de le saisir et de le mettre en chaîne en minuscules. Donc, disons que quelqu'un tape dur avec un C. majuscule. Eh bien, si nous faisions une recherche basée sur Capitol contre minuscule, il pourrait ne pas tirer vers le haut la bonne. Donc, c'est juste à chaque fois, chaque fois que quelqu'un types de lettre, prenons le texte actuel et allons de l'avant et en faire une chaîne en minuscules. Et c'est ce que la base va filtrer hors de. Et le code à filtrer n'est pas si complexe ? Allons Ah, jetons un coup d'oeil tout de suite. Donc, euh bien, disons Pokemon filtré. C' est le tableau que nous avons créé, tu te souviens ? Égale au filtre de points Pokemon. Maintenant, c'est intéressant. Donc, un tableau a une fonction appelée Filter. Et ce qu'il va faire, c'est qu'il va passer par tous ces éléments, filtrer en fonction de certains critères et nous rendre un tableau qui est filtré. Cela n'a que les choses que nous voulons. Et alors, comment cela fonctionne-t-il ? Eh bien, je vais vous montrer. Je vais me débarrasser de tout ce qu'il y a là-dedans. Et ce qu'on va faire,
c'est mettre ces accolades. C' est une syntaxe de fermeture. Ok, ce qu'on va faire, c'est dire dollar signe zéro. Ok, c'est une mignonne. C' est une chose importante juste là. Des signes de dollar. Zéro. Ce que ça veut dire
,
c'est , qu'on va prendre le premier. Donc ce qu'il va faire, c'est qu'il va attraper un élément, et ça va lui donner un nom de zéro. C' est un peu déroutant, mais sachez que les signes du dollar. Zéro signifie qu'il saisit un élément de ce tableau, alors prétendre qu'il le saisit et le met dans une variable. Donc, nous allons dire nom de point Donc fait semblant d'objet Pokemon parce que c'est ce qu'il est. Donc zéro signifie Hey, vérifions cet objet Pokemon et saisissons son nom, propriété, ce qu'on va faire C'est une série de cordes. Lower n'est pas égal à Neil. Ok, donc ce que ça dit ici, c'est de passer par le tableau. Fondamentalement, ça va traverser toute la polka modérée, et ça va faire ça pour chaque sondage. Allez, allons-y. D' accord. Ce que ça va dio, c'est qu'il va en sortir un élément. Un objet Pokemon et le signe du dollar zéro. Ça veut dire haine. Ah, c'est l'objet que nous saisissons. Juste faire semblant que ce zéro est le même que de faire ce var certains Pokemon est égal , vous savez, Pope, vous connaissez Pokemon, vous savez, 24 23 attraper l'objet. Fais semblant que ce signe dollar zéro ici est la même chose que de faire quelque chose de similaire à ce où vous attrapez et mettez en variable où zéro est la variable. Ok, et ce qu'on va dire c'est prendre le nom et voyons s'il y a une chaîne et une plage de cordes. OK, c'est une fonction de la classe de chaîne. Et ce qu'il fait, c'est qu'il le
trouve ici, trouve et renvoie la plage de la première occurrence d'une chaîne donnée dans une plage donnée de la chaîne. Donc ce que ça veut dire,
c'est de
passer un mot et je vais vérifier cette chaîne et voir si le mot existe. Donc, disons que le mot était Charles ARD et qu'on a tapé en Z un R D. Il va passer par. Et cela Disons cela, dit Zh déjà. Ça va passer par tous les mots, tous les noms et voir si ce nom contient Zrt et tous ceux qui l'ont fait se retrouveraient . Donc, tout ce que nous faisons est de vérifier et de voir si en voyant si elle existe dans la chaîne, nous le faisons pour chaque, puis ce que nous disons n'est pas égal à agenouiller. Donc les plages chaîne. Ok, ça va rendre une portée juste ici. Et si c'est un clou, si c'est vide. Ça veut dire qu'il n'a pas pu le trouver. Mais si ce n'est pas vide, ça veut dire
qu'il a trouvé quelque chose avec ce mot dedans. Donc tout ce que nous faisons ici, ok, c'est que nous filtrons le tableau par son nom, veillant à ce que le nom contienne tout ce que l'utilisateur a tapé. Et si ce n'est pas
Neil, ça va l'ajouter à ce taux de filtre, et ensuite ça va le mettre ici dans Pokemon filtré. Et maintenant, nous avons notre liste filtrée que nous pouvons utiliser. C' est plutôt cool. J' espère que ce n'est pas trop déroutant pour toi. S' il ne sait pas comment l'utiliser,
c' est bon. Sachez juste que votre filtre, il faut une expression passaient dans une expression de fermeture, ce
qui signifie que cela va être exécuté à nouveau pour chaque élément qui dans Polk, Amanda Filter. Et si le if, quel que soit le mot que l'utilisateur a tapé ici que nous avons saisi de la partie de recherche. Si ce mot que nous saisissons sur ce Pokemon spécifique est dans son nom, ce n'est pas égal à clou. Ça va l'ajouter à notre tableau de Pokemon filtré. Et puis,
euh, on a une liste, et en gros, chaque fois qu'on tape, ça va tourner ça et ça va la filtrer. Et il est construit pour être très efficace et rapide. Nous aurions pu faire ça avec une boucle quatre et vérifier nous-mêmes, vous savez, passer par chaque chose. Et si c'est que les mots ici, mais ce serait très inefficace. Et cette fonction de filtre est écrite pour être, euh, efficace. Donc la prochaine fois qu'on voudra Dio, c'est après avoir eu un, um après avoir filtré la liste des Pokemon, ce qu'on veut faire, c'est rafraîchir notre vue de collection, ok ? Et vous le faites en faisant une collecte qui recharge les données. Donc, fondamentalement, chaque fois que vous appelez des données de rechargement sur une vue de collection ou une table de vous, cela va essentiellement actualiser la liste entière et récupérer tout de votre source de données nouveau. Et en
ce moment, nous saisissons les données de notre liste principale de Pokemon, donc ça ne va rien faire. Donc, ce que nous devons faire, c'est si nous sommes en mode recherche, nous devons réellement l'extraire de l'autre liste de la liste filtrée. Donc on va le faire ici. Donc fondamentalement, euh, voici notre cellule, et nous le saisissons du chemin d'index cette ligne et remarquez comment ? Juste ici. On dit de l'attraper à Pokemon. Ok, eh bien, tout ce qu'on a à faire, c'est de prendre une autre liste. Et Ah, donc ce qu'on veut faire, c'est qu'on peut couper cette commande X, et je vais dire Pokemon de type pokey, et on va mettre une valeur dessus. Et puis on va dire si on est en mode recherche, alors si on est en mode recherche, faites-le ça. Sinon faire cela dira jusqu'à ce dos poky égal à piquer un. Donc si nous ne sommes pas en mode recherche, faites ce que nous faisions avant. Prends-le de la liste régulière. Sinon, pokey est égal au chemin d'index Pokemon filtré point ro. Donc, si nous sommes en mode recherche, saisissez-le de la liste filtrée. Si ce n'est pas le cas, saisissez-le de la liste régulière, puis allez-y et configurez la cellule. Ça a l'air bien. Encore une chose qui mène à faire, je pense que c'est juste ici. Nombre d'éléments dans la section Vous ne devriez jamais coeur co cela Il devrait toujours y avoir dynamique. Donc ce que nous aurions dû faire est en fait dit le nombre de points Pokemon. C' est le nombre d'articles que nous voulons. On va changer ça, non ? On va devoir faire la même chose ici. Si en mode de recherche, retourner le nombre de points de Pokemon filtré Il a besoin de savoir combien d'éléments passer par si nous ne
allons pas mordre les plantages parce que nous allons dépasser les limites sinon, en fait, ne même pas faire dans autre. Parce qu'une fois qu'on appellera le retour ici, ça finira, et ça ne sera jamais appelé. Donc tu pourrais juste laisser ça dehors comme ça. Donc, en mode de recherche retourné le nombre de Pokemon filtré. Si nous ne sommes pas en mode de recherche, renvoyez le, um, le nombre normal de Pokemon. Y
a-t-il autre chose que nous voulons faire ici ? Hum, Segel ? Ecoute, je ne sais pas. Donnons-lui un coup de feu. Qu' en pensez-vous ? En utilisant mes étudiants et règle après. Comme quoi ? Tu as oublié quelque chose. Semi côlon. Peu importe. Tu as un problème. Tu ne peux pas me le dire parce que je parle à un écran qui me parle. Fou, hein ? Éteignez cette musique. Bon, alors voyons si ça a marché. Je vais taper en C h a r. backspace. Je pense que ça marche. Qu' est-ce que tu en penses, Meu ? C' est quoi un autre ? Nous allons juste avoir quelque chose un Z z e z a z o. il semble que ça fonctionne trop occupé. Oh, ici, Ezio. Ici. Il y a un zéro juste là. Zio, je pense que nos codes fonctionnent. Ce n'était pas si mal. Et regarde comme c'est rapide. N' est-ce pas rapide ? Creusez très cool. Je pense que cela fonctionne maintenant dans une application normale, lorsque vous cliquez sur le lorsque vous cliquez sur lorsque vous cliquez sur lorsque vous n'êtes pas une application normale , lorsque vous construisez sur un téléphone, les mots clés vont apparaître. Il n'apparaît pas sur mon simulateur, alors parlons de ça ici. Donc clavier et allons-y et, hum, allumez-le ici. Alors voici une question. Si je tape quelque chose ici, comment puis-je me débarrasser du clavier ? Ça ne disparaîtra pas, et c'est un très gros problème, parce que vos utilisateurs ne voudront pas ça. Donc, nous avons un problème ici que nous devons résoudre. En outre, vous savez quand bien, je pense que nous sommes en train de résoudre ce problème lorsque vous supprimez le texte. S' il est vide, nous détections ce texto,
donc je pense que ce que nous devons faire est de faire disparaître ce clavier chaque fois que le bouton de recherche est pressé ou chaque fois que la petite pression excessive quand vous commencez à taper juste là. Alors allons-y et faisons-le. Ça ne devrait pas être trop gros. Ce qu'on va faire, c'est
te voir ici. On va juste dire, ,
euh si,
euh, si c'est vide, allons-y et épargnons la force de montage de points, elle va forcer la fermeture. Donc, en gros, nous disons juste, Hey, chaque
fois que c'est vide , quand tous les personnages sont partis,
allons-y et l'édition aussi, nous avons oublié de recharger notre collection voir ici parce que chaque fois que vous en supprimez un, nous avons également besoin que Teoh recharge les données afin que nous puissions voir les résultats mis à jour. J' ai oublié de dire qu'ils sont tellement, ce qu'on veut dire, c'est que chaque fois que vous avez supprimé tout le texte, ok, éteignez le fossé de recherche, fermez le clavier, et, euh, puis allez-y et rechargez les données. Et puis, euh, il y a encore une chose que je veux faire. Et c'est une autre fonction déléguée, et ça s'appelle barre de recherche. Bouton de recherche cliqué. Alors voyez, par ici, ce bouton de recherche. D' accord. Tout ce qu'on veut faire, c'est changer ça pour, euh, orteil, en fait, juste cacher le clavier, ok ? Et
voilà, on va dire vrai et ça me semble bien. Que voulons-nous faire d'autre ici ? Je sais,
je sais. Je sais, Nous ne voulons pas dire recherche parce que nous sommes déjà à la recherche. Je pense que c'est un peu redondant. Alors passons à notre point de vue. a chargé et nous allons faire une chose de plus ou juste un type de clé de retour de la barre de recherche de point est égal à vous. Je retourne le type de clé point fait. Donc,
au lieu de dire la recherche ,
nous allons juste ,
euh, ,
euh,faisons en sorte qu'il cache juste le clavier. Donc tout ce que nous avons entendu, c'est ,
hey, quand étaient quand quand vous cliquez sur le bouton de recherche ou sur le bouton terminé, fermons le clavier. Et aussi, chaque fois que vous supprimez tous les caractères, allons de l'avant et dissimulons le clavier et rechargeons les données, donc je vais l'arrêter et le rejouer ici. Éteignez ça et donnons-lui un coup de feu. Donc je vais taper du char. Supprimons tous les caractères et le clavier disparaît. À quel point ça fait cool ? Tous les claviers de caractères disparaissent. C' est une petite chose qui ajoute juste de la valeur à une application. Remarquez comment c'est fait maintenant je peux cliquer dessus et ils sont partis. Je peux cliquer sur ces trucs bien, vraiment cool. Les gars et les filles recherchent le filtrage. Et ce sont ces petites choses qui comptent une application. Vous auriez pu simplement jeter une application sur le magasin APP sans la fonction de recherche. Je ne sais pas comment le faire,
peu importe,
mais ce n'était pas si dur. Je ne sais pas comment le faire,
peu importe, peu importe, Un peu d'amour va beaucoup. Il y a donc un filtrage de recherche. On n'a pas sauté quelques endroits dans le code ici. Alors faites une vidéo de posit et repassez à travers jusqu'à ce que vous obteniez tout ça. Mais fondamentalement tout ce que nous avons fait était d'implémenter un filtre un nouveau tableau qui contient les données de filtre. Nous filtrons comme nous tapons les lettres que nous avons dû faire le délégué de changement de texte pour détecter dans lettres d'être tapé, et nous saisissons le texte du champ de texte. Et puis chaque fois que nous nous débarrassons de tout le texte, nous cachons le clavier et nous cachons aussi le clavier. Lorsque la vue est terminée en éditant des choses assez cool. Notre application est vraiment en train de se réunir. Et je pense que tout ce dont nous avons vraiment besoin sur cet écran est fait. Tout ce que nous devons faire est d'implémenter en cliquant dessus pour aller dans l'écran de détails, puis nous allons travailler dessus. Donc, c'est un film pour cette vidéo qui progresse. À la prochaine fois.
90. App: Pokedex Partie 9 - Contrôleur de vues aux détails et Segue: Hé, tout le monde, Mark Price ici, Deb pentes point com et nous faisons de grands progrès sur notre poke, sauf quand
vous ouvrez votre projet ici. Jusqu' à présent, nous avons une liste défilante de Pokemon, leurs noms, des images superbes. Vous pouvez les chercher des trucs vraiment géniaux. Nous pourrions, en fait, probablement simplement soumettre l'application telle qu'elle est. Mais il y a plus à faire. Et la partie suivante et la partie finale de cette application est de construire l'écran de détails, ce qui va être un peu de travail. Euh, mais, euh, nécessaire et très important. Très cool. Tu vas apprendre beaucoup. Allons-y et faisons bouger les choses. Alors allez à votre storyboard principal. Ce qu'on va faire, c'est ouvrir le côté droit ici, faire défiler ici. C' est déjà là. En fait, contrôleur de
vue, on va faire glisser un nouveau contrôleur de vue sur notre storyboard. Déplace-le ici. Parfait. Et ce qu'on va dio c'est, euh, prendre notre petite cellule ici. Notre cellule de vue de collection. On y va. Attrapez-le là, assurez-vous que les cellules sélectionnées ici à gauche à l'intérieur et tout ce que nous allons dio va prendre et contrôler traîner jusqu'à l'autre contrôleur de vue, et nous allons dire « show ok ». Et allez-y et cliquez sur le Segway juste ici. Et l'identifiant. Allons-y et changeons-le en, euh, détail
Pokemon. Vc. Ok, on
y va. En fait, mettons un P majuscule là-dessus. On va appeler notre contrôleur de vue. On va faire exactement la même chose. Alors Pokemon détail V c. On va le pousser. Ça a l'air génial. Ok,
ça a l'air très bien. Ok, ça air bien. Alors allons de l'avant et créons le contrôleur de vue. Rappelez-vous, ces contrôleurs de vue ont tous besoin d'un code attaché à eux. ce moment. C' est juste flottant. Donc, sans code, alors allez à votre manette ici. Votre dossier. droite. Cliquez sur ce nouveau fichier et allez-y et faites la classe de touche Coco, et je vais l'appeler Pokemon détail V c. et il va hériter de vous. Je vois le contrôleur. Ah, ça ajoute toujours de la ferraille là-bas. D' accord. Et, euh, ça a l'air bien. Cliquez sur Suivant et enregistrez-le ici. Et il l'a chargé pour nous et l'école dans notre storyboard. Cliquez dessus. Le contrôleur de vue ici, OK ? Et puis cliquez sur la petite zone rectangle et changez ceci pour votre nouveau détail Pokemon. Contrôleur de vue. Très cool. Donc on a le Segway. On a le contrôleur de vue. Il se connecte. Ça marche. Donnons à ça une couleur de fond temporaire pour nous assurer que ça fonctionnera comme nous en avons besoin quand nous, euh nous passons. Et c'est pour ça qu'on a fait ce Segway. Cela se produit lorsque cette cellule est sélectionnée ici. C' est cool. Alors allez à votre contrôleur de vue et nous avons juste besoin de le déclencher. C' est tout. Juste nécessaire. Déclenchez-le. Donc, allez dans une recherche pour Da sélectionné leur chemin d'index de l'élément sélectionné. Si vous n'avez pas mis cette fonction, allez-y et faites-le maintenant. C' est l'une des fonctions déléguées des méthodes. Et ce que nous allons dio c'est quand un article est tapé, nous allons juste attraper cet objet, et nous allons le passer à nos nouvelles vues de détails afin de savoir sur quel Pokemon a cliqué . Donc, euh, similaire à avant que nous ayons deux listes différentes sur l'élément pourrait être sélectionné dans le
tableau filtré . Il peut également être sélectionné dans la course régulière. On doit rendre compte de ça, alors quoi ? Nous allons dio dire, si en mode recherche, allons de l'avant et juste au-dessus ici. En fait, créons notre Pokemon comme avant. Jusqu' à présent, Pokey est égal à Pokemon. Et donc si nous sommes en mode de recherche, poky est égal et nous dirons un Pokemon filtré dans le prochain chemin dot ro, prenons n'importe quelle ligne actuelle et attrapons le Pokemon pour cela. Et rappelez-vous, ce que nous faisons ici, c'est une course aux impôts et vous mettez l'indexation ici pour extraire un élément d'un tableau. Et le point ro du chemin d'index vous donnera toujours cette cellule spécifique qui a été tapé sur l' emplacement
exact de celui-ci. Et donc l'emplacement, les nombres des cellules sont une correspondance exacte avec les nombres d'éléments dans ce tableau . C' est pourquoi cela fonctionne comme ça, parce qu'ils sont exactement la même quantité d'éléments d'autre. Tu es comme tu nous l'as déjà dit, c'est 100 fois. Ouais, eh bien, c'est ça pourrait être un concept rude de comprendre comment ça marche. Alors, d'accord, Pokey. Et ça va venir du chemin normal de l'index Pokemon List dot ro et encore ça vient d'un pair. D' accord ? Et donc si c'est en mode recherche, attrape-le du sol. Le ballon. Allez. Ça a été tapé dans cette recherche dans le filtre de Ray. Sinon, prenez le Pokemon qui a été tapé sur de la droite régulière. Et puis tout ce qu'on va dio c'est un,
euh, qu'est-ce que c'est ? Une jolie paire de cadeau. Préparez-vous pour Segway. C' est là. D' accord. Et en
fait, fait, assure-toi
juste que j'ai tout ce dont on a besoin ici et
non, pas prépare-toi. Moi idiot. Euh, jouez là. Vous effectuez Segway et bon rythme. Votre identité là-dedans, elle fouille les détails. V. C. C'est ce qu'on appelle ça. Et l'objet que nous allons envoyer est l'objet pokey. Changez-le en let puisque nous ne le modifions pas. Donc d'accord, ce qui s'est passé, c'est qu'on a cliqué sur une vente, et maintenant on dit, Hey, c'est Segway qu'on a connecté. J' ai une collection de vous vendre avec dans le storyboard que quand ça arrive, quand quelqu'un tape dessus, allons de l'avant et charger ce Segway et passons dans le Pokemon, OK ? Et si vous vous souvenez qu'il y a une autre étape, nous devons dio ,
ça va le charger, mais nous n'avons toujours pas de moyen d'amener ce Pokemon à notre nouveau contrôleur de vue. Et aussi, nous n'avons même pas encore stocké ce Pokemon dans ce contrôle de vue. Alors allez-y et cliquez sur Pokemon détail V. C. Et juste ici en haut. Allez-y et mettez les objets Pokemon. C' est comme ce point d'exclamation. On aura un Pokemon. Nous ne pouvons pas vraiment utiliser cet écran sans Pokemon, donc il aura gagné à coup sûr. Et ce qu'on va faire, c'est qu'on va descendre à C'est parti. Je l'ai effacé. Allez-y et allez au fond et taper. Préparez-vous là, Préparez-vous pour le Segway. Et ce qui va négocier dira si Segway pas identifier l'air égal. Donc si ça équivaut à la fin de l'air d'identification pour ça, euh, on va à l'écran des détails, ce qui le fera, parce que c'est le seul de toute façon. Ok, si ça équivaut à ça, alors on doit prendre le contrôleur de vue. Ok, donc si nous allons juste l'appeler détails V C égale Segway, le contrôleur de vue de destination comme Pokemon détails BC. Donc ce qu'on fait, c'est qu'on dit, Hey, si c'est le Segway qui est chargé avec ça. Identifiez l'air. Ok, alors allons de l'avant et attrapons le contrôleur de vue de destination. Donc c'est maintenant qu'il a déjà été créé. Ok, c'est en mémoire maintenant, alors ça va l'attraper. Souviens-toi, c'est juste de type. Vous avez votre contrôleur. C' est ce qu'il nous envoie. Mais on sait que c'est vraiment le piquer. Détails V. C. Et puisque Pokemon détail V. C hérite de votre contrôleur de vue, nous allons réussir à le lancer aussi populaire en détail. VC. C' est pour ça que nous faisons la lumière ici parce qu'elle nous revient, pas Pokemon détail V. C. Mais ça nous rend le contrôleur Vous avez vous, que nous devons jeter dans notre sous-classe et ensuite, ah, dis
bien si pokey est égal à l'expéditeur comme Pokemon. Rappelez-vous comment juste au-dessus quand on a dit,
euh, euh, nous avons dit que Segway présentait Segway. Ok, on a passé l'objet Pokemon en tant que centre, donc on doit l'enlever maintenant. Et bien sûr, c'est n'importe quel objet. Ce n'est pas un objet Pokemon, donc nous avons un casting ceci aussi bien que nous savons que c'est l'objet que nous cherchons, parce que nous venons de le mettre là, et donc nous devons le lancer, alors nous l'attrapons là. Ensuite, nous disons juste les détails V C que Pokemon est égal pokey. Ok, donc encore une fois, récapituler si c'est le Segway utilisait pour passer de l'écran à cet écran. Super. Allons-y. Prenons le contrôleur de vue que nous allons aller à Jetons le lancer à la
classe Pokemon Pokey dire BC Ensuite, euh, nous saisissons l'objet Pokey qui était passé comme le centre et puis nous le bourrons ici dans notre détail Pokemon, V c. Et si vous vous souvenez, vrai, nous avons mis ça juste là. Donc ça va maintenant tenir ça,
et ça arrivera avant que la vue ne le fasse. Load est appelé afin que nous puissions utiliser la charge visualisée, et ces données seront disponibles pour nous. Et, euh donc nous le passons. Ça a l'air génial. Et juste pour être sûr que ça marche, revenons à notre storyboard. Et par ici, faisons simplement glisser une étiquette dessus. Ok, eh bien, étiquette de
dragon et on va y mettre le nom des Pokemons ici. Je vais le centrer. Et c'est juste pour les tests. Je fais ce genre de trucs tout le temps dans mes tests. Je veux juste m'assurer que les choses fonctionnent. Je vais lui donner une largeur et une hauteur fixes. Et ce que je vais faire, c'est ouvrir l'éditeur assistant ici. Et je vais le draguer de l'étiquette juste ici. Et on va juste appeler ce label et,
euh, euh, fermer l'assistant rédacteur en chef. Retournez à mon code détaillé Pokemon ici. Non, pas celle-là. Le contrôleur de vue. Et juste un double contrôle. Tout a l'air bien. Et c'est le cas. Donc d'accord, alors Pokemon détail de votre contrôleur ici maintenant. Et ce que nous allons faire est en vue. Il a chargé. Nous allons dire que le texte de l'étiquette du nom du point est égal au nom du point Pokemon. Maintenant, nous avons passé l'objet Pokemon du Segway à travers le Segway. Et si cela fonctionne,
ce que nous devrions voir est tout ce que nous tapons sur Pokemon, il devrait être sur l'écran. Ok, donc je vais aller de l'avant et l'exécuter ici. J' espère que je n'ai rien raté. C' est possible. Je ne suis qu'un humain. Je sais que ça peut être parfait. Je sais que tu m'aimeras beaucoup, mais peut-être parfait. Donc, nous y voilà. Si je clique sur les jouets de explosion, et qu'on a eu un accident, alors le nom du point Pokemon est vide. Ok, donc ce que je pense, c'est qu'on retourne ici, alors assurons qu'on arrive d'abord. C' est de retour dans notre contrôleur de vue. Ok, donc on a un accident. Ok, éteignons la musique et sélectionne le total de la guerre. Et regarde ça. Um, c'est intéressant. Donc vu ça. Load est appelé soit avant que cela soit appelé, soit, um ou nous avons un problème ici. Faisons quelques choses ici. Voyons si on arrive ici. Tout, voyez, si nous arrivons ici, si nous arrivons ici, tout
recommence. Ok, donc c'est en cours d'exécution. C' est en cours d'exécution et on arrive ici. D' accord. Expéditeur comme Pokemon. Ah, OK. Il y a donc le problème. Ce code n'est jamais appelé ici. Donc, si pokey expéditeur égal comme Pokemon Donc nous avons un problème ici. L' expéditeur est Ah, c'est l'abattage. On dirait que ça échoue sur nous. Il n'y arrivera jamais. Essayons encore une fois juste pour être sûrs. Ouais, on n'entrera jamais dans ce bloc là. Voyons où est notre problème. C' est un bon problème à comprendre ensemble. Donc, si les détails V c égale le contrôle de destination Segway, nous savons que cela fonctionne il dirait si pokey est égal à l'expéditeur comme Pokemon. Mais le centre a un problème. Alors passons à notre préparation ou à la présentation de Segway. Où est-il effectué Segway avec identifier l'air. Tellement hokey. Ok, filtré Pokemon dans le chemin suivant. Cette rangée. Allons-y ici et voyons quel pokey ? Allons-y en imprimé. Eh bien, dis le nom du point pokey. Voyez ce qui se passe là-bas avant qu'il ne joue le Segway. Intéressant. OK, il a aussi sélectionné des éléments. Le chemin d'index n'est même pas appelé. Et je pense que je sais peut-être quel est le problème. Je sais peut-être quels sont les problèmes. Revenons au storboard ici, et je vais supprimer ce Segway pour un instant. Je veux dire, je vais supprimer ce Segway, et ce qu'on va faire, c'est au lieu de le faire glisser de notre cellule ici, c'est Dragon du contrôleur de vue lui-même. D' accord. Euh, pas celle-là. Voyons voir, nous voulons là ce contrôleur de vue ici, faisons-le glisser ici et montrons. D' accord ? Et donnons notre Segway et identifions l'air parfait. Donc ce que je vais faire, c'est plutôt que de le faire à partir de la cellule,
faisons-le juste à partir de ah, à partir du contrôleur de vue réel lui-même. Parce que je pense que ce qui se passait, c'est depuis qu'on l'a fait pour Mark Button. D' accord ? Il le déclenchait à partir du contrôle de vue ou non de notre code. Donc, cela a fait sélectionner le code n'a même jamais été appelé. On l'appelait en premier. Donc ce que nous disons maintenant, c'est ,
hey, donnons-lui un Segway générique non lié à un bouton, et nous l'appellerons manuellement quand nous serons prêts à l'appeler. Allons-y et donnons un coup de feu ici. Hé, c'est
là. Ok, donc tu vois quel était le problème ? Donc l'idée que nous avions prévu de faire est que vous cliquez sur un élément ici, il a sélectionné des éléments, chemin d'
index, puis il va charger le Segway. Eh bien, puisque dans notre storyboard, nous attachons le Segway directement de la cellule. Rappelez-vous comment dans une vidéo précédente, j'ai mentionné que si vous connectez Segways à partir de boutons dans votre storboard. Ça ne parlera pas à ton code. C' est
ce qui s'est passé. Il n'a pas parlé au manteau, donc il a commencé à faire la transition avant même que nous choisissions un article. Ce code n'a jamais été appelé. Donc notre objet Pokemon était vide parce que le froid n'a jamais été appelé. Alors j'ai déconnecté ce Segway. J' ai fait un Segway générique juste à partir du contrôleur de vue lui-même, disant, Hey, ce contrôleur de vue va à celui-là, pas à partir de l'u I et puis ici Interview Control. On est manuellement. Nous le faisons ici, et c'est important parce que nous devons transmettre des données. Donc c'est le cas. Il fonctionne maintenant. Donc, la seule chose que nous avons changé était de changer d'où venait le Segway, pas le mais en lui-même, mais du contrôleur de vue. Nous sommes donc en train de basculer. Ça a l'air plutôt bien. J' ai sélectionné. Vous remarquez comment les charters ne sont pas là ? Cela signifie que notre code est passé. Comme un gars de plus pour en être sûr. Trouvons quelqu'un d'autre ici, vous
glamour et bien sûr, ça passe et ça marche. D' accord, les gars et les filles, vous venez de voir quelque chose de cool. Nous réparons le problème. Problème très commun, en fait. C' est bon pour vous de voir qu'on a fait beaucoup de choses ici. transition vers l'autre Segway n'a pas sélectionné les articles, usure du chemin
indexé, comptabilisation de quoi ? Vous avez dormi dans un Pokemon dans le filtre à rayons. Si vous avez choisi un pape est venu dans le tableau régulier. Et nous faisons des progrès ici. Allons de l'avant et appelons cette vidéo terminée et passons à la suivante.
91. App: Pokedex partie 10 - UIStackView et contrôleur de vues: Hé, tout le monde, allons de l'avant et continuons à construire notre application pokey decks. Et ce que nous voulons faire est de construire notre écran de détail au moins la mise en page pour cela. Allons y aller. On va t'utiliser. J' empile vue. Ça va être génial. Et j'ai évidemment construit cette pomme prête. Et donc ce que je ne vais pas faire, c'est que je ne vais pas juste aller à ce, euh, ce storyboard ici et je ne vais pas juste mettre tous les réglages parfaitement et dire, OK, c'est comme ça
que tu as fait. Vous allez me voir faire un procès à l'antenne ici,
comme, euh , , que nous traversons ça pour que vous puissiez voir qu'il y a différentes façons de le faire. J' ai besoin que vous compreniez comment faire ces choses et jouer avec les choses, parce que juste parce que je dis faire X, y et Z ne signifie pas que vous devriez le faire dans chaque application. Vous devez voir ce que les différents paramètres et options dio. Je suis aussi c'est un excellent moyen pour vous d'apprendre et de maîtriser les neuf vues de pile américaines de l'Iowa. Je les apprends toujours. Il vient juste de sortir. Je ne peux pas être un maître Adams. Donc je dois continuer à jouer autour des choses à tester les choses. Alors essayons simplement ensemble, construisons ça et rendons ça vraiment agréable. Et vous voyez toutes les différentes options qui sont à votre disposition. Et peut-être que ce que je fais ici n'est pas ce que vous voulez faire avec votre application. Jouez avec. Tellement cool. Je vais garder cette étiquette là. Vraiment ? Pour l'instant, ce que je vais faire, en fait, c'est que
nous faisons la barre supérieure, et je vais juste en faire exactement la même taille que celle de l'autre. Donc je vais le copier. Je l'ai juste fait. Commandement, vous voyez ? Cliquez ici et collez-le. Ok, je suis une traînée vers le haut, OK ? Et débarrassons-nous du bouton. Je n'ai pas besoin de ça. Et nous n'avons pas besoin de ce titre parce que, euh, on va mettre le nom là, en fait, donc je vais voir notre étiquette ici. Je vais supprimer les contraintes, OK. Et puis je vais juste le traîner ici dans le conteneur, et ça me semble bien. Un peu plus gros, et peut-être bien, je le concentre juste là. Ce que je vais faire, c'est faire ça Cliquer à nouveau. J' y ai perdu. Je vais changer la police, Teoh Helvetica nouveau. Et ça a l'air bien. En plus de 22, j'aime ça, mais pour le rendre blanc, accord. Et mettons un nom là juste pour voir à quoi ça ressemble. Charters dur. D' accord, certains d'entre eux sont probablement un peu plus longs les noms, donc je vais le mettre juste là, et j'aime ça. Alors définissons quelques contraintes pour cela. Je vais dire horizontalement et verticalement dans le conteneur et allons de l'avant et juste lui donner une largeur et une hauteur. C' est réparé. Bien. Allons-y et débarrassons-nous de ce vert laid qui afflige notre écran. Au fait, je ne suis pas responsable si vous obtenez des crises en regardant ces couleurs laides et vives sur l'écran. Donc tu sais ce que disent ces paquets sur les jeux vidéo ? Éloignez-vous après 15 minutes d'avion pour ne pas avoir de crise. Je suppose que je devrais probablement avoir des disclaimers sur ces s. Oh, on
y va. Blanc et rouge. air bien. Alors, qu'est-ce qu'on veut faire ? Eh bien, si vous vous souvenez de mon écran de description. On a une description de l'image, quelques champs différents là-bas. Il y a un retour et allons-y et faisons-le. Allons chercher l'épine dorsale ici. Je vais cliquer sur le dossier Assets et je vais aller sur mon bureau ici et là. Il suffit de le glisser vers le haut. Je vous fournit cette ressource ici. Donc, il est là. Vous voyez juste là. Retourne à ton storboard et allons-y. Et ah, qui quantifient réellement la commande Z Teoh, rendez-moi mon bouton maintenant. J' aurais dû le faire. Attendez. Retourne au futur. On y va. Ce n'est qu'un nouveau bouton sur trop de travail. Très bien, prenez un mais sur le côté gauche, débarrassez-vous du texte. Et changeons l'image à ce qu'elle s'appelait ? Bonté de retour. On y va. Il est là. Je maintiens le décalage vers l'intérieur et je l'échelonne vers l'intérieur. Et voilà notre bouton il y a. Pas trop mal. Et nous allons de l'avant et lui donner un fixe avec et je viens de cliquer sur le bouton de broche dépendante ici, Ok, largeur
fixe et hauteur. Et avec, euh, nous allons encore faire cuire ce bouton et faire, ah, à
gauche et en bas. Pourquoi pas ? Ok,
ça ne va nulle part. Ça a l'air bien. Donc ça a l'air bien. On y arrive maintenant. Nous avions à notre image, nous avions un contrôle de segment que celui pour la biographie, le bio One pour les mouvements dans nos petites démonstrations vidéo ici. On ne va pas construire les mouvements. Tu vas faire ça tout seul, et tu vas faire d'autres choses aussi. Cette polka decks sur votre propre aussi. Mais je vais aller de l'avant et mettre le U Y pour ça parce que ça a l'air plus agréable. Alors voici notre segment à contrôler. Et maintenant, nous devons commencer à penser en termes d'une vue de pile. Ok, parce que toutes ces choses doivent être empilées pour toi. Typiquement, quand vous avez des choses qui sont comme s'aligner ici et qu'ils doivent aller sur les coins de l' écran comme ça, comme une tête ou quelque chose, vous n'utilisez probablement pas la pile de U. S. Donc c'est bleu en ce moment. Le contrôle de segment. Changeons la tente ici en rouge. D' accord. Et, euh, dit un premier et deuxième juste double-cliquez ici et vous les gars une bio et double-cliquez sur
celui-ci et dire bouge. Ok, au fait, j'ai été le commandement tout au long de mon projet pour le sauver. Donc, si cela se bloque et l'ex code Beta s'est un peu écrasé, vous l'avez peut-être expérimenté vous-même. Assurez-vous que votre commande plus s en même temps beaucoup. Projet Sauveur beaucoup. Ok, donc on a ça. On a besoin de l'image maintenant, donc ça est mis en image ici, et je vais en faire un joli petit carré. En fait, c'est près de dire 200 par 200. C' est trop grand du squelette qui tient le quart, mais juste là. Et nous avons besoin d'une description juste sur le personnage sur la description du mois pokey. Qu' est-ce que je pense ? Étiquette sur une étiquette ici, OK, je vais juste la mettre juste là. Ce que je vais faire, c'est faire en sorte qu'il soit juste grand comme l'image. Toi, je vais le traîner ici. Je vais lui donner 10 lignes. Ce qui signifie qu'il pourrait aller 10 lignes de long, ce qui est très bien. Je ne pouvais pas changer votre combat pour Helvetica nouveau ou si vous aimez le téléphone système, c'est bon. c' est votre application. Je ne vais pas se plaindre. Taille 15. Ça a l'air bien. Ok, a laissé la ligne. C' est très bien. Donc nous avons ces deux objets là. Allons-y et faisons encore quelques choses. Mettons le reste de nos champs à l'écran. Donc celui-ci va être lu, et je vais changer la police ici aussi. Helvetica nouveau système pour personnaliser Helvetica nouveau. Et ça va être audacieux parce que ça va être comme un label de description. Je vais appeler ce type. Ce que nous allons faire, c'est que nous allons copier et coller ceci quelques fois. Donc, euh, commande C commande V. Il y a notre genre, et je vais le jeter ici. On met la défense. C' est un autre dont nous avions besoin. D' accord. Et faisons-le encore quelques fois pour la hauteur, index
Poke, I D attendre et attaque de base. Donc celui-ci va être en hauteur, et ça a l'air bien. Je peux en fait diminuer la taille 2 12 Mettez une ligne de séparation ici en une minute, rendre un peu plus petit. Copiez et collez-le. C commande V. Vous pouvez également faire la commande d pour dupliquer Say, attendez et cela a l'air bien. Jolie juste là. Je n'appelle pas ces deux. Maintenant, venez voir le commandement soit traînez-le ici et je suis en train de aligner génériquement les choses. Quand je les mettrai dans la pile pour toi, ça va bouger les choses. Donc, Hokey decks j'ai d le numéro du Pokemon, puis l'attaque de base. Donc il y a mes six champs là-bas et on se rapproche. Mettons notre ligne de démarcation ici. Donc je vais vous faire vivre,
vous et moi allons faire cette couleur pour être ici. Je vais le faire comme gris. Ce n'est pas un gris clair. Wow. Allons-y et faisons-le vraiment comme gris. Vous pouvez choisir votre propre couleur. J' en ai déjà un par ici. Celle-là, c'est bien. D' accord ? Et je vais faire ce pixel de haut. La hauteur est celle qui a l'air bien, en fait, avant que je le fasse, traînons tout le chemin de l'autre côté et nous ferons la même chose là-bas. Et maintenant, faisons-en un si haut. D' accord ? Comme ça. Et puis faisons une autre vue cette fois. Il nous faut une petite barre rouge qui va traverser tout l'écran. Ça va montrer les évolutions. D' accord. Et changeons ceci pour lire. On y va. Un peu plus petit. Ça a l'air bien. Mettez-le juste là. Ça a l'air bien. Ça a besoin d'une étiquette dessus. Copiez et collez ce type ici ou l'avez changé aussi. Faites glisser le au milieu ici de votre barre et ce changement de couleur ou de blanc afin que vous puissiez réellement le voir. D' accord. Et je vais changer ça au lieu d'audacieux. Changeons ça en I talaq. On y va. Apportez la hauteur tôt, taille jusqu'à, se 17. Ça a l'air bien. Rends-le vraiment long. Ça va montrer une sorte de nos évolutions pour dire, comme, prochaine évolution Venise,
Venise ou,
euh OK, euh OK, donc des hauteurs. Donc ça pourrait ressembler à ça, euh, ensuite j'ai juste double-cliqué ici. Prochaine évolution, puis niveau douloureux 32. Ok, on y va. On est presque tout le monde. J' ai la vue presque en place. On doit mettre ces étiquettes là aussi. Aussi, il va montrer qu'il va toujours montrer le Pokemon actuel que vous avez ouvert indiquant Hey, c'est l'évolution actuelle, et puis il va montrer le prochain s'il y en a. Alors allons de l'avant et mettons quelques images ici et celles-ci feront un
peu plus petites. Peut-être que 1 50 par 1 50 C'est trop gros. Pourtant, quelle que soit la taille, nous y
voilà. 99 par 99 c'est juste obtenir même 100. Donc deux images, n'est-ce pas ? Donc, commande C Command V et, euh, a été
mis, mis ici pour l'instant. On y va. Et juste pour le plaisir, vous pouvez en mettre quelques dans les images Pokemon ici. Je sélectionne juste l'image sur le côté droit. Tu as gagné 22 0 c'est le pire. Nous choisissons les terribles. M. Mine, euh, pour 37. Mettons-en un ici juste pour le plaisir. 33 ha ! Oui. Alors ne parle pas d'accord. Mieux que stupide, M. le mien. Comment pire Poking à chaque fois. Ok, donc ça a l'air bien. On a une étiquette ici. Allons de l'avant et faisons d'autres étiquettes quand un copier-coller celui-ci. Donc nous avons celles des descriptions, mais nous avons aussi besoin de l'étiquette qui contient les données,
donc je fais juste un peu plus de temps là-bas. Et allons de l'avant et changeons la couleur en taureau. Non, je n'aime pas le noir. Faisons la couleur sombre du texte. Non, je n'aime pas ça non plus. Un costume, gris
foncé. On y va. Enlevez l'audacieux encore régulier. On y va. Donc c'est la hauteur. Et ça pourrait dire quelque chose, comme, tu sais, 71. D' accord. Et les dents, commande C Command v. Ceci et c'est ainsi que ça pourrait dire, tu sais,
genre, genre, 2000 et ça a l'air bien. Il suffit de le copier et de le coller à nouveau. Un peu sympa. Au fait, quand vous commandez voir la communauté, ça ne marche pas. Vous devez donc cliquer à nouveau sur l'élément dans un type de bogue de code X. Peut-être que ce petit peu plus petits decks pok je d va jusqu'à 7 18 ou 7 21 Je pense. Mais on ne fait que 7 18, donc c'est bon. Copier et coller. Encore une fois pour l'attaque de base. Dis 44. Juste quelques nombres arbitraires. Ça a l'air bien. Et, euh, mettons juste un texan temporaire ici. Ton type, tout ce que tu veux. J' ai juste copié et collé du texte Pokemon, donc il semble un peu plus sentir là-bas et ça commence à regarder ce que nous voulons. Alors maintenant, il est temps de s'assurer que vous l'enregistrez. Maintenant, il est temps de mettre ça dans une vue de pile, et ça va le rendre vraiment laid. C' est bon pour l'instant. Et donc, , abord, vous voulez faire les choses qui sont logiquement regroupées en premier. Alors avant de descendre, passons de gauche à droite. Donc, cela doit être dans une pile horizontale. Toi. Donc, je sélectionne les deux et je clique juste sur la vue de la pile, mais ok, enregistrez-le. Et puis, euh, on a oublié. On a oublié de mettre des descriptions ici pour ça. Alors tapez. C' est très bien. Sauf qu'il n'y a pas d'audace. Rendons ça régulier. Ce n'est pas pour celui-là régulier. Et faisons de nouveau la couleur gris foncé. On y va. Sur le type va probablement aimer ça, vous savez, herbe slash psychique. Ça ressemblera à quelque chose comme ça. Probablement. Alors on y va. Et la défense, euh, la défense de la base, vous savez, sauver, euh, 101 Pourquoi pas ? Ok, donc ça a l'air bien. Ok, donc c'est dans une vue de pile. Ceux-ci doivent être dans une pile pour vous, Alors allons de l'avant et mettons-les dans une vue de pile horizontale. Mais ceux-ci dans une vue de pile horizontale les mettent dans une pile horizontale. Ça va ? Et puis Ah, donc ce qu'on va faire, c'est qu'on aura tout ça et une fois une vue géante sur la pile, et ça pourrait être dans sa propre pile de vous ici dans une minute. Alors allons de l'avant et sélectionnons ce gars et ce gars les a mis dans leur propre pile horizontale. Ça va ? Et maintenant, nous pouvons descendre verticalement. Alors sélectionnez celui-ci,
celui-ci va juste à gauche à l'intérieur pour sélectionner toutes vos vues de pile ici. Et puis le, euh, euh, le diviseur qui peut tous être dans la même vue. En fait, faisons passer le diviseur en plein écran. Donc, ne le mettons pas dans la vue de la pile. Et ça a l'air bien. Donc bam, bam, bam, bam, bam ! Tout ça va aller dans une vue de pile verticale. Ok, donc ça a l'air bien. Tu es genre, euh, non,
ce n' est pas le cas. Eh bien, tu as raison. Donc nous devons faire quelques contraintes réelles maintenant, donc votre pile principale pour vous. Maintenant, mettons les contraintes dessus. Cliquez sur le bouton de votre épingle. Nous voulons limiter les marges. Regardons, faisons un bel air. Donc zéro remarque comment ça s'est passé. Il s'est éloigné de la grande par ici. Je ne sais pas pourquoi c'est ridicule, mais c'est ce que ça fait. Donc zéro de la gauche, zéro de la droite, mettons-le 20 du haut et, euh, 100 à la marge. Donc, pas de sueur. 20 du haut est le même que 20 du côté ici, ce qui est très bien. Et à partir du bas, nous ne nous soucions pas vraiment en ce moment, alors allons de l'avant et ajoutons ces contraintes. Oh, accord, allons de l'avant et définissons une contrainte de fond. C' est ridicule. Alors ce qui dira,
c'est ,
c' que j'étais terrible. Nous annulons d'abord ce code dang X. D' accord, essayons encore ça. Bonté. Ok, alors on les a là. Prenons notre boîte. Allons d'abord nos contraintes de fond, et nous allons travailler là-haut parce que ça va être douloureux. Voyez comment nous avons nos gars ici. Ils sont dans leur propre pile. Toi, ce qui est très bien. Donc ce que je veux faire, c'est que je veux d'abord enlever ce fond. Limitons cela d'abord. J' aime bien où il est. Je veux le garder là en permanence. Donc ce que je veux faire est ah, éteindre les marges 24 0 à partir de la gauche, zéro à partir de la droite. Hum et, euh, non. Désolé, les gars. Commençons par le tout,
tout en bas. Il faut qu'on travaille d'un coin en haut. Alors allons à cette pile de fond pour vous ici. Travaillons d'abord sur lui. D' accord. Alors quoi ? On veut le déplacer un peu ici. Allez. Allez. Ça va lentement. D' accord. Donc on veut dio, tu peux arrêter maintenant. Tu peux arrêter maintenant. Arrête ça. Oh, code
X. OK, on
y va. Wow. Merci. Donc c'est ce qu'on veut vraiment. Et je veux dire que tu vas y aller. Non, on ne va pas contraindre. Les marges allaient dire zéro du voulons-nous limiter les marges ? Oui, préoccupons les marges. Donnez-lui un peu d'espace blanc. Alors allons de l'avant et disons zéro de la marge gauche, Zéro de la marge droite et du bas, Allons de l'avant et disons huit. C' est bon. Ok, on
y va. Donc c'est faire ce qu'on veut. Avis. Comment ont les lignes pointillées ici de l'endroit où il va être au moment de l'exécution ? Et pour une raison quelconque, ça l'a jeté de l'écran. Je pense. Stack, tu as encore des insectes ? Faisons-le glisser en arrière. Ok, donc vrai,
genre, genre, c'est quelque chose que nous ne nous inquiétons pas de ce que ça a l'air en ce moment. Juste le principal est ce qui nous tient vraiment à présent, hum, qui a l'air bien. Donc ce que je veux dire maintenant, c'est Ah, ce gars, on va le déplacer vers le bas. 1234 fois. C' est très bien. Et maintenant mettons des contraintes sur lui dira, Éteignez, contraindez les marges de la gauche, zéro du zéro droit. Et du bas, disons huit. Ok, et puis donnons-lui une hauteur fixe de 26 pixels. Ok, on
y va. Donc je pense que ça va rester là où nous voulons que ce soit, euh, notre petit gars ici, euh, je veux que ça aille au bord est en fait donc c'est, euh, passons. Parfois, il est difficile de vous sélectionner un truc d'un pixel pour que vous puissiez le rendre un peu plus grand pour que vous puissiez sélectionner les bords ici, OK ? Et puis vous pouvez changer la hauteur à un peu haut. C' est, euh voyons ici. En fait, c'est au mauvais endroit. Les yeux sont au mauvais endroit. C' est au mauvais endroit. Les gars n'en ont pas besoin ici. Nous en avons besoin en dessous du type. Ça nous a trompés. C' est Dragon. Et là, on
y va. Donc je l'ai traîné dans notre pile Toi. Maintenant c'est maintenant que c'est en quelque sorte de nous obéir, et maintenant on peut lui donner un haut de un. Ça change à 50. Réglons ça. Et la vache contrainte, elle ne veut pas obéir. Ok, il y a la hauteur d'une contrainte d'ajout là-bas. Il faut des forces pour faire ce qu'on veut. Ok, donc les contraintes sont bonnes ici. Les contraintes semblent plutôt bonnes ici, je pense, euh, mais ce que nous voulons faire c'est que nous voulons obtenir notre Ah, les inquiétudes ne sont pas bonnes ici. Je veux dire, les mises en page vont, mais les contraintes sont que nous devons obtenir les contraintes. Donc, il est approprié sur l'écran ici, alors sélectionnez votre pile principale. Visionnez celui-là. D' accord. Et maintenant, allez de l'avant et zéro de la gauche. Nous avons des marges propres, et de la droite, nous voulons zéro. Pas un 900 négatif. Quoi que ce soit dans le top 20, c'est bien. Et puis du bas. Mais nous voulons au lieu de 1 83 Nous voulons aussi faire 20 signifiant 20 de cette chose rouge. Et je ne suis pas cliqué. Ajoutez ces contraintes. Regardons notre secret ici. C' est bizarre d'agir. Euh, je vais passer d'automatique à aperçu. C' est vraiment étrange, en fait. Donc OK, hum, n'avons-nous pas mis des contraintes dans sa capacité à voir ce que nous avons mis ? Contraintes sur ? Quoi ? On n'a pas mis de contraintes. Faisons en sorte que nous devons désactiver ce qui se passe trop à l'écran ici. allons donc nous assurer que nous avons des contraintes pour notre vue de dessus. En fait. N' en avez besoin sur éteindre le navigateur. On y va. Donc, la vue de dessus est juste ici. Euh, on a de la hauteur dans l'espace inférieur. Oh, d' accord. Way a oublié de mettre. Hum, on a oublié de le mettre sur les bords ici. Vraiment ? Est-ce qu'on a vraiment oublié de faire ça Ça semble bizarre qu'on oublie que vous étiez comme moi. Oublie ça. J' essaie de te le dire depuis 15 minutes, mais tu ne m'entends pas. Désolé. Alors allons-y et envoyons-le de la gauche par le haut et de la droite. Tellement étrange. Ils sont Ugo. Ok, Remarquez comment les écrans semblent bien maintenant plus ou moins les écrans semblent bien. Um, il remplit tout l'écran ici, ce qui est sympa. Nous avons un problème. Notre segment et notre contrôle sont vraiment grands, alors donnons-lui une hauteur fixe. Je sais par expérience que la hauteur sur un contrôle est de 29. C' est ce que c'est censé être. Et ça l'étire contre notre volonté. Donc dit à 29. Ça a l'air bien. Ça a l'air très bien. Tu vois, au fait, j'en ai déjà parlé avant. Quoi ? Il semble que l'aperçu sur le code X n'est pas exact à 100%. Lorsque vous travaillez avec l'utilisation du personnel, cela ne semble pas fonctionner correctement. La seule façon dont vous savez vraiment en construisant votre projet. Juste pour que vous sachiez, nous ne pouvons pas compter sur 100% sur la vue de la pile. D' accord ? et j'ai également remarqué qu'avec X Code bêta pile utilisateur se bloquant un peu là, très puissant à nouveau. Je pense toujours qu'il y a des insectes qui se passent. Alors cliquez sur votre vue de pile principale ici que celle-ci verticale et faisons quelques choses cliquez sur votre, hum, petite icône
bizarre ici. Les attributs. Inspecteur. Donnez-nous un peu d'espacement entre chaque élément. Disons 20 espacements. Ok, et, euh, remarquez comment encore ? Ça n'a pas vraiment l'air de changer ici à droite à l'intérieur, mais ne vous inquiétez pas pour ça maintenant. Et l'alignement au lieu de diriger. Faisons Phil. Alors sait comment. Maintenant, quand à travers l'écran, c'est à travers l'écran. K. Ça a l'air bien générique. J' ai encore des choses qu'il faut réparer. Et passons donc à notre premier acte. Toi, ici. On sait qu'il y a deux objets dedans. Il y a une vue d'image, puis il y a l'étiquette. Donc à l'image de vous, euh, allons de l'avant et donnons-le juste. Ce que je veux faire, c'est lui donner une largeur et une hauteur fixes. Ah, donc je vais aller de l'avant et changer où je l'ai choisi. Vous ne pouvez plus le voir à l'écran. Storyboards agissant étrange. Cliquez ici sur le bouton de votre épingle. Allez-y et donnez-lui un avec 1 20 et un haut de 1 20 Il y a une mouche à la recherche. air bien. Ok, donc ça m'a l'air bien. Um, regardons cette vue de pile horizontale que ces deux air dedans dit sentir sur la
distribution sentir , euh, guérit si on le change pour se sentir proportionnellement par quelle pile vue ? Ai-je sélectionné ? Euh, ça a l'air bien. Encore une fois, remarque sur le côté droit, il est coupé. Je ne sais pas si ça va le faire dans l'application. Allons-y et essayons-le parce que ça me dérange qu'il coupe. Mais encore une fois, j'ai dit que tu ne peux pas faire confiance à ce qui se passe avec les piles. Je ne pense pas qu'ils aient encore tous ces morceaux ensemble. Tirez dans le simulateur ici. Ok, éteins la musique et sélectionne les jouets. D' accord. D' accord. Cool. Donc 123456 Nous avons six lignes de texte. Même si j'ai dit qu'il devrait être 10. Donc, je ne sais pas pourquoi tout à fait pour l'instant. C' est pourquoi ça coupe, mais ça a l'air bien. Ça n'a pas l'air trop mauvais du tout. Hum, en fait, on se rapproche vraiment ici. C' est très cool. Ok, si cool. Deal. Ne vous inquiétez pas pour le texte coupé ici dans une minute. Pas encore complètement inquiet à ce sujet. Et d'accord, donc on a nos affaires là-bas. Ça a l'air bien. En fait, je pense que ce que nous voulons faire, c'est sur ce texte. Faisons-le rétrécir. Il est là. C' est pourquoi il donne une taille de police fixe, et donc il la coupe. Allons-y et donnons-lui une taille de police minimale. Et en ce moment c'est à 15, disons la taille 12e. Donc ce qu'on dit,
c'est que s'il ne tient pas là,
tu as ma permission de le réduire à 12 hommes pas moins de 12 à ce moment-là,
coupe-le. s'il ne tient pas là, tu as ma permission de le réduire à 12 hommes pas moins de 12 à ce moment-là, Donc, je vais construire et exécuter par commande plus R et voir si ces correctifs sont du texte tronqué et il a réduit notre plaisir. Peut-être une taille ou deux, donc tout irait là en apparence bien et rappelez-vous, nouvelles de
pile doivent travailler et la correspondance avec des choses comme ça, comme avec la taille de la police avec des contraintes. Tu dois travailler. Utilisez-les tous ensemble. Hum, donc ça a l'air bien, cependant. Il est empilé maintenant. Ce juste ici pas impressionné par la façon dont il est. Je voudrais qu'il remplisse mieux l'écran afin que je puisse cliquer sur la vue de la pile dans laquelle il se trouve. C' est en ce moment. C' est l'alignement. Ressentez que si nous disons sentir proportionnellement ? J' étais mieux. Essayons ça avec ces autres aussi. Avec la pile de vous vous sentez proportionnellement. Et avec celui-ci, disons que nous nous sentons proportionnellement. Je pense que mes ex codes s'écrasent. Il y a mon ex code a planté secoué, et, euh, je suis allé de l'avant et juste refait le sentiment proportionnellement dans les deux vues de la pile. Et ça a l'air bien. Ce n'est pas tout à fait parfait. Pas très heureux à ce sujet. On peut peut-être jouer avec des choses comme,
euh,
donc ces Ah,
allons à cette première pile. On peut peut-être jouer avec des choses comme, euh, donc ces Ah, Vous entendez la taille et le poids est sur la seconde en dessous. Donc la hauteur et le 71 ils sont différentes longueurs. Ils ont tous les deux laissé une ligne,
ce qui est très bien. Ils ont tous les deux laissé une ligne, Essayons de le changer pour se sentir également semble un peu mieux. Faisons la même chose ici. C' est bien d'avoir l'air beaucoup mieux. Il est agréable d'utiliser les outils comme celui-ci que l'utilisation de la pile a, si vous le pouvez, sauf si votre patron ou quiconque veut absolument qu'il soit parfait pixel. Je recommande de dire à votre patron ou à vos gens que vous travaillez sur des projets pour leur genre, Hey, je veux regarder comme ça. Dites, Eh bien, voici la chose, Boss Pixel Perfect nécessite un travail supplémentaire, mais il est parfois préférable d'utiliser des vues de pile, donc il prend en charge tous les appareils. Alors hé, M. Boss, plutôt que de simplement sortir pour iPhone et nous ferons le pixel parfait iPad plus tard, rendons juste un peu plus générique. On va toujours le rendre très agréable. Rendons-le un peu plus générique en utilisant ces vues de pile, et ensuite nous pouvons prendre en charge tous les appareils à la fois, et cela aura l'air vraiment bon. Donc vous devriez avoir des conversations comme ça avec vos clients. Vous devez leur apprendre parfois que ce sont les outils à votre disposition, et qu'il y a des avantages à les utiliser. Donc je vais lancer ce projet ici et voir comment il ressemble sur l'écran réel. Bien. Qu' est-ce que vous en pensez, les gars ? Il regarde, j'aime ça. Je vais rouler avec. On va le laisser tel qu'il est. J' aime ça. La prochaine chose que nous voulons faire est de réparer ce type ici. Cette étiquette, hum que j'ai mis des contraintes dessus. Cliquez sur la règle et voyons que je ne l'ai pas fait. Je trébuche. Tu fais trébucher ? Je croyais avoir mis des contraintes à ce type. Je suppose que je ne l'ai pas aligné horizontalement et verticalement dans le conteneur. D' accord. Et allons-y et donnons-lui la largeur et une hauteur fixée. Ok, maintenant c'est aligné. Enfin, je viens d'avoir ce petit gars ici, ce n'est pas trop mal. Ce n'est pas trop mal. Allons Ah, photo sont empilés vue. Et nous allons cliquer sur les attributs ici. Et peut-être que si on se sent aussi Oh, toi. J' aime ça. Um, nous allons cliquer sur ces images, cependant. Je les ramasse tous les deux et je vais dire « Aspect fit ». Laissons-le et voyons ce qui se passe. Qu' est-ce que vous en pensez les gars ? Peut-être que certains de vos mots Eh bien, je pense que les images du fond sont trop grandes et qu'il y a trop d'espace blanc. Si c'est ce que tu penses, je suis en quelque sorte d'accord avec toi. Alors changeons ces images ici. Tu te rappelles comment on l'a mis à une taille de 100 avant ? Allons-y et faisons-le. Maintenant, je sélectionne les deux images en maintenant la commande enfoncée. Allez dans le menu de votre épingle et pour en hauteur, allez de l'avant et dites 100 par 100 et cliquez sur. Ajouter des contraintes et, euh, allons l'exécuter maintenant et voir ce qui se passe. Hé, hé, pas mal. C' est plutôt cool. C' est un peu plus que ce que j'aurais aimé. Um, ce n'est pas trop mal. Je ne pense pas qu'on ait besoin de jouer. Vous pourriez faire ça tout seul pour changer d'espacement et de choses comme ça, mais ça a l'air bien. Qu' est-ce que tu en penses ? Donc je vais appeler ça une pellicule pour cette vidéo. Nous avons la disposition réelle ici avec des statues, et maintenant nous devons faire la partie amusante et connecter Internet en analysant toutes les données. Ça devient un peu plus complexe. Ça va être amusant, mais des concepts très importants pour construire des applications professionnelles. Et au fait, vous maîtrisez les vues de pile juste à la sortie de la porte ici. Probablement beaucoup de développeurs qui sont des professionnels. Probablement n'ont même pas regardé les nouvelles vidéos de pile qu'Apple a fourni son Vous allez être en avance sur eux lorsque vous allez sur votre premier projet. Tu aimes. Hé, pourquoi ne pas utiliser la pile que tu as sous ? Pourquoi tu ne vas pas sauter d'une falaise et tu aimes que tu sais quoi ? Je suis cool. J' utilise une nouvelle pile utilisée. Vous ne donnez pas avec le groupe, alors prenez le programme. Peu importe. Alors on y va. Fin de cette leçon passant à la suivante.
92. App: Pokedex partie 11 : IBOutlets Detail View Controller, Up: Hé, tout le monde, Mark Pricier Deb pentes dot com Nous sommes si près de finir Notre application Poke Index est
vraiment en train de se réunir Way a notre mise en page ici en place, comme vous pouvez le voir, et il semble assez bon sur le écran. Allons-y et faisons quelques choses. Allons brancher les prises R I B. Et puis mettons à jour notre classe Pokemon pour avoir tous les champs qu'il aura besoin d'avoir
parce que ce qui va se passer, c'est qu'on va télécharger ces données sur Internet. Nous devons donc préparer tous les champs et les débouchés. Alors faisons ça. Maintenant. Allez-y et ouvrez votre éditeur assistant et changez de prévisualisation à automatique et allez à Pokemon. Détails V. C. Et je vais fermer quelques choses. Voici juste que nous avons plus d'espace pour regarder son code ici, et ça a l'air bien. Ok, on en a un. Je serais sortie. Mettons le reste ici maintenant. Ce que nous avons, c'est le nom qui est ici. Allons-y et
mettons l'image ici. C' est l'image principale, donc nous appellerons cette image principale. D' accord ? et nous avons la description ici. Alors allons de l'avant et mettons la description. Et donc nous appellerons cette étiquette de description. Ok, on a le type, alors traînons le type. Ça va être l'étiquette de type. Le label de défense. Je contrôle juste le traînage. Ok, étiquette
de défense. On a l'étiquette de hauteur. Tu es genre, c'est amusant Dragon. Tous ces trucs. Oui, c'est plutôt cool. Assez apaisant après toutes ces autres bêtises que nous avons dû faire étiquette de hauteur, étiquette pokey decks. Et ça va être, hum, courant. Je vais appeler l'image actuelle d'Evo pour l'évolution actuelle, et celle-ci sera la prochaine. Evo, euh, image pour la prochaine évolution. Et enfin, c'est le texte de l'évolution. Ok, alors on l'appellera Ivo. J' ai juste une étiquette maléfique. On a manqué quelque chose ? On a nos étiquettes et tout ça ici. Et notre bouton de retour ? On devrait faire en sorte que ça marche, est-ce
pas ? Alors allons-y et faisons-le. Faisons une action I B si contrôlée traînée de vos fesses ici et nous allons aller de l'avant et les changements de Outlet Teoh action. Et on va rappeler ça, mais dans pressé et tout ce qu'on va faire ici sur le dos. Braaten est qu'on va rejeter la vue qu'on a dégagée. Donc ce ah, vue
des détails. Donc, vous êtes ici, dans votre co. Allez-y et tapez. Ignorer la vue. Contrôleur. Animé ? Oui. On se soucie de ce qui se passe après ça ? Non. Donc juste mettre Neil là-dedans, et tout ce que ça va faire, c'est que ça va éclater. L' écran et le chargement sont notre liste principale. Encore une fois. Débarrassez-vous de ces storyboards de navigation ici, et OK, donc nos points de vente sont connectés. Pas grand-chose, pas grand-chose. Allons-y et ouvrons notre navigateur. Retourne à notre, euh, code par ici. En
fait, en fait, allons rouvrir. Désolé. Changeons aussi notre classe. Je vais aller au manuel, et on va modéliser Pokemon dot Swift. Nous allons juste aller de l'avant et puisque dans le contexte, nous allons aller de l'avant et simplement ajouter le reste des champs dont nous allons avoir besoin pour notre application. D' accord ? Pas grand-chose. Donc on a un nom dans un poke, il est excité. Allons, mais sur le reste. Alors allons-y et faisons une description si privée de notre description. Ça va être un bar privé à cordes. Qu' est-ce qu'on a d'autre ici ? Donc, nous avons un type de description qui va taper chaîne, bar
privé, chaîne de type
défense, bar
privé, hauteur de chaîne de type, bar
privé. Euh, eh bien, on a les ponts à pois. Je l'ai dit, c'est bien. Euh, attends et ah, tu sais quoi ? Faisons toutes ces cordes. Même s'ils sortent, ses entiers vont simplement se convertir en une vie de fabricant de chaînes un peu plus facile. Bar privé. On va dire une chaîne de type attaque,
et ensuite on a ça. On va dire une chaîne de type attaque, Toutes ces images qu'on n'a pas besoin de s'en soucier. Euh oh. Et puis que diriez-vous de ce texte ici ? On peut stocker cette volonté du Texas. On va avoir besoin de la créer,
hum, hum, ou format de nous-mêmes. Mais d'une certaine manière, allons de l'avant et déformons ici aussi. Deux. Nous appellerons ce prochain texte d'évolution va l'épeler cette fois et faire celui de type chaîne. Je pense qu'on a tout ce dont on a besoin ici. Sur 2345678 um, 9123456789 On a tous ceux là, alors ok, on a connecté nos données ici. Nous avons connecté nos points de vente de lierre, et nous avons l'air bien ici. Quelque chose d'autre qu'on manque ? Je pense que ça a l'air bien pour l'instant. Um, ouais, je pense que ça a l'air bien pour l'instant. Donc je vais appeler cette vidéo. Fait. Très courte vidéo. Mais ce que nous allons faire, c'est nous allons nous concentrer sur la prochaine vidéo sur la façon dont nous allons utiliser ces données avec les informations d'Internet. On va regarder le A P, on va vraiment plonger dedans, donc ça va être un peu plus long, donc, euh, on va couper celui-ci court. Vas-y droit. Alors, à vous voir.
93. App: Pokedex partie 12 - The API, Github, Cocoapods, Alamofire: Tout le monde arrivant aux détails épais et juteux du téléchargement de données dans notre indice de coke marque Pricier Deb pentes dot com et parlons d'où nous allons obtenir les données. Alors allez-y et allez au PDG pokey ap i dot, et nous allons télécharger des données individuelles Pokemon à partir de ce service qui est fourni
sur Internet. Et fondamentalement, c'est juste un AP public gratuit et ce qu'on va faire, c'est juste prendre un
mois de pokey différent de cette fille, comme tu vois
juste ici. Donc, par
exemple, si je mets ce mon navigateur ici quand je fais Ford slash Pokemon Ford slush dans ce cas 715 il nous
donne Jason. Ça nous donne les détails pour ce coup de poing. Donc si je copie ceci ici et que je tape en ligne Jason quatre questions, faites
juste une recherche là-bas, et c'est généralement ce top ici, Jason. Quatre points de matière Curious concept, calme collé là et cliquez sur processus. Ça va rendre ça vraiment sympa pour nous. On pourrait voir ce qu'on va avoir. Donc ce qu'on va obtenir, c'est les capacités qu'on ne va pas faire dans cette vidéo, tu peux les mettre dans des capacités et des mouvements et on va obtenir notre défense. On va avoir des descriptions maintenant. Remarquez comment il n'a pas une seule description avec ce Jason, nous devons en fait télécharger la description à partir d'un point de terminaison différent. Donc ce que nous allons faire, c'est nous allons télécharger cette information et faire un autre téléchargement pour récupérer la description du Pokemon, que nous allons montrer dans l'APP. Donc plusieurs téléchargements. On a une description. On se fiche des groupes d'aide. Il aura des évolutions. Donc si j'y vais, on sait que le magasin Bubba a une évolution. Donc j'en vais juste un pour Bulbul plaie, OK. Et, euh, je connais le rythme. Eh bien, nous
allons rafraîchir l'écran. Absolument. Allez payer l'ulcère parlé ici, vous remarquerez que Globalstar a effectivement une évolution. Donc il a des capacités, beaucoup de descriptions, des groupes
EG et OK, évolutions. Maintenant, avec cet AP spécifique, je l'ai sur Lee vous donne la prochaine évolution et c'est pourquoi nos AP ont été conçus de cette façon. Ça ne vous montre que le prochain que j'aime. J' aurais aimé avoir eu les trois évolutions montrant sur chaque mois pokey. Mais cet AP spécifique, je ne fais pas ça. Cependant,
cependant, ils fournissent, si vous revenez à leur site Web principal ici, faites défiler vers le bas pour obtenir le compte hub. D' accord ? Et si vous y allez, nous l'avons téléchargé plus tôt, au fait. Mais si vous allez dans les données, vous allez à la version 1 ou 2 et ils ont un tas de fichiers C S V pour avoir toutes les données que vous pourriez jamais vouloir sur le mois Pokey. Et vous pouvez analyser tout cela en vous-mêmes. Vous n'avez pas besoin de vous connecter à Internet. Vous pouvez télécharger ces parties entre vous et saisir toutes les informations que vous voulez et les formater comme vous voulez, et vous ne serez pas limité par le A P I. Mais le but de cette leçon est de vous montrer comment vous connecter à Internet, comment se connecter à un A p I et comment travailler avec les données. Donc c'est ce qu'on va dio. Donc, euh, c'est un autre téléchargement devra faire, c'est vraiment qu'on doit faire le téléchargement. Nous avons juste à sortir d'ici parce que nous avons quel numéro il est et nous avons juste besoin de
montrer l'image ainsi et nous avons les évolutions là-bas, les mouvements. Vous pouvez le faire sur votre propre membre. Notre contrôle de segment, euh, sprites. C' est là que vous pouvez télécharger l'image réelle. Et je faisais ça quand j'ai construit ça pour la première fois. Je les téléchargeais tous depuis Internet. Mais comme vous pouvez l'imaginer, télécharger jusqu'à 718 images même hautement optimisées, pourrait être vraiment lent. Et il était donc préférable de les tirer sur nos tours. On n'utilise pas les sprites. Et puis voici les types. On va les attraper et les faire mettre dans notre application. Donc c'est le Jason. Il vient de Pokey ap I dot PDG. Et, euh, si vous voulez plus d'informations sur le reste des choses qu'ils offrent sur leur p I c'est juste ici sur leur documentation. Ils ont un ensemble de decks de pokey plein de tous les Pokemon, les types de capacités de mouvements groupes ,
lesgroupesd'œufs,
Ah ,
lesgroupesd'œufs , etc. Vous pouvez obtenir toutes ces données de leur C'est le singe IE. Nous devons donc nous préparer et nous préparer à commencer à travailler avec le A P I. Donc ce que nous voulons faire, c'est aller de l'avant et ouvrir votre terminal. D' accord ? J' ai juste fait de l'espace de commande et tapé dans le terminal et glisser et naviguer dans vos
esprits de projet sur le bureau Sooty. J' ai juste appuyé sur Tab, et je vais aller dans mes pokey decks. Alors voyez les decks pokey, les decks
Pokey par Deb pentes. C' est ce qu'on appelle ça. On est dans le répertoire maintenant. Donc ce que je vais faire, c'est que je vais, euh, faire fonctionner les gousses de cacao pour l'application. Donc tout ce que nous avons à faire est de taper un pod dedans, parce que ce que nous devons faire est de télécharger Alamo Fire cet outil de mise en réseau qui va nous aider à faire des demandes réseau. On vient d'initialiser le pod. Notre directeur est un pod est aller de l'avant et ouvrir un navigateur. Il suffit de taper Alamo, Alamo, Alamo feu. Et qu'on va l'attraper de Get Hub juste ici. Il a des instructions pour nous. Tout ce qu'on a besoin de dio, c'est de s'assurer qu'on a ça dans notre pod. Alors ouvrez votre détecteur. Allez à votre, euh, pokey decks application. Ouvert avec n'importe quel éditeur de texte votre texte de fichier pot, éditer. Peu importe. Je vais le faire avec sublime sur. On y va. Sublime est gratuit. Il est là. Joli. Joli et prêt pour nous. Et je vais aller de l'avant et changer ma plate-forme à huit. Je n'ai pas besoin de cibler six et juste
ici, juste au-dessus. On va dire, utiliser des cadres de soulignement. Nous voulons utiliser des frameworks. Assurez-vous de mettre l'exclamation à la fin. Et puis à l'intérieur du do à l'intérieur de notre cible ici ne pouvait pas faire pod. Et c'est Alamo Alamo Fire virgule un autre de ceux jusqu'à d Arrow 1.3. Et ça a l'air bien. Donc, je vais ordonner à S de sauver de près. Retourne à ton terminal. Au fait, j'ai fermé mon projet de code ex. Assurez-vous de le faire avant de l'installer ici sur. Allez-y et faites l'installation de pod. Et si vous n'avez pas de gousses de cacao installées. Allez regarder la vidéo précédente où nous avons installé des gousses de cacao, explique l'ensemble du processus. Donc, il installe Alamo feu. Et c'est là. C' est bon d'y aller. Maintenant. Nous devons rouvrir notre projet. D' accord ? Avec l'icône blanche juste là. Alors allez trouver votre projet. double-cliquez dessus. Ouvrez-le avec l'icône blanche et nous pouvons maintenant utiliser Alamo feu. Euh, on a fait une erreur, cependant. Nous avons installé le mauvais feu d'Alamo. J' avais tort. Désolé. Retournez au site Web Ici, cliquez sur Branches. La version actuelle ne prend pas en charge Swift deux points. Oh,
Pourtant, au moment de cette vidéo, Swift 2.0, n'
est pas encore officiellement sorti. Alors cliquez sur ceci. J' ai encore cliqué sur les branches. J' ai cliqué sur les branches ici, cliquez sur le swift 2.0, Branche et puis faites défiler vers le bas et vous verrez les instructions. , Et là,c'est juste là. Alors allez-y. Et, euh, copiez ça à la place. Désolé. Mettons-le ici. Va à tes gousses de cacao. Dossier à nouveau. Votre dossier pod. Ouvre-le. Et, ah, changeons ça à ça. Et ajoutons un fichier de plus. Ceci de cette source en haut. OK, c'est Copie ça, et je vais juste le mettre. Ah, mets-le ici. Je n'enlève pas ce commentaire, idiot. On y va. Et je l'ai mis juste au-dessus. On y va. Enregistrez le fichier. Donc tout ce qu'on fait, c'est qu'on saisit le code. C' est ce soutien rapide. 2.0, c'est tout. Et je vais fermer le code X à nouveau, puis aller de l'avant, juste retourner à votre terminal et lancer l'installation de pod à nouveau, et ça va se débarrasser de l'ancien et remettre le nouveau dedans. On y va. Maintenant, nous sommes prêts à y aller. Ok, alors retournez à votre projet et ouvrez l'icône blanche. Maintenant, nous sommes en affaires. Ok, alors, cool. Deal. Nous avons notre pour notre cadre là-dedans. Nous avons parlé de l'
A.P . Allons-y et finissons cette vidéo pour que vous puissiez être au courant ici et la prochaine vidéo, nous allons juste plonger en partie, télécharger des données, l' analyser, entrer dans notre application. Et j'espère
que c' est notre dernière vidéo. Si ça va trop long, peut-être deux vidéos, on verra comment ça se passe. Mais on y va. Préparez-vous à installer des gousses de cacao, et nous vous verrons dans un peu
94. App: Pokedex partie 13 - Téléchargement et parlage de données: Salut, Mark. Pricier sourds savons dot com Ici, nous sommes à nouveau. Voyons si on peut finir ce méchant garçon. Si ce n'est pas le cas, ce sera dans la prochaine vidéo. Et donc ce que nous avons en ce moment, ce sont des données dans nos propriétés que nous devons utiliser. Mais nous ne téléchargeons pas d'informations à partir d'Internet maintenant. Nous avons parlé du pokey a p I et donc nous savons que nous savons. Qu' est-ce que nous avons besoin de prendre pour chaque Pokemon. D' accord. Et, euh, excusez-moi. Donc, en gros, ce que je vais être, c'est Ah, il
suffit de le remonter ici. Donc, si vous vous souvenez, c'est vrai, l'Oural ressemble à ça. Et puis, tu sais, il y a un numéro à la fin, non ? C' est à ça que ça ressemble. D' accord. Et alors commentez ceci ici. Donc, évidemment, ce numéro va changer pour chaque mois de pokey. Et ce que nous voulons avoir lieu, c'est chaque fois que vous cliquez sur l'un des Pokemon, nous descendons avec l'information. Nous ne voulons pas télécharger toutes ces informations pour tous les 718 Pokemon. C' est vrai ? Lorsque les charges de l'application sont apt, Pourrait éventuellement artisanat manqué de mémoire être un gros gâchis. 718 demandes réseau, c'est beaucoup. Donc, ce que nous voulons faire est ce qu'on appelle, comme le chargement paresseux, où vous ne le chargez que lorsque vous en avez besoin. Donc, dès que vous cliquez sur le mois pokey, puis nous avons frappé l'Internet. Nous téléchargeons cela prendra une seconde ou deux, mais pas grand-chose. Donc ce qu'on va faire, c'est aller de l'avant et, euh, allons de l'avant et mettons vos rails dans notre application. Et donc je vais créer un nouveau fichier. Je vais le mettre ici dans le nouveau dossier. Je vais appeler ça. C' est un fichier rapide et je vais appeler ça Constance. Et ce qu'est Constance n'est qu'un Siris de valeurs que vous mettez ici et qui sont
accessibles dans le monde entier . Si je ne le mets pas à l'intérieur d'une classe, il est globalement accessible. Donc, je vais stocker l'URL de notre point M principal, et vous voulez avoir l'habitude d'utiliser un fichier de constantes. Quand vous devez utiliser les choses, jetez votre application. Peut-être que vous le mettrez à différents endroits. Mais Constance est un endroit idéal pour ça. Donc on va dire la base réelle. Dis que tu es l base de soulignement comme la base Eurail. Et nous savons que c'est http ford slash pokey ap je doute PDG. Je crois que c'est ce que c'est. Nous allons juste vérifier et assurez-vous que poky ap je doute PDG. Copiez-le directement pour vous assurer que nous sommes vraiment bons à partir. On y va. Et, euh,
ça a l'air bien. On va juste enlever la barre oblique de fin, cependant. Ok, donc on a la base, ta rangée et ce qu'on a aussi c'est le Pokemon. Tu vas aussi laisser ton mois de pokey, et ça va être égal à ce qu'on vient de faire. Euh, ce type juste là, euh juste là. Et, euh, ce qu'on va faire, c'est ajouter le testament, ajouter le numéro à la fin, puis une autre barre oblique. Et ce sera ça plus ça, plus le numéro à la fin. De cette façon, nous pouvons le réutiliser plus tard. Et donc nous avons notre Nous avons notre votre l. Et donc ce que nous voulons dio est de stocker que votre URL pour chaque Pokemon quand nous créons un mois
pokey. Ok, donc d'abord, on va avoir besoin d'une propriété pour ça. Alors allez-y et faites-le. Je suis ici à Pokemon dot Swift. Au fait, Var
privé, on va appeler cette fille des ressources est ennuyeuse. Bon Pokemon Demandez-moi de type string et ce qu'on va dio est juste ici. On va aller de l'avant et le mettre. Chaque fois que vous créditez de nouveau Pokemon, nous allons mettre ceci Votre l faire de l'espace ici afin que vous puissiez voir un peu mieux. Ok, donc ce qui dira c'est
que Pokemon Euro est égal, tu te souviens de ce que c'était ? Il s'agit de la syntaxe de chaîne pour l'injection de chaînes. C' était ta base, plus ton Pokemon. Oups. Vous êtes tous Pokemon. En plus, c'était le numéro, non ? Et avons-nous eu des constantes d'instigateur Ford ? Donc, cela a une barre oblique avant Nous avons juste besoin d'ajouter le nombre, puis une barre oblique de fin . Donc le numéro va être, euh, point
auto souligné Pokey Deck City. droite. Et puis nous ajoutons juste la barre oblique de fin. Donc tout ce que nous faisons ici, c'est juste construire un membre de chaîne. Ceci est la syntaxe des variables d'injection de toe et les chaînes. Donc on injecte la base. Vous êtes bien, alors nous injectons le Pokemon, votre L et ensuite nous injectons les decks de pokey que j'ai d et ensuite nous permettre slash, et c'est notre euro. Donc, chaque fois que nous créons un Pokemon, il va générer dynamiquement que vous êtes également affaiblir plus tard, téléchargez-le et utilisez-le. Donc c'est vraiment cool. Alors gardons quelques données. Comment ça sonne ? Parlons à Internet. Alors, on y va. Ça va être un peu long. Je n'essaie pas d'expliquer son mieux que je peux payer. Attention très attentive. , Jusqu' à présent, nous avons mis en place les gousses de cacao avec le paquet Alamo Fire. Nous allons utiliser Alamo Fire pour télécharger les données de la bibliothèque Fantastic Internets, eso, téléchargement
funk, détails
Pokemon. Et en passant, si jamais vous travaillez un objectif C, le framework que vous voulez utiliser pour cela, il s'appelle F networking. C' est écrit par le même type qui était le feu d'Alamo, sauf pour ah, pour l'objectif C. Donc nous allons télécharger les détails de Pokemon et, euh, pensons à quelque chose pendant une seconde. Un téléchargement est un droit synchrone, ce qui signifie que nous ne savons pas quand il va revenir avec un résultat. Donc, disons que je clique sur mon Pokemon pour aller à l'écran suivant est ma journée. Ils seront immédiatement disponibles. Eh bien, ce n'est pas donc je ne peux pas juste le voir charger et ensuite saisir ces données parce qu'il ne sera pas encore
là. Donc, ce que nous avons besoin de dio, c'est quand le téléchargement se termine. Ok, nous devons laisser notre cellule personnalisée ne pas vendre le contrôle de vue. Nous devons informer le contrôleur de vue quand cette date a été téléchargée. Donc, il peut affecter les champs. Sinon, il se casserait. Il se bloquerait parce que la date n'est pas encore là, donc nous devons en tenir compte. Donc il y a quelque chose que nous allons faire. Nous allons créer notre propre fermeture, définir sa propre fermeture. Et donc ici, dans les constantes point swift, je vais juste descendre la ligne ici. Je vais dire, alias de type
public. Je veux dire téléchargement complet. En fait, je ne suis pas sûr d'affiner le public. Il a parlé ici, hum, quelque chose que je fais. Et d'accord, tu es probablement genre, euh, attends, qu'est-ce qui se passe ? Toi, je comprenais tellement de choses, et puis tu jettes ça ici, ok ? Vous n'avez pas à comprendre tout ce qui se passe avec cela pour savoir comment l'utiliser. Mais fondamentalement, nous créons une fermeture signifiant, ah, bloc de code qui sera appelé après chaque fois que nous le voulons. Donc, comme nous l'avons fait dans le passé avec la session U. N s u R L. Ok, nous avons eu ces fermetures qui sont appelées après coup. C' est tout ce qu'on fait. Nous créons notre propre fermeture personnalisée. Donc, quand un téléchargement est terminé, quelqu'un peut l'appeler et exécuter du code. Et tout ce qu'on dit c'est que c'est une fermeture vide. Il n'y a pas de paramètres. On ne passe rien dedans et ça ne rentre rien. Ça ne rend rien. Ok, c'est tout ce qu'on dit. Ce n'est pas si important. Sachez juste que si vous voulez créer une fermeture simple, c'est comme ça
que vous le faites, et nous retournerons à notre mois de pokey, et ce que nous allons faire, c'est que nous allons passer cette fermeture juste ici dans le Pokemon télécharger les détails de Pokemon, et il va donc dire, terminé. C' est le nom du paramètre que nous allons dire, Download complete Et ok, donc ce que ça veut dire, c'est ,
Hey ,
quand le téléchargement est terminé, appelons ceci et quiconque a passé ça comme un paramètre appellera ce bloc de code. Ok, donc, par
exemple, téléchargez les détails de Pokemon. En fait, construisons juste le cadre pour ce dont je parlais. Donc, disons que vous cliquez sur le bouton. D' accord ? Sur le Pokemon qui va nous emmener ici au Où est ici, contrôleur ? Ça va nous emmener au détail Pokemon. VC, non ? Ça va nous emmener ici. Ça va charger le nom. On a déjà le nom. Nous ne téléchargeons pas que sur Internet étaient également pas télécharger l'image. Nous connaissons son image à dio. En fait, nous pouvons le faire ici. Nous pouvons dire que l'image principale de point est égale à vous. J' image l'image nommée, et c'est ici. Image nommée. Et nous savons que le nom de l'image sera,
hum, hum, Pokemon parce que nous avons notre objet Pokemon juste là. Ça va être Pokemon pokey decks. Et ce n'est pas une chaîne,
vous savez, vous savez, faites-en une chaîne d'abord. Ici, on
y va. Stockez la petite syntaxe de chaîne ici. Il a ajouté une chose supplémentaire pour nous que je ne voulais pas. Ok, donc on prend les decks que j'ai et on les transforme en ficelle. Et c'est l'image que nous avons déjà fait cela avant. Way ont les deux. Nous n'avons pas le reste des données, cependant,
Donc, quand la vue s'est produite, allons-y et appelons Pokemon dot Télécharger les détails Pokemon et regardez, il cherche un paramètre. Il cherche la fermeture, non ? Comme un manteau. Il cherche du code à appeler quand il est terminé le téléchargement. Alors regarde ça. Tout ce que tu dois faire entrer sa presse et ça fait le reste pour toi. Donc ce qu'on dit c'est avec le mois de la pokey. Donc ça va exécuter tout notre code de téléchargement et quand ce sera fait, peu importe, Cody, juste ici. Donc, cela sera appelé une fois le téléchargement terminé. Donc, lorsque le téléchargement est terminé, il appelle ici et puis nous mettons à jour les vues. Nous ne voulons pas mettre à jour les vues ici avec la hauteur et le poids cause notre programme ou crash, parce que nous n'avons pas encore les données, mais peut-être dans une ou deux secondes, cela sera appelé avec les données et ensuite nous le mettre à jour. Est-ce que ça a du sens ? Nous n'avons pas encore les données, mais nous le ferons à l'avenir. Et donc, quels que soient les codes qui s'exécutent ici ne seront pas exécutés instantanément. Je l'ai vu. Charger ce code ne va pas être exécuté tout de suite. Ça va être exécuté à chaque fois que cette fermeture sera appelée. Et cela arrivera à partir de notre code de téléchargement Pokemon. C' est ce que sont les fermetures. Son code que vous pouvez exécuter plus tard, ok, et si très cool. Alors c'est prêt à partir. Donc quand on clique sur le Pokemon, vu que ça va être appelé ça va frapper ça et ça va télécharger des détails Pokemon qui semble parfait, en fait. Alors allons à notre Pokemon. En fait, téléchargeons les détails du Pokemon. Donc, pour utiliser le feu d'Alamo. Hum, je ne suis pas sûr que nous ayons deux importants. Voyons si on le fait ou non. Demande de point de feu Alamo. Nous avons besoin de l'importer. Donc en haut ici, il suffit d'aller de l'avant et d'importer Alamo Fire Command être à construire. Tu vas voir un peu d'air, un peu d'air rouge là-bas, parce que je pense que le code X a encore des bugs, euh, mais il devrait construire pour nous et continuer à construire maintenant. Je devrais dire que la construction a réussi. Et si cela réussit, nous savons que nous n'avons vraiment pas de problème dans les codes X. C' est juste ridicule. Les codes X étant ridicules. Ne vous inquiétez pas pour ça. Ça marche juste du code X. Je pense que cela a à voir avec la bêta, mais de toute façon, build a réussi. C' est ainsi que nous savons que ça marche. Donc Alamo déclenche cette demande et assez sûr, le code là-bas. Donc, il fonctionne certainement et OK, donc nous avons une demande et ce que nous voulons faire. C' est donc une demande. Tu te souviens ? Nous avons parlé de demandes dans le passé des demandes Internet. Nous voulons faire une demande get, donc dot get okay est ce que nous cherchons. Et la chaîne que nous voulons faire ici est, euh, l'URL. Donc tout ce qu'on a à dio. En fait, allons de l'avant et saisissons l'URL ici. Disons que tu laisses ton égal. On doit toujours transformer tes cordes en S Yarl. Donc, je vais juste voir Ennis. Tu vas bien, j'appelle ce paramètre de chaîne, et on va passer dans le Pokemon. Ta I ok. Et puis ici, en bas. Eh bien, en fait, passer la vraie fille comme ça. Excusez-moi. Alors qu'est-ce que c'est ? On va mettre l'exclamation à la fin parce qu'on sait que c'est votre. On sait que ça
va marcher. Hum, on va comprendre ça en dehors du temps de compilation. Donc ça a l'air bien. Nous passons votre l. Et alors quelle est la prochaine chose que nous devons faire ? Eh bien, donc avec Alamo Fire, vous faites juste cette demande obtient,
et c' est à peu près tout. Mais nous avons besoin de savoir quand cela se termine pour pouvoir faire quelque chose avec les données. Donc tout ce que tu dois faire pour que ça marche, c'est taper la réponse par point, Jason. D' accord. C' est juste là. Et le gestionnaire d'achèvement. C' est celui qu'on veut, je crois. Oui. Um Donc, appuyez sur Entrée, puis appuyez à nouveau sur Entrée, puis appuyez à nouveau sur Entrée. Appuyez sur l'onglet enfoncé, Entrée appuyez sur l'onglet, appuyez sur, onglet
entreprise et supprimer la chose qui dit code. On n'a pas besoin de ça et de ce qu'il fait, OK, ça a créé une autre fermeture. C' est dire qu'une fois la requête
exécutée, exécutez ce bloc de code et nous allons passer la requête. La réponse et le résultat Maintenant, ce moment, ce ne
sont que les types que nous avons réellement mis des paramètres ici. Alors allez-y et tapez la demande, puis un deux-points. On donne juste des noms de paramètres. Il ne le fait pas automatiquement pour nous. C' est bon. Tapez la réponse. C' est notre réponse. Et puis allez-y et tapez et résultat. Et ce sont les résultats. Donc tout ce qu'on a fait à nouveau, c'est réprimé. Entrez. Et c'était la fermeture qu'il nous a automatiquement donné en disant que ce bloc de code va être exécuté après que la demande est faite. Et nous avons mis un paramètre de requête, ce qui signifie que nous lui donnons juste un nom pour que nous puissions l'utiliser. On lui donne un nom et celui-là un nom. La demande d'incendie d'Alamo va faire toute cette force. Ça va passer la demande. Ça va passer dans la réponse, et ça va passer dans le résultat. Ok, donc c'est comme ça que les petits feux d'artifice qui font une demande. Et puis il va dans le bloc de fermeture et vous permet de savoir ce qui se passe. Donc, ce n'est pas trop mal. Et la première chose qu'on veut faire, c'est qu'on veut juste voir si ça marche. Donc, je vais imprimer la valeur de point de résultat d'impression cette description de débogage. Ok, donc ce résultat ici est qu'il a un paramètre de valeur. Ça fait partie du feu d'Alamo. La valeur est les données que vous souhaitez. Et donc on va juste imprimer à l'écran et voir si le téléchargement a même fonctionné. Ok, voyons si ça a marché. Il imprimera tout ce qu'il nous donne. Donc, ce qui va arriver, c'est que si nous voyons Jason ou des choses imprimées à l'écran, nous savons que cela fonctionne. Donc je vais aller de l'avant et exécuter l'application, d' accord ? Tirez-le ici. C' est minuscule. C' est trop grand. Juste juste. Ok, on y va. Allons ouvrir ça un peu plus grand ici. C' est le chargement. On y va. Donc, quand je clique sur ceci, cette fonction devrait appeler. En fait, mettons un point de rupture ici. Je vais cliquer dessus et les points de rupture vont s'arrêter quand il arrive à ce code, et ça va nous faire savoir qu'il est arrivé là. Alors j'ai cliqué dessus. Il est vraiment arrivé là. Je suis un dragon à briser. Éteignez le point de rupture et appuyez sur Play. Et, euh donc Ok, j'ai fait la demande. J' attends qu'elle soit imprimée. Ne semble pas imprimer. Euh, on a un problème. Ok, donc nous devons aller de l'avant et donner à notre application les permissions de Theobald City pour parler à Internet. Donc, si vous vous souvenez, on s'est occupé de ça avant, non ? Et donc ce que nous voulons faire est d'aller cliquer dans mon dossier ici, allez à votre liste info point p. D' accord. On va créer un nouvel article ici, et celui-ci s'appellera la sécurité des transports de l'AP. Rappelez-vous, neuf de l'
Iowa vous empêchent maintenant d'accéder à vos rôles qui ne sont pas https. D' accord. Et, euh, on a juste besoin de l'éteindre. Alors change-le en dictionnaire. Je suis un clic sur la flèche pour dérouler ici. Peut-être un peu petit. Malheureusement, Exco ne me laisse pas zoomer ici. Et donc créons un nouvel élément là-dedans. On va appeler ça n s Autorise un r b i traer e C'est dur type Teoh parfois, et cela permet des charges arbitraires et ça va être de type booléen. Et nous allons dire par défaut,
oui, alors regardez, laissez l'application charger n' importe quel webs,
quoi que vous soyez dehors une fois que c'est tout ce que nous disons. Je vais cliquer sur mon code Pokemon ici. Réexécutons à nouveau et voyons si nous ne pouvons pas faire fonctionner la requête ici. Éteignez ça. Donc ça devrait être télécharger des informations de charge Ciara Zardes et il regarde, nous imprimons des trucs et je pense que j'ai vu un art de charters là-dedans. Ouais, regarde ça. Donc ça marche. Alors récapitons à nouveau. Je sais que j'ai l'air d'un disque battu, mais c'est si important. C' est ce que vous allez faire dans votre travail dans tous vos points. Donc ce qu'on fait, c'est qu'on crée notre malade en se basant sur les decks de pokey. Je me souviens de la pokey ap I euro nous donne des données, nous
remorquer vraiment bon outil. Nous connaissons l'URL. Donc, nous faisons la demande et c'est une demande get. Nous passons l'URL que Jason revient dans le résultat et il imprime les données ici . Ce que nous devons faire maintenant, c'est ce que nous avons fait dans des vidéos similaires. Nous avons juste besoin d'analyser ce Jason, coller dans nos points de vue, et nous sommes en affaires. Donc je vais me débarrasser de tout ça et nous allons travailler là-dessus. Si vous regardez le Jason, remarquez que c'est Ah, c'est un dictionnaire. D' accord ? C' est un dictionnaire. C' est ce qui est attendu. Donc ce qu'on va dio est, disons, si on laisse Dicked égal résultat cette valeur. Ok, rappelez-vous, c'est un dictionnaire et les clés sont des chaînes et les valeurs ou tout objet qu'il pourrait
être un tableau pourrait être, ah, chaîne pourrait être un entier Nous ne savons pas qu'ils sont tous différentes valeurs, mais nous savons que les clés sont toutes des chaînes, donc c'est un dictionnaire de type chaîne. Donc si tout ce que nous disons c'est,
hey, hey, convertir le Jason en dictionnaire,
une nouvelle application sur IOS Swift Dictionary pour que nous puissions l'utiliser. Et à partir de ce moment, ce n'est pas si dur. Tout ce qu'on a à faire, c'est d'en extraire des champs. Donc, comme si je fais une recherche ici, tapez et attendez, il y a un poids rempli. Rappelez-vous, il y a une hauteur que nous voulons est juste appelé hauteur. Il y a une attaque de base ou il y a une attaque, je pense, c'est ce qu'on appelle C'est juste et le champ d'attaque. Il y a un type rempli incorrect. Allez. Wow, il y a beaucoup de types sur ce type ici, hum, types. Oh, c'est des types parce qu'il pourrait y avoir un ou plusieurs types, donc il y a des types qu'on va devoir attraper. On dirait que toutes nos données sont là. Ce qui est une bonne nouvelle. Ce que cela signifie jusqu'à présent est de parler avec succès à pokey ap I, le site Web et son envoi de données avec succès vers le bas. En passant, si cet Ap je tombe jamais ou que vous voulez améliorer votre application et ne voulez pas l'utiliser, il suffit de saisir ceux voir les fichiers SV et vous pouvez construire toute votre application et vous pouvez même stocker toutes les choses dans l'application sans avoir à faire ces demandes réseau si vous le souhaitez. Ce qu'on fait, c'est qu'il l'a converti en dictionnaire. Les clés sont de type chaîne, et les valeurs sont de type, n'importe quel objet. Alors commençons à en extraire des données, d' accord ? Nous allons juste dire si le poids est correct, si le poids est égal à dict. Et rappelez-vous, c'est le poids. Les noms de clés doivent être correctement orthographiés. Donc juste comme ici, attendre doit être orthographié exactement la même chose que vous obtenez de l'Internet. Et nous allons dire comme ah, string. Excusez-moi. Donc, en gros, tu dois faire ça. Réfléchissez, Si vous ne le faites pas, vous pourriez planter votre programme. D' accord ? Ne plantez pas votre programme. Assurez-vous qu'il existe en premier et qu'il se convertit correctement en chaîne avant d'essayer de l'
utiliser . Sinon, votre programme va planter fera exactement ce que je fais ici. Et chaque application que vous créez, vérifiez
toujours qu'elle fonctionne avant de l'utiliser. Et puis tout ce que nous avons à faire est de dire point point de soulignement point poids est égal au poids. Alors faites celle ici. Ok, cette attente ici. Rendez-le égal à celui qui fonctionne. Donc si on est arrivés ici, tout est bon pour y aller. Allons l'assigner. Au fait, si je n'utilise pas l'auto surveillance, que se passe-t-il ? Il nous donne une référence aérienne. L' enceinte de la propriété nécessite auto. Donc, si vous avez une propriété dans une fermeture étaient dans une fermeture et vous pouvez dire parce que les
accolades , si vous avez jamais le code et la fermeture, vous devez toujours utiliser le mot-clé self. Ok, tu dois dire un mot où vit l'objet, ce à quoi tu parles. Et vous faites référence à l'objet ici parce que ce code est sur une menace différente. Parfois, il court ailleurs. Il faut toujours utiliser soi-même. Ça vous force et ensuite on va continuer à descendre la ligne si la hauteur de laisse est égale à la hauteur de dict . Nous savons que les champs dans leur nom de clé exact sont là-dedans parce que j'ai juste regardé et, euh, ils disent toujours, hauteur de soulignement par point est égale, euh, hauteur. Et ça marche. D' accord. Et c'est bon pour moi. Si laisser Attaque égale Dit et je crois que c'était une attaque dans le Jason comme une chaîne auto-point attaque égale attaque. Et donc nous assignons simplement les variables du dictionnaire dans les variables de notre propriété sur notre objet de coupon de sondage. Ok, c'est une pratique très courante. Tous les développeurs professionnels le font à peu près comme ça. Donc, si vous le faites de cette façon, vous courez avec le meilleur des meilleurs, donc c'est cool. Hum, donc on a une taille de poids quand vous vous défendez, pas vrai ? Si la défense est égale à dict et moins de défense de frappe, comme je le dis, euh, chaîne, au fait, je ne suis pas sûr si certains de ces nombres ici parce qu'il n'y a pas de citations autour. Je ne suis pas sûr qu'ils se convertiront correctement pour nous, donc nous verrons ce qui se passe. Donc je vais juste dire que « Self dot Underscore Defense » est égal à la défense. D' accord. D' accord. Donc, il y a quelques choses qui se passent ici. On prenait juste le dictionnaire du Jason en prenait des objets. Et rappelez-vous la façon dont vous le structurez comme ces cordes ici. Ils doivent correspondre à ce qu'il y a dans le Jason ici. Ok, donc, euh, on peut avoir du succès avec du poids ou pas. Ça pourrait être un numéro. Je pense que ça ne marchera peut-être pas, mais on verra. Euh, et alors attendez. Attaque élevée. Tout ça pourrait être des chiffres. Par exemple. Je ne suis pas sûr qu'on verra dans une seconde. En fait, nous allons vérifier tout de suite si tout a fonctionné. Si tout cela a fonctionné, nous pouvons imprimer les objets de notre Pokemon principal, et il va imprimer. Selon Donc, si je me bats, impression auto point Underscore, Attendre et imprimer auto point Hauteur de soulignement, impression , point
auto, soulignement, attaque, impression, point auto, Souligner la défense. D' accord. Donc si tout a fonctionné, imprimeront tous ce qu'ils sont censés être. S' ils n'ont pas marché, ils diront probablement Neil, Neil, Neil et Neil. Ne pas confondre avec Neil, la personne qui regarde probablement cette vidéo. Mais Neil comme un n i l s exécuter une commande de programme plus r voir ce qui se passe. Éteignez la musique. Cliquez sur chars ard Et donc 905 a fonctionné. Donc ce haut sur ce poids, ça a fonctionné 17. La hauteur a fonctionné, Mais il semble que l'attaque et la défense sont des entiers que je ne l'ai pas conçu de cette façon, mais devinez quoi ? Voici un problème courant que vous allez exécuter en tant que développeur. Tu dois obéir à ce que je dis et à ces yeux qui nous disent le poids et la taille, nos ficelles. Mais l'attaque et la défense, nos chiffres ne me demandent pas pourquoi. Je ne sais pas. Donc tout ce qu'on a à faire, c'est ça. Alors allons changer l'attaque à une fin. Changeons cette attaque en un int. Et puis qu'est-ce que Dio, puisque notre principale propriété apparaîtra en attaque est une chaîne ? Je ne veux pas traiter avec des entiers parce que nous ne multiplions pas les nombres, alors convertissons simplement en une chaîne. Faisons juste ce format de chaîne spécial ici où vous pouvez insérer votre variable. Donc, on va prendre cette fin votre attaque, convertie en une corde et la mettre dans notre attaque Pokemons, qui est une chaîne. Il fera la même chose ici. La légitime défense équivaut à en faire une chaîne. Il suffit de le
convertir, de le convertir en une chaîne. Maintenant ce qu'on dit. Ce qui se passait avant, c'est que le casting était en train d'abattre. Cela échouait parce que nous essayons de le faire en une chaîne quand c'est un entier. Maintenant, nous disons que c'est entier. Et donc si tout a bien fonctionné, ces deux derniers Neil devraient maintenant être des entiers et nous devrions voir les nombres. Allons-y et courons-le. C' est exactement comme ça que j'écris mon manteau. Testez les choses, voyez comment ça se passe. Je fais des changements. Cliquez sur charger fort et là vous l'avez. Le 905 fonctionne, donc le chemin à la hauteur il a déjà fonctionné. Maintenant, l'attaque et la défense fonctionnent bien, parce que nous les lançons correctement. Très bonnes choses. Donc on a ces pièces qui fonctionnent maintenant, qu'est-ce qu'on a besoin d'autre ? Voyons voir que nous avons du poids, de la
taille, taille, attaque et de la défense. Nous devons obtenir les types OK et ah, allons juste, euh Eh bien, ouvrons notre pokey A p Je fais ça beau ici, poky a p I et voir s'ils ont des types ici. Je pense que tu vas bien, alors regarde ça. Excusez-moi. de Essayezde
parler 50 heures d'affilée sans effacer votre voix. Oui. D' accord. Um donc types, la valeur de la clé ou la clé est de type chaîne. Nous pouvons dire que maintenant, encore une fois, c'est très courant d'aller à une documentation p I regardant parce que vous avez une donnée partielle exactement comme le A P. Je le dis. Types est une chaîne, mais la valeur, Quelle est cette valeur ? Tu sais, c'est un tableau, donc c'est un tableau de dictionnaires. Ces accolades signifient que c'est un dictionnaire. Donc les types est que c'est un tableau de dictionnaires, donc c'est comme ça que nous avons pu interagir avec. Alors allons de l'avant et travaillons avec les types maintenant, donc nous y voilà. Si laissez les types se rappeler toujours si laissez vous assurer convertit correctement. Donc, nous le saisissons hors du souvenir C'est appelé types, comme vous pouvez le voir sur le côté gauche. Et tout comme je l'ai dit, c'est un que je mets le carré ouvert parce que c'est un
dictionnaire de tableau de type chaîne. Rappelez-vous, la valeur clé est une chaîne, OK ? Et ah, eh bien, dans ce cas, euh, donc c'est un dictionnaire, non ? Si vous remarquez qu'il s'agit d'une chaîne, la valeur de clé ou les clés une chaîne et les valeurs aussi une chaîne sur les deux. Donc, nous pouvons en fait au lieu de dire n'importe quel objet affaiblir juste une chaîne et une chaîne parce que nous savons que ces deux sont de la force. Donc encore une fois, types est un tableau de dictionnaires et chaque dictionnaire est de type string,
string, string, la valeur de fin de clé, les deux chaînes. Alors laissez ça absorber une seconde ce que nous venons d'écrire ici. C' est exactement la même chose ici. C' est juste là ? Je veux que vous le fassiez. Si vous ne comprenez pas tout ça, je veux que vous mettiez la vidéo en pause. Je veux que vous regardiez ce qui est mis en évidence ici, et je veux que vous le traduisiez en ce qui est mis en évidence ici. C' est exactement la même chose. C' est comme ça que tu regardes partiellement le dépôt de Jason si tu en as besoin, jusqu'à ce que tu comprennes parfaitement. C' est un tableau de dictionnaire de type avec chaîne et chaîne. Donc, si ça a fonctionné correctement, on va imprimer ou des types d'écran. Et alors essayons juste ça. C' est juste des types d'impression qui débogage la description. D' accord. Et voyons ce qui se passe si Prince Data nous savons qu'il a réussi. Alors, éteignez-vous. La musique a été imprimée, et la voilà. Il l'a imprimé. Ça a vraiment fonctionné. Certainement, ça a fonctionné. Déf. Certainement. Def a vraiment fonctionné. Eso um ouais, euh, types. Ça a l'air bien. Eso Now, qu'est-ce qu'on veut dio ? Alors pensez à cela dans notre application, Rappelez-vous, nous voulions dire avoir plusieurs types, donc ce serait comme herbe slash magique ou slash herbe Est magique même un type Ne me détestez pas fans de
Pokemon. Je ne pense pas que ça l'est. C' est comme des magies moins ou une herbe moins médium ou un dragon ou quoi que ce soit. Peut-être que nous voulons mettre des barres obliques après chaque type parce que, ah, Pokemon peut avoir un ou plusieurs types. Je pense qu'il y en a un maximum de deux. Hum, donc nous avons des types ici, alors voyons. Donc, on a quelques types de choses que l'on veut faire. Eh bien, d'abord, tu sais quoi ? On n'a même pas besoin de s'embêter avec ça. S' il n'y a pas de types. Quoi ? Ce Pokemon n'a pas de type. Nous devrions probablement en rendre compte. Donc, à la fin de votre de la fin de votre petite ah casting ici, pourquoi ne dis-tu pas ceci où les types de dot count dot com est supérieur à zéro. Donc c'est intéressant. Tu n'as jamais vu ça avant. Fermez ce côté gauche ici en essayant de garder le texte grand afin que vous puissiez le lire tout en faisant un pas mélangé. Alors regarde ça ici. Alors où est et si laissez taper. Donc ce qu'on fait, c'est qu'on saisit ça. Nous saisissons les données du dictionnaire, et nous les jetons comme un tableau de type dictionnaire et chaîne et chaîne. Donc, si cela fonctionne, si c'est bien filé, alors nous passons à cette section ici. C' est une condition, et nous disons où les types qui comptent est supérieur à zéro. Donc, ce que nous disons cette première convertie, et si elle a réussi à convertir, assurons ce tableau, parce que maintenant nous savons que c'est un tableau. Maintenant, nous allons nous assurer que le compte est supérieur à zéro. Si ce n'est pas le cas. On s'en fiche. Nous ne voulons rien faire avec parce que nous n'avons pas besoin d'un tableau qui n'a pas d'objets
dedans . Il faut qu'on ait quelque chose. Donc Onley va dans ce code s'il jette correctement et si le compte est supérieur à zéro. Une petite chose si cool où vous pourriez faire une condition juste là. Rend un peu votre code. Laissez droit moins de code. Alors, d'accord. Alors, qu'est-ce qu'on veut faire ? Eh bien, nous voulons Teoh. abord, nous voulons prendre le premier type. S' il n'y a qu'un seul type, saisons-le ici. Donc on va dire « moi ». Eh bien, nous dirons si laissez le type est égal à des types. Nom zéro. Ok, pense à ça. 1ère 2e que se passe-t-il ici ? Donc d'accord, il crée une variable. Une constante appelée type. Ce qu'on fait, c'est qu'on l'attrape du,
euh, euh, rappelez-vous que les types sont un tableau, est-ce pas ? Vous pouvez le dire par ceci et par ceci. Alors prenons le tout premier article,
est-ce que ça va casser ? Non, parce que nous savons que nous avons au moins un type, donc cela va toujours réussir, parce qu'il y en a au moins un parce que nous avons fait cette vérification ici pour nous assurer qu'il y a plus de zéro. Ce que nous faisons, c'est que nous saisissons le premier élément, et ensuite nous appelons la propriété name. Ce n'est pas différent que de dire ah que de faire ça. Um, ce n'est pas différent que de faire ça. Et puis ah, faire quelque chose comme ça Eso si on laisse le type 00 ouais. Tu sais aussi, en fait, je devrais travailler. Très bien. Je vous montre juste un exemple. Donc si je l'ai fait si je laisse le type zéro et puis j'ai dit, vous savez, si le nom est égal à type, um nom, c'est exactement la même chose. OK, je le fais juste en raccourci. Donc ce que je dis c'est, Hey, ça va nous rendre le tout premier type, qui est un dictionnaire de type, de chaîne et de chaîne. Et prenons la propriété de nom hors de lui. OK, je sais que c'est un peu déroutant, mais réfléchis à ça. Ici la fente de section zéro saisit le premier élément hors de lui, qui est un dictionnaire de chaîne de type. Donc, il nous donne un dictionnaire et puis ont immédiatement appelé sont en train de prendre un article
de ce dictionnaire. Fais semblant qu'on n'a pas besoin de le stocker parce qu'on ne le fait pas. On appelle juste la propriété name de ce dictionnaire juste après. Donc il nous renvoie le dictionnaire et ensuite on appelle ça sur le dictionnaire. C' est tout ce qui se passe. Et donc ce qui est mis dans le genre est en fait,
euh, euh, est pas en fait. C' est en fait le nom. Regardez la clé ici, son nom réel. Donc je peux appeler ça un nom, parce que c'est ce que ça nous donne là-bas. Donc, s'il y a un nom, alors ce que nous pouvons fair
95. App: Pokedex partie 14 - Compléter l'application: Bienvenue pour les pokey decks passionnants fait comme ça tu vas finir ça ? Je te le promets. Et entrons-y directement. Mark Price ici, Deb pentes point com. Et donc nous avons la taille, défense contre les attaques de
poids venant des Internets. air bien. Nous avons tout analysé. Nous avons également analysé le tableau de types l'a rendu vraiment agréable avec des barres obliques entre eux, la dernière chose dont nous avons besoin pour dio est de télécharger cette description. D' accord ? Parce que le membre ne vient pas dans le Jason. Il nous donne l'euro et a dit la description réelle et nous avons obtenu cette description. Et puis, euh, l'évolution que nous avons eu pour obtenir la mer de ce personnage a une autre évolution. Alors allons de l'avant et commençons par la description. Donc, nous sommes juste ici dans notre dans nos détails de téléchargement Pokemon où nous sommes juste en train de télécharger données, OK, Et puis si je ne l'ai pas mentionné, nous devons connecter beaucoup de choses à l'interface utilisateur pour donc ici, nous téléchargeons de l'information. On est en train de l'analyser. Ça a l'air très bien. Euh, oui, oui, oui. OK, donc on va continuer à analyser les données. Parlons de la description. Laisse-moi, euh, tirer là-dedans. Si tu regardes notre, nous amènerons notre Jason ici. C' est juste de l'un des Pokemon avis Comment ? Il y a un champ appelé descriptions. Et je pense que ce qui se passe, c'est chacun des différents jeux qu'ils ont. Différentes descriptions du Pokemon, quelque chose de nouveau à leur sujet sont différents, juste légèrement différents. C' est donc un tableau des différentes descriptions. Nous allons seulement attraper le 1er 1 Certains de ces Pokemon n'ont pas plus d'une description et ne peuvent pas garantir. Et nous nous soucions seulement de la première en ce moment. Construire votre propre poke Adex. N' hésitez pas à les télécharger, les analyser, les mettre dans l'application. Créez votre application. Ah, 100 fois plus impliqué dans celui-ci. Le monde est ouvert pour vous de le gâcher. Mais dans notre cas, ici, nous avons des descriptions, qui est un tableau que vous pouvez voir par les accolades carrées. Ici, c'est un tableau de dictionnaires, et le dictionnaire est de type chaîne et force. Nom de la clé de
chaîne, valeur de chaîne. Ok, donc ce qu'on va faire juste une partie de la description a attrapé le 1er en magasin. Pas grand-chose. Nous l'avons déjà fait pour la plupart. Alors on y va. Si je vais dire D S d sc pour la description et un r r pour le tableau est égal à dict et ce sont des descriptions. Souvenez-vous, nous saisissons ce mot clé exact ici. On sait que c'est un tableau, alors on doit t'attraper. Prenez toujours l'objet de premier niveau dans, euh, dans le Jason. Et puis une fois que nous avons, nous devons prendre le tableau. Et alors ce que nous voulons faire, c'est nous voulons récupérer la ressource. Vous l'êtes. Je vais bien. Et tu te souviens ? Donc, nous saisissons le tableau. D' accord ? Et j'ai foiré ici. Euh, voyons voir. Description. Ma mauvaise. Ce n'est pas ce que je voulais. Donc nous voulons ces descriptions car ce que ce type fait me confond. Désolé. Donc, un dictionnaire de type, chaîne et chaîne. C' est ce qu'on sait. Ok, alors on y va. Attrape le tableau. C' est un dictionnaire de type chaîne de caractères. Si cela a été analysé avec succès, ce qui sera, Euh, Et si elle a réussi à analyser, continuons et saisissons l'URL hors de lui. Parce que ce qu'on va faire, c'est attraper cette fille dont on va la télécharger. On va faire un autre appel de
téléchargement, le télécharger et le stocker. Alors faisons ça. Maintenant, disons que si l'euro est égal tableau de description, que pensez-vous que nous faisons là avec zéro ? Rappelez-vous, nous saisissons le premier élément du tableau. D' accord ? Et, euh, ce que nous devrions probablement faire aussi est que là où Klaus nouveau, où descript array de es e r nombre de points est supérieur à zéro. Donc, ce que nous voulons être sûrs, c'est que je dois gonfler ce mal. On y va. Donc, où l'où le nombre de points du tableau est supérieur à zéro. Donc, ne lançons même pas ce code à moins qu'il soit égal à zéro. Et faisons juste une clause d'autre rapide avant que je reçoive un tas de,
ah, ah, accolades, mais je ne sais pas où ça se termine, disons juste, s'il n'y a pas de description, nous allons juste dire point auto Underscore description, pas la défense. Allez, la description est égale à une chaîne vide. Ok, alors maintenant, revenons ici. Prenons l'euro. Alors prenez la toute première description. D' accord ? Et puis dans cette description, maintenant, prenons la ressource votre I comme une chaîne. Alors prenez le tout premier élément hors de celui-ci. Et si cela réussit, a pris la toute première clé hors de lui. Et, euh oh, tu sais, je ne pense pas qu'on doive le lancer. En fait, jetons un oeil ici. Ça va nous forcer à le lancer. Non, on est bons. Nous n'avons pas besoin d'un casting car nous définissons le type juste là. On l'a dit à la corde. Il sait que c'est une ficelle. Donc on n'a pas besoin de dire, Hey, ça
va être une ficelle ? Il s'attend à une chaîne. D' accord. Et Eso Daleks. Bien. Donc si on arrive ici, s'il y a de l'euro, c'est une chaîne qui a l'air bien. Et nous saisissons celui-là. Cette ressource, vous avez raison. Allons de l'avant et faisons une autre demande d'incendie d'Alamo. Et techniquement, nous faisons une demande dans la fonction de rappel dans la fermeture de celui-ci. C' est bon. C' est bon. Alors faisons une autre demande pour télécharger la description. Et une fois que cela télécharge et analysera ces données et les stocke. Ok, c'est typique. I Ceci est un grand développement réseau typique IOS lorsque vous parlez aux serveurs. Je dois le faire dans n'importe quel langage de programmation. Donc Alamo Fire dot demande les mêmes choses avant d'obtenir la demande, ok ? Et pour la ficelle. Qu' est-ce que ça va être vraiment Eso ça va être semblable à l'autre. On va mettre la base. Vous l'êtes ? J' ai plus que tu sois bien là. Alors, allons créer l'euro d'abord. Donc, nous allons dire laissez, um le n s votre l est égal à N S u r l et la chaîne va bien. Et voici où nous construirons notre Uriel. Donc on va dire que tu es la base, te souviens ? Et puis, euh, l'autre ici est ce qu'on veut, accord ? Et nous avons analysé ça, donc nous savons que c'est celui-là. Donc on va y aller et on va le mettre dans et il a les minutes de Ford Slash. Nous n'avons pas besoin d'ajouter une barre oblique supplémentaire. Donc ça va créer notre Earle a mis un point d'exclamation à la fin pour le déballer,
parce qu' on sait ce qui va marcher. Ou au moins nous allons le rattraper au moment de la compilation avant d'aller à un utilisateur. Et puis juste ici, juste en passant la fille. C' est
comme ça que j'ai appelé ça. C' est juste un nom de variable à ne pas confondre avec celui-ci ici. Tout ça, c'est des casquettes. Et,
euh, quelle était la chose de merci que nous avons besoin de faire la réponse de Jason point. Jason, c'est
là. Et euh, Ok, c'est Ah. Euh, c'est être vilain. On y va. Exco qui ? C' est une copie, mais c'est déjà là, donc je vais juste copier ça, donc je veux le refaire. Ce point réponse Jason jusqu'à l'entrée. Ok, c'est juste là. Et allons-y. Il suffit de le coller ici. Et tout ce que vous devez faire est d'ajouter une accolade bouclée de fermeture. Ok, pour correspondre à celui-ci ici encore, si vous ne vous souvenez pas, c'est juste une fermeture qui est appelée une fois la demande terminée. Qu' il échoue ou réussisse, on va supposer qu'il réussit. Donc ce qu'on a besoin de dio, c'est comme ce qu'on a fait avant. Ok, on a besoin d'une analyse. On doit analyser les données, alors voyons ce que ça va nous rendre. On ne sait pas encore. Droit ? Donc si vous allez par ici, disons que nous saisissons cette description ici,
c'est la description spécifique qui nous donne donc allons-y. disons que nous saisissons cette description ici, Allez à ah, ouvrez une nouvelle fenêtre de navigateur. Goto pokey ap je ce PDG et juste coller cette fille. C' est ce qu'on cherche. C' est là. Voilà notre description. Allons en ligne, Jason. Quatre questions et nous allons formater de sorte qu'il semble assez processus. C' est là. Euh, vois ce que ça nous donne. Donc il parle des jeux dans lesquels il est. Les données sont créées. Idée modifiée. Tout ce qui nous intéresse vraiment, c'est le champ de description. Donc, ne pas confondre avec le champ de description ici. Ce sont des descriptions. Nous appelons ceci votre L. Et puis il envoie ces données et il a un champ appelé description et avis. Le principal du fichier principal lui-même, est en fait un, um c'est un objet ou c'est un dictionnaire et il a une clé de type chaîne et valeur de type. Toute cause d'objet dans ce cas, c'est une chaîne. Dans ce cas, c'est un numéro. Donc, vous voulez l'appeler n'importe quel objet. Donc on ne sait pas à quoi ressemblera le Jason. Et c'est essentiel de savoir à quoi ressemble Jason avant de pouvoir l'analyser, évidemment. Donc, si on appelle cette description, euh, dictée pour le dictionnaire de description, l'ensemble des données, c'était le résultat de cette valeur. Tout comme on l'a fait avant. Comme rappelez-vous, c'est un dictionnaire de type string et n'importe quel objet. On a juste parlé de ça là-bas. D' accord, Alex. Bien. Donc, c'est Ah, description Dictionnaire, Dictionnaire de chaîne de tout objet qui semble bon. Et faisons un autre si laissez bien, juste une description égale description. Dické. Vous en prenez la clé maintenant. Description. Donc cette clé ici, c'est ce que nous saisissons. Nous en saisissons la valeur. On va le lancer comme une corde, accord ? Parce que c'est n'importe quel objet, euh, on ne sait pas ce que ça va être, mais on a une distribution à une corde. Dis, Hey, c'est une fois que cette clé est spécifiquement censée être une chaîne. Pourquoi la moitié de ce bleu et la moitié de ce rouge ? C' est le prochain code Bug X Code fait un peu buggy. Et parce que nous avons la description maintenant, est-ce vraiment si facile ? Tout ce que nous avons à faire maintenant, c'est un signe de la chose. Disons que la description soulignée par point auto est égale description. Et si nous sortons de ce bloc ici, nous devrions maintenant, en fait, ce n'est pas vrai. Donc voici quelque chose d'intéressant. Ordre, ordre des opérations. Faites attention. Ok, donc cette ligne de code va être appelée, non ? Et puis celui-ci, tout va bien. Mais la demande arrive, non ? Donc, si je devais écrire du code ici, cela serait effectivement appelé d'abord avant même d'arriver ici. D' accord ? Tu es genre, attends, quoi ? Il descend. Comment est-ce qu'on saute ? Rappelez-vous, la requête est synchrone. Quand tu feras cette demande, ça va être sur Internet. Ça va prendre quelques secondes. Qu' est-ce que ce bloc de codes va continuer ? Où est ça ? On va attendre que la demande soit faite. Ok, donc ce qu'on va faire est ici. On va imprimer la description. Il s'agit d'une description du trait de soulignement imprimé à point unique. Et si vous voyez une description s'imprimer à l'écran, vous savez que cela a fonctionné. Et puis nous allons passer à autre chose si construire et courir fait à dio Nous sommes si près et son application semble assez cool. Vous devriez construire et le montrer à tous vos amis. Ils vont être emportés et vous devriez être heureux de le faire. Tu auras beaucoup de compétences sous ta ceinture une fois que tu auras ça ici ? Donc c'est juste des courses qui prennent une seconde. Entendez de la musique. Voyons la description des jouets de souffle. Un Pokémon brutal. Au fait, tout ça dit Pokemon. Je pense qu'il y a quelque chose qui ne va pas avec ça. Avec leur A p je Désolé, pas fouiller l'esprit, mais quel que soit un Bruto Pokemon avec des jets d'eau sous pression sur sa coquille. Alors ça marche ? Ça marche. Donc, ce que nous avons fait, c'est que nous avons saisi l'URL fournie avec le Jason original. Il nous a donné un euro dans la description. Nous avons téléchargé l'URL dans les données à partir de celui-ci, puis nous saisissons la description hors de celui-ci. Nous avons donc fait une autre demande. On s'approche vraiment,
vraiment, ici. Tout le monde supporte avec moi. La dernière chose, c'est que l'évolution va bien. Comment ça va marcher ? Donc ce qu'on veut faire, c'est saisir la toute prochaine évolution, accord. Et juste pour montrer l'image pour elle et le nom. D' accord. Donc, si on regarde, voyons ce qu'on a ici. évolutions. Avez-vous quelques évolutions ici pour nous ? A moins que le mal avec les évolutions ici ? évolutions. Ok, donc si vous regardez ici, euh, dans notre dictionnaire initial, que nous avons commandé actuellement avoir. Il y a une évolution Zarei, et il peut y avoir des données et il peut ne pas, parce que certains pool viennent n'ont pas d'évolutions, et cela ne nous donne que la toute prochaine évolution. Ça ne nous donne pas tous, ce qui est malheureux. Je pense qu'ils devraient l'ajouter. Mais, euh, c'est le A p I. On doit faire ce qu'ils disent. Et donc ce que cela nous donne, c'est le niveau que la prochaine évolution se produira au niveau du
personnage, le nom de l'évolution, Um, puis Thea la ressource où vous pouvez réellement télécharger les données. On ne va pas faire ça. Quoi ? Ce nombre est important. C' est le vrai numéro de Pokemon dont on va avoir besoin. Et puis, euh, comment vous arrivez à cette évolution. Parfois, il se met à niveau. Parfois, c'est en échangeant le Pokemon. Il y a d'autres façons de piquer un impliquant. Alors commençons à écrire ici. Donc, nous savons que les évolutions sont,
euh, c'est un tableau, et c'est un tableau de dictionnaires, comme vous pouvez le voir ici. Et le dictionnaire a une clé d'une chaîne et le type de valeur de n'importe quel objet car il a des
nombres et il a des chaînes donc nous ne pouvons pas spécifier un type spécifique pour la valeur. Alors on y va. On y va. On y va. On y va. Si l'évolution est juste un bon vieux codage sûr ici égal Dit, vous vous souvenez du dictionnaire ? C' est bien là-haut maintenant. Ok, on est toujours dedans. Donc, euh égal à Dit Evolutions saisissaient la clé exacte des évolutions. Et, euh, rappelez-vous, c'est un dictionnaire, accord, de type chaîne et n'importe quel objet. Ok,
ça a l'air bien. Donc si on est entré ici, ça veut dire qu'on a réussi, euh, analyser les évolutions. Et, euh, tu sais quoi ? Dans ce cas, , on peut juste dire,
euh, euh, on peut en faire un autre. Où Klaus En fait, où le nombre de points d'évolutions est supérieur à zéro. Alors n'allez dans ce bloc de manteau que s'il y a au moins une évolution. Sinon, nous savons qu'il n'y en a pas, et alors nous n'avons rien à faire, nous
rendre la vie plus facile. Alors on y va. On veut obtenir le nom de l'on veut obtenir le nom du, euh du personnage. Alors allons de l'avant et de dire, si on laisse à égalité évolutions zéro. D' accord, au fait, quoi ? Je sais que je travaille avec cet AP. Je l'étais. Je l'ai testé. Il ne vous donne jamais qu'un objet d'évolution. Je ne sais pas pourquoi, alors allez-y et prenez le 1er 1 et vous serez en sécurité, qui est ce qu'on fait ici. Ok, Zero. Alors que nous saisissons le 01 et que c'est un dictionnaire, est-ce
pas ? Donc, nous pouvons maintenant appeler la propriété à laquelle est le nom en tant que chaîne. Donc ça nous a donné un nom, donc ça a l'air génial. Hum, si deux équivaut à une révélation ou à des évolutions. Ok,
Maintenant, c'est tous les arcs-en-ciel et les papillons juste pour l'instant parce que l'un des problèmes que j'ai trouvés pendant que j'
allais à l'a p, c'est qu'il y a une méga évolution. Rappelez-vous comment au début, quand nous sommes allés au fichier CSB, supprimé toute la junk supplémentaire avait méga évolutions et toutes sortes de choses folles que nous ne sommes pas même prêts à rendre compte ? Mais cependant le a p je nous envoie encore certains des Maiga et ça gâche avec des trucs, alors n'incluons pas tout ce qui a le mot Maiga dedans. Ok, euh, et ce que je dis c'est, ah, ça l'est aussi. Ça pourrait dire des méga explosions. Oyster peut aller n'importe quoi. Et si les créateurs de mots arrivent et ça va, on va abandonner, accord ? Parce que nous ne sommes pas prêts à gérer Nous n'avons pas les graphiques pour cela. C' est quelque chose que j'ai vécu moi-même. Je ne vais pas le démontrer juste parce que c'était un peu douloureux de comprendre et de
gérer. Donc sur tout ce qu'on fait ici en disant, Ok, tu as attrapé le nom des Pokemons, ok ? Et si le mot Maiga est n'importe où au début et si ces quatre lettres sont
dedans , accord, euh, étaient plutôt ce que nous disons c'est, euh, si ça cherche Maiga et ne trouve rien, ça veut dire que nous sommes prêts à y aller. Ok, donc ça veut dire que Ah Maiga n'est pas trouvée. Cause range de chaîne retournera la plage où cette chaîne a été trouvée. Eso Si c'est Neil, ça veut dire qu'il n'a pas été trouvé. Et c'est bien, parce qu'on n'en veut pas si c'est là. Donc on est là maintenant. On ne veut pas faire face à la méga. On va mettre quelques notes ici. Euh, ne
peux pas soutenir Maiga Pokemon en ce moment, mais ap, j'ai encore hum, faire des données. Et ça. Je ne mets généralement pas beaucoup de commentaires dans mon code parce que Coach devrait s'expliquer lui-même. Mais quand vous avez des problèmes très spécifiques, comme pourquoi écrivez-vous le mot Megan ? Il peut être logique d'écrire quelques commentaires de futurs programmeurs comme, Oh, ça a du sens. Et donc ils ne rencontrent pas le même problème. Ok, donc ce qu'on veut faire maintenant, alors pense à ce qu'on veut savoir. On veut. On est là. Il y a une évolution. Ce n'est pas Omega. Donc ce qu'on a compris jusqu'à présent, il y a au moins une évolution. Ce n'est pas Omega parce qu'on vérifie ça ici. Qu' est-ce qu'on fait maintenant ? Eh bien, ce qu'il nous faut, c'est prendre ce numéro ici et montrer cette image et pourquoi ? Eh bien, parce que rappelez-vous, nos images sont toutes nommées par des numéros. Le problème, c'est qu'il n'a pas vraiment une idée d'Adex. Vous remarquez que cela ne nous donne pas l'idée de l'évolution Pokemon. Donc, je pensais comme, est-ce que je veux vraiment faire 1/3 demande Web pour télécharger ce dang I d ? Eh bien, la réponse est non, parce que c'est juste ici. Regarde ça. On l'a juste là. On va juste devoir l'extraire de cette corde. Je pense que c'est le meilleur moyen pour nous d'attraper le prochain mois de pokey. Pour qu'on puisse montrer l'image. Cela nous permettra d'économiser une requête Web et de nous faire gagner plus de temps et de vitesse. Et c'est juste la bonne chose à faire. Encore une fois, on va prendre ce numéro de cette chaîne et montrer à l'image le numéro de l'image . Alors on y va. Laisse-moi faire de la place ici. Laissez str juste C'est une chaîne temporaire. C' est tout ce que c'est. Evolution zéro. Alors prenez la première évolution et prenez la ressource. Ton oeil, ton oeil. Ok, alors attrape la ressource. Votre moi et Ah, eh bien, nous ferions mieux de faire si laissez haut si les évolutions ressources votre I, hum qui a l'air bien. Et en fait, nous ferions mieux de dire comme chaîne. Ok, donc si nous sommes en train de dire, c'est que l'impuissance appelle ça ton « Je OK », donc si ça marche, ça veut dire qu'on attrape. Nous avons réussi à saisir l'URL de là. D' accord ? C' est ton oeil. Vous êtes tous la même chose. Nous avons réussi à l'attraper hors de là. Et ce que nous voulons faire maintenant, c'est dire, Ah, laisser une nouvelle, hum, nouvelle chaîne. D' accord ? égal qu'on va faire quelque chose d'un peu différent. Qui allait dire votre oeil point String par chaîne en remplaçant chaîne en remplaçant occurrences de chaîne. C' est celui que nous voulons. D' accord. Et donc la cible. Ok, donc la cible sera, hum, ce qu'on va voir. Tiens, mets ça ici. Je vais vous expliquer ce qui se passe. Ta probablement comme si je n'avais jamais vu ça avant. Ok, regarde ce qui se passe ici. Ce qu'on fait, c'est qu'on dit, Hey, créons une nouvelle chaîne. Comment créer le flux ? Eh bien, on va attraper cette corde existante, qui ressemble à ça, au fait. Et ce qu'on dit,
c'est de
remplacer toutes les occurrences de ça. Alors remplacez toutes les occurrences de ceci ici, débarrassez-vous de cela. Peu importe ce qu'on va, on va le remplacer par quelque chose, et je dis, remplace-le par une chaîne vide. Oh, c'est intelligent. Affaiblir. Dépouillez tout ça. Prenons juste ça. Et si on trouve cette corde là-dedans, attrapons-la et remplacons-la par rien. Donc on vient de dépouiller tout ça. Étaient un peu On est presque là. On a presque ce numéro. Nous devons nous débarrasser de la dernière barre oblique que nous pouvons utiliser. Donc, la nouvelle chaîne que nous avons maintenant débarrassé de la version A P I un slash Pokemon se sont débarrassés de cela. OK, nous l'avons remplacé par une chaîne vide. Et enfin, une fois de plus. Nous disons juste, laissez engourdir le nombre de la Pokemon ok égale nouvelle chaîne qui va le faire à nouveau chaîne en
remplaçant les occurrences de chaîne. Et donc, débarrassons-nous de cette dernière barre oblique. Remplacez-la par rien. Nous avons donc d'abord remplacé la première partie ici. Débarrassez-vous de tout ça. Ils sont toujours cette chaîne ici dont nous devons nous débarrasser. Donc on recommence. On prend celui-là. On vient de changer, et ensuite on se débarrasse de la dernière barre oblique. Et maintenant, nous avons est le nombre Oui, Affaiblir. Prenez notre prochain Pokemon. Qui ? Et donc ce qu'on va faire maintenant, c'est dire, euh, moi 0,0, prochaine évolution nous devons stocker le i d pour que ça ne pèse pas. Nous avons le texte que nous allons montrer, mais nous devons commencer l'idée pour pouvoir tirer l'image. Bien sûr. Prochaine évolution du bar privé. Ah, je l'ai et ça va être une ficelle. Et la raison pour laquelle je vais en faire une chaîne, c'est parce que, euh, notre image est une chaîne quand on la tire vers le haut. Et donc pas de raison de le convertir en un entier se promener ici. Maintenant, nous pouvons dire point auto prochaine évolution que j'égale, hum engourdi. Cool. Euh, ça a l'air bien. Et puis prenons le nom. Droit. Self dot Prochaine évolution. Txt, euh, est égal et, euh, on n'a pas attrapé le ou on les a attrapés ? Oui, on a attrapé le nom. C' est le point, n'est-ce pas ? Oui, si on le laisse. Donc prochain texte diabolique évolution. Hum, et c'est juste le nom. Alors mettez juste deux sens. Souviens-toi, on prend le nom ici. Ouais, c'est bon. C' est exactement ce qu'on veut. Donc on s'empare juste des deux. Et, euh, quoi d'autre ? Hum oh, notre ah, notre personnage. Tu te souviens ? Il est censé montrer le niveau quand on clique dessus. C' est supposé dire Prochaine évolution Venise ou au niveau 34 ou 32 ou tout ce que nous avons besoin pour stocker le niveau aussi bien si il y a un niveau, Um, mettons-le sur leur bar privé prochain niveau d'évolution. Cela pourrait être une chaîne de type aussi. Même quand vous avez des nombres, il est OK de le mettre dans des chaînes, parce que si vous imprimez simplement leurs chaînes, moins que vous n'effectuez des calculs sur eux, ils pourraient rester une chaîne elle-même que la prochaine évolution niveau. On ne l'a pas encore attrapé. On doit le faire d'abord. Donc disons presque là. Les gars toujours là si laisser niveau égale évolutions. Zéro évolution zéro. Et comment ça s'appelle Level ? Je regarde juste ça. Jason là-bas s'appelle Level as Shoe. Je pense que c'est un entier. Il veut un entier, donc c'est un entier. Et puis ce que nous allons faire est nous dirons ah, auto point prochain niveau d'évolution, et nous allons juste le convertir en une chaîne assez facile. Fais juste ça. Donc, s'il y a un niveau, allons-y et économisons-le. S' il n'y en a pas, vous savez bien, nous n'avons même pas besoin de commencer ça. On s'en occupera plus tard. On n'a pas besoin de rien vide là-dedans. Whoa ! Ok, les gars, eso nous avons, euh nous avons ces choses qui fonctionnent ici, ce qui est vraiment cool. Il faut juste les imprimer et s'assurer que cela fonctionne. Euh, oui. D' accord. Bon choix. Eso se self dot La prochaine évolution commencera ici avec le i d. Print self dot Next evolution txt et print self dot Prochain niveau d'évolution. Qui ? Voyons si tout a fonctionné ici. Et, euh, je vais ouvrir mon truc ici, ok ? Et je sais que, euh, je sais que c'est bulbeux ou manifestement évolué, alors cliquez sur lui et voyons si ça a fonctionné. Ok, c'est Oh, c'est
là. Ok, voilà. Je l'ai trouvé. Donc prochaines idées d'évolution au lierre. Maux. Et puis, hum 16. Voici un exemple parfait dont je vous parlais. Tu es genre, qu'est-ce que tu veux dire ? Souviens-toi comment on analyse comme une attaque de manière
et tout ça,et ensuite on est genre,
OK,
on doit avoir la bonne description. Souviens-toi comment on analyse comme une attaque de manière
et tout ça, et ensuite on est genre, OK, Nous faisons donc une autre demande ici pour la description. Maintenant, c'est le suivant dans le code. Mais ce qui est intéressant, c'est pourquoi mes descriptions sont imprimées en dernier et mes empreintes ici mettent en premier. Eh bien, c'est parce que ceux-ci se produisent avant que cette demande ne soit faite. C' est ce qu'on appelle des requêtes asynchrones. Ok, donc vous ne comptez
jamais, jamais,
jamais, sur quelque chose pour être linéaire lorsque vous faites une requête asynchrone. On ne sait pas quand ça va revenir. Donc, je sais une bonne chose qui souligne, la description est venue après que nous avons passé par ces autres choses. Et même si les codes ici en bas de sorte qu'il fonctionne certainement, il nous a donné une idée de la prochaine Pokemon son nom et le niveau qu'il évolue. Donc on a qu'on attrape ? Je pense que nous avons toutes les données dont nous avons besoin. Um, c'est vraiment cool. Donc, nous avons toutes les données dont nous avons besoin du serveur, donc félicitations. Nous avons parlé avec succès au serveur. C' est un truc très complexe. Analyse, Jason. Nous avons couvert beaucoup de ce que vous allez faire dans votre travail de jour en jour. Comme quand tu analyses Jason, on ne va pas faire ton boulot. Tu ne vas pas faire beaucoup de choses différentes. Ce qu'on vient de faire en ce moment, ce qui est vraiment cool. Donc maintenant, ce qu'il nous faut, c'est qu'il faut que ces données se connectent à vous, moi et nous avons un problème en ce moment. Allons de l'avant et élargissons ceci ici et passons à notre contrôleur de vue. Non, pas voir Controller La cellule Pokey vue. Ok, donc on a le Pokemon stocké, non ? C' est juste là. Mais que faire si je veux obtenir la hauteur ? hauteur du point Pokemon ? Oh, non, on ne peut pas l'avoir. Pourquoi ? Parce que c'est privé. Nous devons donc aller de l'avant et créer des getters pour toutes nos propriétés. Et allons-y et faisons ça Maintenant,
hum,
maintenant , avec l'objectif C, avec l'objectif C, vous pouvez cliquer avec le bouton droit de la souris et créer un getter. Voyons si ça nous permet de le faire ici dans la nouvelle dans la nouvelle Ah Oh, voyez, regardez ça. Ils ne peuvent pas le faire C'était rapide, mais ils ne l'ont pas avant de faire juste clic sur chaque facteur et de créer un getter et setter encapsulate et ça mettrait ça le mettrait pour vous, mais ça ne va pas le faire pour nous. On a bien compris. Il est tout manuellement. C' est bon, cependant. très bonne pratique. Certainement. Ne te trompe pas. Ne rendez pas tout public. C' est une mauvaise pratique. Tu vas impressionner les gens. Si vous le faites comme je vous le montre,
vous allez faire pression sur un employeur potentiel de Boston. Donc on a le nom. Tu as les decks de pokey. Allons de l'avant et faisons tout le reste de ça. On y va. Et sur ceux-ci, nous n'avons pas besoin d'une modification. On a juste besoin de getters. Jusqu' à présent, la description de la chaîne de type va juste retourner la description. Et je ne vais pas jeûner pour la vidéo. Je veux que vous voyiez la répétition ici. Donc, um chaîne renvoie le type de soulignement. Ok, donc c'est le genre qui vient après type ? Nous avons la défense, la taille et le poids de notre défense de type string. Retour le trait de soulignement. Défense de notre chaîne de type hauteur. Plutôt tourné. Soulignement. Hauteur. Encore une fois. On est juste de bons programmeurs, en gardant notre code propre, en veillant à ce que personne ne puisse détruire nos données. Ça ne devrait pas le détruire. Retour. Soulignement. Attends, qu'est-ce qu'on a d'autre ? Attaque de notre attaque de type chaîne de retour soulignement. répétition d'attaque est très, très, très important pour l'apprentissage. Eso ne vous découragez pas en copiant tout cela ici et en faisant cela encore et encore Next
Evolution Prochaine évolution. Prochaine évolution. Ok, euh, prochaine évolution. Txt. Je vais juste le faire ici. C' est un peu hors ordre, mais je ne veux pas continuer à faire défiler vers le haut et vers le bas de notre prochaine évolution Txt de type string retour Next Evolution txt bar Prochaine évolution I d. Qui x retourne la prochaine évolution I d et, euh, faire un autre Il est apparu cette fois de notre prochain niveau d'évolution de chaîne de type. Et, euh, revenons un nouveau niveau d'évolution, en fait. Pokemon votre l Nous n'avons pas besoin de revenir parce que pas besoin de l'utiliser. On fait ça ici, parce que tu vas avoir besoin de savoir ça ? Alors suivons l'ordre des opérations. Donc, sur leur contrôleur de vue principal, on a cliqué sur l'icône, non ? Et donc ce qu'il fait, c'est qu'il charge notre segway et charge la vue détaillée lorsque la vue détaillée charge pour la
première fois, qui est cet écran juste ici. C' est de l'espace vide. On signe le nom et l'image en ce moment. Et ce que nous faisons, c'est que nous téléchargeons les détails de Pokemon. OK, tu te souviens ? Eh bien, nous
allons le tester ici. Tu veux voir un accident ? Essayons un accident. Faisons semblant que, euh, nous venons de charger cette vue. Alors allons de l'avant et chargeons la hauteur. Donc, nous allons dire que le texte de point d'étiquette de hauteur est égal à la hauteur de point Pokemon. Voyons ce qui se passe. Voyons le voir. Marron, marron, marron. Oh, non. Un crash ne veut pas dire que j'étais un mauvais codeur. Sache ce que ça veut dire, c'est que ça pourrait signifier ça. Mais ce que ça veut dire, c'est que tu n'as pas initialisé. Vous avez initialisé vos données. Et donc d'abord, on aurait pu faire l'une des deux choses. La première est que vous pourriez garantir qu'il y aura des données. Mais ce qui est aussi une chose courante à faire, c'est de le faire ici est bien, aussi. Et cela fait cela si laissez la taille de votre poids, nous l'avons déjà fait si bien, c'est ainsi que vous gardez le code supplémentaire sûr sans accidents. Si vous voulez que vos utilisateurs soient heureux, vous allez faire beaucoup de choses. Si laisser la hauteur est égale à la hauteur de point Pokemon et alors vous dio hauteur étiquette de point texte égal à la
hauteur et nous allons le faire, en passant. Mais nous ne le ferons pas ici. Alors rappelez-vous comment nous avons créé ce téléchargement Pokemon détails, et puis il a mis cette fermeture ici. Eh bien, voyons ce qui se passe quand on va imprimer et dire, euh, on est arrivés ici ? Tu es arrivé quand le Pokemon a fini de télécharger ? Jetons un coup d'oeil ici. Et je me suis débarrassé de notre code. Nous n'y sommes pas arrivés. Pourquoi ? Eh bien, parce qu'on n'a jamais réalisé la clôture. Donc ce que nous avons besoin de dio, c'est de retourner à notre mois pokey et de remarquer notre fonction ici. Télécharger les détails de Pokemon On a passé dans la fonction qui va s'appeler la fermeture qui va s'appeler quand on aura fini. Mais on n'a jamais appelé
ça, ça, alors quand devrions-nous l'appeler ? Eh bien, nous n'avons pas fini de télécharger tant que, euh, cette chose principale n'a pas été téléchargée. Et puis la description, n'est-ce pas ? Le tout le reste que nous obtenons dans le cadre de ce paquet ici ce dictionnaire. Mais la description est une deuxième requête. Et puisque c'est asynchrone, nous devons attendre que ça se termine avant que, euh, on appelle le succès
soit termin
96. Introduction à l'application: Hé, quoi de neuf, tout le monde ? Mark Price ici à profondeur savons dot com Nous allons parler de l'application que nous allons sentir aujourd'hui. Maintenant, Thistle est super excitant. C' est le gros. Ok, donc on va construire notre propre application de style Facebook. Pas Facebook lui-même. Mais notre at est appelé sourd lent mettant en valeur les idées. Je libère une application. Et je veux que les gens qui suivent mon cours puissent poster des images et des descriptions de la facture absolue afin qu'ils puissent les partager avec la communauté. Les gens peuvent les aimer des choses comme ça. Donc, il utilisera les bases de feu. Nous avons mis en œuvre un style fantastique de conception de matériel Google pour rendre son application vraiment agréable. Donc, nous employons des pratiques de codage professionnelles au meilleur niveau que nous pouvons, hum, ce qui vous permettra de travailler Teoh dans un cadre professionnel. Euh, ce qui veut dire, euh, on ne fait pas les choses fromagantes. On ne fait pas les choses, Aziz. Ils ne devraient pas être faits. Nous les faisons comme ils devraient être faits. Et donc si vous pouvez construire cette application et passer à travers et apprendre ces choses, vous serez tellement en avance sur le jeu. Euh, aucun autre cours ne va dans ce niveau de profondeur pour les nouvelles personnes sur la façon de construire des applications de
style professionnel . Et donc je veux vraiment que vous preniez le temps de vous concentrer sur cela et que si vous deviez
publier une application comme celle-ci sur l'APP Store, ok, un est que vous pourriez probablement obtenir beaucoup de téléchargements à est que vous allez impressionner tant de gens, pas seulement la famille et les amis, mais aussi les employeurs. Donc c'est vraiment une grosse affaire. Prends-le au sérieux et définitivement. Regardez, jetez celui-ci sur l'APP Store, et donc vous pouvez bien sûr, vous
connecter, connecter connecter avec Facebook ou vous connecter avec e-mail et mot de passe, euh et puis quoi ? Vous vous êtes connecté. Nous avons également une fonctionnalité. Vous, il est automatique se connecter pour la prochaine fois que vous entrez, puis il charge le flux. moment, c'est juste un flux global et tire toutes les données de la base de feu et,
euh, encore une fois, tout s'est bien coiffé. Et vous pouvez aimer les messages que vous pourriez. Contrairement aux messages faisaient des connexions avec des comptes d'utilisateurs, des choses comme ça. Donc tout peut être suivi, et en fait, nous allons couvrir tout le même si ce sont toutes les fonctionnalités que vous voyez ici. Le code que nous avons réellement écrit vous permet d'aller plus loin sur le projet lui-même. Vous pouvez ajouter plus de choses que le framework est là pour vous de prendre cela aussi loin que vous voulez . Cela étant dit, ça va faire beaucoup de travail. Allons-y et commençons.
97. App: Showcase Partie 1 : Aperçu du Firebase: Yo, quoi de neuf, mes peeps ? Rompre les prix Mark, Deb pentes dot com Et aujourd'hui, nous allons parler de Firebase Firebase est un
fantastique système possédé par Google, soutenu et soutenu par Google. Donc tu sais, ça va être très bien fait. Et fondamentalement, euh, pensons-y comme je suis dans le programmeur de l'Iowa. J' apprends de nouvelles choses, mais je ne connais pas le développement Web. Je ne sais pas comment faire des serveurs. Je ne veux pas m'occuper de la sécurité. Comment puis-je gérer tout ce genre de choses ? J' ai besoin de mon application pour parler à d'autres APS parce que vous ne pouvez pas faire une bonne application sans parler à un serveur parce que vous avez besoin de données transmises d'avant en arrière dans le Facebook a des serveurs. Vous savez, Snapchat, tout a un serveur, mais vous ne connaissez pas le développement de serveur, et cela prend beaucoup de temps et vous avez une équipe, vous avez un million de dollars. Alors fais le sauvetage. Ne fais pas Adam Firebase. Maintenant firebase est un système qui vous permet d'obtenir rapidement votre web votre application, parler au Web, parler à son serveur. Et donc ils ont un système dans sdk est en place où vous n'avez pas à construire votre propre serveur et vous n'avez pas besoin d'avoir ces compétences. Et si vous êtes un de ces gens qui veulent faire une très bonne application ou si vous voulez obtenir un emploi et que vous voulez faire une application qui va impressionner les gens,
c' est le Do it Vous pouvez faire n'importe quoi avec ce K dans notre cas, euh, notre application, qui est sourd pentes vitrine. Ok, c'est presque comme un Facebook. Vous faites des messages avec des photos et des choses comme ça et dans un flux géant, et les gens peuvent le regarder pour que vous puissiez construire votre propre Facebook. Vous construisez votre propre Twitter, vous êtes sur le chat. Tu vas apprendre quelques principes ici. Ça vous prendra un long chemin. En fait, si vous utilisez cet outil bien, vous allez fumer. Tu te débrouilles bien. Alors allons-y. Ici. Ceci est Firebase goto firebase dot com. Magnifique site web, aussi, au fait. Aimez leur amour, leur design. Et voici même l'exemple parfait dans leur première page ici, ils sont en quelque sorte montrer comme un système de publication Facebook. Ce n'est pas si difficile à faire avec la base de feu Si vous construisez votre propre dos et votre serveur, vous écririez beaucoup de manteau. Mais Firebase le rend vraiment facile. Eso ils offrent quelques choses. L' un est le stockage de données où il stocke réellement les données. Et ce qui est cool à propos de Fire Base, c'est ses connexions basées sur socket. Et peut-être que ça ne veut rien dire pour toi sur ce que ça veut dire, c'est que c'est en temps réel. Donc, disons que vous envoyez un message dans un salon de chat. Ce qui va aller à tout le monde dans tout le monde va instantanément l'obtenir. Aucun travail supplémentaire n'est nécessaire. Donc tout ce que vous faites sur la base de feu sera instantané, très ,
très rapide , très puissant. Donc, je vous recommande de consulter le site Web à la recherche de toutes leurs fonctionnalités. C' est gratuit. Ok, le niveau gratuit. Et en fait, j'ai reçu un e-mail il y a deux jours de leur part disant qu'ils ont même augmenté le nombre de choses vous obtenez pour le niveau gratuit. Ils réduisent les prix. Ils me donnent beaucoup plus pour ton argent ici. Ils ont dit qu'ils voulaient obtenir plus de gens, hum, utilisant leur plate-forme. Donc ils font de grandes choses ici. Ça dit Ah, vous savez, 100 100 appareils connectés est la limite, OK, sur le plan gratuit que peut-être vous pensez à 0 100 Ce n'est pas beaucoup. Eh bien, c'est 100 appareils simultanés,
ce qui signifie que 100 personnes ne seraient pas, tout simplement ne serait pas seulement utiliser votre application en même temps, mais 100 personnes devraient faire une demande comme un paquet de données devrait être défini sur le exactement à la même heure. Et donc ce que je dis, c'est que si c'était une milliseconde avant ou une milliseconde après, vous êtes prêt à y aller. Mais si 100 personnes ont dit un pack de données en même temps à travers l'application, alors vous atteindriez votre limite, donc cela pourrait être l'équivalent. Si je me souviens avoir regardé les chiffres à droite, cela pourrait être l'équivalent de 70 000 utilisateurs techniquement utilisant votre à avant que vous ayez à
commencer à payer. Donc pas trop mal. Donc ce que tu veux, c'est aller de l'avant et t'inscrire ici sur le côté droit, ok ? Et entrez votre email et votre mot de passe, puis inscrivez-vous. Je me suis déjà inscrit à mon compte. Donc, une fois que vous
vous êtes inscrit, vous serez en mesure de vous connecter à un tableau de bord, alors tirez mon tableau de bord et, euh, allez ici à gauche ou ici au milieu, partout où la nouvelle section de l'application est. D' accord. Et tout ce que vous devez faire est de faire un nouveau nom d'application vont juste s'appeler Dev Slopes Showcase . D' accord. Et pendant que tu traverses ça, tu ne pourras pas utiliser les mêmes peintures murales que moi parce que, euh, elles doivent être uniques. Vous êtes d'autre. Eso choisissez votre propre nom. J' ai ce que tu veux. En fait, vous n'avez pas à nommer l'Europe que vous pouvez faire votre propre thème et tout pour si quoi, Vous êtes Ellen ici et cliquez sur créer une nouvelle application Et maintenant nous avons une nouvelle application et c'est tout ce que vous devez dio qui était facile. Quelques autres choses que vous pouvez ajouter des collaborateurs. Donc, si vous voulez travailler avec quelqu'un, vous pouvez ajouter un collaborateur pour lui envoyer un e-mail. Ensuite, ils consignent sur Go dedans. Eh bien, tu vas être particulièrement intéressé par ce
tutoriel de cinq minutes . D' accord. Ok, euh et, euh, plus particulièrement. Et ça te donne juste un peu de temps, mais surtout tu vas vouloir regarder que j'ai cliqué. Démarrage rapide Début rapide ici. Tu vas vouloir regarder plus. Surtout, euh, le démarrage rapide IOS. D' accord. Et, euh, ça va vous dire comment l'utiliser avec IOS. On va revoir tout ça. Euh, mais, euh, c'est important que tu apprennes à commencer à lire la documentation. D' accord ? Je ne peux pas souligner que assez faire quand tu as fini avec ce cours. Ne comptez pas sur Oh, je dois trouver une vidéo pour ça. Tu dois apprendre ce que tu peux à partir de ces vidéos. Mais alors vous devez aussi apprendre à lire la documentation et commencer à passer par ici. Et aussi, si vous êtes un lecteur de vitesse, accord. Comme faire les choses très vite. Tu dois sortir de cette habitude pour que j'étais un lecteur de vitesse quand j'ai commencé à apprendre à programmer . Je passe par tout très vite quand tu apprends le programme, chaque mot compte. Lisez chaque mot parce que c'est souvent un mot, une syntaxe ou une ligne qui est désactivée. Cela provoque des problèmes dans vos applications, des choses comme ça ou votre compréhension. Donc chaque mot est important de toute façon. IOS Démarrage rapide Fantastique. Resource a un guide sur la façon de le faire à fond. Je veux dire, ils le prennent vraiment d'un vertige ici. Je veux dire, ils ne pouvaient pas Google n'auraient pas pu fournir un meilleur service. D' accord. Parle de tout ce que vous devez savoir sur la façon d'utiliser cela pour IOS. Des trucs tellement cool. Hum, donc c'est une vue d'ensemble de Firebase. ce moment. Vous pouvez l'utiliser pour n'importe quel type d'application. Tout ce que vous pourriez penser a besoin d'un backend. OK, vous pouvez utiliser la base de feu pour super rapide, puissant. Ils ont fait du bon boulot. Et je vous recommande de l'utiliser pour tous vos APS qui nécessitent un serveur back-end . Jusqu' à ce que tu puisses apprendre tes propres compétences serveur ou obtenir de l'argent pour payer un développeur de serveur. Mais même alors, la base de
feu est un choix fantastique. Limitations, inconvénients. Euh, aucun, vraiment. Je veux dire, tu vas voir le prix. Ce n'est vraiment pas si mal. Euh, regarde ça. Connexions illimitées. Um, c'est cool ? 50 $ par mois et des connexions limitées sur votre propre serveur, où vous hébergez votre propre serveur et le construisez. L' hébergement seul pour 10.000 utilisateurs est probablement un prix similaire, sinon plus. C' est illimité et 10 gigaoctets de stockage. C' est beaucoup. La plupart des serveurs ne l'offrent même pas. Ils sont donc en concurrence avec de grands noms et des entreprises qui le font, comme l'hébergement et d'autres choses. Donc, le revers de la base de feu est que vous devez construire votre propre servi avec votre propre code. Je vais construire votre propre sécurité. Tu dois tout construire entre les deux. Ensuite, vous devez payer l'hébergement, et ensuite vous devez gérer beaucoup. En plus d'Europe Firebase, tout ce que vous avez à faire est de configurer vos données dessus, comment vous voulez les configurer, et ils feront le reste pour vous. Donc, vous voudrez peut-être choisir firebase un long moment sur. Euh et ah, très puissant, très cool. Donc je vous suggère de vous familiariser avec, euh même si ce n'est pas nécessairement dans l'avenir de l'Iowa. C' est Vous ne pouvez pas avoir APS sans sauvegardes sans données. Tu ne peux pas. Vous ne pouvez pas une bonne application. C' est ces jours qui sont révolus là où tu sais, temps en temps, il y a un oiseau lambeau. Mais de toute façon, j'ai beaucoup parlé. Je veux juste vous donner quelques informations sur le monde du développement réel d'applications. La base de feu est un outil fantastique pour faire des applications fantastiques. Donc c'est tout pour cette vidéo. Inscrivez-vous à la base de pompiers. Fais le brouillon et on passe à la prochaine vidéo.
98. App: Showcase Partie 2 - Firebase Auth Config: Yo, qu'est-ce qui se passe, Mark ? Pentes sourdes pricier point com. Et aujourd'hui, nous allons passer à la mise en place d'une base de feu pour l'authentification, être en mesure de vous connecter avec e-mail et mot de passe ainsi qu'avec la configuration de Facebook. Maintenant, nous ne sommes pas encore en train de configurer l'application. Nous sommes juste en train de mettre en place une base de feu afin que nous puissions implémenter cela dans l'APP. Alors allez-y. Allez sur firebase dot com, connectez-vous au compte ce que vous auriez déjà créé. Vous devriez également avoir créé une,
euh, euh, une application sous la base de feu ici sont juste appelé la vitrine des pentes sourdes. Bon et cliquez sur gérer l'application, et nous allons aller plus pour se connecter et désactiver et juste ici où il dit activer l'authentification e-mail et mot de passe. On va le faire dans une pellicule. Notre AP va avoir email et Facebook. Hum, donc on va cliquer dessus et ensuite a aussi quelque chose cool où le consentement automatique
réinitialise le mot de passe pour toi. Saviez-vous que pour votre bâtiment, votre propre serveur, vous devrez écrire tout ce code vous-même. Quelle douleur. Il désactive également tout pour vous automatiquement. Donc, je vais dire de Dev Slopes quand l'e-mail vient vous permet même de mettre le sujet, Vous ne mettez jamais html personnalisé là-dedans. Des trucs très cool. Hum, ça a l'air bien. Ce que je vais faire maintenant, c'est cliquer sur le bouton Facebook. Cela va enregistrer automatiquement. D' accord. En fait, en fait, une chose de plus avant de cliquer que la longueur de la session la longueur de la durée d'une session restera valide. On ne veut pas 24 heures quand quelqu'un se connecte. Laissons-le indéfiniment pour l'instant. Je ne veux pas m'en occuper. Alors allez-y et cliquez sur Facebook et activez l'authentification Facebook. OK, cliquez sur ça juste là. Maintenant, il est à la recherche d'une application Facebook. Et c' est aussi à la recherche d'un secret. Donc, nous allons passer ensemble et comment mettre en place une application Facebook. Et on va examiner la documentation elle-même ensemble parce que je veux te
montrer que c'est ce que je fais. Et tu dois commencer à faire ça aussi. N' allez pas toujours chercher une vidéo pour résoudre vos problèmes. Tu dois aller à la documentation. Donc, à droite, ici, parce que c'est ce que vous allez faire à votre travail. Clique. En savoir plus. Je vais droit Cliquez dessus ouvrir dans un nouvel onglet et il me donne des instructions pour commencer avec l'authentification
Facebook. Vous devez d'abord créer une nouvelle application Facebook. Ok, donc ça devrait être assez facile. Donc je vais ouvrir ça dans une nouvelle fenêtre et me laisser faire une réorganisation ici. Je vais déplacer ça vers la droite, et je vais déplacer ça vers la gauche et OK, donc je suis déjà connecté sur Facebook, donc tu vas devoir t'assurer que tu es connecté sur Facebook,
et, et, euh, Si vous êtes un de ces individus qui est très catégorique contre ne pas utiliser Facebook, et je sais que je sais que vous êtes là, j'en connais moi-même. Vous n'avez pas besoin d'utiliser Facebook dans cette application. Vous pouvez simplement faire connexion e-mail et mot de passe si vous le souhaitez. Vous pouvez ignorer cette section. Mais au fait, si vous faites partie de ces gens et que vous faites que APS sache juste que juste parce que ce que vous n'aimez pas quelque chose ne signifie pas que le reste du monde n'aime pas ça. Facebook a comme un 1.000.000.000.000 utilisateurs, donc je suggère d'intégrer Facebook dans l'abside où cela a du sens car il vous permet d' intégrer avec les réseaux existants. Gagnez plus d'argent. C' est une décision d'affaires intelligente. Peut être au moins si juste un peu de nourriture pour penser. Tu ne m'écoutes pas. Je ne suis qu'un mec. Juste un gars dans une vidéo qui te dit quoi faire. Et OK, donc vous devez créer une nouvelle application. Cliquez sur le bouton Ajouter une nouvelle application. Ok, faisons-le. Ok, euh, ajoutez une nouvelle application. Et puis c'est le nom de votre application ou site Web, sorte que vous pouvez l'appeler comme vous voulez. La mienne s'appellera Dev Slopes Showcase. D' accord. Et l'espace de nom. C' est facultatif. Donc, ne faisons pas cette catégorie. Voyons voir ici. Santé, jeux
de fitness, boisson
alimentaire. Hum, c'est
quoi le nôtre ? Éducation ou technologie ? Je pense que l'éducation va bien. D' accord. Créer une application. Je d sélectionner toutes les photos montreraient une cascade. Mm. Ok, intéressant. C' est nouveau. Non, mais je veux cliquer sur le coquelicot. Oh, d'
accord, eh bien, eh bien, soumets-toi. Il est en train de charger. Faire ce truc. Ok, alors il l'a fait. Très bien. Maintenant, ce qu'il dit ici sur la gauche dans votre configuration d'application Facebook cliqué sur l' onglet
Paramètres dans le menu de navigation de gauche. D' accord. suivant le guide, Ensuivant le guide,Au fait, je n'ai même pas fait cela à l'avance comme je le fais à la volée ici pour que vous puissiez voir comment vous passez vraiment à travers les problèmes et les résoudre. Ensuite, allez à l'onglet avancé en haut et faites défiler vers le bas jusqu'à la section sécurité. Et je ne fais pas ça pour toutes les vidéos. Juste sur ceux où j'essaie de souligner un point, qui est que vous devez apprendre comment orteil lire la documentation. Cliquez donc sur la section de sécurité au bas de cette section. Ajouter https, cette année de base de feu l à votre valide Oh, auteur, rediriger vos yeux. OK, alors allons trouver ça juste. Cliquez sur ce bouton et copiez. Donc, il est écrit au bas de cette section. Valide. Oh, Auth, redirige tes yeux. Je crois que ça va juste ici. Ok, la différence où on doit faire , quand c'est ça. Une fois, , il veut le rendre bloqué comme ça. Nous devons faire,
cependant, cependant, est obtenir sont l'application basée sur le feu. Je suis d'
accord. Et alors allez-y et retournez à la base de feu et revenons au tableau de bord. Et allons regarder notre base de feu. C' est notre base de feu u r l nous avons besoin d'une base de feu. Voyons voir ici,
euh,
secrets. Voyons voir ici, euh, Je pense qu'il veut juste notre application réelle. Pas grand-chose. Donc, nous allons juste copier ceci. Copier l'adresse du lien. On y va. Je crois que c'est tout. Je pense que ça fera l'affaire pour s'en assurer. Non, c'est faux. Mon application Firebase. Je suppose qu'il veut juste cette partie ici. Alors attrapons cette justice qui vient. Tellement nombreux. Oui, c'est le bon. D' accord. Sommes-nous ici ? Ok, un petit détour. Et donc ce qu'il veut est https, puis hors point firebase dot com slash b two slash Et puis ce que nous allons faire est que nous allons enlever la fin là, donc couper votre base de feu à slash off slash facebook slash rappel slash. C' est ce que nous voulons. Donc auteur firebase dot com slash version deux pentes de mort slash Dash a présenté la nouvelle mon application. Rappel Facebook. D' accord. Cliquez sur Enregistrer les modifications en bas. Ça dit Ok. Suivant. Vous devez obtenir les informations d'identification de votre application auprès de Facebook. Cuire sur la base à avoir en haut de la page. Ok, donc, en haut de la page de base. Vous devriez toujours être dans l'onglet Paramètres en haut de cette page, vous le verrez. Et votre application. J' ai un secret d'application. Votre corps sera affiché en texte brut, et vous pouvez voir le secret de votre application en cliquant sur ce bouton Afficher et en tapant votre passe
Facebook. Copiez ces informations d'identification de l'application Facebook dans la section Connexion et désactivation de votre tableau de bord de votre application. Ok, retournons à la base de pompiers. D' accord. Appli. Tableau de bord. Um, allons gérer l'application, ça va se connecter et se déconnecter, et ah, euh, Facebook. Ok, donc une fois l'idée de l'application Facebook et Facebook secret Donc voici l'application Facebook. Ok, voilà le secret. D' accord. Quel est mon mot de passe ? Hein ? Ça me tue. Ok, donc tu y vas. Bon, donc c'est sûr. Ça a l'air bien. D' accord. Et Facebook exige que vous ayez un e-mail de contact valide spécifié Afin de rendre votre application de
carte disponible pour tous les utilisateurs, vous pouvez spécifier cette adresse e-mail à partir du même onglet de base certains des changements sûrs ici, et même onglet de base, euh, et e-mail de contact. Je suppose que c'est la marque à dev pentes dot com. Le vôtre sera quelles que soient les années où votre e-mail de contact est donc enregistrer les modifications. Et la dernière chose à faire est de cliquer sur l'état et de passer en revue ici et sur la main gauche. Navigation. Lorsque vous déplacez le curseur en haut de la page à la position oui, voulez-vous nous rendre l'application dans ses fonctionnalités accessibles au grand public ? Oui. Confirmez. D' accord. Et puis vous votre application dans toutes les vies avons-nous besoin de soumettre ? Je ne pense pas qu'il soit dit que nous devons soumettre avant l'usage public. Je vais cliquer sur la politique de la plate-forme juste pour le voir. Ça ne dit pas qu'on doit faire ça, donc je ne pense pas qu'on ait besoin de s'inquiéter pour qu'elle soit stable. Ok, donc c'est quand votre application est prête à être utilisée quand elle en a besoin quand tout est fait. Donc on ne va pas parler de ça maintenant. Ça ne dit rien sur la soumission ici, et c'est tout. Donc ce que nous avons fait, c'est que nous venons de mettre en place, euh, nous avons mis en place l'authentification de la base de feu, e-mail, mot de passe et facebook afin que nous puissions commencer à enregistrer la session de changements intimes. C' est déjà sur des mois. Ok, donc, ouais, on peut maintenant se connecter avec Facebook. On vient juste d'écrire le code pour nous. C' est ça. Vous avez également appris comment faire de Facebook APS pour intégrer à vos applications chaque fois vous créez une application sur IOS qui a besoin de Facebook intégré. Si c'est différent après avoir fait ce qu'on vient de faire ici et que tu utilises toujours ça un secret. Et c'est tout pour l'instant, et on va en être un.
99. App: Showcase Partie 3 - Interface utilisateur de connexion: Hé, tout le monde, Mark Pricier Deb Solbes dot com et il est temps de commencer à construire notre propre
application de style Facebook . Et nous tous les deux mon simulateur ici pour que vous puissiez voir à quoi ça va ressembler après la fin de cette vidéo. On y va. Écran de verrouillage, Et il est là, à l'air bien. Nous ne finirons pas la fonctionnalité de connexion, mais nous obtiendrons tout ce que j'ai en place. Nous obtiendrons les contrôles personnalisés. Vous remarquez qu'il y a des ombres ici. Une belle mise en page ici, c'est toutes les choses personnalisées. Ok, ça ne sort pas de la boîte. Et IOS et vous devez écrire des contrôles personnalisés si vous la voulez. Absolu grand. Donc la première chose qu'on va faire, c'est ouvrir un site web. Nous allons tirer vers le haut dans Google Chrome, et je vais taper dans la conception de matériel Google. Cette conception d'applications est inspiré par le matériel de Google conçu maintenant, peut-être certains d'entre vous là-bas penser, Comment pourriez-vous mettre du matériel conçu dans une application iPhone ? Il s'agit d'une application Android. Eh bien, j'aime Google. J' aime aussi la pomme. Je les aime tous les deux, et j'ai toujours des trucs de partout pour inspirer mon design. Donc, euh, je sais que je vous montre ce site ici parce que c'est fantastique. Ils apprennent que vous avez conçu des choses. Ok, donc ce que je dis c'est comme quand ils disent qu'ils t'apprennent, ils disent en fait que c'est ce qui a l'air bien. Et c'est ce qui ne le fait pas. Donc, par
exemple, si je vais sur les composants et les boutons goto, ça me dit, Hey, tu devrais mettre une ombre ici. C' est comme ça que vous devriez laisser vos boutons si je vais ici en haut et je choisis, hum ou est-ce la couleur de style. Il vous indique les différents schémas de couleurs et leurs valeurs hexadécimales afin que vous puissiez l'avoir tout droit là. Ils disent en gros, c' est
ce qui a l'air bien ensemble. Donc vous n'avez pas à faire autant de réflexion alors, toute façon, nous inspirons notre design à partir de ça. Alors, consultez ce site Web. Je vais retourner à un effort. Vous pouvez démarrer votre propre APS comme ça très, très puissant, sorte que vous n'avez pas à tout faire sur le dessus de votre tête. Ce que je dis, c'est que vous pourriez faire une application qui semble vraiment moche en l'entaillant ou en
regardant certaines des vidéos que vous pourriez voir dans les autres cours là-bas dans le monde . Ou vous pourriez passer cinq minutes à étudier ce que Google pense être beau. Qui, au fait, ils ont eu des designers professionnels à venir avec ça. Et puis vous pouvez simplement baser votre application sur que votre propre pensée et dans le style comme faras comme le contenu de l'application, mais une belle mise en page. Donc, ce sont de petites choses que vous pouvez faire pour faire de belles applications, et c'est ce qui peut faire toute la différence sur l'APP Store. Donc, nous allons utiliser le matériel Google conçu comme inspiration. D' accord. Et nous allons également utiliser Google,
euh,
la euh, police que Google utilise pour la plupart de leurs APS. Si vous allez à la typographie sous style, il vous indique quels fonds ils utilisent leur roboto dans certaines plates-formes et
un autre ils utilisent un appelé Noto. Et j'aime vraiment Noto et on va s'en servir. Et donc ce qu'on va faire, c'est qu'on va faire une autre recherche pour Google a combattu Noto, et je vais cliquer ici le 2e 1 ici. Et, euh, tu ne t'amuses pas un peu parce qu'il y a toutes sortes de langues différentes. Mais celui-ci ici, ce Noto Sands, allez-y et cliquez sur télécharger, et il va vous donner des polices et un fichier zip. Et quand vous les téléchargez, allez-y et décompressez-le. Je l'ai déjà fait. Donc, je vais juste aller de l'avant et créer un nouveau projet de code X. On va aller au code X. Je vais déposer un nouveau projet, je le ramène ici pour toi. Donc encore une fois, je suis allé déposer un nouveau projet. On va à une seule application, et je vais appeler ça,
hum, hum, Dev Slopes Showcase. Hum et je vais juste mettre le diable ici pour mon amour et mon savoir. Et je vais mettre ça dans les documents, assurer que vous mettez un dépôt git. C' est quelque chose que tu vas vouloir montrer. Ok, génial. Donc, il y a notre application et allons de l'avant et juste plonger directement dans. Nous avons besoin Ce que nous devons faire, c'est que nous devons créer en apportant les pensées, et nous devons apporter quelques images dans notre application. Ok, donc j'aime préparer mes projets au début. Um, chaque fois que je me souviens, au moins faites un clic droit sur votre dossier ici et allez dans un nouveau groupe. Nous allons dire,
contrôleur, contrôleur, ça va tenir nos fichiers de contrôleur un nouveau groupe qui tiendra notre point de vue, nos fichiers de vue et un nouveau groupe qui va contenir notre modèle A ou nos données. D' accord. Et puis aussi créer un nouveau groupe appelé Resource Is qui va tenir. Notre ressource est OK, donc dans la ressource il y a des dossiers où nous allons mettre nos polices. Et donc j'ai déjà des polices ici. C' est ce que tu auras quand tu le téléchargeras. Vous allez obtenir ces quatre polices, alors allez-y et cliquez dessus et faites-les glisser dans le dossier Resource is. D' accord, très important. Assurez-vous de cliquer sur. Ajouter à la cible. D' accord. Si vous ne le faites pas, il ne l'inclura pas dans le fichier. D' accord. Si vous avez oublié de cliquer que j'ai une autre solution pour vous. Voici ce que vous dio Vous cliquez sur l'icône Projet Bleu ici. Ensuite, vous allez à créer des paramètres. Désolé. Pas de paramètres de génération. Les phases construites descendent à la copie. La ressource Bundle est ici. Cliquez sur ajouter mais il aura vos fonds là, puis allez-y et sélectionnez-les et ajoutez-les. Il doit être dans ce paquet de copie. La ressource est Et c'est ce qui s'est passé lorsque nous avons sélectionné cette option quand elle est arrivée. Il faut dire, Hey, ça fait partie de l'application. Allons de l'avant et l'utiliser Donc nos polices ou dans l'application ? Et ah, j'ai quelques images ici à une pour l'écran de lancement, une pour le logo du code des pistes sourdes et une pour un logo Facebook. Et encore une fois, vous pouvez utiliser vos propres graphiques si vous voulez, mais ceux-ci vous ont été fournis aussi, à votre bâtiment la même carte que je construis. Donc, il est logique de vous donner les graphiques, et ils vont en fait aller dans le dossier Assets. Nous allons donc les faire glisser dans le dossier Assets. Ok, ça a l'air bien. Et puis allons à notre écran de lancement et nous allons juste configurer l'écran de lancement. Parfois, c'est sympa d'aimer, faire quelque chose de amusant, comme ton écran de lancement en marche. Donc, chaque fois que vous construisez votre application dans votre test, vous voyez votre logo dans votre visage, et vous êtes juste comme,
Wow, Wow, je me sens tellement bien à ce sujet. C' est génial. Et parfois, c'est agréable de mettre un peu d'éclaboussures au début pour vous donner de l' excitation et de la motivation. Teoh construire l'APS et donc il y a une image. Il va le traîner ici, mettre au milieu. Je vais changer ça en logo empilé. Et bien sûr, il est étiré Will ira à l'aspect ajustement. Ok, et puis je veux juste décider de la taille que je veux. Je pense que quelque chose comme ça, c'est probablement bon qui semble probablement bien sur toutes les tailles d'écran comme ça. Donc je vais aller de l'avant et obtenir un fixe avec et une hauteur fixe. Lorsque vous ajoutez ces deux contraintes, je clique simplement sur le bouton pin ici. J' ai cliqué sur le menu d'alignement et puis nous allons horizontalement et conteneur et virtuellement et conteneur comme faras comment l'alignement va. Donc voilà, vous allez au milieu, air bien. Je ne vais même pas le tester parce que je sais que ça va bien paraître en avant-première. Allons au storyboard du Maine. Et le but, bien
sûr, est de faire en sorte que notre application ressemble à ceci ici. Et c'est vraiment cool. Et donc, au fait,
euh, euh, ce que j'ai fait pour cette inspiration est en fait allé Teoh Google, Google up notre Google Qu'est-ce que c'était ? Une application musicale ? J' ai tapé dans l'application de musique Google et je suis allé à la boutique de jeu ici. D' accord ? Et ce que j'ai fait, c'était que j'étais comme lui. Quoi ? Ça a l'air bien. Ce qui n'a pas l'air sympa. Et donc j'ai commencé à regarder à travers certains de ces APS ici, et j'ai juste commencé à m'inspirer, comme planer des menus et des choses comme ça que j'ai vraiment aimé. Donc, vous savez, donc, par
exemple, voyez comment j'ai ce fond rouge ici ou celui-ci est un fond bleu, et puis il pend en quelque sorte sur le bord. J' ai complètement pris ce droit à partir du site Web comme,
ça a l'air vraiment sympa. J' aime l'idée. J' aime le style. C' comme ça que vous construisez beaucoup de mon APS. Et donc ils ont l'air fantastiques. Hum, et tu as juste l'inspiration. Je veux dire, vous ne copiez pas l'application elle-même, mais de toute façon, c'est pour ça
que j'ai eu l'inspiration. Donc, utilisez ces types de méthodes et de styles. Votre application est-elle en train de créer votre application ? Nous rendons l'Europe bien meilleure. Alors, voilà notre planche principale. Allons de l'avant et mettons cette vue rouge en premier. Et c'est juste une vue. C' est littéralement juste de toi. C' est tout ce que c'est. Alors c'est Hey, où est-il ? C' est encore vrai. Vous avez ? On y va. OK, alors allons-y. Et qu'en est-il juste là ? J' aime ça. Comme ça, là. Je vais changer la couleur en rouge. Et cette lecture, si vous voulez, c'est F 4511 e Ok,
ça me semble bon. Donc je vais aller de l'avant et l'épingler en haut, désactiver les marges contraintes en raison de la gauche et de la droite, et donnons-lui une hauteur. Donc, il va toujours rester cette hauteur, et il enveloppe toujours les deux côtés de l'écran. Ça a l'air vraiment bien. D' accord. Et maintenant, de quoi d'autre avons-nous besoin ici ? Allons de l'avant et posons ce point de vue ici parce que je pense que c'est ce que nous devons faire à côté pour
avoir une idée de ce que cela va ressembler dans nos applications. Allons de l'avant et posons ce point de vue ici parce que je pense que c'est ce que nous devons faire à côté pour Donc c'est juste une autre vue, et je suis juste en train de le regarder ici, alors allons de l'avant et mettons-le juste là et traîne-le juste ici. Les marges vont être en place. J' aime bien ça. Je vais y aller et je vais l'épingler de gauche. Bennett de la droite. Je vais l'épingler du haut et ensuite je vais lui donner un non avec juste la hauteur. Parfait. Donc c'est juste là. Et bien sûr, c'est pourquoi et donc c'est un peu difficile à voir. Donc, si vous regardez l'arrière-plan, nous avons un gris
très, très clair. Et encore une fois, je viens de regarder le style de Google, et c'est l'une des recommandations. Donc, si je clique sur ma vue d'arrière-plan ici, je peux réellement changer la couleur de fond à ce gris
très, très clair, ce que je crois est celui-ci e pense que c'est je pense que c'est à penser. C' est trop sombre. Je pense qu'il peut être celui-ci et il ISS et cette couleur ici est F trois F trois F trois. Pas grand-chose. Vous pouvez changer ça là-bas. Donc, il est là. Il regarde, on est bons. Nous avons déjà quelque chose qui commence à se réunir comme ça, vraiment avoir trois couleurs sur notre application. Il a déjà l'air joli, et c'est tout simplement incroyable comment ah, un peu de pensée peut aller si loin pour rendre quelque chose superbe. Et, euh, ce que je veux faire, c'est construire une vue personnalisée, obtenir cet orteil, avoir un coin légèrement arrondi et aussi avoir ah, une ombre. Si vous remarquez qu'il y a une ombre ici, une ombre ici et une ombre ici. Et si vous regardez, euh, le site Google Sweb ici, ils en parlent vraiment dans,
genre, genre, ou est-ce dans la mise en page ? Je pense que ce sont leurs pages web qui ont des problèmes ici. On y va. Mise en page. On n'y va pas de toute façon. C' est sur le site. Vous pouvez le rechercher et il parle de l'ombrage et de la façon de le configurer. D' accord. Site Web fantastique pour cela. Euh, vous les gars, genre, déjà la
ferme avec Google ? D' accord. D' accord. Je vous aide juste les gars. Ne me crie pas dessus. Je t'apprends juste ce que je sais. OK, donc ça a l'air bien. Je pense que ça va être aménagé. Probablement très bien. Donc, ce que nous voulons dio, c'est que nous voulons réellement créer une classe personnalisée. Nous allons avoir une classe personnalisée dont nos vues héritent, donc nous n'avons pas 21 est que nous pouvons atteindre cet effet sans une classe personnalisée. Et c'est, nous ne voulons pas faire ça de contrôleurs comme. Imaginez si vous aviez un contrôleur de vue et vous l'avez fait. Et donc, pour vos points de vue que vous vouliez faire, je suis des points de vente sur tout ça. Ainsi, vous pouvez accéder aux propriétés du rayon d'angle lumineux et autres choses comme ça et tout faire à partir de votre vue. Contrôle. C' est une mauvaise pratique, OK ? Ce serait une mauvaise pratique d'avoir un contrôleur de vue et vous faites que je serais dehors. Juste pour que vous puissiez styliser les choses, k mauvais, mauvaise pratique, Quelles sont les bonnes pratiques créant des vues personnalisées, puis juste changer la classe de la vue. Alors faisons un clic droit sur votre vue ici, allez dans le nouveau fichier et allez à la source. Et ce que nous voulons c'est Coco Touch class et nous voulions hériter de toi. Je vois. Maintenant, on va appeler cette vue matérielle une réunion avec un design zéro, et ça va vraiment avoir nos changements de style dans des choses comme ça. Donc, cliquez sur suivant, puis créez. Okay, supprimez
juste ce code de plateau ici et allez-y et appelez le réveil de la
fonction Ned . On va le remplacer. Ceci est de nouveau appelé lorsque l'interface utilisateur est chargée à partir du storyboard. Et alors quoi ? Nous voulons faire contre. Nous voulons mettre une ombre à gauche à droite et en bas, et nous voulons légèrement autour des coins. Et ça va nous donner le très bel effet que nous recherchons. Alors manquez un rayon d'angle de point de couche, il saisit le calque. La propriété de ma vue est 2.0, puis couche couleur d'ombre point. Et en fait, je pense qu'on a besoin d'une belle couleur grise ici, en fait, et je n'ai pas la couleur pour ça. Nous devons donc créer ça. Donc, je veux vous avoir aussi l'habitude de commencer à utiliser des constantes, choses qui sont globalement accessibles et réutilisables donc nous n'avons pas à continuer à réutiliser des trucs et couleurs est une bonne chose à avoir dans le fichier de constance. Ainsi, votre application peut avoir un thème, une série de couleurs que vous utilisez dans votre application et que vous référencez plutôt que de simplement
les faire dans du code partout. Donc ce qu'on va faire, c'est créer un nouveau dossier, Nouveau groupe. Je clique avec le bouton droit sur le dossier principal, et on va appeler cet Util court pour les utilitaires et dans ce dossier, faire un nouveau fichier et le changer en fichier rapide et on va l'appeler constantes, OK ? Et ce qu'on va faire, c'est qu'on ne va pas mettre de cours ici, accord ? Parce que cela va lui donner une étendue de ce qui peut y accéder Si nous laissons ce fichier ouvert comme ça,
cela signifie que tout ce que nous mettons ici est globalement accessible. Toutes les valeurs,
les constantes que nous mettons ici seront accessibles globalement. Et c'est ce qu'on veut. Nous voulons que tout le monde puisse y accéder. Alors allons-y. Et la couleur du créateur Laissez la couleur de l'ombre est de type C G flotteur. Ce doit être un flotteur, pas un double, parce que c'est ce que la propriété de couche prend et est égale à 1 57,0 Et c'est divisé par 2 55,0 Voilà,
OK , Et oh, et le flux CG fait partie de vous l'aimez. Nous devons donc importer. Euh, tu aimes ça ? D' accord. Et si vous vous souvenez des leçons précédentes, si vous voulez obtenir la bonne valeur de couleur, vous devez prendre la valeur de celui-ci et vous devez la diviser par 2 55 OK, parce que nous essayons d'obtenir la valeur ah entre 00 est noir, 0.0 est noir et 1.0 est blanc. Et c'est ainsi que vous obtenez des valeurs entre les deux. Fondamentalement, d'accord, c'est la couleur de l'ombre. Et donc ce que nous pouvons dio est de revenir à notre vue matérielle et maintenant nous pouvons lui donner une couleur d'
ombre réelle parlant, dire que la couleur de l'ombre est égale à la couleur des yeux sur nous allons faire Rouge, vert, bleu et Alfa et fondamentalement nous sommes va lui donner C'est des valeurs RVB, non ? Et donc nous ne faisons qu'une seule couleur pour le rouge, vert et le bleu parce qu'il est gris et paître typiquement ou la même sur chacun, selon ce que vous avez tellement d'ombre, couleur, ombre, couleur, Couleur de l'ombre Et pour l'Alfa, faisons-le 0,5 pour dire moitié opaque. Et la dernière chose que nous devons faire est de saisir la propriété de couleur stg hors de cette couleur si ombre. Ça ne me montre pas pour une raison quelconque,
mais la couleur de l'ombre est un Steve. Ça ne me montre pas pour une raison quelconque, Gee, les
couleurs tout ce que tu as à faire est de taper la couleur du point c g. D' accord. Et, euh, donc vous prenez votre couleur de crédit plutôt que de prendre la propriété de la couleur du siège hors de lui. Et c'est comme ça que vous définissez la couleur de votre ombre. Um, c'est cool. Et maintenant c'est pour la couleur de l'ombre. Maintenant, nous devons définir l'opacité de l'ombre. Alors l'ombre Oh, le passage e est égal à 0,8 Bon. Un peu moins que le rayon d' ombre de point de repaire
entièrement opaque. Ça dit Reiter. Le rayon bleu en points utilise une course de l'ombre de retard. Ça veut dire combien ? Combien voulez-vous flouter ? Combien d'espace voulez-vous couvrir avec le flou ? Dites 5.0. C' est une très bonne taille. Et ah, décalage d'
ombre. Ok, c'est le décalage sous l'accès X. Et pourquoi l'accès ? Ok, SCG côté C o est égal à C g taille marque. Et donc la largeur pense à cela avec est le X Access K à quelle largeur vous le voulez. Maintenant pense à ça, ou je commence. Mais le décalage combien voulez-vous le décaler sur l'axe X ? droite. Et c'est ce que c'est ce qu'il y a avec. Alors je veux que tu réfléchies à ça. Nous voulons montrer des ombres à gauche et à droite. Eh bien, si je devais mettre un avec de disons, ça me donnerait une ombre à droite et la hauteur va descendre au plus haut pourrait être ce qu'on veut, mais on voulait montrer deux côtés. Donc, ce que nous devons faire est de le mettre à zéro pour qu'il ne aille pas à gauche ou à droite. Mais on agrandit un peu le rayon de l'ombre. Il s'étend donc au-delà des frontières quand il était trop petit. Le rayon qu'il ne passerait pas au-delà des bords parce que nous avions à zéro à gauche est votre vers les droits. On doit agrandir le rayon. Eso il peut aller à gauche et à droite. Donc 0.0, on ne veut pas qu'il aille à gauche ou à droite juste là. Il est donc des deux côtés et la hauteur restera 2.0. Alors c'est à ça que ça va ressembler. Souffle-le. C' est donc la vue matérielle. Retournez à votre storyboard principal. Cliquez dessus et allez de l'avant et changez la classe ici sur le côté supérieur, l'inspecteur d'identité, et changez cela aussi. Tapez le. C' est une vue matérielle, d'accord ? Et faisons-le. D' accord ? Donc ça va s'en aller. C' est l'ancien qu'on va avoir. On va se débarrasser de ce type maintenant, accord ? Et je vais créer. On y va. C' est parfait. Créons. Je ne pouvais pas l'exécuter. Attendez, maintenez le téléphone. On y va. Essayons encore ça. Sélectionnez, euh, iPhone six. On y va. Construire et exécuter. Je teste à peu près chaque fois que je fais quelque chose de nouveau ou quelque chose de vraiment cool juste pour que je puisse rester motivé parfois codeurs code longtemps sans regarder leurs résultats. Aucun de ceux qui produisent des bugs. Ça a l'air sympa. Ce n'est pas très motivant. Ok, pour que tu vois que l'ombre n'est pas si cool ? Comme avec seulement quelques minutes étaient déjà construire des trucs vraiment, vraiment cool. Donc j'aime ça. J' aime ça. J' adore ça. Donc c'est vraiment bon. Nous faisons des progrès fantastiques. Donc nous devons faire maintenant c'est d'obtenir une étiquette ici. Mais nous ne sommes pas encore prêts à utiliser nos fonds. Si vous vous souvenez bien lorsque nous utilisons des fonds dans le passé, nous avons dû faire quelque chose dans notre liste de propriétés pour dire que nous sommes prêts à utiliser ces
polices pour l'application. Alors allez-y et allez dans votre liste info point p ici. Cliquez sur un plus, mais dans le bas. Et pour commencer à taper le mot polices et cela viendra leurs polices fournies par l'application . Je viens d'appuyer sur Entrée et c'est maintenant un tableau avec une flèche déroulante. OK, cliquez sur le double clic où il est dit chaîne ici. Et nous avons un type dans le nom exact de toutes les polices que nous utilisons dans son apso Noto Sands tiret gras point TTF cliquez sur le signe plus juste là. Allez. On y va. Noto Sands le point italique gras TTF Okay, Noto Sands tiret italique TTF et nous sommes presque là Noto Sands tiret régulier point TTF Okay, donc notre famille d'accueil dans l'application et qui est à l'air bien. Donc, ce que je veux faire maintenant, c'est retourner à notre planche principale et allons de l'avant et, euh, mettre notre étiquette maintenant donc l a b pour étiquette et traînons la juste là. Pour une raison quelconque, ça ne me donne pas l'alignement à côté de lui. C' est bien, cependant. Et euh, on va appeler ça, hum quoi ? Ce que nous voulons dire sur notre étiquette ici. Dites Sign in barre oblique. Inscrivez-vous. Ok, vas-y. Et je veux que ça soit audacieux et que je voulais être ma coutume. Mon amusement. Donc, je vais cliquer sur le t, le
changer pour le changer personnalisé de Helvetica nouveau et remarqué. Noto est là maintenant Remarquez comment ne vous a pas donné quatre options. Il les met en fait tous ensemble, et ils sont comme différentes options de style, ce qui est vraiment cool. Donc Noto Sands audacieux. Et ça a l'air bien, sauf le fait que nous voulons qu'il soit blanc. Alors changez la couleur à la couleur blanche qui est jolie. Allons de l'avant et alignons. Ce que nous pouvons faire est de sélectionner ceci et la vue matérielle. Donc c'est comme cette étiquette et la vue ici, et en fait, assurons que nous allons juste nous assurer que nous faisons ce que nous sommes censés faire. Oh, je vois. , En fait, on ne peut pas les aligner ici parce qu'ils ne sont pas dans le même sous-ensemble que nous ne voulons pas. Nous ne voulons pas casser ça, en fait, donc nous savons que c'est 20 à partir du bord, alors faisons juste cette étiquette ici. Allons de l'avant et faisons celui-ci 20 à partir de la gauche, qui est là où il est en ce moment. Et, euh, 35 du haut, c'est bien. Ou on pourrait voir ici. Oui, faisons-le par le haut. Et allons-y et donnons-lui une hauteur dans un avec va le rendre fixé là. Ok, donc c'est broche. Maintenant, ça a l'air génial. Maintenant, ce que nous voulons dio, c'est mettre le petit logo de code. Je viens là-bas. C' est juste pour une valeur supplémentaire pour les trucs visuels du Mexique. Et, bien
sûr, pour montrer mon logo cool pour que le monde puisse voir. Rendons ça un peu plus petit. D' accord ? Je vais aller de l'avant et, euh, dit une image et ça va être le logo de l'icône de code, et je vais dire « Aspect fit » et je n'aime pas ça. Teoh deux gros. On y va. Et ça regarde. Ok, déplace-le un peu. Je suis juste en train de le regarder. Tu peux le faire parfois. Si vous travaillez avec un designer très anal, il peut voir qu'il voit qu'il verra une chose qui est un pixel souvent il viendra à vous. J' avais un type comme ça, tu dis ? J' ai remarqué que c'est un pixel off dans l'accès horizontal. Tu peux réparer ça ? Oui, je suppose. Wow. Donnons-lui une largeur et une hauteur. Rends-le répare. Et mettons-nous 20 à droite et
28 à partir du haut, c' est bien. Bon, donc il n'ira nulle part. D' accord. Et, euh, ça a l'air bien. Donc nous voulons maintenant est ici. Nous voulons un bouton Facebook, ce bouton juste une image, puis le journal Facebook réel. Et parce que nous allons donner l'option de se connecter avec Facebook, donc c'est sélectionné là. Alors allons de l'avant et Dragon Image vue ici. D' accord ? Et bien sûr, ça fait toujours beaucoup aussi. Bigs. Un peu ennuyeux. Je ne vais pas mentir ennuyeux. Changez l'image à l'aspect de l'icône Facebook ajustement. Ok,
ça a l'air bien. Et puis ce qu'on va faire, c'est créer un bouton, euh, pour notre connexion Facebook. Et peut-être que vous pensez que ça ne ressemble pas au bouton que nous voulons, c'est changer le libellé. Eh bien, ce n'est pas le cas. Alors comment pouvons-nous faire ressembler à l'autre ? Tu te souviens comment le bouton avait ? Jolie ombre,
aussi. Jolie ombre, Et j'ai eu un peu de bons coins arrondis, c'était plutôt cool, donc, abord, ce qu'on va faire, c'est lui donner une couleur de fond. On va le faire ici. Et voici le bleu que nous voulons. C' est la même chose que ce bleu ici. Et si tu veux ce bleu, c'est un e 88 e 5. D' accord ? Et bien sûr, nous devons changer la couleur du texte, blanc
orteil et la couleur du système. Notre système s'est battu sur mesure. Et puis on va le changer à l'endroit où sont, tu sais, sables des
orteils et ensuite boulés. J' aime ça. J' aime ça. J' aime ça. C' est le rendre un peu plus large ici. Ok,
ça a l'air très bien. Mais bien sûr, ce n'est pas le style que nous voulons. Ça commence. Allons de l'avant et créons, hum, une autre classe personnalisée ici. Nouveau fichier. On va appeler ça le cours de Coco Touch ici et à la place de toi, si
tu achètes le bouton et on va appeler ce bouton matériel, OK. Nous faisons quelque chose de très, très similaire. , Ce qu'on peut faire,c'est aller à notre vue matérielle et copier et coller son manteau. Maintenant, peut-être que tu penses, c'est vraiment la meilleure chose pour Dio ? Hum, nous copions et collons du code. Il y a probablement une meilleure façon de le restructurer parce que nous nous répétons. Nous avons donc le module jusqu'à un niveau. Mais pour le bien de cette classe et pour le bien d'apprendre cette leçon, il n'est pas vraiment logique d'entrer dans ces petits détails
minuscules. C' est encore très efficace. Et donc je vais juste le copier et le coller pour le moment, et je pense que tous les paramètres actuels s'appliqueront. Retournez à votre storyboard principal. Nous avons notre coutume. Mais maintenant, changez votre bouton ici à la classe de l'inspecteur d'identité ici à
bouton matériel . D' accord ? Et remarquez comment cela ne le reflète pas ici dans le générateur d'interface. C' est très bien. Pour l'instant, il y a effectivement un moyen à l'avenir lorsque vous vous améliorerez au développement IOS que vous pouvez réellement, au lieu de créer juste le code personnalisé ici, vous créez réellement vos vues dans des fichiers zip, les fichiers ex I b et ensuite vous ce que vous faites est que vous allez dans vos vues ici et que vous déclarez des classes. Je suis design nable. Et donc si vous avez ceci et le fichier d'interface d'ID associé, il mettra à jour votre storyboard en temps réel afin que vous puissiez voir à quoi il va
ressembler . Les résultats finaux. Ça prend un peu plus de place. Mais si vous construisez un grand écart et que vous en avez marre de regarder à quoi ressemblent les choses avant leur style dans le code, vous pouvez le faire et c'est vraiment, vraiment cool. Donc nous avons ces deux objets ici. Ok, donc ce que nous voulons dio, c'est utiliser nos vues de pile de dandy pratiques que nous, euh, avons appris utilisées tout au long de ce cours. Alors allons de l'avant et sélectionnez l'icône Facebook et le bouton Facebook, puis cliquez sur le bouton de vue de
pile ici en bas,
et il suffit de le mettre dans une vue de pile horizontale. Maintenant, ce que je veux dio est que je veux obtenir que je veux définir des contraintes de cette pile pour que vous soyez à l'intérieur de cette vue extérieure donc il ne me laisse pas re taille si vous avez manifestement vu cela avant, mais je ne peux pas vraiment redimensionner ici donc j'ai eu. Je dois redimensionner une vue de pile avec des contraintes. Donc ce que je veux, c'est au lieu de huit à gauche, je veux 20 au lieu de 353 à droite, je veux 20 sens. Je voulais aller sur tous les bords là-bas et par le haut, disons 10. C' était le bas, mais nous dirons 10 du haut et 10 du bas et cela va l'étirer pour nous. On y va. Ouais, c'est un peu si tu as remarqué que les lignes de tableau de bord ici signifient que c'est à quoi ça ressemblera
quand ça va tourner parce qu'il l'a déplacé, on pourrait juste le déplacer ici. Donc c'est à propos de l'endroit où c'est censé être. Ok,
ça a l'air très bien. Sont empilés nouvelles, cependant. Eh bien, quoi ? Je veux changer les paramètres ici ? Est-ce que cette petite icône ici l'inspecteur des attributs, ce que je veux faire est juste de changer l'alignement sur elle ou ah, voir ici le centre bien, pas vraiment l'air bon, Sénateur et je sens que je veux mettre quelques espacement, cependant. Mettons un espacement de 40. Merci. Ce n'est pas trop mauvais espacement de 40. En fait, je n'ai pas besoin de changer beaucoup. Ici. Trois. Lancez-le et voyez. Alors à quoi ça ressemble. Voyons à quoi ça ressemble. Quel joli logo. Qui est si fou ? Comment ? C' est comme, quoi ? Ça n'a pas l'air très bien ici. Mais quand tu vas ici, ça a l'air fantastique. Regarde ça. Donc ce que nous avons fait jusqu'à présent, c'est que nous avons notre ombre ici sur la vue extérieure. Arrondissement léger du coin. Ok, remarquez comment ? n'y a pas de coin massif juste léger. Et puis légèrement arrondi sur le bouton avec des ombres sur le bouton. On a notre logo ici. Nous avons nos techniciens ici et pas très longtemps. Période de temps. Nous avons commencé à vraiment styler cette application, alors allons-y et recevons le, euh, l'email et le mot de passe qui se passe ici. Donc, cliquez sur votre vue de matériau ici et juste faire la commande C commande V dans les copiés sont empilés à l'intérieur. On n'a plus besoin de ça, mais je voulais juste le rendre plus facile en copiant et en collant ici, donc ah, oui, mettez-le juste là. C' est déjà sur les marges gauche et droite. C' est bien. Et posons ici et réglons l'alignement de Thea ici si bien. abord, cliquez sur la règle, assurez-vous qu'elle ne transporte rien de mauvais, et c'est qu'on n'a pas besoin d'une hauteur sur ce type. Donc supprimez cette hauteur. Je clique sur la règle. J' ai supprimé sa hauteur, la hauteur reportée de la copie précédente et coller. Ça aurait été un problème où tu es,
je n'arrive pas à comprendre pourquoi ça force ma taille. Et puis vous réalisez à un moment donné que cette contrainte se cachait. Donc, disons zéro de la gauche, parce que nous avons des marges quand nous connaissons les marges. 20 0 à partir de la droite, 20 à partir du bas. Et nous voulons aussi dire 20 du haut. Rends-le parfait là-bas. Merveilleux. Et je peux en fait juste un juge pour rencontrer la Ligne Orange. Donc, il est juste pas là dans super ennuyeux. OK, alors on y va. On a la vue. Celle-ci va aussi avoir des ombres parce que la classe a été reportée, ok. Et donc ce que nous voulons faire maintenant, c'est mettre une autre étiquette ici qui indique le journal des e-mails et la barre oblique
s'inscrire . Donc, je viens de copier cette commande voir. Cliquez ici, Commandement V. Je vais changer la couleur en, disons sombre, super. Ils aiment ça et ont l'air bien. Je veux le mettre si 20 du haut 20 de la gauche. C' est juste bon de garder cette marge cohérente. Et changeons le texte. Je double-clique sur cette barre oblique, inscrivez-vous, ok. Et regardons les contraintes. On va vouloir se débarrasser de l'avec parce qu'on l'a juste changé à moins qu'on n'ait été tous les deux pour être sûrs et cliquer sur le bouton de la broche ici et ah, mettre nouveau avec une nouvelle hauteur. On y va. Maintenant, il fait ce qu'il est censé faire et on veut ce gars, on va dire 20 du haut et 20 de la gauche. Parfait. D' accord. Et remarquez que les choses orange disaient, Hey, vous n'êtes pas là où vous devez être, où il sera au moment de l'exécution. Donc je le déplace juste pour me débarrasser de ces lignes orange. voyez, chaque fois que vous, euh, la science de l'orange disparaît quand c'est quand vous l'avez positionnée exactement où elle
sera au moment de la course. Ok, donc maintenant ce qu'il nous faut, c'est des champs de texte. Et notre texte construit est spécialement stylé,
aussi, aussi, parce que le Defoe sur semble un peu moche et il ne va pas vraiment avec le design que nous recherchons non plus. Je veux dire, ce n'est pas si beau look, alors changeons ça. Faisons-le Mo Betta. Cliquez donc sur le style de bordure ici. Nous ne voulons pas qu'il ait une bordure à travers au moins via l'interface Builder est venu et nous allons définir cette couleur de l'arrière-plan sur la même que l'arrière-plan de la vue. Ça a l'air vraiment sympa. J' étais juste en train de tester avec elle et j'avais juste l'air vraiment bien. Alors donnons-lui un coup de feu. Mauvaise couleur. C' est la couleur de la police. Nous voulons faire défiler plus vers le bas jusqu'à l'arrière-plan. On y va. Et, euh, non, c'est trop sombre avec la mauvaise couleur. C' est ah, je crois que c'est ce type, c'est lui. C' est Thea f trois f trois F trois gardé, donc il a déjà l'air cool. Allons-y, faites défiler vers le haut et changez le plaisir pour les habitués de Noto. Très bien. Et si vous voulez jamais tester, vous pouvez simplement le taper là et il semble un peu trop noir. Soyons cohérents et utilisons ce gris foncé semble beaucoup mieux. Um, ok, c'est bon. Et je n'aime pas comment vous remarquez comment le texte va jusqu'à gauche. n'y a pas d'espace ou là. C' est mauvais. Ça nous a enlevé ça quand nous nous sommes débarrassés de la frontière, ce qui est un peu boiteux. Je ne sais pas pourquoi ils font ça, mais le texte sera trop proche de la frontière. Et je suis sûr que l'endroit est bien, il y aura la même adresse e-mail et elle l'est. Donc, continuons et corrigeons cela d'abord avant de créer un autre champ de texte. Prenons ce style. Donc c'est génial.
100. App : Showcase Partie 4 - Facebook Login: Hé, tout le monde, Mark. Pricier sourds savons dot com Et sur le dernier épisode passionnant de Building Really cool, Frickin app, nous l'avons fait. Très impressionnant. Maintenant, il n'y a pas vraiment de code qui fait beaucoup, comme vous pouvez le dire, mais ce que nous avons fait était de mettre Thea, faire la mise en page ici, faire un look vraiment sympa. Nous avons également créé quelques boutons matériels. Je vais aller de l'avant et l'exécuter ici pendant que j'explique que nous avons créé quelques boutons de style matériel. Quand je dis matériel, je veux dire la philosophie de conception matérielle de Google avec l'ombrage et les schémas de couleurs et des choses comme ça. Nous avons donc créé quelques contrôles très personnalisés ici pour rendre notre application très belle. Hum, créditer un écran de lancement, comme vous pouvez le voir. Quoi ? Ce merveilleux logo. Et c'est là. On a de l'ombre. On a un logo. On a plus d'ombre ici. Nous avons même créé des champs de texte personnalisés. Très gentil. Si vous voulez que aps soit marqué, si vous voulez que abs soit vraiment sympa, la
plupart d'entre eux, vous devez utiliser des contrôles personnalisés. En fait, tous les meilleurs APS le font, donc vous devriez juste prendre l'habitude de le faire. Améliorez vos abdos. Nous avons aussi dû personnaliser les polices aussi. Donc, ce que nous voulons faire aujourd'hui est sur notre écran de connexion principal. Nous voulons donner à l'utilisateur la possibilité de se connecter avec Facebook. Et on va faire quelques choses. La première est qu'on va installer le SDK de la base de feu. Ok, euh et puis parce que ça a besoin d'interagir avec
Facebook et on va aussi installer la session Facebook et la semaine ESO pour que Firebase puisse parler à Facebook. OK, donc pas trop grosse affaire. Donc on va faire, on va aller à Ouvrons un navigateur ici. Allons-y. Base de feu. Au fait, je vous montre tout ça plutôt que de vous donner les étapes sur la façon de le faire pour que vous puissiez savoir comment aller sur ces sites et comprendre ces choses. La plupart des gens ne le font pas,
et cela vous met à un désavantage et d'apprendre si vous ne savez pas comment orteil naviguer sur les sites Web et trouver les choses que vous devez trouver, c'est en fait c'est un peu de formation que vous devez vous enseigner afin d'être bon à cela. Voici donc notre application que nous avons créée. Vous auriez dû créer votre application est déjà bien maintenant. Et allez-y et cliquez simplement sur l'application Gérer. D' accord ? Et allons nous enfermer et éteindre. Non, nous avons déjà configuré ici l'authentification par e-mail et mot de passe. C' est très bien. Allez sur Facebook. Je comprends. Nous avons déjà une application Facebook. J' ai d et APP secret. Vous auriez dû le faire aussi. Donc ici, il y a un bouton en savoir plus. Juste juste. Cliquez dessus pour ouvrir dans un nouvel onglet. D' accord ? Et donc il parle de configurer votre application Facebook, puis il a du code sur la façon de le faire. Mais nous devons faire d'abord est en fait obtenir, um nous devons suivre le tutoriel Facebook pour, um avant de suivre ce guide. Oh, le guide Facebook pour implémenter le SDK. Qu' est -ce que Weaken Dio ? Et en fait, nous allons cliquer. Rends-moi une faveur très vite. Cliquez sur cet onglet IOS ici. On y va et on va au guide,
et, euh, euh, on ne va pas l'authentification de l'utilisateur. On y va. Donc, nous sommes sous IOS étaient sous web. Nous voulons l'authentification de l'utilisateur et le voici. Tu vois celle-là ? C' est encore son Facebook Okay. Guide IOS Authentification utilisateur Facebook. C' est juste. Cliquez sur ce bouton et ouvrez dans un nouvel onglet. C' est le guide qui nous tient vraiment à cœur. On y va. C' est comme quoi ? Rien. Je n'avais pas l'air trop droit. C' est ça juste ici. Donc, la configuration de votre application. C' est la foi Facebook. Authentification pour IOS Donc, voir ce Facebook Guide de démarrage. Ok, c'est vrai. Cliquez dans l'ouvrir dans un nouvel onglet. C' est là que tu devrais être. D' accord. Facebook sdk pour IOS démarre. Ok, tu es là. Super. Donc, quelques choses téléchargez STK de l'Iowa et téléchargez la bêta. Ok, donc Facebook fait son voile SDK et des pots de cacao, ok ? Et on va utiliser des pots de cacao pour cette application de base de feu. Mais nous n'allons pas utiliser les gousses de cacao Facebook, Leiber. Et la raison pour laquelle au moment de cet enregistrement, j' avais neuf ans n'est pas encore sortie. Et donc les gousses de cacao que Facebook a n'est pas la bêta pour IOS neuf. C' est l'ancien, et ça va causer des problèmes. Ce qu'on va faire, c'est qu'on va cliquer sur la bêta de 9 téléchargements de l'Iowa, et il va télécharger le SDK du 9 Iowa, qui est exactement ce qu'on veut. Il va OK, donc c'est le téléchargement et ce que nous voulons faire maintenant. Donc, nous avons en quelque sorte partiellement mis en place notre application déjà, mais ce n'est pas tout le chemin mis en place sur Facebook. Donc, voir cette attente Harris est tableau de bord apt. Ok, c' est ça. Cliquez dessus et ouvrez le pied dans un nouvel onglet. Donc, avant que ce que vous avez vu était pouvait continuer vers le haut parce que vous avez déjà créé une sieste. Donc ce que vous avez vu auparavant était ici aussi basique. On a créé tout ça. Ok, maintenant quoi ? Vous pouvez dio et je l'ai déjà fait ici. C' est juste là. Mais ce que vous devez faire, c'est cliquer sur la plateforme publicitaire, d'accord ? Et puis tu vas cliquer sur IOS, ok ? Et remarquez comment j'ai un paquet. J' ai entendu ce paquet. Je dir. que vous voyez ici doit être exactement le même paquet que moi c'est sous enveloppes. Donc, si vous revenez au code ex et cliquez sur cette bannière ici, puis cliquez sur Général, voyez comment vous avez un identifiant de paquet et ce sont en fait des esprits incorrects. mauvais esprit ne correspond pas. Hum et je ne voulais pas ce tableau de bord supplémentaire. Ok, donc je voulais juste Showcase. Alors on y va. Donc l'identifiant du bundle. Cela doit être exactement la même chose que vous mettez sur le paquet Facebook I d. Et c'est tout ce que vous avez à faire. Alors souvenez-vous de la plateforme publicitaire. Ok, ajoutez l'identifiant du paquet. Et puis juste ici, signe
unique sur clic. Oui. Ok, Single Sign sur clic. Oui. Puis cliquez sur Enregistrer les modifications. C' est tout ce que tu as à faire. On avait déjà cette partie ici. Et si vous n'avez pas cette partie, c'est parce que vous ne l'avez pas fait dans nos autres vidéos. Alors retournez en arrière et faites ça. Et donc et nous sommes dans les paramètres du tableau de bord ici. D' accord ? C' est tout ce que tu as à faire. Donc c'est fait. Et maintenant, notez notre sdk facebook est terminé le téléchargement. Alors allons de l'avant et il suffit de cliquer dessus, Ouvrez-le. Je vais double-cliquer sur le dossier. Et il y a plusieurs bibliothèques ici qu'il a émergé. Donc ceux que nous voulons utiliser seront le cadre de boulon. Et la raison pour laquelle nous voulons cela est parce que les autres cadres en dépendent et nous voulons le noyau. Vous devez que la cour se présente au travail, et ensuite on veut la connexion. On ne se soucie pas du partage. Nous ne nous soucions pas de la messagerie en ce moment ou de toute autre chose. Donc ce sont les cadres, d' accord ? Et ce que nous allons faire, c'est ah, voyons, par ici, euh, euh, nous allons faire est de créer un dossier frameworks dans nos projets ou de cliquer avec le bouton droit sur ce
dossier principal ici, et de taper cadres. Ici, tu y vas. Et maintenant cliquez et faites-les glisser ici, et nous allons les copier pour nous assurer que copier les éléments est nécessaire et ajouter deux cibles est sélectionné. Donc, nous avons juste copié ces frameworks dans afin que nous puissions les utiliser. Ok, maintenant, ce qu'on a aussi besoin de dio, c'est oui. Mettez les pattes de coca en marche, alors ouvrez votre terminal. D' accord ? J' ai le mien juste là. Êtes-vous juste taper dans le terminal avec la commande Space Command Space Terminal et obtenu naviguer vers votre projet. Donc je vais aller à l'esprit sur les ordinateurs de bureau de CD et allons sur les pistes de Seedy Dev. C' est la vitrine. D' accord ? Et je viens de communiquer effacer mon écran. Rends-le plus propre. On y va. Nous voulons faire maintenant est obtenir des gousses en marche et vous devriez déjà avoir piqué des gousses de cacao installées sur votre ordinateur. Si ce n'est pas le
cas, si pod en elle ne fonctionne pas pour vous, pour une raison quelconque, nous voulons faire est de taper dans ce pseudo gymnase installé pots de cacao. On l'a fait dans une autre vidéo. Mais si vous n'avez pas aller de l'avant et le faire maintenant et installer des gousses de cacao vous demandera votre mot de passe d'
ordinateur. Et ce qu'on va faire, c'est qu'on est dans le directeur du projet Exco. Bien. Et avoir un pod dedans. D' accord. Et ça va initialiser ton projet en tant que projet de gousses de cacao, accord ? Et c'est terminé cette année. Donc maintenant je vais fermer mon ex code, ok ? Et puis ah, ok. Et donc nous avons un fichier pod là, alors allez-y et ouvrez ça dans n'importe quel éditeur de texte, allez trouver votre fichier. Ici, allez aux documents sont bureau pour moi,
et puis ah, et puis ah, ce fichier pot et juste l'ouvrir avec n'importe quel éditeur de texte et éditer de texte n'importe quoi. Ça n'a pas d'importance, ok ? Et ce que nous voulons dio, c'est si vous allez ici à la base de feu, allez dans les onglets Firebase ici à droite, um, clic
droit isolation et configurer pour IOS. Et c'est là. Juste ici. Prends cette ligne de code, d'accord ? Et mettez-le ici. D' accord. Et il y a une autre chose que nous voulons dio et ah, c'est utiliser les frameworks. Faites-le ressembler à ça. Nous voulons être en mesure d'utiliser des frameworks dans le fichier Arpad. Donc c'est comme ça que vous devez dio et ensuite commander s pour le sauver et x hors de lui. Retourne à ton terminal. Et maintenant, nous aurions pu être pod install va lire ce fichier et installer tous les frameworks qu'il a besoin d'installer en fonction de ce que vous avez écrit là-dedans. Et c'est penser, télécharger, installer leur ego. La base Fire est maintenant installée. Donc maintenant je peux revenir à mon projet sur mon bureau juste ici. Et, euh, tu vois, sait qu'ils étaient sur le bureau remarque un nouveau fichier ici. Ce fichier blanc, c'est celui qu'on veut. Donc il suffit de double-cliquer dessus et de remarquer. Maintenant, il y a deux projets. Ok, l'un a nos cadres, et l'autre a nos chutes et ah, écoute, c'est un truc très cool, ok ? Pas grand-chose. Pas grand-chose. Alors on y va. Nous avons maintenant Firebase dans notre projet. Nous avons maintenant Facebook dans notre projet. Ok, donc on fait de grands progrès ici. Il suffit de les déplacer. Déplacez des choses ici pour qu'on puisse, euh, en fait, je faisais ça. Et cela va éteindre le côté droit. Éteignez le côté gauche. Eh bien, en fait ,
cliquez sur OK, donc nous voulons faire maintenant que Facebook est installé, nous avons Firebase installé. Allons de l'avant et regardons le guide de démarrage de Facebook et assurez-vous que nous avons tout. C' est très important lorsque vous faites quelque chose de nouveau ou installez un framework, ils suivent toutes les instructions. Ok, donc nous avons déjà ajouté des choses à notre projet, donc je n'ai pas besoin de m'inquiéter à ce sujet. Mais maintenant il y a quelque chose d'autre qu'il nous faut pour faire fonctionner Facebook. Ok, alors allez-y et allez à votre liste de points d'infos. OK, à droite. Cliquez dessus et allez ouvrir en tant que code source. Et la raison pour laquelle nous le faisons de cette façon. C' est comme nous l'avons fait par le passé. Là où tu cliques sur ces choses, ça va être beaucoup plus rapide. Donc, ce dictionnaire principal juste ici. Comme vous pouvez le voir, c'est ce qui compte vraiment. C' est là qu'on veut mettre ça. Donc ce qu'on va faire est de copier le code que Facebook nous donne ici et de le coller juste là. Ok, des schémas de
paquets. Et il est à la recherche d'un Il est à la recherche de notre application Facebook. J' ai quoi ? Il se trouve que nous avons ça ici. Si vous résolvez cet écran ouvrir sur votre tableau de bord, suffit de copier cela après que j'ai d et le mettre juste ici. D' accord ? Et puis il le veut encore ici. Pas grand-chose. Il suffit de le coller maintenant. Nom d'affichage Facebook. C' est le nom complet de celui que vous avez dans votre tableau de bord. Donc, le nôtre est Dev Slopes Showcase années pourrait être ce que vous avez nommé le vôtre ou vous pourriez
le nommer la même chose si vous suivez le long et ah, Alex, Grande démonstration de pentes de profondeur. OK, alors on a juste fait ça. Alors que les étapes ont été faites. Et maintenant, euh, souvenez-vous que dans d'autres vidéos, nous avons eu des problèmes pour pouvoir se connecter à Internet à cause de la sécurité du transport . Donc, nous devons ajouter Facebook à notre sécurité de transport et, euh, si vous aviez déjà la sécurité du transport um, activé dans votre application, vous ne voudriez pas simplement copier tout cela, parce que parce que c'est le principal dictionnaire de sécurité des transports ici. Hum, et tu ne voudrais pas copier ça. Vous voudriez copier juste le dictionnaire intérieur ici, mais puisque je ne l'ai pas encore implémenté dans cette application, et vous ne l'avez pas non plus, probablement juste copier tout cela ici et juste ici. Il suffit de le coller. C' est ce que Facebook exige. Pas grand-chose, d' accord. Et, ah, nous avons besoin de vous maintenant, c'est que nous ne sommes pas encore prêts. Il y a d'autres choses que nous devons faire en détail, non ? Cliquez sur ce lien en détail ici. D' accord. Préparation de votre APS pour IOS neuf. Donc nous avons juste mis ce qu'il nous demande de faire ici. Mais il y a d'autres choses qu'on veut faire. Euh, juste là. Nous avons donc besoin de la liste blanche des applications Facebook. Donc, ce qui va se passer, c'est qu'on va écrire un code qui nous oblige à ouvrir votre autre et on a besoin. Et avec le neuf de l'Iowa, il y a beaucoup de sécurité. Donc, nous avons maintenant besoin d'ajouter ce système de requêtes d'application ls, quel que soit le type d'applications que les femmes que nous pouvons ouvrir à partir des applications pour aller avant et copier ceci. C' est la dernière chose que je pense que nous devons mettre ici et coller que dans cette volonté nous devons nous devons autoriser les schémas de requête queer pour IOS. Et ce sont ceux que Facebook utilise, K. Cela aidera à se débarrasser de certains domaines qu'il voudra nous donner. Donc, euh et c'est pour, je crois pour Facebook Messenger. Um, ouais, on n'a pas besoin de messages sur Facebook. Ok,
ça a l'air très bien. Il y a encore une chose que je veux faire avec Facebook. Donc, hum, Facebook a quelques problèmes avec le nouveau là-bas avec le nouveau IOS neuf. Ils n'ont pas terminé leur STK et il y a des problèmes avec eux avec le code binaire. Donc, si vous allez ici pour cliquer sur votre icône bleue, entendre votre projet, aller dans les paramètres de construction et dans la recherche pour simplement taper les sources de code bit activé bit coat, nous allons juste le désactiver dès maintenant. On n'a pas besoin de s'inquiéter de l'amincissement de l'application ou de s'inquiéter du gros code en ce moment. Ceci est juste aidé Éteindre certains problèmes qui vont venir maintenant, vous n'avez pas besoin de vous inquiéter à ce sujet ou même de le comprendre. Fais-moi juste confiance. Ça nous sauvera. Certains problèmes au fur et à mesure que nous continuons, c'est que vous voyez juste là ,
euh, ils en parlent un peu,
mais ils ne l'ont pas encore complètement fonctionné. Donc d'accord, je regarde en arrière l'autre page Facebook ici juste pour m'assurer qu'il a tout. Et, , apparemment,c'est juste nous dire,
vous savez, que, euh, euh, de la façon d'utiliser ces trucs et je vais aller de l'avant et expliquer ça, euh, Celui-ci est un objectif C Nous ne faisons pas d'objectif. Voyez, nos fous et rapide. Alors, suivez. Donc, si vous arrivez à ce point, vous pourriez juste tomber ici dans la vidéo au lieu de la liberté. La documentation. Parfois, tu vas devoir le faire. Tu vas devoir traduire le code objectif C en Swift. Et ça ne devrait pas être trop dur. Vous pouvez trouver l'aide dont vous avez besoin sur Internet ou faire quelques recherches, C'est
donc bon. Alors, qu'est-ce qu'on fait ? Ce que nous avons maintenant, c'est que Facebook est intégré. Nous avons intégré le feu, mais ils ne sont pas vraiment ni l'un ni l'autre ne fait rien. Um Donc, allons de l'avant et regardons la recherche du guide de démarrage à l'
authentification de l'utilisateur pour la base de feu. Mais nous voulons celui de Facebook, qui est juste ici. Ok, donc l'authentification Facebook, c'est l'euro. Peu veulent déposer et copier et coller si vous l'avez perdu. Nous avons donc créé une nouvelle application. Ok, nous avons inclus l'application Facebook I ds dans le fichier de liste r p. Nous avons inclus le pot, leur cadre. Nous avons inclus la
commande use frameworks, um, um,dans le fichier Arpad. Ok,
ça a l'air super. Ok, donc on fait des progrès. Donc, qu'est-ce que vous devez faire maintenant est de passer à notre délégué d'application sur notre projet, qui est juste ici. D' accord. Nous avions besoin d'importer des choses. Maintenant, on ne suit pas ce type ici. Fais ce qu'il nous dit de faire. Donc, euh, je vais dire, et au fait,
euh, euh, quand ils et ont remarqué que je traversais,
c'est que Firebase n'a pas été mis à jour à 100% avec la nouvelle désintégration de Facebook, le nouveau SDK Facebook a de légères différences pour IOS neuf. Donc, nous rencontrons des problèmes, va juste changer autour et encore. Assurez-vous que vous avez Swift sélectionné ici et ne pas objecter à voir ce est leur documentation et rapide. Donc, ce que nous voulons dio est d'importer ces frameworks qui utilisaient donc le kit de base FB sdk
et d'importer le kit de connexion FBS DK. D' accord. Et je fais juste un ordre de construire juste pour m'assurer qu'il n'y a pas d'héritiers. Parfois, lorsque vous importez des frameworks, cela vous pose des problèmes. Et donc si vous faites commande plus que Beato construisez, vous savez qu'il n'y a pas de problèmes aussi, juste pour que vous sachiez,
comme je traversais ce code X sept avait des erreurs comme il disait qu'il
ne parvenait pas à importer ces bibliothèques. Si vous voyez ça, ne vous inquiétez pas. Sachez toujours cela tant que commande plus B, tant que vous pouvez construire votre projet, cela signifie que tout fonctionne. Si vous ne pouvez pas construire votre projet, vous savez qu'il y a un problème. Donc, malgré les erreurs qui clignotent dans votre visage, si vous pouvez le construire, vous êtes OK. Donc, euh, Coolio donc juste ici dans l'application a fini de lancer avec des options et fermer ceci. Rends-le un peu plus grand. , Ce qu'on veut faire,c'est quand la pomme sera lancée. Nous voulons vérifier avec Facebook. Donc, si un utilisateur a choisi de s'authentifier auprès de Facebook et d'utiliser Facebook, connectez-vous. Nous allons d'abord vérifier Facebook et voir si nous sommes déjà connectés à des choses comme ça. Eso nous devons remplacer le point d'entrée de l'application. Donc, c'est un délégué d'application et ce que vous allez dio Simon FB sdk application délégué dot instance
partagée, um, application
point Et lequel voulons-nous ? On veut, euh, a fini de lancer avec des options, et on va passer l'application, ok ? Et on va passer l'option de lancement. Donc tout ce que nous faisons, c'est que nous passons dans les choses qui nous ont déjà été données quand cela, quand cette fonction est appelée, nous passons juste à Facebook et laissons Facebook prendre le contrôle et voir s'il y a tout ce qu'il a pour nous. D' accord. Et puis remarquez ici sur l'application du côté droit est devenu actif. Trouvons cette fonction. Ainsi, chaque fois que l'APP devient active, redémarrez toutes les tâches qui ont été suspendues. Eh bien, l'application était inactive. Donc, fondamentalement, chaque fois qu'il est actif, nous voulons juste, um nous voulons activer Facebook Si Facebook est activé dans nos applications FBS decay s de ok événements app Il y a des événements APP Donc FB sdk app events toe activer l'application Et ici, il est notifie le système d'événements que l'APP a lancé et lorsque les journaux appropriés et activé l'événement d'application OK, donc nous voulons juste activer Facebook. Chaque fois que cela arrive, l'écran devient actif Il y a une autre fonction que nous avons besoin d'implémenter qui n'est pas implémentée ici Et c'est, euh c'est la raison pour laquelle nous avons dû ajouter ces schémas de requête est à notre fichier de liste r p parce qu'à partir d'ici, nous allons ouvrir l'application Facebook si l'utilisateur n'est pas connecté afin qu'il puisse se connecter. Ok, donc ce qu'on va dio, c'est ah, taper l'application et c'est ouvrir votre URL, mais celui-ci est juste là, c'est juste une fonction ah. Cela fait partie du délégué d'application que vous pouvez utiliser et nous allons voir comment cela fonctionne à la recherche d'un retour. Booléen Donc, nous allons retourner le délégué de l'application SDK FB cette
application de point d'instance partagée Mais cette fois, ce sera cette Ah, ouvrez votre l ici. Et en passant simplement l'application passe dans votre passe L dans l'application source et passez l'annotation. Donc tout ce dont vous avez besoin est en fait ici. Il le transmet à Facebook, laisser Facebook s'en occuper, Face allait s'occuper d'elle pour nous. Donc, tout ce que vous devez comprendre est que lorsque vous allez vous connecter ou créer un nouveau compte en utilisant Facebook pour cette application, il va charger l'application Facebook. Et ça va gérer ça ici. Si vous l'êtes si vous l'utilisez. Juste parce que nous mettons Facebook ici ne signifie pas
que, hum, votre application va l'utiliser. Donc, si vous ne vouliez pas utiliser visage ou si l'utilisateur s'est inscrit avec e-mail et mot de passe, ceux-ci vont retourner faux et Facebook ne fera rien. Donc, nous avons ces fonctions implémentées, et nous avons déjà suivi ce genre de choses ici. D' accord. Et ceci ici est le code pour réellement implémenter Facebook. Ok, euh ,
vous suivez, ou vous pouvez juste suivre ce sens par vous-même. Si vous voulez votre positivité et essayez-le. Laisse-moi y aller et commencer maintenant. Donc, ce que nous voulons faire est de retourner à notre contrôleur de vue. D' accord ? Et, euh, ok, ce que nous allons faire, c'est que, quand un utilisateur se connecte, ok, que les registres sont quand ils cliquent sur le bouton de connexion, c'est soit va s'inscrire sur Facebook ou les connecter avec Facebook. Et puis ce que nous voulons également faire est de nous assurer que la prochaine fois que la pomme se charge que nous
verrons s'il y a déjà une session existante et s'il y a juste une connexion, nous n'avons pas à utiliser votre avoir à appuyer sur cela face à, mais chaque une seule fois. Ce serait vraiment ennuyeux. Donc, nous voulons faire est juste automatiser cela un peu ici. Et donc, euh, ce qu'on doit faire, c'est quand Facebook s'authentifie avec succès, on doit sauver la session, ok ? Parce que lorsque vous vous connectez, il va également créer un compte Firebase et nous avons besoin des deux. On ne peut pas utiliser Facebook seul. On doit avoir une base de feu incluse. Donc on va créer dio. Je suis de l'action. Ils FB mais impressionné, juste lorsque le bouton Facebook est pressé, nous voulons soit se connecter ou créer un compte. C' est ce qu'on va faire en sorte que ça marche. Et je pense que nous devons importer des choses ici. Eh bien, ils ne le montrent pas sur leur écran, mais je sais que nous devons donc importer le kit de base SDK FB. Nous allons importer FBS Decay Log in kit. D' accord. Les bibliothèques que nous avons glissées dans notre projet importent celles et commençons ici, et je laisse cet écran ouvert sur le côté gauche. Je ne suis pas complètement à 100% si vous voulez, mais nous allons continuer et le faire comme ici. Et c'est très commun pour moi quand je suis en train de programmer orteil avoir de la documentation ouverte sur la gauche comme ça et mon code ouvert sur la droite. Donc, cela pourrait vous aider à résoudre les problèmes plus facilement. Alors on y va. Se connecter Facebook est égal à F B s d K. Connectez-vous au gestionnaire, et nous allons à Nous allons créer une nouvelle instance d'un journal et un gestionnaire. Et si tu te demandes,
est-ce que j'ai ça sur mémorisé, tu sais, comment il sait ce truc pour être honnête. Moi, comme tous les autres développeurs du monde. On va chercher tout ça. Comme si je pouvais construire ce Facebook. Je pourrais construire 100 absence Facebook, et j'ai probablement des trucs à revenir ici et regarder la documentation parce que je ne pouvais pas souvenir. Donc, vous voyez comment Riel codait réellement. Donc, quand vous regardez des cours où ils tapent parfaitement tout de A à Z comme la ligne, vous savez, un pas un à 50 sans un problème, ils sont trompeurs. Nouveau, parce que ce n'est pas de la vraie programmation, et ça va te donner un désavantage. Donc facebook se connecter point Connectez-vous avec les autorisations de lecture. Donc on va juste se connecter ? Je vais agrandir ça. Débarrassons-nous de cette documentation pour l'instant,d'
accord ? Débarrassons-nous de cette documentation pour l'instant, Et les autorisations que nous voulons, c'est juste un email, ok ? Et il cherche un tableau de n'importe quel objet, donc nous allons juste faire un tableau littéral et la permission que nous voulons à nouveau est l'email. Ok, eh bien, nous voulons être en mesure de le faire, c'est de les connecter avec le système de messagerie Facebook comme Facebook. D' accord. Et le gestionnaire est ce qui se passe après avoir réussi ou échoué, ok ? Et alors quoi ? On va faire, c'est qu'on va taper. Ah, les groupes
Facebook. Appuyez à nouveau sur Entrée et appuyez sur Entrée ici. Donc encore une fois, ce qu'il fait est qu'il passe dans des variables, mais il ne leur donne pas de noms, et donc vous allez vouloir lui donner un nom, Donc résultat facebook. D' accord. Et celui-ci sera, hum, Facebook Air. Je leur donne juste des paramètres pour qu'on puisse les utiliser. D' accord. Cool. Pas grand-chose. Bien faire jusqu'à présent. OK, donc maintenant ce que nous voulons faire est de dire, si facebook aucune erreur Facebook n'est pas égal à Neil. Ok, Donc ce que nous disons, c'est que s'il n'y a pas vide, ça veut dire que nous avons eu un errant n'a pas réussi. C' est tout ce qu'on fait. Eso on peut imprimer, euh, connecter
Facebook en feutre et ensuite l'air, et ensuite on peut passer sur le visage Facebook. Book air a également remarqué que lorsque vous êtes dans une fermeture comme
celle-ci, ce rappel est le genre. Lorsque vous appelez des paramètres et d'autres choses, complétion
automatique ne fonctionne pas. Juste je ne pense pas que les codes X mis en œuvre toutes ces fonctionnalités encore, Donc Facebook air, mais cela devrait toujours fonctionner. Donc, s'il y a un air, allez-y et imprimez simplement l'air, vous savez, peut-être dans une application différente ou dans votre propre application, vous pourriez l'aller encore plus loin. Si ça tombe, tu leur donnes une notification pop-up ou quelque chose comme ça, on ne va pas s'inquiéter pour ça maintenant. C' est ce qu'on veut faire, c'est s'il y a un aspirateur d'air. Sinon, attrapons le jeton d'accès. jeton d'accès est donc égal au jeton d'accès SDK FB. Ce jeton d'accès courant chaînes de jeton point. Donc tu sais, comme quoi ? Qu' est-ce qui se passe ? Donc, ce qui va se passer, c'est quand vous vous connectez avec succès ou créez comme nous venons de faire Facebook stocke un jeton d'accès. Ok, donc il y aura quelque chose ici si on arrive à ce point, c'était juste attraper la chaîne de jeton parce que ce qu'on veut faire c'est ah, sur la base de feu. Nous voulons parler à la base et dire, Hey, nous nous sommes connectés et nous voulons sauver cet utilisateur. I d Donc notre utilisateur I d peut être associé à Facebook,
OK, OK, parce que si jamais nous sortons Facebook de l'utilisateur de l'application va avoir besoin d'un type de moyen encore pour être en mesure de se connecter. Et c'est ainsi que tu es, comment tu le fais. Et, euh donc on a un jeton d'accès, et, euh, tu sais quoi ? Je veux m'assurer que nous le faisons, euh avant d'aller plus loin avec la base de feu et de stocker ces données, nous allons juste nous assurer que cela fonctionne ici. Faisons en sorte que Facebook travaille tous ensemble. Donc, il est juste imprimer connecté avec succès avec Facebook. Et ce que nous pouvons aussi dio est l'éligible. Je veux juste quelque chose ici. Ce que nous pouvons également faire est de taper dans facebook résultat facebook point um, qu'est-ce que c'est ? , En fait,
c' est imprimer le jeton. Où la zone de jeton d'accès Tokyo. OK, donc nous voulons voir si nous nous sommes connectés et avec succès cela va imprimer le jeton. Sinon, ça va nous donner un air. C' est tout ce qu'on veut faire. Maintenant, nous savons que l'action I B n'est pas encore connectée, alors faisons-le maintenant. Quoi ? Votre storyboard principal. Ouvrez votre éditeur assistant, Prenez ce bouton Facebook ici dans le contrôle. Faites glisser le dessus. En fait, n'avez même pas besoin de l'éditeur assistant ouvert puisque nous avons l'action I b juste contrôle. Faites glisser cela sur votre contrôleur de vue, puis sélectionnez le bouton Facebook enfoncé. Allons de l'avant et construisons et exécutons ce simulateur de méchant garçon à venir. Il est là. Ok, Moment de vérité. Ok, donc voici notre Il nous donne des trucs sur Facebook. On verra. On verra si ça marche. Moment de vérité. Cliquez sur Facebook. Bouton de connexion. Ok, ça charge mon clic Facebook. OK, et le voici, connecté
avec succès avec Facebook, et il a imprimé ce jeton. Bon travail, les gars. Facebook est implémenté avec succès dans l'application, et il fonctionne avec succès. Et allons de l'avant et appelons réellement cette vidéo Done. Ceci est d'obtenir Facebook mis en œuvre moins dans la prochaine vidéo. Allons demander à Firebase de parler à Facebook et de commencer aussi, aussi. Donc c'est tout pour l'instant, pour récapituler. Ce que nous avons fait, c'est que nous avons traîné dans les cadres de Facebook ici. OK, on l'a traîné. Nous, euh, dans notre liste info point p. Nous avons ajouté un tas de choses que nous avons ajouté ls systèmes de requête d'application de Facebook. Ceci est requis. Nous avons une liste blanche Facebook. Nous avons dit, hey, Facebook est autorisé à utiliser notre APS, Nous les avons ajoutés à nos domaines d'exception N S. Nous avons également ajouté l'application Facebook I d. Dans le nom d'affichage Facebook dans notre application que vos schémas l avec le F B dans notre application i d nous avons ajouté tout cela dans la liste info point p. Nous sommes allés Teoh sont les paramètres de construction de notre projet et nous avons désactivé activer le code bit. D' accord. Et puis dans notre contrôleur de vue ici tout ce que nous avons fait était important Le noyau dans la connexion et nous
venons de l'utiliser Facebook journal et gestionnaire nous venons d'appeler la fonction de connexion super, super facile. Um et ça réussit ou ça va tomber. Lorsque vous cliquez sur le bouton, il charge l'application facebook. D' accord. Et puis nous avons aussi enfin, nous sommes allés dans notre délégué d'application et sur l'application a terminé le lancement. Ça va utiliser Facebook pour vérifier le chèque. Si vous êtes connecté ou non, l'application devient active. Ça va réactiver Facebook si nécessaire. Et puis, euh, c'est
ce qui va ouvrir le U R l quand tu cliqueras. Quand il va vous inscrire pour la première fois, il va ouvrir l'application Facebook et puis il va revenir ici, et c'est comme ça qu'il gère. Alors que nous avons fait leurs fesses faras sur le web ici, vous savez, nous avons examiné la documentation sur la façon de le faire. Préparation de votre application pour IOS 9. Hum, nous avons aussi, euh, parcouru ce guide ici pour commencer et nous avons téléchargé. Bien sûr. Vous savez, le débat abondant à l'avenir. Ok, quand j'avais neuf ans, c'est officiellement la vie et leur SDK n'est plus en bêta. Tu vas vouloir saisir ça à travers des gousses de cacao, d'accord ? Ou vous pouvez cliquer sur le téléchargement IOS STK ici. Ce document sera mis à jour à ce moment-là. C' est ce que tu vas vouloir dio. Et donc c'est tout. Firebase s'en va. Facebook va avoir suivi quelques guides ici. Nous avons mis en place des gousses de cacao pour l'installation de base Beaucoup de trucs ici. Si vous avez manqué l'une de ces étapes, repassez la vidéo et vous trouverez toutes les pièces dont vous avez besoin. Et encore une fois, la documentation est en fait assez fantastique ici. Faites attention aux filles dans la vidéo si vous avez besoin de revenir en arrière. D' accord. Des guides que nous avons traversés ensemble et, euh, c'est tout. Déplacement des grumeaux La prochaine vidéo
101. App : Showcase Partie 5 - E-mail /mot de passe: Hé, quoi de neuf, tout le monde ? Mark Price ici, Deb pentes point com et la dernière fois sur la construction sont très cool. Showcase façon avait ceci, qui était fondamentalement la possibilité de se connecter à l'application avec Facebook. Donc, si vous n'êtes pas inscrit, il vous inscrirait sur Facebook. Et si vous êtes inscrit, il vous connectera automatiquement. Et, euh, on a tout le code pour ça et quelque chose qui marche. Tellement bon travail. Donc maintenant, ce que nous voulons faire est d'obtenir l'authentification par e-mail et mot de passe en cours maintenant qui
se passe via la base de feu. Donc si on va ouvrir notre compte Firebase ici, ok ? Je vais juste charger le site Web principal ici. Base de feu. Ok, connectez-vous. Et voici notre application. Gérer la connexion et la désactivation de l'APP. D' accord. Donc ce qu'on a fait c'est qu'on a activé Facebook, ce qui est oh, off. C' est ce qu'il utilise pour l'authentification. Nous avons mis en œuvre tout cela. C' est pourquoi ici,
euh, euh, était-ce que vous,
euh, nous devons m'excuser. Donc, nous nous connectons d'abord avec Facebook. Et puis, c'est pourquoi ici, peu de temps après, nous allons implémenter oh, l'
authentification pour Facebook, authentification pour Facebook, et ensuite nous allons aller de l'avant et implémenter l'email et le mot de passe de nom d'utilisateur que nous avons déjà activé. Donc, si vous n'avez pas activé l'activer maintenant, vous pouvez mettre aucune réponse pour réinitialiser le mot lorsque quelqu'un veut réinitialiser ses mots de passe. Euh, trucs
vraiment cool, en fait. Um, si cool affaire. Pas grand-chose. Alors retournez par ici. Teoh, votre firebase dot com docks IOS Guide Connectez-vous mot de passe ici. Authentification utilisateur. Voici le guide que nous suivons pour l'enregistrement, création de comptes d'utilisateurs et la connexion des utilisateurs. Et j'utilise vraiment le manteau ce code ici pour le faire. Cependant, le nôtre est différent. Donc, ce que nous voulons faire est juste plutôt que d'avoir beaucoup de champs différents, vous savez, confirmer le mot de passe, inscrire des choses comme ça. Nous voulons juste envoyer un mot de passe par e-mail, et vous cliquez simplement sur vous connecter et il vous connecte. Et si vous n'êtes pas connecté, il essaie de vous inscrire. Un peu comme le bouton de connexion Facebook fonctionne. Rendons la vie d'un utilisateur un peu plus facile, donc nous allons créer une logique pour cela. Alors on y va. Ça m'a l'air bien. Est ce que nous voulons faire est d'abord terminer ce Facebook Ici s O. Nous l'avons obtenu connexion avec succès à Facebook. Facebook, ce qui est très bien. Mais rappelez-vous, nous devons faire parler ça. base de feu de Teoh. Allons-y et faisons-le maintenant. Donc, nous sommes connectés avec Facebook, et nous devons appeler le Rappelez-vous comment j'ai dit la connexion avec Facebook et,
oh, l'authentification, l'authentification, pas e-mail et mot de passe. Donc, nous avons dû annuler avec les fonctions du fournisseur auteur. Donc ce qu'on va faire c'est d'abord obtenir le service de données de référence de base. Ok, voyons voir ici. Nous ne savions pas quoi ? Nous n'avons même pas créé de service de données, alors faisons-le maintenant. Donc nous avons besoin d'un endroit où nous allons stocker des références à la base de feu et toutes les
propriétés et routes de la base de feu et des choses comme ça. On a besoin d'un endroit pour stocker ça. Donc on va créer un singleton. Je vais créer un nouveau groupe ici. On va appeler ces services, émigrer un nouveau fichier à l'intérieur de ce dossier, et ce sera juste un fichier rapide, et on va appeler ce service de données. Et un singleton, si vous ne vous souvenez pas, c'est une seule instance d'un bouton vérifié d'une classe à laquelle vous avez accès. Donc on va siéger au service de données de classe. D' accord. Et là, c'est ce qu'on va dire. On va dire statique. Laissez-moi juste un d s court pour le service de données, et puis il va Teoh service égal de données. Alors peut-être que vous êtes, genre, que se passe-t-il ? Je ne comprends pas. Eh bien, nous créons une propriété statique. Variable extatique. Cela signifie qu'il n'y a qu'une seule instance de mémoire, et ce sera que nous allons la rendre accessible globalement. Donc fondamentalement, on va prendre cette variable, et elle ne peut pas être changée. C' est un laisser. Donc, nous n'avons jamais à nous soucier que quelqu'un le modifie, détruisant seulement 11 instances de en mémoire jamais. Et c'est ce qu'on veut. Donc il y a notre service de données, et dans notre service de données, nous voulons juste mettre en œuvre et dans notre service de données,
nous voulons juste mettre en œuvredes
choses qui peuvent interagir avec,
euh,
Firebase. choses qui peuvent interagir avec, euh, Alors faisons ça maintenant. Le bar privé est une base de référence. J' utilise juste,
euh, euh, on n'a pas de base de pompiers. Important. Si vous voulez utiliser firebase importé ici en haut. On y va. On y va. Et, euh, c'est celui qu'on veut. Et pour la fille qui va être votre application de base de feu. Donc, euh, si tu es genre, quoi ? Est-ce que ça va juste ici à votre compte Firebase cinq bases ? Et, euh, non, c'est votre L juste ici. C' est toi. C' est ça. Donc, c'est l'euro. Et ce que nous disons, c'est d'obtenir une référence à notre compte Firebase spécifique. De cette façon, toutes les demandes et les choses feront leur venir directement sur notre compte afin qu'ils puissent réellement enregistrer dans la base de données. C' est très important. C' est critique. Et puis faisons une variable publique. On va juste retourner la variable privée à nouveau. C' est juste un bon port, une bonne pratique de revêtement, c'est tout. Ok, donc nous avons une référence de base à laquelle nous allons accéder quand nous nous connecterons et authentifierons, et c'est ce que nous voulons. Donc ça m'a l'air bien. Revenons au contrôleur de vue ici. Ce que nous voulons faire, c'est saisir la référence de base que nous voulons la saisir, et ensuite nous voulons effectuer une authentification dessus. Alors allons-y et faisons-le. Donc, les points de service de données y accédaient à cette variable statique. Lorsque vous avez des variables statiques, des points
utilisés et des taxes sur la classe, nous n'avons pas besoin de créer le club. On n'a pas à faire ça d'abord, d'accord ? On pourrait juste l'appeler au cours et prendre ce DS, et ensuite on pourra prendre la propriété. Donc, base de
référence, OK, et puisque c'est une référence basée sur le feu, il a une fonction annulée avec, Oh, off provider. Et voyons ici, lequel voulons-nous ? On veut celui avec le jeton. Je vais juste appuyer sur Entrée sur ces variables ici. Et une chose que nous pouvons faire pour que nous n'ayons pas à utiliser des variables du tout, sont donc souvent nommés les variables. Ce qu'on peut faire, c'est juste que je montre une façon différente de le faire. Donc, plutôt que d'avoir les parenthèses ici, nous savons que ça va nous donner la date, et nous savons que ça va nous donner un air. Vous pouvez effectivement enlever ces parenthèses, et vous pouvez enlever le type de retour void. Si on enlève tout ça, ça veut dire qu'on n'en a pas besoin. On va s'en occuper ici, sur ce point. Rien à craindre. Donc ce qu'on va faire est juste de supprimer ça et ensuite je vais dire air et on va annuler les données, alors tu n'as pas à leur donner non plus de noms. Ce qui est ou vous n'avez pas à leur donner des types spécifiques, ce qui est vraiment sympa. Ok,
ça a l'air bien. Mais il me crie dessus . Qu' est-ce que j'ai fait de mal ici ? Oh, je crois que ça doit être comme si Ok, avec l'achèvement des données de bloc d'air, ça a l'air bon de vouloir dire dans Faisons juste construire. Peut-être que c'est,
euh, il nous crie encore dessus. Tu sais, je pense que c'est juste nous crier dessus parce qu'on n'a pas encore rempli les autres champs, donc ça a l'air bien. Parfois, vous devez faire face à des divulgations. Ça pourrait être très si tu veux. Tu es genre, Attends, que se passe-t-il ? Pourquoi m'as-tu donné cet air ? Et jusqu'à ce que tu finisses tout
ça, ça, ça ne se répare pas. Donc, pour le fournisseur, vous mettrez sur Facebook. Vous dites à une base de feu que vous voulez utiliser Facebook. C' est une clé très spécifique. OK, le jeton. Qu' est-ce que tu crois que le jeton devrait être ? Je pense que les jetons devraient être le jeton d'accès. Donc, ce que nous faisons, c'est que nous stockons le jeton d'accès de Facebook dans le cadre de notre compte et regardez-le. L' air à un loin, ce qui est génial. Donc, si nous réussissons à
nous connecter, nous irons ici. Et ce que nous voulons faire est de stocker sur notre appareil, la session ou le jeton de l'utilisateur ? Utilisateur firebase. Ok, pas l'utilisateur de Facebook. Mais si vous vous souvenez de votre connexion avec Facebook, Oui, mais nous avons encore besoin de sauver un utilisateur et la base de feu de base et sait comment parler à un debout avec mot de passe e-mail. Peu importe s'il se connecte avec un compte de notation avec e-mail, mot de passe ou Facebook. On va toujours avoir un utilisateur de Firebase. Nous voulons saisir ça et stocké sur notre appareil. Donc, la prochaine fois que nous chargeons l'application. Si les utilisateurs se sont déjà connectés, nous pouvons l'emmener directement à l'écran sans l'avoir où ils veulent aller, sans avoir à se reconnecter. Donc c'est ce qu'on va faire maintenant. Alors agrandissez l'écran ici pour vous, pour les gens de l'iPhone et les plus aveugles. Ok, donc ce qu'on veut faire, c'est d'abord vérifier s'il y a un air et ensuite gérer ça. Donc, si l'air n'est pas égal à s'agenouiller. C' était bon dans l'impression. Connectez-vous. Abattu. D' accord. D' accord. Logan est tombé, c'est tout. Je ne sais pas quoi faire d'autre pour gérer ça maintenant. On pourrait faire de belles choses comme ça plus tard. Des alertes et des trucs. Je te laisserai gérer ça tout seul. C' est ce que font les bons programmeurs. Ils ont mis beaucoup de manutention de l'air et des choses qu'on va imprimer qu'on a connectées si c'était un succès, alors on s'est connecté. Hé, on l'a fait. On l'a fait. Ok, hors données. Ok, donc on va juste passer les données d'authentification et l'imprimer, juste pour le montrer. Hé, ça a marché. Et si on est arrivés ici, on sait qu'on s'est connecté. Alors allons de l'avant et disons maintenant, Rappelez-vous comment j'ai dit que nous devons l'enregistrer sur l'appareil que vous avez utilisé les paramètres par défaut de l'utilisateur avant ? Refaisons-le. Et son utilisateur par défaut pensait que l'utilisateur standard par défaut dot set valeur et la valeur que nous voulons définir est ah, les données d'authentification point votre i d pour une clé. Et tu sais quoi ? On va utiliser ça beaucoup. Cette clé. Nous ne sommes pas beaucoup de fois. Je pense que oui. Il est probablement temps de mettre ça ici et sont des constantes. Donc disons que nous allons dire que je suis égal à I C' est juste une valeur clé. Donc, il sait quoi regarder vers le haut. Mais plus vous devez taper quelque chose, plus vous avez
de problème ou de potentiel pour les héritiers. Et disons que vous l'avez mal orthographié comme si vous parlez une lettre. Alors tu te demanderais, où est mon insecte ? Ou c'est mon insecte ? Je ne peux pas le trouver. Donc, utiliser Constance est un excellent moyen d'empêcher Ares. Et on va dire « Key you I d. donc on dit juste, Hey, sauver le fait que toi, j'ai d la valeur de ça et cette clé et la clé s'appelle idiots. Nous pourrons y accéder plus tard, donc nous enregistrons simplement le nouveau compte firebase. Et puis ce que nous voulons dio, au
moins à ce stade, est de se connecter à un nouveau contrôleur de vue, que nous n'avons pas encore créé. Alors faisons ça maintenant. C' est le moment idéal pour faire ça. Allons à votre storyboard principal et créez simplement le framework de base pour un nouveau
contrôleur de vue . On y va. À chaque fois, Ok, et passons juste à partir de ce contrôleur de vue ici. Faisons simplement glisser sur ce contrôleur de vue. On n'en a pas besoin d'un bouton ou quoi que ce soit. Nous allons le faire par programme et donc show est bien. Et faisons-en une voiture qui montre clairement qu'elle fonctionne si bien. Dites, Blue, retournez à votre contrôleur de vue et puis ici, nous allons juste dire self dot effectuer Segway avec identifiant. Et nous n'avons pas créé et identifié ce que nous devrions avoir quand nous devons revenir en arrière, j'oubliais ça. Revenons ici pour que l'homme clique sur le Segway et passe l'identification. Ok, Donc ce qui va se passer, c'est que tu vas te connecter avec Facebook, et si ça marche, ça va nous emmener au contrôleur de vue suivant après l'avoir enregistré sur l'appareil. Le jeton, le jeton d'authentification de base de feu. Ok, eso Allons-y et allons voir si ça marche. Connectez-vous à Facebook. Voilà Ok, c'est en train de se charger. Wham bam ! Fait. Deal. Donc ça a fonctionné. C' est vraiment cool. C' est vraiment, vraiment cool, en fait, Um ok. J' aime ça. D' accord. Ça a l'air bien. Regardez ici. Si vous remarquez, nous l'avons maintenant. Ah, les données ici, hors données. Plutôt cool. Ok, donc tout fonctionne. Hum, la prochaine chose que nous voulons faire est ah, qu'en est-il quand l'APP se charge pour la première fois. S' ils sont déjà connectés, nous allons simplement les prendre directement à l'écran suivant. Donc, si vous vous souvenez bien, les Segways ne fonctionnent pas et la vue s'est chargée. Ok,
ça ne fonctionne qu'après que les vues soient toutes apparues sur l'écran. Donc, ce que nous pouvons faire, c'est le faire en vue. N' apparaissait juste un super vu Il semble juste orteil. Assurez-vous que toutes les super classes sont appelées. Et ce qu'on va faire, c'est prendre la clé et si elle existe, l'emmener au prochain grain de poussière. Si n s utilisateur par défaut, utilisateur standard
n'utilise pas la valeur de point par défaut pour la clé. Souviens-toi, voilà ça. Voici la réutilisation juste là empêchait un bug. Donc si cette clé, si nous obtenons une valeur, disait que si ce n'est pas Neil, ça veut dire qu'elle existe. Et prenons simplement l'utilisateur à l'écran suivant. Donc juste un Segway auto-effectuer avec identificateur et il est connecté. Et, euh, peut-être que vous vous demandez où ou peut-être que vous pensez comme, Hey, je n'ai pas le genre d'identification ou deux fois je ne pouvais pas avoir l'air là-bas aussi. C' est tout à fait exact. Nous devrions être de meilleurs programmeurs et faire quelque chose appelé Re factoring. Alors faisons ça. Maintenant. Passons à vos constantes, K. Et ce qu'on peut faire, c'est créer juste une section appelée Segways. D' accord ? Et ici,
juste, juste, euh, nous dirons Segue Sega Segway et dirons, hum ,
connecté, égal à ce que
Ok, Oups, ça devrait être élu. Ok, Laissez et ensuite on peut juste le mettre ici. Segway s'est connecté, puis ici, même chose. Vous pensez peut-être que ce n'est pas vraiment une grosse affaire,
seulement deux fois. Vous pensez peut-être que ce n'est pas vraiment une grosse affaire, Eh bien, cela peut vous faire gagner tant de temps dans le futur. Imaginez si nous devions utiliser ce 100 fois dans l'application, et puis vous devez changer le nom de celui-ci. Tu vas vraiment souhaiter que tu l'aies mis dans une constante. Tu devras changer au même endroit. Ok, donc dit attendre, connecté. Ça a l'air super. Donc, sur la vue apparaissait. S' il y a une clé, accord, s'il y a une base de feu hors de la clé que j'ai sauvegardée automatiquement sur notre appareil, Lageman, donnons-lui un coup de feu. On a juste été sauvé une fois, donc ça devrait juste prendre un directement sur l'écran bleu, je pense. Hé, maintenant, si vous vous êtes déjà demandé, comment ont-ils fait ça ? Comment savent-ils si vous êtes connecté ou non ? Euh, non. Non. Tu sais, c'est comme ça que tu fais. Sortons de ce moche a reçu la mémoire matin. Tellement marre de voir ça là-dedans, mais ses commentaires ici Bonté. Ok, si génial. On a Facebook qui parle avec, euh,
euh, et qui garde la clé. Allons de l'avant et faisons fonctionner
le le mot de passe
e-mail. Pas trop de travail supplémentaire que nous avons à faire. Nous devons attacher ces champs email et mot de passe. Alors faisons quelques points de vente de lierre. Nous avons notre et parfois je le fais d'ici. Parfois, je le fais à partir de l'écran principal. Un Sfar est sorti. Allons-y. Ça dépend de l'endroit où je suis à l'époque. ce moment, je suis dans le code, donc c'est plus facile une barre de semaine et ça va être un champ de mot de
passe, un champ de texte blanc. Ok, donc on doit les connecter parce que c'est ce qu'on va savoir, quand tu seras Smith, quand tu seras sur le bouton Soumettre, ça fera sa magie, tu sais ? Et puis, bien
sûr, nous avons besoin d'une action i B pour quand les boutons effectivement pressés. Faisons ça. Maintenant, je suis à l'action ici au fond funk, et nous appellerons ça. Ah, qu'est-ce que c'est ? E-mail. Mais je veux dire que j'ai un email, mais impressionné ? Pourquoi pas ? C' était un expéditeur. Alors, pourquoi ? Mais d'accord, alors et nous devrons attacher ça à une houle. D' accord, mais c'est bon pour l'instant. D' accord. Et, euh, tu sais ce que j'aime ? J' aime ça. Disons une nouvelle tentative de loi. J' aime mieux ça parce qu'on ne sait pas si tu vas te connecter ou pas. Ok, alors on y va. Si le message électronique est égal à un texte de point rempli où l'e-mail n'est pas égal à cela. Donc, ce que nous disons est de sortir le texte du champ e-mail et ce que nous avons appris de expérience, c'est quand vous prenez quelque chose quand vous prenez quelque chose qu'il n'y a rien là. Ça va donner une chaîne vide. En fait, il ne va pas vous donner une valeur Neil va vous donner une chaîne vide. Nous ne voulons pas ça non plus, mais nous vérifions toujours les deux. Donc, prenons le champ de texte où il n'est pas égal à une chaîne vide. OK, et puis le 2ème 1 doit
aussi fonctionner, aussi fonctionner, qui est le mot de passe. Donc P w d est égal à un texte de point rempli de mot de passe où, um, pwd n'est pas égal à une chaîne vide. Donc, si les deux passent OK, cela signifie que nous avons un e-mail et un mot de passe. , Et si,
euh, euh, si
ça ne passe pas ? Montrons. Montons à l'antenne à l'utilisateur. Ok, alors faisons un spectacle funk. Alerte aérienne. Comme nous allons montrer beaucoup de différents types d'alertes en fonction du type de message que nous
recevons , nous allons simplement créer une fonction réutilisable. Je pense juste à l'avance. Ok, donc c'est une fonction d'alerte qui va être très alerte pour nous. Et c'est comme ça que ça marche. Laissez alerte vous égaler. J' alerte contrôleur et a un titre. Euh, une
mauvaise venue. Voilà, tu y vas. Titre son message de titre est un message. Le style préféré est vous. J' alerte l'alerte de point de style contrôleur. Et nous n'avons pas besoin de ça maintenant. J' oublie quoi ? Le commandement ? Quelles sont les choses réelles avant que je ne le fasse. Donc, j'avais l'habitude de le taper en premier, puis je le supprime juste pour le raccourcir et laisser l'action vous égaler. J' alerte l'action. Donc les alertes vont avoir des actions dans notre cas. On va juste avoir un
bouton okqui se ferme. On va juste avoir un
bouton ok Donc le titre va aller bien. Et le style va être vous. J' alerte le style d'action d'alerte. Oh, allez, vous. J' alerte le style d'action point par défaut, et c'est juste fondamentalement ne fait rien. C' est juste l'action par défaut. Et nous n'avons pas besoin d'un gestionnaire. On se fiche de ce qui se passe après la fermeture. On voulait juste en fermer un autre. Et puis nous dirons, point
d'alerte Ajouter une action. Nous passons l'action parce que c'est l'action. On veut juste le bouton OK qui se ferme. Il ne fait rien d'autre, et alors cela présentera le contrôleur de vue. Et ça va être l'alerte. Et on se fiche de ce qui se passe après la fin. Donc c'est tout ce qu'on va montrer à l'antenne maintenant. On pourrait montrer n'importe quel air que l'on veut, ce qui est vraiment cool. Et donc, euh, juste ici, s'il n'y a pas de nom d'utilisateur ou de mot de passe, comme dans les champs de texte eux-mêmes, on peut dire montrer l'alerte aérienne. Et, euh, vous savez, nous pouvons dire email et mot de passe requis. Vous devez entrer un e-mail et un mot de passe. Maintenant, c'est une bonne chose que tu veux être. Hé, idiot, tu es censé mettre le champ email et mot de passe là-dedans. Mais si tu fais ça, ton patron ne sera pas très heureux. Je suggère donc de ne pas faire des choses comme ça là-dedans. Mais parfois tu le veux. Parce que, bien
sûr, tu dois mettre un email et un mot de passe, et donc je vais le faire tout seul. Allez, les gens. Ok, donc on le teste et on voit si ça marche. Alors allons de l'avant et connectons nos actions et connectons là. Alex, c'est un insecte. Il ne devrait pas être rempli parce que nous ne les avons pas reliés. Mais on pense qu'on l'a fait ici. Il suffit de sélectionner votre contrôleur de vue et, euh, oui, et aller de l'avant et directeur de contrôle, champ d'adresse
e-mail et cliquez sur e-mail. Field Control a fait glisser votre champ de mot de passe. Appelez le champ Mot de passe, puis à partir du bouton contrôlé un glissement vers le contrôleur de vue et cliquez sur tentative de connexion et, euh, cool. Donc, ce qui devrait arriver, c'est quand je lance ceci, si nous n'entrons pas un mot de passe e-mail, nous devrions voir cette alerte. Et je sais que mes affaires sont branchées et fonctionnent. Donc, bien sûr, c'est si, euh, on ne se connecte pas automatiquement parce que je n'y suis pas. Alors allons-y. Et, euh oh, les choses vont dans le sens inverse. Je voulais, euh c'est pour ça que je ne me suis pas débarrassé de plein d'APS ici. Débarrassez-vous de quelques cartes ici très vite pour que je puisse vous montrer. Vous devrez peut-être le faire à. Donc, chaque fois que vous supprimez sieste, il va se débarrasser de toutes les valeurs par défaut
de l'utilisateur, Bien sûr. Et, euh, et regardez tous ces APS que vous avez traversés. Bon boulot, mec ou fille, tu as, ah passé un peu d'APS ici. D' accord. Chargement de l'application. Voyons si ça marche. Connectez-vous et envoyez-le sans utiliser votre mot de passe. Hé, et a travaillé. Que faire si nous mettons juste un et remarquez comment dans le mot de passe sur le mot de passe. Ce n'est pas un mot de passe qui m'a rempli pour réparer ça. Hé, ça marche toujours. Travaillé dans ce cas depuis son entrée un mot de passe. Seulement ça a marché dans les trois cas, donc on est bons. La dernière chose que je veux faire, cependant, est corrigée ce passage pour problème. Cliquez sur votre champ de mot de passe. Et alors ce qu'on veut faire, c'est sur Où est-ce ? Par ici. Nous voulons en faire un champ de mot de passe. Donc, tapez clavier. Lequel est l'apparence ? On va l'avoir. Attendez. Attendez. Mot de passe réservé. C' est là. Je cherchais le mot de passe. Je ne me souvenais pas. C' est un texte sécurisé. Voilà, tu y vas. Cela rendra les points au lieu de la, euh, nous allons auto incapable de revenir pour être gentil. Ok, faisons les points. C' est très bien. Donc, nous ne voyons pas ce que les utilisateurs tapent. Ok, donc ça marche. Donc nous avons l'air géré quand il n'y a pas de nom d'utilisateur ou de mot de passe, alors nous allons en fait gérer, hum, la
connexion. Donc, ce que nous voulons dio est d'abord essayer de vous connecter. C' est la première chose qu'on veut dio. Et d'après la réponse que nous recevons de Firebase, ça va nous faire savoir, en fait, si le compte n'existe pas. Et donc si le compte n'existe pas, nous savons que nous devons créer un compte, puis enregistrer l'utilisateur. Et donc, soit il va se connecter directement à l'utilisateur, soit il va se connecter, tomber, créer un compte, puis se connecter à l'utilisateur. Et je sais que c'est un peu plus de travail, mais ça va créer une meilleure expérience utilisateur. Et c'est ce que sont les bons APS. Donc, euh, vous faites de l'APS mignon. Donc, ma faute. Je le dis. Je te dis la vérité ici. Je te dis ce que les gens veulent. Euh, ok, alors allons de l'avant et authentifions. Alors prenons la référence principale. Donc, le service de données point ds point ref base. Et c'est ainsi que vous vous connectez avec firebase, la base de feu de l'utilisateur ? Assez facile. Ok, donc on vient de passer l'email et de passer le mot de passe. Et oui, nous le faisons sur un bloc d'achèvement. Une personne honnête entre à cette heure pour se débarrasser de lui,
cependant. Une personne honnête entre à cette heure pour se débarrasser de lui, On veut qu'Aaron se débarrasse des données et on se débarrasse de tout ça ici de l'air et de la virgule des données . Et de cette façon, nous n'avons pas à nommer réellement le donner les types des paramètres. Ça marchera juste pour nous. Et alors d'accord, on y va. Allons gérer le boîtier de l'air maintenant. Il pourrait y avoir plusieurs héritiers, non ? Le nom d'utilisateur ou le mot de passe peuvent être incorrects ou le compte n'existe pas. Ou il pourrait y avoir de l'air sur Internet. On ne va pas couvrir tout de cette vidéo. Vous pourriez le faire sur votre propre temps pour rendre cette application meilleure. Personnellement, vous pouvez couvrir plusieurs cas. Donc, si l'air n'est pas égal à s'agenouiller Signification s'il y avait une erreur. Ok, euh, alors on devrait imprimer les manteaux d'air. Parlons de l'Air Coach très vite. Donc, je pense que c'est du code. Allez. On y va. D' accord. Alors allons-y et gérons ça d'abord. Voyons ce qui se passe quand on imprime des choses à l'écran de notre conseil. On cherche un code de l'air . Et, Et, si je le fais, disons que si je le fais,
disons quejen'
ai pas encore créé de compte, n'
est-ce pas ? n'
ai pas encore créé de compte, n' Donc je pourrais dire, um Mark Price aux pentes Dev Dot com comme hey, comment il dit ce point com. Oui, c'est comme ça. 123456 Si je me
connecte, j'ai un huit négatif. Tu es genre, attends une minute. Qu' est-ce que ça veut dire ? Eh bien, jetons un coup d'oeil. En fait, allons-y et imprimons tout l'air cette fois. Oh, pas serré à l'air. Parfois, la Complete automatique est votre pire ennemi. Ok, essayons encore ça. Donc, nous allons imprimer tout l'air et voir ce qu'il dit réellement de Firebase parce que Firebase nous enverra des airs et nous pouvons imprimer ici. Alors refaisons-le. Disons que le rhum soit Mumby à Abc Dot Com et 12345 Ok, voilà. L' utilisateur spécifié n'existe pas. C' est exactement ce qu'on veut. Nous voulons savoir si l'utilisateur n'existe pas, car si ce n'est pas le cas, nous pouvons créer un compte et le connecter. Donc c'est vraiment cool. Certains services ne vous le disent pas. Si certains services, si vous avez le mauvais mot de passe ou s'ils comptent n'existe pas, ou s'il n'y a pas d'Internet, quoi que ce soit, ne
sont pas Internet, mais d'autres héritiers. Ça te donnera juste le même air et tu ne peux pas gérer comme ça. Mais comme firebase donne un Ares spécifique en retour, nous pouvons gérer cela de manière appropriée. Donc c'est génial. Nous savons que le numéro 8 est le code aérien quand un compte n'existe pas. Allons donc à nos constantes. Et, euh, faisons juste une section appelée codes d'état, donc affaiblir Réutilisez-le. Hum, et nous dirons laisser, euh, statut. Ah, le compte non existe soudainement, pour moi est égal à huit. C' est exactement le code de l'air qui nous donne juste ici en bas à droite. Ok, ok. Alors laissez le statut compte. Pas de sortie. Aucun n'existe. Et au fait, je dépend souvent de, hum, ça fait de cette section ici pour appeler des clés, en fonction du type de constante. Amusant. J' ai toujours mis le nom en face. Tu es genre, eh bien, ça a l'air bizarre. Premier statut Segway. Eh bien, si je
le fais,
c' est un disons que tu en avais 15. Je pourrais en fait simplement taper le mot statut et seulement le coach de statut ou pop up et il y en
aura 15 au lieu d'avoir le mot statut et alors tout avec la lettre
s apparaît. C' est pour ça que je fais ça. Ok, donc on a ses manteaux de statut. Ce que nous voulons faire est de dire, si le code de point d'air est égal à statut, compte sur existe, nous utilisons juste. Ça fait toujours un tyran dans l'équation ici. Conditionnel. Donc, si le compte n'existe pas, nous voulons réellement créer un utilisateur appelé service de données. Daddy s dot ref basé. Obtenons le point de référence de base Créer un utilisateur. Et lequel voulons-nous ? C' était juste ce top, ici, c'est bien. Donc l'email que nous venons de passer dans l'email le mot de passe va être ah p w d. Et avec le bloc d'achèvement, c'est bien là. Et allons-y et débarrassons-nous de certaines de ces choses. Et ce que nous voulons, c'est de l'air. Et il y en a un autre. Je veux un deuxième paramètre appelé résultat. D' accord. Et ça me donne de l'attitude ici. Pourquoi me donnez-vous l'attitude ? Qu' est-ce que j'ai oublié ? E-mail. Mot de passe avec bloc d'achèvement. Oh, j'avais besoin, euh, j'avais besoin de l'autre, en fait. Désolé, ma mauvaise. Mon mauvais service de données point ds dot Ref Bay coincé. Est-ce que vous créez le droit d'utilisation. Super. Créer un utilisateur. Mais nous voulons le 2ème 1 à la place. On y va. Mot de passe e-mail. D' accord. Se déshabiller sur quelque chose, hein ? Je viens de fumer. Quelque chose va. J' étais en train de foirer. Je suis en train de foirer pour ton avantage. Et c'est en fait le résultat de la vérité. Euh, ok, donc on crée un utilisateur, c'est tout. C' est tout ce qui se passe ici. Maintenant, pensez à ça. Ce qui ferait que la création d'un compte se sentait bien, ne serait
probablement tombé que si, comme les exigences de mot de passe n'étaient pas remplies. Ou si ce compte existait déjà à nouveau, vous pouvez les gérer. Vous pouvez imprimer l'air, manteaux sur les situations et faire comme nous l'avons fait en ce moment, mettre un code d'état et faire un air spécifique pour cela. On ne va pas faire ça. On va gérer si ça échoue ou réussit. Ok, Donc si l'air n'est pas égal à s'agenouiller sens, s'il y a un air,
on va juste appeler auto que le membre d'alerte de spectacle est fonction d'alerte, et on va juste dire qu'on ne peut pas créer de compte. Et le puits, juste le message va être un problème. Création d'un compte. Essayez autre chose. Et encore une fois, vous voudriez probablement briser cela un peu plus. Consultez les différents codes aériens des commandes de compte. C' est désolé. Ce compte existe déjà Si le mot de passe n'est pas valide comme s'il s'agissait d'un seul caractère. Et tu as besoin de cinq. Tu sais, tu pourrais dire pas assez de personnages. S' il vous plaît entrer personnage dans ce fort pasteur dans ce format, vous devriez gérer ceux spécifiquement juste que je vous dis juste que vous pouvez Nous ne allons pas pour l'amour du temps. Ok, si génial. Donc, s'il y a une erreur pour le faire,
sinon cela signifie que nous avons créé un compte avec succès. Et alors de quoi avons-nous besoin de dio ? Nous devons nous connecter. Donc ok, donc quand nous créons un compte,
cependant, cependant, ce que je veux faire, c'est que je veux sauvegarder cette idée d'utilisateur à nouveau, comme nous l'avons fait auparavant. Donc nous devons le faire ici. Donc, il s utilisateur par défaut que l'utilisateur standard définit la valeur par défaut. Et ça va être,
hum, qu'est-ce que ça va être ? On a besoin de vous rejoindre. J' ai d'abord, n'est-ce pas ? Ça va être un point de résultat Oh, c'est un dictionnaire. Alors, euh, on
y va. Et en fait, nous pouvons utiliser notre clé ici. Ha, un autre endroit où on peut utiliser ça et pour une clé. Et, euh cool. Donc, ce qui est en train de dire ici est Hey, allez à votre jeu de valeurs par défaut utilisateur standard. Et nous sommes en fait nous saisissons le résultat maintenant, résultat est un dictionnaire, ok ? Et donc il a exactement la même valeur de nom de l'objet. Le nom de clé est exactement le même nom que nous l'avons nommé dans notre bibliothèque ou dans nos constantes. C' est pour ça que nous pourrions utiliser le même nom. Donc, j'attrape cette valeur pour cette clé, et puis nous l'enregistrons ici dans nos valeurs par défaut utilisateur standard avec cette même clé. OK, donc c'est vraiment cool. On réutilise juste quelque chose, donc ne soyez pas confus. C' est deux choses différentes, mais on l'utilise ici, alors ok, euh,
102. App: Showcase Partie 6 - Publier TableViewCell UI: Hé, tout le monde, Mark Price ici, Deb slobs dot com. Et aujourd'hui, nous allons aller de l'avant avec notre application, notre clone de type Facebook et c'est ce que nous allons faire aujourd'hui est juste de construire le U Y pour les objets réels sur la liste. Imaginez que c'est votre flux principal, comme sur Facebook, et vous pouvez voir tous les messages. Ça pourrait avoir une image. Ça peut avoir Ah, un tas de textos ici. Le Texas Extra Scroll. Vous quittez les liens et il y a des idées. Hey, allons à désoler Showcase à J'ai construit cette nouvelle application parce que je prends le cours. Je vais poster une image de ça. Tu peux avoir des goûts. Les gens peuvent cliquer sur le cœur et il aimera et puis il montre les goûts ici que le nombre et puis aime. Et c'est le nom d'utilisateur. Et c'est le profil de l'utilisateur sur DSO. Il y a aussi d'autres choses, , comme s'il était stylé ici. Donc nous verrons ce que nous avons, c'est des coins arrondis, un peu d'ombre et d'autres choses. Tout cela est personnalisé. Tu ne sors pas ça de la boîte. Et, euh,
oui , il y a quelques articles ici, ils sont tous les mêmes en ce moment, mais tout est statique. Nous sommes en train de créer la cellule prototype qui pourrait être réutilisée à l'avenir. On l'a, regard des
orteils, leregard des
orteils,comme on le veut, ça va prendre un peu d'effort, donc ça sera dans sa propre vidéo comme on va le faire en ce moment. Alors allez-y et ouvrez votre projet. Quand tu as travaillé sur, je vais le tirer. Le mien, ici, va bien, aussi. Ok, on va fermer ce simulateur ici, et on y va. Et, euh, on s'est arrêté pour pouvoir se connecter avec email ou Facebook, ce qui est vraiment cool, hein ? Donc ce que nous voulons faire maintenant, c'est obtenir le toi que je vais pour le prochain écran. Donc pas trop gros d'une affaire fonctionnera également. La plupart du temps travailler un constructeur d'interface aujourd'hui. Alors allons de l'avant et ouvrons le constructeur d'interface et, euh, tirez-le ici, voir ce qu'on a. Donc nous avons une vue ici, mais c'est juste une vue bleue vide. Ça ne fait rien. Et nous savons que nous devons mettre cela dans un contrôleur de navigation, Alors allons-y et faisons cela Maintenant cliquez sur votre contrôleur de vue ici. Et si vous n'avez pas de contrôleur de vue,
pour une raison quelconque, vous n'êtes jamais arrivé à ce point. Faites simplement glisser un nouveau contrôleur de vue sur, ou vous pourriez conduire un contrôleur de navigation Dragon Innovation parce que c'est ce que nous
allons faire. Donc, cliquez sur votre contrôleur de vue ici s'il existe, et allez à l'éditeur, allez à intégrer dans le contrôleur de navigation. Donc, la prochaine partie de notre application, nous voulons juste être dans un contrôleur de navigation afin que nous puissions pop in, pousser des vues et gérer les choses pour nous. Eso, c'est cool. Et, euh, ce que nous voulons faire, c'est avoir, vous savez, comme l'image de l'utilisateur, le nom de l'utilisateur, le cœur, le bouton similaire. Donc c'est ce qui va aller en haut. Ensuite, on aura du texte et de l'image. Alors allons-y et mettons-nous une image. En fait, ce que nous avions besoin d'abord, Mes excuses sont une table de vous comme la première chose que nous avons besoin d'une table de vous pour couvrir
tout l' écran. Ok, ça a l'air bien. Nous avons sa table de vous et voyons ici nous voulions, euh, avoir des marges ici, donc c'est bon. Et je laisse la botte, le fond bleu allumé juste pour l'instant. Juste Teoh juste pour être sûr que je peux voir ce qui appartient à quoi, quelques minutes chaque fois que les choses. Pourquoi ? C' est dur de dire quoi. Donc voilà notre table de vous. Je vais l'épingler zéro du haut et les marges sont allumées. C' est bon. Zéro de la gauche, de la droite, zéro du bas. Parfait. Maintenant, juste ici, en bas. Juste à l'intérieur. Sélecteur, vue
tableau et faites-le glisser ici. Et je vais changer l'arrière-plan de cette vue de table. Vendez, euh, au jaune juste pour que je puisse voir à quel point il est grand. Et il n'est évidemment pas assez grand parce que ce sont de gros postes. Alors rendons ça un peu plus grand, pour que le jaune soit notre cellule. Et c'est ce que nous coiffons vraiment ici aujourd'hui. Donc, si nous nous souvenons bien, le haut a une image de l'utilisateur. Il a également le nom de l'utilisateur a le bouton coeur qui pourrait être cliqué, qu'il a le nombre similaire, puis le mot aime. Allons-y et commençons à jeter des choses ici. Euh, en fait, avant qu'on le fasse tout en y réfléchissant un peu plus. Donc, ce qui est intéressant dans les vues de table est que c'est important pour vous de le comprendre. Cas, vous vous souvenez de cette vue de tableau cellules ? Ils ne sont pas séparés, ce qui signifie, comme si vous avez déjà vu une application où il y a un écart comme ça,
celui que je viens de vous montrer où il y a un écart entre chaque poste, ce petit écart, c'est en fait simulé. Ce n'est pas vraiment par défaut des cellules de vue de table. Ils sont tous connectés, et il n'y a pas d'espacement entre eux. Donc, ce que nous voulons faire, c'est prendre plutôt que de simplement mettre les choses au bord du contenu ici parce que ça va nous faire connecter. Nous voulons mettre comme un contenant de vous ici qui le tient, et qui n'est pas relié aux bords. Donc, il simule que leur espace. Et puis nous mettons ceci comme la même couleur que l'arrière-plan. Donc d'abord, ce que nous devons faire en fait, c'est dans notre vue de tableau ici sur notre vue de contenu que nous avions besoin de mettre un vous que je vois ici, ce sera notre conteneur de vous. Ok, tu te fais traîner ici Perfect. Et ce que je vais faire,
c'est que je pense que ça va aller complètement à gauche vers la droite. Mais c'est le haut et le bas que nous voulons cet espace. Donc juste là, et, euh, je vais m'assurer. Donc c'est votre du haut ? Parce qu'il y a une marge qui devrait être correcte et zéro par le bas. C' est bon, aussi. Nous avons un peu de marge là-bas, donc ça devrait marcher très bien. Nous jouerons avec si ce n'est pas le cas, parce que nous voulons faire l'ombre du spectacle là-dessous. On voulait avoir l'air cool. Donc, il y a notre vue de conteneur que je vais appuyer sur Entrée sur cette vue sur le côté gauche . Appelez ça le conteneur. Donc, nous savons à quoi il appartient. Donc, il y a notre vue de conteneur, et allons de l'avant maintenant et mettons notre objet. Donc on a une image. Mettons-le ici. C' est beaucoup trop grand. Allez, faites-le glisser plus petit ici. D' accord ? Tu as une image ? Hum, on a une étiquette. Allez juste à côté, et nous allons de l'avant maintenant et changez la police de système à personnalisé et de Helvetica nouveau à Noto Sands parce que c'est le plaisir que nous utilisons dans son AP. Ce serait audacieux, et ça va être génial. Couleur rouge, tu sais ? Donc ce serait comme le tueur de démons 40 31. On y va. Ça a l'air bien. Donc j'ai un nom d'utilisateur le rendre un peu plus grand là-bas. Nous avons besoin d'une autre image pour le cœur. Maintenant, je n'utilise pas un bouton pour le cœur, parce que le bouton a juste quelques problèmes inhérents avec le dimensionnement et des choses comme ça. Donc, nous utilisons une image et plus tard, à un geste de pression, reconnaître pour qu'elle puisse fonctionner comme une bouchée. Donc ce serait notre cœur. Et allons de l'avant et attrapons ces graphismes. Maintenant, je l'ai déjà là. Maintenant, ils sont également disponibles dans la source et dans la ressource est donc je vais attraper mes objets. Euh, d'un dossier ici. Je l'ai juste là. Et ne change pas le nom de la ville. Il suffit d'écran. C' est nos decks de pokey. Application que nous voulons utiliser comme exemple d'image ici. Et c'est une photo de profil de moi. Je ferais mieux de ne pas te voir mettre qui a ton fond de bureau, n'importe qui ? Sauf si tu es vraiment sexy. Je ne pense pas que ma femme m'écoutait, donc c'est bon, toute façon, euh,
je plaisante. Je n'ai pas d'ennuis. Hum, donc coeur vide, écran de profil
complet. On y va. Um Ok. Donc on a tout ça là-bas. Cool. Je veux dire, fermez ce dossier ici. Bon, alors allons de l'avant et définissons ces images maintenant. Donc, image, on va dire son profil et c'est notre cœur qui fera vider le cœur. Ok,
ça a l'air bien. Nous avons besoin du total des likes, puis le total des vues est non, le total des likes. Et puis le mot s'aime. C' est ce que j'essaie de dire. Dieu ne peut même pas parler. Alors copions-le et collons-le là-bas. Je vais écrire Aligner ça. Je vais le changer de rouge à gris foncé ici. Et ah, donc je veux que Boulder soit régulier. Je ne suis pas encore sûr. Essayons régulièrement maintenant. On va faire audacieux. J' aime ça. Donc ça aura le total comme si vous savez, je ne pense pas que ce serait plus de 20 000 ou je ne pense pas qu'il obtiendra ces chiffres. Je pense que je vais rester comme ces chiffres pour qu'on puisse tester avec ça. Ok, donc on n'en a pas besoin aussi grand. Il suffit de le faire là-bas et de commander C commande V Mettez-le juste en dessous. Et, euh, changeons ça pour le mot, euh, aime. Ne faisons pas sombre, Grey. Faisons en fait cette belle lumière. Super. Ici. Et si vous voulez voir cette couleur, il est e zéro e 00 et nous allons l'enlever de gras et mettre sur régulier. On y va. Cool. J' aime ça. D' accord. Et cela peut être un peu trop léger. Nous jouerons avec elle plus tard si c'est pour que nous ayons les objets dont nous avons besoin. Maintenant, ce que nous voulons faire est de mettre tout ici dans les vues de pile et la raison pour laquelle nous allons empiler les yeux de vues parce que, euh, surtout la table de vous vendre quand vous masquez une vue de pile, Euh, genre, le rendre caché. Il est en fait automatiquement. Redimensionner est pour vous, ce qui est tellement cool, et vous ne l'obtenez pas en dehors des vues de pile très facilement. Et donc un utilisateur peut ou ne pas vouloir publier une image. Et donc nous voulons avec tout cela être dans la liste de dotation vraiment sympa. Donc on va sélectionner les goûts ici, les
mettre dans leur propre pile. Affichez une pile verticale. Vous ces deux-là ? Voyons voir. Ah, tous les trois vont juste mettre ça dans une pile horizontale pour vous. D' accord. Et, euh,
ça a l'air bien. Hum d'accord, donc on doit empiler, on doit empiler les vues ici. Euh, voyons voir. Quoi d'autre ? Que voulons-nous d'autre dio ? Il y a différentes façons d'affaiblir. Empilez ça. Euh, donc on a ces deux vues de pile. Mettons ces vues de pile. Um, à l'intérieur d'une autre vue de pile. Je pense que c'est le plus logique. Donc, avoir à empiler les vues. Oui. Um, ouais, c'est ton travail. Très bien. Donc on doit les empiler ici. Sélectionnons simplement ces deux et mettez-les dans une vue de pile horizontale. En fait, on n'avait pas besoin de faire ça. Allons annuler cette pile. Je viens de commander Z, allons comme ces trois et ensuite l'empilement, et nous les mettrons dans le vide horizontal que vous me pardonnez pour Vous savez, ces empilez deux choses ici. Je ne veux pas juste y aller. Tu sais, je n'achète pas Adam numéro par numéro. Je le faisais spécifiquement. Certainement, je veux que vous voyiez les différentes façons d'utiliser Stack Stack. Ils sont neufs. Il y a beaucoup de façons de le faire. Il n'y a personne de bonne façon. Donc, voir comment nous changeons et jouer autour pense est très important. Je ne pense pas que tu sois trompé ici. Vous obtenez en fait un plus grand avantage en nous regardant essayer différentes choses ici. Alors allons-y. J' ai tous les sélectionnés Allons de l'avant et faisons une vue de pile horizontale. C' est ce que je veux. Maintenant, avant de commencer à utiliser des contraintes, je veux obtenir tout le reste de l'endroit hawaïen afin que nous puissions mettre tout cela et empiler des vues . Um, si vous vous souvenez des bonnes nouvelles, travaillez mieux quand vous avez tous vos objets en premier et que vous les mettez. Vous mettez tout votre fusible de pile ensemble, puis vous disposez les contraintes, pas à l'avance. Donc, ce que nous savons que nous avons besoin ensuite est que ce texte décrit votre application. Hé, c'est mon Abbott. C' est là-dedans ? Ça pourrait prendre des liens, et donc on va faire quelque chose de nouveau aujourd'hui. C' est ce qu'on appelle une vue de texte. Vous je vue texte et une vue de texte évolutive, mais il peut détecter les liens et c'est ce que nous voulons. Donc je vais aller par ici et faire glisser une vue de texte juste en dessous, et on va aller de l'avant et juste la traîner là-bas. Um, c'est bon. Pour l'instant, la police que nous allons changer de système à personnalisé. Pour Noto Sands, ça me semble bien. La couleur, même si on va faire ce gris foncé juste pour être cohérent. Et voici quelque chose de vraiment important. On ne veut pas comestibles. Éteignez ça. Je ne veux pas que les gens soient comme changer ça. Mais ce que nous voulons est sélectionnable car quand il est sélectionnable, cela signifie que nous pouvons mettre la détection de liens et les liens technologiques et l'ouvrir ainsi que le magasin APP. Donc, si vous voulez publier votre application pour que les utilisateurs puissent la télécharger, les utilisateurs peuvent cliquer dessus et il chargera l'app store. Il y a donc notre vue de texte. Très bien. Je me fiche d'une chaux ou de quoi que ce soit comme ça en ce moment. Tout ça a l'air bien. Il y a donc notre vue de texte. La dernière chose dont nous avons besoin, c'est une image qui passe sous elle juste ici. Allons de l'avant type d'image et ce qui a mis cela ici. Et je sais que ce n'est pas la bonne taille en ce moment, mais c'est OK, parce que tout cela se passe dans une vue de pile. Donc l'image de sélecteur ici. Et ça ne sera qu'un écran. Ouais, et on veut que l'aspect se sent l'aspect, l'
ajustement, l'air bizarre sur différents écrans comme si tu ne voulais pas vraiment ça avec l'aspect Sue . Je me sens juste en quelque sorte montré un instantané de lui. Ok, si cool deal. Allons de l'avant et sélectionnez ce haut portée vous cette vue de texte du milieu, puis cette image et nous allons cliquer sur le bouton de vue de pile juste ici. Donc, ceux-ci sont maintenant tous dans une vue de pile maintenant son cours hors de l'écran, ce qui n'est pas le savoir. Alors allons de l'avant et cliquez sur ce bouton de contrainte, et maintenant nous allons le contraindre et voulons-nous le mettre ? Le bord est complètement sur les bords. Flush avec le bord est de la vue. Réfléchissons à ça ici. Donc la vue va montrer de l'ombre autour et tout ça. Donc, non, je pense que le garder limité aux marges est ce que nous voulons. Donc zéro du haut zéro à partir de la gauche est bien. Zéro à droite et zéro à partir du bas. Limitons les marges Alta et, euh, remarquez comment c'est maintenant ? Hum, c'est la queue comme on s'y attendrait. Donc, il y a notre vue sur la pile. Partons. Ça nous permet. Je sais. Allez,
nous, Wells, Wells, donne-moi le chagrin. Je veux empiler vue Teoh. Nous pouvons changer la hauteur ici, d'autres avec son ne pas laisser l'échanger mais c'est ce qu'il dit est qu'il va être 124 plus grand quand l'application fonctionne réellement est venu. Et donc d'accord, allons-y et je bouge les piles peu. Oups. Mauvaise façon. Cette empile-moi un peu ici au milieu juste pour le faire paraître mieux à nouveau. Les chiffres n'ont pas d'importance ce que vous voyez ici, parce que ,
hum, ça va paraître bien quand on sera chargé dans la vue. Et je sais que l'aperçu ne fonctionne généralement pas. Eh bien, nous allons cliquer sur ces éditeurs distants et le changer pour prévisualiser et juste voir ce qu'il
nous a donné ici. Ok, donc c'est un iPhone de quatre pouces ? Ouais,
ça a l'air un peu éteint. De quoi ? On le veut vraiment. Hum, donc nous voulons vraiment changer certaines choses autour. Ouais, c'est, euh, c'est d'être, euh, c'est d'être stupide sur l'écran ici. Tu ne peux pas faire confiance à ce que tu vois. Donc, fermons cet aperçu là et continuons et travaillons simplement sur notre vue de pile ici. Alors regardons ce Top One Voici la vue de la pile supérieure. Donc celui-ci tient toutes ces choses horizontalement ici. Et donc ce que nous voulons faire avec ses éléments horizontaux, c'est la question pour que vous puissiez jouer avec elle ici pour que nous puissions cliquer, euh, sentir que c'est déjà sélectionné. Que diriez-vous de se sentir proportionnellement ? Ok, ça ne semble pas faire grand-chose, mais allons mettre un peu d'espacement ici, cependant. Ok, maintenant on a un peu d'espacement. Je vais aussi cette image ici. Allons comme ça et changeons-le en forme d'aspect. D' accord ? Et puisque son coeur aspect Teoh correspond là, nous y allons. Ok, donc c'est de l'espace. Ce n'est pas tout à fait ce
que je cherche . Ça l'air un peu, euh, je ne sais pas, un peu bizarre. Alors allons de l'avant et voyons si nous pouvons juste définir le avec sur cette image elle-même. Si ça nous aidera ici. Réglons le avec deux dans la hauteur. 2 50 et 50. On y va. D' accord. Ça a l'air du bon personnel. Il nous a donné un peu de chagrin ici. Voyons voir si on peut lui donner un m,
c' est si bizarre. D' habitude, ça ne fait pas ça. Ok, voyons si on peut avoir une pile d'utilisation. Um, c'est comme un fixe avec pour l'instant sont un minimum avec, au moins donc avec va être au moins 320. D' accord. Et ce qui dira aller ici à la décision dira plus ou égal à 320. D' accord. Um ok, j'ai cette police de tueurs de démons ici. Allons-y. Et, euh, donnons-lui un Je clique sur l'inspecteur des attributs ici. Et allons de l'avant et donnons-lui une taille de police fixe et une réduction automatique. C' est une échelle de police minimale sur Disons 0,75 même descendre deux points. Donc bien, c'est même la mise à jour en temps réel. Joli. Je me souviens avoir fait ça. C' est un nouveau X coda. Beta sept Exco sept, bêta six. Désolé. Donc je pense qu'ils ont de plus belles nouvelles choses qui se passent ici. Voici notre image. C' est très bien. Euh, ça a l'air bien ici aussi. Donc je pense que c'est OK pour l'instant. Um, je pense que c'est bon. Et je pense que c'est bon, donc je suis curieux de savoir comment ça va avoir l'air quand on l'exécutera, parce que dans ce simulateur ici, c'est comme un célibat ici. Mais allons juste aller de l'avant et obtenir du code ici et voir si nous pouvons juste tester cela. Donc ce qu'on veut faire, c'est qu'on n'a qu'un contrôleur de vue ici, non ? Et nous devrions faire glisser ce dossier de contrôleur intérieur et si vous n'avez pas déjà créé vos dossiers de contrôleur de vue
modèle et, euh pour que nous puissions mettre ça là-dedans. Alors allons de l'avant et créons un nouveau fichier dans ce dossier. Appelons ça le cacao Touch Class. Et appelons ça, euh, eh bien, les frais, comme un flux Facebook. Donc le VC de flux pour le contrôleur de révision et ce sera juste vous. Je vois le contrôleur. Et, bien
sûr, ajouté du texte indésirable de la fin. Et, euh, ça a l'air bien. Vous avez votre contrôleur. Donc on va le mettre en place pour notre vue de table. Quelqu' un est en retard sur ce truc dont on n'a pas besoin et a commencé à mettre la table ici. Donc je suis sortie semaine de notre vue de table sur ce sera vous une vue de table et ça a l'air bien. Alors allons de l'avant et mettons le délégué. Donc vous avez une table de votre délégué. Vous avez une source de données de vue de table afin qu'il puisse appeler les fonctions appropriées dont nous allons avoir besoin en vue. Est-ce que le point de vue de table charge délégué égal auto
table, point de vue de table Source de données égale auto. Ok, donc c'est bon d'y aller. Maintenant, nous devons implémenter les fonctions ici, donc ah, nombre de sections en vue de table, retourner une section, puis une vue de table. Ces fonctions n'apparaîtraient pas si nous ne les implémentions pas. Déléguez ces protocoles là-haut. Nous voulons un certain nombre de lignes. Donc un certain nombre de lignes et de sections et on va en retourner trois juste pour qu'on puisse voir, comme quoi ? Ce serait comme Simulator trois appareils, trois rangées. Et puis nous avons besoin d'une table de vous vendre fero au chemin d'index. D' accord. Et, euh, nous n'avons pas encore créé de vente sur mesure. Donc pour l'instant, juste pour être débarrassé de l'air, disons vous rendre une table de vous vendez, et de quoi d'autre avons-nous besoin ? Eh bien, je pense que c'est tout ce qu'il faut pour l'instant. Donc nous avons ce que nous avons. On a tout ce dont on a besoin pour la vue de la table. Le problème est que,
euh,
ça ne va pas nous montrer notre vente personnalisée parce que nous n'avons pas encore d'auto personnalisé créé. , Le problème est que,
euh, euh, Donc, dans votre dossier de vue ici. D' accord. droite. Cliquez sur et faites un nouveau fichier. Et on va faire un cours de touche Coca parce que c'est une vue. Ce n'est pas un contrôleur, c'est une vue. Et nous allons dire, euh, après vente parce que c'est ah, poster. Um, c'est un poste. C' est une table de toi-même. Donc tu as une table. Vous vendez, étant donné que la ordure qu'ils ont mis sur leur et, euh, allez-y et cliquez sur Suivant et créer. Et c'est notre vente. Vraiment cool. Donc, ce qu'on peut faire, c'est mettre nos points de vente ici. Je serais la semaine de sortie de notre nous savons que nous avons une image de profil, donc image de profil de votre image vue, et je ne vais mettre que ceux que je veux modifier maintenant. Euh, ce qui est vraiment juste le, euh, c'est juste l'image qui va en faire un cercle. Tout le reste va bien. Tout le reste va bien. Donc juste celui-là pour maintenant et puis en éveillé de Nib Um ce que Will dio est ? , Eh bien,disons l'image de profil point Rayon de coin ou couche de points fournissent l'image que le
rayon de coin de point de couche est égal au profil Image image image qui taille avec divisé par deux. Rappelez-vous, si vous voulez obtenir un cercle complet, vous prenez le avec des invités environ deux. Mais je viens de me rendre compte que ça ne marchera pas en éveil de NIB parce qu'à ce stade, on ne connaît pas la taille. Les tailles et les contraintes n'ont pas encore été mises en place pour nos affaires. Donc nous avons réellement besoin de Dio est plus d'un tirage au sort détruit. C' est là que nous devons écrire notre code. Ecrivez le code Teoh dans ce coin parce que cela va arriver après ah, l'image de
profil a un cadre en taille. Ok, donc c'est là qu'on va le faire juste là. Et, euh ok, donc nous avons une vente personnalisée ici, alors revenons à notre plateau principal et cliquez sur votre Donc cliquez sur votre vue ou je suis désolé. Votre cellule de vue tableau juste ici. Ce gars ici et va voir l'inspecteur d'identité et le changer en poste. Et maintenant, si vous cliquez sur la gauche ici et regardez à l'intérieur et à droite, cliquez dessus. Vous devriez maintenant voir l'image de profil, et vous pouvez simplement la faire glisser vers l'image de profil. Et ça devrait maintenant être une, uh qui devrait maintenant être une,
uh, uh, une image arrondie quand nous entrons dans l'application et l'exécutons. Encore une chose, cependant, sur cette vue de pile principale ici, je voulais ajouter un peu d'espacement sur cette pile verticale. Utilisez, disons cinq entre chaque élément. Cool. Donc c'est coutume. C' est coutume. D' accord. Et puis encore une chose. Tu es comme tu l'as dit Encore une chose, genre, trois fois. Je sais. Désolé. Dans cette identification ou sur votre post vente. Donc, sur la cellule elle-même, les lecteurs identifient, Il
suffit de l'appeler après vente. D' accord ? Je suis juste en train de copier ça. Et maintenant, revenez à votre point de vue, en fait, pourquoi ? Nous sommes là, en fait, attendez le contrôleur de vue. droite. Cliquez dessus et connectons notre vue de tableau pourquoi nous sommes ici. Hum oh, nous devons changer la classe de contrôleur de vue en bonne pensée. Merci. Cliquez sur l'inspecteur d'identité sur le contrôleur de vue. Et changeons cette classe. Teoh la nourriture Veazey tout ce que vous savez. Maintenant, si vous faites un clic droit d'alimentation V C U c r vue de table là et nous le faisons simplement glisser au-dessus de l'air, nous allons. Retourne à ton flux V. C. Ok. Et au lieu de retourner ceci, nous allons retourner une table de vous point de que raisonnable avec identifiant mis dans cela et nous allons juste dire que, um nous allons dire, comme post vente maintenant, normalement, nous ne le ferions pas de cette façon, et nous ne finirons pas que ce n'est qu'un test parce que cela pourrait potentiellement planter l'application. Ça ne le fera pas, mais ça pourrait, euh, alors quoi ? On le teste juste en ce moment. Donc, de l'or que j'essaie d'obtenir est quand nous exécutons ceci, nous pouvons voir 33 de nos cellules de vue de table et qu'elles sont belles. S' ils n'ont pas l'air sympa, on va devoir les réparer et l'attacher. Donc je construis et je cours ici. Et si on a des accidents. Will s'occupera
aussi de ceux ici . On y va. APS arrive. Espérons qu'il devrait nous connecter déjà et nous emmener à l'écran Nous voulons aller à. D' accord. Application est en cours de chargement. Ok, alors ça l'a fait. Ça nous a pris deux. Ça nous a amenés
à l' écran de la table. Mais on dirait qu'il y a des problèmes ici qu'on doit régler. D' accord, pour commencer, on ne voit pas nos logos, nos étiquettes et tout ça ici. Ils sont partis, ce qui est un problème. J' ai l'impression que cette image va trop loin de ses limites. Je ne pense pas qu'il devrait faire ça. Hum, donc on a des problèmes. Ça a l'air moche. Alors, nous
allons faire quelques choses. Allez dans votre cellule de poste et allons de l'avant et mettre, euh sont notre, um notre image d'application notre image principale ici. Donc, je suis sortie semaine de notre va appeler cette image de vitrine de vous vue image. Ce que nous voulons faire est ah sur cela ainsi que sur l'image de profil que je pour les gars nous voulons Teoh. Nous voulons dire clip aux limites est vrai, puis ici dira image de vitrine. Ce clip à limites est égal à vrai. Fondamentalement, nous ne voulons pas que l'image apparaisse en dehors de l'endroit où elle est censée aller. Et alors retournez à votre storyboard principal et nous allons, euh, nous allons cliquer. Cliquez sur votre, euh, votre post vente ici, cliquez avec le bouton
droit et allez à, hum, allons à l'image de vitrine juste ici. Ok, on
y va. Et ça a l'air bien. Ok, c'est bien là. Quoi ? Quoi ? Quel était notre problème ici ? On ne voyait pas les images et les choses, donc je suis un matin si un problème retardant. Si j'ouvre ça un peu plus, fermons ce côté gauche ici. C' est plus d'espace. Um, nous avons une vue de pile et dans cette vue de pile juste ici et puis il y a une texture. Et puis il y a cette image. J' ai juste l'impression que l'image va au-delà de son équilibre et qu'elle couvre tout le reste, mais au cas où ce n'est pas le cas, ce que je veux faire est de prendre cette vue de pile ici et juste la mettre en dessous. Ce n'est pas ce que je veux faire. Peu importe. Je pense que ça va résoudre le problème. Allons lui donner un coup de feu. Construisons et courons. J' ai oublié les vues de pile quand vous le mettez sur le fond. Chaque commande une pile affichée ne change pas réellement le lettrage dessus. Alors voyons à quoi ça ressemble. Ok, donc c'était le problème. L' image sortait des limites. Et donc le clip à rebondir a réellement fonctionné. Douce. C' est génial. On fait des progrès ici. Donc, certaines bonnes choses sont ça a l'air vraiment bon autour d'une image. Le cœur. J' aime vraiment ça. Ok, ce qui n'a pas l'air bien vu qu'on a toujours ce fond jaune dans ce fond bleu, rappelez-vous, nous voulons cette belle lumière, gris. Allons-y et jouons avec ça. Alors cliquez sur votre principal ici. Celui sur lequel on met le fond bleu. Allez aux attributs, inspecteur. Et changeons ça pour, hum, cette couleur gris clair ici. Ils sont gentils. Et puis, sur notre portable ici, on ne veut pas d'arrière-plan jaune. On veut ça comme Ray. D' accord. Et voyons, allons courir ça et voir si ça change quelque chose. Voyons où ça nous met, d' accord ? Alors on y va. Remarquez comment ce membre vous le disait. Comme les cellules elles-mêmes. Comme si elles ne le faisaient pas. Euh, euh. Ils n'ont pas naturellement d'espace. Nous avons dû construire cet espace avec une vue de conteneur. Et puis on a ce truc moche là-haut, je ne sais pas encore ce qui se passe avec ça. Nous allons jeter un coup d'oeil ici
aussi . Mais nous avons nous-mêmes, mais nous avons un problème. n'y a pas d'ombre sur eux. Et aussi cette ligne ici. Je veux me débarrasser de ça. Allons donc à notre alimentation V c. et passons à notre vue de table. Cliquez sur cette vue de table et le séparateur sur le côté droit a changé la nonne qui
va se débarrasser de ces lignes sur chacune d'elles. , Mais l'autre problème que nous avons,c'est qu'il n'y a toujours pas d'ombre sur la cellule ? Et si vous vous souvenez, nous avons écrit un cours personnalisé. Si j'ouvre le côté gauche et je vais voir rappeler, nous avons écrit cette vision matérielle qui fait que l'ombre pour nous. Euh, alors vas-y. Et c'est là que se trouve la réutilisabilité. Impressionnant. C' est ainsi que je construirais vraiment une application. Alors cliquez sur votre tableau principal et puis nous trouverons votre vue de conteneur, qui est ce gars juste ici. Et ce qu'on va faire, c'est juste changer la classe en vue matérielle, Riggio, et super. Et construire sur la course à nouveau. Ok, regarde ça. On a une ombre ici. Ça a l'air vraiment, vraiment cool. Donc j'ai une ombre. Contrairement à elle, nous avons un fond clair sont comme, grand fond. Je n'aime pas que cette barre de navigation apparaisse en haut. Je pense qu'il devrait être lu. Donc je vais faire défiler ici jusqu'au contrôleur de navigation et voir cette barre de navigation juste ici. Allons de l'avant et cliquez sur les attributs, inspecteur. Et nous allons juste changer la tente de bar ici pour lire. Je vais le faire à nouveau et m'assurer qu'il a l'air comme nous le voulons. Très gentil. Très gentil. Um, c'est bon. Alors regarde ça. Ces cellules ont des ombres. Ils sont en quelque sorte arrondis. , L' image est là,une chose que je ne vois pas, cependant, si je ne sais pas si tu ne la vois pas non plus, mais je ne vois pas notre texte. Alors cliquez sur notre texte pour vous ici et ce que nous voulons faire. Donnons-lui juste un minimum avec Disons que nous voulons au moins aussi haut. Donc, si je clique sur la vue du texte, puis cliquez sur le bouton de la broche et dire que la hauteur est 70 Ok, maintenant nous ne voulons pas toujours qu'il reste 70. Nous allons juste dire Nous allons cliquer sur la règle et nous allons dire, Nous allons double-cliquer sur cette hauteur Les cheveux veulent un plus grand ou égal à 70. Allons de l'avant et construisons et exécutons à nouveau. Je veux juste m'assurer qu'il est là, et qu'il fonctionne comme prévu, et c'est là. Ça a l'air bien et tu peux même le faire défiler, je crois. Ouais, donc tu peux le faire défiler à l'intérieur, aussi. Ça a l'air bien. Euh, ça a l'air vraiment, vraiment sympa, en fait. Il y a donc notre vue sur la table. Um, ouais, c'est vraiment cool. Il se réunit maintenant. Je pense que la dernière chose qu'on veut, c'est aller dans cet espace blanc bizarre ici, et je pense que c'est juste notre vue de table. Donc, si vous cliquez sur votre vue de tableau ici et changez l'arrière-plan en gris clair que nous avons utilisé, voyons simplement ce qui se passe. Il s'en va et a l'air plus agréable à nouveau. Ce ne sont que des données de test. Donc, euh, on est juste en train de jouer avec toi. Et là, ça va. Il est parti. Il y a donc votre vue de table. On l'a fait. Donc, ce que nous avons fait, c'est que nous venons de créer depuis les vues de pile, je n'ai aucune idée de ce que cela ressemble sur le paysage. Si vous voulez soutenir le paysage, nous ne le couvrirons pas ici. Mais j'aime toujours jouer avec et voir. Oui, ça l'
air moche sur le paysage. Ça marche toujours, mais pas ce que nous voulons. Je ne veux pas tourner pour moi non plus. Viens dans la zone. OK, donc c'est là. Ça a l'air super. On a une ombre, on a nos commandes sont des boutons ici. On ne connectera rien d'autre dans cette vidéo. On voulait juste obtenir ça. Tu y vas. Vous avez vu comment utiliser la pile. Utilisez plusieurs façons de contourner les choses, et c'est tout. Allons de l'avant et passons à la suivante
103. App: Showcase Partie 7 - Comment fonctionne Firebase: Hey, qu'est-ce qui se passe, tout le monde ? Mark Pricier. Deb pentes dot com Et la dernière fois dans notre façon d'application a fait de grands progrès. Faire quelques femmes se connecter et mettre en place pour vous. Pourquoi sur l'application est-il connecté à Facebook ? Et donc ce que nous voulons faire aujourd'hui c'est ah, en espérant votre projet. J' ai le mien juste là. Vous savez, vous allez ouvrir un fichier récemment et de toute façon, um,
aujourd'hui, nous voulons commencer à travailler avec Firebase pour obtenir des données à afficher dans l'application. Donc, fondamentalement, ce que nous voulons faire est lorsque vous créez un nouveau compte en tant qu'utilisateur, nous voulons réellement sauver cet utilisateur pour tirer la base. En
ce moment, Firebase gère sa propre authentification. Nous avons besoin d'utilisateurs, vous savez, qui pourraient avoir,
genre, des profils, des noms et des trucs comme ça. Comme un vrai profil. Nous devons joindre ça à un e-mail. Slash est votre nom ou votre compte Facebook ? On doit l'attacher à un compte. Hum et aussi nous avons besoin que Teoh commence à tester nos données pour faire des publications, voir comment extraire des données dans l'application. Maintenant, on ne va pas montrer le pourquoi pour l'instant, mais on va faire cette étape qui vous amène à ce point. Voici donc notre application, et je veux faire une autre chose d'abord est d'aller de l'avant et d'ouvrir un navigateur. Allez sur firebase dot com, connectez-vous, allez à votre application, gérez l'application, et vous devriez voir quelque chose de similaire à ceci. C' est juste l'application de base que vous avez, et vous n'avez aucune donnée dedans. Eh bien, ce qui est vraiment cool à propos de Fire base, c'est que vous pouvez mettre des données de test ici dans la base de données et apparaîtra instantanément dans votre application une fois que votre application est connectée. Parlons donc de comment les données fonctionnent-elles dans Firebase ? D' accord. Et donc la base de feu fonctionne comme Jason. On a parlé de Jason dans le passé. Un tas de champs de valeur clé. N' a pas d'augmentation, a des objets avec des clés. Et donc, qu'est-ce que les applications basées sur le feu vont avoir ? Au moins au début, il y aura deux zones principales. Donc je vais cliquer sur le signe plus ici, et il va avoir un objet appelé utilisateurs maintenant. Les utilisateurs, um, les utilisateurs lui-même est un objet. Quand je dis membre de l'objet, c'est Jason JavaScript. Notation d'objet. D' accord. C' est comme un objet JavaScript, mais c'est dans Jason, donc nous voulons un nouvel objet. Les objets ont des clés et des valeurs objets, ou, comme un dictionnaire et swift, ont une clé, et ils ont une valeur. Donc, nous voulons l'objet d'un utilisateur et l'objet utilisateurs va avoir tous les utilisateurs pour notre application. Donc, si nous avions 50 000 utilisateurs, cela ici aurait 50 000 valeurs clés maintenant ce ne serait pas un tableau Firebase n'
utilise pas une augmentation. Et c'est ça qui pourrait être un peu déroutant pour toi comme, Eh bien, quoi ? Pourquoi on ne l'utilise pas correctement ? Il est logique d'utiliser un tableau, mais ils n'utilisent pas de course. Ils utilisent des objets avec des clés et des valeurs uniques. Voici donc notre tableau d'utilisateurs. C' est juste un objet, alors on a un nom. Allez-y et cliquez sur le signe plus. Ok, donc l'utilisateur, euh, est, euh, ce tableau d'objets, même si ce n'est pas vraiment un tableau. Et ce qu'on veut dio, c'est que chaque utilisateur aura une clé unique. Donc on va juste en faire un pour maintenant. Juste pour le plaisir. Vous savez quand firebase génère de l'utilisation pour nous. Ils peuvent ressembler à ça. Juste un tas de chiffres et de lettres peut-être plus uniques que ça. Disons que c'est toi que je me souviens comment on a commencé à travailler avec toi . Je ds Ok, donc quand nous nous connectons avec Facebook grand compte quand nous avons créé avec le mot de passe e-mail et puis nous avons fait que les données que vous je d Eh bien, ce que nous allons faire est que nous allons stocker que vous je D dans un utilisateur ici sur la base de feu, nous pouvons garder une trace de et donc l'u i. D. C'est l'idée, et c'est la clé de l'utilisateur. Donc on l'identifie comme par le
I.D. I.D. et c'est aussi un objet. Donc il n'a pas de valeur cliquez sur le signe plus, et maintenant il va avoir une valeur, est-ce
pas ? C' est là qu'il aurait un nom d'utilisateur. Plus tard, l'application configurera comment mettre le nom d'utilisateur. Et peut-être que cet utilisateur s'appelle Ah, um Fannie Janney, 21 ans. Maintenant, vous pouvez cliquer sur l'ajouter OK, et c'est leur droit. Donc, ce qui s'est passé, c'est que nous avons un tableau d'utilisateur um, rappelez-vous son objet. Mais c'est un tableau. Et à l'intérieur du chemin. Nous avons notre utilisateur unique, et cet utilisateur est un objet, et il a un tas de clés dedans pour que nous puissions ajouter une nouvelle clé. Eso, par
exemple, Qu'est-ce qu'un utilisateur aurait ? Je crois que ça aurait un,
euh bien,
on va dire aussi quel genre de fournisseur est-ce que c'est un Facebook ? Je crois que ça aurait un, euh bien, Est-ce que cet e-mail est dans la connexion. Donc fournisseur sur
ce, celui-ci va être mot de passe. Un mot de passe barre oblique par e-mail. Si c'était Facebook, ça dirait Facebook. Donc nous allons stocker le type de fournisseur que ce compte est. On va stocker le nom d'utilisateur. Hum, donc tu sais, il y a un utilisateur. Si on voulait un autre utilisateur, on aurait une autre clé unique, non ? Donc ce serait comme, euh, tu sais, quelque chose comme ça ? Peu importe. Et puis nous ajouterions les mêmes choses ici, non ? Fournisseur, et celui-ci pourrait dire facebook. D' accord. Et puis nous allons ajouter une nouvelle clé pour ça,
et, ah, ah, nom
d'utilisateur pourrait être, euh, vous savez, forêt pour le repos. Pour nous. Oh, mon garçon. Je m'en souviens. D' accord. Peu importe. Pour son Gump. Il a Forrest Gump est le nom d'utilisateur. Et ajoutons encore un noeud clé. Bien, en fait. Donc, c' est comme ça que fonctionne le feu. Vous avez un tableau. Ce n'est pas vraiment un tableau, cependant. C' est un objet, non ? Parce qu'il a des clés. Voilà la clé. Et la valeur est un autre objet. C' est donc un objet avec des clés et des valeurs. Et donc cet objet a pour les utilisateurs dedans. Ces utilisateurs sont des objets eux-mêmes, et chaque utilisateur a une clé dans une valeur plusieurs clés, plusieurs mensonges. Dans ce cas, le fournisseur de noms de clés, les valeurs Facebook nom d'utilisateur, Forrest Gump. Donc chacun a ses propres fournisseurs uniques afin que les utilisateurs Ok, donc nous allons stocker une liste d'utilisateurs pour l'application, parce que vous allez devoir avoir des utilisateurs dans l'application que nous allons également stocker. Et en passant, ce ne sont que des données de test. Je suis visualisé pour vous aider à le visualiser ici. D' accord. On va aussi stocker des messages, non ? Donc, nous aurons une série de messages qui va aussi être un tableau à nouveau. C' est un objet, mais je vais juste dire tableau à partir d'ici, accord ? Et, ah, nous allons ajouter um nous allons ajouter un post et donc opposé va aussi avoir une idée unique. Chaque fois que vous faites un post, il va avoir généré un I.
D.unique D. Donc cela peut être tout ce qu'il y a l'unique i d. Et bien sûr, le Post est un objet dans un Post a, comme une description. Et c'est là que l'utilisateur est comme. C' est ma première application. Je suis super excité. J' ai eu un boulot de ça, tu sais ? Donc il y a, ah, la description de ce post. Tu te souviens, il y a une image ou je n'est-ce pas ? Alors imaginez votre bière et Siskel en trouver une. Allons, euh, c'est une application cool. Pas cool absence faire application cool. Allons trouver une application cool. Donc oui, cet utilisateur a construit cette application juste en l'attrapant sur Internet, copiant cette fille ici juste à des fins de test. Donc OK, donc ce post a la description a une image ou l o nous avons besoin de stocker les goûts. Droit ? Tellement, j'aime. Peut-être que ce type a
eu 50 ans. Peu importe. Ok, donc voici un post A 50 J'aime. Um, c'est cool. Maintenant, voici quelque chose d'intéressant. Peut-être que vous vous demandez comment pouvons-nous suivre la façon dont les messages sont stockés avec l'utilisateur. C' est une bonne question. Maintenant, si vous avez une expérience avec des bases de données relationnelles, vous pouvez avoir une clé dans une valeur qui a certaines ont une relation, comme un à plusieurs un-à-un. Des choses comme cette base de pompiers sont un peu différentes. Si vous voulez stocker quelque chose, vous devez référencer que je d. Donc, chaque utilisateur a probablement son propriétaire un poste appelé, et c'est le post qu'ils ont spécifiquement posté. Et alors, nous allons cliquer. Cela n'a pas de valeur car c'est un autre objet. Et c'est là que vous listeriez les messages spécifiques. Et donc ce que tu fais c'est que nous ayons un poste
maintenant, non ? Donc, disons que c'est l'utilisateur qui a fait ce post. Donc, les idées de poste K h a d s f l k 23 comme vous pouvez le voir ici, c'est le nom du poste qui a été fait droit, Et puis la valeur que nous allons mettre à vrai Maintenant peut-être que vous êtes comme si je suis si bon. Vues. Eh bien, abord, tu n'as pas à comprendre ça complètement. Cela prend un peu de temps, mais voici le point à retenir chaque fois qu'un nouveau post est fait, ok, ça va aller dans le tableau Global Post juste ici. Mais aussi nous voulons suivre qui a fait ce post. Donc, à la minute où quelqu'un clique sur ce chignon et dit de nouveaux messages, ce que nous allons faire est que nous allons aller dans le tableau de messages de cet utilisateur, comme vous pouvez le voir ici, et nous allons ajouter le post qui a été fait. Donc d'abord, nous allons générer le post unique. On va prendre cette idée de ce post qu'on va juste stocker ici dans les
messages des utilisateurs , OK ? Et puis ce que nous pourrions faire est comme plus tard dans l'application. Si vous vouliez montrer tout le post que vous avez fait pour que vous avez fait vous-même,
hum, hum, ce que nous pourrions dio, c'est que nous pouvons aller dans notre tableau de messages sur cet utilisateur, et ensuite nous avons toutes les idées. Et puis nous allons ici à ce tableau de post, nous prenons juste tous les messages qui correspondent aux idées qui sont juste ici. Donc, chaque fois que vous créez un nouveau post dans ce tableau ici, vous allez le sauvegarder ici,
et c' est comme ça que Firebase fonctionne. C' est vraiment ça ? C' est ainsi que fonctionne la base de feu. C' est ainsi que les relations sont établies. Vous stockez les références par le nom de la clé et le vrai ne signifie rien. C' est l'arbitre. J' aurais pu appeler cette chaîne. Hé, qu'est-ce qui se passe ? Je peux l'appeler n'importe quoi mais vrai est ce que Firebase utilise pour leur référencement. Donc c'est arbitraire. Ça n'a pas d'importance. Mais vous devez mettre quelque chose là, et vous voulez juste stocker la clé. Tout ce que tu dis ici, c'est Hey, ça existe. C' est pour ça que j'ai cette clé ici. Ok, donc il y a un poste, et c'est par ici. Hum, et c'est comme ça que ça marche. Donc, cet utilisateur a fait un message. Nous avons un poste dans notre application. Cet utilisateur n'a pas fait de posts. Ok, euh ,
aussi, nous voulons probablement stocker ce qu'un utilisateur a fait. Par exemple, si vous cliquez sur, comme sur un post, vous savez, vous devez avoir la possibilité de le contrairement, n'est-ce pas ? Mais comment pouvez-vous contrairement à un post si l'application ne sait pas quels messages vous avez aimé, vrai. Il a besoin de savoir. Donc nous avons aussi besoin d'avoir, euh, une
mauvaise chose ici. Nous avons également besoin d'avoir ah sur notre utilisateur ici, nous avons besoin d'un tableau appelé likes. Et bien sûr, ça va avoir Disons qu'il aimait son propre poste, non ? Donc j'aime qu'on va à la même chose exacte. Hey, h a d s f l k 23 valeur la vérité. C' est exactement la même chose ici. Tout ce que nous disons ici est hey, voici un tableau du post que nous avons aimé Et puis vous avez référencé le nom de ces messages et puis Donc fondamentalement, quand vous pouvez le faire dans l'application est comme vous allez le long, vous pouvez dire si si ce post que je fais défiler à travers que j'ai tiré vers le haut Si j'ai comme ça, le bouton devrait être différent, Si je ne l'ai pas encore aimé, alors il devrait être le bouton comme pour que vous puissiez taper dessus. Donc c'est un peu ce qu'on va stocker ici. Donc, pour résumer, nous avons obtenu un tableau de posts sur pour en faire un de plus juste à des fins de démonstration. Donc disons que ce que je d. unique ressemble à ceci. D' accord. Et puis, euh, bien sûr a ses propres objets de description. C' était une application vraiment amusante à construire. D' accord ? Et allons prendre une autre image de l'Internet juste pour le plaisir. D' accord ? Et certains de ces abdos sont moches. Oh, bonté. Celui-ci est encore cool. Bon, donc il y a une image et des s
par ici, et celui-ci était Ajouter l'image, Orel, et celui-ci était Ajouter l'image,
Orel,au fait, c'est des trucs en temps réel. Ceci est de vraies données dans la base de données. Quand je dis que c'est testé, c'est réel. Les données qu'il parle Vous parlez à votre application, um, description, image ou L et puis aime, OK, donc peut-être que celui-ci a, genre, 300 likes. Ok, donc juste faire semblant d'avoir quelques messages dans notre post inquiet, ce que nous faisons. C' est une vraie donnée. On est juste en train de mettre ici à des fins de test, et ça a l'air bien. Alors post il y a le poste. Ils ont leurs clés uniques, toutes leurs valeurs. Puis les utilisateurs. Il y a deux utilisateurs ici et remarquez comment celui-ci n'a pas de likes ou de posts. Eh bien, il n'en a pas. Et il n'a pas besoin d'être là s'il n'y en a pas, et c'est bon. Et sinon, cet utilisateur, il a aimé un post et il a fait un post. Et s'il avait, comme à plusieurs postes que nous pouvons ajouter cela ici. Donc, disons qu'il aimait l'autre post 2234 K B A k.
Ok , Et les valeurs vraies. Donc il aime les messages, et il a fait un post. Ok, nous référençons juste les messages existants et remarquons comment les messages et les utilisateurs sont au même niveau . Ok, tu ne veux pas que c'est nid tout un tas de trucs. Je voudrais dire que les utilisateurs publient des choses comme ça. Vous voulez un module, se lever autant que possible et ne pas imbriquer autant que possible. Tu veux faire référence à des choses comme on l'a fait ici. Donc, nos données sont mises en place et prêtes à l'emploi. Maintenant, ce que nous voulons dio comme je l'ai mentionné, le début est quand l'utilisateur crée un compte. Ok, nous voulons, euh, stocker cet utilisateur tant que nouvel utilisateur dans notre application Firebase. Parce que vous avez remarqué
que, alors que vous créiez de nouveaux comptes de mot de passe de messagerie, rien n'apparaissait ici, est-ce
pas ? Tu es comme si c'était sauver et travailler. Mais pourquoi ça ne surgit pas ? Ce que nous devons lui dire que nous devions apparaître. Nous n'avons pas accès aux utilisateurs, noms
d'utilisateur et aux mots de passe, et c'est une bonne chose. Ok, Firebase gère tout ça pour nous. Donc nous avons besoin de créer l'utilisateur et d'utiliser leur off i d. Donc je vais fermer cet écran ici. Vous avez appris que vous avez appris les bases de la base de feu et comment ça fonctionne. Donc c'est vraiment, vraiment cool. Qu'
est-ce qu'on veut faire à notre avis ? Contrôleur ? C' est là qu'on l'enregistre. Fermons ça ici et rendons ça un peu plus grand. Ok, donc c'est là qu'on se connecte, et on veut Teoh. Nous voulons créer un compte Firebase efficace. Ok, pour le faire afin de créer cet utilisateur, nous devons obtenir une référence à nos utilisateurs. Euh, rappelez-vous, dans notre base de pompiers Ah, est-ce que l'écran basé sur le feu est ici ? On a ces utilisateurs. Et ce qui est intéressant, c'est que firebase utilise vos rails. Il utilise des chemins, Teoh pour diriger les données là où il doit aller. Donc c'est un Vous êtes tous ici. Post serait le sien. Votre l OK. Et les utilisateurs seraient son propre neural. Et peut-être que vous ne comprenez pas et que vous ne devriez pas, parce que je n'ai pas encore montré, alors allons de l'avant et regardons notre code. Donc si on va à notre service de données ici, accord ? Et remarquez comment sont ici la référence basée. Donc, si nous en voulions un pour les messages, vous savez ce que nous pourrions faire c'est, euh, juste ici, nous pouvons juste faire un autre de ces postes privés de référence var. Souviens-toi, c'est une référence pour ça. C' est une base de feu constant, OK ? Et ce que nous allons faire, c'est que nous allons juste passer dans votre rail et ce serait exactement les mêmes euros ça va, sauf que ça dirait Ford Slash posts. Et donc quand on saisit une référence à cette base de pompiers, il saisit nos poteaux. Ou c'est cool ? Donc il attrape l'affiche, non ? Et puis tu aurais pu y ajouter des choses. Comme un tableau. C' est cool ? Je pense que c'est super cool. Tout est votre base. Donc, chaque fois que vous voulez attraper quelque chose, mettez
juste dans le chemin. C' est votre application. Et puis il y a un chemin et vous faites exactement la même chose pour votre, hum pour votre utilisateur. Donc les utilisateurs réf sont égaux à Firebase K et, euh, on va se terminer automatiquement. Mais c'est bon. Et puis tu copierais ça ici et le mettrais ici. Et cela ne définirait pas être des utilisateurs. Ok, maintenant , bien
sûr, c'est un peu de copier-coller et je ne veux pas faire ça. Alors allons de l'avant et faire une constante ici était qu'ils ont laissé votre base l égale et nous allons juste poster
post qui se débarrasser du poste à la fin et il ya notre base. Votre URL est ce que nous pouvons à la place dio est que nous pourrions simplement l'insérer ici. C' est une base Say base si elle veut le travail là-bas, nous allons basé votre URL ou vous êtes une base luttant aujourd'hui, comme vous pouvez le dire et c'est cool. Et donc nous pouvons aller de l'avant et copier ça dans les deux ici. Et nous pouvons le faire ici, c'est bien, et maintenant nous sommes à notre disposition. Pas encore parce qu'ils sont encore privés,
mais on a les différents Oural auxquels on peut accéder et écouter les choses. Pas encore parce qu'ils sont encore privés, Donc on va appeler fait pour cette vidéo. Ont appris un peu sur firebase. Si vous ne le comprenez pas complètement, allez-y et allez-y jusqu'à ce point. Jouez avec des tableaux de cratère Firebase dans vos données et autres choses là-dedans, et je vais aller de l'avant dans la vidéo suivante et implémenter effectivement en utilisant ces références postant notre utilisateur sur dans la base de données basée sur le feu ainsi que d'obtenir quelques valeurs de certains les tests. Alors c'est tout.
104. App: Showcase Partie 8 - Créer des utilisateurs de Firebase: Hé, tout le monde, Mark Price Here profondeurs espère dot com Allons de l'avant avec notre projet ici. Nous avons donc parlé de référencer des chemins. OK, pour être des données basées sur le feu. Donc, ce serait votre base l ou ce chemin ici barre oblique ou les utilisateurs barre oblique. Et comme vous pouvez le dire, c'est notre fille de base principale juste ici. Juste vraiment. Vous pouvez traduire tout cela à vous Ou bien c'est votre principale barre oblique Uriel messages slash utilisateurs. Et bien sûr, sont comme des dictionnaires que vous pouvez saisir les valeurs et les clés de super super cool . Donc nous avons cette information ici. Allons de l'avant et rendons ces références publiques. Poteaux Savar Ref. Réponds-moi de type base de feu et ça va revenir. Réf, soulignement des messages, Ok, et nous ferons la même chose pour nos utilisateurs. Il y a nos messages, réf. Utilisateurs de type firebase à nouveau. On est juste de bons programmeurs et on garde nos données privées. On va retourner les utilisateurs réf. Ok, donc c'est bon d'entendre nos données. Hum, alors quoi ? Nous savons que nous avons besoin de dio J'ai déjà parlé de cela, mais ce que nous savons que nous devons faire est lorsque vous créez un compte avec Facebook ou avec email Mot de passe. Rappelez-vous, quand vous vous connectez, ça vous donne un Ok, donc quand ça vous donne ça, je dois le prendre et le stocker dans celui de l'utilisateur. Ok, donc nous regardons en arrière nos données ici, nous devons créer un nouvel utilisateur dans ce chemin ici, et nous devons lui donner l'auteur, i d. Et à ce stade, ce n'
est pas le cas. Probablement j'aime ou des messages. Il n'aura pas de nom d'utilisateur parce que nous ne l'avons pas encore fait, mais il le fera. Le fournisseur de pieds définira cela aussi bien. Tellement cool. Donc, allons ici à notre code et créons une fonction,
euh, euh, service de données
interne parce que nous voulons garder les choses ici dans cette couche de modèle de slash de service. C' est une sorte de modèle de service. On aurait pu l'appeler « service modèle ». Um, mais funk crée un utilisateur Firebase, et ça va prendre un u i D. Parce qu'on n'a pas besoin de ça. Et on va aller de l'avant et prendre un dictionnaire. Eh bien, nous allons juste créer le dictionnaire comme nous l'obtenons. Il y a les valeurs dont nous avons besoin. Donc ça va prendre un dictionnaire de type, chaîne et de chaîne. D' accord. Et, euh, on
y va. Et peut-être que tu es genre, , pourquoi serrer le loup à cordes ? Nous regardons nos données ici,
hum, hum, nous ne nous soucions pas des goûts. Nous ne nous soucions pas des messages. Tout ce que nous n'étions pas en ce moment, c'est le fournisseur, et c'est une chaîne. Et c'est un sac à ficelle, ce n'était pas là qu'on mettait quelque chose de différent . C' est vraiment cool. Tout ce que vous avez à faire maintenant c'est une référence. Utilisateurs. Donc, nous n'avons qu'à saisir cet euro pour ses derniers utilisateurs. C' est la référence qui crée un objet Firebase, ok ? Ou en attrapant ça. Et, euh, nous allons dire enfant par un chemin en attente et regardons ce qu'il dit, obtenir une référence de base de feu pour l'emplacement au chemin relatif spécifié. Le chemin relatif peut être soit une simple clé enfant comme Fred, soit un
chemin séparé par une barre oblique plus profonde comme la barre oblique fred en premier. Donc c'est vraiment cool. Vous pouvez l'attraper par chemin, ou vous pouvez l'attraper par son nom réel. Donc, ce que je dis c'est, même ici, vous pourriez ajouter un chemin à la fin de celui-ci et en extraire un élément. Tout comme nous avions ces variables là-haut. Hum et donc ce qu'on veut dio, c'est qu'on veut mettre ici enfant par voie en attente. Nous voulons vous faire. Parlons de ça. Alors qu'est-ce que ça veut dire ? On sait qu'on a une idée unique,
non ? On sait qu'on a une idée unique, Et nous savons que nous n'avons pas encore créé un utilisateur Firebase. Donc, dans ce cas ici, vous n'avez pas encore ça. Vous n'avez pas ces utilisateurs, mais nous voulons stocker cette unique I d. Donc ici étaient en train de dire enfant par des chemins en attente. Quelles leçons ? Ce qu'on veut dire, c'est si tu regardes ici, on te dit ,
Hey ,
Hey,
prends , ce que tu penses, si ça n'existe pas, On va le créer. S' il existe, il va le retourner. C' est cool ? Donc, avec la base de feu, si une idée spécifique dans le chemin n'existe pas, vous pouvez toujours la référencer. Et quand vous sauvez quelque chose là-bas, ça va vraiment créer le chemin complet pour vous. Ça va créer tout pour toi à la minute où tu le sauveras, ce qui est vraiment cool. Donc ça n'existe pas en ce moment. Nous disons, Hey, prenez une référence ce chemin, il n'existe pas, mais il sera au moment où nous le sauverons. Donc, nous avons obtenu une référence à ce chemin afin qu'il ressemble à une barre oblique utilisateur quelle que soit votre
idée unique . Et voici où nous le sauvegardons, pas la valeur définie. On va passer, utilisateur. Ok, donc voici le marché. Quand vous économisez des objets et une base de feu la plupart du temps, ils seront des objets. Et quand je dis objet, rappelez-vous comment j'ai dit objets ou comme, dictionnaires ? Donc Firebase est vraiment intelligente, et elle sait quoi faire avec ces données, et ça va les sauver. Donc encore une fois, ce qui se passe, c'est qu'on saisit une référence au chemin des utilisateurs , d'
accord, et puis on définit un Vous saisissiez le chemin pour l'unique
I.D. I.D Donc, dans ce cas, si c'était l'idée unique, nous prenons cette voie ici pour n'existe pas. C' est bon, parce qu'à la minute où nous appelons la valeur définie, il va définir sur cet utilisateur. Ça va mettre un fournisseur avec Facebook comme clé. Si nous avions un nom d'utilisateur là aussi, il le définirait
aussi, donc quelles que soient les valeurs dans ce dictionnaire utilisateur, il serait maintenant réglé sur ce chemin et ils seraient tous juste ici sous cet utilisateur. Des trucs très cool, non ? Donc, il y a notre utilisateur semble vraiment cool, et puis nous avons juste défini la valeur et qui met automatiquement à jour et les pauses incendie. Tu dois faire autre chose. La minute où vous faites cela, il met instantanément à jour et la base de feu. C' est vraiment cool. Donc très base est très rapide. Il coule les choses très rapidement. Nous avons donc le code pour créer un utilisateur Firebase. Allons de l'avant et écrivons le code, dans notre contrôleur de vue pour réellement traiter cela. Alors, quand voulons-nous le faire ? Quoi ? Nous voulons le faire quand Facebook crée un compte avec succès, n'est-ce pas ? Alors allons-y et faisons-le. Maintenant, allons sur notre Facebook. Ici, c'est juste là on veut faire avant de quitter l'écran. Donc, c'est bien. Donc, nous ne pouvons pas le faire ici. Et qu'est-ce qu'on veut faire ? Nous voulons créer une base de feu utilisée ou ainsi, euh, allons de l'avant et faisons ça maintenant. Donc, laissez l'utilisateur égal fournisseur. Souvenez-vous haut. Il y a une clé de fournisseur que j'ai dit qu'on allait mettre. Ça va être hors fournisseur de points de données. D' accord. Et, euh, on va supposer qu'il sera là. Vous avez rencontré Vous voudrez peut-être ou non le faire de cette façon pour l'amour du temps. On ne va pas faire le si on va sur ce fournisseur ici. Je ne l'ai pas filmé,
mais, mais, euh, donc tu sais, ce que tu dirais,
c'est que tu dirais d'abord,
tu dirais , si le fournisseur est égal à fournisseur de points de données, vous savez, en tant que chaîne. Et si vous y arrivez, alors vous pourriez continuer et le sauver. , Le problème,c'est nous ne voulons pas continuer si ça ne dit pas, parce qu'on en a vraiment besoin et que tu devrais avoir ta propre gestion de l'air pour le gérer, peut-être faire une autre demande. Ah, un peu plus de travail. Mais je te montre que c'est ce que tu peux faire. On ne va pas faire ça. Donc on va mettre le point d'exclamation là. Je lui donne un avertissement parce que je t'ai dit des millions de fois de ne pas faire ça, et tu ne devrais pas OK, alors laisse l'utilisateur. Donc, nous sommes en train de créer un utilisateur. Qu' est-ce que c'est ? Tu sais ce que c'est, hein ? C' est juste un dictionnaire rapide. Lorsque vous avez le deux-points ici, c'est une clé dans une valeur. Ok, on aurait pu en faire plusieurs fois. J' aurais pu être une autre clé appelée Loi et cela pourrait dire test qui va juste laisser là. Juste pour vous montrer que ce que nous avons ici est clés et valeurs un dictionnaire, c'est tout. C' est ce qu'on fait, c'est qu'on dit, Hey, créons un dictionnaire pour ce dont on a besoin. On a l'
I.D I.D C'est génial. Là où nous avons le fournisseur, c'est génial. Et puis nous avons la, euh une autre clé ici que nous allons faire est que nous allons appeler le service de données dot ds dot create user based
fire based user et les idées de l'auteur off data dot your I d. euh une autre clé ici que nous allons faire est que nous allons appeler le service de données dot ds dot createuser based
fire based user et les idées de l'auteur off data dot your I d. Et l'utilisateur est ah, utilisateur. L' utilisateur vient de créer Remember, c'est un dictionnaire de type chaîne et chaîne passaient dans le u I. D. Que nous venons de donner et nous sommes juste passés dans ce dictionnaire que nous venons de créer. Donc au moment où nous faisons ça, ça va appeler notre fonction ici dans notre service de données, ça va trouver le chemin avec notre unique I d. Ok, et ensuite ça va définir la valeur de ce I d unique. Et alors quoi ? Nous devrions voir quand je Donc tout ça fonctionne maintenant avec facebook. Connectez-vous. Hum et, euh, donc on devrait voir ça apparaître quand on crée un nouveau compte Facebook. Hum, puisque nous avons déjà, mais nous avons peut-être un problème. Vous voudrez peut-être effacer vos utilisateurs. Donc, si vous testez avec Facebook maintenant, pour la première fois, vous voudrez peut-être revenir à votre tableau de bord Ici, allez à votre connexion et désactivation et, euh, voir ces utilisateurs enregistrés ici. Vous voudrez peut-être entrer, et ça ne se montrera pas ici. Vous voudrez peut-être les supprimer tous, car si vous vous êtes connecté avec Facebook jusqu'à maintenant, il peut toujours stocker des informations d'identification et vous ne pouvez pas créer de nouveau compte pour vous en mai lorsque vous avez pu le tester. Mais de toute façon, je dis juste
que, pendant que vous allez le long, vous voudrez peut-être effacer les données,
euh, pendant que vous allez le long juste pour vous assurer que les choses fonctionnent. Voyons donc si cela fonctionne, bien que cela puisse fonctionner ou ne pas fonctionner parce que j'ai déjà un compte Facebook. J' espère que ça marche ici. Donc, ce que nous devrions voir, c'est quand je crée un compte Facebook, il devrait créer un nouvel utilisateur Firebase dans mon portail basé sur le feu. Donc ici et je vais aux données. Donc, voir ces utilisateurs ici. Nous devrions voir 1/3 utilisateur, le nouveau que nous venons de créer. Et il devrait avoir le mot fournisseur dessus. Et cela dira probablement Facebook, et alors il aura toujours une clé. Aussi appelé blah et tests. Donc, nous devrions voir 1/3 utilisateur ici au moment où nous nous connectons pour la première fois avec Facebook. Donc je vais arrêter ça ici et allons choisir. Uh, allons juste dio iPhone 5 s. Ok, allons de l'avant et le faire fonctionner. Je vais m'ouvrir. Espérons que je n'ai pas encore fonctionné sur cet appareil, et il ne se connecte pas automatiquement. Sinon, je vais devoir supprimer l'application et réessayer. C' est à venir. D' accord. Donc, je devrais voir 1/3 ans ou pop up ici quand je fais journal Facebook et aussi remarquer que
nous avons Nous avons le u je question ici. Nous devrions probablement faire comme une échelle de police minimale ou quelque chose sur ce bouton. Juste pour que vous sachiez, ceux qui cliquent sur Facebook se
connectent,
OK , ils sont juste l'utiliser. Donc, il y a l'unique I d. Encore une fois les idées uniques n'ont pas d'importance. Vous n'avez jamais à faire des références manuelles. Ils sont juste stockés là. Donc nous avons un I D unique et il y a le bloc que nous avons mis dans. Et il y a le fournisseur Facebook. Ça a marché. Donc juste en l'attrapant, en faisant notre propre dictionnaire, quel que soit le dictionnaire que vous voulez, vous êtes le maître de l'apparence de vos données, vous décidez à quoi elles ressemblent. C' est ainsi que nous voulions que nos données ressemblent, que nous avons créé l'utilisateur ici dans notre service de données. Et puis juste en saisissant un chemin qui n'existait pas encore que Facebook j'ai d. juste là sur. Ensuite, nous avons défini le dictionnaire comme la valeur de cela, et cela a fonctionné. Ça a marché. C' est cool ? Je pense que c'est plutôt cool. Alors on y va. Allons-y et faisons-le fonctionner pour notre connexion e-mail ici. Alors faisons défiler ici aussi. Faites défiler ici, Teoh. Cette fonction de connexion de tentative ici. Et tout ce que nous voulons faire est fondamentalement la même chose exacte. Mais nous voulons le faire pour le courrier électronique. Où que ce soit arrivé, eh bien, si le compte n'existe pas, on va le créer. C' est génial. Maintenant, gardez à l'esprit. Le résultat ne nous donne pas une idée d'auteur. Nous obtenons que je d une fois qu'un utilisateur est connecté. Donc, ici, sur cet utilisateur d'authentification, vous savez, c'est comme ça que nous avons décidé de ne pas faire un bloc d'achèvement. Eh bien,
maintenant, nous allons probablement avoir besoin de faire un bloc d'achèvement afin que nous puissions obtenir l'autorité et non, lorsque les utilisateurs ont été connectés afin que nous puissions commencer et créer cet utilisateur. Donc, recréons simplement ce même service de données McCall que DS pensait ref base l'utilisateur Auth . Mais cette fois, nous ferons les blocs d'achèvement. Le mot de passe est mot de passe. Même chose, sauf ici, on va dio, c'est qu' il suffit de supprimer ça. En fait, ce qu'on va faire, c'est dire,
euh, quelle est la virgule aérienne hors données, puis entrer et appuyer sur Entrée et puis une
accolade bouclée de fermeture . On y va. Alors ça marche là et on va l'amener à l'ancien maintenant et maintenant. Weaken Dio est la même chose qu'on a fait avant de pouvoir attraper ça. Euh, on est là où on l'a mis. Par ici. Celui-ci ici, c'est Copiez ça et collez-le ici. Donc, après que nous nous sommes connectés après avoir créé un nouveau compte. Ok, on va utiliser Teoh. D' accord. Test de droit fantastique. Euh et, euh ok, alors appelons ça autre chose. Nous appellerons ce test e-mail, alors donnez-nous un nouvel utilisateur avec e-mail. Ça devrait être tout ce qu'on a à faire. Allons-y. Et ce que je veux faire est sur mon simulateur ici, Allons-y et commande shift h pour le fermer. Je vais arrêter l'application et la supprimer. Sinon, il va nous connecter automatiquement, ce que je ne veux pas pour l'instant. Donc c'est gon commande shift h pour sortir du mode tortueux. Et, euh, allons le réexécuter. Ce que nous allons faire cette fois, c'est se connecter avec Facebook sont désolés, pas avec Facebook. Nous allons nous connecter avec email et nous devrions voir 1/4 utilisateur ici maintenant. D' accord ? Et alors faisons-le. Maintenant, on va dire Bob Jay à Def Pentes Dot Com et 12345 Allons-y et
connectez-vous et voyons si ça marche. Allez, bébé. Montre-moi l'argent. Non, il y en a. Je m'inquiétais, les gars. Je m'inquiétais vraiment. En outre, il semble que nous avons un type de problème d'image ici. On dirait que certaines de nos affaires sont coupées. On va vouloir réparer ça aussi,
aussi un moment dans le temps. Mais tu devrais savoir comment faire ça maintenant. Vous devez savoir comment résoudre ces problèmes. Les contraintes de mise en page, des choses comme ça. Vous avez eu beaucoup d'expérience et bien, vous ne devriez pas faire est d'attendre Meteo expliquer explicitement comment orteil changer chaque chose de
mise en page unique . Tu dois expérimenter. Si tu ne le fais pas, tu n'apprendras pas de toute façon. Ici, c'est. Ah, simple connexion 10. C' est le journal unique
I.D. I.D. Simple dans Colin 10. C' est exactement ce qu'ils appelaient ça. D' accord. Et, euh, probablement 10 comptes. Mais de toute façon, c'est le bloc I.
D. unique . Tests e-mail et fournisseurs Mot de passe. Donc, cela a fonctionné ont été la connexion avec succès dans les utilisateurs et les stocker dans notre base de feu et remarquer comment il était instantané le moment que nous avons créé. C' est le moment où il est apparu ici, donc c'est vraiment cool. On l'a fait,
alors on vadire que ça est fait. On l'a fait,
alors on va Nous avons créé avec succès des utilisateurs de Firebase pour Facebook et pour, euh, pour le journal de messagerie. Et la prochaine chose que nous voulons faire est de faire quelques messages de tests. En fait, tout ce que nous voulons faire en fait, c'est juste en bas avec ces postes, ces postes de test existants et s'assurer qu'ils deviennent bons et passent à autre chose.
105. App: Showcase Partie 9 - Synchroniser des données de Firebase: Hé, tout le monde, Mark. Pricier pentes sourdes dot com J'ai tout ouvert. Si vous n'allez pas de l'avant et ouvrez votre projet existant. Ok, euh, et allez dans votre contrôleur de vue. D' accord ? Je vais fermer ça ici. Et ce qu'on va faire aujourd'hui, au
moins dans cette vidéo, c'est qu'on va juste parler de la façon de télécharger des données de Firebase. Nous avons parlé de publier des données un peu. Nous avons posté un utilisateur en saisissant simplement une référence dans la définition de la valeur. C' est facile ? Alors maintenant, on va parler de comment tu pourrais montrer ces données et t'excuser, pas voir le contrôle sur Swift. Aller à nourrir V c point swift. D' accord. Nous voulons entrer dans notre alimentation maintenant. Et donc ce que nous voulons faire est de télécharger les données, hum, que nous avons dans notre base de données basée sur le feu, et c'est tellement puant. Facile. Ok, base de
feu est incroyable. Fantastique. Tu n'aimes pas ça. J' espère que vous y allez vraiment parce que c'est un outil incroyable. Donc ce qu'on va faire, c'est qu'on doit sauter cette version stupide de Java. Non, merci, mec. Il a essayé de fermer tout sur ton ordinateur et la ferraille apparaît juste. Ok, Donc ce que nous voulons faire est d'écouter chaque fois qu'un changement est apporté à nos données, c'est comme ça
que ça marche. Alors sortez de l'état d'esprit que je vais télécharger des données une fois. Et puis j'ai eu un rafraîchissement, peut-être toutes les cinq secondes ou quoi que ce soit. Sortez de cet état d'esprit. Ok, à partir de maintenant, Firebase, considérez ça comme un évier instantané. Moteur instantanément. Envoyez vos données au fur et à mesure. D' accord ? Pour que vos abdos soient super réactifs. Donc, ce que nous voulons faire est d'écouter chaque fois que Post Data est modifié. Ajouté lorsqu'il est téléchargé. Peu importe. Ok, on veut écouter ces événements. Donc ce qu'on va faire, c'est ici. On va dire que le service de données a déjà la plupart du code pour ce ds dot ds. C' est ce qu'on a créé. On va prendre une référence à nos messages. D' accord. Rappelez-vous que nous dans notre service de données que nous avons le chemin vers le poste ici ? C' est cette barre oblique Ford allait juste saisir une référence à elle. D' accord. Et donc point les messages et puis ici observe le type d'événement. D' accord. Vous pouvez évidemment remarquer qu'il y a différents types de versions, et nous n'allons pas passer en revue aucune de ces versions. Il y a beaucoup de tout ce que vous pouvez faire. Firebase, veuillez lire la documentation. Voyez ce qui correspond à vos besoins pour le type d'événement observé de votre projet et le type d'événement que nous voulons valeur point et avec bloc. Et avec ce bloc, nous allons juste dire instantané dans la presse d'Anna. Entrez, entrez et mettez une accolade bouclée de fermeture là. Donc, ce que nous allons dire, c'est, chaque fois qu'une valeur change. Alors regardons ça pour voir si ça nous donne de la documentation. Euh, ce n'est pas, euh, mais fondamentalement, la valeur est appelée chaque fois qu'une donnée est modifiée, elle est téléchargée. En fait, si vous maintenez la commande enfoncée et cliquez, cela vous donnera toutes les options et lui dit juste ici. Donc, les options que vous avez un enfant ajouté. Il est appelé chaque fois qu'un nouvel avis d'enfant a été ajouté, un enfant a été supprimé, enfant a changé, enfant a déménagé. Ok, tu commences à comprendre le point ici. C' est un type différent d'événements que vous pouvez écouter, mais nous voulons de la valeur, qui est déclenché quand toutes les données un jour qui change à un endroit et récursive lee tous les enfants Donc, si l'un des enfants a changé à l'intérieur de nos messages, comme peut-être quelqu'un a édité un post ce qu'il va mettre à jour ce week-end, mettre à jour ou voir parce que nous voulons que notre vue soit fraîche avec les données les plus fraîches. Donc revenons à nourrir V. C. Donc ce qu'on dit c'est qu'ils appellent ça et c'est la fermeture ici, donc ça ne va pas être appelé tout de suite. Il ne sera appelé que chaque fois que des données sont modifiées dans la vue de table. Donc, même si c'est une charge imputée, le code qui est ici sera appelé maintes et maintes fois chaque fois que les données changent . C' est comme ça que les fermetures fonctionnent. Je ne pense pas à cela dans le contexte de sa vue intérieure. Il a chargé. Mais nous le sommes. L' initialiser là. C' est tout ce que nous voulons faire est d'imprimer la valeur du point instantané. L' instantané est un instantané des données, et la valeur du point est les données qui dans l'instantané il s'agit d'une foi. C' est un instantané Firebase. Ok, euh et donc on veut juste imprimer la valeur de ça. Donc, en gros, c'est tout ce que vous avez à faire pour télécharger des données. Vous êtes comme, attendez, pas de demande réseau, pas d'appels et non, il suffit d'observer un type d'événement sur une référence sur un chemin. Donc, observez un événement, tapez sur un chemin. Et chaque fois que cette valeur de point arrive, chaque fois que quelque chose a changé, ça va appeler cette fonction, et vous pouvez mettre à jour votre You I C'est vraiment cool. Quelque chose de vraiment grand Google est en fait pousser dans tous leurs dans toutes leurs plates-formes Android, tout. Ils essaient de pousser cette idée de la programmation réactive ce naufrage instantané et eso trucs
très cool. Donc, cela devrait vraiment fonctionner dès la sortie de la boîte. Ce que nous devrions voir imprimer. C' est parce que nous imprimons le post, non ? Oui. La ref publie ce que nous devrions voir. L' impression est le, euh nous devrions voir à poster ici avec ces données dedans. C' est ce que nous devrions voir. Notez également que le chemin doit être parfait. Donc, vous savez, c'est le chemin principal slash. Si j'avais des messages à l'intérieur des utilisateurs, il ne serait pas en mesure de le trouver ici parce que mon chemin est faux. Mais nous savons que notre chemin est parfait parce que c'est ainsi que nous l'avons conçu. Donc quand on voit cette impression, qui est C deux messages, Ok, alors allons-y et allons fermer le côté gauche sur une traînée ça vers la gauche quand il traîne vers la droite pour que nous puissions le voir en temps réel. D' accord. Et ce qu'on va faire, c'est appuyer sur stop sur la construction existante et on va l'exécuter. Et tout de suite,
on devrait voir briser mon conseil ici. Nous devrions voir ces messages imprimer. Voilà. Il est en train de charger. Laugesen devrait-il automatiquement ? Je pense que nous sommes déjà connectés. On y va et jetons un coup d'oeil. Bien sûr, écoute, c'est juste là. Maintenant encore. Ne faites pas attention à la façon dont il est complètement formaté ici. C' est un peu étrange,
mais non, écoutez, écoutez, il y a nos 80 pour celui-là sont l'un de ceux-ci. Lequel est-il ? Un post juste ici. Donc il y a notre idée pour que celui-ci ait notre image ou a tout sur place . C' est vraiment cool. Tu veux voir quelque chose d'encore plus cool ? Tu es genre, ouais. Ok, alors allons vraiment montrer quelque chose de cool ici. Je veux bouger ça pour que ma tête ne soit pas sur ton chemin. Et que se passe-t-il ? Que se passe-t-il si je, hum si j'ajoute un utilisateur. Ok, donc nous sommes à l'écoute des changements. Voyons s'il va instantanément imprimer et appeler cette fonction. Appelez cette fermeture qui voit peu instantanément. Appelez cette fermeture quand j'ajoute des données. Allons-y et donnons-le un coup, accord ? , Tout d'abord,on peut changer quelque chose au lieu de 300 goûts, on peut dire, euh, ça ? Juste sauté jusqu'à 350 goûts. Appuyez sur Entrée. Mais je le suis. Regarde ça. Regarde cet instant. Aucune autre plate-forme n'offre quoi que ce soit aussi cool est que c'est génial ? Nous avons immédiatement reçu des mises à jour. Donc vous êtes après vraiment, comme en temps réel, en temps réel. Donc ça a juste changé ce qu'on vient de mettre et on va de l'avant et tu dis
, , pourquoi ça a apporté les deux ? C' est ce qu'on est. C'est ce qu'on cherche. Les appels qu'il apporte nous donnent tous. C' est ce que nous voulions faire pour que nous puissions vous mettre à jour. Pourquoi ? Ce qui fera dans la prochaine vidéo. Sortons et créons un nouveau post. Alors appelons celui-ci, hum vous savez, autre que je suis au hasard . Et la valeur. Ça n'aura pas de valeur pour l'instant. Ce qu'on va faire, c'est qu'on va aller Teoh, dire ah, description, tu sais. Ah, qui Ma première application. Ajoutons une autre clé. Celle-ci va être une image. Votre l et ceci est attraper un vrai rapide de l'Internet. Dis juste, euh, des haricots
frais. Euh, juste au hasard, euh, et ils sont super cool. Il a un cigare. Quiconque fume un cigare est cool dans mon livre. D' accord ? Et j'aime, c'est cinq. Maintenant, je vais presser l'annonce et on devrait voir ce nouveau disque. Nous ne devrions pas voir trois dossiers à gauche à l'intérieur. En fait, allons-y et éclaircissons cela. Retourne par ici. D' accord. Moment de vérité. La seconde que j'ajoute ceci, je devrais voir trois nouveaux enregistrements maintenant sur mon impression. D' accord. 123 J'ai donc mes haricots frais. Oui, je le fais ici. D' accord. Taux. On
dirait que je ne vois pas mes goûts,
cependant. On
dirait que je ne vois pas mes goûts, Ils sont là, vous les voyez ? J' aime ça. On dirait que les goûts n'ont pas économisé pour une raison quelconque. Hum chose. Oh, attends une minute. Oh, je n'ai pas ajouté de goûts que j'ai dû manquer ça. J' ai oublié de le sauver. Faisons ça maintenant. C' est juste le travail. J' aime 20. On y va. OK, donc ils sont là. Tout fonctionne parfaitement. C' est cool ? Vous n'avez jamais vu quelque chose comme ça avant parce que personne d'autre ne fait vraiment cela, sauf pour la base de feu, donc des résultats instantanés. Donc ce que vous feriez est juste ici chaque fois que vous Ah, chaque fois que ces données entrent, vous le feriez juste. Vous diriez la vue de table, pas de recharger les données. Et nous n'avons pas ça. On n'a pas tous les trucs en place pour ça. Je dois me mettre en face. Nous n'avons pas le chemin d'index auto-Roo et la cellule de vue de table personnalisée configurés pour cela, Mais à quel point est-ce facile ? Chaque fois que de nouvelles données entrent, vous actualisez simplement la table et les mises à jour automatiquement. C' est vraiment cool. Vraiment, vraiment cool. Quoi qu'il en soit, Donc c'est comme ça que vous téléchargez des données de la base de feu Et tu l'écoutes. Un observateur. Donc des trucs très cool sur. On va appeler cette vidéo terminée, et la prochaine,
on va commencer à attacher des poteaux Riel sur notre écran des données réelles sur le dos , ce qui est vraiment cool. Nous ne les publierons pas depuis l'APP. On va mettre les données de test à l'arrière, mais on va l'afficher en premier. Et parfois, c'est la meilleure façon d'aborder les choses plutôt que de faire tout le pourquoi de créer des choses. Pourquoi avez-vous simplement obtenu des choses qui s'affichent dans l'image de l'application ? Les données de test et firebase le font très simplement. Donc c'est Mark Price. La mort glisse point com faisant des progrès fantastiques CN la prochaine fois.
106. App: 10 Partie - Parsing Firebase Data: Hé, tout le monde, qu'est-ce qu'il y a là ? Marquer le prix au point com. Et la dernière fois, nous avons fait une sieste qui pourrait parler à la base du feu et télécharger des données, et nous l'avons imprimé. Nous savons officiellement qu'ils sont basés sur le feu. L' application est Ah, certainement, euh, parler à notre application et les données sont là, et ça marche. Et donc, euh, nous allons mettre les données ici. Et donc toutes ces données ici se connectent à l'APP, ce qui est fantastique. Ok, donc ce qu'on va faire aujourd'hui c'est que ces données s'affichent. Euh, eh bien, nous allons faire analyser ces données correctement dans l'application, mettre dans une classe et mettre tout en ordre. Nous pouvons donc l'afficher dans les cellules de vue de tableau. C' est ce qu'on va faire aujourd'hui. Notre Dave est là. Il travaille sur la base de feu. Et donc quand vous obtenez des données de la base de feu comme ça, cela vient dans ce qu'on appelle un instantané. Comme vous pouvez le voir ici, nous pouvons commander cliquer sur ceci ou non. Mm. Eh bien, voyons voir ici. On y va. C' est ce qu'on veut ? J' essaie de regarder leurs données de classe, mais ça ne me laisse pas entrer parce que je n'ai pas de type dessus, mais c'est bon. Donc, ce que vous devriez faire est toujours regarder la documentation des choses avec lesquelles vous travaillez . Donc tu peux voir, euh, tu peux voir ce qui se passe. Voyons si ça va nous laisser remorquer. Dites, je pense que c'est un
instantané, il y en a. Voir cet instantané de données F. On y va. Tout cela est écrit de manière objective. Tu vois
, au fait. Et donc ce que vous pouvez dio, c'est que vous pouvez regarder l'instantané ici, qui est ce que nous venons d'obtenir de la base de feu. Et, eh bien, ça te dit juste ici. Un instantané contient des données provenant d'un emplacement Firebase. Chaque fois que vous lisez des données Firebase, vous avez reçu les données sous la forme d'un instantané de données F. Les instantanés sont transmis aux blocs pour attacher leur générée efficacement. Donc, dans leurs moyens immuables, vous ne pouvez pas les changer. C' est donc un objet Firebase qui est généré efficacement. Et donc les données ne sont pas prêtes pour nous à les utiliser. Nous avons toujours une analyse, mais la base de feu a été vraiment génial et nous a aidé à obtenir ces données très rapidement. Et donc encore une fois, nous savons que chaque fois qu'une valeur change, il va appeler cette fonction ici. Donc ce qu'on va faire, c'est l'analyser en quelque chose qui est utilisable. Et en ce moment, c'est juste sous forme d'instantané. Et donc ce qu'on veut faire, c'est le sortir de là. Donc d'abord, c'est notre contrôleur de vue de flux, et, ah, le nombre de lignes dans la section est de trois. Donc on enduit dur ce nombre de rangées. Donc, nous voulons probablement faire avant de commencer à utiliser des données ici est que nous voulons probablement obtenir notre vue de
table, en fait, euh, en fait, travailler avec Eh bien, faisons-le d'abord. Alors nous irons à la table de vous. Tu es genre, qu'est-ce qu'on fait ? Ok, ne vous inquiétez pas. Suis juste mon exemple. Donc ce qu'on va faire ici, c'est analyser les données et puis bien, puis bien connecté. Donc ce qu'on va faire, c'est dire, pour chaque accrochage. Mauvaise chose. Si les instantanés sont égaux à snapshot que les enfants pointent tous les objets comme f snapshot de données et nous devons importer firebase ici. C' est pour ça que ça ne marche pas en ce moment. Importer base de feu. Parfait. Alors regardons, parlons de ce qui se passe ici. Donc nous saisissons l'instantané. Ils saisissaient tous les enfants et peut-être les enfants et tous les objets. on Pourquoionferait les deux ? Ne devraient-ils pas faire la même chose ? Eh bien, vous penseriez qu'ils le sont. Mais les enfants, si j'ouvre le côté droit, les enfants, Justin Ennis
est-il en numérateur ? Ça ne va pas nous donner l'objet dont nous avons besoin. C' est juste qu'il est dans le numérateur, donc tu peux en tirer les choses. Donc ce qu'on va faire, c'est qu'on va attraper tous les objets, ce qui est un tableau de ces instantanés. Ok, donc chacun d'entre eux est un instantané. Rappelez-vous, ce n'est pas un tableau que nous traitons sur le serveur. Si c'était juste un objet, nous n'aurions pas besoin de saisir tous les objets. Nous l'avons ici dans cet instantané lui-même. Mais nous devons saisir tous les instantanés, les instantanés individuels dans cet instantané principal. Parce que, rappelez-vous, il s'
agit d'un tableau de messages. Ok, donc nous avons tous les instantanés juste ici, et ce que nous voulons faire est itéré à travers l'instantané. Donc, pour chaque instantané dans les instantanés, ok, juste ah, pour chaque boucle là-bas. Et, hum, allons de l'avant et juste imprimer ça, alors imprimez ou dites « snap » et
nous allons ah, faisons ça ici. Ok, Donc ce que nous voulons faire est juste d'imprimer ceci et de voir ce qui se passe dans notre consul quand nous exécutons l' application. Allons-y et faisons-le maintenant. Change l'iPhone six. Donc, encore une fois, nous avons attrapé l'instantané principal que nous avons obtenu de la base des pompiers. Mais cela contient un tas d'objets dans son Nous devons attraper le tableau, qui est un tableau d'instantanés. Ensuite, nous devons itérer à travers cela ou étaient tableau. Ok, on y va. D' accord. Tellement chargé. Jetons un coup d'oeil ici. Donc, snap a celui-ci a une description et aime. Celui-ci a une image de description qui vous est propre. Comme si clairement, il nous donne nos objets postaux individuels, qui est ce que nous voulons. Nous les voulons au niveau individuel afin que nous puissions les utiliser individuellement, donc c'est vraiment cool. Donc nous avons notre objet Snap juste là. Et donc dans Firebase ou tout autre programme, ce que vous voulez faire est de stocker vos données dans quelque chose qui est utilisable vos propres classes, ok. Et donc nous devons créer notre propre modèle pour ces messages et donc faisons ça maintenant. Eso dans votre modèle ful multiple juste ici. Allez-y et faites un clic droit et allez à nouveau fichier et ah, fichiers
Swift. Très bien. Et appelons ça un poste. Vous ne voulez pas travailler avec un tas de dictionnaires et en extraire des objets et des
choses . C' est la grande, énorme douleur quand tu dois faire encore et encore. Il est donc préférable de créer une classe et de stocker réellement les données dans la classe. Alors faisons ça maintenant. C' est Class Post et parlons de ce qu'on sait ce qu'on va avoir, non ? Donc, bar
privé, nous savons que nous avons un message une description de poste. Et en passant, je mets le mot post devant la Description du message parce que Description est un
mot-clé réservé sur certaines classes de sièges objectives. Et si jamais nous le faisons à l'avenir, nous ne voulons pas de conflit. Donc, ne créez jamais une variable appelée description. Bon, sachez
juste que maintenant le conflit s'appelait la description de poste, et ,
euh, voyons la description que nous devions toujours rendre cela nécessaire. Faisons que l'image Ah Cevaer requise ou un testament rend celui-ci facultatif, ce qui signifie qu'un utilisateur n'a pas à poster une image. On a des goûts qui vont être nécessaires. Nom d'utilisateur. Celle-ci sera également nécessaire . Et, ah, la clé de
poste. On va sauver l'identifiant unique. On va sauver ça aussi. Euh, au cas où vous auriez besoin d'y avoir accès ou référence. Juste une bonne mesure de sécurité. Alors créons nos variables publiques, n'est-ce pas ? Poster la description. Il revient. Celui-ci va avoir un truc optionnel parce qu'il peut ou non. Il peut ou non avoir une valeur, et nous voulons que celui qui l'appelle le sache. Donne-moi Jor El. D' accord. Euh, oui, c'est faux. Excusez-moi. Celui-ci n'est pas facultatif mais l'image ou l est facultative. On y va. Il y a une image qu'Orioles aime va revenir. Le soulignement aime le miroir. Ceux qui n'ont pas les points d'interrogation à la fin supposent qu'il y a une valeur
là-dedans . Ok, donc nous devons nous assurer que nous le garantissons plus tard à un moment donné. Le nom d'utilisateur, bien sûr, est requis. Et bien sûr, nous n'avons pas ça. Nous n'avons pas encore cette valeur. Nous ne travaillons pas vraiment avec les utilisateurs pour l'instant. Donc Ok, ce qu'on veut faire, c'est créer un Isar initial. Donc, chaque fois que vous créez un nouveau post, comme si vous faisiez un post Facebook, le , feriez, vous ajouteriez, comme, la description et le
image ou des choses comme ça. Alors mettons la description dans son option. Ce n'est pas facultatif. Laissons-le comme ça. La majorité est
toutefois facultative . Ok, nous faisons cela un optionnel et puis nous avons le nom d'utilisateur de la chaîne de type, qui était nécessaire qu'un passé que dans chaque fois que vous créez un nouveau post. Ok, ça me
semble bien. Hum et, ah, allons-y. Et juste une description auto-post égale la description elle-même point Image ou l égale image ou rail et le nom d'utilisateur de point auto est égal nom d'utilisateur. Rappelez-vous, il s'
agit d'une initialisation erso. Nous définissons les valeurs que nous voulons initialiser chaque fois qu'une nouvelle d'entre elles est créée. À ce stade, il se peut qu'il n'y ait pas de clé de poste à sauvegarder car elle n'a pas encore été créée sur la base de feu, donc nous n'avons pas besoin de nous en soucier pour l'instant. J' aime quand vous créez un nouveau post va avoir zéro comme donc nous n'avons pas besoin d'un passage. Et il aime, donc c'est probablement bon pour ça. Maintenant, nous voulons une initialisation de plus. Ok, eh bien, nous voulons dio c'est que nous voulons convertir les données qui proviennent de Firebase en quelque chose que nous pouvons lire ici. Et on sait que les données, on va les convertir en dictionnaire. Donc je vais créer dans un autre er d'initialisation que nous utilisons chaque fois que nous téléchargeons des données de la base de feu. Donc on va appeler cette clé de poste, et on va en faire une chaîne et ensuite dicter le dictionnaire qui contient toutes
les données . OK ? Et ça va être une chaîne de type dans n'importe quel objet. D' accord ? Et donc on va faire, c'est quand on saisit des données de Firebase, on va passer dans le dictionnaire, analyser les données pour pouvoir les utiliser dans ah, quelque chose qui est utile. Allons-y et faisons-le maintenant. Fermez ce consul pour l'instant. OK, alors allons-y et signons. C' est tellement point point de soulignement Post. Non. Allez, la clé de
poste est égale à la clé de post auto. Non, vous pouvez faire est de récupérer les données du dictionnaire si let likes égal dictionnaire. D' accord. Rappelez-vous, c'est juste une ancienne syntaxe de dictionnaire, et ceci est un entier. Donc nous sommes en train de nous lancer. On dit que c'est essayer de sortir les goûts du dictionnaire. On ne sait pas si c'est là ou pas. dictionnaires ne peuvent pas garantir la valeur, donc vous devez le faire si vous ne le faites pas à plat, vous pouvez planter votre programme si vous essayez de l'utiliser afin que nous puissions dire s'il existe. Soi qui aime, égal, aime. Ok, faites la même chose ici si vous laissez l'image votre l est l'image du dictionnaire. Ou, en passant, ces noms de clés et de mettre dans le dictionnaire sont les noms exacts qu'ils sont sur la
base de feu . C' est très important. Les mêmes noms, ok, et, ah, disons une image autopoint ou l égale image ou L à nouveau. Tout ce que nous faisons, c'est quelques pratiques de codage sûres ici pour nous assurer que les valeurs que nous
recherchons étaient réellement là. Donc, nous ne plantons pas le programme et essayons de les utiliser. Donc c'est la description. Et sur la base de feu, nous l'appelons la description comme une chaîne. Et puis nous disons lui-même point post description est égal bureau. Ok, Donc l'idée est que chaque fois que les données téléchargent de la base de feu, nous créons un nouvel objet post, et nous passons dans le dictionnaire que nous obtenons de la base de feu. Donc on peut, euh, pour qu'on puisse utiliser les données dedans parce qu'on ne veut pas se souvenir. Nous ne voulons pas gérer cela à partir du contrôleur de vue, parce que c'est une mauvaise pratique. Nous voulons le gérer à partir de l'air du modèle. Donc très bonnes choses. Revenons à notre alimentation que nous voyons ici. Et maintenant, nous avons nos instantanés, mais nous avons besoin d'un dictionnaire. Alors allons-y et faisons-le. Maintenant, nous allons dire si laisser le post déchiqué pour le dictionnaire de poste est égal à snap, pas valeur. D' accord. Comme chaîne de dictionnaire dans n'importe quel objet, le même format exact, celui de celui que nous venons de créer dans notre post. Ok, alors parlons de ce qui se passe ici. Ainsi, l'instantané de données F a une propriété de valeur de point. Voyons si je peux le trouver ici. Ah, voyons voir. Là, c'est juste ici. Renvoie le contenu de cet instantané de données en tant que types natifs, ce qui peut être un dictionnaire, un tableau, un nombre ou une chaîne. Donc, avec cela étant dit, Firebase vous permet en fait d'analyser les données de plusieurs façons. Il pourrait en fait nous donner un tableau, même si le feu basé sur le backend nous donne un tas d'objets. Si nous l'utilisons comme un tableau, il le convertira réellement pour nous. Il existe donc plusieurs façons de travailler avec les données. Je ne te montre qu'une façon, et ils te rendent ça pratique. Donc, c'est pourquoi, dit n'importe quel objet cause il pourrait être n'importe quel type d'objet. Mais le fait est, vous devez savoir quel type de données il est à quel type de format il est. Et vous l'avez créé sur votre base de feu. Donc d'accord, donc ce que nous faisons c'est que nous allons passer par chacun des instantanés de cet instantané principal ici , chacun des objets Children parce que rappelez-vous, si vous regardez Firebase ici à partir de messages, est comme un objet, c'est une gomme. Tu vas avoir un grand tableau avec des sous-objets dedans. Donc c'est le plus grand A, les messages et ce sont les sous-objets et que nous stockons dans des instantanés. On va passer par chaque sous-objet de cellule chaque post, et ils allaient le convertir en dictionnaire parce que c'est ce que c'est. C' est un dictionnaire de type chaîne dans n'importe quel objet. Et si tu te souviens des leçons de Jason,
c' est comme un dictionnaire. Un dictionnaire est un objet. D' accord. Moteur et JavaScript, notation
d'objet et Jason. Voici donc la clé d'objet ou la clé du dictionnaire. Donc nous disons, Hey, c'est un dictionnaire et la clé que les éléments dans le dictionnaire ont une clé, cet air de type string et une valeur de type, N'importe quel objet ? La raison pour laquelle nous disons n'importe quel objet est parce que ce pourrait être une chaîne ou il pourrait être un entier . Il y a plus d'un type. Donc on dit n'importe quel objet ? Ok, donc un dictionnaire de chaîne dans n'importe quel objet a du sens. Ok, alors maintenant nous l'avons fait. Maintenant, nous avons les données. Allons de l'avant et saisissons la clé pour que je puisse dire laisser Qi égal à la clé de point. Alors j'attrape, rappelez-vous, rappelez-vous,
les
dictionnaires ont des clés et des valeurs,
donc nous saisissons la clé de cet instantané,
qui est dans ce cas,
ce sera ces gars dictionnaires ont des clés et des valeurs, donc nous saisissons la clé de cet instantané, qui est dans ce cas, Ici, on va prendre la clé, d' accord ? Et puis nous allons sauver ça pour pouvoir l'utiliser plus tard. Et, bien
sûr, la valeur lorsque nous saisissons la valeur, ce sont ces données ici. Cet objet. Ok, donc il y a la clé, et ensuite on veut faire est juste de créer notre nouveau poste. Donc, laissez post equals post Creighton uob instance de notre objet. Et voici le, euh, le constructeur, l'initialisé que nous avons créé. Donc, en passant la chaleur et passer dans le dictionnaire assez facile. Donc, nous avons pris le dictionnaire de poste avec toutes ces valeurs que nous avons mis dans notre objet de poste. Et, bien
sûr, notre objet post enregistre les données. Um, ce qui est vraiment cool. Une autre chose dont nous avons besoin, cependant, c'est ah, nous allons notre table. Il va avoir besoin de Teoh parler à notre table aurait besoin d'avoir des messages dedans pour qu'il puisse parler à un tableau de post pas seulement avoir des données statiques. Alors allons-y et faisons-le maintenant. Jusqu' à présent, messages égaux en feront un tableau vide de type post. Et je veux en faire un tableau vide au début parce que le nombre de lignes et de section doit se rapporter au nombre de messages il y a. Donc, allons de l'avant et disons le nombre de lignes et la section est égal au nombre de points de messages Si vous ne l'avez pas initialisé ici, vous auriez un plantage quand il essaie d'accéder au nombre. Donc on ne veut pas ça, donc c'est vraiment cool. Donc, ce que nous voulons faire, c'est chaque fois que de nouvelles données entrent, nous voulons complètement remplir la liste. Rappelez-vous, les valeurs sur celui-ci ici va nous donner toute la liste des messages. Donc ce qu'on veut faire c'est ah, juste ici. Avant de commencer, Parson, Data est que nous allons dire des messages égaux que nous allons vider ce tableau s'il y a déjà des données , parce que nous allons le remplacer. Droit ? Et je dois dire auto-posts parce qu'on est dans une clôture. Donc on va effacer ça n'importe quand. Cela a besoin de mise à jour, parce que nous allons complètement remplacer toutes les données, et puis juste ici, nous allons dire auto-up posts dot append post. Ok, ce post juste ici. Donc, pour
résumer, on va prendre tous les objets hors de lui. ok, Comme le tableau que nous allons, Teoh a itéré à travers ces objets, convertissez chacun en un dictionnaire de type chaîne dans n'importe quel objet ils vont enregistrer la clé de l'instantané, le niveau supérieur . Et puis nous allons créer un nouveau post après le dictionnaire et nos parties objet post
des données que vous regardez. On a juste fait ça ensemble, et le doute de soi a posté un stylo. Nous avons ajouté à la liste ici. Et donc après cette boucle quatre, puis après que nous sortons d'ici, tout ce que nous avons à faire est de recharger les données de table, nous avons déjà, et il se rafraîchira avec toutes les données que nous avons, qui est vraiment cool. Euh, ok, donc on a posté des données ici, et donc,
euh,
juste euh, ici en auto Arrgh, chemins d'
index. Tout le reste, je pense, est là où il doit être. Donc, nous savons que le nombre de lignes dans la section sera égal au nombre total de messages. Donc, ce que nous pouvons faire ici est juste de vérifier et de s'assurer que tout fonctionne, nous pouvons réellement saisir l'objet post sur Silvera, et le prochain post de chemin est égal à des messages. Et puis nous pourrions dire que le point de chemin d'index ro que vous avez fait cela avant, étaient juste attraper le post. Donc ce qui devrait arriver, c'est que pour chaque poste, ça va créer une nouvelle cellule, et ensuite, euh, on devrait être capable de l'attraper. Et pour que je puisse juste imprimer ces messages. En fait, nous allons dire imprimer, dire post. Ah, c'est un point de poste qu'est-ce que c'était ? Poster la description. Ok, donc ce qu'on va faire, c'est juste à des fins de test pour voir, pour s'assurer que nos objets sont convertis. Donc, le test que nous allons exécuter est de nous assurer que les données analysées ici très bien
qu' elles les ont créées avec succès en tant qu'objets Et puis que cet Isar initial a analysé avec succès les données hors de lui et hors du dictionnaire et les a poussées dans notre dans notre un objet post lui-même. Donc, cet objet post, nous voulons nous assurer que le, euh vous savez, cela fonctionne que les données les données enregistrées ici à partir de cette fonction ici. Et donc, si quoi ? Ce qu'on devrait voir, c'est si ça marche, que
si ça marche,
on devrait voir , en fait, on devrait voir. Um 1234 On devrait voir quatre descriptions imprimées à l'écran. Allons-y et donnons-y un coup de feu. D' accord ? Ça l'a brisé ici. On dirait, hum, snap, snap, snap, snap. Donc en ce moment, je vois 20, tu sais pourquoi ça dit que c'est parce que nous ne l'avons pas fait. Nous n'avons que deux raccords sur l'écran qu'il n'a pas vu les autres cellules. Donc si je fais défiler, on devrait voir les autres. On y va. Donc, voyez que 1234 Les données l'analysent
avec succès, stocké avec succès dans un objet post. Et nous avons en fait quatre objets ici, qui est exactement ce que nous attendrions. Bien sûr, la date n'est pas encore affichée dans les vues de table, mais c'est OK. On a fait quelque chose de vraiment cool. Donc je sais qu'on a pris un peu plus de temps pour expliquer ça, mais pensez à ça. C' est tout ce qu'il a fallu pour parler à Firebase dans les données de téléchargement. C' est ça. C' est tout ce qu'il a fallu. Pas mal. Et c'est instantané. Chaque fois qu'il change, fait ces objets changer les mises à jour automatiquement, ce qui est vraiment, vraiment cool. Donc on va dire que c'est fait pour cette vidéo. Allez-y et assurez-vous que votre modèle est prêt à partir ? Euh, vous avez vos données quand je dis modèle, je veux dire votre post juste ici. Assurez-vous que tout est prêt à continuer. Euh, c'est ce qu'on doit avoir en ordre. Commencez à travailler avec ces données dans la table. Alors allons-y et terminons ceci et numéro un.
107. App : Showcase Partie 11 : Données d'affichage - Caching / téléchargement: Yo, yo, yo, yo, ce qui est usure va continuer la rivalité gauche Talk de la dernière vidéo sur. Bien sûr. Dans la dernière vidéo, nous analysons les données, avons tout enregistré dans le modèle. Et maintenant tout ce qu'on a à faire, c'est de le faire fonctionner à l'intérieur de notre point de vue ici. Donc on va faire quelques choses aujourd'hui, on va avoir la description ici sur le côté gauche. On va obtenir que ça reflète les données. Et dans la , base de feu,ça aime juste ici. Nous allons obtenir ceux qui reflètent les données, la base de feu et cette image ici, nous allons réellement implémenter le code qui télécharge cette image depuis Internet. Ce qui est vraiment cool, c'est que nous allons créer un système d'encaissement, alors que si nous l'avons téléchargé une fois, nous allons l'économiser dans l'argent et ensuite nous n'avons pas à lire, téléchargé chaque fois que la nouvelle cellule arrive sur le car cela pourrait détruire les performances et causer beaucoup de problèmes. La plupart des autres vidéos là-bas étaient bien, en fait pas vous enseigner cela, mais vous devez le faire dans une application vraiment IOS ou dans un vrai travail professionnel donc il est très important que vous le sachiez. Alors allons-y et commençons. Donc, ce que nous savons c'est que nous modifions toujours les cellules dans l'histoire de votre collection de vous dans la cellule pour le chemin d'index Rohit. Droit ? Et alors allons-y et regardons notre post vente. Nous l'avons déjà créé. Donc maintenant on a l'image de profil, Ok, qu'on ne va pas changer parce qu'on n'a pas encore l'image de l'utilisateur, et, euh, on a le nom de l'utilisateur, mais ils sont toujours ? Oui. Au moins, nous avons l'étiquette pour, mais nous n'avons pas encore les données pour ça. On ne va pas s'inquiéter pour le bouton similaire. Nous avons les données pour ça dans ce, euh, mais nous n'avons pas ces données connectées. Alors allons de l'avant et ajoutons les connexions dont nous avons besoin dès maintenant. Donc nous avons besoin et nous allons juste ajouter ceux dont nous avons besoin maintenant. Donc je suis sortie semaine guerre. Nous savons que nous avons besoin de l'euh nous appellerons ça, euh, eh bien pour dire description, description. Ah, c'est un soldat du Texas appelé description. Texte de vous je texte vue et ensuite Ah, les goûts. Donc je suis la semaine de sortie de notre, euh et on va appeler ça Ah. Aime l'étiquette de type vous. J' ai étiqueté. Nous avons donc les trois éléments qui allaient être modifiés en ce moment. Ok,
ça a l'air super. Et on a fini un peu de style là-bas. Ça a l'air super, aussi. Alors de quel autre co avons-nous besoin pour faire fonctionner ça. Alors jetons un coup d'oeil ici. Ok, alors allons-y. Et comme nous l'avons fait dans le passé, créons une fonction de cellule de configuration. Euh, donc voici quelque chose qui est vraiment important pour vous de savoir. Nouveaux développeurs et développeurs. Bien sûr que faire l'Iowa sape le mauvais sens dans la vue. Contrôleur héros. Ils vont en fait, euh ils ont commencé la cellule. Les chemins d'index Fero sont ici sur le flux V C plutôt que, euh plutôt que de configurer cette cellule le modifiera à partir d'ici. Ils vont changer l'image ici. Ils vont changer la texture. C' est mauvais. La vue devrait se gérer elle-même. Ok, eso on va le gérer dans notre cellule de poste. Donc, configurez la cellule et nous allons avoir l'objet post de type post. D' accord. Et, euh, on a juste besoin de prendre des trucs hors de ça. Nous avons également besoin de stocker les messages. Faisons ça ici. Donc, nous allons sauver notre poste de type post. On va stocker la menace juste là. Et donc quand nous faisons la ligne auto et le chemin suivant appellera la cellule configure. Et alors allons-y et faisons-le maintenant, nous allons dire auto point que, euh oops Post. Ouais, c'est bien lui-même. Ce poste est égal à post. D' accord. Et on a eu le poste. Parlons de la description. Donc nous devons avoir ce mot « crimes ». Donc si vous laissez juste vous assurer qu'il n'est pas vide. , Tu sais, c'est un peu garanti, parce que c'est ce qu'on fait à l'arrière, et on est forcés de l'utiliser pour le faire, mais c'est toujours bon d'être en sécurité. Donc on est juste une description post op, ok ? Et nous nous assurons aussi que ce n'est pas vide. Donc, où la description du post n'est pas égale à une chaîne vide, OK, et puis nous dirons point auto um, description, texte que le texte est égal bureau. Ok, hum, ça a l'air bien. Sinon, on n'a pas besoin de faire quelque chose. En fait, il nous criait dessus. Ici. Attends. Euh, d'accord. Oui, donc ma mauvaise. Je prends l'habitude de ce codage défensif. Nous n'avons même pas besoin de tout ça ici parce que nous garantissons qu'il y a de la valeur dedans. On n'a pas besoin de faire tout ça. C' est déjà garanti. Comme on l'a dit. Donc nous étions déjà un bon codeur et, euh, responsable de dire égal à la description post op. Post op, Post description. On y va. Il y a notre description qui a l'air superbe. Et nous savons que les goûts sont aussi, euh, seront
là pour sûr. Donc, nous pouvons dire lui-même point aime le texte de point d'étiquette égal et nous allons juste adorer l'insertion spéciale Syntaxe ici dira un point de post aime parce que c'est entier Nous voulons le convertir en une chaîne. On va montrer les goûts. C' est génial. Hum d'accord, donc on a le poste. Donc on a eu la description. On a des goûts. Ce que je veux faire, c'est m'assurer que cela fonctionne d'abord avant quoi que ce soit d'autre avant de commencer à travailler avec des images et des choses comme ça. Donc ce qu'il faut faire, c'est connecter nos points de vente ici, alors allons-y et faisons-le. Maintenant, allez dans votre storyboard principal, d' accord ? Et ah, on
y va. D' accord. Et regardons ça. Ah, postez la cellule ici. Droit. Cliquez dessus dans l'étiquette J'aime. C' est connecté au niveau des goûts. Les chiffres ici ne font pas le mot aime. Et puis nous avons le texte de description. On va le faire glisser ici, et on dirait que nos images sont déjà là, ce qui est très bien. Ok, donc ces liaisons aériennes ont l'air bien. Allons à notre alimentation V c. et prenons soin de ça. Alors tu te rappelles comment on a triché juste ici pour des tests ? On ne veut pas faire ça. C' est une mauvaise pratique. On pourrait avoir un accident. Ce qu'on va faire, c'est qu'on va dire si on laisse la cellule égale à la table a vu la cellule réutilisable Q avec identificateur. C' est le même code va avoir un peu différemment que la cellule post, donc il pourrait échouer. Il pourrait ne pas. Et puis ce qu'on va faire, c'est dire, Ah, cellule qui configure la vente, et on va passer dans le post qu'on a attrapé ici. On va passer ce poste,
et, euh, euh, et on doit retourner cette vente de retour. Si ça n'a pas marché, on va dire autre et ensuite on y va, Teoh, juste retourner un poste régulier. Vendez comme si soyez prêt cette année. On ne l'appellera jamais. Ok, donc encore une fois, rien de nouveau de ce qu'on a fait dans le passé. Si vous avez suivi tout ce cours, nous avons créé une table de vous. Donc nous l'avons attrapé de la table, voir un réutilisable, et ici nous sommes déjà en train de saisir ce post, va se débarrasser de l'empreinte. On n'a plus besoin de ça. Et puis nous allons configurer la cellule, passer le post, retourner la cellule à la vue de la table. Et puis, bien
sûr, ici et notre cellule de poste
, , on est en train de le configurer. Nous définissons le texte de la description. On met le label J'aime. Nous ne sommes pas encore en train de jouer avec l'image, alors ouvrons les pieds à Firebase. Ce qu'on devrait voir s'il y a tout fonctionné correctement. Ce que nous devrions voir est 1234 messages. Donc nous devrions voir quatre cellules ici, et chacune des descriptions et des goûts devrait refléter ce qu'ils sont vraiment censés être. Alors allons-y. Voyez si je peux rendre ce simulateur un peu plus petit. On y va, et on y va et on y va. Vous voulez l'arrêter et le réexécuter ? Il vient que j'utilise habituellement toujours prévu crash. Mais peut-être qu'on dirait que ça marche. Hé, hé, regarde ça. D' accord. Tu es prêt ? Donc d'accord. Ce premier ici, la description ressemble à ce 230 aime. Ça marche définitivement. Celle-là a 20 goûts, ok ? Et juste une description. C' est fantastique. Euh, celui-là a 350 goûts et a la bonne description. Et Ah, celui-là,
euh, euh, on dirait qu'il est correct de le faire. Et c'est aussi commandé exactement de la même manière, ce qui est plutôt cool. Vous ne pouvez jamais garantir que quelque chose sera commandé par le feu. Race fait du bon travail pour garder les choses ordonnées, donc c'est plutôt cool. Donc ça marche définitivement. On met à jour la cellule, et ça a l'air super. Maintenant, ce que nous voulons faire est de faire fonctionner cette image. Donc, l'un des problèmes que les nouveaux développeurs IOS ont est comme, Ok, où il comment faire l'image ? Alors ce qu'ils vont faire, c'est qu'ils vont le télécharger sur Internet. Ok, c'est vraiment important. Écoute-moi très attentivement. Très, très prudent. C' est super important. Tu dois savoir ça. Tu dois impressionner quelqu'un dans un entretien d'embauche. En ayant ces connaissances, les
nouveaux développeurs vont frapper sur Internet et obtenir une nouvelle image à chaque fois. Alors ce qu'ils vont faire, c'est qu'ils vont poster leur cellule ici, accord ? Et dans cette cellule de configuration, ils téléchargeront l'image à partir d'Internet. Eh bien, voilà le problème. Tu es prêt pour ça ? Donc, disons qu'il apparaît sur l'écran juste ici. Ces deux-là se vendent bien, ce qui va se passer est dans vos pieds, voir contrôleur ici, vendre le chemin de l'index Fero va être appelé deux fois. Mais saviez-vous que vendre chemin d'index Fero est appelé à tout moment dans New Cell vient sur l' écran. Alors que se passe-t-il si, disons qu'il y avait cinq éléments à l'écran au lieu de deux, et donc cela s'appelle cinq fois. Nous avons fait cinq demandes Internet pour télécharger une image, puis l'utilisateur commence à défiler immédiatement. Ils sont maintenant partis, ok, mais il est toujours en téléchargement sur Internet, et les nouveaux viennent à l'écran, et il essaie de les appliquer aux anciens qui sont maintenant hors de l'écran ,
et vous avez des requêtes flottantes qui ne sont pas terminées et listez certaines d'entre elles chargées. Vous avez
des problèmes, bien sûr, mais si vous commencez à faire défiler très vite, vous pourriez avoir 100 demandes en même temps. Et ah, vraiment, vraiment mauvaise pratique. Et beaucoup de nouveaux développeurs le font. Je vais t'apprendre la bonne façon de payer. Très attention. C' est vraiment important. Donc des images comment on va travailler avec des images. Ok, donc ce qu'on veut faire, c'est utiliser un cadre appelé Alamo Fire. On l'a utilisé dans le passé. C' est le plus populaire et probablement le meilleur réseau IOS, euh, framework pour swift. Alors allons-y et attrapons-le. Alors allez à votre allez sur votre Internet ici, votre internet, votre navigateur et allez Teoh Alamo, feu un hub get. Donc, il est obtenir moyeu point com slash Alamo feu slash Alamo feu cliquer branches. Parce que, euh, IOS 9 n'est pas encore sorti. Leur
branche swift 2.0, n'est pas encore sortie non plus. Ok, ce sera plus tard. Donc si ce n'était pas si c'était la version live. Si tu regardes ça quand tout sera en direct, tu vas vouloir l'attraper d'ici. Tu vas vouloir orteil. Ce sera différent. Ok, mais tu vas vouloir aller à la page principale et faire ce qu'il dit de faire
ici . Mais on ne va pas faire ça parce qu'on est toujours en bêta. Alors allez à des branches ici, Cliquez sur Swift deux points. Oh, faites défiler vers le bas et ils donnent des instructions différentes pour celui-ci, et c'est juste là. On veut ce type ici. Alors copiez ça, commande. Tu vois ? Et puis dans votre projet ex code, vous devriez déjà avoir votre fichier pod parce que nous avons installé Firebase, un fichier pot de clic et juste dans une course de feu. Allez-y et mettez-le là et sauvez-le. Ouvrez votre terminal d'espace de commande terminal. D' accord ? Et laisse-moi monter ici. D' accord ? Donc ce que nous voulons pour Dio, c'est naviguer vers le projet, donc je vais aller sur mon bureau et mon CD. Avoir des pentes. Vitrine cachée. Ok, c'est ce qu'on veut courir. Voici une capsule. Installer. Ça arrive. Parfait. Ok, donc il l'a téléchargé et il l'a installé. D' accord ? C' est maintenant dans notre projet, et je crois que notre projet se rafraîchit ici. Alors je vais
voir comment il n'y a pas d'incendie d'Alamo. Ils sont plutôt cool. Alors maintenant, retournez à votre projet, allez à votre contrôleur, et vous, euh, pas vos pieds VC vont à votre vue et à votre cellule de poste et en haut ici, allez-y et importez Alamo feu, comme si Ok. Et il me crie dessus. Mais si je le construis,
ça devrait marcher. Ok, encore une fois, c'est le budget bêta pour voir beaucoup d'ares rouges et d'autres trucs. Oh, la construction est toujours l'autorité ultime. Ok, donc voici l'idée. La théorie derrière comment cela devrait fonctionner. Nous avons une image cash et un cash sera le magasin stocké localement sur l'appareil pour cette session en cours. Ça ne va pas être permanent. Et en gros, chaque fois qu'on télécharge une image sur Internet, on va la stocker dans l'argent, OK, et puis quoi ? Nous ferons ce que les cellules sont rafraîchissantes. Chaque fois que quelqu'un fait défiler, on va d'abord vérifier l'argent, et s'il est là, il va le charger instantanément. Donc plus de téléchargement super rapide et réactif. Aussi, nous allons gérer si vous faites défiler l'écran. D' accord ? On va finir. Il y a un téléchargement existant provenant d'Internet. Nous allons annuler cette demande parce que nous ne voulons pas que ce soit téléchargeable. C' est hors de l'écran maintenant, surtout si les cellules sont à nouveau utilisées. Et puis, bien
sûr, après avoir téléchargé une image, nous allons afficher. Mais nous allons aussi stocker dans l'argent pour qu'il puisse être disponible à l'avenir. Donc nous avons importé le feu d'Alamo ici. Allons de l'avant et ah, lançons le téléchargement d'images. Donc, euh, faisons d' euh, abord un peu de traitement de l'air ici. Alors post, pas là. Je ne gère qu'une certaine logique. Ok, donc nous voulons nous assurer qu'il y a un droit d'image oral, parce que l'utilisateur n'a pas besoin de soumettre une image. Alors nous allons nous assurer qu'il y a une image rurale. Assurez-vous que ce n'est pas Neil. Ok, donc si une majorité n'est pas
Neil, ça veut dire qu'on doit soit récupérer l'image de l'argent où on doit la télécharger. Comment savoir s'il y a une image dans l'argent ? Eh bien, nous n'avons pas encore d'argent, et comme l'argent va stocker toutes les images pour cette vue, euh, ça n'a probablement pas de sens de le mettre dans ce post vente. Il est probablement logique de le mettre ici dans le contrôleur de vue de flux. Alors faisons ça maintenant. Nous le mettrons ici en haut de la page. Cash équivaut à N cash. C' est aussi simple que ça. C' est juste ça. Il est conçu pour encaisser les données en magasin localement et, euh, vous
faciliter la vie. Donc on a un liquide. Ce que nous voulons faire est, ah, changer quelques choses autour maintenant dans notre chemin d'index Ferreira. Ok, donc nous avons notre post juste ici, et ce que nous voulons faire est de nous assurer que nous travaillons correctement avec les images ici, donc Ah, quelques choses. Essayons d'abord de prendre une image de l'argent. Donc d'abord, déclarons une image. Ça va être une image optionnelle comme ça. Et ce qu'on va faire, c'est qu'on va dire si on laisse ton égal poste à Majoro. Donc on va s'assurer d'abord qu'il y a une image, Orel. Ok, s'il n'y a pas une majorité allaient dire que je suis égal. Et, euh, vous savez, une chose que j'ai oublié, en fait, c'est que nous allons rendre cette image statique. Et si vous vous souvenez de ce que fait statique est, il rend une instance de celui-ci, comme, disponible dans le monde entier. Donc allé instance de mémoire afin que nous puissions y accéder de n'importe où parce que nos messages
sont des messages vont être en mesure d'avoir besoin d'ajouter des images à cela. Donc, je l'ai rendu publiquement disponible une instance de celui-ci. Ok, nous allons dire que vous êtes l égal à alimenter V c point image cash. Maintenant, la raison pour laquelle nous utilisons le nom de la classe au lieu de dire comme moi est parce qu' il est publiquement disponible et c'est statique, et nous voulons saisir la seule instance de celle-ci. Et c'est comme ça que tu le fais. D' accord ? L' objet de la clé, tu es malade. Comme vous, je l'image. Ok, parlons de ce qui se passe ici. Donc, ce qu'on dit,
c'est de
prendre l'U.
R L s'il existe,
si ce n'est pas le cas,
ne faites même pas face à cette image ici. prendre l'U. R L s'il existe, si ce n'est pas le cas, Mais s'il existe, allons à l'image cash et obtenons des objets pour Keystone Image A cash et Ennis Cash a, comme les clés et les valeurs comme un dictionnaire. C' est ce que nous allons faire, c'est que nous allons stocker l'euro lui-même comme nom clé parce que c'est unique. Et si deux images avaient exactement le même, ça n'aurait pas d'importance parce que nous n'avons besoin que d'une seule pour ces
deux images ont commencé à avoir du sens. Donc fondamentalement, euh, l'URL va être la clé, et la valeur sera les données de l'image elle-même. Alors allons de l'avant et attrapons l'image de cette clé. Et, euh, ça va le mettre là-dedans et au cas où ça échouerait, c'est bon. On va gérer ça. Et juste dans une seconde ici. Donc, l'idée est dans notre post. Donc, s'il y a une image dans l'argent, passons ça. Sinon, nous devions télécharger vers le bas les données. Et donc je pense que nous devons modifier notre cellule configure juste ici pour que vous puissiez commander cliquer dessus . Il nous emmène à notre poste de vente. Donc, en plus de passer dans le post, passons aussi dans une image si elle existe. Donc, nous devons mettre le point d'interrogation à la fin de rendre facultative cause il peut ou peut ne pas exister. Alors retournez à vos pieds, voyez-vous, et dans votre configuration de vente Maintenant, nous pouvons, euh, passer dans le post et les images Eh bien, et donc vous êtes genre, Eh bien, pourquoi avez-vous Pourquoi as-tu mis ça ici ? , Ce que je fais,c'est que je fais une image vide. Et si ça marche, si tout fonctionne ici, ça ne sera plus vide. Et c'est bon. Euh, et ça va passer ici. On va faire un chèque dans une minute pour s'assurer qu'il ne s'agenouille pas. Si ça n'a pas marché, ça va passer dans une image vide. Et on va non, pour le vérifier, parce que ça va être vide. Donc, euh, c'est juste de la logique. C' est tout ce que c'est. Et donc nous passons dans le poste étaient en train de passer dans l'image de l'argent si elle existe. D' accord. Et, euh,
ça a l'air bien. Alors maintenant, allons-y et retournerons à notre cellule de poste pour qu'elle me crie dessus à propos quelque chose. C' est parce qu'on ne l'a pas fait. On ne l'a pas changé ici. C' est parce qu'on ne l'a pas fait. On ne l'a pas changé ici. Euh, ma mauvaise. Juste quelque chose me manque. D' accord. N' oublie pas que tu es comme si j'attendais que tu arrêtes ça. Oui. Alors assurez-vous de mettre votre image ici à celle que vous prenez de l'argent. On y va. le oh, alors post cellule. Maintenant, nous voulons que Teoh crée une demande d'incendie d'Alamo. Nous devons donc stocker les demandes ici. Et la raison pour laquelle nous devons le déformer, c'est parce que les soupes, euh, allez. La raison pour laquelle nous avons besoin de le stocker est parce que nous devons pouvoir l'annuler. D' accord ? Parce que tu n'as pas à le faire. Vous n'avez pas besoin de stocker une demande pour ah, pour
en faire une. Mais comme nous devons l'annuler, nous avons besoin d'une histoire de magasin dans un emplacement mémoire afin de pouvoir annuler plus tard. Donc, Barbara, quête équivaut à des demandes, et c'est une base de pompiers. Il s'agit d'un objet Firebase. Cette demande ici. Ok, c'est pour ça que c'est orange. Et nous n'avons pas créé cette base de pompiers. Alors maintenant, on va dio, on va descendre ici. Et, euh, ce que nous allons faire ici, c'est si l'image ou un a n'est pas égal à clou, donc s'il y a une image ou oh, ça veut dire qu'on a une image. Sinon, tu sais, il n'y a même pas de raison de se montrer. En fait, ce que nous devrions faire c'est s'il n'y a pas d'image ou je devrais dire, Ah, nous devrions dire moi non, um vitrine image point caché, pas mis en évidence. Allez, frappez un égal. Vrai. Donc il n'y a pas d'image ou d'éléments L'utilisateur n'a pas mis d'image. Et cachons ce truc, accord ? Et puis ce que nous voulions, c'est dire, si l'image n'est pas égale à s'agenouiller, ok, moi. Cette image mise en valeur image point égale je suis Jean. Alors pense à ça. Nous passons dans l'image de l'argent. Peut-être que si c'était là, on le passe. Et si ce n'était pas là, ça ne passe rien ici. Donc on s'assure qu'on ne vérifie rien. Mais ce que nous disons, c'est que s'il y a quelque chose ici, cela signifie que c'est une image mise en cache. Alors allons-y et chargeons-le à partir de l'argent. Sinon, maintenant nous devons faire notre demande pour que nous puissions dire, genre, si près de ce maintenant nous devons faire notre demande pour que nous puissions dire,
genre,
si près de ce
conseil ici,
nous allons dire un peu plus grand pour vous. conseil ici, demande est égale à Alamo Fire, pas à la demande. Et nous voulons celle-là. Et la méthode est une requête get parce que nous téléchargeons quelque chose et c'est
l'image de point post rural. Ok, je mets l'exclamation à la fin parce que je sais qu'elle est là parce qu'on a vraiment fait le chèque, et on va le valider et s'assurer que le type de contenu est une image. Ok, c'est tout ce que ça fait, c'est qu'il s'assure qu'il ne télécharge pas l'image. Il est optimisé pour les images. Et c'est une chose spéciale Alamo feu pour faire votre pour faire vos demandes. Plus efficace. Donc, euh, nous validons que nous avons une image, accord ? Et ce qu'on va faire, c'est qu'on appellera la réponse aux points et, ah, celle-ci va bien. Juste ici. Demande une réponse. Données de l'air. D' accord. Et, ah, je vais juste me taper et entrer sur tout ça ici. On va changer ça juste une seconde. Donc ce que je vais dio, c'est se
débarrasser des parenthèses. Ici, débarrassez-vous de ces parenthèses. Et je vais juste appeler cette demande Appelez cette réponse. Ok, appelez celui-là. Données, ce sont des données des IA. L' image elle-même dans l'air de celui-ci. Débarrassons-nous du vide et faisons juste l'entrée, comme ça. ai eu. Ok, c'est juste comme ça que tu travailles avec les closers. Tu peux faire de toute façon, on va le faire de cette façon juste pour gagner du temps si Air est égal à Neil, c'
est-à-dire s'il n'y a pas d'air. Si elle a réussi, nous allions dire, Laissez l'image est égale à vous image. Et c'est une image d'une donnée, accord ? Et ah, je suis juste forcer à déballer les données, à forcer et à envelopper ça. On va juste supposer que c'est ça marche en ce moment. Tu le feras probablement si on y va. Mais pour l'amour du temps, on va le laisser comme ça. Ça va marcher à 99,9%. Mais juste pour que tu saches, j'en suis conscient, et tu devrais en être conscient aussi. Mais pour le temps et parce que je t'ai dit dans ces 1 000 000 fois, on va continuer à avancer ici et on va faire C'est un moi. Cette image de vitrine est égale à cette nouvelle image ici. Nous avons donc fait une demande. Nous avons téléchargé les données. Nous nous assurons que c'est une image temporelle. Euh, et, euh, c'est juste le format que vous utilisez. D' accord ? Ne vous inquiétez pas de la façon dont cela fonctionne dans les scènes. Tu peux regarder ça si tu veux. Sur le gestionnaire d'achèvement, nous avons des données. Et donc s'il n'y a pas d'air qui allons de l'avant et saisissons les données d'image comme vous voyez
ici . Et allons de l'avant et mettons-le à l'intérieur de notre image de vitrine. Et c'est vraiment ça. Il y a encore une chose
que nous devons faire . Nous avons besoin de Thio ajouté à notre argent, rappelez-vous, parce que nous le téléchargeons maintenant. Donc nourrir v c point image cash que définir objet. On va définir l'image elle-même. C' est, euh, votre image est ici pour clé et on va dire, Ah, point d'
auto, point d'image ou mal ? Ok, tous les héritiers, construisons et voyons s'il y a des héritiers. Hey, ça a marché, au moins à la surface. Ici, ça marche. Alors assurons que nous avons tout le code dont nous avons besoin. Donc s'il n'y a pas, s'il y a une image ou un, allons-y. S' il n'y a pas d'image ou je vais cacher l'image. Si l'image n'est pas égale à clou,ce qui
signifie que cette image ici,
cela signifie qu'on a une image en argent,
alors utilisez-la à la place. Si l'image n'est pas égale à clou, signifie que cette image ici, cela signifie qu'on a une image en argent, Sinon
, nous allons parler à Internet. Est-ce que nous obtenons des demandes en utilisant l'image de poste ou je m'assurer qu'il est de type image, quelle que soit l'image, peut-être la puce J Peg. Quoi que ce soit sur le gestionnaire d'achèvement. Si l'air est dans ce Neil, prenez les données de l'image converties en une image, puis stockez à l'intérieur de notre ibl dans notre image de vitrine, puis ajoutez à l'argent. Ok, maintenant ça a l'air très bien. En fait, il y a une autre chose que je pense qu'on doit gérer, et c'est annuler notre demande. Donc si nous revenons à, voyons ici Ah, le flux V c. Donc ce que nous voulons faire est que chaque fois que nous créons une nouvelle cellule Ok,
um,
nous voulons annuler la demande tout um, de suite, Tout de suite sur la batte. Donc on va dire vente date point de demande Annuler. Et il est correct de laisser le point d'interrogation là parce que cela signifie simplement que notre demande est facultative . Et s'il y en a si c'est Neil, ça ne fera rien, et nous ne sommes pas inquiets à ce sujet. Mais s'il existe, nous voulons l'annuler. Alors pensez à ce qui se passe. Donc je fais défiler vers la droite, et celui-ci vient de sortir de l'écran et j'en utilisais un nouveau. Et donc si la nouvelle cellule qui est en train de réutiliser a une requête existante pour obtenir une image, pourquoi téléchargeons-nous une ancienne image et la mettre dans la nouvelle cellule nous donnerait la mauvaise image . Donc nous voulons conseiller cette demande immédiatement, et ensuite il va lancer une nouvelle demande de lui a besoin de Teoh. Euh, d'accord. Donc ce que nous avons vu jusqu'à présent, c'est que ça marche. Donc ce que nous devrions voir maintenant, ce sont ces images ici, elles devraient être disparues. Soit ils devraient avoir une nouvelle image dedans, soit ils devraient être vides. Invisible, parce qu'il a frappé parce qu'il n'existait pas. Si on en voit un,
on sait qu'on a un problème. Allons-y et essayons de le faire fonctionner. On a peut-être un accident. Nous ne pouvons pas. Qui sait ? On ne sait jamais. Donc, vous devez construire et courir souvent en cours d'exécution, chargement. Ok, jetons un coup d'oeil ici. Donc, il semble que l'une des images fonctionne. Deux des images qui fonctionnent. Euh oh. Il y a les écouteurs que l'on vient de charger. Donc celle-là, on sait qu'il n'a pas d'image, tu te souviens ? Si je le regarde ici. Ooh, bébé. Oh,
bébé, bébé, tu n'as pas d'image. C' est très bien. Écoutez, ces autres fonctionnent. Ils les ont téléchargés depuis Internet, et ils travaillent tous comme ils ont besoin de travailler. Celle-là est cool nous emmène dans des écouteurs. Je n'aime pas le fait qu'il
n'
yait pas d'image ici. Je n'aime pas le fait qu'il y Et il y avait un grand espace vide. Tu aimes ça ? Je n'aime pas ça. Nous devons donc changer la hauteur de notre vue de table Vendre si elle n'existe pas. Et rappelez-vous comment j'ai dit que vous devriez. Vous empilez les vues parce que quand vous cachez quelque chose en lui, il disparaîtra. Et Reese Ice ? Eh bien, c'est vrai. Mais tu sais ce que j'ai réalisé, c'est que tu sais comment on voulait avoir l'ombre fraîche dans notre cellule ici. Donc nous avons ce conteneur qui a une ombre, comme vous pouvez le voir juste là. Eh bien, le problème est sur une cellule. Il ne redimensionner est automatiquement si vous avez des choses attachées à la vue de contenu ce que nous avons
dû créer une autre façon de créer une autre vue de conteneur ici. Et donc quand on fait quelque chose de caché, son action ne va pas le redimensionner pour nous. Si tout était terminé, objets et les vues de pile étaient ici sur la vue de contenu et ils ont disparu. Ils seraient re taille. Mais puisque le conteneur a l'ombre et d'autres choses. Ça ne va pas le faire automatiquement pour nous. Et je ne veux pas perdre l'ombre parce que c'est cool. Alors allons de l'avant et écrire le code nous-mêmes pour le redimensionner. Donc ce qu'on veut dio, c'est Ah, regarde à quel point les cellules sont hautes ici. Alors ouvrez le côté droit. Regardons la vente. Et, euh d'accord, donc c'est environ 358 que je vais éteindre la coutume. Je voulais être automatique, donc c'est environ 3 58 Alors allons dans notre contrôleur de vue de flux. D' accord ? Et, euh, à notre avis, a chargé juste ici. Ce que nous allons dio va dire tableau vue point estimation hauteur de ligne estimée est égale. Vraiment ? Je pensais que je le copierais. Je ne m'en souviens même plus maintenant. Euh, regardons juste une fois de plus. Désolé. Euh, 3 58 Cal. Très bien, ma mémoire courte ici. D' accord. 3 58 Donc, comment ça marche,
c'est que si vous ne mettez pas une hauteur de ligne estimée sur chaque cellule, ça va calculer la taille et vos vues de table vont courir beaucoup plus lentement. Donc, si tu dis Hey, mon portable a 3 58, mais si on a besoin de changer la façon dont on a besoin de changer la hauteur de rangée, euh, sur une ligne spécifique, ça va juste le faire pour celle-là. Alors définissons une hauteur de ligne estimée et ensuite ce que nous voulons dio est ici en
bas . La plupart implémentent une nouvelle fonction déléguée appelée height. Le chemin de l'index de sillon devrait être ici quelque part. Ne cliquez pas sur les mauvais ici, Hauteur pour la ligne au chemin suivant. Et ce que nous voulons dio est Grab nos messages pour dire Let post égal messages index chemin dot ro. Donc, il a attrapé le poteau. Ce que nous voulons faire est de dire, s'il n'y a pas d'image rurale, cachons-nous, faisons une hauteur plus courte. Donc si, hum, si l'image de point ou mal est égale à Neil, si elle n'existe pas, nous devons revenir à la nouvelle hauteur et donc je ne sais pas ce que ça va être. Donc on va juste jouer avec ça. Donc pour l'instant, on est trois, genre, 58. Donc on va retourner 200. Si c'est Neil d'autre, revenons. Le braquage de ligne estimé indiquera que la vue Table a estimé la hauteur que nous avons déjà définie. Allons juste aller de l'avant et retourner cela et dit ainsi le chemin d'index Height Furrow
va définir une hauteur pour chaque ligne. D' accord ? Et c'est bon. C' est ce qu'on va faire, c'est la rendre plus petite s'il n'y a pas d'image et la rendre plus grande. S' il y a une image et que je ne sais pas à quoi ça va ressembler, on devra peut-être jouer quelques chiffres ici. Ici, il vient. Ok, donc c'est encore un peu trop gros. Je n'aime pas ça, mais on ne veut pas sortir de l'écran. On va faire un autre test ici. Cliquez ici sur cette vue de texte. Ok, si ça me laisse. Je cliquais juste sur la pile, vous entendez la description de la vue de la pile sur la pile. On y va. Et ce que je vais faire est juste pour tester, car je vais faire de l'arrière-plan une couleur vraiment vive, comme le rose juste pour tester afin que je puisse m'assurer de faire la vue de la table de la bonne hauteur. Je vais cliquer sur mes pieds VC à nouveau ici peut. Alors, avez-vous remarqué que c'est vraiment assez grand. C' est plus grand que ce que je voudrais. Je ne sais pas si ça va le couper ou pas. Euh, mais je vais juste jouer avec ça ici. Donc 200. Je pense que c'est trop grand. Faisons 2150. Parfois, quand il est blanc et blanc, c'est juste difficile de voir ce que vous faites. C' est donc un bon moyen de tester les choses. Ok, je crois que j'aime ça. Laissons-le comme ça, je vais retourner au storyboard principal ici. Je vais voir si tu vas me laisser le défaire, ce qui n'est pas le cas. Donc, faisons simplement défiler ici et revenons à la valeur par défaut. Laissons-le à nouveau. Ok, donc des écouteurs. Celui-ci n'a pas d'image. Donc c'est plus court. Ça n'a pas l'air super. C' était comme faire sa propre application Facebook. C' est cool ? Et faites défiler. J' ai cette pomme. Qui ? Ma première. Ça. Génial. On dirait que tout fonctionne. Bien que j'ai deux objets ont 20 J'aime, assurez-vous juste que c'est exact ici où ma,
euh,
partie de ma euh, base de feu il y a est-ce qu'on l'a perdue ? Montr
108. App: Showcase 12 - Make Post UI: Quoi de neuf, tout le monde ? On y repart. Donc Mark, plus faibles déficits dot com way vont continuer à construire notre application. Et aujourd'hui, nous allons nous concentrer sur la mise en place du Y ou sur la possibilité de poster être
capable de charger le sélecteur d'images et des choses comme ça. Et voici donc notre projet. Si vous ne l'avez pas déjà ouvert, allez aller à ouvrir le fichier récent et choisir l'application, et donc nous allons juste aller de l'avant et commencer. Et donc l'idée est, nous voulons faire un post et il a une zone de texte. Il a également une nouvelle image, mais sur et puis un bouton de poste pour réellement le poster. Et donc nous voulons le mettre juste ici au-dessus des cellules prototypes, en fait, au-dessus de la vue de table. Alors sortons et faisons-le maintenant,
alors remarquez comment votre vue de table ici est bien là-haut. Allons de l'avant et donnons temporairement défiler ici dans le côté droit, sur les attributs, Inspecteur et changer l'arrière-plan, quelque chose qui se distingue pour dire rose juste pour que je puisse voir combien d'espace nous avons ici. Maintenant, voici quelque chose d'intéressant remarque comment quand nous avons été la construction de l'application et l'exécution cet espace supplémentaire ici. Si je lance cette application ici, il montre cet espace supplémentaire et c'est vraiment ennuyeux. Et nous voulons nous en débarrasser. Et je ne sais pas si c'est un insecte. Ça a été un ex coat pour toujours. Ou si c'est une fonctionnalité, si c'est une fonctionnalité, c'est un peu stupide. Mais voyez ce blanc, cet espace supplémentaire donc nous n'avons pas besoin et la raison pour laquelle c'est parce qu'ici, dans le
côté droit , notre vue sur la table
est, est, euh c'est au plus haut niveau d'une critique ici. Ok, Hum et donc nous avons besoin de dio est, euh comme nous devons ajouter une autre vue et ah, et ensuite déplacer ce, euh, avantage. Et donc on va le faire tout de suite et tu le verras disparaître. Juste un truc bizarre. Donc, toute façon, euh, allons-y et allons voir votre souverain ici. D' accord ? L' inspecteur de taille Et ce que nous voulons faire est de se débarrasser de l'espace supérieur sur la vue de table, assurez-vous que la vue de table est sélectionnée et de se débarrasser de l'espace supérieur parce que nous devons le déplacer vers le bas . Donc je vais aller de l'avant et le faire glisser jusqu'au point où je me sens comme, Ah, la section post devrait être Ça a l'air bien. Remarquez que je ne l'ai pas déplacé. Je le redimensionnais de haut en bas, c'est tout. D' accord. Et ce qu'on va faire, c'est juste attraper un vieux spectateur. Vous vivez, vous, nous allons juste le plop juste là. Et, bien
sûr, jamais la taille. C' est la bonne taille ? Mais c'est bon. On va s'occuper de ça maintenant, et ça a l'air bien. Alors, cliquez dessus et faites-le glisser à la taille de la table de vous là-bas, ok ? Et nous voulons que cette vue ait une ombre et qu'elle soit vraiment belle. Heureusement, nous avons créé cette classe de vue matérielle que nous pouvons réutiliser. Maintenant, tu es comme, Oh, il est si intelligent. On peut réutiliser ça. Cela a du sens. Mm hmm. Alors changeons la classe ici sur l'inspecteur de l'identité. Changeons ça, Teoh vue matérielle, et ça va lui donner notre ombre et des choses comme ça. Maintenant, allons de l'avant et épinglons. Alors cliquez sur votre vue ici et, euh, faites des vêtements. Ma coupe de cheveux consul. Cette ordure hors du chemin. Cliquez sur le menu du stylet. On va l'épingler. Huit du haut laisseront des marges sur zéro de la gauche et zéro de la droite, et nous allons lui donner une hauteur fixe. Ok, ça a l'air super. Maintenant, résolvons ce problème de vue de table laid ici. Maintenant. Si j'écrase ça, on a une table de visualisation. Si je traîne cette vue matérielle derrière elle, tout
cet espace supplémentaire est parti à nouveau. Je ne sais pas. Pourquoi ça ? C' est juste un bug commun. Les développeurs américains qui ont dû faire face à jamais. Donc ça a l'air bien. Je vais me débarrasser de la rose sur la table de vous savez maintenant que je sais que c'est la taille. Mais d'abord, en fait, nous
allons l'épingler vers le haut. Donc, nous allons cliquer sur le bouton broche mois vue tableau est sélectionné, et passons à huit huit à partir du haut. Et on y va. Nous sommes signés un tour de ce rose méchant retour à la valeur par défaut, à l' air fabuleux. Ok, donc nous avons cette vue ici, mais nous devons y mettre le champ de texte, n'est-ce pas ? Donc, nous allons simplement taper dans le champ de texte. Ok, laisse faire glisser ça ici. D' accord. Et puis, euh, cette caméra, je ne veux pas en faire un mais parce que parfois quand vous jouez avec des boutons, vous êtes limité à l'apparence des graphismes, ils sont étirés, et je veux vraiment que ce soit une image. Vous voulez également vous apprendre à ajouter une entrée utilisateur sur une image ou un contrôle. Donc je ne sais pas si tu le sais ou non. Mais n'importe quel contrôle, n'importe quel type d'entre vous peut réellement reconnaître un robinet n'a pas besoin d'être un bouton pour que nous puissions gérer cela nous-mêmes. Très cool. Donc, c'est l'image du dragon. Vous êtes à côté, bien
sûr. Redimensionnons ici et redimensionnons ici et redimensionnons ici. Ça a l'air bien. Et c'est ce que la hauteur est sur. C' est, euh, donc 43 plus haut 37. Faisons en sorte qu'il s'enclenche sur les bordures ici. Donc 37 Slater, Faisons le avec 37 dessus. Non, je pense que c'est ce qu'on va vouloir. Et puis allons-y. Et cette fois, nous allons ajouter un bouton. Ok, mets-le ici. Changeons cela pour les messages SE propres plafonds. Il a été changé du système à personnalisé. Allons à Noto Sands. Changez-le. Deux bols commencent à avoir l'air vraiment sympa. Euh, 15. Essayons 14 juste pour non OK, allez à l'arrière-plan. Et voici un beau bleu Donc le bleu est 00 b quatre e un Si vous voulez que le bleu doit grandir jusqu'
au sommet et changer le texte de couleur ou blanc Et il y a un bouton. Ça a l'air bien. Donc maintenant, ce que je veux faire est que je veux mettre tous les trois d'entre eux dans une vue de pile. OK, donc il suffit de cliquer sur les trois, maintenir la touche Commander, sélectionner les trois, puis de cliquer sur la vue de la pile. Ils sont maintenant dans une vue de pile horizontale, qui est exactement ce que nous voulons. Et allons de l'avant et épinglons cette pile. Vous savez, nous allons épingler les marges contraintes sur. Je me demande pourquoi il l'a éteint. D' accord. Et on va dire quatre. Attendez. Impressionnons l'évasion pour voir si je peux le redimensionner sur l'endroit où j'en ai besoin. On y va. Ok, essayons encore ça, Pennant. Je vais dire ce qu'on veut Dio pour Disons quatre depuis le haut. Ok, Martin est en train de dire zéro. Combien d'espace nous avons besoin. Avons-nous vraiment besoin de ça ? Laissons-le à zéro. On verra à quoi ça ressemble. Donc disons 00 zéro et zéro. Donc 40 est là. Allons-y et faisons-le. Et comme vous pouvez le voir, ça a fait exactement ce que nous voulions. Um, quand à travers le couloir, ce qui est très bien. Et donc sur son champ de texte ici, je ne changerais pas quelques choses autour. abord, nous
allons ,
euh, ,
euh,nous allons nous débarrasser du champ de texte par défaut et en faire un champ sans bordure. Et puis nous allons cliquer sur l'inspecteur d'identité et utiliser notre classe de champ de texte génial pour le faire avoir l'ombre et tout. Et sur ce champ de texte, nous allons lui donner une couleur sur l'arrière-plan ici, couper votre après votre inspecteur et descendre ici en arrière-plan. Et passons à un beau gris clair comme ça et l'espace réservé va dire, Parlez de votre application. Vous savez comme Facebook dit, vous savez, que voulez-vous écrire ou nous dire de vos pensées ? Ne parlez pas de votre application et, euh, changeons la police personnalisée Passons à Noto Sands, bien
sûr, et les habitués. Très bien. OK, donc ça a l'air sympa. Bien que ça dise que ce ne sera pas là où on s'attend à ce qu'il soit déchargé. Vous pouviez voir les petits tirets orange là-bas. Cela signifie qu'il sera vraiment petit dans l'apurate quand l'APP fonctionne et nous ne voulons pas que cela . Et je n'aime pas la façon dont les images comme Super Stretch comme ça ici, non plus. Alors cliquez sur votre image et allons de l'avant et faisons une correction avec et Hauteur et nous allons dire à intérieur de la hauteur va être 37 par 37. On verra à quoi ça ressemble. Bon, Nice Little Square et le Post que je voulais être. C' est OK si elle reste cette hauteur, mais je voulais avoir ah, ailleurs, avec Allons-y et faire un fixe avec ici. Allons de l'avant et disons que ce n'est qu'un 50. On va cliquer sur votre pile, ça va ? Et ajoutons un peu d'espacement. Alors ajoutons l'espacement de 10 beau look pour moi. Euh, maintenant, sur cette image, vous même si nous voulons mettre l'icône de l'appareil photo, hum, pour indiquer que Hey, c'est là que vous chargez votre photo quand nous n'avons pas encore ça dans le projet. Alors cliquez sur vos actifs ici et allons trouver l'icône de la caméra. se trouve que je l'ai ici. Vous pouvez saisir à partir du dossier d'actifs vous-même ou utiliser n'importe quelle icône que Joe, Je vous encourage à obtenir vos propres icônes. Tu dois prendre l'habitude de faire ça. Retournez à votre storyboard principal et sur votre image, saigner et sélectionnez l'appareil photo et voyez ce qui ressemble à un aspect Fit. Ça a l'air plutôt bien, en fait. Donc je suis vraiment curieux de voir à quoi ça va ressembler. Évidemment, nous ne pouvons pas voir l'ombre et les choses en ce moment dans l'APP semble un peu laid, mais nous allons donc et commande sont de l'exécuter et nous allons voir si tout est comme nous le ferions. On s'attendrait à ce qu'il le fasse. Ce n'est peut-être pas mal du tout. Je vais le dire. Je pense que le bouton a besoin d'un style, et je ne pense pas que nous définissions une classe personnalisée là-dessus. Alors faisons ça maintenant. Cliquez sur votre bouton ici. Allons voir l'inspecteur d'identité. Modifions le bouton de matériau. C' est pas cool d'avoir ces cours ? On peut réutiliser. Très puissant. On n'a pas à aller sur la droite. Code personnalisé. Chaque fois que nous voulons styliser quelque chose. Il est déjà là. Et personne d'autre ne vous dira ce genre de choses. Donc tu vas être bien en avance sur le jeu ici. Donc, regarde, ça a l'air plutôt bien. N' est-ce pas cool ? Juste un peu de style va un long chemin. Parlez donc de votre application. J' ai la caméra et j'ai eu le poste, mais je pense que ça a l'air génial. Nous n'avons pas l'espace moche au-dessus de notre vue de table maintenant. Ça a l'air bien. Vraiment, vraiment sympa. Ok, donc ce qu'on veut faire, c' est le prochain. Allons de l'avant et faisons fonctionner notre bouton de l'appareil photo où nous pouvons réellement choisir une photo de la photothèque. Hum, il a juste plus de choses en place ici. Donc nous l'avons fait avant quelques fois. Allons à notre VC de flux ici et souvenez-vous de ce dont vous avez besoin pour cela. Mec, si tu disais, euh, le sélecteur d'images de la caméra, euh, pas le sélecteur d'images, alors tu avais raison, parce que c'est exactement ce dont nous avons besoin. Et pour utiliser le sélecteur d'image, nous devons implémenter que vous sélecteur d'image, contrôleur, délégué ! Et nous devons également implémenter le délégué du contrôleur de navigation. Alors allons-y et faisons ça maintenant vous je sélecteur d'image,
contrôleur, contrôleur, délégué et vous je l'image vous connaissez sur le délégué du contrôleur de navigation Ok, parce que vous savez que vous devez être capable de le présenter. Et ceux-ci ont les méthodes de délégué à appeler. Et bien sûr, nous devons stocker ça quelque part ici. Alors allons-y et faisons-le maintenant. Le, euh le sélecteur d'image je veux dire jusqu'à présent Sélecteur d'image de type vous je sélecteur d'image. Allez, ne me le dis pas maintenant. Sélecteur d'images. Ok, ça a l'air bien. Bien sûr, il attend que les fonctions de délégué soient implémentées et c'est juste vraiment une qui aurait besoin. Et alors allons-y et assurons que non déclaré Ah, non déclaré ! Vous sélecteur d'images ici je dois que je l'ai mal orthographié. Oui, je l'ai fait. C' est pourquoi le contrôleur de sélecteur d'images. Tu es comme si tu avais déjà fait ces trois tortues deux fois. Pourquoi tu merdes ? Eh bien, hé, c'est de la vraie programmation K, ce n'est pas 19 à 1. D' accord, ok, alors allons de l'avant et implémentons notre fonction déléguée appelée sélecteur d'images. Le contrôleur a fini de choisir l'image. Euh, juste là. Maintenant, je veux dire que cette fonction ici est en fait un ID obsolète. Ce que cela signifie, c'est qu'il ne peut plus être activement maintenu, et ils préfèrent utiliser un autre, qui se trouve juste être ce contrôleur de sélecteur d'image a fini de choisir des médias avec informations, et c'est le un qu'ils veulent que vous appeliez parce que cela vous permet de choisir des vidéos et des images tandis que les systèmes seulement des images. Mais je ne veux pas d'accord, c'est d'avoir à savoir lequel est ce que nous savons et ce que nous savons. Ça va être des images dans le futur. Si vous voulez ajouter des vidéos à ce projet, ce serait génial. Un grand à utiliser ici, nous allons utiliser a fini l'image de cueillette comme implémenté ici. Et donc encore une fois nous l'avons fait avant. C' est après que tu aies fini,
tu asfini de choisir l'image. C' est après que tu aies fini,
tu as Donc ce que nous voulons dire ici, c'est, euh, sélecteur
d'image qui a rejeté le contrôleur de vue Animé ? Oui, l'achèvement dont nous ne nous soucions pas. Et puis, euh, montons et assurons notre sélecteur d'images. Stan Shih n'est pas né ? Donc, ici, allons de l'avant et initialisons-le. À notre avis, a chargé afin que nous puissions le faire maintenant, dira, euh, sélecteur d'
image est égal à vous sélecteur d'image, contrôleur Et ah, sélecteur d'
image dot délégué est égal à moi. Ok, comme on l'a fait avant,
Ok, ça air bien ici. Et puis que se passe-t-il d'autre ? Vous avez donc besoin d'une réaction lorsque vous cliquez sur l'image elle-même. Euh, et, euh, allons de l'avant et parlons de la façon dont on peut ajouter une action à une image. Retourne à ton principal. C' est l'histoire. S' ennuyer. Et nous avons notre caméra ici. Droit ? Alors allez sur le côté droit ici en bas et tapez,
euh, euh, tapotez. Et il y a un geste de claquage. Reconnaître ? C' est une façon de le faire à partir d'un storyboard. Je vais en fait vous montrer comment le faire plus tard dans le code aussi, aussi. Donc c'est vraiment cool. Tu vas apprendre les deux façons. C' est donc très courant d'ajouter des gestes de touche à différents contrôles qui ne sont pas des boutons. Prends juste ce clic et glisse, glisse-le sur ton image, ok ? Et, euh, James, laisse-moi un très bon. Hum, c'est vraiment désolé. C' est en train d'embêter ici. Essayons encore ça. Cliquez et faites-le glisser sur votre appareil photo. Ok, donc on vient d'ajouter un geste sur la caméra. Et si vous regardez maintenant, il a également ajouté ici toucher geste, Reconnaître ? il Etill'a aussi ajouté ici. Cela vous permet d'aimer, si vous vouliez faire un Segway, vous pourriez le faire à partir de là. Hum, mais nous voulons l'utiliser comme une action i b. Et je veux dire une chose que vous pouvez Onley utiliser le geste du robinet, reconnaître les er dans les storyboards. Ok, c'est tout ça. Nous sommes juste ici avec le clic et le glisser-déposer. Vous ne pouvez l'utiliser qu'ici dans un storyboard, comme nous l'avons fait. Si ce n'est pas une vue de table, donc nous ne serons pas en mesure de le faire sur le bouton similaire, ce qui fera plus tard. Nous devons le faire dans le code car cela ne vous permet pas de le faire sur des choses qui
ne se répètent que sur des choses qui ne se répètent pas, comme ceci ici. Mais cette cellule se répète, juste pour que vous sachiez. N' essayez pas cela sur une vente ici en magasin, mais nous devons le faire dans le code à la place. Alors allez-y et ouvrez votre éditeur assistant. D' accord ? Et assurons que nous avons choisi la bonne chose. On ne veut pas de Prevue. On veut une alimentation automatique, V c. et, euh, on doit faire une action I B. Et aussi probablement quelques points de vente ici est bien, aussi. Allons-y et faisons-le maintenant. Alors finissons le geste du robinet. Alors faites défiler ici et, euh, voyez ce geste de tabulation. Craignez dans le contrôle. Faites glisser le sur votre code et au lieu d'une prise, changez en inaction et le type sera vous. J' ai tapé geste reconnu. Change ça. Et appelons ça, hum Ah, sélectionnez l'image. Donc ça marche. Il y a encore une chose que nous devons faire. C' est très important. Écoutez. Cliquez sur votre appareil photo. Votre image ici par défaut, les choses qui sont des boutons n'ont pas l'interaction utilisateur activée, nous devons
donc l'activer. Vous avez donc choisi votre appareil photo directement sur les yeux. Attributs, Inspecteur, Ici, sur le côté droit, il y a une petite boîte cliquable ici appelée interaction utilisateur activée. Allez-y et sélectionnez cela. Ok, Ceci est maintenant capable de recevoir des robinets, ce qui est très cool. Ok, donc c'était assez facile, non ? Et c'est là, juste là. Sélectionnez l'image. Et cela s'appellera chaque fois que quelqu'un tape cette image, ce que nous voulons. Maintenant, allons de l'avant et faire sortir de notre champ de texte. Alors contrôlez la traînée et mettons-le juste ici. Je vais appeler ça, comment ça s'appelle ça ? On appellera ce champ de poste. D' accord. Ecoute, c'était assez intelligent pour mettre notre classe de champ de texte sur leur Ah, quoi d'autre ? Je suppose qu'un seul je suis sortie. Nous avons besoin Eh bien, en fait, la caméra devrait en fait aussi être un i b al il. Parce que lorsque nous sélectionnons l'image, nous voulons mettre l'image qu'ils montrent que c'est l'image que nous avons sélectionnée. Alors faisons ça aussi. Donc nous l'avons fait en action hors de lui, mais hors du geste du robinet, Mais sur la caméra elle-même, allons de l'avant et en faire un Al. Et on va appeler ça, hum ah. Quoi ? Nous avons été chassés goélet. Sélectionnez l'image, sélectionnez l'image. Ah aide à cette image de sélecteur d'image. Et je dis l'image pour abrégé pour la vue de l'image. Ils étaient pour qu'on puisse réellement changer le bouton dessus. Euh, c'est un peu déroutant. Peu importe. Ok, donc nous avons nos points de vente connectés. Nous avons besoin en action ici pour le Post ainsi de faire réellement le post. Alors allons de l'avant et cliquez sur votre post ici, Contrôle. Glissez-le vers le bas et nous allons nous changer de
L.A. L.A. à Action a appelé faire post. Ok, donc c'est leur C'est leur bon. air bien. Allons-y et fermons. L' assistant rédacteur en chef. Je vais ouvrir le côté droit, aller dans mon contrôleur de vue de flux, et ce que nous voulons faire est de gérer l'image sélectionnée à partir, euh à partir du bouton pressé. Donc, sélectionnez l'image ici. Et c'est là que nous dirons présent contrôleur de vue sélecteur d'image. Animé. La véritable fin est Neil. Donc, chaque fois que vous sélectionnez une image va juste présenter le contrôleur de vue. Et c'est cool. Chaque fois que vous sélectionnez une image, nous avons rejeté le contrôleur de vue. Et puis, ce que nous faisons, c'est que nous disons, comment était-ce appelé sur notre image de sélecteur d'image ? C' était un sélecteur d'image. Image point image est égale image. Ce qui se passait Eh bien, c'est notre point de vente, notre vue d'image. Il a la propriété image ou saisir l'image qui a été sélectionnée ici. Je me connecte à cette image, c'est tout. Um d'accord,
ça a l'air bien, je pense. Et Ah, ouais, quoi d'autre ? N' importe quoi. Donnons-lui un magasin c'est bon et, euh, fais-le. Je clique juste sur le bouton de lecture cette fois. La culpabilité. On y va. On y va. Nous y sommes allés et nous nous sommes connectés. OK, si je clique sur ce hey sont tapés Gesture travaillé Cliquez sur les moments Cliquez sur cette image de l'application ici Il lui a assigné comme nous l'attendons. Ok, donc ça a l'air super. Donc nous avons créé un super vous. Pourquoi ici ? Regarde les ombres. Comme vous pouvez le dire, nous avons implémenté le contrôleur de sélecteur d'images ainsi que la méthode de délégué. Donc, il définit l'image Quand il est fait d'être choisi, nous pouvons cliquer dessus à nouveau. Bien sûr, c'est comme n'importe quelle autre image. Tu sais, je ne l'ai pas fait, mais ça se passera juste. Bouton de poste stylé. Les téléspectateurs ont stylé notre champ de texte de style avec un travail minimal pas très long du tout, et il a l'air vraiment bien dans son manteau. Ça a l'air bien. Alors allons de l'avant et appelons cette vidéo faite dans la prochaine vidéo passionnante, nous allons obtenir nos images postées. OK, nous venons d'être testés dans le passé, mais nous voulons faire ensuite est en fait obtenir nos images postées sur ah serveur quelque part. Et on ne va pas stocker les images sur Fire Base parce que tu vas manquer d'espace . Véritable image rapide. En fait, on va en parler la prochaine fois. Donc, sur le prochain épisode passionnant de la construction de votre propre application de style Facebook Mark Price ici, Deb savons dot com voir assumer.
109. App: Showcase Partie 13 - Charger des images sur serveur: Hé, quoi de neuf, tout le monde ? Mark Pricier profondeur pentes point com. Et au fait, si vous vous demandez où Dieu était cette cible comme 9 99 super cool. Et si vous remarquez que ce n'est pas un de ces claquettes, vous savez que c'est un ajustement flexible. Tu te rappelles à quel point dans les ajustements de jour étaient toute la rage ? Et maintenant, vous ne pouvez pas aller où que l'on veut porter comme des chemises sans manches et des chapeaux
snapback. Qu' arrive-t-il à la société de toute façon ? Des trucs vraiment cool, Batman. Bien sûr, pas The Apple Building ? Non, en fait, l'application arrive vraiment bien. Nous avons notre champ de texte ici sont le sélecteur d'images. Tout fonctionne très bien sur la surface, mais ce n'est pas réellement enregistrer des données et n'importe où. Et alors pensez à ça. Nous devons pouvoir stocker des images comme un réseau social, non ? Et comment on va le faire ? Eh bien, peut-être que vous pensez, eh bien, peut-être un partenaire de la base de feu, et vous pouvez stocker des photos sur la base de feu. Cependant, cela
étant dit, firebase ne prend pas officiellement en charge le téléchargement de photos. Pourtant, ils l'ont en fait sur leur feuille de route à construire. Hum, mais fondamentalement, si vous stockez des photos de la base de feu, que vous pouvez dio. , D' abord,
ça ne peut pas faire plus de 10 mégaoctets. Deuxièmement, cependant, vous ne voulez pas faire cela parce que vous obtenez seulement autant de gigaoctets de données sur votre
comptabilité de base incendie . Vous ne voulez pas les stocker avec des images. Donc, quelques bonnes options pour vous sont les trois d'Amazon ou un fournisseur gratuit en ligne comme nous
allons utiliser aujourd'hui. On va utiliser Image Shack. Donc, si vous allez au code dot google dot com slash p image image shack A p I ou vous pourriez juste chercher Google pour Image Shack A p I vous allez voir cette page ici. Et, euh, les gars et les filles
vraiment cool utilisent les yeux AP et les services gratuits chaque fois que vous le pouvez. Si certaines choses que vous devez savoir sont si vous voulez utiliser Image Shack, vous devez informer vos utilisateurs que vous utilisez la cabane d'images de service gratuit. Aussi, si tu dois avoir une demande payante, tu ne peux pas. C' est contre les règles des cabanes d'image d'utiliser leur a p. Je déforme les images. Autre que cela, vous pourriez faire des téléchargements illimités et des choses comme ça. Si vous voulez stocker vos photos ou Excusez-moi. Si vous voulez avoir une application payante, vous allez vouloir stocker vos photos, probablement sur Amazon s trois. Et leur sartorial est pour ça. Mais aujourd'hui, c'est Image Shack. C' est gratuit et vous allez apprendre quelques principes, tels que la façon de faire une demande http de formulaire en plusieurs parties et comment télécharger des images et comment récupérer un euro. Nous allons donc stocker l'image que vous êtes. Une fois qu'on l'aura récupéré de Image Shack. Mais on y va Teoh, on va stocker cette base de pompiers. On pourra le remonter plus tard. Voilà le truc. Ce que vous avez besoin de dio est juste ici pour utiliser le A P. Je vous prie de demander une clé. Alors allez-y et ouvrez cette demande Une clé et vous devez vous inscrire si vous n'avez pas de compte ou vous connecter. Ok, et puis je suis déjà connecté, non ? Donc je vais juste me connecter avec Facebook et ça détruit mon image. Si c'est le cas, une fois que vous êtes connecté, cela vous mènera à un écran comme celui-ci. Et au fait, c'est vraiment cool. Il stocke toutes vos images pour vous. Comme vous pouvez le voir, j'ai plein d'images de test ici. Ah, et donc une fois que vous êtes connecté à faire ce que nous venons de faire ici, alors vous pouvez aller de l'avant et demander une clé comme ça. Et voici la forme à laquelle il vous faut. Tu viens de tomber tes données. Cela nécessitera un site Web. Si vous n'avez pas de site Web. C' est bon. Mets quelque chose là-dedans. Il ne m'a pas permis de soumettre le formulaire sans mettre un site Web. Donc tu vas devoir mettre quelque chose là-dedans. Mais quand vous sentirez cette forme ici, ça vous donnera une clé instantanée. Je vais l'emmener sur une autre page et donner ta clé A P pour sauver ça et stocker cette cause que tu vas avoir besoin de ça juste pour télécharger tes photos. OK, alors remplissez ce formulaire, puis obtenez votre clé a p I sur la page vers laquelle il vous emmène afin que nous puissions l'utiliser dans l' application. Donc maintenant je retourne à cette autre page ici, et allons de l'avant et cliquez sur leur cabane d'image. Ap I documentation Juste ici. Beaucoup, beaucoup d'yeux AP ont de la documentation, et il est important qu'ils le fassent. Ainsi, les utilisateurs peuvent ce qu'on appelle consommé le A P I. Et ce que nous allons faire est de télécharger une image de base. D' accord ? Ça vous donne que vous êtes malade. Tu dois
aussi les poster . Lorsque vous le publiez, vous devez définir certains paramètres dans votre post comme ça. Tu es une clé P I, que je viens de te dire de sauver. Um, le fichier lui-même qui doit être téléchargé. Le format doit être Jason sur. Ceux-ci sont facultatifs. Juste ici. Et quand vous aurez téléchargé,
il vousrenverra Jason,avec
qui nous avons travaillé avant de renvoyer Jason comme ça où vous pouvez réellement obtenir votre
,
euh votre image, Et quand vous aurez téléchargé,
il vous renverra Jason, avec
qui nous avons travaillé avant de renvoyer Jason comme ça où vous pouvez réellement obtenir votre , euh votre image, vous ou bien vous pouvez l'utiliser dans votre application et l'enregistrer. Donc, par
exemple, où serait-il ? Liens juste ici. Celui qu'on utilisera son lien d'image plus tard. Et, euh, donc ça nous donne le lien direct de l'image. Et puis c'est ce que nous stockons dans la base de pompiers. Et puis il tire les photos de la base de feu. Donc, tout ce qu'une base de feu fonctionnera exactement de la même manière. Heu, sauf qu'on donne tout ce que vous avez à partir de notre propre stockage de photos au lieu de simplement poster et de celles
au hasard sur Internet. Donc je sais que c'est un peu long enroulé ici avant que nous commencions le revêtement, mais il est important que vous compreniez comment travailler avec les yeux AP. Il est important de comprendre que vous devez aller à leur documentation et vraiment, j'aurais pu juste vous donner les étapes X y z Mais je veux que vous lisiez ce truc, ces choses par vous-même. Donc tu sais où trouver de l'aide. Il vous indique comment l'utiliser, vous savez, vous
indique le champ. Vous devez avoir ces signifient qu'ils sont nécessaires. Ça vous indique le point final,
on y va. On va examiner ça ensemble et voici ce que tu récupères, qui est vraiment important. Nous devons avoir le lien de l'image. Sinon, Firebase ne saura pas quelle photo afficher sur quelle publication. Donc j'espère avoir passé votre clé a p i maintenant, allons-y et revenons au code. Et donc l'idée est ce que lorsque vous cliquez sur le Post, mais et nous devrions commencer à télécharger l'image maintenant, dans notre cas, nous ne allons pas faire toutes sortes de cloches et de sifflets cool où vous avez des filateurs de chargement et peut il posté disparaît instantanément, puis fait l'image. Après qu'on ne fera rien de tout ça. On va juste,
euh, euh, laisser charger ce qui est fait en téléchargeant. Ensuite, nous appellerons le post réussi. Nous avons donc une fonction appelée Make Post. Et donc ce que nous voulons faire, c'est que nous voulons nous assurer qu'un post a au moins, euh, la description. Nous ne laisserons pas un utilisateur faire un message à moins qu'il n'y ait quelques mots là-dedans. Ok, donc nous devons rendre compte de ça. Allons-y et commençons ici. Je vais faire défiler ici, faire un peu plus grand pour nous. Ici, agrandissez le texte afin que vous puissiez le lire sur ces iPhones. Je ne sais pas comment vous pourriez faire ça à partir d'un iPhone. Je l'avais sur un autre écran juste à côté de moi pour voir ce qui se passe. Mais si ça marche pour toi, c'est génial. Um OK, alors faites post et ce que nous voulons faire est de dire, si laisser t x t égal était un champ de poste ce texte où le texte n'est pas égal à cela. Donc, ce que nous disons est, hey, si le texte n'est pas à genoux et si ce n'est pas vide le magasin dans cette variable ici, juste un standard si vous êtes habitué à voir et fondamentalement autrement, euh, sinon, ne faites rien. Ne laissez pas l'utilisateur continuer. Alors maintenant, parlons de l'image. Nous devons vérifier pour ça. C' est vrai ? Donc, si laisser l'image, Je suis g égal post, comment appelons-nous cette image image sélectionnée dans laquelle c'est un mauvais nom. Vous voudrez peut-être changer ça. Euh, d'accord. Donc, si l'image regardait image, ce que nous disons ici maintenant est la haine. Y a-t-il une image là-dedans ? D' accord. Et, euh, eh bien, il va probablement y avoir une image là-dedans. On ne va pas gérer ça maintenant, mais tu sais, ce que tu voudras peut-être faire, c'est t'assurer que l'image n'est pas la caméra. Um, sinon, il peut juste télécharger l'icône de la caméra, mais on ne va pas s'inquiéter pour ça maintenant. C' est juste des cloches et des sifflets ici. Vous pouvez prendre soin de vous-même, ce que vous devriez faire et expérimenter. Donc il y a l'image euh, alors quoi ? On veut dio si tu te souviens, non, on veut le poster à la fille, non ? Nous avons besoin de votre aîné posé et celui qu'ils nous ont donné est juste ici. Allons-y et copions ça. Venez voir pour le copier. Et, euh, on va dire que c'est Laissez votre corde l égale. Il y a l'URL, d'accord ? Et puis nous allons créer un n S u R l qui années vous devriez être habitué à faire aussi bien pour Donc vous êtes l égal N S u r l. Et nous allons juste faire défiler ici jusqu'à ce que nous arrivions à celui qui est une corde et nous
allons mettre dans votre corde l. Et ça a l'air bien. Je vais mettre un point d'exclamation à la fin parce que sinon ce sera facultatif . Et je sais que ça va marcher pour un fait. Donc, um, nous allons avoir des problèmes ici, alors ok,
maintenant, maintenant, quand vous téléchargez des photos de l'iPhone il y a vraiment grand, comme 3.5 Meg, nous ne voulons pas télécharger 3.5 make fichiers. C' est juste beaucoup. Donc, ce que je veux faire est vraiment de vouloir convertir l'image que nous avons téléchargée dans un J. Peg et je veux compresser le diable pour la rendre vraiment petite. Et vous ne voudrez peut-être pas le faire. Vous pouvez jouer avec. Mais je voulais être plus petit, donc ça ne prend pas longtemps. Alors allons-y et faisons-le. Maintenant, nous allons le convertir en données d'image ah J Peg. Et en plus, les données doivent l'être. Vous ne pouvez pas réellement télécharger une photo elle-même via une requête http. Rappelez-vous, les
bits et les octets passent par le protocole http. Donc, vous devez le changer en données N. Il suffit de cracher un tas de chiffres, et c'est ce qui pourrait être transféré. Donc, les données d'image sont égales à vous. J' image représentation J peg. On va passer la qualité de l'image et de la compression. Je vais dire 0.2 maintenant, comment fonctionne la qualité de compression est zéro. Cela signifie entièrement comprimé, et un signifie pas comprimé du tout. Donc on est assez proche de 0,2, ok ? Et, euh, mais on veut qu'il soit vraiment comprimé. Et aussi cela retournera un optionnel et donc il pourrait échouer. Quelqu' un a mis un point d'exclamation là juste pour le dénouer parce que je sais que ça va
réussir . Vous pouvez ajouter plus de traitement de l'air par vous-même si vous rencontrez des problèmes. D' accord. Maintenant, rappelez-vous, nous avons Ah, nous avons une clé, juste que nous avons reçu de Image Shack. Alors allons de l'avant et mettons la clé. Et, euh, il y a un truc très important que tu dois comprendre, c'est qu'on va faire une demande spéciale , OK ? En utilisant le feu d'Alamo. C' est une demande de formulaire de partie en plusieurs parties. Et avant de parler de la clé, je veux juste te montrer ce que je veux dire. Donc, euh, sur une requête http typique, vous pouvez passer un corps qui a des chaînes et des choses comme ça et ça. Mais quand vous avez besoin de télécharger un fichier comme le fichier lui-même, où est-il ? Juste ici. Voir les téléchargements de ce fichier. Nous avons un fichier que je dois télécharger. On a une clé spéciale. On a un format. Nous avons quelques types de champs différents qui sont de formats différents. Ils ne sont pas tous le même format, et c'est parce que ce fichier image est correct, nous ne pouvons pas simplement dire que c'est tout Jason ou tout cela est tout un type de contenu d'autres images ici, donc cela crée un peu de problème pour nous. Donc, au lieu de simplement faire une demande de post de point de feu Alamo régulière et la publication d'un corps, nous devons faire une demande de données de formulaire en plusieurs parties, et cela nécessite que nous publions des données Alamo Fire nécessite des données de s. Nous devons donc convertir tous nos champs en données. Donc nous avons déjà fait ça avec l'image. Nous l'avons converti en données. On doit encore faire la même chose avec la clé. En revenant en arrière. La requête http ici nécessite la touche A P I pour votre application. OK, donc on doit le mettre maintenant. Disons donc que les données clés soient égales. Alors prends ta clé. Je vais prendre le mien ici, OK ? Ne partagez pas ça avec personne. Je suis sûr que la mienne avec toi parce que c'est juste une application de test, et, euh et je veux que tu vois ce qu'on fait. Donc nous avons une clé maintenant, maintenant. C' est une ficelle, non ? Nous devons donc appeler une fonction sur notre chaîne pour la convertir en données. Donc tapez et point des données en utilisant l'encodage, nous allons dire et s utf huit enduit enfilage. C' est juste un format d'encodage standard pour les chaînes. Ok, donc tout ce que nous faisons est de convertir la chaîne en données parce que notre requête va l' exiger. Vous ne le comprenez peut-être pas, mais c'est bon. Ce truc prend du temps. C' est des choses vraiment complexes, et cela prend beaucoup de temps en pratique. Donc, prenez ma parole pour cela dans ce formulaire multi-parties, demandez des données que nous allons demander dio que nous allons le faire nécessite que les choses soient dans des
formats de données . Donc, euh, c'est la clé dont nous avions besoin pour la même chose pour Souvenir, ça nécessite un autre champ ici, euh, Jason. C' est donc le nom réel qu'il exige. Vous devez dire à leur serveur que vous publiez, Jason. Donc, nous devons réellement faire le nom de la clé lui-même. Sotchi. Jason est égal à Jason, comme on l'a vu sur la page A. Je fais juste ce qu'ils me disent de faire. N s utf Donc nous sommes juste Nous convertissons le mot Jason en données
aussi, aussi, parce que c'est ce qu'il exige de nous. Donc on a l'image. Nous avons les clés et les choses dont nous avons besoin, et c'est bon si vous ne le comprenez pas complètement en ce moment. Et, euh, Allah bouge. Et je ne peux pas garantir que tu comprendras même à la fin de cette vidéo, regarde-la encore. Tu vas devoir t'entraîner beaucoup. Ça prend juste du temps. Ok, hum, Alamo Fires ne surgit pas, donc je pense que je devrais peut-être l'importer. Je le fais. Alors, importez Alamo feu. Nous devrions déjà avoir cela dans l'application sur un défilement vers le bas. OK, donc,
Allah, Alamo, Alamo, téléchargement de points de feu. Et ce que nous voulons faire, c'est ah, données de formulaire en
plusieurs parties, ce qui est juste ici. Ok, donc ce qu'on veut dio, c'est une demande de poste de dot post, ok ? Et puis il veut l'euro, ce que nous avons. C' est, euh, juste là, ok ? Et puis il veut un tas de trucs, et alors allons-y et allons-y et faisons-le ici. Je vais juste appuyer sur Entrée pour se débarrasser de ces blocs d'achèvement pour nous ici. Et je peux changer ça autour de, euh, un peu ici pour ne pas utiliser la configuration par défaut qu'ils ont pour nous ici. Laisse-moi regarder cette année. Donc, des données de formulaire en plusieurs parties. Ça a l'air bien. Et au lieu d'avoir les parenthèses là-dedans, je vais juste enlever ça qu'on pourrait faire de toute façon. C' est plus facile pour nous. Donc c'est la variable qu'il va nous donner. D' accord ? Et ça a l'air bien. Et, euh, mais ce que je veux faire, c'est à une parenthèse de clôture ici. D' accord ? Et, euh, et enlevez-le, euh, voyons. Ici. Comment voulons-nous faire ça ? Euh, donc on l'a eu là, OK. Et coder ce que nous voulons est en fait encoder les résultats. Je vais vraiment enlever ça ici. Allons-y et disons en manteau. Et au fait, il
suffit de jouer. Si vous avez des problèmes avec les fermetures, vous devez jouer avec elle jusqu'à ce que vous obteniez bien. Comme enlever les parenthèses, ajouter des accolades. Va voir le code source de celui qui l'a écrit. Vous pouvez donc savoir ce que vous devez mettre. Leurs fermetures peuvent être compliquées. Et au fait,
je, je, euh je vais en fait enlever cette virgule et y mettre une autre accolade bouclée. Ok, donc fondamentalement, cela va retourner quelque chose que nous pouvons alors être une autre fermeture à nouveau. Désolé. Si c'est déroutant, ça prend juste du temps pour s'entraîner. Ne vous attardez pas trop à ce sujet si vous ne comprenez pas encore les fermetures. Parfaitement. , Ok, donc en gros, ce qui va se passer, c'est le téléchargement, non ? Et puis, ah, à l'intérieur de cette fermeture, nous devons réellement ajouter les champs que la demande de poste va nécessiter. Et puis ça va faire cette demande, OK ? Et les résultats vont arriver ici. Alors allons de l'avant et d'accord, le code dont nous avons besoin. Donc on va dire qu'on va appeler cette variable ici, et on va dire, Copions-la. En fait, rendre les choses plus faciles, parce que c'est long, multi-parties données étrangères vers le corps, un stylo, partie
du corps ,
et ,
ah ,
encore, certaines fois, cette auto-complete ne vous donne pas ce dont vous avez besoin. Donc, vous devez aller regarder le code source. Vous savez, vous devez faire quelque chose comme ça comme vous devez commander clic, télécharger et aller regarder ce qu'il exige de vous. Ok, donc c'est comme, OK, ça nécessite, tu sais, fermeture. Ça ressemble à ça. Quoi qu'il en soit, tu dois aller voir le code. Parfois, cela peut être une douleur, mais en fait, regarder le code vous aidera à apprendre à vous-même, ce qui est très, très important. Forme multi-parties, données upend corps,
une tente, un
stylo, stylo, partie
du corps. Et le 1er, c'est les données que tu vas passer. Ça va être des données d'image. Ok, le 2e, c'est le nom, OK. Et, euh, il va télécharger des fichiers. Peut-être que tu te demandes d'où j'ai eu ça ? Eh bien, donc la première clé que nous faisons est celle-ci juste ici. D' accord. Et remarquez comment le mot qu'ils cherchent pour son téléchargement de fichier, puis c'est le
fichier image lui-même. C' est la valeur. C' est la clé. C' est la valeur. Donc, le nom de la clé est le téléchargement de fichier est ce qu'ils veulent que nous y mettions. Donc, il y a le fichier de nom que les juges de téléchargement me demandent, et puis il a un nom de fichier. C' est le nom du fichier que vous allez poster sur Internet. Et je vais juste appeler image tout de suite. La cabane Image va renommer les choses pour nous seul, donc il suffit de mettre un nom par défaut que leurs images trouvent et le type mime. Si tu penses au gars avec des gants blancs et au maquillage laid qui,
genre, genre, fait des choses bizarres, pas ce
que c'est. C' est le type de données que nous transférons, et le nôtre est l'image slash j peg. Ok, donc ce que nous avons fait est ah, ces données de formulaire en plusieurs parties disaient, La première clé que nous voulons ajouter est l'image comme elle nous dit de faire ici le nom de son téléchargement de fichier, et nous passer dans l'image. Donc je suis en train de regarder le a p I Voici le nom. Ok, voilà la clé. Il y a la valeur et il y a quelques autres choses, comme le nom du fichier et le type mime. Ok, donc c'est le 1er 1. La prochaine que nous devons faire est la clé, ce
qui veut dire que ce gars ici, nous devons télécharger la clé. Donc Image Shack sait à quel compte appartient. Donc, les données de formulaire en plusieurs parties upend le corps à nouveau. Une partie du corps du stylo. Ça ne nous donne pas l'auto complet, ce qui est un peu ennuyeux. Donc tu dois regarder le code ou juste suivre avec moi. Donc les données clés cette fois et le nom est clé à nouveau. Je ne veux pas ressembler à un disque cassé, mais c'est important. Comprenez ça. Donc la clé est le nom. Donc, même si, même s'ils l'appelaient clé Donc le nom de ceci, il est en fait clé. Et la valeur est la clé A P I pour votre application. OK, donc tout ce qu'on fait bien, c'est de transmettre les données clés et l'effet. Je vais mettre des points d'exclamation à la fin de la clé Jason. Fin des données clés. Teoh, déballer ça pour qu'on n'ait pas ces airs. Ça va très bien marcher. Il y a donc les données clés. Il y a le nom de la clé Stewart nouveau formulaire en plusieurs parties, données upend partie du corps. Et les données de celui-ci sont essentielles, Jason, et ce nom est format. Ok, donc encore une fois, on a pris ça. Nous avons pris cette clé, qui est Jason, et nous l'avons passée dans la clé ici pour le format. Jason est la valeur, la clé est le format. Donc, si nous regardons ici, ils cherchent une clé appelée format, et alors la valeur doit être Jason. Donc je fais exactement ce que je dis pour qu'on ait juste un pendentif. abord, l'image nord Comment ce type est différent de ces deux types. Si toutes nos données ressemblaient à ceci où il n'y avait que des chaînes de clés, nous n'aurions pas besoin de le faire. Intense une partie du corps de stylo en plusieurs parties, formé A. Nous pourrions simplement faire une demande de poste. Mais depuis ce type ici, cette image est différente. Nous devons faire les données de formulaire en plusieurs parties pour soutenir l'image Upload. Ok, donc nous avons créé notre demande à nouveau. Si vous ne comprenez pas. C' est bon. Continuez à suivre maintenant. Résultat d'encodage. C' est ce qui se passe lorsque le téléchargement est terminé. D' accord ? Il va transmettre un résultat de revêtement avec une valeur de succès ou une valeur d'air. Hum, et nous devons être capables de le gérer. Alors allons-y et faisons-le. Maintenant, on va utiliser une déclaration switch, et, euh, si vous ne les avez pas vus avant, parfois vous les utilisez. Parfois, vous ne pouvez pas les utiliser à la place des déclarations if else. Ce n'est pas une grosse affaire. Il passe juste par une série de cas différents. Comme si c'est ça que de faire ça, si c'est ça dedans. Donc nous allons dire l'encodage des résultats de commutation et de revêtement à nouveau. Automatique ne fonctionne pas dans ces fermetures. Donc vous devez tout épeler très soigneusement, donc changer et le résultat de revêtement et nous allons avoir quelques options ici. Donc dans le premier cas, si le résultat d'encodage est égal au succès, ok, et ça va appeler une fonction et on va le faire ici, euh, on y va. Donc si le cas est ce succès et que le succès est, euh est une fermeture ici et ça va passer si son succès, ça va passer dans le téléchargement qu'on a fait, ça va passer comme ce qu'on a reçu du serveur. Donc, si c'était un succès et encore une fois, vous devez comprendre cela complètement pour être en mesure de l'utiliser,
C' est c'est des choses assez complexes. Hum, donc c'est bien que tu sois exposé à ça, euh, parce que tu vas tomber quand tu commenceras à couvrir des projets. Donc si c'était juste si c'était un succès, nous voulons obtenir la réponse, Jason que nous avons reçue du serveur. Donc, si c'était une demande réussie, nous voulons obtenir toutes ces données ici afin que nous puissions savoir comment les stocker. Ok, c'est tout. Donc si c'était un succès, on va dire « upload ». Donc, ce téléchargement ici, réponse de point
OK. Jason et, euh, était un gestionnaire d'achèvement. Et allons de l'avant et mettons la demande. La réponse et le résultat. Ok,
là-dedans, nous allons résultat qui semble bien. Est-ce que je manque quelque chose ? Je pense qu'il me manque les parenthèses. Ok,
ça a l'air bien. Ah, ça nous crie dessus parce qu'on n'a pas une,
euh, on n'a pas,
genre, genre, une déclaration par défaut ou une autre déclaration à aller de la « Ne vous inquiétez pas à ce sujet en ce moment . On est toujours bons. Ok, donc, euh Ok, donc on a notre réponse de téléchargement, Jason. Donc, si cela a réussi, allons-y et saisissons le lien hors de lui. Mais peut-être qu'on devrait s'occuper de l'air d'abord. C' est donc un dans le cas du succès. Ok, le cas de l'échec ? Donc si l'affaire est un échec de points et que ça va nous donner une erreur, d' accord, si l'affaire est un échec, allons juste imprimer l'air pour l'instant, ok ? Bon, pour que tout le monde loin, nous avons plusieurs cas ici. Donc si c'était un échec de points,
c'était un air. Donc si c'était un échec de points, Maintenant, ce succès de point et échec de point Ceci fait partie des données étrangères multi-parties. Ok, dans le feu d'Alamo. Donc ça fait partie de leur paquet. Et donc vous devez regarder ce que je fais ou regarder leur code source pour savoir ce qui se passe. La bonne nouvelle est c'est probablement la requête la plus complexe que vous pourriez probablement faire avec Alamo Fire ou dans la plupart autres types de demandes, pas peut-être pas la plus, mais l'une des choses les plus complexes. Donc, euh, c'est vraiment cool que tu puisses le faire maintenant parce que tout ce que tu vas faire est probablement un peu plus facile que ça. Donc, et c'est probablement la vidéo la plus complexe du cours. Donc, si votre stress ne vous inquiétez pas, c'est OK d'être stressé. Je ne m'attends pas à ce que tu comprennes ça maintenant. , Ok, donc maintenant ce qu'on veut faire est de sortir le lien du Jason si ça a réussi. Donc ce que nous voulons dio est attraper le Jason pour dire si laisser info. C' est ce nom arbitraire. Je lui donne cette valeur. Alors, euh, où sont nos résultats ? Hum, donc on est juste là. Il y a un résultat. D' accord. Il passe dans le point de résultat Valeur comme dictionnaire de type chaîne et tous les objets. Ok, encore une fois, quand vous êtes des boîtiers, au moins avec le code X en ce moment et rapide il ne se termine pas automatiquement beaucoup de fois. Donc, ce que nous disons est, hey, allez dans la valeur du résultat que nous avons obtenu du serveur et convertissons le en un dictionnaire qui a des clés de type, chaîne et valeurs de type,
Any object. Et si vous vous demandez d'où je tire ça,
eh bien, eh bien, le résultat que cette valeur est ce OK, c'est le Jason qu'ils envoient. Ils me le disent même ici. Retour la structure de l'objet. C' est ce que c'est le type de données qu'ils vont renvoyer. Donc si je regarde
ça,
c' ça, est un dictionnaire à travers cette ouverture, fermant des accolades. C' est un dictionnaire avec une clé. Toutes les clés sont des cordes, non ? Ce sont toutes des chaînes, mais les valeurs ou tout objet dans ce cas, c'est une chaîne numéro un ce cas que le nombre Ceci est un nombre. C' est une chaîne. C' est une colline, donc nous ne savons pas quelles sont les valeurs. Peut-être que c'est n'importe quel objet et leur différent. Donc nous savons que c'est un dictionnaire principal, uh, de type string et toute chaîne d'objet étant la clé. Ok, donc si ça marche, si l'info fonctionne, alors qu'est-ce qu'on veut faire ? , Rappelez-vous, nous essayons d'obtenir ce que nous essayons de faire, c'est d'obtenir des liens, et nous voulons le lien image juste ici. Donc, si ce dictionnaire principal fonctionne, alors nous devons obtenir le dictionnaire secondaire juste ici. Liens. Et ce dictionnaire est de type, chaîne et chaîne. Je vais juste utiliser n'importe quel objet juste pour être en sécurité. Mais ces deux chaînes d'air ici. Ok, comme vous pouvez le dire à partir de là, Jason, c'est vraiment cool. Alors allons-y et faisons-le maintenant. On dira que ça s'appelle des liens, tu te souviens ? Donc, si let links est égal à info, rappelez-vous le dictionnaire de la grippe afin que nous puissions utiliser la syntaxe du dictionnaire pour saisir cette clé de liens. Comme et je viens de le dire,
c' est un dictionnaire de type, chaîne et de chaîne, mais juste pour être sûr dira n'importe quel objet Alors attrapons les liens à nouveau. C' est un dictionnaire de type string et n'importe quel objet et celui que nous recherchons. Son lien image. Donc lynx juste ici. Ça a l'air génial. Et puis, euh, ce que nous voulons faire, c'est que nous voulons dire si laisser le lien image est égal à des liens, se souvenir de la dépendance ou dans un dictionnaire. C' est un peu comme la Matrix, non ? Ou, comme la création, trucs
intenses, dictionnaires et des dictionnaires dans les dictionnaires. Whoa. Et, euh, donc dans ce cas maintenant, c'est le dictionnaire des liens, non ? Ce lien est tout ce dictionnaire, et ce que nous voulons faire est d'obtenir la
clé et la valeur réelles et ce que nous voulons faire est d'obtenir la
clé et la valeur réelles. Donc, la clé est le lien image. Nous voulons obtenir la valeur de cela, qui est celui-ci juste ici. Donc, si vous regardez son code disait saisir si le lien d'image est égal à des liens. Donc, nous saisissons le lien d'image clé et le convertissons en chaîne. Eso était à l'origine de cette valeur. C' est le vrai que vous allez sauver à la base du feu. Donc, euh, ce n'est pas vraiment beaucoup de lignes de code ici. Ok, euh, donc c'est vraiment cool. Ce n'est rien. Dommage. , Ce
qu'on veut faire,c'est s'assurer que ça marche. Donc ce que je vais faire, c'est qu'on va imprimer ça, et si ça marche, on va dire que cette vidéo est terminée, et la prochaine,
on va se connecter à la base de pompiers. Donc ce que nous voulons faire est d'imprimer, euh, un lien, et, euh, nous allons aller de l'avant et passer le lien image lui-même. Ok, ce qui est juste là, lien
image. Et assurons que tout fonctionne. Donc je faisais ça avant de lancer mon code. Eso nous cliquons, faire post. Nous nous assurons que quelqu'un a entré du texte dans le champ de texte. OK, euh, on s'assure qu'il y a une image là-dedans. Maintenant encore une fois, il y a déjà une image là-dedans,
donc ce code est inutile en ce moment, vous devez faire un peu plus de traitement de l'air si vous ne voulez pas compter les images de la caméra qui sont là dedans. Mais fondamentalement, nous avons créé une chaîne Eurail convertie en S u r l. Nous avons des données d'image pour l'image réelle avec la prise de l'image dans l'image. Vous l'avez converti en données. Nous avons converti la clé de Image Shack en données. Nous avons converti la valeur. Jace, sur ce mot juste là. Nous avons converti cela en données parce que c'est ce que l'A p I a besoin. Nous avons appelé Alamo Fire dot upload et les données de formulaire en plusieurs parties. Nous passons dans le type de demande le u R l que nous allons mettre une fermeture et pour les données de formulaire en
plusieurs parties,
Ensuite, nous ajoutons les différentes clés là. Donc, l'image elle-même et puis la clé, la clé nommée clé avec sa valeur, puis le format, puis sur le succès dans l'
instruction switch . Si l'encodage d'un résultat est ce succès, continuons et appelons. Ça va passer le résultat du téléchargement, et on va appeler la réponse. Jason, on va convertir des Jason Moore J Song et d'autres Jason
jusqu' à ce qu'on ait le lien qu'on veut ici. Vous l'avez déjà vu dans l'autre abside de construit. On va gérer l'échec et tout ça arrive quand on appuie sur le bouton « make post ». Alors donnons-lui un coup de feu. Nous avons écrit beaucoup de code sans le tester ici. Ce n'était pas beaucoup de code. C' était juste moi qui parle beaucoup, Donc ce n'est pas trop mal de ne pas avoir testé cela encore. Alors, on y va. Chargement vers le haut. D' accord. Je vais écraser tous ces airs ici sur des avertissements pas des airs. Juste un avertissement. Parlez donc de votre application. J' espère que ça marche. Ok, allons choisir une image, et nous allons dire, Ah, faisons le, hum, Faisons celle-là, ok ? Ce beau petit paysage ici a l'air bien. Et que dites-vous que nous posons et voyons si ça marche ? Post Est-ce que ça a marché ? Lien ? Voilà le lien. Oh, mon Dieu. Je pense que ça a marché tout de suite, en fait. Copions ce lien ici et assurez-vous qu'il fonctionne réellement sur Internet. Ok, tu es prêt pour ça ? Et juste pour être sûr, ouvrons-le dans une fenêtre privée. Déplacement de la commande. Donc, je ne suis pas connecté pire pour m'assurer qu'il est disponible publiquement, qui est ce que nous voulons. Commandement V. Est-ce que ça a marché ? C' est plutôt cool. En fait, ça a fonctionné. Et tu sais quoi ? C' est avec qu'il est compressé à. C' est assez beau pour être une image compressée. Donc, euh, ouais, ça a vraiment fonctionné. Alors on y va. Nous venons de télécharger nos propres fichiers. Teoh Image Shack. Et encore une fois, c'est c'est que c'est un bon design ici. Ok,
Donc, comment cela fonctionne généralement dans les applications professionnelles, c'est que vous ne stockez jamais d'images dans la base de données. Ok, comme la base de pompiers. Nous voulons commencer les images elles-mêmes. Lorsque vous typiquement Dio est publié dans une cabane d'images ou sur Amazon s trois.
110. Appl: Showcase Partie 14 - Enregistrer des posts à Firebase: Hey, qu'est-ce qui se passe, tout le monde ? Mark Price ici, Deb glisse dot com Rappelez-vous qu'une fois où nous avons téléchargé des images à Image Shack ? Ça marche dans notre labo ? Oui. C' était il y a
cinq minutes pour moi. Et super cool. Nous faisons de grands progrès. Euh, wow, c'est vraiment cool. Et encore une fois, c'est ce que tu vas faire. 90% de vos développeurs d'applications professionnelles thymus. Ils vont parler aux serveurs tout le temps, téléchargeant des données. C' est comme ça que tu fais. Il est en fait moins commun de construire des aps à,
genre, genre, dessin
complexe avec,
comme, comme, votre doigt et tout ce qui se passe. Ou il est moins courant d'utiliser le GPS comme plus, plus. Vous voyez ces siestes, mais comme, ça l'utilise assez minimalement. En fait, ça ouvre généralement des cartes, des choses comme ça, tu vois ? Donc, quand vous voyez beaucoup de gens comme parler d'apprendre à utiliser le GPS ou l' accéléromètre ou comme tout ça, comme des choses funky iPhone comme utiliser ces choses comme 1% de votre carrière et ce que nous
faisons en ce moment est ce que vous utilisent effectivement 90 % du temps. Alors ne sois pas plié. C' est ce que tu vas vraiment faire. Bien sûr, tout est au sujet des données. Les utilisateurs veulent des données dans leurs points d'accès en ce moment. Et c'est de ça qu'il s'agit. Créer des animations cool et des expériences toutes les choses que nous avons fait des
choses vraiment amusantes . Et ce qu'on va faire maintenant, c'est ça. Faites-le parler à la base de feu. Donc, après le téléchargement se produit, nous allons Teoh, créer un nouveau post et l'enregistrer à la base de tir. Et il va instantanément mettre à jour notre vue de table instantanément. Et ce n'est pas si difficile à faire. En fait, c'est assez simple. Donc ce qu'on va faire, c'est la fonction créative ici. Faisons en sorte que nous soyons hors de notre fonction ici. Vous savez toujours votre, euh, où mettre la prochaine fonction, c'est parce que votre classe sera toujours la dernière
accolade bouclée . Donc ce type là, c' est ton cours. Et ça va toujours à la dernière accolade bouclée. Pour que tu saches. Vous pouvez mettre votre fonction ici, et il ne sera pas à l'intérieur d'une autre fonction et vous donner sur l'air. Donc la fonction poste à la base de feu. D' accord. Et ce qu'on va faire, c'est passer une image, Auriol certains messages peuvent avoir une image ou autre. Um, facteur, pas parce que vous composez parce que la description que cela nécessitait juste, mais le vrai U R l pour une image n'est pas Vous n'avez pas à poster une image. Donc, euh, tellement opposé à la base de feu. Et on va le faire ici. Donc, une fois que vous avez dû télécharger l'image avec succès, nous allons appeler auto, pas poster une base de feu. Il ne nous laissera pas le faire sans le mot clé auto et l'image ou je vais juste être un lien image . Ok, ce type juste là. Donc dans ce cas, il passe une réelle Ellen, tu te souviens ? C' est pour ça que j'ai posé un point d'interrogation ici. C' est pourquoi je l'ai rendu facultatif parce que vous pouvez ou non avoir une image ou bien nous
disons à l'utilisateur, qui est le programmeur, que Hey, si vous appelez cette fonction, sachez
juste que vous devez vérifier pour la valeur car il peut ou non avoir une valeur. Alors, que voulons-nous d'autre pour poster une base de
feu ? Eh bien, nous voulons poster une base de feu si, euh, eh bien, s'il n'y a pas d'image dans le champ d'image et encore, euh, peut-être qu'on devrait gérer ça maintenant parce que je n'aime pas comment c'est genre de travail. Tu te rappelles comment je l'ai dit ? Il y a une image de caméra dedans pour qu'il puisse télécharger ça. Je ne pense pas que ce soit le meilleur chèque à faire ici. Peut-être que ce qu'on devrait faire,
c'est avoir une variable ici. C' est peut-être une solution rapide que nous allons appeler ça, hum, image sélectionnée, et ça commencera par être fausse. D' accord. Et ah, alors on descend. Teoh sont un sélecteur d'images. Le contrôleur a fini de choisir l'image. Et quand les images ont été sélectionnées Ok, on va, euh on va dire, l'image sélectionnée. Aucune image sélectionnée. Leur ego est égal à la troupe. Donc, fondamentalement, va utiliser ceci pour la clé off. Il sera effectivement sélectionné image après que les images de l'image apparaissent et que quelqu'un a sélectionné une image. Et puis Alors au lieu de dire, si l'image juste ici égale image. Eh bien, bien, bien, gardez ça là, mais nous dirons et nous sommes l'image sélectionnée égale Vrai. Donc maintenant, nous disons que s'il y a une image là-dedans et si une image a été réellement sélectionnée um euh, disons où l'image sélectionnée est vraie. Voyez si ça marche Ça marche. Ok, donc je devais porter parce que nous le faisons et si moins si, euh si ça tire vers le bas une image, qui sera, parce qu'il y a une caméra là-bas, peu
importe quoi et si l'image sélectionnée est vraie. Ok, ça a du sens. Très bien, donc c'est la mouche qui me dérange, des choses auxquelles tu n'as pas à penser. Si tu n'es pas comme l'enregistrement en studio, c'est comme si, la mouche qui est entrée par l'évent me gêne tout ce temps. Peut-être qu'on devrait faire, genre, un mauvais épisode où,
comme, comme, tout ce qu'on fait, c'est juste moi qui essaye de tuer cette mouche. Vous étiez comme,
non, non, c'était le pire épisode jamais vu. Ok, on ne fera pas ça, mais je serais assez drôle, Baby Bone, je vais faire ça une conférence bonus. D' accord. , Ok, donc si et pour ça, tu n'as aucune idée de ce dont je parle, va regarder un mauvais coup sur Netflix. Ok, donc des images comme ça sont vraies. Donc, nous n'arriverons pas ici à moins qu'une image n'ait été sélectionnée. Ok, maintenant ce que nous voulons faire, c'est une clause d'autre. Que faire si l'utilisateur fait juste une description et ne fait pas une image réelle. Alors, où est cette fin ? Curly Brace est ce que je veux trouver. Euh, voyons voir ici. C' est parfois difficile à comprendre. D' accord ? Donc je ne sais pas si tu viens de voir ça, mais celui-là vient de mettre en évidence le jaune. C' est là. Donc je sais que c'est celui-là. Je sais que c'est ce type. Donc, nous allions faire est ce que nous disons est, si il y a une image et l'image sélectionnée est vraie autrement, allons de l'avant et dire moi que le poste à la base de feu. Et au lieu de passer une image ici, on va passer à Neil. D' accord. Pourquoi, Neil ? Eh bien, parce qu'on va passer un rien vide. Ok, rien du tout. Parce que rappelez-vous, si nous allons ici, cela signifie que nous voulons utiliser une image. Si ce n'est pas le cas, nous avons juste une description. D' accord ? Dans les deux cas, il y avait déjà à l'intérieur de cela, Donc il doit y avoir un Il doit y avoir des textes dans le champ de texte qui ont déjà été pris
en compte . Donc, dans ce cas, nous ne postons pas d'image. On est juste en train de poster Tex. Et donc ce sera vide ici. Ok, alors postez une base de feu. Donc, ce que nous voulons faire est de créer, um, un post son dans le format que nous voulons. N' oubliez pas que Firebase est une base de données client. Quand je dis client, je veux dire votre ami et le genre de contrôles sont l'application iPhone est le front end. Et donc, quelles que soient les données qu'on installe ici, ça va prendre. Et donc ce que je dis, c'est que des serveurs, par
exemple, dans un serveur d'arrêt typique, un serveur rejettera des données qui ne sont pas dans le format que vous voulez. Eh bien, la base de feu ne tirera pas la base est très ouverte comme ça. Vous devez donc vous assurer que vos données sont parfaitement synchronisées si vous l'avez fait. Si vous avez ah, application de
navigateur façon avec angulaire ou quelque chose et alors vous avez obtenu l'application iPhone dans l' application
Android. Vous devez vous assurer que les trois APS ont exactement la même structure de données sur leur client. Ok, donc tu vas aller à ta base de pompiers, non ? Ouvrez un navigateur ici, allez à Firebase dot com et vous allez vous connecter. Réembarqué les données de test créées. Tu te souviens ? Comment créer des données de test dans le passé ? Et je vous ai dit nous voulons créer un test daté pour voir à quoi ressembleront nos données,
et c'est pour ça qu'on l'a fait. Donc si je vais gérer APP ici, ça va ouvrir notre compte, et ça va nous permettre Teoh, regarder ses données de test. Donc, chaque fois que décide de charger ici, nous
y allons. Ok, donc quand je dis le format, alors on a la base Uriel ici. Et donc la barre oblique Ariel de base Nous avons déjà une référence pour cette interaction, puis posts Chaque post a une clé unique. Donc, si vous pensez à cela en termes d'IOS,
c' est un dictionnaire avec ceci est la clé de chaque élément et c'est de type chaîne et tout objet correct, les valeurs ou tout objet. Donc, nous savons que nous avons besoin d'une description. On sait qu'on a besoin d'une image ou de moi et on sait qu'on a besoin d'avoir des goûts. C' est ainsi que nos données sont structurées dans nos publications. Donc, nous créons juste quelque chose qui est exactement le même jusqu'à présent. Poste de type chaîne de dictionnaire dans n'importe quel objet, comme je l'ai dit, nous allons juste le créer et nous allons initialiser un dictionnaire ici dès la chauve-souris. Donc, la première description de clé ok, va être le texte de point de champ de post. Je vais juste mettre un point d'exclamation à la fin pour le déballer. Nous savons que si nous étions arrivés à cette fonction, il y a des valeurs là-dedans parce que nous n'
y aurions pas eu à moins d'être arrivés ici. Donc, je suis juste une sorte de suivre la chaîne et ou le code est assez sûr à ce stade. Alors et puis Ah aime bien, si vous créez un nouveau post, combien comme devrait commencer par ? Si tu as dit zéro, c'est un bon point de départ. Je dirais que tu as raison. Donc, il ya notre post maintenant vous honorer Eh bien, est-ce que nous mettons l'image ou sur leur Puit, nous ne savons pas s'il ya une fois que nous devons faire un peu de logique. Donc si l'URL de l'image donc si ce gars ici n'est pas égal à s'agenouiller, qui signifie que s'il y en a un, nous allons dire post et passé dans l'image clé ou Oh,
c' est la clé qu'on a commencé Firebase, te souviens ? On va dire que c'est égal à l'image. Tu es moi et on va le déballer avec le point d'exclamation. Donc, s'il n'y a pas de majorité, allons-y et ajoutez-la à ce dictionnaire. S' il n'y en a pas, ça ne sera jamais appelé ici. Et ça ressemblera à ça. Seulement les goûts et la description. Juste une logique de codage standard. Maintenant, la question du jour. Comment puis-je enregistrer cela dans Firebase ? Tu vas être impressionné par la facilité que c'est. Ok, donc je vais te montrer ce qu'on a fait avant. Je vais ouvrir le côté gauche et aller dans nos services et notre service de données. Rappelez-vous comment nous avons eu une référence aux messages ici. Souviens-toi, c'est juste que j'entends. Poteaux barre oblique avant. Ok, c'est ça. Tu te souviens, les bases de
pompiers ? L base vient d'attraper les poteaux. Ok, donc l'idée est que nous voulons ajouter un nouvel élément à ce tableau de messages. D' accord ? Vraiment, vraiment facile. Tu vas être impressionné par la facilité que c'est. C' est comme ça que tu fais des trucs et que tu les mets dans la base de pompiers. Et c'est instantané. Donc nous allons prendre cette référence au post que votre autre. Donc on va dire qu'on va le dire. Laisse et, euh, comment veut-on l'appeler ? Poste de base de feu. C' est ce qu'on appelle FB qui pourrait être confondu avec Facebook. Appelons ça Firebase. Post égale point de service de données Les messages ref Membre dernier la référence les
messages barre oblique post Ici, il est, enfant par auto I d Regardez ce qu'il dit, enfant. I auto i d génère un nouvel emplacement enfant en utilisant une clé unique et renvoie une
référence firebase . Ceci est utile dans l'emplacement de base Enfants de feu représentent une liste d'éléments alors que cela représente une liste d'éléments. Donc ce que ça va dio, c'est qu'il va aller pieds et puis il va nous donner un
objet unique avec les clés un post slash mon objet unique eso sur. Ça ressemblera à ça. Post slash ceci, d'ailleurs, saviez-vous que même cela est utilise l'euro ce nom de clé ici ? Donc, ce serait des messages barre oblique Ceci est venu ici. Et quand tu le feras, enfants génèrent des enfants, je vais créer une nouvelle génération, j'ai juste comme ça pour, tu sais, travail
supplémentaire. Donc, euh, c'est ce
que je viens de faire pour nous en ce moment et tout ce qu'il faut faire maintenant, OK, c'est fou. Prêt pour cela était un post Firebase qui a dit valeur. Et on va passer ça dans le post juste ici. Donc, il a eu une référence, il a créé un nouvel enfant. On stocke ça ici, ce nouvel enfant. Et puis nous définissons la valeur de ce dictionnaire cet objet pour être ceci. C' est ça. Nous venons de définir une valeur, et il a enregistré instantanément sur tous les appareils, K super cool. Et pendant que nous sommes là, allons de l'avant et maintenant éclaircissons ça. Ok, alors nous allons effacer le champ, euh, poster ce texte, rendre vide, euh, et dirons, euh, se post image. Ou mais c'est l'image de sélecteur d'image les gars sont sur un nom terrible. Nom terrible, sélecteur
d'image. Image dot Image est égale à votre image. Renvoyez-le à la caméra. D' accord ? Et je sais que ça s'appelle caméra, parce que c'est ce que j'ai importé. Donc, définissons la caméra, puis la vue de table, pas de recharger les données. Alors c'est tout. C' est comme ça que vous avez posté la base de pompiers. Vous créez donc le format des données que vous voulez, ce que vous avez déjà fait avec les données de test dans Firebase. D' accord. Et puis, euh, nous avons ajouté l'euro s'il y en a un, et puis nous saisissons une référence aux messages, euh ,
Euro, nous ajoutons un nouvel enfant juste en appelant cette fonction créer une marque nouveau record. Ok, c'est comme ça que vous créez une nouvelle entrée de base de données, et ensuite nous définissons la valeur de ce post. C' est ça. Et puis nous réinitialisons notre formulaire ici. Oh, nous devrions aussi, euh, réinitialiser notre image. Sélectionné 1 000 000 000 000. Je l'ai dit à faux. Comme si tu avais tout réinitialisé. Euh, d'accord. Et cela devrait immédiatement mettre à jour
notre ah, notre section ici avec les photos que nous recherchons. Elle lui donnerait un coup de feu. Devrions-nous l'essayer, M. Essayons. Alors je vais ouvrir. Je vais aller de l'avant et je vais ouvrir la course de feu. Et comme c'est instantané, nous ne devrions pas voir un nouvel article ajouté ici. En ce moment, nous avons quatre messages Qué quand je fais un post, nous devrions voir un nouveau ajouté ici. Donc, un moment de vérité, n'est-ce pas ? Alors parle de ton travail, euh s'il te plaît. Donc je n'ai pas l'air d'un idiot en vidéo. Euh, ouais. Et allons de l'avant et cliquez sur l'appareil photo. Et celui qu'on va dio, c'est ce type ici ? Donc on l'a mis là. On l'a n'importe où ici. Non, en ce moment. Donc pour l'instant, ce ne sont que des données de test, on
dirait que, euh, Ok. D' accord, allons-y et allons-y et donnons cette chance. Tu es prêt. Donc, si je clique sur post, il a ajouté un nouvel enregistrement ici. Magnifique. Ok, donc c'est là. Euh, maintenant, bien
sûr, nous devons faire fonctionner ces images ici. On n'a pas encore vraiment fait ça. Allons-y et faisons-le maintenant,
j'ai l'impression qu'on aurait dû faire ça avant. Allons-y et faisons-le maintenant,
j'ai l'impression qu' , D' accord. Vous êtes comme, Oh, qu'est-ce que vous allez faire ? Eh bien, faisons-le maintenant. Donc, euh, ça marche définitivement. Vous pouvez voir qu'il est juste ici sur le C'est juste ici, dans notre base de pompiers. Tout a fonctionné là, donc nous avons juste besoin de faire fonctionner ces images comme nous les attendons. Jetons un coup d'oeil. Donc, si on travaille avec des cellules ici, on se connaît. Arrgh, le chemin de
l'index va être ce qu'on cherche. Quelqu' un à commander Il faut se trouver pour une rangée. Ok, alors voyons ce qu'il se passe ici. Euh, d'accord. On est eso quelque part le long de la ligne. Je pense qu'on a perdu nos images ici. Configurer, vendre car aucun de ces éléments n'est en train de charger. Jetons un coup d'oeil ici. Ça va rester storyboard. Tout d'abord, nous allons nous assurer qu'il est toujours connecté. Hum, donc vitrine image. Il est toujours sélectionné ici. Retournons à notre cellule de poste dans la cellule de configuration. Ok, donc, hum images. Neil. , En fait,
je suis curieux de savoir pourquoi ? Ils ne sont pas,
euh, ils ne viennent pas ici. Image de vitrine cachée. , Ok, donc on a déjà fait ça marche. En fait, je ne suis pas sûr de ce qui se passe ici. Euh, en assurant toutes ces mêmes images ici. Voyons voir si l'un de ces trucs fonctionne ici. Donc je vais juste mettre un point de pause juste ici pour voir pourquoi ces images ne se chargent pas ici . Ils travaillaient juste. Alors, euh, jetons un coup d'oeil. Ce pourrait être les simulateurs qui ont un problème qui pourrait être, ah, foule de choses. Et je ne vais pas couper ça de la vidéo parce que je veux que tu regardes une partie de cette
manipulation de l'air ici pour qu'on puisse le comprendre. On dirait que mon point de rupture n'a jamais été appelé. Donc j'ai l'impression que ce n'est pas ce qu'il est censé faire. Voyons si nous, euh et bien, vous savez quoi ? Je suis curieux. Maintenant, ce qui devrait être téléchargé si nous revenons à notre flux VC ici, Jetons un coup d'oeil ici. Hum, donc nous fixons nos postes ? Um, l'image ou L je l'épelle bien. Ça a l'air bien. Um, ouais, ils ont tous l'air bien. Poste. Sentez ce texte. OK, mais ici, dans notre post vente, il n'a jamais été réussi. Donc ce que je veux faire, c'est aller de l'avant. Si l'image n'est pas égale à Neil, mettons un point de rupture ici. Et mettons aussi un point de rupture ici pour voir si nous y sommes même et
continuons faire. Ok, donc, image, allons appuyer sur cette étape sur la touche juste ici. C' est donc nouveau. C' est la réunion de Neil. Il doit le télécharger. Ok, ça a du sens. Donc nous sommes ici dans la demande. Euh, d'accord. Et ah, cette pièce de presse. On dirait qu'ils ne se téléchargent pas. Allons-y et nous allons de l'avant et imprimons l'air. Je pense que ça nous donne une autre erreur. Imprimer la description du débogage par point d'air. Je devrais. Cela devrait fonctionner. Ça va donner une chance à ça. Je suis curieux de ce qui se passe ? Dépassez. D' accord. Oh, c'est
là. D' accord. La ressource n'a pas pu être chargée car la stratégie de sécurité du transport de l'application nécessite l'utilisation d'une connexion sécurisée. On l'a déjà vu avant et réparons ça, non ? Parce qu'aucun Iowa n'a neuf dans le problème de connexion sécurisée. Tu sais comment ça se passe. Allons-y et allons-y et ouvrons tout sous le soleil. Donc, allons dans la liste info point p ici. Et regardons son application Ennis. Sûreté des transports. Euh, nous n'avons pas les autorisations de charges arbitraires, donc bon travail. J' espère que vous venez d'apprendre une leçon sur le débogage. J' espère que vous faites attention à la façon dont nous résolvons ce problème. Eh bien, ce n'est pas résolu, mais comment on va le résoudre. Nous devons, vous savez, nous avons fait les points de rupture. On est intervenus et j'ai regardé l'air réel parce que ça ne me donnait pas d'héritier . Et donc ce que nous voulons faire maintenant c'est ah, ici était fermé. Les domaines d'exception ici cliquez sur le n s AP Sécurité Transport, Cliquez plus et nous allons dire que je n s permet à notre chienne rare e charges et, euh, appuyez sur Entrée. Et c'est un booléen. Et nous allons dire oui, fait ça dans un Maintenant, voyons si les images apparaîtront dans notre application. Codage de débogage cool. En pratique, vous n'aurez jamais ce que regarder des vidéos qui vous disent juste de faire X, Y et Z. Au fait, quel est le meilleur des meilleurs ? Content que tu sois là. Et bien sûr, ça a marché. Regarde ça. Tu sais, c'
est drôle, les autres gars qui enseignent probablement des cours sont juste X, y et Z ? En fait, ils ont traversé ces problèmes et ils l'ont coupé. Ils ne vous l'ont pas montré. Et donc vous ne savez jamais comment les résoudre par vous-même, vous savez, comme ça n'est pas utile du tout. Surtout si vous essayez de construire APS n'est absolument pas utile. Eso Quoi qu'il en soit, regardez ça, il est chargé ici. S' il vous plaît travailler. Donc je n'ai pas l'air d'un idiot en vidéo. Tu n'as , pas travaillé,
donc
tu as l'air d'un idiot. Eh bien, sois gentil. Vache a
dit, espèce de haine et d'intimidation ici, mec. Quelle classe brutale. Je plaisante. Je me parlais à moi-même. D' accord, donc ça a marché. Faisons juste un de plus pour nous assurer que cela a vraiment fonctionné maintenant que cela fonctionne réellement. Parlez donc de votre application. C' est le deuxième test. Chargons un autre. On va dire ce beau, euh, ensemble de feuilles. Bon post. Il est en train de charger. Bam ! Juste là. Tu vois ? Sur la droite. Les données internes sont instantanées. Est-ce qu'il a rechargé nos photos ici ? Et bien sûr, ça l'a fait. Et peut-être que tu penses, pourquoi ça n'est pas affiché en haut ? Eh bien, ce n'est pas alphabétique en ce moment, et c'est en fait une des fonctionnalités supplémentaires que vous allez faire dans l'exercice par
vous-même , parce que vous devez expérimenter et jouer autour. Donc ça marche définitivement. Les images téléchargées créaient également de nouveaux postes de base de pompiers. Tout fonctionne. Pas mal. Donc notre application se rapproche assez. Comme vous pouvez le dire, cependant, il y a quelques choses qui ne fonctionnent pas. Comme, tu sais, le cœur. Je ne peux pas cliquer sur ça ne peut pas faire des goûts, euh et puis aussi, tu sais, ces images sont toutes pour moi. Mais qu'en est-il des messages d'autres personnes et utilisateurs ? Tu sais, peut-être que tu te demandais quand je vais couvrir ça. Eh bien, en fait, ça va faire partie des exercices que Will va faire tout seul. Je vous donne tous les outils, comme le compte d'utilisateur, des choses comme ça. Et vous allez apprendre à relier des choses comme comment connecter des comptes et des choses comme
ça dans la prochaine vidéo quand on parlera de faire des goûts. Mais tu vas le faire tout seul parce que tu vas avoir les outils nécessaires Expérience en pratique sur toi-même. Bref, on va appeler cette vidéo « Terminé ». Ça a l'air super. Notre application de réseaux sociaux est vraiment en train de se réunir ici. Et, euh, c'est du rap
111. App: Showcase Partie 15 - Like Feature (relations firebase): Hé, tout le monde, Mark Pricier déficits dot com Êtes-vous prêt à finir ça ? Faisons-le. Ok, donc on a des postes qui vont à la base de feu. Ils économisent. C' est génial. Hum, qu'est-ce qu'on a besoin de faire ? Eh bien, on le veut, Teoh. Enfin, lorsque vous cliquez sur le bouton cœur, comme vous pouvez le voir ici, cela augmenterait le similaire, et quand vous cliquez dessus, il diminuerait. Maintenant, peut-être que tu penses quoi ? Cela devrait probablement être assez facile, mais qu'est-ce qui est vraiment drôle ? Peut-être pas drôle. Mais la réalité est que celui-ci est un peu plus dur. Et voici la raison pour laquelle Qui possède un poste et qui possède un genre,
Eh bien, Eh bien, un post a un nombre total de goûts,
non, non, mais ne stocke pas nécessairement qui l'a fait, qui l'a aimé. Maintenant, si je clique sur les utilisateurs droit, l'utilisateur lui-même pense à cela. Je suis un utilisateur d'une sieste. J' ai aimé x quantité de messages, donc nous devons stocker des références aux messages que nous avons aimé. OK, donc en substance, ce qu'il nous faut c'est sur chacune de ces cellules ici. On doit savoir si cet utilisateur a, comme les noeuds d'affiche spécifiques, on va vérifier le feu en disant, Hey, est-ce j'
ai aimé ? Si je l'ai aimé, allons-y et mettons-le le cœur à l'image complète. Et si je ne l'ai pas aimé, gardons juste à l'image comme vous pouvez le voir ici. En outre, lorsque vous cliquez dessus, il met à jour les likes sur l'objet post réel lui-même. Et si vous l'éteignez et qu'il a effectivement diminué les goûts sur l'objet de poste. Alors comment fait-on la relation ? Et c'est très important. C' est là que vous allez en apprendre davantage sur les relations de Firebase. donc attention car c'est important dans toutes les autres applications que vous souhaitez construire. Donc, remarquez comment sur les messages, nous n'avons pas réellement stocké les utilisateurs imbriqués comme un nom d'utilisateur et des informations à leur sujet dans la base de feu. Tu veux un appartement dans les données ? C' est ce qu'on appelle
aplatis, aplatissés aplatis, aplatissés ,
plats, soutenant les données et vous voulez garder les choses comme vous le voyez ici. Donc, dans le cas où un post a ex mental likes, mais vous devez savoir qui l'a bien aimé, l'utilisateur contient en fait des références aux goûts. Nous stockons le nom du poste actuel et nous avons juste mis un nouvel ours
arbitraire pour le vrai chant. Hey, ça existe. On se soucie de s'il existe ou non. Et donc nous maintenons une référence à elle avec le nom de la clé. Et c'est comme ça que vous établissez ces relations. Nous ne faisons pas de données imbriquées. On le suit juste comme vous le voyez ici. Et donc si tu es confus, tout
ça comme on va. Positivité. Regardez les données que nous avons ici jusqu'à ce que vous les compreniez. Allez sur la base de feu. Ok, quand je veux que vous fassiez, c'est vous assurer que vous avez ces, euh, ces bases de feu mémorisées de sécurité de l'Oural. Allez-y et cliquez sur IOS. Démarrage rapide ici. D' accord. Et, en
gros, gros, ce que nous voulons faire est, euh, aller au guide sur le côté gauche. Assurez-vous de passer par ces tutoriels, OK ? Ne pas oublier ces tutoriels. Tout va bien ? Passez par chacun d'entre eux et lisez-les. Les plus importants sont la compréhension des données. On a déjà mis en place une isolation. Il parle de la façon de comprendre les données. Vous êtes en conflit entre rapide et objectif. Voir ici et il vous indique comment comprendre les données, comment aplatir les données puis dit parler de l'enregistrement des données. Ok, euh, il
y a même un rouge ici disant de ne pas faire ça. Ok, euh, et ça parle de ne pas, hum, n'aime pas Nest et des choses comme ça récupérer des données de toute façon, passer par. Tout cet article a refait tout ça. Je vous ordonne de le lire. Vous devez apprendre à apprendre à apprendre. Ok, euh, je ne te commande pas. Je vous encourage vivement de la manière la plus agréable possible. Alors on y va. Allons de l'avant et finissons cette application. J'
ai parlé de la théorie de ce qu'on veut faire. Mettons-le en pratique. Alors, euh, pensons aux détails réels maintenant. Donc, chaque fois qu'une cellule est chargée ici, nous avons besoin de la première chose que nous voulons faire est de savoir si nous devons montrer le cœur plein ou si nous devons le faire. Donc le coeur vide, comme vous pouvez le voir ici si je l'ai aimé,
il devrait être plein. Si je n'ai pas aimé, ça devrait être vide. Et cela devrait être géré dans le chemin d'index de la cellule quatre lignes parce qu'il va être appelé à chaque fois et en fait devrait être géré pour configurer la cellule de notre post. Cliquez également sur la cellule de publication. Et en ce moment, dans notre vente de configuration. Ok, euh, on attribue l'image. Nous assignons la description et les aime bla, bla, bla, bla, bla. Allons-y et gérons. Hum, comment gérer ? Hum, le spectacle, le droit. L' image correcte. Alors comment on fait ça ? Eh bien, ce que nous voulons faire, c'est que nous voulons obtenir une référence pour écouter, obtenir une référence à ce genre de choses. Et ce que je dis, c'est que
tu sais comment on est dans notre base de pompiers. Nous avons,
euh, nous ne nous inquiétons pas pour les messages. En ce moment, nous avons des pentes de profondeur, des utilisateurs de barre oblique et puis, ah, l'utilisateur spécifique, n'est-ce pas ? Et puis barre oblique afin de slash que barre oblique utilisateur spécifique, um n'aime pas. Cela pourrait avoir un ou plusieurs goûts, donc couper la vie. Donc, la première chose que nous devons faire est d'obtenir une référence à ce tableau de likes. On ne l'a pas encore fait. Ok, alors faisons-le. Maintenant. Allons chercher une référence, Teoh les goûts et comment on fait ça ? Alors allons à notre puits, en fait, c'est une bonne question. Nous n'avons même pas de référence à notre utilisateur actuel. Alors avant même de pouvoir obtenir des likes, nous devons obtenir une référence à notre utilisateur actuel. Parce que si vous vous souvenez juste de regarder cela ici, nous devons obtenir le nom d'utilisateur spécifique juste là. Maintenant, nous avons raison. Le u i D. Nous savons ce que c'est. Eso Allons de l'avant et créez une référence à une référence basée sur le feu pour entrer dans votre
service de données . Et ce que nous voulons dio est de créer une variable ici appelée bar Ref. Um, l'utilisateur courant de type firebase. D' accord. Et, euh, qu'est-ce que ça devrait être ? Eh bien, nous avons besoin de rud, que nous avons déjà stocké. Donc, disons que je vous laisse d égale N valeurs par défaut de l'utilisateur. Tu te souviens ? C' est pourquoi nous enregistrons ceci afin que nous puissions y avoir accès pour savoir qui est l'utilisateur actuel. Donc, obtenons-le à partir de la valeur par défaut de l'utilisateur standard pour la clé. Tu te souviens de notre constante astucieuse ici en tant que chaîne ? Je vais juste le déballer, forçant rapide parce que je sais qu'il est là parce que nous l'avons enrobé et il est là et puis laisser l'utilisateur égale base feu référence créatif firebase, et il veut votre l. Et alors rappelez-vous ce que ça va l'être. Ça va être notre base. Euro. Donc, barre oblique. Um, Ural base la base. Vous l'êtes. Eh bien, d'accord. Et, euh, alors ce que nous voulons faire est de créer un nouveau chemin. Donc on va dire base Terrell. Donc ça nous donne la base de la maison, non ? C' est Uriel basé puis enfant par un chemin en attente. Peut-être que tu te demandes ce qui se passe ici parce que tu n'as jamais vu ça avant. Ce qui est intéressant, c'est que c'est vraiment cool. C' est la même chose que de faire, si j'ai enlevé ça, c'est la même chose que de faire ça. Ah, intéressant. Vous pourriez le faire de différentes manières. Oui, tu peux. La même chose, les uns par fonction. Et c'est en le recouvrant dur là-dedans, faisant de cette façon cette fois. Et si vous voulez lire ce qu'il dit ici, s'il a de la documentation, obtenez une référence Firebase pour l'emplacement au chemin relatif spécifié. Et ah, c'est tout. La même chose qu'avant. Donc vraiment cool eso. Attrapons les utilisateurs. Donc, la base de la maison slash utilisateurs point enfant par chemin en attente vous i d. Donc tout ce que nous avons toujours dit est goto notre firebase Deb pentes qui a présenté à firebase ioo dot com pour ses derniers utilisateurs Forward barre oblique. Quelles sont vos idées ? Et bien sûr, nous avons des utilisateurs ici qui ont leur propre You i ds. Donc ça pourrait être l'un ou l'autre d'entre eux. Donc, nous saisissons juste l'utilisateur spécifique qui saisit l'utilisateur spécifique. C' est notre utilisateur actuel, puis retournons l'utilisateur de retour. Donc, quiconque veut un utilisateur actuel, ils appellent juste cette propriété ici, et ça va attraper l'utilisateur si elle existe. Et bien sûr, ça va exister. Donc d'accord, on a un utilisateur. Nous savons que nous devons être en mesure d'obtenir un utilisateur afin que Teoh obtienne les likes pour cet utilisateur . C' est logique. Retournons à notre cellule de poste, d' accord ? Et juste là, allons-y Ah, redécouvrons maintenant. Donc, euh, nous devons créer une référence pour les goûts. Et, euh, allons de l'avant et
disons, Laissez le souffle équivaut à la neige de base de feu. En fait, service de données de
base de données point ds points nos nouveaux utilisateurs de référence se souviennent du point d'un enfant par un chemin
en attente, chemin
en attente,
donc ce sera la barre oblique de l'utilisateur actuel aime, non ? Assurez-vous juste que je suis à peu près sûr Donc, Deb, utilisateurs de la barre oblique de
pente coupent la barre oblique spécifique de l'utilisateur aime C'est le chemin. Ok, pas grand-chose. Je pense que ça a l'air bien. Et qu'est-ce qu'on veut faire ? Nous voulons vérifier et voir si, hum, si le Post existe, vous savez, je dis, comme, le post, euh, qui est actuellement ici sur la cellule Ici, donc ça va passer par chacune de ces choses, et nous voulons dire, hé, l'utilisateur a-t-il encore aimé celui-ci ? C' est tout ce qu'on fait. Donc, nous allons vérifier et voir si ce post cette idée spécifique de ce post rappelez-vous comment chaque post a un I d ? Ok, chaque post ici, accord, a une idée, et on veut juste voir c'est de la haine. Est-ce que cet utilisateur a que j'ai cette idée dans les likes. Eh bien, dans ce cas, qui que ce soit en a un comme et il y a le poste. C' est déjà, Et nous allons vérifier et voir si cette clé spécifique pour le post actuel que nous faisons auto-chemin d'index Arrgh est sur. On va voir si c'est si on a un genre pour ce poste, et comment on fait ça ? Eh bien, c'est une bonne question. D' abord, , on doit, euh, pas vraiment poster la clé du poste. Est-ce qu'on a ça n'importe où ? Alors allez à votre mannequin, allez à votre poste, et est-ce qu'on l'a ? Ce que nous faisons ici, Cette clé de poste, bar
privé, clé de
poste. Je ne pense pas qu'on les mette à la disposition du public. Alors faisons ça maintenant. notre clé de poste de type chaîne, rappelez-vous combien de temps il y a, nous allons avoir besoin de ça ? Tu es genre, non, pas si stupide. J' étais genre, Eh bien, attendez et voyez. Et nous voilà, la clé de
poste. , Ok, donc on veut juste le rendre. On y va. Retourner la clé de poste Et oui, il est stocké ici. C' est très bien. Eso, c'est la Post. Donc on doit avoir une référence à ça ? Revenons donc à notre cellule de publication et à un enfant de plus en attente chemin enfant par un
chemin en attente . Et cela va être post que la clé de poste qui a du sens. Est-ce que ça a du sens pour toi ce qu'on fait ici ? Exactement. Donc, nous allons à Nous attrapons l'utilisateur actuel slash les goûts actuels, et nous saisissons le post p de ce post actuel sur le côté gauche ici. Quel que soit le poste actuel ,
Ron, qui est ce type ici ? Ok, on saisit la clé actuelle. La clé de ce post que nous avons sauvé dès le début. Et on dit :
Hey, Hey, attrape-le. Prenez une référence à ce post spécifique. Maintenant, si j'aime est vide, voici quelques choses que vous devez savoir. Euh, si j'aime, ça n'existe pas. Donc, par
exemple, cet utilisateur ici, il n'a même pas de semblable donc il n'est pas comme quoi que ce soit. Cet utilisateur ici est comme eux. Mais peut-être que ce n'est pas le post que nous recherchons. Ça n'a pas d'importance. Le chemin d'accès est à un poste spécifique. Si ce n'est pas là, nous allons devoir faire face à ce qui est nul et être capables de faire une logique basée sur ça. Donc c'est comme ça que tu fais ça. Donc, nous avons la référence actuelle ici. C' est la référence K. Et, vous savez, c'était beaucoup de taper, mais c'est OK. C' est juste comme ça que c'est bizarre de dire, comme réf, observer, seul événement, ok de type. Et on en veut juste une simple. Ok, de type, euh valeur point avec bloc. Débarrassez-vous de tout ce bloc moche ici, et nous allons dire avec Block et nous allons dire, instantané et fermons ça là-bas et mettons-le là. Ok, alors observez, un seul événement de type. Si nous revenons à notre contrôleur de vue sur les querelles, rappelez-vous comment nous avons fait quelque chose de similaire ? Apparaissent quelque part juste ici. Nous avons observé la valeur de point de type d'événement. Et c'est cela qui est intéressant. Ça va arriver. Ça va être appelé
plusieurs fois. Chaque fois que Data change, ça va l'appeler encore et encore. Mais ici, c'est différent dans notre post. Donc nous disons observé, événement
unique. Cela ne sera jamais appelé qu'une seule fois, et nous disons valeur point. Donc ce qui se passe vraiment ici, c'est que nous disons, Hey, voyez si vous pouvez trouver ça comme, Ok, ça pour
ce post. Voyons s'il existe. C' est tout. On fait un seul événement. On ne l'appelle qu'une seule fois, accord, parce qu'on veut vérifier et voir s'il existe. Et s'il existe, nous voulons montrer le cœur ou ne pas le montrer. Ok, donc tout ce qu'on a à faire maintenant c'est Ah, fais ce chèque. Donc si on laisse Andi, je vais juste créer une variable. On ne va pas vraiment l'utiliser, mais ça va aider. Aidez-nous à vérifier. Donc je vais dire qu'il n'existe pas. C' est encore le nom de la variable. C' est juste un nom arbitraire. Je lui ai donné la valeur point instantané comme et c'est non. D' accord. D' accord. Donc ce que nous disons ici, c'est ah, instantané cette valeur. Rappelez-vous comment la valeur de point nous saisit les données. Eh bien, si ces oeufs, si ça n'existe pas, alors ce que nous disons c'est que si ces oeufs,
si ça n'existe pas,
alors ce que nous disons c'est que
si ça n'existe pas,
alors nous devons montrer le cœur vide. si ça n'existe pas, Donc, ce que nous disons est, hé, s'il n'y a pas comme dans notre tableau likes pour le post spécifique, laissons-le vide parce qu'il n'existe pas, et ce n'est pas le cas. Et cette Esnal dans la base de feu, ok, les données qui n'existent pas sont un N s non, très important. C' est le truc de la base de feu. D' accord ? Je ne jette pas des trucs aléatoires ici. S' il n'y a pas, voilà ça. Voici la règle. Écrivez-le dans Firebase. S' il n'y a pas de données dans la valeur de point, s'il n'y a pas de données veda, s'il n'existe pas. Vous obtiendrez un N s. Non. Et c'est ce que vous devez vérifier contre vous, n'est-ce pas ? Ne vérifie pas contre Neil. Vous ne vérifiez pas contre Knoll. Vous avez vérifié contre N s ? Non. Ok, donc si les données n'existent pas en valeur, ce sera
N. Donc, si nous sommes arrivés ici, cela signifie que nous n'avons pas aimé ce post spécifique. D' accord ? Et encore une fois, Firebase prend quelques fois à faire le tour, envelopper votre cerveau autour de ce qui se passe. Mais nous avons juste saisi une référence à nos goûts ou à droite sur notre utilisateur actuel. Et nous vérifions simplement si ce post spécifique que nous regardons est dans ce tableau . Et si c'est le cas, ça veut dire qu'on l'a aimé. OK, mais dans ce cas, nous ne l'avons pas fait depuis que nous n'avons pas été un point auto comme, pourquoi ne pas le faire ? Je serais tout pour ça. Nous ne savions pas que nous ne l'avons pas fait pour le bouton similaire. Wow. Donc, je suis sortie semaine var. Ça va être comme l'image et c'est ta vue de l'image de l'oeil. Là, on va comme l'image. Donc, si elle n'existe pas, essayons à nouveau ce moi qui, comme l'image, l'image est égale à votre image nommée et son cœur vide est ce que nous l'appelons. Ok, donc si ça n'existe pas, montrez le cœur vide. Sinon, montrons au plein cœur lui-même que, comme image point image vous égale. J' image image nommé cœur plein. C' est ce que nous avons appelé nos images. Donc, s'il n'existe pas, montrez le cœur vide s'il existe. Si nous avons, comme ça, montrer le cœur plein. Et donc cela se produit chaque fois qu'une cellule est configurée et configurée, vend et vend le chemin d'index fero dans notre contrôle de vue de flux. Chaque fois que ça est appelé sur son portable, on n'attrape la valeur qu'un seul événement. On ne veut pas continuer à appeler ça encore et encore. Juste une fois, nous voulons le vérifier et changer le cœur selon qu'il existe ou non. Donc c'est assez facile maintenant. Nous devons également gérer ce qui se passe lorsqu'un utilisateur clique sur le robinet, mais parce que nous devons soit l'ajouter au tableau ou le supprimer du tableau s'il existe, et nous devons donc utiliser la même référence exacte ici. Donc je pense qu'on va avoir besoin de nouveau facteur. C' est donc allons-y et faisons-le. Maintenant, je vais copier cette commande, vois ? Et, euh, nous allons monter ici et créons un var numérique comme la référence de type feu base. Ça ne marche pas parce que j'ai besoin d'importer la base de feu ici. On y va. D' accord. Donc, comme Griffis Firebase ? Euh, et on va aller de l'avant et dans la note dans la cellule de configuration juste ici. Une fois que nous aurons un message, nous irons de l'avant et nous dirons, euh ,
genre, haleine égale. C' est comme ça qu'on appelle ça, non ? Comme la réf. Ouais, comme Griff est égal à ce code qu'on avait d'avant. Et c'est ah, l'utilisation du local avant sa déclaration. Est-ce que j'ai fait quelque chose de mal ici ? Jetons un coup d'oeil. Um, comme Griff de type Firebase Object. Euh, je l'épelle mal. Non, ça a l'air juste. Je pense que ça exclut le fait de trébucher ici. Utilisation de variable locale comme greffe avant que son pont ne soit dégagé. Oh, ça Eh bien, débarrassons de ce chapeau. C' est confus. On y va. Voyons si ce chiffre est un rivet pour nous. On y va. Il est parti. Il faisait référence à celui ci-dessous au lieu de celui ci-dessus. Je ne sais pas pourquoi de toute façon. Donc, ce que nous disons ici est ah, créons une variable firebase variable de la référence similaire. Nous tenons juste une référence à cela à notre tableau de likes pour tous les messages qui étaient actuellement sur. Donc à chaque fois qu'on configure la cellule, il va mettre les messages spécifiques et saisir une référence à elle et ensuite chaque fois ici, on y va. Teoh, on va vérifier et voir qu'on va prendre la valeur de, s'il existe ,
va changer le cœur , etc. Mais nous avons également besoin de gérer ce qui se passe quand il est tapé lorsque les images ont réellement tapé. Et alors rappelez-vous comment, avant que je vous disais dans les yeux être points de vente. Vous ne pouvez pas faire glisser un geste de touche sur quelque chose qui est répétable. Vous ne pouvez pas le faire sur une collection de vous vendre. Vous ne pouvez pas le faire sur une table que vous vendez. Tu ne peux pas le faire ici à partir du storyboard comme on l'a fait la dernière fois. On doit le faire par code. Alors allons dans votre cellule de poste, et ce que nous voulons faire, c'est être éveillé de nib. Allons de l'avant et ajouter un geste de robinet reconnu à notre image aime assez facile. Laisse-nous dire que ce robinet est égal à toi. Je t'ai tapé. J' ai tapé juste pour reconnaître, Target va être moi dans le et on va appeler la fonction. Ça va être appelé, genre, tapé. D' accord ? Et tu dois mettre ce Colin à la fin parce que ça va nous passer une dispute. Il va passer à cet ascendant un geste de claquage, reconnaître. Donc voilà notre robinet. C' est vraiment facile. Appuyez sur point Nombre de robinets requis correspond à un juste dit orteil un robinet dans l'ordre pour le bâton qu'il appelle. Vous avez dit que c'est comme trois pour aller taper tapoter avant que les fonctions appelées. Vraiment cool. On va juste en faire une. Et maintenant, allons de l'avant et allons à l'image similaire et dire, Ajouter un geste. Mesure d'enregistrement. Ne dites pas au toucher geste juste et geste. Reconnaître ? Er la jonction du robinet a reconnu elle et d'autres robinets et des balayages et autres choses. Ils héritent tous de la même classe. Et on va juste ajouter le robinet. Ok, encore
une chose. Si vous vous en souvenez, les contrôles par défaut n'ont pas d'interaction utilisateur activée. Donc, disons que l'interaction utilisateur point d'image activé est égale à True. Donc maintenant ce qui va se passer, c'est quand quelqu'un tape que ça va appeler une fonction appelée comme tapée. Donc c'est bon et créer que maintenant, en bas d'ici, funk comme tapé, ça va passer un argument. Toi, j'ai tapé sur geste. Reconnaître ? C' est
ce qui va nous passer. Et nous devons faire la même chose que nous l'avons fait ici. Ok, alors copions ce code, ok ? Et collez-le ici. Bien que nous ayons besoin de faire des choses différentes ici qu'auparavant dans ce cas, nous avons besoin d'un Bien sûr, nous avons besoin de changer l'image. Bon, donc nous allons juste trois choses que nous devons faire. Nous devons changer l'image que nous montrons un peu comme nous l'avons fait avant, mais aussi cette fois nous devons soit en ajouter une comme au post lui-même. Nous allons supprimer un comme et puis troisième, nous devons ajouter à notre tableau de comme dire, Hey, J'ai aimé ce post. Alors, comment pouvons-nous ajouter le Donc, nous allons gérer l'image en premier. Bien sûr. Hum donc c'est assez facile. On l'a déjà fait, non ? Donc, si le similaire est appuyez sur Donc si n'existe pas. Donc, si on n'a jamais aimé ça avant, tout ce qu'il faut faire un échange. Donc, si on n'a jamais aimé ça avant, on doit l'aimer maintenant. Et donc, change-le en cœur si on, hum si on l'a déjà aimé et qu'on l'a tapé, OK, maintenant on doit le rendre vide, donc on est juste en train de l'inverser, OK ? Eso ouais. Comment pouvons-nous ajouter un comme Alors allons à notre modèle et notre code postal ici que le,
euh l' air du modèle est un excellent moyen d'un endroit idéal pour mettre le code que vous voulez manipuler votre date. Tu te rappelles comment on ne fait pas ça des contrôleurs ? La manipulation des données doit être gérée à partir de la couche de modèle. Alors comment on fait ça ? Eh bien, quoi ? Je veux faire en sorte que nous ayons un total de goûts que nous dions. Ok, euh, euh, donc ce qu'on veut faire, c'est peut-être avoir une fonction qu'on va appeler la dysfonction comme si funk que j'aime et, euh, on dit, ajouter Comme, c'est de type tyran. Et donc, fondamentalement, si ,
hum , si vous mettez vrai ici. Ça va ajouter un genre si tu mets faux ici, ça va s'enlever de la même façon, c'est tout. Donc, par
exemple, si ajouter comme, c'est vrai, Ok, on va dire qu'il aime les égaux. Les groupes légers aiment plus un. Donc, si ajouter des goûts si c'est vrai, alors ajoutons un orteil aime autrement, supprimons un donc aime, égal, aime moins un. Ok, maintenant, euh, donc c'est de l'ajuster là. Mais nous avons aussi besoin de Teoh le sauver dans la base de feu. droite. Alors comment on fait ça ? Hum et bien, nous devons prendre une référence au poste actuel. Hum et puis nous devons juste changer la valeur des goûts dessus. Donc, nous ne détenons pas actuellement de référence au Post. Faisons ça. Maintenant. Nous allons donc créer un, euh, privé. Nous allons appeler ce post ref de type Fire base, et je vais importer Firebase pour que je puisse réellement utiliser ça. Ok, donc, importez une base de feu. Donc on va tenir une référence au poste spécifique. Tu te souviens ? Encore une fois, je suis désolé de le répéter, mais il est important de comprendre. Deb, pentes qui présentent des poteaux barre oblique coupent le poste spécifique. Nous devons obtenir une référence à quel que soit le poste actuel. Nous avons la clé elle-même, mais nous avons besoin de la référence réelle de la base de feu. On peut changer les choses. Ok, donc ici dans notre premier Isar, allons de l'avant et créons cette référence. Donc, point de soulignement auto point Post ref est égal, um, point de service de
données oui point Nous allons obtenir toutes les listes de messages, puis enfant par un 10 un chemin
en attente et qui va à soi lui-même. Est-ce que le soulignement post garder. On a déjà la clé. Donc encore une fois, tout ce qu'on fait c'est d'attraper une référence à ce poste très spécifique, et ça me crie dessus pour une raison quelconque. Qu' est-ce que ça dit ? Euh, enfant par chemin en attente. Pas besoin de mettre un point d'exclamation là. Voyons voir. Ok, c'est le bâtiment, ça a l'air bien. D' accord. Um d'accord. Très cool. Je ne crois pas que j'en ai besoin. Je pense que c'était juste me crier dessus sans raison. Oui, il me criait dessus sans raison. J' ai enlevé l'explication, donc nous avons juste saisi une référence au post. Le post qui se souvient, rappelez-vous, c'est une classe. Ce n'est pas une classe rapide. Ça contient des données. Donc, nous devons également saisir une référence au post Firebase juste pour que nous puissions travailler avec. Alors, comment pouvons-nous sauver les nouveaux goûts ? Donc on a ajusté les goûts ici dans la classe, non ? OK, mais comment pouvons-nous l'enregistrer sur la base de données réelle basée sur le feu ? Donc c'est facile post ref dot enfant par chemin en attente, donc saisir aime Ok, Vous voyez ce que je dis ? On a le poste actuel, est-ce
pas ? On a posteriori Slash Dash J. Pourquoi ? Quoi que ce soit maintenant ce qu'on fait, c'est qu'on attrape son enfant. La clé « J'aime ». Tu prenais la clé J'aime. moment, c'est 21 ou peu importe ce post, et on va juste dire, définir la valeur, on va le remplacer. Définir la valeur remplace tout ce que vous y mettez, OK ? Et on va dire de le remplacer par des goûts. Donc, nous saisissons la valeur actuelle des likes, et nous la remplaçons par les nouveaux likes ici. Pas grand-chose. Ok, alors retournons à notre cellule de poste. Donc on a changé l'image, mais maintenant on doit ajuster les goûts, non ? Donc, si elle n'existait pas auparavant, nous devons l'ajouter maintenant. Donc maintenant, nous pouvons dire, um auto ce post là nous allons attraper le post actuel, et nous allons dire point Ajuster aime. Et on va dire vrai, on veut ajouter un semblable à ça. D' accord ? Et puis ici, se
manquent ce post ajuster aime faux. Dans ce cas, nous voulons supprimer cela. Comme si on a changé l'image. Nous sommes en train de changer les données sur la base de feu. Et maintenant, tout ce que nous avons à faire est d'associer que, comme, avec notre compte d'utilisateur personnel, rappelez-vous, nous devons l'ajouter à nos propres goûts. Très bien, en disant, Hey, nous avons aimé ce post. Je veux juste le stocker. Alors allons-y et faisons-le maintenant. Je vais aller dans le, euh et bien, vous laisser être déjà là, alors comment est-ce qu'on veut gérer ça ? On veut saisir ce message. Nous voulons stocker sur notre compte. Donc je pense juste à travers ici, alors allons-y et bien, en fait, je devrais être assez facile puisque nous avons déjà la, comme référence. C' est vrai ? Donc tout ce que nous avons à faire, en fait, puisque nous devons avoir notre référence similaire, voyez ça ici ? D' accord. Eh bien, nous devons Dio est ah ah rappelez-vous, si elle n'existe pas ou nous devons faire est de définir la valeur. Donc disons, euh, moi qui, comme, réf cette valeur définie et dit la vérité. Euh, c'était facile. Vous
attendiez attendiez quelque chose de complexe. Moi aussi j'essayais de me souvenir de ce que j'avais besoin de dio. Alors, comment ça marche ? Rappelez-vous, nous avons déjà une référence
comme si elle n'existe pas. Rappelle-toi ce que je t'ai dit. Si elle n'existe pas ? Ok, euh, alors quand on ne créerait jamais de sets, quand je dis la valeur envoyée, ça va le créer. Donc, cela, comme les références référençant un post spécifique. Et donc la minute où j'appelle la valeur définie et je passe et vrai. Ok, ça va juste faire quelque chose comme ça. Il va enregistrer cette référence. Donc disons que c'était le, euh c'était la référence ici. Ceci c'était l'utilisateur slash Mon utilisateur barre oblique aime barre oblique Ceci. Disons qu'il n'existait pas. Eh bien, ce serait vide ici, mais au moment où je mets, je dis définir la valeur à true. Cela apparaît juste ici. Comme vous le voyez. Cela semblerait juste comme ça. Le moment où je dis définir la valeur à true. Et puis ici. Si disons que nous supprimons le similaire, c'est un simple point auto test comme la valeur de suppression de point de souffle et la valeur de suppression
obtient réellement supprime l'ensemble de la, euh, la clé entière complètement. Ça n'aime pas ce que j'ai fait, c'est de le construire, voir si mes cheveux disparaissent. Ouais, Dumb Exco bêta juste être stupide. Donc encore une fois, supprimez la valeur si je vais de l'avant et regardez la documentation. Si je clique dessus, rien ne se passera. Automatique complète et aide est d'avoir des bugs et code ex. Donc de toute façon, euh, mais je sais de parce que j'ai fait les recherches avec la base de feu est retiré. La valeur supprime réellement la valeur de référence entière de sorte qu'elle supprime réellement le
tout . Il ne supprimerait pas simplement le vrai et supplémentaire déplacer la clé elle-même. Donc je fondamentalement oui, voyons si tout cela fonctionne maintenant, euh, un peu de code ici, un peu de code, beaucoup
d'explications, ce qui est en fait très commun. C' est très typique et la programmation de penser plus, parler plus,
d' observer le code plus que vous écrivez réellement du code. C' est intéressant. Bon, on a un problème, et je suppose que c'est parce qu'on ne l'a pas fait. On a oublié d'attacher notre débouché. Ok, l'image similaire. Ouais, Neil. Pourtant, c'est Neil. Revenons à notre storyboard principal et allons voir notre cellule de poste, non ? Cliquez dessus. Et si vous passez à, genre, image, qui est juste là, c'est maintenant qu'ils le font glisser sur votre image. Et essayons de le faire à nouveau. Ouvrez la base de feu ici. Ok, donc ça dit que j'aimais déjà la ferraille. Je vais me débarrasser de tous les goûts de tous ces utilisateurs. En fait, faisons ça. Maintenant, je vais me débarrasser de ces goûts. J' espère juste, en passant, si vous voulez supprimer des données sans qu'il vous crie dessus, confirmant, il suffit de maintenir enfoncé, déplacer et supprimer instantanément. Je vais me débarrasser de ces goûts. Je vais me débarrasser de ces goûts presque là, juste entrer dans tous les goûts ici parce que je veux m'assurer que c'est ça
marche vraiment . Ok, je vais aller Teoh, au
fait, puisque notre code ne vérifie pas la valeur des points. Euh, puisque nous n'observons qu'un seul événement. Ce n'est pas une mise à jour instantanée car je fais ces modifications. Tu peux le faire. Mais je ne le recommanderais pas parce que nous voulons seulement que ceux-ci soient mis à jour lorsque nous faisons défiler les cellules va l'arrêter à nouveau. Ok, donc aucun de ces utilisateurs n'a des goûts maintenant, ce qui est correct. D' accord. D' accord. Parfait. Donc c'est cool. Et si je clique sur ça comme ici,
une de ces choses devrait être mise à jour avec des goûts. Et si je clique sur ça comme ici, Voyons ce qui se passe. Donc ce type ici, c'est moi. Je suppose que cette connexion Facebook et il a mis le post spécifique est J y avec KJ. Donc celle-là juste ici. Alors, j'ai travaillé. Voyons
112. Exercice - Développer votre application de réseau social: Okay, tout le monde, Mark des déficits plus importants Dot com Vous avez fait un excellent travail en arrivant à ce point. Tu as fini l'application. C' est génial. Parlons d'un exercice qui vous aidera à élargir votre esprit et vous aidera à apprendre de nouvelles
choses . Donc, c'est l'application telle qu'elle existe actuellement. Comme vous le savez, vous pouvez aimer les messages. Vous pouvez ajouter des choses comme ça, et tout est global. Donc il y a d'autres choses que je veux que tu essaies. Ok, il n'y a pas de solution pour ça. Tu dois le faire tout seul. Venez dans la communauté à la salle de chat pour obtenir les formulaires et obtenir l'aide dont vous avez besoin pour le faire. Euh, je serai là. Les journées des enseignants seront là. D' autres personnes seront là. Donc, d'abord créer un écran qui permet à l'utilisateur d'entrer un nom d'utilisateur après avoir créé
un compte pour la première fois . Donc, disons que lorsque votre premier compte créé, plutôt que de vous emmener à la connexion et de vous amener à la taxe de l'écran, avoir. Emmenez-les à un écran de profil et ils entrent leur nom d'utilisateur
et ils entrent, puis ils peuvent ajouter un comme deuxième tâche qui peut ajouter une photo. OK, et si vous ne voulez pas le faire dans cet écran, peut-être que vous pouvez avoir un écran de profil à la place, comme un équipement de paramètres. Une petite image de profil quelque part sur votre application peut être ici en haut à droite, où l'utilisateur peut entrer son propre nom d'utilisateur ou il peut entrer sur une photo. Et, bien
sûr, avec la photo, vous pouvez utiliser le même type de code que vous utilisez avant d'utiliser un sélecteur d'images et de le
télécharger dans la cabane d'images, le même code exact que nous l'avons fait auparavant. Sauf que tu le ferais avec ta photo de profil et sur la base de feu. Au lieu de stocker dans la section des messages, il
vous suffit de stocker sous la section utilisateurs. Donc, encore une fois, vous avez tous les outils dont vous avez besoin pour le faire. Je dois juste mettre en œuvre le u I et changer légèrement certaines choses autour. Donc, c'est la première tâche est de créer ah, nom
d'utilisateur. La deuxième tâche consiste à créer une photo de profil. troisième tâche est en fait d'obtenir ces t show sur ces messages après que vous les avez tous téléchargés. Le message différent devrait montrer ce que les utilisateurs ont fait le post et il devrait montrer leurs noms d'utilisateur. Hum, et tu sais comment faire ça aussi. Pour notre au moins vous avez les vidéos. Tu pourrais y retourner et le regarder. D' accord ? Et puis, enfin ,
euh, pour ceux qui veulent passer au niveau suivant, donner à l'utilisateur la possibilité de commencer, modifier ou supprimer leurs messages. Ok, si vous avez créé une publication, vous pouvez la modifier ou la supprimer. Et pour ce faire, vous aurez besoin de stocker ce post sous le compte de l'utilisateur,
comme nous l' avons fait avec les goûts. Ok, vous devez avoir un tableau de post qui référençait les messages, mais dit comme,
Comme je viens de le dire, juste comme les goûts exactement comme Sauf que vous le faites pour des messages pour un utilisateur. Et puis, euh, ajouter la possibilité pour l'utilisateur d'être capable Teoh, hum, ou pas l'utilisateur. Demandez aux utilisateurs d'ajouter des commentaires. OK, eso un poste. Je vais avoir des commentaires. Et si vous pensez au modèle de données, vous savez,
ah, ah, commentaire appartient à un utilisateur et un commentaire fait référence à un post. Donc, ce n'est pas très différent des goûts. Écrivez vos commentaires juste référencé le post. Bien sûr, le Post doit montrer tous les commentaires. Hum et c'est ça la fonctionnalité avancée. Mais faites ces choses sur, puis changez de l'application. Peut-être que 30% changer le thème et certains des styles et des choses le changent et ensuite télécharger sur l' APP Store. Alors c'est l'exercice. Si tu fais ça, tu as mon
personnel, comment appellerais-tu ça ? Ma garantie
personnelle. Ou plutôt, je me sentirais à l'aise en sachant que je serais à l'aise de dire que vous êtes à un point où vous pourriez commencer à postuler pour un emploi. Si vous êtes capable de construire cette application et de faire ces choses supplémentaires que je viens de mentionner obtenir tout cela dans. Je dirais que tu es bien dans ton excusez-moi. Eh bien, sur votre chemin pour pouvoir, hum, trouver un emploi et c'est important ou pour construire votre propre application professionnelle à l'APP, monsieur. Donc, ce sont les choses. C' est ce que je veux que vous diez et vous aiderez tout au long du chemin. Alors allez-y et commencez et faites quelque chose de génial avec votre de ne pas dire que vous faisiez. Ils ont encore été super pour quelque chose de génial. Ou si tu n'as rien fait de génial. Il est temps que je raccroche.
113. Créer une icône d'application: Hé, quoi de neuf, tout le monde ? Mark Pricier sourds savons dot com. Et aujourd'hui, on va construire et d'accord. Et donc tu vas avoir besoin de quelques choses pour faire ça. Je vais le faire ici, tu vas manger une boutique photo, et peut-être que tu penses, eh bien, je ne veux pas l'acheter. Ou peut-être que tu penses que je déteste Adobe. Eh bien, je ne sais pas pourquoi, pour commencer, ils sont une entreprise fantastique, mais c'est,
euh, si vous êtes vraiment sérieux pour construire des applications professionnelles, ok, surtout pour l'application mobile. Donc, vous devez savoir comment utiliser la boutique photo. D' accord. Et Adobes a rendu très facile d'obtenir Photoshopped ainsi que tous leurs autres produits. Vous pouvez utiliser Creative Cloud et payer un abonnement mensuel. C' est 20 dollars par mois pour la photo shop contre 1000 dollars pour ça. Avant, dans le passé, quand ils n'avaient pas d'abonnements de toute façon, très bien vaut la peine. En tant que développeur mobile, vous allez rencontrer beaucoup de fois où vous devez être en mesure de personnaliser des graphismes et changer les choses, et vous n'aurez pas toujours un design autour. Donc tu dois commencer à devenir comme un développeur hybride. D' accord ? Celui qui peut écrire un code qui pourrait simplement bouger autour d'un magasin de photos. Vous n'avez pas besoin d'être un artiste, mais vous savez, vous devriez savoir comment vous y mêler afin que vous puissiez faire les choses très rapidement. Tous les meilleurs développeurs font cela sur les développeurs qui ne sont pas si grands qui construisent l'
APS vraiment laid . Ils ne savent pas comment utiliser la boutique photo. Donc c'est mon opinion, toute façon. Donc, sur ce site ici adobe dot com avant slash téléchargements dot html Vous pouvez réellement obtenir un essai gratuit et commencer à utiliser Photoshopped tout de suite gratuitement. Donc, vous pouvez certainement le faire. Faites cette vidéo ici, alors allez-y et téléchargez-la, positez la vidéo, installez-la, hum, et revenez ici. On va aller de l'avant et on va y aller. Et là encore, tu as Photoshopped 1999 par mois et, euh, pars. Donc ce que je veux que vous fassiez, c'est aller sur ce site ici. App icône modèle dot com, un site Web fantastique. Ce type, quel est son nom ? Il est quelque part par ici. Vous pouvez en apprendre plus sur lui. Il a fait un tas de modèles d'icônes pour rendre la production d'icônes d'application beaucoup plus simple parce que lorsque vous êtes déployé sur l'APP Store, le X Code et iTunes connect nécessite plusieurs tailles pour les icônes d'application. Tu sais ce qui va ressembler sur l'APP Store ? J' ai besoin d'une grande icône, d'une petite icône, d'une icône pour les icônes de téléphone pour iPhone. Quatre icônes Zyklon pour iPhone six est tout ce qui trucs beaucoup de travail, ce modèle ici marcher pour vous rendre la vie beaucoup plus facile. Et c'est ce que nous allons utiliser. C' est ce que j'utilise professionnellement. Encore une fois, tu apprends tout ce que je fais professionnellement. Et donc vous tolérez, levez-vous et exécutez rapidement d'une manière très professionnelle. Combien de fois pensez-vous qu'on peut dire professionnel en trois minutes ? Allons le découvrir. OK, allons de l'avant et cliquez sur celui-ci dans le côté droit. IOS App Icône à nouveau. Ils ont APS app de montre de bureau pour l'Apple Watch est bien, est des applications Android. On va cliquer sur l'icône APP de l'Iowa, et ce que je veux que vous fassiez, c'est juste télécharger. Ok, il se télécharge maintenant. On ne va pas
prescrire, monsieur . Ce type a de super trucs le grand designer et vous pouvez faire un don si vous vous sentez bien son produit ici. Je ne préconise pas son site web. Je l'utilise juste. Donc il se télécharge maintenant et Ah, cool. Aussi, ce que pendant que cela est en téléchargement, ce que je veux aussi faire est de vous parler du projet de nom. Nous l'avons utilisé plusieurs fois tout au long du cours. Ils ont également une application Mac. Vous pouvez télécharger et obtenir des icônes, mais ah, énorme Siris d'icônes que vous pouvez utiliser dans votre APS. Et ils sont tous sous licence Creative Commons. Donc, si vous voulez lire sur Creative Commons et ce que vous pouvez faire avec, vous pouvez simplement le rechercher sur Wikipédia. Mais c'est là qu'on va chercher notre icône. Donc mon icône et celle que j'ai utilisée pour mon logo Death Slopes que j'ai obtenu du projet de nom. Ok, c'est tout ce que tu as à dio c'est une recherche pour le type d'icône que tu veux notre image. On va dire le code dans ce cas pour cette application. Donc on va chercher des icônes qui ont à voir avec le revêtement. D' accord. Je veux fermer cette fenêtre d'Adobe ici. Vous devriez déjà avoir le procès maintenant. Ok, on
y va. Et celui que je cherche, je vais faire défiler vers le bas est juste ici et tout ce que je vais faire, c'est que je vais le télécharger. D' accord ? En tant que PNG, je me suis déjà connecté. Hum, donc je vais juste rejoindre un Facebook parce qu'il devrait me connecter et automatiquement. Hum oh, c'est vrai. On est sur incognito. Permettez-moi d'aller de l'avant et de mettre mes informations ici. On y va. Essayons encore ça. J' ai cherché du code. Il est en train de charger. C' est là. Téléchargez PNG et ah, nous allons faire gratuitement et donner du crédit à nouveau. Quelle est la différence ? Achat libre de redevances acheteur Icône libre de redevance pour une utilisation illimitée sur tout projet pour toujours Votre directeur d'achat Sports le talent créateur gratuitement. Téléchargez-le gratuitement. Nécessite de donner du crédit au créateur dans votre projet et ne peut pas être utilisé sans donner de crédit. Ok, alors assurez-vous dans votre application que vous donnez du crédit si vous utilisez ces icônes si vous n'allez pas les
acheter, donc je vais libérer et donner du crédit. Et donc nous donnons le crédit à un Ziese que, euh, c'est son icône, et il l'a fait. Et donc il y a mon attribution de crédit. Et c'est téléchargé. Maintenant, ainsi que le modèle là. Donc si je clique dessus et que je vais la montrer et la trouver, je devrais voir mon icône apparaître ici, ce qui est. Je vais le faire glisser sur le bureau, et on va aller de l'avant et faire glisser ce fichier zip qu'on a là pour le modèle sur le bureau. Je vais double-cliquer dessus pour le décompresser. Alors on y va. On a notre dossier ici. Et si je l'ouvre, voici notre application. Modèle d'icône. OK, alors allez-y et cliquez. Celui qui dit Dot PSD, on va l'ouvrir ici. Ça va charger la boutique photo, OK ? Il est toujours en train de se charger, et on va garder les couches. Ok, je vais faire l'âge de commande pour éteindre la grille de commandement H tourne d'accord. On et on éteint. C' est un peu zoomé, donc je vais appuyer sur Z et cliquer sur le zoom avant. J' ai mémorisé beaucoup de ces commandes Photoshopped parce que je l'utilise depuis si longtemps maintenant. Euh, d'accord. Et donc l'idée est donne votre précédent de ce que vos icônes vont regarder sur toutes les tailles d'
écran différentes , qui est vraiment cool eso afin d'éditer cette icône qu'ils ont ici sur le
côté droit . Tu vois cette chose qui dit de m'éditer et de sauver ? Ok, juste là. Il suffit donc d'aller de l'avant et de double-cliquer qui gardent les couches. Et là, c'est si ce que nous éditons ici est ce qui va apparaître sur son icône d'application. Donc nous avons cette icône cool que nous avons créée ou que nous avons téléchargée, et nous voulons qu'elle soit ici. Et donc ce que je vais faire, c'est de ce côté droit ici où il est dit temps où il est dit grille. Ok, cette grille ici, euh ce qu'on va dio est en fait fermé ce dossier ici, voir ce dossier juste ici. Éteignez la grille. Fermez ce dossier. Ne vous souciez pas des guides, et nous ne garderons pas cette année. Et ce qu'on va faire, c'est créer de nouvelles couches en bas à droite. Cliquez sur ce nouveau calque. Ce sera juste notre expérience. OK, alors appuyez sur la lettre G pour le seau à peinture ou sur le côté gauche. Par ici. Tu vois ce seau de douleur ? Ok, je vais changer de couleur ici. C' est votre couleur principale, qui montre le greffier principal que vous utilisez. Je vais changer d'orteil blanc, je vais juste cliquer dessus et l'ouvrir et le faire glisser en haut à gauche et il y a du blanc et je vais m'assurer que mes seaux de douleur sont sélectionnés. Et je vais aller par ici dans le côté droit pour m'assurer que mes couches ont sélectionné ici ce calque vide que je viens de créer, je vais cliquer maintenant. On a un fond blanc et on n'a plus besoin de ce type ici. On ne voulait pas ça en premier lieu, alors je vais cacher qu'ils sont avec le petit symbole du globe oculaire, et c'est génial. Donc maintenant ce que je vais faire, c'est que je vais faire glisser cette icône ici dans ma boutique photo. Comme ça. Ok, et ça a l'air bien. Ça a l'air vraiment sympa, en fait. Je vais faire un clic droit sur le calque sur le côté droit ici. C' est maintenant. Ok, j'ai raison. Cliquez dessus et appuyez sur Rast. Couche de levage. ce moment, je ne peux pas vraiment l'éditer. C' est juste un peu flottant. Il y a ce qu'on appelle un objet intelligent. Nous voulons rast se poser donc c'est comestible. C' est tout ce que ça veut dire. OK, maintenant ce que je veux faire est de me débarrasser de ce texte. Je ne veux pas son nom sur l'icône de mon application. Ça aurait l'air idiot. Donc je vais appuyer sur la lettre M ou si vous regardez sur le côté gauche,
c' est ce petit, euh, ce petit marquis M outil de marquis. Donc c'est un carré. Et pendant que le calque est sélectionné et quand je dis que le calque est celui de notre nouvelle image, je vais juste mettre un carré autour des mots réels et appuyer sur la touche Supprimer. Donc, c'est maintenant parti. Et, euh, je vais aussi centrer cette icône ici au milieu de l'écran. Alors allez-y et faites ce type de commande de presse, plus un sur le clavier avec l'outil de sélection de la commande A. J'aurais également pu juste sélectionner le tout cliqué et glissé. D' accord. Soit on travaille à commander un certain temps. Les outils Marquis comme ça vont tout sélectionner. Maintenant, ce que vous voulez faire est d'aller en mode sélection, supprimer la touche V de votre clavier ou sur le côté gauche ici cette petite icône avec la flèche Cela nous permet de centrer les choses. Donc, l'outil de déplacement. Donc, si vous regardez ici sur le dessus. Non, nous pouvons maintenant centrer cette icône. Donc je vais le centrer verticalement ou horizontalement, et je vais aussi le centrer verticalement, sait comment descendre. Donc, notre icône est exactement au centre de l'écran. Maintenant, la dernière chose que nous avons besoin de dio est juste en faire une belle couleur rouge pour correspondre à notre image de marque. Vous pouvez faire ce que vous voulez pour votre Je viens dans votre image de marque, donc je vais revenir à la couleur rouge ici. Celui que j'utilise est F 4511 e. Ok, c'est celui qu'on utilise ici. Et ce que je vais faire est d'aller ici en haut et aller aller couche couche couche couche couche couche couche couche couche superposition couleur superposition. Et, euh, tu es genre,
Oh, ça a fonctionné Automatique. Eh bien, ce n'est pas le bon rouge. Ok, Donc ce que je veux que vous fassiez, c'est que la superposition de couleur sélectionnée ici, cliquez sur la boîte de couleur et avec le petit outil compte-gouttes que vous voyez ici, voyez, clip votre rouge. Et maintenant, c'est la bonne couleur rouge, et c'est tout. C' est l'icône qu'un membre aime, et bien, c'est un peu ennuyeux. Eh bien, en fait, ça va être vraiment sympa sont au téléphone. règle de base est la plus simple et
l'icône est, plus elle pourrait être attrayante. Les utilisateurs gens veulent voir les choses qui sont rapides dans les choses attrayantes qui sont trop bruyantes sont très distrayants pour le I. Alors allez-y et faites commande Plus s pour enregistrer ce fichier pour obtenir un peu de chargement spinner il pourrait prendre une minute parce que c'est un gros fichier. Donc, ce qu'il fait est de mettre à jour toutes les couches de notre autre modèle que nous avons créé . D' accord. Et au fait, vos fenêtres peuvent sembler différentes de la mienne. J' ai une version Photoshopped différente de U. S. Oh, je ne peux vraiment pas t'aider avec ça. Tu dois jouer avec ça. Si les versions un peu différentes ici. Le mien juste là, mes petits onglets sont là, à gauche et à droite. Donc, chaque fois que vous créez une nouvelle fenêtre, c'est ce qui va s'ouvrir. Donc ce que vous voulez faire maintenant, c'est qu'on a l'icône. Allez-y et cliquez sur le X sur ce fichier que je dirige PSB et regardez. Il est maintenant mis à jour et notre autre fichier ici et il semble assez bon. Regardez à quoi il ressemble sur l'iPhone deux x trois x un X iPad. On a un tas d'icônes ici. En fait, ça a l'air vraiment sympa. Très gentil. , Ok,bon accord
, donc et ça a l'air très bien sur l'iPhone pour que vous puissiez voir juste là en bas . Ça a l'air cool. C' est exactement comme ça que je veux que mon icône d'application soit si belle. Maintenant, nous avons l'air exactement comme nous voulons utiliser un magasin de photos rapide magie. Et vous avez maintenant appris un peu de magie Photoshopped vous-même. Donc ce qu'on veut, c'est que je vais d'abord enregistrer ce fichier. Et ce que nous voulons faire est d'exporter toutes ces choses ici dans l'icône APP. Donc on va aller à la fenêtre en haut et on va aller à des actions pour montrer des actions. Et ces actions ici sont fondamentalement des scripts qui vont s'exécuter qui vont
effectuer une opération pour vous dans la boutique photo. Et ça va exporter un tas de ces fichiers ici. Donc celui que nous voulons a déjà sélectionné. Je dois avoir ouvert cela avant que votre devrait juste probablement en avoir un ici et ce
modèle d'icône d'application . D' accord. Et il y a deux exportations. Vous pouvez faire des coins arrondis ici ou des coins carrés. Maintenant, vous ne voulez jamais faire des coins arrondis. Tu es comme, eh bien, application entourée. Eh bien, le X Code et iTunes vont le faire automatiquement pour vous. D' accord. Alors assurez-vous que vous faites carré. Sinon ça pourrait gâcher les choses. Alors assurez-vous que vous avez sélectionné carré, d' accord ? Et ce qu'on va dio, c'est juste ici avec celui-ci en cours de sélection. D' accord. Avec celui-ci étant sélectionné ici, il y a un petit bouton de lecture, accord ? Et ce que je veux, c'est juste, euh, cliquer sur ce chignon. Assurez-vous donc que l'icône carrée est sélectionnée et cliquez sur jouer. D' accord ? Ce truc va apparaître ici. Ça va réfléchir une seconde, et puis juste cliquer sur le bouton Enregistrer va vous demander un dossier. Alors mettez-le sur le nouveau dossier de crédit de bureau pour cela. On va appeler ce dossier icônes et on va faire, c'est au lieu de l'appeler ce
nom bizarre , on va juste appeler l'icône et ensuite cliquer en sécurité, et tu vas voir pourquoi on a utilisé cet outil. Alors trouvons notre dossier ici. Icônes. Ok, si j'ouvre ce dossier, voici une icône d'application au carré. Regardez toutes les icônes qui ont créé. Auriez-vous voulu exporter tout cela par vous-même et toutes les tailles différentes ? La réponse est non, non, non, non. Donc voilà notre icône. l'air vraiment bien, a toutes les tailles dont nous avons besoin. Alors allez-y et fermez une boutique photo. S' il vous a demandé de dire, si vous pouvez l'enregistrer, trouvons et
allons trouver le projet de code X dans lequel vous voulez télécharger les icônes. Dans mon cas, nous allons faire une application de démonstration de pistes sourdes que vous auriez dû construire maintenant, et sinon, utiliser votre propre application. Mais ce que je veux que vous fassiez est de cliquer sur le dossier Assets ici. D' accord. Excusez-moi. Pas le détenteur de l'actif. Ce que je veux que vous dio, c'est aller ici à l'icône du haut, cette icône bleue ici et vous voyez ici où il est dit application, icônes, source, et c'est son icône de l'application. OK, cliquez sur ce petit air sur le côté droit. Tu l'as eu. Je veux juste te montrer que tu peux le faire par là. Vous pouvez également sélectionner via le détenteur des actifs. Comme si j'expliquais la première fois. D' accord. Et voyez comment vous avez vos demandes de captures d'écran et d'actifs ici. Cliquez sur l'icône de l'application. C' est la même chose, donc tu peux le faire dans les deux sens. Maintenant, allez dans votre dossier et appuyez sur la commande A pour sélectionner le centre commercial. Vous pouvez cliquer et faire glisser la commande A pour les sélectionner sur. Tout ce que tu as à faire, c'est les traîner là où tu vois les signes plus. D' accord. Et, euh, lâche-toi. Très cool. ce moment. Tu sais, c'est comme ça que certains d'entre eux ont disparu. Ceux qui sont manquants sont facultatifs. Et le, euh donc ouais,
c' est facultatif. Et si jamais tu veux Adam plus tard, tu peux. Ça vous dira les tailles dont vous avez besoin, alors d'accord, c'est super. Cool. Et c'est vraiment tout. Vous devez dio Nous pouvons aller de l'avant et juste exécuter ce projet et vous allez voir que nous avons maintenant une icône d'application sur le téléphone. Des trucs vraiment cool et la boutique des électeurs n'était pas si difficile à utiliser. C' était,
euh, c'était assez simple. Et on y va. L' application est chargée Allons de l'avant et masquer l'APP. Allez à l'écran. Donc, le changement de commande H est la clé d'accueil. Et voilà notre icône. Ça a l'air plutôt cool. Pensez-vous ? Je pense que oui ? Alors c'est tout. C' est l'application. Icônes. Pas trop grosse affaire. Définitivement utiliser Photoshopped. Définitivement utiliser que je contemple si vous voulez gagner du temps. Maintenant, avec cela étant dit, il y a beaucoup d'outils gratuits que vous pouvez utiliser que vous n'avez pas à payer sur Internet comme Gimp. Et, euh, il y en a plein d'autres. Il y en a même en ligne. Je ne sais même pas. Je ne les utilise pas. Photo shop est juste un outil puissant. Donc ça m'aide à travailler très rapidement en tant que développeur, tu sais, penser à ça comme si tu travaillais sur un projet, non ? Que se passe-t-il si vous n'avez pas de designer et que vous devez ajuster quelque chose ? Eh bien, comment vas-tu faire ça ? Tu vas payer quelqu'un pour faire ça ? Euh, vous pourriez probablement apprendre quelques petites techniques Photoshopped et faire beaucoup de progrès sur votre Donc c'est tout. Ceci est la conception d'une icône d'application et le prix intelligent de la mort savons dot com. Continuons vers l'avant
114. Créer une autre icône d'application dans Photoshop: Hé, quoi de neuf, tout le monde ? Mark Christ avec Deb pentes point com. Et aujourd'hui, nous allons apprendre à construire une icône APP pour IOS. Espérons que dans les 10 minutes, tout à partir de zéro. Et ça va être en temps réel de mon cerveau pour que vous puissiez voir comment
fonctionnent mes processus créatifs . Nous allons utiliser une chose que j'aime appeler emprunter des thèmes et des styles et notre travail à d'autres personnes et le faire ressembler à notre propre manière personnalisée sans avoir de
compétences en design . Alors allez-y et étiquettez-le comme vous voulez. Allons-y et commençons. Donc ce qu'on va faire en premier, c'est que je dois m'assurer qu'on a une boutique photo sur l' ordinateur. Si vous n'allez pas obtenir une photo shop d'essai Photoshopped CC 2015, vous pouvez obtenir un essai pour elle ou payer 10 dollars par mois. Outil très précieux. Ce que je vais faire ici est aller sur Google Chrome et nous allons chercher un
modèle de cratère Iowa pour la boutique de photos. Donc IOS icône application, modèle PSD C'est ce que je vais taper et cliquer sur le lien supérieur ici. C' est celui que nous voulons. Ils ont Android IOS, etcetera. On va choisir IOS très gentil. Et je vais cliquer sur Télécharger après avoir terminé le téléchargement. Je vais cliquer sur le fichier de visite pour le décompresser. Et je vais juste traîner le mien ici sur le bureau. D' accord ? Et c'est là. Alors n'allez pas de l'avant et double-cliquez sur le fichier psd dot. Il va charger Photoshopped pour vous. Voici donc le modèle d'icône. Il vous montre même à quoi ça ressemble sur un téléphone, ce qui est vraiment cool. Et c'est leur truc de modèle par défaut ici. Alors quoi, tu veux dio ? Ok, ce que vous voulez faire est de double-cliquer sur cette icône ici sur le côté droit dans votre
section de calques qui dit éditer et enregistrer. Ok, donc double-cliquez que pas les lettres, l'image elle-même. D' accord. Et ça va charger ce fichier psb point, c'est là qu'on va faire notre montage. Et ils ont des petits presets cool ici que vous pouvez jouer avec éclat et des choses comme ça. Si tu veux. Ok, ils ont aussi des grilles ici, et on ne va pas s'embêter avec tout ça. On va construire le nôtre. Et donc disons que nous avons une application. C' est quoi une bonne idée ? guitare ? On fait une sieste sur la guitare. D' accord. Et tu pourrais faire exactement la même chose que je fais ici. Donc, mais pour votre thème. Donc, ce que nous voulons Dio est d'abord obtenir un beau fond que nous aimons. Donc je vais le faire maintenant. Je vais aller sur Google, et je vais juste taper dans des arrière-plans cool, rayonnants et cliquer sur des images et juste choisir une que vous aimez Cela pourrait paraître bon pour une icône d'application. J' aime bien celui-ci ici, voir l'image pour le rendre plus grand possible. Ça m'a l'air bien. Donc je vais le glisser ici dans mon bureau juste pour que je puisse l'avoir. Ce que je vais faire, c'est ce dragon sur ma toile. Maintenant, c'est un peu petit, mais je ne suis pas trop inquiet, parce que ,
euh, c'est juste l'arrière-plan et on va jouer un peu avec ça de toute façon, donc ça me semble bien, et toi peut le mettre où vous voulez. Je vais mettre le mien, sortir du fond ici, et je vais éteindre le globe oculaire radieux là-bas et je vais éteindre la grille. Je me fiche de ça. Je vais faire un clic droit sur le calque et aller à Rast Arise Layer. Et puis je vais présenter V pour aller dans les outils de déplacement mis en place ici en haut à gauche et commander t pour transformer ou contrôler t sur le PC, et je vais maintenir le décalage. Et je vais juste le faire grand pour que ça sente tout le truc. Maintenant ce que je vais dio est présent v ok, et puis, ah, commande A pour sélectionner le grand ensemble ici, et je vais cliquer sur cette icône ici, Aligner les centres horizontaux, ok. Et aligner. Le centre vertical est juste de le mettre là juste au milieu. Donc maintenant, nous avons cette petite icône cool, qui est assez bon pour moi pour l'instant. Et je n'aime pas ces grilles, donc je vais faire des commandes plus h pour les éteindre. On y va. Et c'est bon avec moi. Donc ça a l'air bien. Il est un peu pixélisé. Donc juste pour s'amuser, on va s'estomper un peu. Donc je vais aller filtrer, Flou et Ghazi et flouter et regarder ça. Lissé bien pour nous. C' est ce que je veux. Maintenant, cette icône ne fonctionne pas vraiment pour moi ici en haut. Vous pouvez l'allumer et l'éteindre. Donc je vais éteindre ça maintenant et allons trouver notre guitare. Ok, allons trouver notre guitare. Donc, je vais aller sur mon site préféré, le maintenant sur un projet à nouveau. Vous devez donner du crédit si vous utilisez ces icônes professionnellement, accord ? Ou vous pouvez les acheter. Je crois pour 1 99 chacun, ce qui est beaucoup. Et je vais dire guitare, et ça va me montrer un tas de guitares, ce qui est vraiment cool. Alors j'en veux un peu. C' est juste facile et plat Maintenant le pixel est un peu cool. Voyons voir. Ici, trouvons un qui, selon nous, nous parle vraiment. Mm. Guitare. Certains d'entre eux. Je ne m'en fous pas vraiment d'ici. Voyons voir. Euh, voici celle. C' est le bon. Ok, donc ce que je vais faire, c'est le changement de commande 4 sur Mac. Si vous êtes sur PC, vous pouvez cliquer, télécharger et télécharger, et je vais juste traîner au-dessus de cette guitare ici et allons de l'avant et traîner sur notre toile ici comme, donc je vais la agrandir. Ok, je vais le faire, d' accord. Cliquez sur ce calque et accédez à Rast. Couche de levage. D' accord. Et il doit juste être au-dessus pour passer au-dessus de la couche d'arrière-plan ici. Et je vais appuyer sur W pour aller à mon outil de recherche. Ce n'est pas le seul outil. Donc, je vais faire un clic droit apparaître en haut à gauche et aller à l'outil de baguette magique. Et je vais sélectionner l'espace blanc là-bas et je vais m'en débarrasser. Maintenant. On a cette guitare cool flottant ici et on a remarqué que l'ex im va appuyer sur l'outil e pour la gomme et le bon support pour la rendre plus grande. Et je vais juste effacer cette petite chose juste là. Donc maintenant, on a ce truc de guitare cool. Bien qu'il ait un accident vasculaire cérébral dont je ne suis pas complètement content. Je veux essayer quelque chose. Je vais dupliquer ce calque en le faisant glisser ici sur les nouveaux calques. Je vais éteindre une couche et ce que je veux faire maintenant c'est que je vais appuyer sur W pour sélectionner l'extérieur, OK, mais je veux sélectionner l'intérieur entier de cette guitare, pas l'extérieur. Si vous remarquez si j'ai appuyé sur la brosse b, c'est en arrière-plan la commande z pour annuler cela. Donc je veux sélectionner tout ce qui est dans la guitare. Donc, je vais faire le décalage de commande I pour sélectionner l'inverse de ce qui vient d'être sélectionné. Et avec l'outil B sélectionné et choisi votre couleur préférée, je vais appuyer sur le crochet droit pour le rendre grand. Et je vais juste rendre cet assaut couleur et voir à quoi ça ressemble. Et je n'aime pas vraiment ça. Peut-être que je ne le fais pas. Tu sais, c'est probablement bon pour le moment. Allons-y et mettons-en ensemble un peu plus ici. Disons qu'on veut une belle guitare rouge. D' accord ? Quoi ? Aiken Dio est pressé sur le bouton g du clavier, non ? Cliquez sur ceci et allez dans le seau de peinture. Et je vais choisir à l'intérieur de la guitare. En fait, je vais dupliquer la guitare une fois de plus. D' accord ? Donc je n'ai pas à ruiner l'original ici, et je vais juste cliquer ici et le rendre rouge, accord ? Et puis je vais sélectionner un rouge plus foncé comme ça, et je vais cliquer sur la bordure ici et voir à quoi ça ressemble. Ok,
ça a l'air bien. Je vais cliquer sur ces petites icônes noires ici juste pour une bonne mesure. Ok, donc ça a l'air cool. Et oui, j'aime ça. Disons ça et j'appuie sur la commande pour sauver. Si nous revenons à notre autre modèle d'icône d'application, il nous montrera à quoi ressemble l'icône. Et c'est à ça que ça ressemble ici. C' est à ça que ça ressemble ici. Ce n'est pas le plus grand. Euh, je pense que notre guitare, puisque nos antécédents de Grady dans notre guitare devrait probablement être un peu Grady dans. Et le genre rouge ressemble à un brun. Alors réparons ça
aussi . Mais je ne veux pas. Grady et les bords. Je suis curieux de savoir si nous pouvions juste Grady dans l'intérieur ici. Alors quoi ? Je vais exprimer l'outil w et sélectionner l'intérieur. Ensuite, je vais faire commande voir dans la commande V pour coller cela dans une nouvelle couche. Comme vous pouvez le voir, il y a une couche juste ici et ensuite sur cette couche ce que je vais faire est d'aller au
style de calque , et on va aller à Grady int overlay, ok ? Et je vais cliquer sur le Grady int ici, et je vais choisir des rouges différents. Ok, je vais choisir. Je vais double-cliquer sur ce rouge plus foncé. Et je vais juste le bouger. Peut-être par ici, Cam. Ouais, c'est bon. Et je vais vraiment cliquer, OK ? Et commande t sur ce intérieur, et je vais voir si je peux le rendre plus grand. En fait, il a l'air cool lui-même. En fait, Oh, on
y va. C' est ce que je cherchais. Donc, si tu sais ce que je viens de faire, j'ai commandé sur cette couche intérieure que nous avons créée , et ensuite je l'ai mise ici,
hum, hum, flottant sur le bleu, et je pense que ça a l'air beaucoup mieux. Je vais ordonner à S de le sauver. Et oui, regarde ça. On a une guitare rock cool. On pourrait essayer encore une chose. Juste Teoh juste pour voir si nous ne sommes pas complètement sûrs de pouvoir mettre une ombre portée dessus ici. Et je vais aller à Layer. En fait, je n'ai même pas besoin de le faire déjà. a un style. Il suffit de double-cliquer sur les effets sur le côté droit ici avec le globe oculaire et allons de l' avant et faire une ombre portée. Ok, donnez-lui un léger effet de trois D, comme si un peu plus grand là-bas. Et je suis juste en train d'ajuster la taille me semble plutôt cool. Les bords ici sont un peu agités à cause de l'outil w. Donc ce que je peux faire, c'est aller à mon outil de flou, cette petite pipette ou cette petite larme qui ressemble ici. D' accord. Et je peux cliquer dessus et ce que je peux faire, c'est appuyer sur le crochet droit pour le rendre plus grand. Juste sur le contour rouge ici, je pourrais juste traîner pour l'adoucir un peu juste pour le rendre un peu plus doux . Donc ces lignes déchiquetées disparaissent parce que je n'aime pas les lignes déchiquetées ici, commande
Mocha pour la sauver. Et regarde ça. On a une icône de guitare assez cool. Si vous pouviez voir ici, je peux zoomer. C' est à quoi cela ressemblerait sur le magasin APP. Ce n'est pas dommage que ce ne soit pas le cas. Tu sais, ce n'est pas un professionnel fou, mais on n'a pas de compétences en design. Nous suçons le design. Et on a fait quelque chose qui a l'air cool. Et donc ce que je vais faire maintenant, sauvegardez ça encore. Commande s Revenons à mon modèle d'icône d'application ici. Et comme vous pouvez le voir, ça a l'air bien. Ok, donc maintenant nous voulons l'exporter pour pouvoir l'utiliser dans notre application. Donc ce que je vais faire, c'est aller à la fenêtre et activer les actions. D' accord ? Faites glisser ce panneau d'actions vers le bas et ce que nous cherchons à faire est de charger une action. Et tu peux le faire. Non, pas comme ça. Et j'ai perdu mon panneau d'actions. Ne fais pas ça. Cliquez sur ces trois petits boutons ici. D' accord ? Et ce que nous voulons dio, c'est ah, charger des actions. Ensuite, allez dans votre dossier que vous avez téléchargé le modèle d'icône de l'application et cliquez sur le
fichier 30.18 . Ok, donc je viens de charger en action. Et si vous pouvez voir ici, nous avons cette nouvelle icône d'application action Modèle Une icône carrée autour d'elle. Icône, Lorsque vous exportez pour IOS, vous ne voulez pas les arrondis. D' accord ? Ne vous montrez pas à nouveau. On ne veut pas les rondes, on veut juste les carrés. D' accord. Alors, qu'est-ce que tu veux ? Parce que pomme autour de ceux gratuits cliquez automatiquement sur l'icône carrée OK, puis cliquez sur le bouton de lecture. Et ça va te demander un dossier pour mettre ces choses, ce qu'on fera une fois que ça aura fini de penser Ok, je vais cliquer en sécurité. Vous n'avez même pas besoin de vous soucier des autres paramètres. Créez un nouveau dossier sur votre bureau ici. Nous allons appeler ce nouveau dossier Icônes OK et lui donner un nouveau nom. Appelons simplement Icône, Cliquez sur Enregistrer. Il va exécuter son processus d'exportation et le mettre dans toutes les tailles de fichier différentes qu'Apple a réellement besoin. Brillant. Donc, si je vais dans mon dossier Icônes maintenant, vous pouvez maintenant voir toutes les icônes parfaitement exportées. Et voici la version iTunes. Tu sais, quand c'est si grand, c'est un peu pixélisé. Nous aurions pu le brouiller un peu plus, faire d'autres choses, et voici votre icône APP, toutes les différentes tailles dont vous avez besoin. Tu sais, si tu le regardes, comment ça va ressembler sur un téléphone comme celui-ci, on se met au sommet. Si on fait un zoom avant, ça semble bien. Non, il y a un contraste élevé. Quelle icône APP devrait avoir ? C' est simple, vous savez, Voici votre application de guitare cool. Alors c'est tout. Désolé, ça a duré plus de 10 minutes. J' ai vraiment essayé, mais c'est ainsi que vous créez une icône avec quelques conseils et astuces simples, sans avoir à dessiner manuellement personnellement la guitare, dessiner les contours et des choses comme ça. C' est ce qu'on appelle l'art du piratage, et c'est très utile pour être productif. Quand vous n'avez pas de compétences en design, c'est tout. Marquer les prix des pistes de développement point com.
115. Travailler avec @1x @2x et @3x images: Hey, qu'est-ce qui se passe, tout le monde ? Mark Price ici à def pentes dot com. Et aujourd'hui, je vais démêler les mystères de travailler avec plusieurs tailles d'écran et images sur IOS qui juste travailler avec un x deux x et trois X images, et je vais parler de certains des problèmes que vous pourriez rencontrer. Alors allons-y et commençons. Les premières choses d'abord. Nous allons juste créer un projet et vous montrer le problème ici. Donc je vais aller au code X. On y va. Je pourrais créer un nouveau projet. L' application à vue unique est ce que nous recherchons. Je vais agrandir ça ici. Couvrons la majeure partie de l'écran et appelons ça Non, Chante d'
Ailey. D' accord. Tout le reste ici va bien. Ensuite, mettez ça sur mon bureau et ce qu'on va faire, c'est qu'on va faire glisser une très grande image sur l'écran, et on va parler de ce qu'est Alias ing, et tu l'as probablement vu. Et c'est un accessoire. Quelqu' un explique d'abord le problème. Donc, si nous allons à notre planche principale,
vous avez votre contrôleur de vue, et ce que nous allons faire, c'est vous mettre l'image là-dessus, mais d'abord, je veux vous montrer l'image que nous avons. On a cette image de montre ici. Je vais faire un clic droit et aller chercher des infos. Et si je clique sur plus d'informations ici, les dimensions de ceci sont 2877 par 5114. Très, très grande image. D' accord. Et peut-être que tu l'as trouvé sur Internet. Peut-être que votre designer l'a rendu libre. Et peut-être que c'est la taille exportée Peut-être que vous avez accidentellement exporté à cette taille. Mais c'est une très grande image, plus grande que n'importe quelle dimension de l'écran, vraiment, sur
laquelle vous ne l'utilisez jamais. Et alors quoi ? Ce qui arrive généralement quand vous avez probablement fait, c'est que vous avez cette image vraiment cool que vous voulez utiliser. Et donc vous allez à vos ressources ici, vous créez le tracé, cliquez sur le bouton plus et vous allez à un nouvel ensemble d'images. Et tu vas juste appeler cette montre percenter pour la renommer,
tu l' appelles montre. Et puis peut-être que vous le faites glisser ici dans un x cette
image, et ensuite vous allez sur le plateau principal ici et vous mettez votre image Vous ici. Alors allons à notre image. Vous allez le faire glisser ici au milieu. Je vais cliquer sur la règle ici et changer le avec peut-être le 200 par 200 pour l'instant. Et puis je le changerai ici dans une seconde. Une fois que nous aurons l'image, je vais cliquer sur cette petite icône ici. Attributs, inspecteur, on va changer la montre d'orteil. D' accord ? C' est un peu écrasé, prenant beaucoup de temps bas parce que c'est une très grande image ici. Et en passant, vous pouvez également rencontrer des performances d'application lentes en utilisant des images comme celle-ci. Donc si vous avez une sieste qui tourne lentement et que vous utilisez de très grandes images, c'est probablement la raison pour laquelle c'est ce qu'on va faire, c'est changer le mode pour l'adapter, ok ? Et je vais juste le rendre un peu plus grand. Donc, disons que nous voulions cette application interne juste ici au centre. Je vais aller de l'avant et lui donner un correctif avec et la hauteur ici dans les contraintes de mise en page automatique à deux contraintes. Et puis je vais mettre le centre horizontalement dans le conteneur et verticalement dans le conteneur. Ok, donc ce qu'on va faire c'est qu'on va faire ça sur un iPhone 5, qui a un très petit écran comparé à l'image ici. Donc je vais aller à mon simulateur ici, et on va aller sur notre iPhone 5 et on va le faire. Donc, notre application a chargé et assurez-vous que votre écran est sur la taille normale pour
le simulateur. N' appuyez pas sur la commande ou sur la commande trois pour le rendre plus petit. Fais que c'est Bigas C'est censé l'être. Et si vous remarquez ici, accord, les bords de cette montre ont des lignes cheminées. D' accord. Lignes très déchiquetées autour des bords. C' est ce qu'on appelle un crédit-bail. Et cela arrive quand vous avez une très grande image et qu'elle est réduite. Ok, maintenant Photoshopped programmes d'édition d'images. Ils sont conçus pour réduire les images. Donc, vous n'avez pas de programmes d'alias comme X Code dans l'Iowa's. Ils ne sont pas vraiment intégrés pour faire ça. Au moins, ils ne le font pas très bien. Et donc on ne veut pas déchiquetés. INGE est moche,
car on n'a pas l'air bien au téléphone. Il serait encore pire si vous aviez sur le téléphone et pas le simulateur à est il va faire votre application courir vraiment lent ayant cette image massive sur ce petit écran qui
est réduit vers le bas. OK, alors parlons de réparer cette année. Je vais faire une capture d'écran pour qu'on puisse la comparer plus tard. Donc je vais dire, commande s pour enregistrer cette capture d'écran sur le bureau. Et alors nous allons commander Qué de quitter le simulateur. Et ce que je vais faire maintenant c'est que je vais aller de l'avant et minimiser le code X ici parce que je vais prendre cette image de montre, d' accord ? Et ce qu'on va faire, c'est qu'on va l'éditer et l'exporter comme il faut. Mais les premières choses d'abord. De quelle taille avons-nous besoin pour réaliser nos images ? Vous vous êtes probablement demandé beaucoup que vous-même. Ne faites pas 50 x 50 pixels. 101 100. Qu' est-ce que je fais ? Et il y a
beaucoup, beaucoup de façons de le faire, et beaucoup d'entre vous font probablement déjà des choses différentes qui ne sont pas comme
je le fais et c'est bien. Alors quoi ? On va faire ce qu'on va faire parce qu'on va aller sur Internet et je
vais aller à Voyons voir ici. Ce type Ok. Par ailleurs, si vous voulez cette image et de donner du crédit ici, allez à la conception Cray designs fou de qualité de slash Dash trois tirets plat icônes de tiret. Et j'utilise l'icône de ce pack d'icônes juste ici. Ok, c'est de là que j'ai eu cette image. Bon, Donc ce que vous voulez faire est d'aller sur Google et de faire une recherche pour les tailles de capture d'écran de l'Iowa. D' accord ? Et vous pouvez cliquer sur ce haut ici. iTunes, connectez APP, propriétés. Et c'est la documentation officielle Apple sur les différentes tailles d'écrans dont vous aurez besoin pour votre application vous donne ces dimensions ici. Donc, je fais défiler ici et ici vous pouvez trouver les téléphones 3,5 pouces. C' est le vieux iPhone 4. Et pour s quatre pouces sont l'iPhone cinq et cinq s 4.7 est l'iPhone six et six s et 5.5 est l'iPhone six plus. Ok, Donc ce que vous voulez faire, c'est avec vos images avec toutes vos images pour votre application. Donc, lorsque vous voulez concevoir des images qui s'appliquent à toutes les tailles, vous voulez construire à la plus grande taille d'abord, donc je ne parle pas d'iPad dans cette application. Si vous construisez un iPad, vous pourriez faire des choses similaires. Bien que l'iPad ait une résolution similaire, il
vous suffit de prendre en charge la plus grande résolution ici. OK, mais pour ces différents écrans de téléphone, ce que nous voulons faire est que nous voulons prendre en charge l'iPhone six plus qui est actuellement le plus grand appareil de téléphone à
écran qu'ils ont. Et s'ils font un plus gros téléphone, je vais pleurer, parce que c'est ridicule. Cette chose est énorme. J' en ai un et eso ce que nous voulons faire est construire à la plus grande résolution ici. Laisse-moi zoomer ici pour que ça ne t'aveugle pas. Ok, donc c'est 2228 par 12 42. Encore une fois, il y a beaucoup de façons de le faire. Il y a des programmes qui ont différentes tailles d'écran de captures d'écran pour iPhone qui pourraient le faire automatiquement
pour vous. On va le faire dans la boutique photo, alors on va ouvrir la boutique photo, et on veut créer une nouvelle toile qui est si grande. Donc je vais faire un nouveau fichier et on veut que le avec se porte bien, en fait veulent le 12 42 qu'on veut 12. 42 par 2 à 0 et cliquez sur. OK, donc c'est ton iPhone six plus Ok, assez grand. Droit ? Alors, allons-y et glissez cette image de montre ici. Regarde comme c'est grand. Il sent toujours l'ensemble de l'écran. D' accord ? Bien trop grand. Donc, c'est iPhone six plus et nous voulons prendre en charge toutes les résolutions d'écran, mais notez ici sur Photoshopped, il n'y a pas d'alias ing. L' image semble lisse et propre sur tous les bords, et c'est exactement ce que nous voulons. Donc ce que je vais faire, c'est que je vais faire pour transformer ça vers le bas à une taille qui
va bien paraître sur un iPhone six plus et relativement toutes les tailles d'écran. Donc, disons que nous voulons une montre de cette taille. On le veut au centre. Donc je vais commander un pour sélectionner tous les présidents pour aller dans mon mode de sélection et puis cliquer cet alignement vertical sur la ligne horizontale juste là pour le mettre au centre. Ok, donc on a une superbe montre. Nous savons que c'est l'iPhone six plus, donc nous savons que nous sommes en train de construire pour la plus grande taille d'écran, ce qui est génial. Et si vous ne savez pas que cet iPhone six plus est à trois X. Ok, c'est le nom des images pour la troisième résolution triple. D' accord. Et ce qu'on va faire, c'est éteindre l'arrière-plan ici, cliquer sur le globe oculaire ici, et je vais aller à l'image et ensuite couper parce qu'on veut juste la montre. On sait que c'est la bonne taille maintenant, donc il y a notre montre. C' est la taille pour iPhone six. Plus. Maintenant, comment pouvons-nous l'obtenir à un x et deux X pour nos petits appareils ? Je vais aller au fichier export en tant que. Et ce qu'on va dio, c'est qu'on va créer des classes de taille, des tailles d'image ici sur le côté gauche. Donc en ce moment, il s'agit juste d'exporter une copie à un X. Et dans ce cas, un X est la taille réelle, ce qui signifie la taille d'origine. Ok, ne confondez pas. Ce n'est pas un x pour iPhone fonctionne. La plus petite image. Taille 1 X, c'est dire, Hey, c'est la pleine taille 100%. Donc je vais cliquer sur le signe plus ici, accord ? Et donc si c'est la taille normale, on doit aussi faire une on doit aussi faire une
demi-taille,
non ? demi-taille, Donc 0,5 x est ce que nous voulons faire ici. D' accord ? Et le sodium a la taille ici, et aussi il nous permet de lui donner un Suffolk, ce qui est vraiment cool. Maintenant, je peux changer le Suffolk. Et juste pour le bien de l'iPhone, je peux dire à deux X et puis ici sur la version one x, je pourrais dire à trois X Rappelez-vous, ne soyez pas confus. Le X signifie qu'il est pleine taille ici dans un magasin de photos, mais dans sur IOS, il doit rester à trois, expliquant que c'est la plus grande taille 0,5 x évidemment est la moitié de cela, donc je dirais à deux X et alors il n'a pas pour être parfait. Um, vous êtes d'accord pour changer les paramètres ici pour la taille qu'il doit être. Ça n'a pas besoin d'être parfait au pixel, comme la moitié et la moitié, mais on va dire 20.25 x et ça va être notre à un X. mais on va dire 20.25 x et ça va être notre à un X. mais on va dire 20.25 x et ça va être notre à un X. mais on va dire 20.25 x et ça va être notre à un X. la plus petite taille ici. Ok, parce que nous voulons prendre en charge les différentes tailles d'écran sur IOS, donc il n'y a pas d'alias. Chante aussi, tu ne veux pas d'orteil. Une chose que vous ne voulez pas non plus dio dans la chose opposée de chose alias est de prendre une petite image, puis étirez-le pour les appareils plus grands qui le feront paraître floue et laid. Ok, donc ce que je fais ici est la meilleure façon de le faire. Plus grande image vers le bas. Donc maintenant que nous avons cette taille est définie, je vais cliquer sur tout exporter. Et ici, sur mon bureau, je vais faire un nouveau dossier et écouter. Appelle ça. On va appeler ça pour l'instant, et je vais cliquer sur Exporter. Bon, donc nous avons un Dash un sans titre. C' est que je n'ai pas dit le nom du dossier. C' est bon. Si sans titre. Dash 12 x et trois X. Et si nous faisons un clic droit et aller pour obtenir des informations sur l'un X, il est 122 pixels par 2 17 Si nous allons aux trois X, il devrait être la taille originale ici. Ou 4 88 par 8 68 Pas la taille originale de l'image que nous avions à l'origine, mais la taille que nous avons mis sur notre iPhone six plus toile, ce qui est parfait. Donc, nous avons trois images ici maintenant quoi ? On va minimiser Photoshopped. Je vais ouvrir le code X à nouveau, et cette fois, je vais les actifs et je clique sur cette montre et je la supprime. C' est juste la mauvaise taille. Et je vais ouvrir mon dossier d'icônes et maintenant tu peux juste faire glisser un x dans un x deux x dans deux x et trois x dans trois x, mais tu ne savais pas que j'allais dire ça. Maintenant
qu' on a les images là-dedans, je vais revenir à mon histoire. Ward. Regarde, c'est toujours sélectionné, ce qui a l'air super. Maintenant, vous remarquerez sur la toile ici que l'image peut sembler légèrement floue, mais c'est correct parce que c'est juste que le campus n'est pas ce qui apparaît réellement sur l' écran ici. Et je vais faire le changement de commandement. K déclaim mon projet Parfois des images. Sauf si vous nettoyez votre projet, les vieilles images peuvent persister sur le simulateur. Je viens de voir que c'est arrivé quelques fois. Maintenant que nous avons les images sélectionnées, allons de l'avant et relancez l'iPhone cinq, et voilà. Et regarde ça. Il n'y a pas d'alias. C' est agréable et lisse comme vous pouvez le voir, et je vais enregistrer cette image ici pour qu'on puisse les comparer ici. Je vais appeler ça. On va nous appeler cinq tirets pour appeler l'ancien 5-1 Ok. Et je vais les tirer ici et faire une comparaison. D' accord ? Donc ce que j'ai fait, c'est que je viens de tirer les captures d'écran avant et après. Donc, sur le côté gauche. Comme vous pouvez le voir, il y a beaucoup de lignes déchiquetées autour de ce bord. C' est en utilisant cette grande, énorme image et avoir iPhone Skela vers le bas quand nous utilisons les deux X Et quand nous utilisons les images un
x deux x et trois x et les réduire à l'échelle sait comment tout est lisse. Ça a l'air très bien. Ok, et si tu penses que les bords sont un peu flous. Ils ont l'air un peu flous parce que je fais un zoom ici sur Photoshop. Zoom supplémentaire pour que vous puissiez voir la différence. Mais ça a l'air bien. Ça a l'air très bien. Donc maintenant, vous pouvez voir la différence avant et après. Ce que je veux faire maintenant est de vous montrer qu'il a aussi l'air génial sur un écran plus grand, donc je vais ouvrir le code X et arrêter le simulateur. Et cette fois, change-le pour iPhone six s plus le grand papa. Et c'est là. Ça a l'air fantastique. OK, si on venait d'utiliser le X, ça aurait l'air très floue. Et pour te montrer d'accord pour te montrer à quoi ça ressemblerait. Donc, vous pouvez savoir ce que Not to dio. Je vais supprimer les deux X et les trois X, et je vais le reconstruire. Et vous devriez remarquer qu'il est très floue maintenant sur son iPhone six plus. Regarde ça. Donc, les règles de base vont bien, créez votre image à la plus grande taille, puis la dimensionner. Ce qui veut
dire, remontons. Règle numéro un première règle de l'iPhone Development Club est de créer un canevas quel que soit le
programme que vous avez utilisé pour la plus grande taille que vous supportez. Donc, dans notre cas, iPhone six plus Règle deux. Quand vous prenez votre image, placez-la sur cette toile. Donc, il ressemble à la taille que vous voulez. D' accord. Et puis règle trois. Cette exportation que la plus grande taille d'image à un X et deux x tailles en plus des
trois accises d'origine , puis apporter ces dans le programme de sorte qu'il fonctionne sur toutes les différentes
densités d' écran résolutions d'écran. Donc c'est comme ça que tu fais ça assez cool. Et juste que tu n'as pas la mauvaise façon de le faire. Je vais les remettre ici à X et 3 X,
et ça a l'air super. C' est comme ça que vous faites, les enfants. Mark Price ici pistes Deb dot com À plus tard.
116. Compte Apple Apple: Hey, qu'est-ce qui se passe, tout le monde ? Mark pricier pentes dot com Aujourd'hui, nous allons parler de préparer le magasin APP pour, alors allez-y et allez à votre compte développeurs apple dot com Maintenant, vous avez probablement déjà signé pour cela. Allez au centre des membres et ah, connectez-vous ici et c'est ce que nous voulons. Ok, donc voici le centre des membres. ce moment. n'est pas parce que vous faites partie du centre de membres que vous pouvez réellement créer des siestes
iPhone et sur l'APP Store. Pour ce faire, vous devez vous inscrire en tant que développeur Apple enregistré sur l'App Store. Et donc, euh, tu dois payer 99$ pour faire. C' est 99$ par an. Cela vous permet, Teoh professionnellement. Vraiment ? Saps de l'absolu quand tu veux. Quand vient le moment où vous voulez télécharger la sieste, vous feriez mieux, euh, engrenage mur déjà et préparez-vous à payer 100 dollars d'Apple parce que c'est 100$ par an si vous
voulez sortir APS. Donc, euh, c'est ici. iTunes se connectent. C' est ce qu'on cherche. , et, Euh,
et, au cas où, ça n'apparaîtrait pas sur votre écran. Hum, nous allons taper le développeur Apple enregistré. D' accord ? Et voyons si nous allons choisir une adhésion. Voyez ce qui se passe lorsque nous allons sur ce site ici. Il n'a jamais été aussi facile à développer pour toutes les plateformes. Bloc à
bulles, comparez les adhésions. Ok, on y va. 99 $ par an. Adhésion. Ok, donc c'est tout. Allez sur cette page ici. Vous pouvez en apprendre davantage sur l'inscription, et cela vous prendra. On doit y aller. Allez-y et passez par le processus d'inscription en tant que développeur Apple payé
développeur Apple . D' accord. Tu dois payer les 99$. Commencez votre inscription. Juste ici. Voici donc le développeur eurail dot apple dot com slash programmes slash inscription Démarrez votre inscription là vous donner tout ce dont vous avez besoin. D' accord. Maintenant, vous pouvez vous inscrire en tant qu'individu ou en tant qu'organisation maintenant un individu, selon le pays dans lequel vous vivez. Les États-Unis. Tu dois utiliser ton numéro de sécurité sociale. Vous pouvez également vous inscrire est organisation. Mais sachez que si vous faites ça, vous devez avoir un numéro de Dunnes et Bradstreet. Ça prend du temps. Ça pourrait prendre quelques semaines pour que tout ce processus soit terminé. Donc juste pour que vous
sachiez, vous pouvez faire l'un ou l'autre ou, euh et ainsi faire cette vidéo de posit jusqu'à ce que vous soyez prêt à partir jusqu'à ce que vous soyez officiellement inscrit et puis revenez. Bienvenue de retour. Tu es comme si je n'étais jamais allé nulle part. Je ne suis allé nulle part,
mais j'espère que tu l'as fait. Je ne suis allé nulle part, Alors, d'accord. Donc, retour à notre développement d'une pomme dot com Une fois votre signe que nous devrions voir ce iTunes connecter votre vous pouvez cliquer dessus, et il va vous emmener à votre portail iTunes connecter où vous pouvez réellement gérer votre APS. D' accord. Développeur à Apple dot com Que cet abonnement gratuit qui vous permet de développer est différent de pouvoir aller à iTunes se connecter et faire un payant, hum, ce qui est vraiment se connecter ? Ok, alors allez sur iTunes, connectez-vous à Apple dot com. C' est là que vous allez gérer vos applications. Vous vous connectez là et ensuite, euh, vous êtes prêt à y aller. Vous avez tout ce dont vous avez besoin ici. Alors, on y va, en train de charger. On y va. Il veut que je revoie certains accords. Je n'ai pas encore mis à jour mes accords. Ils ont apporté des changements à leur jargon légal et tout ça. Ok, donc voici à quoi ressemble le portier. Um, c'est cool. IOS neuf n'est pas encore sorti au moment de cette vidéo, mais il vous permet d'inviter des testeurs même à votre IOS neuf abside bêta, ce qui est vraiment cool. Des trucs tellement cool. Voici vos analyses APS. Vous savez, euh, Analects à l'intérieur de votre application. Les choses qui se passent que vous pouvez suivre les ventes et les tendances, bien
sûr. Paiements des rapports financiers, utilisateurs
publicitaires et des rouleaux qui peuvent accéder à iTunes connect. Qui sont vos testeurs ? Des choses comme ça. Accords, etc. OK, on va aller dans mon APS. Ce sont des APS plus anciens et construits il y a un moment. Cela fait un bonhomme de neige a effectivement obtenu de bons $500,000 ce qui était cool. C' est mon premier pas ici. Cette baisse de vengeance comme en 2009. C' est terrible. Absolument terrible. La plupart de la construction à l'envers que je construis pour d'autres personnes s o. toute façon, des trucs
cool ici. Donc on est dedans. C' est tout ce que je vous montre. Tout fonctionne. Vous pouvez sélectionner vos tableaux de bord et vos objets à partir d'ici. Et c'est comme ça que vous vous inscrivez Est un développeur Apple payé développeur et allons de l'avant et obtenir tout le reste prêt pour que nous puissions télécharger
117. Certificats de développement: Hé, quoi de neuf, tout le monde ? Mark Price ici savons sourds dot com. Et aujourd'hui, on va parler de se préparer. Nous pouvons commencer à distribuer APS sur le magasin APP ou à les distribuer à d'autres personnes , ou même simplement à construire pour votre appareil. Euh, donc je vais ouvrir le code X ici et juste pour le savoir historique. Lorsque l'APP Store est sorti pour la première fois, déploiement d'une APP a été le plus grand cauchemar au monde. Maintenant, encore, avec cela étant dit, Apple est toujours assez tristement célèbre pour avoir un déploiement très intense et le processus d'examen pour leur absent pas presque aussi facile que Google Play ou d'autres plates-formes. Mais vous obtenez des trucs de très haute qualité. Mais Apple est très important en matière de sécurité, et il s'agit donc de sécurité. Donc, tout problème que vous rencontrez a à voir avec eux qui veulent garder les choses en sécurité. Ils voulaient maintenir leur plate-forme, des choses comme ça. Mais je vais vous expliquer comment le faire afin que vous n'ayez pas à passer par tous les problèmes que beaucoup de gens traversent et que j'ai effectivement publié sur l'APP Store. Au moins 30 APS moi-même étaient en fait à travers ce processus. Donc je vais te donner le meilleur du meilleur. Ok, alors choisissez le projet que vous souhaitez télécharger sur l'APP Store. Ok, je vais cliquer sur la vitrine des pentes de la mort qu'on a construite, accord ? Et si on clique sur notre petite icône bleue ici, accord, et si on regarde ici, on a besoin d'une équipe ici. Peut-être que vous avez une équipe ici. Peut-être que tu ne le fais pas. Ok, donc le mien. Je n'en ai pas,
mais la tienne pourrait en dire aucun. D' accord. Et il y a donc des choses que vous devez faire pour vous préparer à être en mesure de construire sur votre appareil ainsi que Teoh publier sur l'APP Store. Et toi, comme tu viens de dire que je sais que je me répète. Alors allons-y et commençons. Alors,
sortons Alors, de là et partons et ouvrons. Google Chrome. D' accord ? Et aller de l'avant et aller au développeur dot apple dot com. Connectez-vous avec le compte avec lequel vous avez créé un compte apple. Sélectionnez votre équipe. Si vous en avez plus d'un, il ne le fera probablement pas parce que vous êtes nouveau, et ,
euh, ça va me connecter. Ok, donc ce qu'on veut parler des certificats, des identifiants et des profils. Et en ce moment, sur cette vidéo, on ne parle que de certificats, accord ? Et qu'est-ce qu'un certificat ? J' ai juste cliqué sur ça, au fait, si vous ne le saviez pas, OK, alors puis cliquez à nouveau sur les certificats ici sur le côté gauche. Ok, euh, c'est là, laisse-moi revenir en arrière. Je ferais mieux de l'expliquer ici ou non, si ça ne charge pas. Donc, cet écran principal ici, cela dit les différentes choses que vous avez à votre disposition dans votre développement Apple dot com certificats de compte, identificateurs et profils. C' est là que vous allez créer des idées d'application pour APS que vous allez faire C'est là que vous pra vision vos AP afin qu'ils puissent être testables sur les appareils et les certificats Fondamentalement sont ce qui vous
permet de distribuer des applications. Et vous pouvez le faire pour les saps de l'Iowa, Mac ups et les extensions de safari. Nous allons cliquer sur les certificats ici sous IOS APS et je dois déjà le faire. J' en ai un pour la distribution et un pour le développement. Et comment cela fonctionne, Apple veut s'assurer que les gens sournois ne font pas de mauvaises choses avec leurs produits logiciels , leur
distribution, etc. Et donc, ce qu'un certificat fait, c'est qu'il vous permet de lier votre ordinateur spécifique. D' accord. Ton ordinateur spécifique, Teoh, euh ton , compte
Apple. Vous pouvez donc distribuer des choses afin que vous puissiez distribuer APS afin que vous ne puissiez pas simplement, par
exemple, créer un certificat et le donner à autant de personnes que vous le souhaitez. Ça ne marchera pas. Il est lié à votre porte-clés informatique spécifique, et il y a des moyens de contourner cela. Mais sachez juste que c'est lié à votre ordinateur spécifique. Donc, disons que vous vendez votre ancien ordinateur avec lequel vous avez téléchargé l'adaptateur APS et comme, je vais juste utiliser mon nouvel ordinateur et le faire bien, tout d'un coup, vous êtes des certificats ne fonctionnera plus. Vous allez devoir les révoquer et en créer de nouveaux pour votre nouvel ordinateur. Ok, choses très importantes. Donc tu n'en auras pas ici, donc je veux que tu cliques sur le signe plus. D' accord. Sous Mémoriser, sous les certificats étaient sous tout ok. Et le 1er 1 que vous voulez est le développement APP de l'Iowa. Tu vas en avoir besoin pour pouvoir construire sur ton appareil. Donc le développement de l'application IOS. Vous allez cliquer dessus, puis faire défiler vers le bas et cliquer. Continuer et il parle de créer un fichier CSR. Ok, une demande de signature de certificat. Et, euh, c'est comme ça que ça va lier votre ordinateur à votre compte. Et donc ce que nous voulons faire est de cliquer sur Continuer, puis il vous indique ce qu'il faut faire. Je vais juste te montrer quoi faire pour que tu ne t'inquiètes pas. Donc, faites commande plus espace pour ouvrir le projecteur, leur reconnaissance, ou vous pouvez aller à votre détecteur ici. On le fera manuellement une fois. Une seule fois. Je ne recommencerai pas parce que c'est un long chemin. Cliquez sur votre Finder. Allez dans vos applications. D' accord. Et dans votre dossier d'applications, vous pouvez avoir pendant les choses pour moi, mais nous devrions toujours avoir tous les deux un dossier d'utilitaires. Et nous sommes à la recherche de celui-ci ici appelé clé d'accès point App. OK, double-cliquez dessus. Ou bien sûr, vous pouvez faire l'accès à la chaîne de clés de l'espace, et il apparaîtra juste là. OK, alors double-cliquez sur votre accès au porte-clés. Et c'est la chaîne de clés qui stocke les clés et les valeurs sur votre matériel de sécurité informatique. Donc c'est important. Voulez-vous faire est de vous assurer que la journalisation est sélectionnée ici. D' accord. Et puis ce que je veux que vous fassiez, c'est aller en haut à gauche,
aller à l' assistant de certificat d'accès à la chaîne de clés, demander un certificat à une autorité de certification et peut-être que vous êtes confus. Peut-être. Qu' est-ce qui se passe ici ? Je ne sais même pas ce que c'est. Il y a tellement de choses. Il y a tellement de trucs à traiter avec les certificats, les identificateurs et les clés et le
cryptage A et toutes sortes de choses est que vous n'avez pas besoin de vous inquiéter à ce sujet. Tu n'as qu'à suivre ces étapes et tu seras tout à fait OK. Donc, euh, enregistrez sur le disque cliquez dessus. Permettez-moi de préciser, garder leurs informations et d'aller de l'avant et de mettre votre email dans. Il ne va pas vous envoyer un e-mail ou faire quoi que ce
soit, qu'il le lie simplement au certificat et cliquez sur. Continuez. Cela ne doit donc pas être le même que ce qui se trouve dans votre compte Apple. Ça pourrait être n'importe quoi, mais
ça n'a vraiment pas d'importance. C' est le truc important ici. Et nous allons l'enregistrer sur le bureau cliquez, enregistrer, puis 2048 bits sont dire est ce que nous voulons. D' accord. Et puis cliquez sur terminé, et ce que vous verrez c'est qu'il se trouve maintenant sur votre bureau ici ou où que vous soyez. Euh, et donc nous avons notre certificat. Retourne à ton portail ici, d' accord ? Et voici quelque chose de vraiment important. Si vous rencontrez un problème avec Google Chrome ou Firefox sur le site d'Apple, il est très fréquent d'avoir des problèmes. Donc, vous safari. Ils supportent en fait le safari. 100% surprise, surprise, son propre créé par Apple. Mais de toute façon, si vous avez des problèmes à télécharger, choisir des fichiers, n'importe lequel de ces choses ici, allez-y et utilisez safari car il va nous couler pour travailler. Et certaines choses ne fonctionnent tout simplement pas sur Google, Chrome et Firefox. Et c'est comme ça qu'Apple l'a fait. Donc OK, nous sommes à l'écran, cliquez sur choisir le fichier et ils vont à votre bureau et sélectionnez le fichier que nous venons de créer engourdissement comme celui-ci. D' accord. Et ce qui va se passer, c'est que ça va générer quand tu cliqueras. Générez ici. Il va générer un nouveau certificat. Ok, je ne vais pas faire ça, ok ? Parce que j'ai déjà mes certificats, et je ne veux pas de problèmes. Euh, Apple et Exco peuvent être ennuyeux sur les certificats et les profils de provisionnement. Tu ne t'embêtes pas. Donc ce que je veux que tu fasses, OK est cliqué pour générer le bouton, et ça va générer le fichier, accord. Et puis ça va te permettre de télécharger ce fichier, accord ? Et peut-être que je devrais juste le faire. Je vais le faire juste pour vous les gars. Ok, voilà. Voici donc un certificat que je viens de créer. D' accord ? Je fais ça pour toi à mes frais. Ok, donc tu as ton dossier cliqué vers le bas. D' accord. Comme vous avez pu le voir, c'est juste là. Maintenant, ce que vous pouvez dio, c'est que vous pouvez juste cliquer sur ce fichier, et ce qu'il va faire, c'est qu'il va le charger dans votre porte-clés. Et fondamentalement, il va dire maintenant que vous pouvez développer APS et les distribuer sur votre appareil ainsi que sur votre point sur votre appareil. Seulement parce que ou quels que soient les périphériques sont provisionnés parce que ce n'est pas une sorte de distribution de celui-ci. Il s'agit d'un certificat de développement. Donc, si je vais sur le côté gauche ici, vous auriez dû télécharger ceci, et vous pourriez simplement double-cliquer dessus ou cliquer dessus une fois. Ah, à partir du Google Chrome Downloader ici, il va charger dans votre porte-clés. D' accord. Et aussi, vous devriez remarquer que si vous passez ici à vos certificats et que vous cliquez sur tous, vous aurez un nouveau certificat. OK, tu n'en auras qu'un. Je dois ici maintenant. Merci beaucoup. Et, euh, donc je dois ici et fondamentalement, c'est un certificat disant, Hey, je pourrais développer et vous pourriez avoir plusieurs certificats. Il y a une limite. Je ne sais pas ce que c'est, et peut-être que c'est quatre ou cinq. Mais de toute façon, il y a un certificat juste là, et ,
euh, vous pouvez aussi, si vous ne le voulez pas, vous pouvez le révoquer, ok ? Et ah, c'est bon. Je vais me débarrasser du mien juste pour montrer que vous avez écrit révoquer le certificat l'
invalider dans tous les services connexes ou les profils de provisionnement qui utilisent ce certificat peuvent être affectés. Ok, eh bien, on ne l'utilise même pas, donc je vais me débarrasser de ça comme c'était maintenant. Ok, donc tu as téléchargé le tien, ok ? Et ce que je veux que vous fassiez maintenant c'est aller ici à votre code ex, et je vais vous montrer une autre façon que vous pouvez après avoir créé votre certificat sur le site Web au lieu de le télécharger et de cliquer dessus d'une autre façon, vous pouvez en fait couler, et je pense que c'est la meilleure façon de le faire. Donc, la première façon est de télécharger le certificat et de l'installer en double-cliquant dessus de la meilleure façon. Parce que parfois cela ne rafraîchit pas automatiquement votre code ex, et vous devez aller creuser, trouver ce qui se passe les meilleures façons de le faire. Avoir le code X ouvrir goto X code goto préférences et cliquez sur comptes. Ok, si c'est vide pour toi juste ici. D' accord. Si votre compte n'est pas ici, cliquez sur la connexion plus et cliquez sur Ajouter apple i d. Et ce que vous voulez faire est d'ajouter votre nom d'utilisateur et votre mot de passe pour votre compte apple dot
com développeur toe . Euh,
euh , ou quel que soit le compte que vous avez utilisé pour vous inscrire. Ok, super important de le lier ici et cliquez sur Ajouter après qu'il ajoute. Si vos informations d'identification sont correctes, vous verrez l'écran ici il sera regardé. Ça ressemblait à ça et tu es probablement juste d'avoir ton nom ici. Je dois le faire parce que j'ai plusieurs comptes avec lesquels je travaille. Mais vous devriez voir quelque chose ici à gauche avec votre compte. Et vous devriez voir votre nom ici. Ce que je veux faire, c'est double-cliquer sur ton nom et ça va se charger, OK ? Et c'est vraiment cool. Il coule juste ce qu'il a fait. Est-ce que ça vient de couler votre compte ? Je viens de couler tes certificats et des choses comme ça, et Ah, c'est beaucoup de certificats que j'ai. J' ai beaucoup d'APS et ah, c'est que
c'est en fait une nouvelle fonctionnalité sur le code X sept. Téléchargez tout. Je ne l'ai jamais vu avant. Donnons-lui un coup de feu. Ok, alors quoi ? Je pense que c'est juste
parce que dans le passé, ça coulerait automatiquement. Quoi ? Je pense qu'il est juste que téléchargé sur mon ordinateur s o il serait les installer pour vous. C' est donc l'autre façon de le faire. Et la raison pour laquelle je dis que c'est une meilleure façon de le faire parce que vous garantissez que ce que vous voyez ici est ce que vous avez. Et donc, euh, ce que vous devriez voir sur cet écran est sur Lee, probablement hum, celui-ci ou celui-ci ? Vous n'en avez peut-être pas, en fait. Ici, vous pouvez seulement avoir le développement IOS. C' est bon, parce que c'est tout ce qu'on a créé. Mais maintenant, nous sommes complètement couler Tok. Et si vous voulez commencer à développer APS, nous n'y sommes pas encore. D' accord ? Nous devons créer un profil de provisioning pour notre application spécifique. Ok, donc vous avez des certificats qui donnent à votre ordinateur la permission de détruire les ups de distribution, mais tant que l'application spécifique sur laquelle nous travaillons n'a pas un profil de provisioning, nous ne pouvons rien faire. Mais nous ne parlons pas de profils de provisionnement. Juste que nous parlons toujours de certificats pour retourner sur le site Web. Et maintenant, ce que nous voulons faire est de créer un certificat de magasin d'applications. Alors cliquez ici et vous devriez en avoir un. C' est le développement de l'Iowa, mais remarquez que je n'ai pas la distribution de l'Iowa signifie que vous distribuez. Mm. D' accord. Donc ce que vous voulez faire est juste ici. Cliquez sur Production. D' accord. Et exactement la même chose. Cliquez sur le signe plus. D' accord. Mais cette fois, remarquez comment les développements disparaissent parce que sa production cette fois klik app store et au crochet. Donc, ce que nous disons est dans le avec le développement, nous donnons à notre ordinateur la permission de distribuer APS localement sur notre propre appareil. Mais maintenant, avec le certificat de production, nous disons, Hey, donnons la possibilité de distribuer cet ad hoc, qui signifie que vous pouvez l'envoyer via Internet à d'autres personnes. Ils peuvent le télécharger, ou nous pouvons l'envoyer à l'APP Store pour deux raisons. L' une est que vous pouvez publier votre application sur l'APP Store, ou vous pouvez également publier dans l'absolu pour les tests bêta. Donc, le résumé gère maintenant les tests bêta et la soumission des magasins AP au public et les
tests bêta sont nouveaux. C' est leur nouveau programme de vol d'essai. Il n'y a que trois ou quatre mois, alors d'accord, cliquez ici. Nous avons besoin de la possibilité de soumettre à l'APP Store car nous allons le
faire plus tard, puis cliquez sur Continuer. Ça va demander exactement la même chose. Donc ce que vous dio est vous juste le même que nous avons déjà créé ici qui devrait être sous bureau. Donc, si vous avez supprimé pour revenir en arrière et l'obtenir, allez-y et choisissez le fichier, puis, euh, passez à nouveau le processus, téléchargez-le et installez-le. Ou encore, allez ici aux préférences de code X. Assurez-vous que vos comptes ont été ajoutés ici, double-cliquez ici et puis je devrais apparaître ici, puis vous pouvez le télécharger. Ok, je pense que c'est la meilleure façon de le faire. Et maintenant, nous avons un certificat de distribution sur notre ordinateur et un certificat de développement , ce qui signifie que notre ordinateur est maintenant approuvé pour distribuer et développer APS. Et je sais que c'est bizarre. C' est un processus n'a pas de sens. Mais c'est bon. C' est ce que tu dois faire. C' est ce que dit la Pomme de Dieu. Et nous allons aller de l'avant et couper cette vidéo et passer à la prochaine, qui consiste à provisionner notre application pour que nous puissions réellement développer. Ok, Vous devez être en mesure de provisionner dans vos, euh, appareils avec le bâtiment absolu, parce qu'Apple ne vous permet pas d'installer APS sur des appareils qui ne sont pas approuvés. De toute façon, on va l'appeler
118. Profils de développement: Salut, Mark. Pricier morts espère point com et parlons de profils provisoires. Donc, dans le dernier épisode passionnant, nous avons parlé de la mise en place de certificats afin que notre ordinateur puisse être reconnu comme développeur
enregistré et distributeur d'APS. Mais maintenant, nous devons faire ensemble de profils de provisioning. Et si vous revenez au développeur, pas Apple dot com et retournez dans notre portail ici, OK, le fond. Vous allez voir quelque chose appelé profil de provisioning. Donc je vais cliquer sur tout, et c'est un très vieux, donc les profils de provisionnement disent essentiellement, Hey, vous avez une application spécifique que vous développez. Quels appareils et utilisateurs pouvez-vous construire aussi ? Ainsi, chaque appareil de chaque iPhone a ce qu'on appelle un vous i d. Un identifiant unique qui identifie cet appareil et vous ne pouvez pas installer une application sur le
téléphone d'une personne à moins qu'elle ne soit enregistrée dans le profil d'approvisionnement. Ok, donc il y a quelques autres choses que nous devons faire avant que nous puissions même avoir un
profil de provisioning , cependant, parce que rappelez-vous comment Juste dit un profil provisoire indique quels périphériques continuent quels AP Eh bien, nous n'avons pas encore créé d'application, et nous le faisons en créant une application I d. Donc la première étape est ici sur le côté gauche. Créer une application i d klik idées d'application ici. J' ai un tas de projets différents dans le passé. Beaucoup, beaucoup de projets différents pour il y a de nombreuses années. Wow. Et ce que vous voulez faire est de cliquer sur le bouton plus. On va en créer un nouveau. Ce que vous faites, c'est que vous créez une application I d pour votre application. Ok, tu vas vouloir une nouvelle application. Je d pour chaque application que vous créez. Ok, donc avant de pouvoir soumettre à l'App Store avant même de pouvoir tester cela, vous devez créer sieste I d. Et cette description ici est juste un nom. D' accord ? Tout ce que tu veux. Rien. Ça n'a pas vraiment d'importance. Donc je vais dans mon cas, je vais dire « Dev Slopes Showcase », accord ? Et c'est bon. Et après que j'ai préfixe Ok, il y a une équipe puissante, il y en a plein d'autres. Ça n'a pas vraiment d'importance. Il suffit d'utiliser la valeur par défaut quand cela vous donne d'accord. Et, euh, ce que vous pouvez dio, c'est que vous pouvez créer une application explicite I d ou vous pouvez créer une application générique qui vous
permet de construire à plusieurs APS. Je vous recommande de créer une application explicite. J' en construis un pour chaque application. Um, donc vous pouvez identifier explicitement à
quel APS appartient ce profil de provisioning. D' accord. Et donc dans notre cas, et ils recommandent un style de nom de domaine inverse est que vous pouvez voir ici. Donc dans notre cas, nous allons faire la vitrine des talus sourds ou n'importe quelle application que vous faites, et quelqu'un a dit, com dot talus sourds dot showcase. Ok, donc c'est le paquet que j'ai d. et, , au fait, c'est
ce que j'ai besoin de faire dans tes ex codas. Eh bien, deux. Ok, donc voici notre application. Je d. Et il semble bon et OK,
donc les services APP. Donc, ces services aériens qui sont associés à votre application I d centres de jeux automatiquement inclus. Si vous construisez une application que les soins de santé, vous aurez besoin d'un kit de santé sélectionné. Ce que vous devez faire, c'est que vous devez indiquer à Apple quels services vous avez inclus dans votre application. Ok, Même si vous commencez à développer l'encodage, il peut fonctionner leur attente locale sur votre appareil ou autre. Um, ou excusez-moi dans votre code. C' est la construction de Fine. Mais tant que vous n'agissez pas jusqu'à ce que vous activez ces services, cela ne fonctionnera pas. Donc, ce que vous voulez faire est de sélectionner ceux que vous allez utiliser dans notre cas,
ce ne sera pas l'un de ceux-ci. Les plus courants, ce sont les notifications push. Ok, euh, je paierai un nouveau truc. Ce quelque chose qui arrive ? Euh, voyons voir ici. Je fais du nuage, c'est un nouveau système. Euh, ce qui est vraiment cool, c'est ,
euh, euh, je fais du nuage avec le nouveau kit de cloud ah IOS 9 devient vraiment cool. Et tu vas voir plus d'APS de ça. Donc, il vous permet en quelque sorte de construire votre propre dos et serveur. Un peu comme nous faisons la base de pompiers, mais en utilisant le kip de nuages. Donc c'est un peu cool et à venir. Il n'y a pas beaucoup de conservateurs pour ça. Pourtant, ceux-ci pourraient être difficiles à trouver. Soutenir les soins à domicile. C' est votre domotique ? Hum, aucun d'entre eux n'est vraiment grand sauf dans l'application. Les achats sont dans un achats qui sont pré-sélectionnés là et notifications push. Peut-être que Apple paie. Si vous avez besoin qu'on n'en ait pas besoin, ce qui est vraiment sympa. Cliquez donc sur Continuer. Ok, c'est la dernière étape avant de le créer, OK. Et puis vous cliquez simplement sur Soumettre et les inscriptions sont terminées. Nous avons maintenant une sieste. Idée. Je vais cliquer. Fait. Donc maintenant, si je passe à AP, je , pense que ce sont des arcs alphabétiques appelés show Deaf Slope showcase quelque part là où il est. C' est le nôtre, tout en bas, ici. Et, euh, c'est
là. Des trucs cool. Et nous avons donc notre idée d'APP. Maintenant on a dit Ok, je suis en train de le créer. Donc, ce que vous voulez faire maintenant est de dire OK, maintenant que l'abside créé, nous devons en choisir quelques-uns. Euh, nous devons mettre des appareils à l'intérieur de la provision provisoire. Mais devinez quoi ? Nous n'avons pas encore d'appareils. Disons
que vous avez un tas d'amis que vous voulez tester votre application. Vous avez créé votre application I d. Donc la prochaine chose est que vous allez ajouter des appareils. Alors voyez, ici où il y a un onglet appelé périphériques. Ok, hum, vous pouvez ajouter des appareils ici maintenant, et, euh, en
gros, Apple vous donne environ 100 par an que vous pouvez utiliser. Vous pouvez réinitialiser OK, ils peuvent avoir. Je pense que c'est peut-être plus en fait maintenant, mais en gros, euh, 100 appareils. Et une fois là, ils sont là pour un an. Tu ne peux pas te débarrasser de lui. Ok, euh et donc il y a ces identifiants uniques ici. C' est ce qui identifie votre appareil spécifique. Et donc, comme je l'ai dit, pour que vous puissiez construire votre application sur un appareil et tester dessus, votre profil de provisioning, que nous n'avons pas encore créé, doit avoir une liste des appareils que vous voulez tester par rapport à cette application. d que lorsque nous venons de créer. Alors, comment obtenez-vous un appareil ? Donc c'est ce que tu vas avoir besoin de dio pour toi-même. Et c'est pour tous vos amis que vous voulez tester votre application. Ok, tu vas lui dire. D' accord, les gars, j'ai besoin que vous ayez ma tête. Je sais que ça va être un processus douloureux, mais voici comment tu le fais. Donc tu vas ouvrir iTunes,
comme, comme, donc, comme iTunes. Quoi ? Ok, alors branchez votre téléphone. Assurez-vous que votre téléphone ou votre iPad est branché, puis vous verrez l'icône juste ici. OK, cliquez dessus. Et ce que tu vas faire, c'est que tu vas voir cet écran juste ici. C' est dans ce résumé, OK ? Et tu vois ce numéro de série ? Ce n'est pas ce que nous voulons. Donc ce que je veux que vous fassiez, c'est cliquer dessus et ça change à votre vous d I d qui ? De la magie. Tu es genre, j'ai utilisé l'ancien temps de Jones et je n'avais aucune idée de ce qui a fait ça. Oh, eh bien, tu sais. Donc c'est votre divinité, vous. Peut-être que vous vous demandez, comment vous le copiez ? Eh bien, voici quelque chose d'intéressant. Si vous juste en ce moment sans cliquer ou faire quoi que ce soit. Si vous appuyez sur Commande plus C, il va copier. Et si vous ne me croyez pas, regardez, commande. Tu vois, je vais juste le rythme, et c'est juste là. Commande V. Donc, quand vous cliquez sur ce bouton, appuyez sur la commande, voyez ? Et pas de copie. Sinon, vous pouvez faire un clic droit dessus et aller à copier. D' accord. Même chose. Il y a neuf de l'u T i.
T. T. Donc tous vos amis qui veulent tester votre appareil ou exécuter un test de votre application OK. Sur ceux-ci étaient considérés comme des testeurs internes. Ce sont des gens que vous avez confiance pour tester encore et encore. Les pommes témoignent a également ce qu'on appelle les tests bêta, qui ne nécessite pas ce processus. Mais les tests bêta nécessitent Ah, processus de révision de l'application
miniature avant qu'il puisse aller en direct. Tes amis de confiance aussi. Ok, maintenant ils t'ont envoyé. Toi, là. Tu es
là, retournes à ton portail. Tu es comme, OK, j'ai tous leurs appareils maintenant ce que j'ai besoin de faire.
Ce que tu dois faire, ça va me faire effacer tout ça ici. C' est bon. Euh, effacons ma liste. Je vais me débarrasser de tous. Sélectionnez donc les appareils que vous souhaitez transférer à cette adhésion ou n'aimez pas les périphériques joints pour le déplacement. Eh bien, hum, iPhone six or. Je ferais mieux de garder ça. Mieux. Enlève ça. Débarrassons-nous de tous ceux qui ne sont pas à moi. On gardera mon iPad et mon iPhone. Je ne sais pas à qui c'est. Euh, d'accord. Assez bien pour moi. Je vais les garder à réinitialiser tous les autres. Je reconnais ces toasts aériens. Euh, et voici quelque chose de cool. 100. Apple TV 100. Apple Watch. iPad 97 iPhone C' est différent. Auparavant, c'était 100 au total. Maintenant, ils en ont 100 pour chacun. Donc c'est plutôt cool. Donc réinitialiser et ceux-là ont disparu. OK, reviens
là où on était avant qu'on ait l'appareil. Je vais bien pour chacun de nos amis. Donc, ce que vous voulez dio est de cliquer sur le bouton plus ici et vous allez donner un nom pour l'appareil. Ok,
donc ça va déranger, ce
serait,
tu sais,
euh,
Mark Price iPhone 6 plus,
je veux te donner ton idée juste là. Ok, donc ça va déranger, ce
serait, tu sais, euh, euh, Mark Price iPhone 6 plus, D' accord. Et que vous pouvez également enregistrer plusieurs appareils si vous avez beaucoup d'amis. Il dit télécharger des exemples de fichiers et il vous montre comment le faire. Donc si j'ouvre le fichier échantillon ici, il a suivi ici, ça vous montre à quoi ça doit ressembler. Donc, il ressemblerait à ceci où vous avez l'appareil I d. Et puis le nom de la personne afin que rendre cela pourrait rendre plus facile si vous avez 20 amis, ils testent et vous voulez télécharger tous leurs appareils. Il suffit de le faire dans ce format ici et de télécharger le fichier ici. Ok, donc, euh oh, j'ai perdu mon regard, alors essayons encore ça. Mark Price, je téléphone six plus collé et continuer. D' accord. Confirmé que Ceci est correct. Oui, ça l'est. Ok, maintenant, le mien n'a pas marché parce que j'ai déjà fait ça. Vous devriez travailler parce qu'ils sont flambant neufs et c'est tout. Vous venez d'enregistrer un appareil. Alors faites ça pour tous vos amis qui veulent tester votre application spécifique, accord ? Et vous n'avez qu'à y ajouter des appareils. Une fois, vous pouvez utiliser leurs mêmes idées d'appareil pour plusieurs APS. Mais vous devez faire au moins un point dans le temps. Maintenant que nous avons des appareils,
OK, OK, mais nous pouvons maintenant faire est de créer un profil de provisioning. Et alors allez-y et allez à Provisioning Profiles ici. Et tout comme nous avions un certificat de développement et un certificat de distribution. OK, on a la même chose ici. Nous avons des profils de distribution, progrès, nouveaux profils et de provisioning de développement. Alors faisons le développement Un premier clic sur la morsure plus, et nous voulons le développement de l'application IOS. D' accord. Et voici la partie importante. C' est pourquoi nous avons créé l'application I d First vous l'avez juste ici. Ok, va trouver celui que tu as fait ça. On vient de le faire. Vitrine Dev Slope. C' est là. Encore une fois, le profil de provisionnement met en correspondance les appareils avec une application réelle. Idée dit, Hey, ces appareils contestent cette application. Sinon, le code X ne l'autorisera pas lorsque vous le distribuez, ou même si vous envoyez une build sans avoir de code X, les gens ne pourront pas l'installer. Assurez-vous donc de sélectionner votre application. Je suis
là. Et, euh, allons de l'avant et cliquez. Continuez. Et il va vous demander le certificat que vous voulez utiliser. Eh bien, nous avons créé un profil de provisionnement de développement d'applications, et je n'ai qu'un seul certificat de développement parce que j'ai supprimé le nouveau que j'ai créé. C' est donc celui que je veux sélectionner votre certificat de développement IOS. Ok, rappelez-vous, les certificats vous disent quel ordinateur ? Vous pouvez développer des cartes pour distribuer la distribution ou le développement. Droit ? C' est dire que, euh, ce profil de provisioning est lié à ce certificat. Ok, euh et donc c'est celui que nous voulons et puis sélectionnez tous les téléphones que vous voulez être en mesure de tester cette application. S' ils ne sont pas sélectionnés ici, ils ne seront pas en mesure de le tester. Rappelez-vous simplement qu'ils ne sont pas sélectionnés ici dans ce profil de provisioning. Ils ne peuvent pas tester votre application, puis cliquer sur. Continuez. Nom du profil. J' aime les rendre très explicites. Donc je pourrais dire que Dev Slopes vitrine, euh, développement. Ou tu pourrais juste l'appeler. Je suis probablement appelé ça vitrine sens sourd. C' est un profil de provisionnement de développement. D' accord. Et, euh, ça me fait savoir que c'est mon développement, et je vais cliquer. Générer. D' accord. Maintenant, je pourrais télécharger ça, tu te souviens ? Mais je pense qu'il y a un meilleur moyen. Euh, il suffit de s'assurer que nous sommes prêts à y aller. Accédez à votre code ex et allez dans les préférences et cliquez sur votre nom à l'intérieur d'ici. Et nous allons nous assurer que c'est là si je peux le trouver. C' est là. Vous voyez ? Et voir comment il a un téléchargement. Mais à côté de lui Ah, cliquez sur Télécharger. C' est fait. Tu es bon d'y aller. Fait. L' a fait ? Vous avez maintenant un profil de provisionnement de développement sur votre ordinateur ? Pourquoi est-ce important ? Laisse-moi te montrer. Avant que nous ne pouvions pas, nous ne pouvions pas envoyer de builds à notre appareil. Mais maintenant on peut. Et la raison pour laquelle nous pouvons, c'est parce que mon équipe a choisi ici. Et au fait, euh, euh,
peut-être que vous avez avant cette vidéo, vous êtes comme, j'ai construit sur mon appareil tout ce temps. Et si vous l'avez fait, c'est probablement parce qu'ici, quand vous avez sélectionné votre téléphone pour construire deux, vous voulez peut-être essayer et puis peut-être que vous avez choisi une équipe ici ou déjà été sélectionné. Et peut-être qu'il vient de dire, euh, résoudre le problème ou créer un profil de provisioning. Oui, code
X sera très utile pour vous et, euh, crédit créé pour vous juste ici via l'application. Donc, si jamais vous voyez cette notification là-bas et que vous ne voulez pas passer par tout le processus que nous avons traversé, ne vous souciez pas de ce qu'ils nomment dans ces trucs. Si vous vouliez juste créer le plus tôt possible, cela vous permettra qu'il devrait y avoir comme un problème résolu mais dans ou un grand profil mais ici de temps en temps. Si vous rencontrez des problèmes qui est vraiment cool s o. Ce que vous voulez faire est sur votre équipe est de sélectionner votre équipe. Vous devriez en avoir un seul ou simplement choisir celui que vous voulez si vous en avez plusieurs. D' accord. Encore une fois, nous avons téléchargé le profil de provisionnement de développement. Ok, alors comment pouvons-nous dire hey, exécuter cette application avec ce profil de provisioning ? Exco ? Il ne sait toujours pas. Donc, ce que nous faisons, c'est que nous allons construire des paramètres. D' accord ? Au fait, ce n'est pas des choses obscures. J' enseigne. Vous le faites encore et encore et encore et encore et encore et encore et encore et encore et encore. Encore et encore. Fini. Combien de fois ai-je dit ? C' est le nombre de fois que tu vas faire, encore et encore. Donc c'est de vraies choses que tu fais tout le temps. Des trucs très ennuyeux, mais c'est très important. Cliquez donc sur Paramètres de construction. Et, euh, ce qu'on cherche, c'est la signature de code, OK ? Tout ce processus dont j'ai parlé s'appelle code signant votre code de
manière sécurisée. OK, donc il y a le mode de débogage et il y a le mode de sortie pour le bien de cette vidéo dans ce cours, ça n'a vraiment pas d'importance pour vous à ce stade. Ok, mais ce qu'on veut, c'est aller à notre profil d'approvisionnement ici, et, euh, vous pouvez sélectionner automatique, et ça fonctionnera probablement. Allons-y et donnons-le un coup. Tu ne vas pas le voir tourner sur mon téléphone parce qu'il est sur mon téléphone, et je suis juste là. Mais voici un pop up. Voulez-vous autoriser cela Mon porte-clés toujours autoriser. Je veux toujours que mon téléphone dans mes certificats autorise cette signature de code à se produire. Donc je suis en train de construire. Je construis ce qui arrive. Compilation à Teoh. Ok, on dirait que ça va marcher. Et donc, en le définissant sur automatique, , il va juste trouver le profil de provisionnement qui vous convient. Oui, ça a marché. Ok, donc ça va Oh, et au fait, vous pourriez comprendre que si vous pouvez voir ça, vous pouvez avoir une icône qui dit : Vous
faites confiance à cet ordinateur et vous voulez dire oui ? Um d'accord. Et c' est ce que j'allais te dire. Donc automatique ne fonctionnera pas toujours à moins que tout ne soit bon pour aller. Laisse-moi te montrer quelque chose. Cliquez sur OK ? Si ça n'a pas fonctionné et, euh, changer d'automatique. Allons-y, Teoh, notre vitrine si je peux le trouver. Je vous l'ai dit ? Construit beaucoup d'APS ? Euh, hein. D' accord. Tu ne plaisantes pas. C' est vrai. Je sais de quoi je parle. Euh, d'accord. Et pour ceux que vous pensez que je ne le pense pas, vous savez, je ne le pense probablement pas. Alors d'accord, euh, où est celle-là que je cherche ? Nous cherchons la vitrine Dev Slopes va être douloureuse pour vous les gars. Parfois, tu es comme, c'est juste là. C' est juste là. Mais je ne t'entends pas. Et, euh, c'est juste en haut, en fait. Ok, donc il a maintenant été sélectionné, et ce que j'aime faire est explicitement un ensemble. Mon réglage de construction. Donc sous libéré ici. J' aime choisir le profil Showcase Dev. Exactement. Donc, ce que j'ai fait, c'est que j'ai choisi un profil ici, et puis après avoir choisi le profil de provisionnement, j'ai défini la libération au lieu d'automatique. J' ai dit explicitement à cela à ce profil de provision me permet de savoir que je fais exactement ce que je suis censé faire. Et rappelez-vous comment notre application j'ai eu un bundle très unique. Identifier où il était calme point pentes Deb qui mettent en valeur. Donc, nous voulons nous assurer que nous allons au général qu'il dit comdot pentes de mort
qui mettent en valeur, mettent en valeur,ce qu'il fait. Donc je vais aller de l'avant et essayer de recommencer et voir si ça marche cette fois. Le droit d'identificateur d'application d'applications ne correspond pas à celui de l'
application installée pour laquelle ces valeurs doivent correspondre pour qu'une mise à niveau soit autorisée. Allons résoudre ce problème. Ce que je veux faire, c'est m'assurer que nous exécutons le bon plan. Et donc ces plans d'air ici, ce débogage est un schéma, ok ? Et cette version est un schéma et le genre de valeur arbitraire du schéma. Mais c'est essentiellement dire, Hey, tu veux courir Ah, profil de
distribution dans ce jeu ou tu veux courir ? le Mais justeledéveloppement local ce que vous voulez faire. Alors allons et cliquez ici pour Dev Slopes qui mettent en valeur votre projet ici et aller à modifier le schéma. Assez sûr, juste là. Regardez cette course lorsque nous exécutons l'application. Il essaie d'utiliser le débogage,
ok, ok, et l'archive est en fait libéré. Et donc je pense que ce pourrait être notre problème est que nous essayons de fonctionner en mode débogage. Lorsque nous courons, nous sommes en mode débogage, et je n'ai pas encore dit de profil de provisionnement en mode débogage. Allons-y et essayons ça. Je vais changer ce développeur d'iPhone Teoh ici. On y va. Et puis je vais le faire, je vais nettoyer mon projet. Je vais y aller Teoh Edgers ici. Je faisais ça avec un commandant clé. Je n'ai pas vraiment regardé ici depuis un moment. Donc, il est là. Donc produit propre. Nettoyons notre projet. Ce qu'il fait est juste de nettoyer une partie de la ferraille là-bas ou de réinitialiser une partie du réglage
interne afin que nous n'ayons aucun problème. Je vais essayer de construire et exécuter cela à nouveau en faisant la commande plus notre ou en cliquant sur cette, euh, cette icône de course ici. Ok, on a toujours un problème. Ok, donc j'ai mis la vidéo en pause. Je sais, je suis désolé, mais ce qui s'est passé est le code X et les neuf de l'Iowa ont un bug. Simple et simple. C' est un insecte. Quoi ? Je veux que tu sois en train de résoudre des problèmes avec moi ici, on va retourner sur le portail. D' accord. On va, euh, retourner sur notre portail juste ici, OK ? Et quand je veux que vous à Dio est aller à votre ID d'application donc juste ici. Allez trouver celui que vous avez créé. Maintenant, je viens de résoudre ce problème et tu n'as pas pu le voir parce que je le testais. Mais revenez à votre profil de provisionnement ici. Celui que vous avez créé et ce que je veux faire est d'aller à modifier, faites défiler vers le bas et cliquez sur. Supprimer. Supprimez cette application. Je m'en débarrasserai. Il est foutu. Le code X est un problème maintenant, euh, si cela a fonctionné pour vous, s'il est construit, ne le faites pas parce que vous êtes bon à y aller. Il a encore été bloqué sur ma machine. C' est l'un des inconvénients de travailler avec des logiciels bêta. Mais au moins vous obtenez d'abord et nous allons résoudre le problème ensemble, et vous rencontrerez des problèmes plus tard, même quand il n'est pas envahi. C' est donc une bonne pratique de toute façon. Donc vous l'avez supprimé. C' est génial. Revenez maintenant à votre application. Identifie ici. Cliquez sur le signe plus ici la création de nouveaux et lui donner un nom différent et créer une idée
différente cette fois pour sortir de l'équipe Je ne vous viens de choisir un autre juste pour être en sécurité ? Ok, maintenant, ce que je veux aussi faire, c'est lui donner un autre nom ici. Comme com dot dev pentes enseigné,
vous savez, vous savez, Dev vitrine quoi que ce soit. Donne-lui un nom différent, d'accord ? Et ce que je veux que tu fasses, c'est ce nom que tu lui donnes ici. Copiez cela et assurez-vous que sur le côté droit et votre lot identifie ou un code ex, assurez-vous que c'est exactement le même. Et c'est juste là dans les paramètres généraux des paramètres de construction sur votre cible. Alors assurez-vous que c'est exactement la même chose, est-ce que c'est le cas ? OK, vous avez votre application explicite. Tu as ton
préfixe . Ici. Tu as changé toutes ces choses. Juste si vous avez ce problème, changez-le. Si tu n'avais pas ce problème, j'en
aipresque fini sur ai Flynn Click. Continuez. D' accord. Ensuite, créez cet i d. puis revenez à votre profil de provisioning de votre profil de provisionnement de développement. Cliquez sur Développement ici. Trouvez celui que vous avez créé avant que nous y arrivions. Et je veux que vous supprimiez ça aussi pour vous en débarrasser. Donc on n'a pas d'insectes de Dang. Puis cliquez sur le signe plus, créez-en un nouveau. J' ai toujours du développement. Continuez de là Laissez votre nouvelle application I d. Ok, et c'est certificat électrique. Et puis quand il crée votre profil, allez-y et téléchargez-le et double-cliquez dessus. Ok,
Donc, une fois que vous avez téléchargé ce nouveau profil avec la nouvelle application j'ai d et que vous avez cliqué dessus pour installer et que l'application I d est maintenant la même ici. Tu l'as changé ici. Assurez-vous que votre équipe a sélectionné. Ok, juste là. Assurez-vous que l'équipe a sélectionné et accédez aux paramètres de création. Ensuite, dans votre profil de provisionnement, modifiez-le pour le nouveau profil de provisionnement. Ok, donc si tu n'as pas connu ce problème, super. Si vous l'avez fait, j'espère que cette maison nous l'avons résolue ensemble. Nous venons de recréer le tout nouveau processus contre vous. dois passer par deux fois, et de toute façon, donc j'ai pu maintenant construire sur mon appareil après x coats. insectes idiots. Donc maintenant, nous sommes en mesure Teoh nous avons été en mesure de développer deux appareils qui ont été enregistrés. Ok, ce qui est vraiment cool. Donc, dans la prochaine vidéo, je vais parler de la configuration de notre application aussi parler des bêta testeurs travaillant avec un profil de provisionnement de distribution. Donc, la plupart des gens ne se souviendront jamais de ces trucs au premier essai. Donc je prévois que vous allez devoir regarder ces vidéos quelques fois. Il m'a fallu environ 10 APS télécharger à l'absolu avant que je sois coincé par la mémoire. Donc, et vous devez résoudre divers problèmes. Tellement, des trucs très cool. Nous sommes en affaires ici et allons de l'avant et aller de l'avant.
119. Créer des captures d'écran App Store: Hé, tout le monde, Mark ! Pricier profondeur savons dot com Donc, vous voulez mettre une sieste sur le magasin APP ? Eh bien, nous avons déjà mis de sont payés compte développeur Apple. Nous avons déjà configuré des certificats. D' accord. Au moins un certificat de développement et un profil de provisionnement de développement et une piété d'application Et nous avons ajouté des appareils. . Donc, les gens contestent l'absolument construit et nous avons fait un peu de manipulation de l'air de la correction des bugs dans ce processus. Et maintenant, ce que nous voulons faire est d'obtenir son application sur l'APP Store. Mais nous ne pouvons pas faire cela jusqu'à ce que nous ayons des captures d'écran de l'APP Store va absolument exiger que nous ayons des captures d'écran. Et donc si vous construisez une application qui prend en charge l'iPhone, vous devrez obtenir des captures d'écran pour chacun des appareils. n'y a pas de contournement, ok ? Et alors allez-y et chargez votre application. Tout ce que tu veux. Ok, j'ai le code X ouvert ici. Je vais juste le déplacer de l'écran un moment, accord ? Et on a un simulateur ici. Ce n'est pas un processus difficile. Et nous allons juste passer par la façon de prendre des captures d'écran de l'application dans les différents écrans que nous avons. Donc, ici, on a un iPhone 6. Vous allez avoir besoin de prendre des captures d'écran pour iPhone six pour iPhone, six plus pour iPhone cinq écrans et pour les plus petits écrans ainsi que pour l'iPhone, quatre et trois et autres choses. Alors, on y va. Ouvrez votre simulateur, construisez votre projet, et nous sommes sur l'iPhone 6. instant, si vous voulez faire une capture d'écran, tout ce que vous avez à faire est de maintenir la commande Plus s. et il y a notre capture d'écran. Et donc je vais renommer ça en 6-1, ce qui signifie que c'est pour l'iPhone 6. Mais c'est la première boutique d'écran. D' accord ? Et puis allons de l'avant et faisons que Facebook se connecte ici, ok ? Et je vais confirmer, et ça va me connecter, et non, c'est cool. Voici notre application. droite. Donc, c'est l'autre application, ou c'est une autre capture d'écran que nous voulons prendre, alors faisons juste commande. D' accord,
on va appeler ça à six tirets parce que c'est l'iPhone. D' accord, Six secondes de capture d'écran et ah, c'est cool. Deux, c'est assez bon pour l'instant. Ok
, toi aussi. Deux, c'est assez bon. Donc c'est cool. Tout ce qu'on a à faire maintenant c'est retourner à l'ex code ici. Arrêtons-le et faisons-le sur l'iPhone six plus je courais prendre quelques secondes ici et suit juste Processus à travers toutes les captures d'écran. Si tu ne veux pas me regarder faire ça, tu n'as pas à le faire. C' est tout à fait bien. J' appuie juste sur la commande 3 pour rendre l'écran plus petit,
mais c'est aussi petit que ça va aller. J' appuie juste sur la commande 3 pour rendre l'écran plus petit, Ne correspond pas à l'ensemble de l'écran parce que l'iPhone six plus est une résolution énorme. On y va. Commandement plus quatre a fait l'affaire. Ok, alors faisons la commande s pour une capture d'écran. Et vous pourriez le faire à partir d'ici aussi. Deux, je crois que c'est sur un de ces menus. Comment ils sont juste enregistrer fichier capture d'écran. Vous pouvez le faire à partir de là pour commander s est beaucoup plus facile. Ok, donc on va juste appeler ça Ah, six plus un tiret un. Et allons-y et connectez-vous à Facebook. Ça veut mes affaires ici. Euh, essayons ça. En fait, revenons ici à l'écran de connexion. Will juste pour email mot de passe, connectez-vous pour l'instant. D' accord. Laissez juste va juste créer un compte, disons blah au point bloqué com 12345 slog et inscrivez-vous. Il va faire son truc. Et nous voilà, donc ça a l'air génial. Et vous voulez probablement que vos captures d'écran soient les mêmes pour tous les appareils. Teoh, essaie de garder ça près c'est possible. Je veux dire, tu peux et des petites choses. Ça n'a pas d'importance de toute façon. Commandez-nous. On va appeler ça six six plus pour ça, ce n'est pas des maths. C' est juste le nom du téléphone. Et allons de l'avant et tirons le projet d'ouvreur ici encore. Arrête ça. Et je vais faire l'iPhone 555 s n'a pas d'importance. Ils sont tous les deux les mêmes résolutions d'écran. Nous n'avons qu'à en choisir un. On va juste dire que je vais courir à partir de cinq ans. Et si nous prenons en charge l'iPad, vous devez prendre des captures d'écran de l'iPad. Si vous avez le bouton iPad. Euh, si vous avez cet iPad activé ici dans votre projet a cliqué sur votre projet ici et ah, allez à l'onglet Général. Si vous avez un iPad sur Universal, accord, vous devez prendre des captures d'écran pour tout. Je vais l'éteindre parce que je ne veux pas m'occuper de ça maintenant. Ok, alors on y va. Voilà notre application. Allons-y. Déplacez le code X vers le bas. En fait, je devrais. Eh bien, dans un monde parfait, vous prenez probablement une capture d'écran de ça, aussi. Je ne vais pas y aller. D' accord ? Évidemment, on a du travail à faire ici, mais on ne va pas s'inquiéter pour ça maintenant, si bien. commandement est bon. Ça l'a sauvé. Et ça va juste appeler ça 5-1 et ah, slog in. C' est, euh c'est en fait, euh on y va. Commande plus K masquera votre clavier. Ça apparaît, et ce qu'on va faire, c'est ah blah au bloc bloqué dot com. 12345 Ok, essayons encore ça. Il gèle ici. Essayons encore ça. Disons que les abeilles tueuses aux genoux de l'abeille point Com 234 et 5. On y va. commandement est bon. On va appeler ça cinq tirets à ton genre, c'est tellement ennuyeux. Je t'ai dit de sauter la vidéo. Je te l'ai dit. Ok, on va faire l'iPhone 4 maintenant, ok ? Et lancez-le. On y arrive. Oh, regarde. Un bébé et petit il est. Rappelez-vous les jours de l'iPhone quatre. Rappelez-vous, les quatre premiers sont sortis avec l'affichage de la rétine. C' était, genre, la chose la plus cool jamais. Et je me refroidisse maintenant. C' était bien. Et sauvegardez ça. On va appeler ça 4-1 et on va aller de l'avant et encore un nouveau. On appellera
ça, euh, écouteurs à l'auditeur point com. Parfois, vous mettez tout ce qui vient dans votre tête sur l'écran. Hum, aucune idée de ce que je fais. Ok, connectez-vous. Et il y a l'application sur un iPhone pour Sauf si nous allons faire défiler un peu vers le haut cette fois pour montrer qu'il ya ah, vous pourriez faire plusieurs messages. On y va. D' accord. Et celle-là, on va appeler Dash. D' accord. Ça a l'air bien. Je pense que ça a l'air bien. D' accord. J' aime ça. J' aime pas ça, donc ça me semble bien. D' accord, je vais aller de l'avant et l'arrêter maintenant et donc jamais eu toutes les captures d'écran dont on a besoin. Et vous pourriez, bien
sûr, avoir fait cela à partir de votre iPhone en maintenant enfoncé si vous construisez l'application sur votre iPhone lui-même et dio le bouton d'accueil plus le bouton d'alimentation supérieur en même temps que votre écran clignote vous-même pour l'airdrop toi-même. Mais c'est prendre des captures d'écran retirer celles dont nous avons besoin ici. Et puis dans la prochaine vidéo, nous irons de l'avant et nous parlerons de nous mettre à l'extérieur.
120. Soumettre l'applique ! !: Est-ce le moment où vous attendiez une chance de soumettre votre application à l' APP Store ? Eh bien, voyons voir. Je pense que vous serez marqué pricier sourds savons dot com Ceci est la partie la plus drôle. Vous avez fait tout le travail, et maintenant nous pouvons préparer l'Apple Store. Et il y a quelques choses à faire pour que ça arrive. Mais nous sommes si proches. Alors allons de l'avant et préparons le magasin APP. Ok, donc nous avons déjà parlé du développeur dot apple dot com et j'ai déjà mes
captures d'écran sur le côté droit ici. Mais maintenant, nous devons aller sur notre compte iTunes, accord ? Et donc, si vous allez vous souvenir du centre, vous devriez voir un lien de connexion iTunes ici. Il peut également être consulté orteil iTunes, connectez point pomme com Et encore une fois, vous devriez être un développeur de pomme payé. Je sais. Ok, vas-y. Si vous n'êtes pas un développeur Apple payant, vous devez le faire avant de faire cette étape. Sinon, cela ne marchera pas. Alors assurez-vous que vous avez payé cette $99 que vous êtes dans et bon pour aller, Donc je viens de me connecter au portail iTunes connect ici, et il veut que je passe en revue certaines choses qui doivent tous faire très bientôt. Sinon, ils cesseront de vendre mon APS. Voici quelques tests de nouvelles pour IOS 9 versions bêta. Vous pouvez désormais soumettre des versions bêta à vos testeurs internes pour tester la stabilité de l'application. IOS neuf bêta. C' est vraiment cool. Vol d'essai à nouveau est qu'il était une plate-forme tierce ah très populaire qui a aidé à distribuer APS aux gens. Parce que, comme je l'ai dit, Apple a été un cauchemar et l'apso. Et puis, euh, ce qui s'est passé, c'est, et puis ils ont commencé à soutenir Android. C' était vraiment cool. Et puis la pomme en bas pour, genre, une tonne d'argent. Et puis ils ont tué Android et ont dit au revoir. Et maintenant ils ont intégré leur plateforme et,
euh, euh, je ne sais pas, ce est toujours pas aussi intuitif que je voudrais le voir,
mais voici votre tableau de bord. Si vous n'avez pas été ici avant, euh , des
analyses , des
annonces ,
tout ce genre de choses, vous pourriez regarder tout seul. On va aller dans mon APS et au fait, ne te moquer plus de moi. Ceux-ci étaient vraiment vieux APS k super vieux. Celui-ci savait que celui-là était amusant. Par ailleurs, si jamais vous voulez vérifier qu'il est hanté zombie Halloween Halloween rush, c'est une version trois D vraiment bien fait de Ah, Flappy bird. Comme si je sais que tu as vu assez de trucs d'oiseaux, mais de toute façon, tout est en trois D et c'est vraiment cool. Des animations cool, ce truc. Je l'ai fait. Merci, Onda. OK, alors cliquez sur le bouton plus ici. On doit ajouter un rap, accord ? Et nous avons besoin d'une nouvelle application IOS. Ok, au nom de celui-ci pour moi, ce ne sera pas Melissa Price. Ce n'est pas une application. C' est ma femme. Tous ceux que vous faites un ap très curieux Ah et Dev Slopes vitrine. Ok, c'est mon nom de mon application. La langue principale est l'anglais. Maintenant, il va demander un paquet. Maintenant, nous n'aurions pas pu le faire. Avons-nous fait tout si nous n'avions pas fait toutes les choses précédentes en premier ? Donc, nous devons choisir le bundle i d pour l'application qui est celui-ci juste ici. Showcase Dev pentes Et que quelqu'un que nous voulons Vous voulez vous assurer que le paquet je d
ici . allumettes. C' est quoi un code X ? Je sais que c'est parce que je viens de vérifier. Version Le numéro de version est affiché sur l'App Store et doit correspondre à celui que vous avez utilisé un
manteau X. Ooh, c'est important. Ok, sur le code X. Lorsque vous allez à votre clic sur votre icône ici et allez à la version générale un point de ce est notre toute première version. Cela doit correspondre à ce qui est sur l'APS ou autre. Ça ne marchera pas gay. Cela changerait au fil du temps. Il va monter et sait également qu'une version pourrait avoir plusieurs factures comme vous pouvez tester
et des choses bêta comme ça. Donc, euh, la version va être un 1.0, et cette inclinaison n'est qu'un nom. Vous lui donnez pour l'identifier. Alors imaginez si vous aviez 100 APS. Comme certaines entreprises que vous aimez les arts électroniques. Ils ont besoin d'un bon moyen de l'identifier. Dans ce cas, nous avons seulement une poignée d'absolu est juste appeler vitrine, puis cliquez sur créer. Maintenant, à ce stade, si votre nom d'application n'est pas disponible, il vous dira qu'il n'est pas disponible, ok ? Et donc nous n'avons pas cliqué sur créer et il était disponible très bon. Et puis il vous emmène directement dans l'application. C' est très cool. Alors maintenant, nous sommes ici sur l'APP Store. Déplacez X bien, hors du chemin. Et donc, puisque nous sommes ici dans les captures d'écran, allons de l'avant et ajoutons quelques captures d'écran. Alors rappelez-vous quatre points Ah, excusez-moi. Le 3,5 pouces juste ici qui est votre force iPhone et pour nous est si bon. Et cliquez sur cela, puis faites glisser votre à quatre captures d'écran sont ici CSS pour un et 42 Faites glisser le sur. Si ceux-ci n'étaient pas de la bonne taille, il vous criera dessus et il ne les acceptera pas. Donc si ça le prend, tu sais qu'ils ont fonctionné et tu peux le traîner comme ça, ce qui va le faire. Et l'étranger, bien
sûr, est l'iPhone cinq. Et pour que nous puissions traîner va aussi bien à puer. C' est penser. Allez, tu peux le faire. Et en passant, iTunes se connecte est si lent qu'il expire, il se bloque. Il a tellement de problèmes. C' est beaucoup mieux qu'avant,
mais c' est très lent, donc si vous rencontrez des problèmes, vous pourriez essayer. Safari étaient un groupe de chrome. ce moment, allons à la 5,5 pouces. Ce serait votre iPhone six. En plus de vos six plus Excusez-moi. C' est un peu bizarre. Tes six plus et allons les prendre ici. Fais-le glisser. Il y en a un. Il y a l'autre 14,7 pouces l'un entend l'autre iPhone six capture d'écran à venir. On y va. OK, donc on a ses captures d'écran maintenant, ça a l'air très bien. Je vais cliquer. Sauvegardez. Pourquoi tu quittes cette page ? Euh, sur ce que ça fait de faire ce qu'il veut faire ? Je suppose que Sauver. Allez. Eh bien, vous devriez cliquer sur Enregistrer. Je vais me rafraîchir. Et j'ai été déconnecté. J' ai des dunes. Oh, d' accord. Euh, vous éprouvez déjà certaines des difficultés du développement d'applications. Eso Je suis heureux de pouvoir m'apporter ces merveilleuses expériences que vous viendrez seul tout au long de votre carrière de développement. Mais avec cela étant dit, tout ce que je me plains sur IOS est bien, bien pire que d'autres plateformes. Je suis aussi un développeur Web et un développeur Android, et je préférerais développer dans l'Iowa toute la journée tous les jours au-dessus de toutes les plates-formes. Pourrait, c'est absolument le meilleur de tout ce qui existe. Donc il a ma validation, mais nous pourrions quand même nous plaindre à ce sujet. C' est bon. Voyons si nos images vont bien, donc d'accord, c'est assez ennuyeux. Voyons si on peut arranger ça très vite. Allons chercher nos six plus ici. Et, euh, j' ai juste quelques problèmes. iTunes. Comme je l'ai dit, on
y va. Et allons mettre notre iPhone six ici. Je vais juste en mettre un pour faire face à ça et prendre trop de temps ici. Alors, où est notre 61 ? On y va. Peu importe. ST tire vers le haut. Je m'en fiche à ce stade. D' accord, allons-y et sauvegardons-le. On va les cheveux. D' accord. Il l'est. Il est sauvé. Très bien, très
gentil. Finissons le reste de ces trucs ici. Nous avons donc la pré-version et la pré-version est votre test bêta. Ok, donc il y a deux types de testeurs que vous pouvez avoir. Il y a des testeurs internes, et il y a des testeurs externes. Vos testeurs internes. D' accord. Tu peux juste Adam ici,
donc tu peux cliquer. Tu peux juste Adam ici, Euh, eh bien, tu peux. Adam d'un autre endroit. Je vais vous montrer que, euh, je vais vous montrer ça dans une vidéo différente, en fait ici. Mais de toute façon, donc il pré-libère juste vos builds que vous allez soumettre. Et vos testeurs vont bien ? La tarification est le prix de votre application. Donc, vous pouvez fixer le prix ici, toutes sortes de larmes. Ils te donnent des larmes, ça te dit ce qu'ils sont. Vous savez, le niveau 2 a la matrice des prix. Nous ferons le nôtre gratuitement. Le rendez-vous que vous vouliez. Réductions disponibles pour les établissements d'enseignement. Parfois, la pomme donne des réductions par sont tout simplement gratuits. Ça n'a pas d'importance. Um, beauté
personnalisée soit APS, euh, disponible
uniquement par achat en volume d'affaires en affaires. Donc, euh, OK, toute façon, donc il y a le prix. Sauvons ça. Libre, c'est bien. Et, euh, je sais que c'est un peu bizarre, mais tu dois aller cliquer sur Annuler en bas à gauche. Ça vous fait penser que vous perdez des changements, mais vous ne l'êtes pas. C' est la seule façon de sortir de cet écran. Cliquez donc sur Annuler et vos modifications sont enregistrées et vous êtes prêt à partir. Et c'est en fait un écran qui reste des années. Il est là depuis des années. Ils ont mis à jour le reste, mais pas cette partie dans ces achats. C' est là que vous créeriez suffisamment d'achats. On ne fait pas ça maintenant, d' accord ? Mais c'est là que l'on créerait des achats nets pour l'Europe, passant, enpassant,à bien des égards, et que les achats allaient en quelque sorte disparaître, comme tout le modèle Freemium tout entier et les choses étant libres. C' est la génération dans laquelle nous vivons. Vous devez commencer à penser à Comment puis-je construire mon entreprise autour d'une sieste et arrêter de
penser à comment puis-je gagner de l'argent sur le téléchargement sur l'application ? Maintenant, bien
sûr, les utilisateurs valent beaucoup d'argent. Mais arrêtez de penser au dollar qui vient de chaque téléchargement Commencez à penser à Si je donne mon sujet gratuitement comment puis-je construire mon entreprise et gagner de l'argent sur ces utilisateurs d'une manière différente ? Parce que tout le monde veut tout gratuitement ces jours-ci. C' est comme ça que ça se passe. Juste pour que tu saches, euh, c'est mon expérience de ce que je vois dans le centre de jeux de l'industrie. Si vous êtes connecté pour gagner du centre, nous ne nous soucions pas de ces autres trucs en ce moment. Ce ne sont pas ce que nous faisons dans notre description de l'APP. C' est là que vous entrez une description sur Europe. Donc, cette application permet aux gens de poster des images de l'abside qu'ils ont construit à travers le
cours U pour moi IOS neuf. Euh, et rapide. Je me souviens du nom. Mon propre cours. Hein ? Du débutant au professionnel rémunéré. Ok, Mots-clés. Ces mots clés aériens que lorsque les gens recherchent l'application, va aider l'Appy tiré vers le haut sur l'app store il. Ce n'est pas ce n'est pas des mots-clés pour Google. Ce sont des mots-clés. Lorsque vous chargez l'app store et que vous faites votre recherche, je veux dire que le mot-clé qui détient le plus de poids c'est juste quelques conseils gratuits . Le mot clé qu'il a entendu et qui a le plus de poids est le nom réel de l'application elle-même. C' est ce que vous voyez, des cartes qui disent, comme, vous savez, application de calendrier
gratuite. Tu sais, 1 000 000 utilisateurs aiment un tas de noms bizarres parce que ce qu'ils font, c'est les gens qui cherchent le plus de noms de recherche, et ils le mettent là parce que ça a le plus de poids. C' est ce qui vous aidera le plus à trouver votre application. Donc, si vous voulez vous démarquer dans une catégorie, vous savez, cela a le plus de poids, puis quelques mots clés. Vous savez, ce serait comme le développement d'applications. Il vous donne une quantité de X caractères, comme vous pouvez le voir sur le côté droit ici. Vous savez, le développement d'
applications, vous savez, apprenez rapidement. Euh, tu n'apprends pas IOS. Tu peux mettre un tas là-dedans. Soutenez votre Oh, ok. Hum, ça nécessite un type de votre tout ce que vous avez pour l'avoir. Alors va vomir. Tu sais, allez sur le site de papa ou tout ce dont tu as besoin, mais tu dois te fâcher là-haut. Cela ne vous amène pas à une page 404. D' accord ? Ce n'est qu'un site web. Ne soyez pas stressé. Va juste à, genre, va papa ou mèches dot com tas d'endroits gratuits où tu pourrais juste obtenir un rapide ton lk a des pentes dot com et ok, donc il y a ce, um Ok, Apple Watch . On ne fait pas l'Apple Watch en ce moment. Il fait une icône d'application. Alors allons-y et faisons-le. Maintenant, je vais aller dans mon modèle d'icône d'application que nous avons créé plus tôt va vraiment
faux . Nous voulons celui qui dit icônes. On y va. Et nous voulons celui qui dit iTunes illustrations à deux X Ok. Ça aurait dû être exporté. Et il va se charger et faire son truc là-bas. Et c'est là. D' accord. Droit d'auteur. Tu l'as mis là-dedans. 2015 2015 Dev Slopes LLC. D' accord. Afficher la représentation commerciale, les
coordonnées n'ont pas besoin C'est votre adresse. Mais c'est que je ne sais pas quelles adresses doivent avoir 15 ans. Euh, donc tu connais ton nom. Tu sais, Mark Price ? Euh, tu sais, 45 une fausse adresse. Peu importe. Euh, d'accord. Fichier de couverture d'application de routage. Ne vous inquiétez pas pour ça. Ses régions géographiques soutiennent. Excusez-moi par votre application. Je me fiche de ça. Euh, c'est important. Votre numéro de version. OK, rappelez-vous, ça doit correspondre à la prochaine catégorie de code. C' est la catégorie principale. Voulez. Alors, dans notre cas, que serait-ce ? Cette partie de l'éducation et peut-être un 2ème 1 Technologie ? Non, peut-être un réseau social social et, ah, évaluation. Tu dois lui donner une cote. Et c'est quoi une note ? Non. Ne vous donnez pas un avis cinq étoiles. Votre application est géniale. Non, c'est le contenu qui l'a fait, tu sais ? Alors regarde ce qu'il dit. Un dessin animé ou un fantasme ? La violence ? Aucun. Pas de violence réaliste, pas d'estimations réelles graphiques ou sadiques. Pas d'humour grossier. Gnome suggère des thèmes. Pas de thèmes de prostituée, pas de traitement médical, pas de drogue alcoolique ,
pas de jeu, pas de nudité, pas de contenu sexuel, application Web
illimitée. Succès. Pas de jeu. Euh, des concours ? Non. Vous avez sélectionné L'opération est quatre plus. Eh bien, peu importe. C' est très bien. Je veux dire, c'est acceptable pour tout le monde. Je dirai, cependant, si vous cliquez sur fait pour les enfants, vous devez faire plus de choses pour votre application. Ok, juste pour que vous sachiez, si vous avez un enfant dehors, sachez que vous allez devoir faire plus de choses comme il y a de nouvelles lois
aux États-Unis qui vous exigent et l'absolu exige qu'ils aient certains politiques de confidentialité dans votre APS. Parce que vous ne pouvez pas voler des données aux enfants qui utilisent APS. Un tas de choses que tu dois faire maintenant. Et votre application doit être quatre enfants. Ok, euh, euh, il y a des groupes d'âge et toutes sortes de choses, alors sachez juste que vous allez faire plus de recherches. Uh, si vous voulez faire une application pour enfants avant de cliquer sur ce bouton. Euh, donc vous êtes Africain. Être approuvé. Ok,
ça m'a l'air bien. Eso Nous avons notre description. Nous avons nos mots-clés. Ce n'est vraiment pas tant que ça. Ok, euh , ,tu peux, euh, lancer une vidéo ici. Vous pouvez cliquer, choisir un fichier et lancer une vidéo pour votre pomme afin que vous puissiez enregistrer une vidéo pour votre application. Comme dans le flux d'écran. C' est génial pour le camp. Tasia est un excellent produit pour le faire. On ne va pas couvrir ça ici. Allez-y et allez sur YouTube et regardez comment faire une vidéo promo iPhone. Hum, et, euh, ce n'est pas un gros problème. Ok, euh informations de révision d'application. Qui font à qui ils veulent parler s'il y a un problème,
et c' est important parce que parfois il y a des problèmes. Eso, tu sais, mets ton nom là-dedans, tu sais ? D' accord. Compte de démonstration. Si vous êtes des voitures Apple, connectez-vous pour l'utiliser et vous ne pouvez pas créer de compte via l'application. Vous devrez leur donner un mot de passe et les utiliser,
sinon ils rejetteront votre application. Donc, s'ils ne peuvent pas entrer via votre application. En créant un compte via l'application sur l'écran principal, vous devrez leur donner un nom d'utilisateur et un mot de passe, sinon ils rejetteront votre application. Vous pouvez choisir de libérer automatiquement la version ou de la libérer manuellement après avoir approuvée. D' accord ? Et tout ça a l'air bien. Je pense que toutes nos informations de base et principales sont ici. Je ne t'ai pas donné de
bons conseils sur,
hum j'ai oublié un numéro de téléphone. bons conseils sur, Je ne vous ai pas donné de bons conseils sur la
façon de faire une description appropriée et des choses comme ça. Je vous encourage à découvrir certaines de ces choses par vous-même. Allez comment écrire une bonne application. Description du magasin, comment écrire de bons mots clés, des choses comme ça. Va faire du travail tout seul. Ne copiez pas tout ce que je fais. Ça ne va pas te rendre super. Vous devez comprendre certaines de ces choses. Et qu'est-ce qui est le plus logique pour votre produit et ce que vous essayez de faire ? Avec ça étant dit,
tu ne peux rien faire de dingue ici. Avec ça étant dit, Vous pouvez vraiment juste faire des tirets et des majuscules lettre. Donc, euh, on ne peut pas faire cool. Tu sais, le bowling ou l'audace et ce bowling. Tu ne peux pas faire de l'audace ou des talents et des trucs comme ça. Ok, allons-y et essayons de le sauver à nouveau. Va faire son truc qui est juste roulé vers le bas. Tu vois, tout se passe ici. Toujours sauver un autre air, ça n'aime pas mes faux chiffres. Tiens, essayons à nouveau. Je vais juste Teoh, dis 55555 111 Essayons ça. C' est vrai à propos des chiffres, non ? Oui. Essayons ça. On y va. Oh, ils veulent savoir que c'est un nouveau formatage et tout ça. Des espaces entre maintenant, aussi. D' accord, c'est le problème. Ont changé comment ils changent, comment ils font cela depuis la dernière fois que je l'ai fait. Et j'ai fait ça, genre, a quelques semaines. Bon, donc un plus 11 plus quand ? un an. Essayons celui-là. Euh, attends une minute. Que se passe-t-il ? On y va. Ok, essayons ça. Essayons ça. D' accord. Sauver. D' accord. Ce n'était pas comme, tu sais, mes faux numéros, alors j'ai juste mis un vrai tu sais,
mes faux numéros,
alors j'ai juste mis un vrainuméro de
téléphone de Californie. Donc 760 l'une des couches les plus cool de la zone, vous savez. Ok, donc ça a l'air bien. Ok, Maintenant, nous ne voulons pas encore soumettre pour examen parce que nous n'avons pas encore téléchargé la construction réelle. Et nous devons le faire maintenant. Alors allons regarder notre pré-version ici. Et il dit certaines constructions majeures utilisant supplémentaire 5.11 ou chargeur d'application. Donc, nous devons réellement soumettre une construction par l'intermédiaire de l'ex-coach. Allons-y et faisons-le maintenant. Ok, alors passons au code X. Et comment pouvons-nous créer un construit ? Tu te rappelles comment j'ai dit qu'on avait besoin d'un certificat de distribution et d'un profil de distribution ? Ok, donc nous assurons qu'on en a déjà, alors retournez à votre développeur dot apple dot com. Ok, Centre des
membres, et, euh, cliquez dessus. Donc les certificats vont maintenant aux certificats ici. Et nous avons déjà créé un développement et nous avons peut-être déjà créé la distribution . Si tu l'as
fait, c'est génial. Mais pour la production, il suffit de cliquer sur la production, en
créer une nouvelle ,
puis ,
ah ,
vous savez, cliquez dessus et allez au processus. Si tu ne l'as pas déjà fait, d'accord. Créez un magasin d'applications et un certificatde
distribution ad hoc de . Et puis tout ce que nous avons à faire maintenant après que ça a été créé. Et nous aurions dû le faire. Tu aurais déjà dû le faire. Nous couvrons pour couvrir ça dans la vidéo. Donc, un rappel rapide. Allez donc dans Profils de provisioning en bas à gauche, cliquez sur Distribution, cliquez sur Le signe plus. Et cette fois, on va faire l'App Store. Ok, chez Hawk, c'est quand vous le distribuez vous-même à d'autres personnes par le vôtre comme, euh, comme le vôtre, comme le serveur et tout ça. Ne vous inquiétez pas pour ça. APP stocke celui que vous voulez. Bon et cliquez. Continuez à choisir l'idée que nous recherchons et nous cherchons la vitrine que je
n'ai pas trouvé une année en bas. Très bon clic. Continuez. J' étais la distribution. C' est génial. Pourrait continuer et on va appeler ça Ah, vitrine destro pour distribution. En fait, je change d'avis. On va l'appeler Showcase App Store. Donc, il est nous savons avec certitude va sur l'app store cas vitrine app store. Ce que nous disons, c'est que nous avons besoin d'un profil qui est attaché à notre application qui nous permet de le
soumettre à l'App Store. OK, alors cliquez sur générer, puis téléchargez, puis cliquez sur le téléchargement. Il devrait tirer votre code ex comme il l'a fait ici. Accédez à vos paramètres de construction Faites défiler ici. Et ce que nous voulons faire est de définir le profil de provisioning sur ce nouveau profil. Vitrine Apstar. Maintenant, rappelez-vous, showcase Deb est celui lorsque vous développez vers l'appareil et que vous construisez l'abstruse de showcase pour l'AB Start. Si vous avez sélectionné Showcase APP Store et que vous essayez d'exécuter votre application sur votre appareil. Il ne fonctionnera pas. Il ne sera pas à l'app store est seulement pour la distribution absolue. OK, alors allez-y et cliquez sur Showcase App Store et modifiez la version. On va changer la distribution de l'iPhone. On va changer cette version de la distribution iPhone. Ça a l'air bien. Et je veux juste vérifier mon schéma et m'assurer que lorsque je construis, archiver ces types de choses qui sont correctes. Alors allez à ce projet apparaissent cette petite chose ici, le schéma actif et cliquez sur le schéma d'édition, et ce que nous voulons est l'archive de clic. Donc quand tu soumets une facture à l'APP Store, tu dois l'archiver, accord ? Et ce que nous voulons dire, c'est que nous voulons utiliser le profil de publication chaque fois que nous faisons une archive et le profil de publication est actuellement défini sur le magasin APP. Provisioning Profile Donc conçu pour la configuration pour la sortie C'est exactement ce que nous voulons. Donc, euh, vitrine App Store. C' est génial. C' est notre profil d'approvisionnement. Travailler en cours de libération. Nous avons sélectionné le profil de distribution. Nous ne pouvons plus construire à l'appareil pendant que ces air sont sélectionnés. Si cela change, si nous voulons le faire maintenant, comment vous soumettez au tri APP est vraiment facile. Vous allez au produit et vous allez archiver. Mais tu es genre, Oh, non, ça ne marche pas. Qu' est-ce qui ne va pas ? Exclut le bugging out. Non, non, vous ne pouvez archiver que lorsque vous avez sélectionné un périphérique. Alors cliquez sur votre petit iPhone pour un simulateur ici, vissez le haut et sélectionnez votre iPhone. Si vos iPhones ne sont pas connectés,
c'est bon. Si vos iPhones ne sont pas connectés, Il juste que vous pouvez utiliser le périphérique IOS par défaut. Vous ne pouvez tout simplement pas avoir un simulateur sélectionné. D' accord, très important. Tout le monde rencontre ce problème, et je lui dis la même chose à chaque fois. Donc, si ce n'est pas votre iPhone, s'il n'est pas connecté, il dira appareil IOS. Sélectionnez cela à la place. Donc c'est ce que vous voulez cliquer maintenant. Si vous allez au produit et à l'archive, accord, il va commencer à archiver l'application. Vous allez voir le processus ici. D' accord ? Et quand c'est fait, un écran va apparaître et il s'appelle l'Organisateur, ce qui vous permettra de soumettre à l'APP Store. Donc, nous devons faire à ce stade est juste attendre qu'il termine l'archivage. Ici, il vient. L' archivage de la construction a réussi. Et au fait, cela pourrait prendre quelques minutes. Ok, le processus d'archivage prend quelques minutes. En outre, fois l'archivage terminé, il peut prendre une minute ou deux pour que l'écran de l'organisateur affiche des codes X, faisant son truc. C' est penser que tu dois juste attendre. D' accord ? Et c'est là. Tu vois, juste prendre son bon moment. Les bonnes choses viennent à ceux qui attendent. Ok, donc voici vos archives. Sur ces archives sont des factures que vous pourriez frapper au tri de l'application. Donc, avant de soumettre à l'App Store, vous voulez valider une build. Alors qu'est-ce qu'une validation va faire, c'est dire, Hey, y a-t-il des trucs et des ordures ici qui vont nous faire rejeter et ça vous permet de le
découvrir ici en ce moment avant de soumettre à l'APP Store environ un an et 1 /2 il y a. Peut-être il y a deux ans. Ça n'existait même pas. D' accord, avant ça, tu devais te soumettre ici après l'Absar. Attendez sept jours. Ok, attends sept jours. Et puis pour qu'ils vous donnent un problème ou des choses comme ça. Donc, il est très bon qu'ils aient une fonction de validation. Allons-y et faisons-le. Maintenant, validons ça. Je sélectionne ton compte, ok ? Il se prépare. L' archive qu'il fait est en train de penser qu'elle se connecte. Tout va bien ? C' est Ah, ça parle de vos droits, ce que vous utilisez dans l'APP. Oh, bonnes choses ici. Alors allons de l'avant et cliquez. Valider. Ça va faire son truc. Ça va nous dire si on a foiré. Si quelque chose est cassé. Si on utilise une bibliothèque, ça peut être un non, non. Um, ça va faire beaucoup de vérification sous le capot pour nous assurer que nous sommes prêts à y aller. Il est en train de créer un I. P. Un fichier que je paie des fichiers va en fait sur le magasin APP. Euh, si vous avez déjà téléchargé APS sur votre iTunes et les magasins supplémentaires, eux en point i p un format. Juste pour que vous sachiez, pour référence. On y va. Il a passé la validation avec plusieurs avertissements. Le fichier d'analyse AP résultant est trop volumineux. Nous n'avons pas pu valider votre utilisation de A P I avant la livraison. Ce n'est qu'un message d'information. En fait, je n'ai jamais vu celle-là avant. Le fichier d'analyse AP
résultant est trop grand. Euh, ça ne nous donne pas une erreur épisse la poursuite ici. Et ce que nous voulons faire maintenant est juste télécharger sur l'App Store, pas garder à l'esprit. Si vous n'aviez pas créé d'application et si vous n'aviez pas créé de version, cela ne vous permettrait pas de télécharger sur le magasin APP. Allons-y et donnons-y un coup de feu. Voyez ce qui se passe. Cliquez donc sur votre compte, puis cliquez sur choisir. Ok, ça va préparer les archives, et ensuite ça va commencer à les télécharger. S' il n'y a pas de problème, soumettez vous. Faisons un coup de feu croisant nos doigts la moitié du temps que je travaille ça. Tu n'as pas le temps. J' ai peut-être oublié quelque chose. C' est bon. Tu vas oublier des trucs. Tu vas casser des trucs. Ceci est un processus d'apprentissage, même à cette date, vous savez, après avoir construit tout l'absolu je dois encore me battre avec les profils de provisionnement ? Et j'ai arrêté la lutte avec le code X moi-même pour me battre avec la soumission à l'APP Store. Tu vas te battre, et c'est comme ça. Donc, il télécharge les archives. Je pense que c'est bon et on va juste l'attendre. Teoh télécharger. On y va. Validation passée. Neil. Oui, très bien. Donc, il est maintenant téléchargé sur le magasin APP. Alors allons de l'avant et allons à droite ici et revenons à nos agents Connect
et revenons juste,
euh, euh, revenons ici et rafraîchissons la commande de la page. Plus sont de rafraîchir ok ou le petit cercle là-bas. Donc, c'est rafraîchir la page et regarder ça. Il y a une construction ici. Maintenant, c'est vraiment cool. Donc je vais cliquer sur mon APS pour revenir en arrière et juste m'assurer que tout est rafraîchi. Regardez, nos icônes d'application là-bas il a l'air bien. Cliquez dessus et ça a l'air bien. Ok, on a ses captures d'écran. Hum, super. Maintenant, pouvons-nous soumettre pour examen ? Pas encore. Ok, euh, le problème est que nous devons sélectionner une construction ici disant Hey, soumettre avec ceci construit,
OK, OK, mais nous ne pouvons pas le faire encore parce qu'il est toujours en cours de traitement. Si nous allons à la pré-version, il est téléchargé, mais ce n'est pas fait le traitement. Si vous cliquez sur la chose ici après le téléchargement des builds, ils passeront par un état de traitement avant qu'ils puissent être utilisés. D' accord, donc avant qu'ils puissent être utilisés, ils doivent traiter ça. Venez prendre n'importe où entre cinq minutes et cinq heures. Cela a été très ennuyeux ces derniers temps, et si après cinq heures, il n'est pas traité, je recommande peut-être de changer votre numéro de version ici et sur votre code ex et d'en charger
un nouveau parce que, dernièrement, il a été finicky, surtout avec la nouvelle bêta. Hum, vous étiez comme, Man, j'ai téléphoné craint encore une fois, processus de
distribution de l'iPhone craint. Ok, ça craint
tout ça. Tu es juste ça. C' est horrible, mais c'est vraiment la seule douleur majeure que vous devez faire face lors du développement pour iPhone. Donc vous savez, vous pouvez juste rester assis ici et rafraîchir votre page jusqu'à ce que le traitement soit terminé. Um, ou vous pouvez revenir à l'année où nous pouvons défiler vers le bas, et, euh, ce qui va arriver, c'est que nous allons voir une construction apparaître ici une fois que le traitement sera terminé. Donc on va attendre que ça arrive pour qu'on puisse soumettre l'application, et ensuite on ira à partir de là. Donc, je viens de rafraîchir la page. Défilons vers le bas et voyons. Et nous pouvons maintenant ajouter notre build. Notez comment cela est disponible pour nous. Cliquez sur Plus pour ajouter une version. Et si nous allons à la pré-sortie, Ok, nous devrions maintenant voir notre build ici. C' est inactif, et c'est bon. Inactif pour les tests internes, inactif pour les tests externes. Et on se fiche de ça pour l'instant. On veut juste s'assurer qu'il est là, ce qu'il est. Retourne aux versions, d' accord ? Et tout ce qu'on a à faire, c'est cliquer ici. Ça va dresser une liste de factures. Le numéro de version doit correspondre. ce moment, nous sommes dans la version un point. Oh, donc tu dois cliquer sur un point. D' accord. Ici, puis cliquez sur. Fait. D' accord. Et ce que j'aime faire, c'est juste passer en revue tout. Assurez-vous que les choses là où il doit être sur ici dans les captures d'écran. Ah, ma description. Mélanges de ces fautes d'orthographe, en passant. Vous ne devez jamais taper directement dans votre description. Faites-le comme dans Microsoft Word ou dans, vous savez, les documents Apple ou les docks Google. Quelle que soit l'orthographe correcte, assurez-vous que les mots-clés ou cochés. Et ah, alors tout ce que tu as à faire c'est écouter, on l'a construit ici. Où est-il ? Sont des arguments réels sélectionnés qui ressemble beaucoup. Donc, tout ce que vous avez à faire est de l'enregistrer après avoir sélectionné votre coffre-fort de clic intégré, puis tout
ce que vous avez à dio lorsque toutes vos informations sont ici et qu'il est superbe. Assurez-vous que quelqu'un vérifie le double. Ne le soumets pas ou tu ne pourras pas dormir. OK, euh, cliquez sur Soumettre pour examen. Il tourne sa pensée. Il s'agit de décider s'il veut vous permettre de soumettre une application ou non. Ton cœur a commencé à battre et euh, ok, donc tu sais pourquoi ça ne marche pas ? Tu sais, c'est parce que IOS 9 n'est pas encore sorti. OK, euh le 9 septembre. Officiellement, je crois qu'ils le publient officiellement maintenant aussi c'est parler des nouvelles choses qu' ils publient. Mais pour le moment, vous ne pouvez pas soumettre l'application. Cependant, généralement ce qui se passe est d'environ une semaine à environ 15 jours avant qu'ils
publient officiellement qu'ils disent l'envoyer un e-mail disant Hey, nous prenons maintenant iPhone neuf soumissions AP. Ok, donc tu ne peux pas encore le faire. Euh, c'est bon. Um vous devriez passer du temps à perfectionner votre application, à la préparer pour l'App Store. Ils vous donnent environ 10 à 14 jours. Comme je l'ai dit, 10 à 15 jours ou plus, mais évidemment ne fonctionne pas en ce moment parce que nous ne pouvons pas soumettre IOS neuf ups encore parce qu' il n'est pas encore sorti. Mais c'est tout
121. Débugger un écran qui ne pas montrent de données: Hé, tout le monde, Mark Price ici, Deb pentes dot com et aujourd'hui on va faire quelque chose de vraiment amusant. Pas vraiment amusant. Ce sera amusant pour toi parce que tu vas voir comment mon cerveau fonctionne pour résoudre les problèmes. Je reçois des questions tout le temps sur la façon de résoudre les problèmes et les plantages. Et donc, plus vous pouvez voir et comment je résout les problèmes, mieux vous serez en mesure de résoudre les problèmes par vous-même. C' est donc une demande d'étudiant qui m'a été envoyée. Je vais l'ouvrir ici, tirer dans le projet de code X ici et le simulateur, et allons de l'avant et l'exécuter. D' accord ? Le problème qui m'a été décrit était que Hey, j'ai des données dans mon application. Mais lorsque je clique sur l'élément de liste, la vue détaillée n'affiche pas les données. Donc, par
exemple, si je clique sur ce mot juste ici qui dit égal, il est complètement vide sauf pour ce monde en bas. Et donc l'indication ou la pensée était Hey, mes données ne fonctionnent pas. Pourquoi ça arrive, Neil dans l'application ? Et alors, allons de l'avant et résolvons ce problème. Nous voulons que les données y soient montrées. Alors je vais arrêter ça. Faisons ce code X plus gros ici, d' accord ? Et alors allons-y et jetons un coup d'oeil à notre code ici. Donc on a un modèle de toi et un contrôleur. C' est génial. Code très bien organisé en ce qui concerne la structure du projet, les fantômes. Et OK, on a une table de vous ici. Donc, si je vais à mon storyboard principal, allons juste avoir un aperçu de l'application ici, OK ? Donc, nous avons un contrôleur de vue avec une vue de table, et il a une vue de table vendre ici. Ok,
ça a l'air bien et normal. Et puis nous avons un contrôleur de vue détaillé, et si vous remarquez qu'il y a des étiquettes ici qui ne s'affichaient certainement pas dans l' application, allons-y et ouvrons notre éditeur assistant. Ce double cercle ici. Voyons à quoi cela ressemblerait dans notre mode de prévisualisation juste pour nous assurer que nos contraintes sont correctes. Donc, je vais cliquer sur cette automatique, changer pour prévisualiser et aller passer en revue ici. Donc ça a l'air bien là-bas. On dirait que ça va apparaître très bien dans la mesure où notre vue de table se vendra sur tout ce qui est là. Ok, donc ça a l'air bien. Cliquons sur ce joli par ici. Et ça a l'air bien, aussi. Donc, ce que cela me dit, c'est que les contraintes sont correctes, donc elles sont qu'elles apparaissent en mode aperçu. Fondamentalement, ce que vous voyez en mode joli va apparaître dans l'APP. C' est pourquoi je le vérifie tout d'abord. Parce que si je ne voyais rien ici, je saurais que les contraintes sur ces vues sont éteintes. Peut-être qu'ils sont hors de l'écran, qui sait ? Mais ils ont l'air bien là où ils sont censés être, donc on peut régler ce problème. Ok, je vais fermer l'assistant éditeur ici, et donc notre problème, c'est qu'on ne voit pas de données à l'écran. Ok, donc nous savons qu'il n'y a pas de données montrant, ou du moins visuellement, ça ne nous montre pas remorquer. Nous ne savons pas vraiment quel est le problème, mais notre premier résumé est peut-être que la date ne s'affiche pas. Alors allons regarder notre contrôleur de vue de détail. Donc, l'idée est que vous appuyez sur l'une de ces étiquettes et il affiche une vue détaillée, sur
laquelle nous ne voyons pas d'informations. On a des points de vente de lierre ici. Nous voulons nous assurer qu'ils ont des données. Donc ce que je vais faire, c'est ici et te mettre à jour. J' ai remarqué qu'en vue s'est chargé lorsque cette vue charge la mise à jour, vous êtes sage d'être appelé. Donc, cela sera appelé si cette vue se charge. Donc ce que je vais faire, c'est que je vais mettre un point de pause ici, comme vous pouvez le voir, et je vais aller de l'avant et exécuter l'application et voir ce qui se passe. Là, ça va. Il est chargé. Je vais cliquer sur une cellule ici, et on s'est arrêtés sur son point de rupture. D' accord ? Ce n'est pas un accident. Nous avons délibérément mis ce point de frein ici parce que nous sommes en train de déboguer. C' est ce qu'on appelle le débogage. L' idée de se débarrasser des bugs. D' accord. Et donc on est là, donc on sait qu'on est arrivés ici. Alors allons de l'avant et juste passer la souris sur ces noms afin d'exercer les noms. C' est une chaîne vide, comme vous pouvez le voir. Quoi ? Les guillemets doubles juste là. D' accord, regardons ces autres. Ils sont tous vides. C' est vraiment intéressant. Alors pourquoi sont-ils vides ? Il se peut qu'il n'y ait pas de données qui leur sont transmises,
alors allons vérifier et voir ce que je vais faire. Il se peut qu'il n'y ait pas de données qui leur sont transmises, c' est maintenant le travail en arrière. Donc, à partir du point de chargement de l'écran en marche arrière Eh bien, comment avons-nous chargé un nouveau mur d'écran ? Idéalement, l'utilisateur a tapé une cellule et il a appelé self-Farella chemin d'index et a essayé de charger la vue ou quelque chose comme ça. On sait où on sait qu'on est où chercher. Donc je vais arrêter ce programme ici, et je vais cliquer et glisser pour me débarrasser de ce point de rupture. Alors revenons en arrière et regardons notre contrôleur de vue. Donc c'est celui qui a la table de toi, ok ? Et vendre le chemin de l'index fero. C' est ce qui génère les cellules. Et si je l'ai mentionné plus tôt, je voulais dire, a sélectionné le chemin d'index de ligne. C' est ce que nous allons vérifier pour voir quand les cellules sont sélectionnées. C' est celui qui génère réellement les cellules. Ok, donc on dirait qu'on est en train de configurer une cellule, donc on dirait qu'on récupère des données d'ici, et on configure une cellule. Alors allons de l'avant et mettons un point de rupture ici. Ce que je veux voir, c'est qu'il y a des données entrant dans cette constante de noms d'exercice juste ici pour voir qu'elle est correctement transmise. Assurez-vous que nous n'avons pas de données vides. Alors allons de l'avant et recommencez. Encore une fois. Vide. Mort. Cela signifie que rien ne s'affiche sur l'écran. Je veux donc m'assurer que ce problème soit résolu. Donc si je survole
ça, OK, ça, OK, qu'est-ce qu'on a là ? Ok, donc il y a des données ici débutant égal. Voici une description, donc il y a certainement des données dedans. Donc, les données viennent définitivement dans le chemin d'index de ligne automatique. Et si je commande cliquez sur configure cell, c'est sa coutume. Vous vendez une table de vous et il transmet les données ici. On dirait que tout fonctionne et bien, et on dirait qu'il y a un point de vente connecté ici, donc je vais y retourner. On dirait que c'est bon. Maintenant, nous allons parler de ne sélectionner la ligne au chemin d'index. Ok, donc c'est quand l'utilisateur appuie sur la vente, il charge l'écran suivant. Ce que je veux m'assurer est que cela est appelé et que les données sont passées ici dans le Segway effectuer avec identificateur. Alors mettons un point de rupture ici, et ensuite nous exécutons le programme. OK, cliquez sur le bouton. Intéressant. Qu' est-ce que tu en penses ? Qu' est-ce que vous remarquez ? Si vous avez dit que Select Row Index Path n'est pas appelé, vous auriez raison. Cela n'est pas appelé, ce qui est vraiment intéressant. Ce qui signifie que les données ne vont même jamais dans notre contrôleur de vue détaillé, c'est pourquoi elles sont vides. Ce n'est pas vide parce qu'il n'y a pas de données. Il y a des données, c'est vide ou quelque chose se passe, parce que cela n'est jamais appelé. Alors réfléchissons à ça une seconde. Pourquoi ça ne serait jamais appelé ? clair que quelque chose est en train d'être touché, et il est clairement en train de charger un autre écran. , La seule chose à laquelle je puisse penser,c'est que notre storyboard est primordial. Cela a sélectionné le chemin d'index de ligne, signifie que nous avons probablement un type de Segway qui empêche cela de se produire . Alors allons de l'avant et passons à notre storyboard principal. Alors regardons ce Segway ici. D' accord ? Donc montrer l'exercice de détail. Il est poussé. D' accord. Et voyons ce qu'on a là. Donc j'ai une table de toi. On a une brève cellule. Ok, Intéressant. Donc je pense que c'est dur à dire complètement, mais je pense que peut-être ce qui se passe, c'est que ce Segway Oh, il est là. Remarquez comment cette cellule est mise en surbrillance juste là. Bleu. Je clique sur le Segway et la cellule est mise en surbrillance. Cela signifie que la personne qui a construit ce code a créé un Segway à partir de la vente ici, ce qui est très bien. Il chargera la vue suivante, mais il n'appellera jamais. Vous avez sélectionné le chemin d'index de ligne parce que le Segway le remplace. Donc nous devons nous en débarrasser. Mais d'abord, je vais copier l'identité. Ou alors nous avons ça en haut. droite. Ok, donc je vais supprimer ce segway. Maintenant, ce que je vais faire, c'est que je vais voir du contrôleur de vue ici, je vais contrôler la traînée vers ça. Donc on va faire un métro générique qui va d'une vue à l'autre sans l'avoir mis sur la cellule de vue de table. Ok, c'est un Segway générique, et on va dire montrer la vue détaillée. Bon, maintenant on a un Segway, je vais cliquer dessus. Et maintenant, je vais remettre l'identité ici. Cela n'est maintenant pas lié à la table que vous vendez, mais il est lié au contrôleur de vue lui-même, ce
qui signifie que cela doit être déclenché à partir du code. L' effectuer Segway avec identificateur commande la fonction. Donc, il est là. Alors allons de l'avant et lançons ça. Eh bien, revenons à notre contrôleur de vue point rapide ici et mettons un point de rupture sur. Effectuez Segway avec identificateur et exécutez-le à nouveau. Voyons s'il est appelé. Ok, je vais cliquer. Et maintenant, Ok, alors maintenant ça s'appelle. Il a été touché là. Donc c'est génial. On a corrigé ce problème. Allons-y et il suffit d'aller de l'avant et de cliquer sur le bouton de lecture ici pour continuer et ils sont chargés. Mais remarquez comment j'ai cliqué plusieurs fois et cela n'a pas fonctionné au début. Je pense que nous avons un autre problème que nous devons résoudre. Alors allons-y et prenons soin de ça maintenant. Donc je vais arrêter l'exécution et me débarrasser de ce point de frein. Revenons à ce storboard. Je vais cliquer sur le contrôleur de vue, aller à la table, voir la cellule de respiration et le contenu de celle-ci, et je clique juste sur cette chose ici. On dirait qu'il y a un bouton là-bas, donc on dirait qu'on a un mais ici. Et à mon avis, puisqu'il n'est utilisé nulle part. Je suppose que le développeur qui essayait de comprendre que cela essayait de mettre un bouton et obtenir quoi que ce soit le travail des orteils. Mais on a un problème de bouton. Donc tout ce que je vais faire est de supprimer ce bouton, enregistrer
impressionné et puis de relancer le projet. Ici, il vient, et allons de l'avant et cliquez sur égal. Il y va. Ça marche. Nous avons donc résolu le problème. Il y avait quelques problèmes. Vous avez vu mon processus de pensée et comment nous avons commencé là où était le problème. Nous avons fait un point de rupture jusqu'à l'écran juste pour s'assurer que l'écran était charger. En fait, avant même. Cela vérifierait le mode d'aperçu pour s'assurer que les contraintes sont OK et deuxièmement. Ensuite, nous sommes allés dans le contrôleur de vue de détail et a dit un point de rupture pour nous assurer qu'il était même appelé ce qu'il waas. Mais les données étaient vides, alors on a fait un pas en arrière. D' où viennent les données ? Eh bien, il devrait venir de fait Select Row chemin d'index, mais nous avons découvert que ce n'était pas appelé et alors nous sommes allés pour deux ou storyboard et réalisé que c'était un Segway lié à la cellule de vue de table, qui ne va pas appeler, a sélectionné le chemin d'index de ligne. Il va juste charger la vue suivante. Et donc nous avons supprimé que nous avons fait un Segway générique directement à partir du contrôleur View
, puis , dans notre contrôleur de vue ici, nous avons appelé le Segway effectué avec identifiant. Enfin, cela était appelé et nous prenons ces données,
elles sont transmises directement par ici et ensuite préparer le Segway est géré comme il le
ferait normalement . Nous le passons dans le contrôleur de vue de détail. Des trucs tellement cool. J' espère que cela aide beaucoup avec certains de votre processus de débogage et de réflexion et de le consommer . Appréciez et allez résoudre vos problèmes. Mark Price Steps espère dot com Déconnectez-vous et n'oubliez pas d'obtenir votre aide en direct gratuite, allez sur Deb pentes dot com et cliquez sur Chat Room. Je suis là tout le temps, ainsi qu'une énorme communauté d'autres étudiants
122. Raccourcis d'applications iOS 9 3D Touch: Hé, tout le monde, Mark Price ici en profondeur pentes dot com et nous avons un épisode passionnant aujourd'hui. Nous allons parler des trois D touch d'Apple avec des raccourcis d'application. Et si vous ne savez pas ce qu'est un raccourci d'application, laissez-moi juste vous montrer. J' ai mis mon téléphone ici pour que vous appuyez et maintenez et traîné vers le bas. Mais vous ne pouvez pas appuyer trop longtemps,
sinon l'icône de suppression apparaîtra. Donc,
fondamentalement, il ya des raccourcis pour votre application. Et si vous en sélectionnez une, disons que si je sélectionne des notifications ici, il a ouvert l'APP et vous emmène à la section de notification. OK, aussi, si vous êtes nouveau à la force de toucher ce trois d Touch d'Apple a, il pourrait être difficile à certains moments. Parfois, je me retrouve à aller cinq ou six fois avant de pouvoir faire apparaître le menu
contextuel de l'application . Il faut donc un peu de délicatesse. Je suis sûr qu'on l'aura au fil du temps. Maintenant, pour que cela fonctionne ou pour que vous puissiez construire des APS qui ont des raccourcis d'application, vous devez avoir un appareil qui le supporte, qui est actuellement le six s plus et le six plus. Oui, j'ai dit que complètement rock c'est les noms des six et six plus s. Six s et six plus s. Ceux des appareils qui supportaient actuellement aller dans le futur, ils étaient tous supportés appareils
plus anciens. Ne le supportez pas actuellement. Et vous avez besoin du code X 7.1 pour faire ce tutoriel. Et, euh, j'avais neuf ans. Alors allons ouvrir notre code X ici. Super. Un nouveau projet de code X. On va faire une application par onglets. On va appeler ça des coupures. a l'air si cool. OK, cliquez sur suivant. Mais tu es mon bureau. C' est très bien. Ok, c'est réaligner l'écran ici, et ah, et ensuite on parlera de ce qu'on a besoin de raccourcis d'application. Ils fonctionnent dans votre application, déléguer. Ok, donc fondamentalement, l'idée est quand quelqu'un charge votre application. Ok, en utilisant un de ces raccourcis, il va se charger ici, et, euh, nous allons implémenter une fonction dans votre délégué d'application qui peut entendre ou écouter quand l' APP est lancée avec un raccourci, OK ? Et puis vous conduisez, hum, un raccourci mis en place dans votre fini de lancer avec des options. Mais il y a une chose que nous devons faire en premier, et c'est mettre en place nos listes p sont info dot liste p. OK, il y a deux types de raccourcis d'application. Il y a statique et dynamique. Donc, si vous avez des raccourcis statiques signifiant des raccourcis qui ne vont pas changer, le seul changement lorsque vous modifiez la version de votre application. Si vous voulez mettre à jour votre application, vous revenez ici et vous la modifiez. Donc, dans votre liste de points d'info, c'est là que vous allez mettre des raccourcis statiques une fois. Je ne change pas de sens. Tout ce qui est ici dans la liste P va apparaître comme un raccourci d'application. Et donc ce que nous allons faire dans notre application, c'est que nous allons devoir raccourcir un en utilisant une icône
système standard qui vous emmène à une page de recherche, puis un autre. Mais on va faire semblant que c'est ah, comme une application de rencontre. D' accord. Et donc l'autre sera dynamique, ce qui signifie qu'il change à la volée en fonction de la façon dont l'état actuel de votre application ou quelle
que soit sa configuration. Ok, donc ici dans notre liste info point p, nous devons créer un nouvel élément ici pour cliquer sur le signe plus ici, et nous devons l'appeler vous. Je l'application, les éléments
raccourcis, les modifications de type tableau, puis développé leur cliquez sur la flèche vers le bas, puis cliquez sur le
signe plus à nouveau. D' accord. Et pour chaque élément de ce tableau, ou chaque élément de ce tableau sera l'un de vos raccourcis statiques. Ok, donc ce qu'on va faire ici, c'est l'article zéro. C' est bien. On n'a pas besoin de lui donner un nom. On va juste en faire un dictionnaire et ensuite développer celui-ci. Et maintenant, cliquez sur le signe plus et mettons quelques propriétés ici. Le 1er 1 qu'on va dio, c'est toi. I application raccourci type d'icône d'élément coupe. D' accord. Avec un long que je sais et que ceux-ci sont complétés automatiquement. Au moment de l'enregistrement, je vais cliquer sur cet air, apparaître sur cette ligne, sembler l'agrandir. Ils ne se terminent pas automatiquement au moment de l'enregistrement. Peut-être qu'à l'avenir, ils le soutiendront. Ils ont tendance à pommer des dizaines de soutien de l'achèvement automatique dans ces Ah, dans ces fichiers de personnes au fil du temps. Et ça va être une ficelle. Et c'est là que vous définissez Quel type d'icône que vous voulez montrer. D' accord. Et cela pourrait être des icônes système. Eh bien, ce sont des icônes système ici. Donc, vous devez savoir quel genre d'icône c'est. Dans notre cas, nous savons que c'est vous. I application icône de raccourci, partage
serré. Qui ? C' était une bouchée. Et si nous ouvrons la documentation du développeur Apple comme ça Ok, nous pouvons voir quels types il y a. Si tu veux aller à ça. Juste de la positivité. Regarde la fille. Ici. Vous obtenez référence cadre vous applications icône Orca, référence de
classe, Par ailleurs. Il a
fallu cinq minutes pour trouver cette documentation. Oh, Apple a un exemple de projet pour les raccourcis d'application. C' était comme 200 lignes de code. C' était fou. Je l'ai rendu très lisible et facile à faire. Donc, parfois pomme n'est pas si intuitif et ce qu'ils font ici. Mais voici les icônes du système que vous pouvez choisir dans notre cas, nous avons choisi la recherche, comme vous pouvez le voir ici. Alors allons-y et cachons-nous cette année. D' accord ? Donc, vous mon application raccourci icône de type partage. C' est le type d'icône. D' accord. Le prochain, on va dio, c'est toi. J' application coupe courte frickin épeler droit. Élément de raccourci. Sous-titre péage serré. Ok, c'est une ficelle. Et c'est juste le sous-titre que tu vas montrer, c'est juste qu'on va dire, obtenir les meilleurs résultats et ensuite on en fera un autre, ok ? Et on vous appellera ça. I application Titre de l'article coupe courte. C' est le titre principal, et celui-ci dira simplement la recherche et veut en faire un de plus. Celui-ci va être vous. I type d'élément de raccourci application. Ok, c'est le genre. C' est ce que nous allons faire référence dans notre code. Et nous allons appeler la recherche de type que vous pouvez appeler comme vous voulez. La nôtre va s'appeler la recherche. Maintenant, vous pouvez faire une image personnalisée ici afin que vous puissiez choisir l'image que vous pouvez choisir l'image créant l'image. Excusez-moi ? Que vous voulez, et vous pouvez sélectionner ce que vous voulez qu'il soit ici. Ah, et on va le faire. On va faire du code Arjun sur l'icône dynamique. Mais vous pouvez aussi le faire ici, ce qui est vraiment cool. Tu veux faire ? Une image a été tirée de la documentation ici. C' est celui que tu veux. Vous l'application raccourci fichier icône élément une chaîne facultative spécifiant une image d'icône à utiliser à partir du bundle d'abse ok. Et il vous indique également ce qu'il doit être 35 par 35 doit être une seule couleur. Nous allons en créer un dans un petit peu, mais nous ne l'utiliserons pas ici dans le p moins nous allons l'utiliser dans notre code. Mais sachez simplement que vous pouvez le mettre ici dans le fichier sans égal et pointer vers l'image que vous voulez. Vraiment cool. Donc, ce que nous avons ici, c'est que nous avons spécifié le type de déistes emblématiques. C' est une part. Icônes. C' est de là que va venir notre image. On lui a donné un titre, un sous-titre. Et nous avons donné un type. Ok, c'est une recherche. J' aurais pu l'appeler icône de recherche ou quoi que ce soit. Ne soyez pas confus que ces deux disent recherche. Ils pourraient tous les deux être différents. La nôtre est juste se trouve être la même. Il s'agit donc d'un raccourci d'application statique. Et alors allons de l'avant et construisons cela sur le téléphone et lancez-le et voyons si cela fonctionne. Je dois changer ma cible de déploiement parce que je n'ai pas encore mis à jour mon téléphone. Je vais changer ça en cibles de déploiement à partir de neuf points. 0 10 ou 9.1 point ce soir. Oh, pour que je puisse construire mon téléphone. Si vous rencontrez ce problème, allez
simplement à créer les paramètres de vos cibles et modifiez votre cible de déploiement. Ok, je vais aller de l'avant et lancer ça au téléphone. Et ce qui va arriver, c'est que votre application va fonctionner. Ça va apparaître sur l'écran, mais on se fiche de ce qui apparaît sur l'écran, parce que je vais juste fermer l'application après qu'elle se charge et ensuite on va faire est juste d'
essayer de la force de toucher le contact forcé. Nous pouvons mettre le menu d'action. Et comme vous pouvez le voir, il y a notre icône de recherche. Donc c'est vraiment cool. Donc, juste sur la boîte, ça marche. Le problème est, ce
moment, cependant, nous n'avons pas de code pour intercepter cela. Donc, si je clique dessus, il charge juste l'application comme d'habitude. Ok, ça vous amène au point de départ. Ok, ce n'est pas ce qu'on veut. Alors allons de l'avant et écrire le code pour le faire fonctionner réellement. Mais nous savons que les icônes apparaissent. Voyez à quel point ce n'était pas une grosse affaire. Si vous allez regarder la documentation d'Apple dans leur exemple de projet. C' était un cauchemar, comme si c'était un peu effrayant au début. Donc c'est vraiment simple, en fait. Tellement cool d'arrêter ça. Et allons dans notre délégué d'application maintenant. Donc nous avons maintenant notre icône sont, euh, euh,
statique. Allons obtenir le reste de nos manteaux affaiblir, Soutenez l'icône dynamique, puis nous pouvons les charger tous les deux. D' accord ? Donc, quand vous voulez créer une icône dynamique, vous le faites ici a fini de lancer avec les options K. Ok, donc quand cela est appelé, vous allez au lieu de votre code pour les icônes d'application dynamiques. Et, euh, cela, bien
sûr, sera appelé lorsque vous chargez votre application. Alors allons-y et prenons soin de ça maintenant. Donc, ce que nous devons dire dio si laisser les éléments raccourcis est l'application en ce qui concerne l' application ou donner des éléments de raccourci. Et il dit que l'écran d'accueil dynamique actions rapides pour votre application disponible sur les appareils qui prennent en charge trois d touch. C' est très important. Nous saisissons les éléments de raccourci, mais ne vous confondez pas avec les raccourcis statiques car ce tableau ne contient que les raccourcis
dynamiques. D' accord. Et donc on va l'attraper sur Lee s'il est vide. Donc nous allons dire que nous sommes des objets raccourcis, point est vide. Donc, on va prendre la panoplie de petits objets sur Lee s'il est vide. Si ce n'est pas vide, cela signifie que nous l'avons déjà initialisé à un moment donné. Et
on n'a pas besoin d'en faire quoi que ce soit. Donc c'est génial. Assurez que Cahir coupe courte dynamique vous égalise. I élément de raccourci d'application mutable. C' est quand on veut. Et vous pourriez le faire avec juste une chaîne et un type ou vous pourriez le faire avec le type de chaîne et sous-titré C'est ce que nous allons faire. Et donc, quel est notre genre ? On a besoin d'une seconde icône et d'une rivière. Comment ? Il a dit qu'on allait faire semblant que c'était une sortie. Et donc ce qu'on va faire, c'est qu'on va avoir un branchement appelé comme si tu voulais brancher quelqu'
un. Ok, ça va être le genre. Le nom qu'on va lui donner, le titre localisé, c'est juste le titre. Si nous avions des chaînes localisées, c'est de là que vous l'obtenez. Mais on va juste dire ça et ils vont l'appeler « Hook up ». Et le sous-titre Ceci est intéressant Donc c'est là que je pense que l'icône dynamique sont dynamiques. Les coupes courtes prennent vraiment effet. Vos sous-titres où vous devriez peut-être avoir un type d'écriture ici. Donc, comme, si nous disons que c'était une application de messages et que ça devrait aller aux messages, nous pourrions dire que nous pourrions dire ici quelque chose comme ça. Tu sais, tu as 10 nouveaux messages. D' accord. Ah, dans notre cas, faisons semblant que c'est une application de rendez-vous et que vous avez reçu un message d'une fille, accord ? Ou mec ou tout ce que tu aimes. Ok, les animaux, peu importe. Je ne juge pas et on va dire, commencer une aventure avec arriver au reste de ça dans une seconde ici. On va laisser ça là pour l'instant. Ensuite, allons à l'icône. Vous je l'icône de raccourci de l'application. Alors disons que vous j'application icône raccourci, ok ? Et on va le faire avec un modèle. Nom de l'image crée un écran d'accueil. Action rapide basée sur une image dans votre bundle APS, préférence dans le catalogue d'actifs. On va faire semblant d'avoir déjà créé une image. Appelons ce cœur. Ça va être une image du cœur et des informations sur l'utilisateur. On va mettre Neil ici pour l'instant. Et, euh, si vous cliquez sur la droite ici pour regarder ce qu'il dit AP défini informations sur l' écran d'
accueil action rapide à utiliser avec votre up pour mettre en œuvre l'action. On n'a pas besoin de faire ça maintenant. Bon, donc, raccourci
dynamique. Voilà notre raccourci. Maintenant quoi ? Nous avons besoin de dio se des éléments de raccourci point application. On va créer ces petits éléments et dire un raccourci dynamique. Donc c'est intéressant. Pourquoi utiliser des raccourcis dynamiques ? Eh bien, je pense qu'une bonne utilisation pour les raccourcis dynamiques est quand vous voulez daté pour être dynamique comme des messages . Ainsi, par
exemple, lorsque nous chargeons l'application, vous savez que nous pourrions faire est de saisir les messages. Combien de mecs ? Combien de messages avez-vous ? Et vous pouvez le mettre dans l'icône de raccourci. C' est une bonne utilisation pour une icône dynamique ou, dans notre cas, a commencé à fling avec. Alors faisons semblant. Ok, faisons semblant que nous avons téléchargé le dernier branchement et dynamiquement Ah, faible téléchargé le dernier et le charger dynamiquement. Ok, quoi d'autre ? Oh, êtes-vous un bon endroit où vous pouvez définir cela aussi bien pour aimer vos
icônes d'application dynamiques . Chaque fois que vous fermez l'application. Alors peut-être que lorsque l'APP se ferme, mettez à jour le dernier hook up. Donc la prochaine fois que vous lancez, il a de nouvelles données, peu importe. Je vous donne juste quelques réflexions sur ce que vous pourriez faire. Donc, dans notre cas, faisons semblant d'être allés sur Internet ou quelque part. Et on a découvert que tu avais un nouveau branchement ou flirt. Et disons que c'était de Was de Kim. Donc, euh, est-ce que ça dit que le branchement téléchargé est égal à Kim ? Alors ce que vous pourriez Dio est ici dans votre texte juste ici. On pourrait juste utiliser l'interpolation de chaîne et mettre son nom de leur dynamiquement. Et maintenant, vous avez un raccourci dynamique, ce qui est vraiment cool. Rend votre application fraîche et plus mise à jour. Ok, donc on a ça ici. C' est bien. Allons de l'avant et obtenons notre image maintenant. Alors je vais aller sur Internet. Allons au projet de nom et trouvons une icône que nous aimons. On va dire flirt, flirty, cool. J' aime bien celui-là. Cliquons dessus et on va donner du crédit. Teoh icônes simples pour nous permettre d'utiliser cette icône dans son application parce que nous donnons crédit, et je vais faire le décalage de commande quatre et juste enregistrer ceci comme une capture d'écran sur mon bureau et faire glisser autour afin que je n'ai pas à passer par tout le processus de téléchargement. Voilà notre icône. Et maintenant, si vous allez à notre bibliothèque j'étais développeur. D' accord ? Si nous allons à si vous faites une recherche ici sur la, euh, sur la bibliothèque des développeurs pour trois D adoptant trois D touch sur iPhone, cliquez dessus. Ok, donc c'est comme ça que tu arrives à cet écran, OK ? Et ce que nous voulons faire, c'est que nous voulons créer l'icône de la bonne taille, qui est de 35 pixels par 35 pixels. Oh, j'ai toujours les clés ici. D' accord. Sur la propriété information référence Lyski. Rappelez-vous où nous avons vu cela 35 par 35 ici pour le fichier d'icône d'élément de raccourci
U. Y. Application. Il y a un lien ici appelé fichiers de modèles. Cliquons sur ça. Il va nous télécharger un fichier Photoshopped. Ok, si tu n'as pas photoshoppé, tu n'as pas à faire cette fête. Vous pouvez obtenir vos icônes. Cependant, vous êtes habitué à le faire. Je ne vais pas m'inquiéter pour 3 x pour l'instant. Faisons deux X et un X je vais ouvrir ça avec des photos. D' accord ? Ça nous donne une belle boîte de délimitation. De quoi ? Où nous devrions faire notre art Où nous ne devrions pas. Ok, c'est en train de se charger. Chargement. Il est en train de charger. Ok, assez de pop up en avaient assez aujourd'hui. Ok, je vais appuyer sur Zito. Zoom ici. Allez. On y va. Il y a notre Ikonomou Go pour voir et désactiver les extras parce que ces lignes bleues
me gênent . Si vous regardez le côté droit, ils ont quelques exemples d'icônes. Donc, ces icônes doivent être une seule couleur. Et au
fait, peu importe la couleur que vous les faites. Ça va devenir noir pour toi sur l'ensemble de l'Iowa pour qu'on puisse juste laisser l'artiste noir parce qu'on sait que ça va devenir le nôtre noir. Ne joue même pas avec la coloration. Ok, alors allons de l'avant et prenons notre icône ici et juste la glisser et appuyez sur Entrée. Désactivez le calque avec la file d'attente du globe oculaire. L' autre quand le président, je vais faire un clic droit sur cette couche et aller à Rast se pose plus tard pour le rendre créditable, puis le président W pour la baguette magique Outil. Je vais juste appuyer sur supprimer sur ce blanc et supprimer sur cette commande de maintien blanc plus t pour aller dans la télécommande transe. Et tout en maintenant le décalage, on va rendre cette icône un peu plus petite. En passant, la raison pour laquelle j'ai montré ces conseils Photoshopped est parce qu'en tant que développeur IOS, j'ai dû le faire un million de fois. Comme quoi ? Une douleur. Allons trouver le designer qui a des dessins, nous l'
expédions, revenons à nous dans deux jours. Allons-y ou on pourrait juste faire ici dans cinq minutes. Donc voilà notre icône. Si on fait un zoom arrière, ça commence à paraître plus agréable. Pas si pixélisé. Donc je vais éteindre ces couches ici. D' accord ? C' est celui que je veux. Et en passant, j'ai commandé un pour sélectionner tous. Et puis j'ai appuyé sur V pour passer en mode sélection et en haut ici, j'ai sélectionné cette ligne Les centres horizontaux dans les centres verticaux de ligne pour centrer cette icône. Ok, je vais maintenant exporter un héritage Web plus sûr. D' accord. Et puis sur le bureau, je vais enregistrer ça en tant que cœur à deux x points p et G. Je vais aller exporter un héritage web plus sûr et cette fois pour le changer à 35 par 35. Il s'agit de l'icône X, leur presse onglet enregistrer. Et ça va juste être le cœur Dot PNG. Ok, ça a l'air bien. Faisons en sorte que mes icônes soient ici et bien paraître. C' est ma capture d'écran. C' est mon cœur. Et c'est mon cœur à deux X. Ok, quelque chose regarde à propos de ça ici. Ne s'en assure-toi pas. Ok, eh bien, on va jouer par ici. Je vais fermer une boutique photo. Alors maintenant qu'ils ont juste rendu différemment sur votre ordinateur, allez à vos actifs point Exe c assets et attrapez votre cœur à un X et faites-le glisser ici , puis prenez votre cœur à deux X et faites-le glisser ici au milieu. D' accord. Tu vois les cœurs ? Ils sont là. Et, bien
sûr, interagir Délégué, Nous avons défini le code pour le cœur. C' est juste là. Donc, si je charge ça sur mon téléphone, nous devrions voir les deux icônes là-bas. La coutume, qui est le cœur que nous avons créé, et la recherche devrait toujours être là aussi. Je vais tenir mon téléphone ici et voir si ça marche. Donc tes abdos vont se charger ? Alors fermons ça. Tenir mon pouce et glisser vers le bas si vite. Ok, voilà ma recherche. Et voilà mon branchement. J' ai commencé à Fling avec Kim. Qui ? Bien sûr, encore une fois, ça ne fait rien parce que nous n'avons pas encore dit de faire quoi que ce soit. Donc on y est presque. On a les images, on a les raccourcis. C' est un raccourci dynamique juste là. Allons de l'avant et faisons la dernière partie. La partie la moins. Ce qui est vraiment facile, en fait, une chose de plus. D' abord, préparons nos storyboards. Accédez à votre storyboard principal. D' accord. Et, ah, nous avons notre contrôleur de vue de tabulation ici, non ? Utilisons-les nettoyer ici. On va appeler cette recherche, d' accord ? Et sur celui-ci, je vais juste m'approcher du texte ici sur cette icône. Ce cliquez dessus et passons de personnalisé à la recherche. Ok, on
y va. Et le 2e 1 ici, appelons celui-ci. Pas cette contrainte. Appelons ça les branchements, parce que c'est là que vous branchez avec les gens. Et allons de l'avant et cliquez sur l'icône ici et pour l'image. Mettons-le au cœur au lieu de seconde. Appelons ça les branchements. Ok, OK. Ça a l'air de bons branchements de chirurgien. Bon,
maintenant, maintenant, allons de l'avant et revenons à son délégué d'application et nous allons faire est de créer une nouvelle fonction ici. Que c'est par défaut. Il n'inclut pas le modèle, mais vous pouvez l'utiliser. Ok, va juste ici et on va agrandir ce peu. On y va. On va le mettre ici. La fonction est l'application. Et souvenez-vous de nous chercher. Exécuter une action pour l'élément de raccourci. Et je l'ai mal orthographié. Funk. On y va. Application. On y va. Effectuer une action pour l'élément court. C' est celui qu'on veut. Et donc cela est appelé chaque fois que vous chargez l'application via un raccourci. Ok, si facile. Donc ce qu'on va faire, c'est que si c'est la recherche,
on va charger l'onglet Recherche. Et si ce n'est pas le
cas, si c'est l'autre, on va charger l'autre robinet. Maintenant, si on avait plus d'onglets, on pourrait les faire. Si on voulait montrer une alerte, on pourrait le faire. On peut faire ce qu'on veut ici. Tout ce que vous pouvez penser de vous peut faire ici dans notre cas. C' est un onglet. Sont donc si l'onglet V c est égal à la fenêtre auto-point qui examine les contrôleurs, nous allons attraper le contrôleur de vue de route. Bien sûr, dans notre cas, puisque nous utilisons un onglet sont nous savons que le contrôleur de vue d'itinéraire est un onglet sont donc nous devons le
lancer. Ok, tu mens Tab, contrôleur de
bar. Donc nous allons prendre la barre d'onglets et ensuite ce que nous allons dire dio si le type de point de raccourci égal à la recherche, est
égal à la recherche,
faisons une chose. Maintenant peut-être que vous vous demandez quel élément de raccourci sera ici, il est l'élément de raccourci de
l'application U Y . Lorsque vous cliquez dessus, il le transmet dans votre application. Vraiment cool. Et il a une propriété appelée type. C' est là que nous avons dit dans la liste info point p. Le type. Ok, la même chose ici. Quand on a dit type, ça a pris. On peut vérifier ces chaînes là-bas, ce qui est vraiment cool. Et c'est qu'il est de type chaîne. OK, donc si c'est de type recherche, allons de l'avant et disons, onglet V c, que l'index sélectionné est égal à zéro. D' accord. Et nous allons dire autre si le type d'élément court est égal à brancher. Si c'est un branchement. Ensuite, nous allons sélectionner, avoir facile que l'index sélectionné est égal à un. Ensuite, nous allons sélectionner l'étape de connexion. D' accord. Sinon, si c'est quoi me crier dessus pour le Michigan ? Condition manquante dans l'état if. Oh. Ah, oui. On y va. D' accord. Donc, si le type de recherche va à la surtension pour avoir autrement aller à l'onglet de raccordement. Ok, arrêtons notre application. Maintenant, allons-y et faisons-le. D' accord ? Donc remarquez maintenant que c'est sur l'onglet de recherche. Je vais fermer l'application ou au moins appuyer sur le bouton d'accueil. Je ne vais pas tuer l'APP. Ça n'a pas d'importance. Et je vais aller de l'avant et lancer le raccourci. Je ne vois pas. C' est dur, on y va. Et donc si je clique sur brancher, ça devrait m'emmener à l'onglet branchement. Il est là. Connexions maintenant sélectionnées. Maintenant, regardez ceci avec l'onglet Connexions sélectionné. C' est ce qu'on a laissé. ce moment. Si je fais ce raccourci à nouveau cette fois pour rechercher, nous devrions voir l'onglet de recherche. Et il y a donc ça marche. Donc, vraiment, l'idée derrière les raccourcis est que vous deviez trouver un raccourci, son titre et son sous-titre et l'image, puis vous gérez quand vous lui donnez un type, puis vous gérez ce qui se passe lorsque ce type est sélectionné. Dans notre cas, nous changeons juste les onglets. Tu pourrais faire des alertes, tout ce que tu veux. C' est devenu très important. Point. Je dois vous dire, cela ne fonctionne pas sur le simulateur au moins au moment de l'enregistrement. Vous devez le faire sur un appareil. D' accord ? Le contact de force doit être fait sur un appareil au moment actuel de l'enregistrement pour les
raccourcis de l'application , travail des
orteils. Mais c'est comme ça que tu le fais. Pas si grosse affaire. Jolie est assez simple. Et juste pour te montrer, on me laisse juste te montrer la valeur que tu as tirée de ce tutoriel. J' ai ouvert le projet d'Apple. OK, c'est comme ça que j'ai compris comment faire tout ça. Et, euh, ouais, regarde ça. Oui. Allez, les gars. Vraiment. Et pour ne pas le mentionner ici. Ok, donc, euh, ouais, le sartorial est vraiment court, mais ce n'était pas si facile à assembler. Donc de toute façon, maintenant vous pouvez faire des raccourcis d'application. Rendre vos points meilleurs. Je pense que les utilisateurs devraient penser que les développeurs devraient faire cela parce qu'il ajoute de l'utilité à votre application. Nous sommes dans un état de développement de l'iPhone et juste en général, où nous voulons que l'information charge instantanément plusieurs écrans, choses comme ça devient de moins en moins une fonctionnalité désirée pour les utilisateurs qu'ils voulaient. C' est ça. Raccourcis d'application. Je reverrai la prochaine fois sur les pentes de la mort avec Mark Price. A bientôt.
123. Swift et Objective-C dans le même projet: Hé, tout le monde, Mark. Et aujourd'hui, nous allons parler de quelque chose qui a été très demandé, qui est l'interopérabilité entre les sièges rapides et objectifs. Maintenant, le vrai test est si vous pouvez dire interopérabilité 10 fois plus vite. Je l'ai essayé. Ça ressemblait à un idiot. OK, donc doit traiter alors que la possibilité d'importer du code rapide dans objectif voir un code C objectif dans Swift. Donc je vais créer un nouveau code de projet ici, et nous allons créer un nouveau projet. Et je vais juste faire une application de vue unique et cliquez sur suivant. On va appeler ça mon O B J c ap et le langage qu'on va mettre à un objectif C et je vais juste mettre ça sur le bureau. D' accord ? Pas grand-chose. Donc, en ce moment, j'ai un projet c objectif strict, accord ? Et, ah, comme n'importe quelle application de vue unique, Si je charge cela, il chargera mon contrôleur de vue unique automatiquement. Maintenant, disons que je veux le contrôleur de deuxième vue, mais je veux le faire et Swift. Et au fait, si vous n'utilisez pas Swift, vous devriez être OK. Chaque projet pour lequel je passe dans chaque entreprise pour laquelle je travaille ? Je ne les laisse pas partir tant qu'ils ne me permettent pas de convertir leur projet en Swift. Maintenant, vous n'avez pas besoin de changer votre code objectif C. C' est la beauté. Vous le laissez tout de même. Mais un nouveau code ? Tu as raison. Je crois que vous devriez écrire et Swift parce que c'est un langage beaucoup plus puissant et beaucoup plus sûr. Donc, et ça ne fait rien à votre manteau objectif C. Tout fonctionne très bien et très bien. n'y a aucun problème avec avoir rapide dans les projets basés sur le code objectif C. Donc tu devrais faire ça. C' est mon opinion. Mais c'est mon opinion professionnelle, donc d'accord, donc maintenant objectif. Tu vois ? Comment on arrive vite ici ? Bonne question. Eh bien, première chose qu'on va faire est de créer un contrôleur de seconde vue. Je vais à droite. Cliquez sur mon dossier ici, allez dans un nouveau fichier, et on va faire un cours de Coco pour l'Iowa. Et je vais appeler ça une seconde sous-classe VC de vous avez votre contrôleur. C' est très bien. Et le langage va être rapide. Ok, crée. Ah, intéressant. Voici quelque chose de très intéressant que vous voulez souligner. Voulez-vous configurer un en-tête de pont C objectif en ajoutant ce fichier à mon o b do dire Oh bjc apple create et mixte rapide et objectif C cible. Souhaitez-vous x code configurer automatiquement un en-tête de pontage pour permettre aux classes d'être accessibles par les deux langues ? Oui. Maintenant, je veux signaler quelque chose ici. Il y a l'en-tête de pontage. Ok, c'est pour que vos fichiers rapides puissent dépasser vos fichiers C objectifs. Ok, donc je n'ai pas besoin de ça maintenant pour que mon projet reconnaisse les fichiers rapides . Mais au contraire, puisque je le ferai. Donc encore une fois, ce juste ici ce fichier d'en-tête de pontage. Voilà le truc. C' est si vous voulez rapide pour pouvoir accéder aux classes objectives C. Ok, pas vice versa. Je n'ai pas besoin de faire ça pour mon objectif. Seiko en excès un fichier rapide. Il y a un autre moyen pour ça. Mais je vais ajouter ça Quoi qu'il en soit, maintenant, je vais cliquer sur l'en-tête Great bridge ! Et ce qu'il a fait ici, c'est qu'il a créé un fichier d'en-tête de pontage. Et c'est là que vous allez importer toutes les classes C objectives que vous souhaitez mettre à la disposition de Swift. Mais encore une fois, nous n'y sommes pas encore, donc nous avons notre contrôleur de deuxième vue ici dans Swift. Vraiment cool. Très bien. Alors allons à notre storyboard. Ce que je veux faire est de mettre un bouton ici qui chargera notre contrôleur de deuxième vue. Donc c'est une charge. Deuxième VC me semble bien. Allons-y et alignons-le horizontalement et verticalement et donnez-lui une
hauteur fixe . Ok, Cool. Dale, voilà notre storyboard, mais ouvrons le rédacteur adjoint ici et je vais contrôler la traînée du bouton vers le code. Et l'action est ce que nous voulons et nous allons appeler cette seconde vue de charge. Tu vois ? Donc je viens de créer une action lierre dans mon contrôleur objectif vue mer ici. Je vais fermer l'éditeur assistant aller dans View Controller dot m et ici dans l' interface. Je veux déclarer mon contrôleur de deuxième vue. Droit. Donc, faisons une propriété non atomique forte et,
disons, disons contrôleur de
deuxième vue, attendez une minute. Pourquoi ne tire-t-il pas vers le haut deuxième V C ? Ça ne marche pas, non ? Eh bien, la raison pour laquelle ça ne marche pas, c'est parce que nous n'avons pas permis que ça marche, et c'est comme ça que vous le faites. C' est ainsi que je vais vous montrer comment vous obtenez l'objectif C pour reconnaître les fichiers rapides . Et voici la clé. Vous importez. Hey, vous êtes prêt pour mon o b g o b j c ap ok dot H Excusez-moi, Dash Swift dotage. Donc, ce que vous dio est dans quelle classe objective c que vous voulez importer swift dans vous inclure cette déclaration d'importation ici, et c'est le nom de votre projet dash swift dot h. inclure cette déclaration d'importation ici,
et c'est le nom de votre projet dash swift dot h. Et cela va vous donner accès à toutes les classes swift afin que vous n'importiez jamais, jamais,
jamais, des classes swift individuelles dans un fichier c objectif lorsque vous voulez un excès rapide. Ok, vous importez juste le mon projet nommé Dash Swift touch dot h dans la recharge là-bas et vous serez en mesure de l'excès. Essayons donc à nouveau à la propriété sur Atomic Strong, ce type intemporel dans le contrôleur de deuxième vue Et là
c'est K. C'est leur deuxième affaire cool v c, et nous allons nous assurer que cela fonctionne. Donc, lorsque ce bouton est cliqué, va charger ce contrôleur de vue et assurez-vous qu'apparaît à l'écran. Ce qu'on va faire, c'est dire que deuxième V C est égal au deuxième VC. Alec Initialiser. Ok, on vient de l'initialiser et de l'allouer. Allons-y et jetons-le sur l'écran. Donc auto point présent contrôleur de vue, nous allons dire deuxième VC animé. Oui, achèvement. Neil, on se fiche de ce qui se passe après le chargement. Mais une chose que je veux faire juste pour m'assurer que cela fonctionne est de le rendre violet. Deuxième V c Cette couleur de fond point de vue est égale à vous comme la couleur pourpre. Ok, tu me suivis ici. Ce que nous faisons, c'est que nous sommes Nous avons créé notre deuxième contrôleur, qui, d'ailleurs, est écrit et rapide. Si vous vous souvenez où ? Donc nous l'allouons et l'initialisons. Nous changeons la couleur d'arrière-plan en violet, puis nous l'affichons à l'écran. Donc, si je lance cette application ici, nous devrions voir quand ce bouton est appuyé, nous devrions le voir apparaître à l'écran. D' accord. Et comme vous pouvez le voir, il y a une charge. Deuxième bouton VC. Si je clique dessus, c'est violet. Donc ça a fonctionné. Donc, sont rapides. La classe a été chargée avec succès. Ok,
Maintenant, parlons du cas opposé où nous avons un projet rapide et nous voulons importer siège
objectif. OK, je ne vais pas créer un nouveau projet. Je vais juste te montrer ici parce que c'est le même principe. Mais faites juste semblant que vous avez un projet rapide et que vous voulez importer objectif. Tu vois, c'est comme ça que tu ferais. Ce que vous diriez, c'est que vous créeriez ce fichier ici. D' accord ? Allez à droite. Cliquez sur votre dossier nouveau fichier et vous créez un fichier d'en-tête. D' accord. Et ce que tu dis, comme tu l'appellerais, juste ce qu'on appelle ça ? Rappelez-vous comment je x code a été très utile et l'a fait pour nous automatiquement, ce qui était cool. Donc, mon o b j c ap tiret pont pont dash point hk. Donc tu le nommerais du même nom. C' est juste là ? D' accord. Et peut-être que vous pensez oh, donc fonctionne automatiquement maintenant. Eh bien, non, ça ne le fait pas. Tu dois aller de l'avant et le mettre. Allons-y et parlons de ça ici. Donc, ici, dans l'icône de votre projet, allez sur les paramètres de construction et dans la barre de recherche, tapez
simplement le pont B r I d. Et le voilà. Et l'en-tête de pont objectif c, et il demande où vous pouvez le trouver. Donc, ce que vous allez vouloir dio est le nom de votre projet slash le nom de votre projet Dash pont Dash en-tête point h. Ok, assez simple. Encore une fois, le nom de votre projet Slush. Le nom de votre projet Desperate pontage dash header dot h et ah, c'est tout
ce que vous avez à faire pour qu'il soit reconnu par les paramètres de construction de votre application . Et puis ici, c'est là que vous importez vos fichiers et montrez pour vous montrer que cela ne fonctionne pas encore. Si je vais dans mon contrôleur de deuxième vue, qui est écrit et rapide et disons que je veux dépasser mon
contrôleur de première vue C objectif , voir ce qui se passe de notre premier Veasey de type ? Ça s'appelle le contrôleur de vue. Ecoute, ça ne marche pas bien, OK ? Rien n'apparaît. Ça me donne un air, OK, il ne peut pas le trouver. Donc ce que nous avons besoin de dio est dans notre fichier d'en-tête de pontage. Importez simplement vos classes rapides spécifiques. Maintenant celui-ci est important celui-ci, vous devez importer les classes spécifiques que vous voulez utiliser dans Swift. Ok, donc je vais dire d'importer le point de contrôleur u h. Donc, nous allons juste importer ce fichier de contrôleur de vue h ici et retourner à notre classe swift et voir si cela fonctionne maintenant. Var allait dire premier Veasey du contrôleur de vue de type. Et c'est là. Vous pouvez y accéder et le créer. Donc tout ce que je voulais faire ici avec que je pourrais donc dire d'abord V c que arrière-plan arrêter Vu la couleur de fond, deuxième excès tout très bien. Donc, ce que vous venez de voir est nous avec succès euh, accéder au code swift un objectif C et accéder au code objectif C dans swift et remarquez comment ici et Swift, vous n'avez pas à importer quoi que ce soit. Ce fichier d'en-tête ici est tout ce dont vous avez besoin. Donc, tous les fichiers c objectifs que vous voulez rapide à excès, vous mettrez ici et un objectif. Voyez si vous allez au contrôleur View M. Si je veux importer mes classes swift ici et c'est pour toutes, cela les importera toutes. Importez le nom de votre application. Dash swift dot h. Il s'agit d'un fichier généré automatiquement. Si je commande cliquez dessus, il génère automatiquement cela et a vos informations de classe ici juste ici. Voir deuxième NBC. Donc, en fait, c'est de vrais fichiers. Il suffit de frapper et de déposer. Tu ne l'auras jamais. Vous ne toucherez jamais ça manuellement. Alors c'est comme ça que tu le fais. Pas trop grosse affaire. Je l'ai fait dans tous mes projets depuis que Swift est sorti très puissant, très important que vous soyez rapide dans vos projets. Je suis un grand défenseur de Swift, et il n'y a aucune raison de ne pas le faire parce que l'interopérabilité est si incroyable . Et je suis très heureux que Apple a donné cette marque Prix. Vos pentes de mort dot com Allez-y et obtenez rapidement dans vos projets maintenant.
124. Maîtriser LinkedIn: Tout le monde. Mark Price ici. Deb glisse dot com et aujourd'hui nous allons parler un peu de préparation à la carrière et liés. Donc je vais retrouver mon profil LinkedIn ici. Et si quatre Préface. Lincoln a été un outil très puissant pour moi. J' ai obtenu plusieurs projets, plusieurs emplois de Lincoln,
et, euh, euh, Lincoln n'est pas un truc du jour au lendemain. C' est quelque chose sur lequel tu dois commencer à travailler. Donc, si vous êtes intéressé à entrer dans la communauté du développement, peut-être que vous n'avez jamais été un développeur avant et que vous voulez commencer à construire une réputation que
vous voulez commencer à se faire connaître est l'endroit où le faire. Au moins un des endroits. Donc, euh, si vous n'avez pas créé de compte, allez à Lincoln dot com et créez un compte. Je ne vais pas aller spécifiquement sur comment aimer, où cliquez-vous et où aimez-vous charger des images et des choses comme ça ? Vous pouvez expérimenter avec le vôtre. Ce n'est pas si dur, et ils vous donnent des instructions et des instructions. Mais je vais cliquer sur mon profil ici,
et, et, euh donc j'ai quelques 1000 connexions sur LinkedIn, et, euh, c'est fondamentalement un processus de trois ans. Pour y arriver, vous pouvez y arriver un peu plus vite,
et, et, euh, vous pouvez être très efficace dans un laps de temps beaucoup plus court aussi. Vous n'avez pas besoin d'avoir autant de connexions pour être efficace. Mais l'idée derrière liée est que vous commencez à faire des connexions. Et quand je parle de Lincoln, je parle du développement. Vous commencez à établir des liens avec des gens de votre domaine d'expertise, et vous commencez à vous frotter les épaules avec des gens que vous ne connaissez peut-être pas. Ainsi, vous pouvez commencer à vous impliquer et voir ce qui se passe dans votre communauté ou dans le développement, le monde du développement. Eso, par
exemple, chaque semaine maintenant parce que j'ai accumulé ma longueur chaque semaine, je reçois des gens qui me
contactent pour des emplois, mais en voici un nouveau. Je ne l'ai jamais regardé. On va te voir. Voyons ce que dit cette personne. Euh, celle-ci est une sollicitation. Ok, donc c'est un mauvais exemple. Il dit que je fais des trucs. Donc, euh, voici un autre ici. Nous avons commencé un projet et besoin d'un développeur IOS, et donc il a contacté moi, Um fait, chaque semaine, je reçois des e-mails de gens sur allongement à la recherche de développeurs Android à la recherche d'IOS développeurs. J' aime aussi le développement. En fait, Islington pourrait être la sécurité d'emploi pour vous si vous prenez le temps de le remplir et de s'en occuper . Parlons donc de quelques choses. Non lié. D' accord, donc d'abord c'est ton nom. Évidemment, c'est ton nom. Deuxièmement, est votre titre maintenant C'est important. Donc, l'une des choses à propos de la longueur dans est que les employeurs la recherchent souvent et les
recherches Lincoln , euh, vous
trouver par résultats de recherche par mots clés. Et donc l'un des moyens les plus importants et les plus puissants d'être trouvé est votre titre principal ici. Donc maintenant, mien est un IOS senior et un ingénieur angulaire, et en fait, je devrais probablement le changer. Je fais beaucoup plus d'enseignement ces jours-ci, et je devrais probablement parler d'instructeur, d'instructeur de camp de démarrage, instructeur
en ligne, instructeur timmy, choses comme ça. Mais à l'époque, c'était le but. La raison pour laquelle je l'ai mis ici parce que je cherchais à obtenir des
projets de contrat et des choses comme ça. Donc, ce que vous voulez faire est le poste que vous cherchez à occuper est ce que vous voulez mettre leur. Et donc si j'étais vous, je mettrais leur,
euh, euh, ingénieur
IOS ou développeur IOS. Je serais très prudent de mettre le mot Jr. Sur la raison pour laquelle est ah, parfois Jr a une connotation négative à elle. Et, parfois, les employeurs ne savent vraiment pas ce qu'ils attendent avec impatience et qui ont juste besoin de quelqu'un pour résoudre un problème pour eux. Et donc je mettrais un ingénieur IOS ou un développeur IOS et, euh, puis je laissais ça vous entrer dans les interviews et ensuite vous pouvez passer à partir de là, et, euh, vous savez, votre compétences et personnalité, tout le reste pourrait être le facteur décisif. Et donc Number Jr sur leur garder comme ingénieur,
et, et, euh et puis voici quelque chose d'intéressant. La zone que vous avez mise ici, hum, mettez la zone là où vous voulez travailler. Donc, par
exemple, si vous voulez travailler à Los Angeles, accord, mais vous vivez à Milwaukee, à Los Angeles ici. Est-ce que tu as plus de contacts et de trucs et ensuite, euh, être des conversations et des discussions comme tu travailles avec les recruteurs ou qui que tu peux dire,
Hey, Hey, j'ai besoin de relocalisation et la plupart des entreprises ces jours-ci sont en fait en train de se déplacer Et en passant, il y a quelques centres technologiques différents. Les salaires ont-ils été très élevés là où il y a beaucoup d'emplois ? Ok, et ça va être Los Angeles. D' accord. San Diego, la région de la baie. Seattle. Austin, Texas. New York, Salt Lake City et Provo ( Utah). Je
dis Boston,
New York et j'ai déjà dit Seattle. Je
dis Boston, Donc, il y a environ sept ou huit grandes villes qui embauchent vraiment, euh, ingénieurs
logiciels. Et donc, si vous êtes intéressé à déplacer l'une de ces villes, ce sont de superbes endroits où être. Je dirai que je suis à Salt Lake City en ce moment. Donc, comme, la
ville de toutes les villes a le coût de la vie le plus bas, mais vous êtes payé le même. Donc 110 000$ de salaire à Salt Lake City va beaucoup plus loin qu'à Ah, dans la région de Bay, où vous payez 4000$ pour un loyer par mois, ou nous sommes ici pour avoir la même maison ou ce pour quoi vous allez vivre, comme 800 dollars par mois. Tellement grande différence. Mais de toute façon, beaucoup de villes différentes où vous pouvez aller ou vous pouvez rester où vous êtes. Travaillez à distance des choses comme ça aussi, aussi. Il y a du travail dispersé partout. Bref, l'emplacement est important. , Et puis tu sais, c'est juste ton courant où tu travailles, ce que tu fais. Ah, où est ton éducation. Tu as tout mis dedans. Parce que tu as besoin de Teoh. Et puis votre été est vraiment important. Le résumé doit être factuel. Ok, ne dis pas que je suis un getter, orienté
résultats, super puissant individu. Ma plus grande faiblesse, c'est que je travaille trop. Si vous êtes toujours mis dans ce genre de trucs sur vos CV, arrêtez. Arrête juste. Personne ne veut écouter ça. Ils veulent des faits. Personne ne se soucie de ce que tu penses de toi-même. Ils se soucient de ce que vous pouvez dio. Sois donc très factuel. Je suis un développeur mobile d'expérience, application Le développeur ,
bla, bla, bla, bla. J' ai construit 55 APS. J' ai fait ça. J' ai fait ça. J' ai travaillé là-dessus. J' ai travaillé sur des recruteurs et des employeurs très factuels. Ils veulent être factuels. Ils décideront de ce qu'ils pensent de toi. Tu n'as pas besoin de leur expliquer ce que tu penses de toi, OK, c'est vraiment important, en fait. Je ne suis pas juste en train d'inventer ces trucs comme si tu allais rencontrer les recruteurs et renvoyer
ton CV ou un peu. Je ne suis pas juste en train d'inventer ces trucs comme si tu allais rencontrer les recruteurs et renvoyer Vous allez être comme, ne mettez pas ça sur votre personne ne veut voir ça. Alors, euh, arrêtez avec les CV de 1995 où vous êtes génial, puissant et incroyable. Voudrais-tu peut-être. Mais tu n'as pas besoin d'écrire ça. Écrivez le fax. En outre, une chose qui est bon d'avoir dans votre résumé sont les mots clés pour les technologies sur lesquelles vous êtes intéressé à travailler. Donc le mien dit développement IOS , développement
Android , programmation
mobile objectif
rapide C, etcetera, etcetera. Mais les technologies ici que vous connaissez couramment ou que vous apprenez ou que
vous voulez apprendre parce que ce qui va se passer est,
um quand les gens sont à la recherche de vos emplois et des trucs comme j'ai besoin de développeur IOS, ils sont va taper le développeur de l'Iowa et ça va te tirer vers le haut. Donc, par
exemple, voici quelque chose d'intéressant. Je reçois des offres d'emploi ou du moins des invitations pour des emplois tous les jours, presque pour IOS. D' accord, euh, certains pour Android. Mais ce qui est intéressant, c'est que je n'en ai jamais eu pour, comme, pH B ou Java, comme pour l'entreprise Java ou des choses comme ça. Et c'est parce que je n'ai vraiment pas d'intérêt à travailler ces technologies, et je ne les ai pas répertoriées dans mon portefeuille dans mon résumé. Donc résumés un endroit idéal énumère également des mots clés réels des technologies, vous savez, parce que juste pour que
vous sachiez, vous êtes comme un CV numérique qui est jeté dans le monde de l'Internet. Et quand les gens recherchent, ils vont chercher des mots-clés sur votre profil pour être sauvegardés et des choses comme ça. Donc, en passant, toutes les informations que vous mettez à Arlington sont pour la plupart des informations publiques. Donc si vous ne voulez pas que quelque chose soit entre les mains du monde, l'Internet, le gouvernement, peu importe, ne le mettez pas sur lié juste savoir, lié dans va vous exposer au monde. Donc il suffit de garder au courant de ce résumé important. Et au fait, ces choses ne sont pas importantes là-dedans. Quelqu' un va regarder ça et décider de me donner un boulot ou pas. C' est plus vrai. Plus j'en ai ici, plus impressionnant. Je semble et regarde vers le monde extérieur afin qu'ils ne puissent pas tout lire. Mais avoir toutes ces choses est très important. Bien sûr. Um, tu pourrais mettre ton expérience comme tes emplois passés et des choses comme ça. Ok, il y a quelque chose de vraiment important à ce sujet que tu dois savoir, cependant. Ne mettez pas toutes sortes d'expériences absolument pas liées à la programmation. Donc, si vous avez passé les 10 dernières années en tant que gérant des restaurants de restauration rapide, vous savez, même si vous avez fait de grandes choses, ce n'est pas super lié, et je vous suggère fortement de ne pas le mettre sur leur. Ce que je suggère, place, c'est que
si vous êtes tout nouveau dans la programmation, ce que vous voulez faire est de mettre des projets. OK, dis-le. C' est vivre des emplois et des choses comme ça. Je pourrais peut-être le diviser en projets comme s'il s'agissait de produits, accord, et c'est pourquoi il est si important de construire des projets de portefeuille et de les mettre sur, obtenir le hub et de les publier. Si vous pouvez libérer grâce à l'APP store encore mieux. Ok, les choses qui sont en direct sur le magasin APP techniquement un produit. Donc, si vous dites oui, j'ai construit et publié cette application. C' est sur l'App Store. Alors ce que vous pouvez faire est, plutôt que de dire que j'ai travaillé dans cette entreprise, vous pouvez dire que j'ai travaillé pour ce produit, qui pourrait être sa propre entreprise. Ok, donc si vous aviez, si vous aviez une application appelée recette Time où vous aviez beaucoup de recettes et de choses comme ça, mais le temps de recette ici le temps que vous pouvez mettre le temps que vous avez travaillé dessus, ok. Et puis être très factuel. Mis en œuvre ceci dans ce. Dans ce que j'étais, j'étais le concepteur principal et développeur sur et mettre mettre mettre mettre l'accent sur le projet. Donc si tu n'as pas d'expérience en technologie, , abord, personne
ne va s'en soucier quand on t'embauchera. Personne ne se souciera de ce que vous avez fait dans vos entreprises. Je ne sais pas que ça a l'air dur, mais ils ne vont pas s'en soucier. Alors faites-le orienté projet. Et, euh, très factuel. J' ai fait ceci et ceci et ce sens. Comme j'ai implémenté des requêtes Web qui parlaient à un serveur. J' ai analysé les données. Cette application contient plus de 15 000 lignes de code. Soyez créatif et pensez à des choses factuelles que vous pouvez y mettre. Ça va être impressionnant. Et, euh, c'est la façon de faire quand vous n'avez pas d'expérience de la vision de l'expérience technologique , disons que ce n'est peut-être pas lié à la programmation, mais vous êtes dans I t. euh,
c'est la façon de faire quand vous n'avez pas d'expérience de la vision de l'expérience technologique
,
disons que ce n'est peut-être pas lié à la programmation,
mais vous êtes dans I t.
peut-être que vous faites Qué façon de le réécrire pour faire un son plus orienté vers ce que vous essayez de faire. J' ai donc travaillé avec des ingénieurs IOS avec des ingénieurs Java pour construire des systèmes et des
processus automatisés et QA . Faites de votre faire votre expérience dans la technologie, même si elle est légèrement liée, juste à peine liée. Faites en sorte que ça sonne autant pour ce que vous essayez de faire. Est possible de montrer un chemin clair que, hé, je suis allé d'ici à ici. Programmeur Anoma. Donc encore une fois, Le point que je fais ici est si vous avez une relation dans la technologie, même si ce n'était pas la programmation, essayez de le rendre aussi lié que possible eso. Il montre aux recruteurs et aux personnes qui pourraient vouloir vous embaucher un chemin clair pour savoir où vous avez été. Donc, si vous n'avez pas d'expérience dans les projets, si vous avez expérimenté
faire un son, faites-le pointer dans la direction que vous voulez être autant que vous pouvez à nouveau, plus vous avez de choses sur, mieux ils peuvent pas lu. Il se peut que les gens ne lisent pas toutes les choses sur votre profil, mais plus vous en avez, mieux c'est. Et donc pour moi, par exemple, comme si quelqu'un regardait mon profil pour être comme, Wow, ce gars faisait ça depuis longtemps juste en le regardant, ok ? Et ils n'ont peut-être pas lu toutes les choses, mais ils ont une bonne idée qui avait besoin de parler à ce gars. Et c'est ce que vous voulez faire avec lié dans. Alors ajoutez votre expérience, vos emplois, des choses comme ça. En outre, vous pouvez ajouter il y a une section distincte pour les projets à. Donc, si vous ne voulez pas mettre vos projets comme expérience, parce que disons que vous avez une certaine expérience, vous pouvez les ajouter en tant que projets réels et charger des captures d'écran et des choses comme ça, et plus pop et fleuri y ajouter, plus vous allez attirer l'attention des gens. Et c'est pourquoi, passant, dans mes cours, j'enseigne que l'interface utilisateur conçue comme un développeur est si importante parce que, surtout les siestes iPhone parce que les normes ont augmenté. Et peu importe ce que tu dis, même si tu es comme si je suis un codeur fantastique, mais je ne suis pas super avec toi. Je laisserai ça aux designers. Pourtant, tu penses à ça. Vous cherchez des recruteurs et des PDG qui vous recherchent, n' est-ce
pas ? Des gens qui sont peut-être 100% techniques. Et alors qu'est-ce qui va dessiner leur moi aussi ? Eh bien, ça va être des choses qui ont du sens,bien
sûr, bien
sûr, les mots-clés et tout. Mais quand vous avez de jolis graphismes, des choses comme ça, il ne peut que mieux attirer l'attention de quelqu'un. Et donc, mieux tu as conçu les choses, plus tu auras de chances d'avoir un emploi, et certaines personnes ne seraient pas d'accord avec moi à ce sujet. Mais crois-moi, je sais ce que je fais. J' aide les gens à trouver du travail tout le temps. Je sais travailler avec les gens que c'est une question de psychologie. Comment fonctionne l'esprit humain. Il ne s'agit pas seulement de pouvoir programmer un objectif C et Swift. Je suis super avec les algorithmes et les choses comme ça. C' est cool que tu saches ces choses, mais tu dois toujours te vendre. Vous savez, les deux codeurs ont exactement la même compétence. Ok, l'
un d'eux est fantastique dans les algorithmes et déteste, mais terrible. Laissez-vous pourquoi les autres aussi fantastiques algorithmes, mais est vraiment bon à vous. Pourquoi ? Qui va trouver le boulot ? Vous savez, il y a beaucoup de facteurs, mais de toute façon, prenez la conception de l'interface utilisateur et les graphismes et réfléchissez sérieusement. Ok, donc de toute façon, les projets l'ont mis là-bas. Si vous les avez, il y a des choses pour, comme, faire du
bénévolat autant que possible à nouveau. Être aussi complètement délié que possible est génial, parce que si vous êtes Lincoln est absolument vide, tout le monde sera comme s'il s'en fout ou ils sont nouveaux. Ils ne savent pas ce qu'ils font, alors remplissez-le. J' ai beaucoup de projets en ligne. Hum, ok, donc jusqu'au bas maintenant, compétences en endossements, les gens peuvent vous soutenir pour des compétences comme le développement IOS. choses comme ça, ce n'est pas vraiment une grosse affaire. En fait, c'est une blague qui ne fait que beaucoup pour toi,
Arlington, Arlington, parce que n'importe qui peut te soutenir. Donc juste pour que vous
sachiez, vous n'avez pas besoin de passer trop de temps à vous soucier des compétences et des endossements, parce que les gens vous soutiendront pour n'importe quoi. Et parfois ils mettent même des trucs aléatoires là comme quelqu'un à un moment donné mettre le piano en ligne. Je ne joue même pas du piano si quelqu'un est drôle et ils peuvent juste vous soutenir pour
toutes les compétences et les endossements. Ne t'en fais pas, mais débarrasse-toi de ceux qui ne sont pas super importants. Mettez l'éducation si vous en avez. Ce n'est pas si important ces jours-ci, alors ne vous inquiétez pas pour ça. Ok, voilà un très important, cependant. Recommandations. Donc une recommandation est quand quelqu'un personnellement droit à Bachu dit, je pense que cette personne est fantastique. Ils ont fait ça. Ça et ça quand quelqu'un d'autre parle de toi, c'est une bonne chose. Plus vous aurez de recommandations sur votre profil lié, plus vous aurez de prestige et plus vous serez désirable. Pense juste à ça. Je regarde le profil d'une personne. Ils n'ont pas de projets, pas de recommandations. Vous pouvez avoir les meilleures compétences, mais à un instantané commentaires en 10 secondes. Je ne peux rien dire de toi contre quelqu'un qui a 5, 10, 15 ou 20 recommandations. Est-ce que tu aimes Wow, cette personne a une bosse dans la communauté, et je n'ai même pas eu à le lire. Mais j'ai juste regardé le nombre de recommandations. Alors voici le truc. Si vous voulez être recommandé, accord, vous allez recommander quelqu'un qui est votre mentor. Recommander quelqu'un qui vous intéresse, ou quelqu'un que vous connaissez comme faras dans le domaine de la technologie. Donc, euh, nous allons recommander quelqu'un, et ils vous recommanderont de revenir. Et au fait, si vous finissez l'un de mes cours, accord et que vous me montrez que vous les terminez et que vous voulez me donner une recommandation, si vous me donnez une recommandation, Arlington, je vous donner personnellement une recommandation en retour. Je vais regarder votre code, et je vous recommanderai en fonction de ce que je vois et de ce que je pense que vous faites. Et si tu as suivi mon cours complètement, tu sais, j'aurai confiance que tu es proche. Tu es assez proche de pouvoir trouver un emploi. Donc, de toute façon, juste pour que vous sachiez, si vous me recommandez, je vous recommanderai pour vous mettre sur ce chemin et ce voyage. Mon but est de t'aider à trouver un emploi. Donc, les recommandations super importantes. Donnez des recommandations aux gens si vous voulez que des recommandations soient rendues. D' accord. Donc avec le temps, ce que tu vas faire, c'est que tu vas rencontrer des gens que tu verras des demandes d'amis. Pensez sont liés dans les demandes et les amis. Je suppose que mes collègues, allez-y et rencontrez des gens. Um, ou ajoutez-les. Rencontrez-les numériquement. D' accord, pour la plupart, j'ajoute la plupart des gens qui sont dans mon domaine. Donc certaines personnes diraient, je n'ai jamais à qui que ce soit à moins que je les connaisse en personne. Et c'est peut-être bien, mais je veux juste que tu réfléchisses à ça, ok ? Quand Joe souffle dudépartement d'informatique
de l'Université d'État de l'Iowa,
tu sais,unétudiant
qu'il t'ajoute,n'est-ce
pas ? département d'informatique
de l'Université d'État de l'Iowa,
tu sais, tu sais, étudiant
qu'il t'ajoute, Et tu aimes, je ne connais même pas ce type. Peu importe. Eh bien, pensez à ce scénario. Disons que j'ajoute Joe Blow et qu'il n'est personne, et je dis juste, bonjour. Comment ça va, c'est le rencontrer. Je viens de lui envoyer un message. Hey, c'est génial de rencontrer tes crayons et quoi que ce soit. Maintenant, nous sommes connectés sur LinkedIn. Eh bien, devine quoi ? Peut-être que vous ne parlez pas pendant quelques mois ou jamais, mais, vous savez, vous avez été gentil avec lui. Tu l'as ajouté quand il n'avait personne. Tout d'un coup, Joe Blow a une idée brillante et rencontre ce type, cet investisseur qui lui donne 10 millions de dollars. Et maintenant Joe cherche un développeur IOS, et il se souvient qu'il t'a rencontré. Ok, euh, vous commencez à voir comment ça marche. Donc, plus vous rencontrez de gens et ne vous contentent pas, euh, d'
abandonner les gens. Essayez de leur parler. Envoyez au moins un message, apprenez à le connaître un peu. Mais plus vous rencontrez de gens liés à cela, mieux votre situation pourrait être. J' ai seulement bénéficié de l'ajout de plusieurs personnes à Lincoln. Maintenant, je ne vais pas ajouter n'importe qui que vous connaissez. Tu sais ? Tu connais Steve. Alors et donc frire cuisiner à vous savez, Chili est genre,
ça ne me fait pas beaucoup de bien. Ils vont m'ajouter beaucoup de valeur. Euh, et donc assurez-vous de trouver des gens qui vont ajouter de la valeur pour vous et où vous pouvez leur ajouter de
la valeur. Mais faites des connexions sur LinkedIn autant que vous le pouvez, et ça va payer aussi. Il y a aussi des recruteurs à Lincoln et ils voudront être vos amis ou vos relations. Et vous devez décider si vous voulez ou non des recruteurs. J' en ajoute certains, certains d'entre eux. Je ne sais pas, et ça dépend du personnel et de la façon dont ils m'approchent. S' ils m'approchent personnellement, je les ajouterai. Ok, si c'est vraiment générique, comme ça quand Messages moi un e-mail de masse là-bas, comme nos amis de masse demande et ils sont, comme urgent, besoin
urgent. Ingénieur mobile San Francisco Au fait, je recommande fortement à tous ceux qui viennent à vous, hum, avec l'email ou la demande Lincoln il dit urgent. Besoin de ces mots exacts ? Ignore-le. C' est la pire façon de mettre la main sur quelqu'un. Trouver des gens qui sont vraiment intéressés par vos recruteurs peut être un grand avantage, mais ils peuvent aussi être vraiment ennuyeux. Et nous en parlerons dans une autre vidéo. Comment travailler avec les recruteurs. Mais faites donc beaucoup de demandes que vous pouvez. Lincoln est puissant jusqu'à ce qu'ils aient aussi des emplois si vous savez que c'est ici,
dans le côté droit , il y a des emplois. Vous pouvez chercher des emplois et lié dans, hum juste par ici. Donc, si je tape dans le développeur IOS, OK, ici dans la barre de recherche, ça va tirer des emplois connexes sur le terrain. Alors. Et puis les gens en fait, hum où on entend ? Donc, Jobs, voyez comment il y a un lien de travail juste ici sur le côté gauche. Regardez tous ces emplois pour lesquels vous pouvez postuler. Vous pouvez effectivement postuler avec votre profil lié. C' est cool ? Plus votre profil est rempli, vous avez de chances d'être reconnu. Ok, hum, obtenir APS sur l'absolu super important eux ou vous pouvez libérer plus vous pourriez dire . J' ai libéré 15 siestes. J' ai sorti 20 APS. Alors prends ce costume de cigarette. Même si votre application est un symbole, lancez-la sur l'App Store. C' est une grosse affaire. Très, très grosse affaire. Je ne pouvais pas le souligner assez. Ok, hum ,
enfin ,
euh, sur Lincoln, c'est aussi bon de rencontrer des gens numériquement, mais c'est aussi bon de rencontrer des gens en personne. Ok, donc, euh, allez-y et regardez vos événements locaux dans votre ville ou dans les villes voisines comme,
vous savez, vous savez, hackathons événements de réseautage pour les technologues, pour les propriétaires d'entreprise application, développeurs quoi que ce soit commencer à sortir et en fait juste apparaître. Sois juste là. Commencez à parler aléatoirement aux gens et vous rencontrerez des gens en personne. Ajoutez-les à votre profil. Il y a aussi beaucoup de puissance en ajoutant une personne locale à votre profil lié. Et ils ont en fait beaucoup plus de poids parce que vous connaissez vraiment les gens en personne. Donc c'est un peu lié dans ce connu. Personne ne va probablement lire tous les détails de votre profil, mais plus votre profil est grand, plus il est puissant. Et assurez-vous que les mots-clés sont là. La meilleure chance que tu auras de trouver un emploi pour que les recruteurs te remarquent. Une dernière chose. Ne dites jamais que vous êtes à la recherche d'un emploi sans lien,
jamais , jamais, jamais. Vous détruisez immédiatement votre pouvoir de négociation. Ok, ne dis jamais chercher du travail. Quelque chose comme ça. L' un l'est. Quelqu' un peut ou ne peut même pas vous contacter pour ça, mais s'ils vous contactent comme Ah, ce gars cherche du travail, je pourrais l'avoir à un prix moins cher, alors gardez à l'esprit. Ne fais pas ça. Il suffit de faire les connexions et les demandes d'emploi viendront et, euh, donc c'est lié dans un outil très puissant. Je l'utilise tous les jours, tous les jours où je suis lié. Vous devriez le faire pour faire un objectif dès maintenant de passer au moins 10 minutes par jour sur lié à construction de votre profil, faire de nouvelles demandes, choses comme ça tous les jours. Je suis sur LinkedIn. Je dis la vérité absolue. Je construis mon profil tous les jours parce que c'est la sécurité de l'emploi. Ok, si c'est cool à quel point c'est assez proche d'être recherché là où vous recevez des invitations à l'emploi tous les jours. Ça m'arrive tous les jours. Donc, quand on est l'ironie et ce n'est pas nécessairement parce que sur le meilleur programmeur, je connais beaucoup de programmeurs qui sont beaucoup plus intelligents que moi. Mais j'ai toujours le boulot sur les autres programmeurs parce que, euh, beaucoup d'entre eux sont des introvertis. Ils ne prennent pas le temps. Thio Thio s'entraine mieux. Et si tu es un introverti, je ne dis pas que tu n'auras pas le boulot. Ce que je dis, c'est que
tu dois construire ton profil lié. Il faut construire une présence. Tu dois commencer à travailler pour finir d'être un introverti pour pouvoir vaincre la compétition . Hum, ce sont
ceux qui ont le boulot. Donc j'essaie juste de vous encourager. Vous n'avez pas besoin d'être le programmeur le plus intelligent de la pièce pour obtenir le job. Non seulement cela,
en tant que nouveau programmeur, vous pouvez obtenir, vous pouvez obtenir des emplois fantastiques en tant que nouveau programmeur. Ne prenez jamais un travail de moins de 25$ de l'heure. Ok, c'est comme le minimum qui va bien. Les gens qui lancent des fortunes que les programmeurs En ce moment, dans l'État de l'Utah, il y a trois emplois,
trois emplois de développement pour tout le monde. Programmeur. Ok, les gens ont des technologies désespérées qui explosent. Ne prenez pas de travail pour moins de 25$ l'heure. Même en tant que nouveau programmeur. C' est assez fou, non ? Je pense que c'est assez fou, alors on en parlera plus
aussi . Mais outil lié et fantastique pour vous Commencez sur elle maintenant, et je pourrais vous donner des conseils et de l'aide. Je suis sur le salon de chat sur le formulaire, dit tout ce que vous pourriez avoir dit sur mon chemin, et je répondrai du mieux que je peux. Et c'est tout. Mark. Pricier sourds savons dot com et Happy job Hunting
125. Vous trouverez des CV pour les programmeurs: Hé, tout le monde, Mark Pricier mort pentes dot com et nous allons continuer notre discussion sur le
développement de carrière et nous allons parler de curriculum vitae. Mettez mon CV ici. Celui-ci est vieux de quelques années, mais toujours très efficace. Je ne voulais pas montrer ma nouvelle. En fait, j'ai probablement besoin de Teoh. Il est probablement temps de mettre à jour. Mon CV devrait toujours mettre à jour votre CV de temps en temps. Et euh, alors parlons de curriculum vitae. C' est pour quoi ? Eh bien, vous êtes comme si la rente reprenait pour Eh bien, oui, je parle dans le contexte spécifique du développement. Alors reprend. façon dont cela fonctionne généralement est même si vous avez un profil lié dans. Lorsqu' un recruteur ou un employeur vient vous parler,
il vous demandera toujours votre curriculum vitae. Et pourquoi ? Parce que les CV doivent être une version abaissée. Fini sont les jours CV devrait être grand et puissant, et ont longtemps toutes sortes de choses folles dedans. Il devrait être court et concis. Et ce qui va se passer, c'est que vos recruteurs remettront ce CV à l'entreprise qui veut vous parler et peut-être au directeur technique ou à la direction ? manager, Lemanager,les responsables des
développeurs, il y a et il va en imprimer une copie. Ils ne t'ont probablement pas encore regardé. Jusqu' à ce que tu arrives à la réunion
, ils te regardent analyser. Donc c'est quelque chose qu'ils vont avoir devant eux pour qu'ils puissent vous poser des questions. Et aussi, votre CV est aussi une forme de S E O. Lorsque vous publiez un CV, il est généralement mis dans un type de base de données. Et ce qui se passe, c'est quand quelqu'un cherche un développeur IOS, ils vont fouiller tous les développeurs anéantis qui vivent en ils vont fouiller tous les développeurs anéantis qui vivent en
Floride ou qui vit ici ou qui a des expériences de développement de l'Iowa avec, Floride ou qui vit ici ou qui a des expériences de développement de l'Iowa avec, Disons JavaScript. Donc, ils vont mettre des mots clés correctement dans cette base de données de recherche, et ça va cracher les gens qui correspondent aux critères basés sur un pourcentage. C' est le groupe de match le plus élevé des personnes les plus appariées tout le chemin vers le bas. Et puis ils vont commencer à passer des appels et des choses comme ça, donc les mots clés et tout est très, très important. Et, euh donc laissez-moi vous donner l'historique de mon CV. Donc, au tout début de ma recherche d'emploi, j'ai rassemblé ce CV puissant avec tous mes APS. J' ai payé un graphiste pour concevoir des graphismes incroyables sur. C' était comme, Wow, rendre ça incroyable. Et puis j'ai commencé à travailler avec des recruteurs de haut niveau, un chez Disney dans un pour Electronic Arts, et ils l'ont jeté dans la poubelle. J' ai dit, c'est vraiment joli, mais ça ne va pas faire du bien. Et donc le CV que vous regardez ici, il a été examiné par trois recruteurs, un d'Electron Arts, une fois de Disney et l'autre dont je ne me souviens pas. Et c'est ce qu'ils ont dit est le CV idéal. Alors je te dis ce que je pense. Le CV idéal est basé sur l'expérience et il a été très efficace. Alors parlons de ça. Donc vos coordonnées devraient être en haut, non ? Très minime. Juste non, pas de dessins, pas de graphiques, rien. Juste des trucs simples de Janes ici. Ok, alors, en plus, avoir votre nom en haut OK, vous avez votre titre comme sur lié dans la déclaration la plus puissante, la plus puissante sur ce que vous cherchez dans un emploi. C' est ton titre. D' accord ? Je suis à la recherche d'un emploi en tant que développeur mobile senior ou unité trois d développeur. C' est ce que je faisais à l'époque. Je cherchais un emploi IOS ou un, euh, en fait un job IOS ou Android. Ah, et un développeur d'unité trois D. Et donc toutes mes applications étaient orientées vers cela. Maintenant, ce qui est vraiment intéressant, c'est que j'ai aussi postulé pour des emplois très spécifiques à IOS. IOS seulement donc fait un deuxième CV qui avait quelques changements différents sur elle qui correspondaient mieux. Ce que je cherchais d'autre. Il est donc normal d'avoir plusieurs versions de votre CV qui montrent différentes choses en fonction
des emplois pour lesquels vous postulez. N' envoyez pas de CV en masse en espérant obtenir le meilleur. Assurez-vous qu'ils sont adaptés aux tâches spécifiques que vous souhaitez obtenir. Ok, ça du
sens. C' est ton titre que tu cherches. Ok, maintenant, comme dans le résumé, nous avons ces points de balle et ce qu'ils sont. Y a-t-il des faits à propos de vous déclarations de pouvoir qui sont devenus factuels donc à nouveau, pas les déclarations de pouvoir qui sont comme développeur professionnel, super expérimenté, puissant et passionné ? Tu sais, personne n'aime ces mots. Ils sont ridicules. Ne le fais pas. Même si tu veux vraiment écrire quelque chose sur toi ? Tu sais, peut-être vraiment sympa. Peut-être que tu es très compatissant. Peut-être que vous êtes un getter, et peut-être que vous pouvez apprendre plus vite que n'importe qui d'autre dans le monde. Mais le truc,
c'est ,
c' que tu ne peux pas en parler. Tu ne peux pas dire ça sur toi. D' accord ? D' autres ont besoin de dire ça à propos de toi. Peut-être sur les recommandations LinkedIn. Mais tu ne peux pas faire ça pour toi, et personne ne s'en souciera. Et si tu fais ce genre de choses, les gens vont rire la pire chose que tu pourrais jamais faire. La pire chose que tu puisses dire, c'est que
ma plus grande faiblesse,c'est que j'ai trop travaillé. La pire chose que tu puisses dire, c'est que
ma plus grande faiblesse, Ou ma plus grande faiblesse, c'est que je suis perfectionniste ou mes plus grandes faiblesses. Je suis un surperformant. Si vous avez déjà fait ça d'abord, vous devriez vous moquer de vous-même. Deuxièmement, c' est juste ridicule. Ne fais pas ça. S' il te plaît, ne fais pas ça. Si vous voulez trouver un emploi, s'il vous plaît ne faites pas ça. Peut-être que j'offense quelqu'un maintenant, mais c'est la pire chose à dire. Les gens veulent l'honnêteté et l'intégrité et les choses factuelles de la vie réelle plus qu'ils ne veulent des choses
comme ça . Ok, même si ces choses sont vraies. Qui, soit dit en passant, plus grande faiblesse surréalisable. Allez. Peu importe. Comme vraiment, vraiment. Bref, euh, euh, au
fait, j'embauche des gens. J' avais mon propre conseil à venir. J' embauche des gens, donc je ne te fais pas que des trucs ici. J' ai engagé des gens. Je sais. Je sais ce que les gens recherchent dans des entretiens d'embauche et des choses comme ça. Et j'ai traversé le processus d'entrevue. Alors ? Donc, ces points factuels air sur vous-même pour moi développé et publié 54 APS mobile. J' ai lancé toute entreprise de développement d'applications mobiles qui a gagné plus de 2 millions de dollars en chiffre d'affaires . OK, ce sont des fax sur vous. Donc, dans votre cas, si votre tout nouveau projet ou critique, vous feriez mieux d'avoir des projets vers le haut. Mettez-le sur l'APP Store. Développé trois APS à l'Apple App Store. Mis en œuvre plus de 15 000 lignes de code. Vous devez commencer à réfléchir de façon créative à la façon de montrer des faits sur vous-même qui montrent que vous êtes un développeur. Ok, euh, c'est une grosse affaire. Ne pas aussi, Je mets le développement mobile senior, mais ne mettez pas développeur mobile junior. N' utilisez jamais le mot Jr. D' accord. Et n'utilisez jamais le mot nouveau. Ok, chaque fois que quelqu'un te demande, tu sais, tu savais depuis combien de temps tu t'es développé ? C' est ce que tu devrais dire. Tu sais, je ne suis pas son expérience. Certaines personnes se développent depuis,
genre, genre, 10 ans, mais je suis vraiment douée. J' ai appris très vite, et j'ai été de grandes choses. Et voici quelques-unes des choses que j'ai faites, je ne dis jamais, Jr. À la minute où vous dites, Jr. La minute où votre salaire diminue dans la minute, votre capacité à négocier et le point de vue de vos gens sur vous diminue, nous ne recherchons pas vraiment dans le programme junior. Ils ne savent pas vraiment ce qu'ils veulent parfois,
mais ils voulaient vraiment quelqu'un qui pourrait juste obtenir des résultats. Ils ne savent pas vraiment ce qu'ils veulent parfois, Mais il y a ce tabou autour de Junior qui était comme, eh bien, je ne veux pas embaucher Junior parce qu'ils vont être difficiles à travailler avec des choses comme ça. Et tu n'es pas un junior. Vous êtes un individu talentueux qui peut apprendre n'importe quoi. Ok, n'importe quoi. Et donc vous êtes ingénieur et ne dites pas votre ingénieur principal, parce que ça va vraiment monter les normes et ils vont vraiment tester votre cœur. Mais dis juste que tu es ingénieur. Et s'ils te demandent depuis combien de temps tu le fais, tu peux dire la vérité. Mais ne dis pas Junior. D' accord ? Ne dites nulle part dans votre CV non plus. Donc, euh, comprendre, IOS et Android ont mieux conçu les pratiques de développement. C' est un peu moins factuel, mais toujours assez factuel. Ça montre juste ce que tu peux faire, ok. Géré plus de 25 développeur local et externalisé remarqué quoi que ce soit de toute façon, faxez leurs faits sur vous-même. Donc quelqu'un écrit à travers, genre, Wow, c'est
ce qu'ils ont fait dans de puissantes balles qui sont factuelles. Ok, la même chose est liée dans les langages et les outils de synthèse. Très, très important. Vous pouvez nous appeler ce que vous voulez, mais ce qui est important ici, c'est les mots-clés. Ok, euh et, euh, PHP je parlais de mon autre vidéo. Comment je ne suis pas intéressé par la page, mais dans ce cas, à ce moment-là, j'étais prêt à travailler dessus, mais j'ai grandi à la détester. Donc, euh, de
toute façon ,
euh, les points de
balle des technologies que vous cherchez vont être SC. Ok, ça va être un SDO. Ils vont les trouver dans la base de données, donc s'ils cherchent quelqu'un qui est doué avec l'objectif de développement de l'Iowa. C et Unity, trois d. Vous allez apparaître au sommet de ce qui est là. Donc mots-clés très, très important. Et ça n'a pas gardé ça factuel. Maintenant, comment tu fais tout ça, cependant ? faciles, Des trucs
faciles,faciles. Points de puces, expérience de
fax. C' est important. Maintenant, à ce stade, parce qu'il va être lu par celui qui vous interroge. Ils vont l'avoir devant eux. Ils l'ont peut-être lu avant,
mais ils vont probablement le lire, et donc le garder. Très simpliste. Donc le nom de l'entreprise que vous avez travaillé, et si ce n'était pas une entreprise, rappelez-vous, vous devez utiliser vos projets à la place. Assurez-vous que vous avez APS sur l'App Store, et, euh, et puis il est question de l'application. Tu sais, mes recettes. Et j'étais le PDG. J' étais le concepteur. Tout ce que tu veux dire. D' accord. Et, euh, puis sélectionnez le fondateur ici. Vous pourriez dire, fondateur de votre application. Et puis,
euh, vous pourriez mettre une description. Mindsets ont porté de nombreux chapeaux contribuent à tous les niveaux de développement de l'application en tant que fondateur de frites , un sur. Alors vous dites votre titre, vous savez, pour que vous puissiez le répéter. Le PDG, notre développeur et concepteur ou quoi que ce soit et puis faits sur cette application a 15 000 lignes de code. Il s'intègre à un serveur. Il le fait, il le fait. Donc, si vous n'avez pas de prod, si vous n'avez pas d'historique de travail, c'est un endroit idéal pour mettre votre projet et ensuite les choses spécifiques que vous avez faites sur le projet. Si vous avez des antécédents de travail, c' est votre titre qui va ici. Et dans les choses que vous avez faites à l'entreprise, des choses
factuelles. Ok, choses
très factuelles à propos de cette société. Plus vous pourriez y mettre, mieux c'est. Donc, cela montre juste votre expérience. Assurez-vous que c'est à nouveau lié à la technologie. Je ne vois pas McDonald's ici. Les gars sont venus McDonald's, McDonald's ou tout ce que vous avez fait dans le passé. Avant d'être programmeur, j'étais directeur régional dans une entreprise de dépistage de drogues. Hum, et qu'est-ce que j'étais censé mettre ça juste ? Qu' est-ce que je devais mettre leur Qui n'est pas applicable ? Tout ça. Cependant, quand j'ai travaillé chez les directeurs et les entreprises, c'est comment il est arrivé dans la programmation que nous recevons des milliers de personnes par jour alors que les donateurs faisaient tout à la main, écrivant leurs noms sur papier, des choses comme ça. J' étais genre, c'est ridicule. En fait, je ne savais même pas que je programmais à l'époque. Était comme, Comment puis-je résoudre ce problème ? J' ai donc appris quelque chose appelé Microsoft Access, et il y avait un langage de programmation appelé Visual Basic pour les applications. Donc j'ai commencé à construire cette base de données, euh, cette application de base de données où les gens pouvaient signer et numériquement avec un pavé de signature, et il imprimerait leurs noms et des choses comme ça. Et j'ai fait automatiser ce processus que je ne connais toujours pas en tant que programmeur. Et plus tard, quand j'ai commencé à construire mon CV, je me suis dit Est-ce que je mets des tests de drogue ? Il n'y avait pas. Mais tu sais quoi ? J' ai fait Dio. Je construis une base de données. Donc, ce que j'ai mis là-bas, c'est que j'ai développé un logiciel pour cette entreprise, ce que j'ai fait, et j'ai expliqué tous les faits à ce sujet. Donc, encore une fois, si vous avez une expérience en matière de technologie dans l'une de vos entreprises précédentes, mettez-la là. Mais Dr, c'est comme je l'ai fait pour atteindre votre objectif d'obtenir un job de programmation. D' accord ? Ce n'est absolument pas lié. McDonalds, peu importe. Ne le mets pas là. Crois-moi. Ne le mettez pas sur leur, euh, allez-y et concentrez-vous sur vos projets. Et s'ils remettent des questions sur l'histoire passée, disons, je n'ai pas fait ça depuis longtemps. Le soleil le fait depuis 10 ans, mais je devient vraiment bon à elle. Et c'est une réponse politique. Mais tu l'es. Tu es beaucoup mieux que tu ne le crois probablement. D' accord. Et ça prend juste de l'entraînement, et tu as besoin que tu aies juste besoin d'une chance de te prouver. Alors ne te tire pas dans le pied. Alors listez vos expériences ici. L' entreprise, votre rôle. Tous les titres que vous voulez, Il y a des choses que vous avez faites. Hum, et ils ont laissé vos différentes sociétés par année revenir en arrière,
euh, euh, encore une fois, ne mettez pas de choses sans rapport ici. Et si vous avez de l'éducation, vous pouvez la mettre là. Si tu ne le fais pas, c'est bon. Des certificats que vous voulez montrer ? Hum, mes quatre. Manning est un peu là devrait arranger ça. Et comme c'est vraiment important,
je sais que ça va être dur,
mais tu dois garder ton CV à deux pages. Et comme c'est vraiment important, je sais que ça va être dur, D' accord ? Pas plus de deux pages que lorsque j'ai parlé avec des recruteurs, et en passant, je parle souvent aux recruteurs parce que l'un de mes objectifs est d'aider les gens à trouver un emploi. J' ai donc besoin de savoir ce qui se passe dans l'industrie. Et quand je parle aux recruteurs, ils disent, vous savez, un temps moyen si quelqu'un essaie d'analyser s'il devrait interviewer ou non. Donc c'est le moment où vous n'avez pas décidé qu'ils voulaient chaque interview ou pas, mais ils ont votre CV. Ils vont regarder votre CV pendant moins de 20 secondes. 20 secondes. OK, deux pages, 20 secondes. C' est facile. Oh, d' accord. Ouais, ouais. Ce gars fait quoi, ce ou ces filles font quoi ? Je veux qu'ils soient plus de 20 secondes, vous les avez perdus donc deux pages, deux pages. Si vous devez absolument mettre trois pages, c'est bon. Sachez juste que deux pages doivent être ce qui va vous vendre en 20 secondes ou moins plus que trois pages ne pensent même pas. C' est absolument recommandé contre. Ne faites pas ça. Ok
, , donc deux pages seulement l'historique du travail si vous n'avez pas de travail, mais vos projets. D' accord. C' est une chose très importante. C' est ainsi que j'espère que les gens auront du travail. D' accord ? Ils viennent sans Ils viennent sans aucun projet. Droit ? Donc là. Je suis développeur junior. Je viens juste de passer par un camp de bottes. Je viens de suivre ce cours, je veux un boulot. Personne ne les embauche, pas vrai ? Ce que je dis, c'est que je prends les projets que tu viens de construire. Procurez-les sur l'APP Store. Tellement critique. Vous feriez mieux de les obtenir sur l'App Store. Chaque application que vous Bill soumis à l'APP Store, obtenez cinq applications sur l'App Store, puis projets Lister et liste des choses spécifiques à ce sujet . Et tout d'un coup, on dirait que vous avez fait beaucoup. Et vous avez, en passant, même si vous n'aviez pas ces choses dans votre CV avant dans votre profil, air terrible sur votre CV, vous avez toujours fait beaucoup de travail. Mais tu dois montrer que tu as fait beaucoup de travail. Et s'ils ne sont pas publiés, alors ce n'est pas aussi bon que d'être publié parce que les éditeurs vous avez tout le chemin dans votre publié un produit. Donc, si vous êtes sur l'App Store, vous publiez des produits qui pourraient faire de l'argent. Ok, vous ne construisez pas seulement l'apprentissage, absolu ces produits d'air. Alors obtenez abs sur le magasin APP. points factuels ici, vos clés, vos outils clés et vos langues ici. Les choses que tu veux faire ne mettent pas des choses que tu ne connais pas. S' ils t'en demandent, tu vas ressembler à un mannequin. Ne ressemble pas à un mannequin demandé. Mais des choses là-bas que tu sais, d' accord. Et, euh ou du moins que vous voulez savoir et puis prendre le temps d'apprendre ces choses et ensuite votre expérience passée si c'est le travail mais le travail de son projet. Mais les projets sont factuels. Pas plus de deux pages. C' est encore une fois. C' est ce que les recruteurs m'ont dit est le CV parfait Parfaitement interrogeable, deux pages, agréable et propre. Vous n'avez pas besoin de graphiques. Vous n'avez pas besoin de bannières. Vous n'avez pas besoin d'un de ces trois Bobbleheads graphiques D. J' ai vu des gens mettre leur CV là où c'est comme une grosse tête dans ce petit corps. Et c'est, tu sais, ne fais rien de bizarre. Continuez à jouer comme ceci est tout ce dont vous avez besoin pour CV. Croyez-moi, j'aide les gens à trouver du travail tout le temps. C' est ce dont vous avez besoin pour dio et ensuite se sentir libre de donner à ces recruteurs, en passant, la fois que cela reprend dans une seule main de recruteurs. Ok, ça va être entre les mains de 10 recruteurs. Ça va être dans 20 ans. Tu vas être sur Internet. Vous allez commencer à recevoir des demandes d'emploi tout le temps. Une fois que vous allumez ceux que vous aimez la flamme. Ok, une fois que tu as aimé le feu, la flamme et commence à venir et que ces travaux ne s'arrêtent pas tant que tu n'as pas dit aux gens, tu sais ,
ok, laisse-moi tranquille pendant un moment, tout le monde. Donc, sachez juste qu'une fois que c'est sur Internet, c'est dehors. Les gens commencent à trouver. Donc c'est une bonne chose. C' est une bonne chose. Tu as besoin d'un boulot, tu es nouveau. Alors c'est tout. CV. C' est Mark Price avec les pentes de mort dot com, et nous vous verrons la prochaine fois
126. Travailler avec des recruteurs: papier un prix Mark ici avec les pentes de mort dot com. Et aujourd'hui, nous allons parler de travailler avec les recruteurs Maintenant, les recruteurs, ils sont votre meilleur ami et votre pire ennemi en même temps. Peut-être. Les pires ennemis. Trop fort d'un mot. Si je pouvais décrire les recruteurs, ce serait que les recruteurs sont comme un vendeur de voitures, et vous êtes la voiture. Ou les recruteurs sont comme des vendeurs de voitures sales et votre voiture, et c'est un lot de voitures d'occasion. C' est de mauvaises analogies,
mais si vous êtes recruteur en train de regarder ça,
vous êtes probablement comme,
honnête crétin,
vous savez ? C' est de mauvaises analogies, mais si vous êtes recruteur en train de regarder ça, vous êtes probablement comme, honnête crétin, Mais les recruteurs donc un fantastique. Mais il y en a. Tu dois aussi apprendre à travailler avec eux, accord ? Et ils le sont, comme vendeur de voitures. Donc d'abord, la première chose que je veux que vous compreniez à propos d'un recruteur, c'est leur priorité numéro un, c'est leur vérification de commission. Ok, maintenant, je ne dis pas qu'ils ne se soucieront pas de toi, mais comme un vendeur de voitures, si tu as déjà été chez un concessionnaire automobile, tu n'as jamais d'habitude pas d'expériences fantastiques. Vous ne ressentez pas vraiment un bon lien avec la personne à qui vous vendez. La plupart du temps, tu te sens trompé, et je ne dis pas que ça va être pour trouver un boulot, parce que c'est toi qui obtiens un boulot et tu es la voiture. Tu sais, tu viens d'être vendue. Mais avec cela étant dit
, , certains recruteurs gagnent beaucoup d'argent. Par exemple, ils font habituellement un pourcentage du salaire total que vous allez faire. Et par là, j'ai tiré Lincoln parce que je vais vous montrer un peu sur les recruteurs ici, mais ils font un pourcentage de votre salaire annuel total. Donc, par
exemple, par
exemple, si vous deviez trouver un emploi pour 100 000$ par an, il ne serait pas rare qu'un recruteur fasse 20 % de votre salaire total. Donc ils sont l'agence aura probablement quelque chose, mais ils auront quelque chose, aussi. Donc, disons que l'agence a pris 50% de sa commission et qu'elle a obtenu 50%. Ils auraient pu facilement gagner 10 000$ de rabais juste en te trouvant un emploi. Quoi, 10 000$ ? C' est bien plus qu'un mélange de ventes de voitures. Donc les recruteurs gagnent beaucoup d'argent, d' accord ? Et donc c'est là-dedans. Donc, la bonne nouvelle est qu'il est dans leur intérêt de vous obtenir le salaire le plus élevé possible. Cela étant dit, j'ai rencontré de nombreux recruteurs. Beaucoup, beaucoup, beaucoup, beaucoup et très commun. Probablement 70% du temps dans mes interactions avec les recruteurs, il va essayer de se mettre
devant n'importe qui qu'ils peuvent sans s'assurer que c'est le bon travail pour vous. C' est ton boulot, pour t'assurer que tu comprennes ça. C' est pour que tu l'aies. Lorsque vous travaillez avec des recruteurs, vous devez les respecter. Ce sont des gens bien. ils ont besoin de gagner de l'argent, Maisils ont besoin de gagner de l'argent, et vous devez aussi vous défendre et vous protéger. Ok, j'ai eu tellement de recruteurs qui essayent de me donner des emplois. Je ne me fichais pas d'elle, , mais ça a payé beaucoup d'argent ou des choses comme ça, ou ils vont essayer de travailler avec les employeurs. Je vais essayer de travailler pour toi pour que ça marche tout ce qu'ils tiennent à cœur. Ça ne veut pas dire ça complètement, mais ce qu'ils se soucient le plus, c'est de rapprocher cette cellule. Donc avec cela étant dit, accord, j'ai travaillé avec de grands recruteurs aussi pour qui se soucient vraiment de toi. Ce sont juste mes expériences. Il a été très, très peu. D' accord. Et il y a toutes sortes de tactiques que les recruteurs utilisent. Ok, pas votre attention. Comme, par
exemple, beaucoup de recruteurs qui me contactent sont de très jolies femmes qui portent des chemises basses. Pourquoi c'est ça ? Je ne sais pas. Mais, vous savez, ils essaient d'attirer mon attention en tant que développeur,
et, et, euh, et, vous savez, les gars vont faire d'autres choses, juste différent façons de le faire. Et ce que je veux dire, c' est de vendre le tout c'est une cellule. Ok, alors assurez-vous de savoir ce que vous voulez avant de commencer à parler avec les recruteurs et assurez-vous que vous obtenez ce que vous voulez en tirer. Ok, euh et aussi, même si cela est dit, aussi, ils ne vont pas vous jeter complètement sur le mauvais chemin parce qu'ils doivent travailler avec des employeurs. Et s'ils continuent d'envoyer de mauvais candidats aux employeurs, les employeurs ne travailleront pas avec eux. D' accord. En outre, cela
étant dit, les employeurs ne se soucient parfois pas des relations avec l'agence de recrutement, et ,
euh, ,
euh,
donc plus le plus grand nombre de recruteurs que possible. Le 1er 1 à apporter le travail l'obtient. Donc ils sont tous en compétition les uns contre les autres, des choses comme ça. Donc c'est un peu le monde réel là-bas. Je ne déteste pas les recruteurs. En fait, j'aime bien, comme beaucoup d'entre eux sont vraiment amusants la journée. Pourrait vous faire de grandes choses, et vous faites de bonnes relations avec certains d'entre eux. Alors, d'accord. Donc les recruteurs. droite. Alors, comment travaillez-vous avec eux ? abord, vous devriez vous assurer que votre Lincoln est déjà à jour. Vous devriez vous assurer que vos CV sont prêts à partir. On en a déjà parlé. Donc, quand vous voulez commencer à travailler avec des recruteurs, on est d'abord parti. Une fois que vous aurez ces choses en place, ils vont commencer à vous contacter. Ils vont commencer à te contacter, ce qui est super si tu veux prendre cette initiative supplémentaire. Vous savez, vous pouvez rechercher des recruteurs ici sur lié dans. Tu sais, tu peux dire IOS, recruteur. C'
est peut-être un recruteur de technologie. En voici un juste ici. IOS senior, recruteur
ingénieur, recruteur ingénieur, recruteur recruteur recruté. Ils sont partout sur Internet. Vous pouvez les contacter et ils seront heureux de vous aider. Cependant, je pense que c'est mieux quand ils commencent à te tendre la main. Donc, si vous êtes lié dans des profils, fantastique dans votre CV est belle. Tu vas avoir de grandes occasions de travailler avec les recruteurs aussi, euh, ils ne me payent pas pour faire ça. Je suis juste que je vous montre ici, k Un autre bon site de recrutement, cybercodeurs. Ils sont partout aux États-Unis pour la plupart. Et maintenant c'est une sorte d'entreprise, et ils ont beaucoup d'emplois, et vous pouvez postuler ici, et ensuite les recruteurs vous aident et m'aident à trouver d'autres emplois. C' est vraiment cool parce que tu peux postuler. Tu peux. Et vous pourriez dire vos compétences et des choses comme ça. Il y a un autre site vraiment cool. Um, je pense que ça s'appelle engagé. Oui. J' ai déjà travaillé avec eux. Israël à là, en fait vraiment fantastique. Ils ont des emplois très bien rémunérés et très bien rémunérés. Hum, tu dois être un peu bon pour aller à Dot Com plus haut. Je ne dis pas que vous ne devriez pas postuler là-bas et travailler par eux, mais vous devez avoir confiance en vos compétences parce qu'ils paient des salaires élevés et ils vous mettent qu'ils vous correspondent avec de très bons employeurs qui sont à la recherche quelqu' un avait des candidats. Je ne dis pas de ne pas le faire. Juste être conscient. Les recruteurs d'Eso commencent à les contacter. Et comment travaillez-vous avec eux ? Eh bien, ils vont dire, Hey, puis un travail que tu regardes. Qu' est-ce que tu veux ? J' ai des opportunités géniales. Voyez-vous ? C' est ce que je veux. C' est ce que je veux. Et s'il n'y a pas de correspondance parfaite, ce qu'ils vont probablement faire est d'essayer de dire,
Eh bien, Eh bien, peut-être que vous devriez postuler pour aujourd'hui de toute façon. Peut-être devrait postuler pour un vrai voir à nouveau, vous savez, concessionnaire automobile. Vendeur de voitures. Oh, je sais que tu ne veux pas de cette voiture. Pourquoi tu l'as emmené à l'intérieur ? Ouais, tu sais, donc je ne dis pas de ne pas postuler. Ne pas rejette
pasces offres. Mais si le travail n'est clairement pas ce que vous voulez, ne travaillez pas, ne faites pas ce travail. Et si ce recruteur n'a pas d'autre job pour vous, vous n'avez pas à travailler avec ça avec ces recruteurs. Alors, enlevez ça. Voici un mot pour vous. Règle numéro un. La première règle du club de combat avant la première règle de re travailler avec les recruteurs est s'ils
vous demandent de venir à votre bureau pour organiser une réunion personnelle afin qu'ils puissent apprendre à vous connaître et vraiment adapter les choses pour ne pas le faire. Ne perdez pas votre temps. Ne partez pas à la rencontre des recruteurs. Un contre un. Ils vont, ils vont que j'ai fait ça quelques fois. Ils vont vous asseoir. Ils vont essayer de t'emmener au bureau. Vous faire travailler avec eux exclusivement. Tu sais, ils vont essayer de nouer une relation avec toi. Ne fais pas ça. S' ils vous demandent de venir à la règle numéro un du bureau, ne descendez pas. Je suis heureux de travailler avec vous pour trouver du travail,
mais je n'ai pas le temps d'aller à votre bureau et de vous rencontrer. Je suis heureux de travailler avec vous pour trouver du travail,
mais je n'ai pas le temps d'aller à votre bureau et de vous rencontrer. Je suis heureux de travailler avec vous pour trouver du travail, Ok, donc la règle numéro un ne va pas rencontrer les recruteurs en personne parce que c'est une perte de temps. Vous pourriez tout faire au téléphone, numériquement et là. Probablement craquer en ce moment. Est-ce qu'il regarde ça ? Mais je te donne le scoop intérieur ici. Donc, euh, encore une fois, votre temps est précieux. Très, très canaille. Tu cherches un emploi, alors
c' est la règle numéro un. Donc aussi, quand on travaille avec des recruteurs, euh, ne règle pas numéro deux. Je n'ai pas une liste de règles de soins. Je vous donne juste de gros points pour écrire ces K Règle numéro 2, c'est pas faire. S' il y a un emploi qui ne vous intéresse absolument pas, même s'ils vous disent d'aller postuler,
ne postulez pas. Ne faites rien sur la raison pour laquelle c'est parce qu'il y a tellement d'emplois sur le marché en ce moment vous pouvez trouver ce que vous voulez. Donc, à l'
époque où j'ai commencé à apprendre la programmation avant de pouvoir faire tout ça en ligne avant qu'il y ait des cours comme ça, euh, j'allais travailler, j'allais postuler pour un ingénieur emploi ou aller travailler quelque part. Et les ingénieurs étaient un tas de crétins. Ils viennent de diplômes d'informatique et plus élevés que la vie. Tu sais, tu dois savoir ça, ça et ça et ça, et ils testeraient tes connaissances qui rendraient drôle, même si tu ne savais pas certaines choses. C' était une très mauvaise expérience que beaucoup de ces entreprises et vous savez de nos jours,bien
sûr, bien
sûr, tout le monde peut apprendre en ligne, il y a tellement d'apprentissage et tant de choses qui se passent. Et ces gars étaient
tellement analytiques. Et je suis je ne suis rien contre les programmeurs analytiques parce que vous devez être analytique et une partie pour être un programmeur. Mais ils sont très intelligents avec les maths, la science, des choses comme ça. De nos jours, n'importe qui pourrait être programmeur. Eh bien, qu'est-ce que tu veux dire ? Eh bien, vous pouvez passer de travailler chez McDonald's à changer dans votre carrière de programmeur, et beaucoup de ces ingénieurs de la vieille école cringent. Ils pensent toujours que tu dois aller à un diplôme d'informatique. Tu dois apprendre, grosse notation. Tu dois apprendre. Vous savez, chronométrage arythmique. Tu dois apprendre, euh, tous les jours à structurer sous le soleil. Tu sais, euh, tables de
hachage, cartes de
hachage, des arbres de recherche
binaires. Euh, je dois apprendre comment tu sais comment créer une liste liée à zéro dans ta tête par mémoire. C' est comme ça que ça se passait. Ce n'est plus comme ça. Ok, ce que les gens se soucient de nos jours parce qu'il y a tellement de démarrages depuis qu'ils se soucient du résultat
final. Donc, ce que je veux dire, c'est ne pas postuler pour des emplois que vous ne voulez pas. Ok, si c'est un boulot. Péchés intimidants et terribles. Ne postulez pas pour faire quelque chose que vous voulez si vous voulez trouver le bon boulot. Si, disons-le pour moi, par
exemple. Prends-moi, par
exemple. Je ne suis pas une personne d'analyse
très, très intégrale. J' ai appris beaucoup de choses, mais des programmeurs sombres qui peuvent exécuter des algorithmes dans des cercles autour de moi et le faire dans leur sommeil. Et c'est bon. Mais tu sais quoi ? J' ai d'autres compétences. Si tu mets si tu me mets dans un autre. Donc, si disons que je postulais pour un job et que ce programmeur analytique qui est vraiment bon pour les algorithmes, euh, il
a pu trouver ce job correctement, parce qu'ils me font un test de codage. C' est la base algorithmique ce soir. Disons que je l'ai tombée et qu'il réussit, et j'ai dit de lui donner le boulot. Eh bien, dans une autre circonstance, disons qu'une autre société,
euh, euh, ne s'en souciait pas. Ils se souciaient du résultat final. Donc, ils ont mis deux programmeurs ensemble et celui qui a construit la meilleure application, le plus rapide. Ok, la meilleure application IOS. Le plus rapide aurait le travail. Eh bien, je gagnerais dans ce cas parce que je suis très, très rapide et très bon à construire des applications fantastiques et une expérience utilisateur. Donc ce que je veux, c'est que tu dois trouver le boulot et que les gens qui te conviennent ne prennent pas de travail, OK ? Ne prenez pas de boulot. C' est la règle numéro deux. Ne prends pas de travail. Trouvez celui qui vous convient. N' allez pas postuler pour des emplois et de la croissance pour passer des entrevues que vous savez que vous ne
voulez pas être là pour Ok. Donc, si un recruteur essaie de le pousser vers un emploi que vous ne voulez pas vraiment dire le non. Et s'ils n'ont pas d'autre job,
disons , ce qu'ils vont dire, eh bien, voyons si on peut t'amener ailleurs ,
ce qu'ils vont dire,
eh bien,
voyons si on peut t'amener ailleurs.
Je travaille avec plusieurs recruteurs. . Je veux dire, je vais être honnête avec toi, et je dois juste trouver le boulot qui me convient. Et puis ils vont bien se passer. Merci. Et ils reviendront vers vous. Tu sais, ils en sont peut-être déçus,
mais ils reviendront Teoh quand ils auront un nouveau boulot, d' accord ? Et donc ce n'est vraiment pas différent. Comme si tu allais chez un concessionnaire automobile et que tu disais non au concessionnaire automobile. Il devient fou. Il est peut-être en garde à vue sous son souffle comme ils ne le sont pas. Ils ne pouvaient pas être des gens gentils. Les recruteurs pourraient être comme ça aussi. Il y a de bons recruteurs, mais ils pourraient être comme ça aussi. Mais devinez quoi ? Euh, une minute, ils te détestent. Puis tout d'un coup, un nouveau travail apparaît pour le développement IOS, et puis ils vous appellent au téléphone le lendemain. D' accord. Chèques de paie de 10 000$. Très motivant. Euh, donc de toute façon, euh, donc travailler avec les recruteurs, c'est un gros avantage. Ok, euh, aussi alors quoi ? Disons que vous travaillez avec un recruteur et que vous avez trouvé un emploi que vous voulez, alors travaillez avec eux, aidez-les. Coach. C' est génial. Écoutez toutes les recommandations. Ils savent ce qu'ils savent les employeurs recherchent. Alors écoutez leurs recommandations. S' ils vous demandent d'apporter des modifications au curriculum vitae, faites-le. Ils connaissent leurs affaires, ils connaissent leurs affaires. Je n'essaie pas de te donner une mauvaise expérience à 100%. Je veux juste que tu sois conscient de la réalité. Ils connaissent leurs affaires, et font ce qu'ils te demandent de dio euh, et tu peux me demander, tu peux me demander n'importe quoi. C' est une chose qui est vraiment cool que les recruteurs, tu n'as pas à te cacher. Vous devez cacher des informations si vous n'êtes pas un grand négociateur, c'est bon. Soyez ouvert avec les recruteurs parce qu'il est dans leur intérêt de gagner beaucoup d'argent
possible et de vous aider à obtenir l'emploi le plus rémunéré possible. Alors dis que tu sais quoi ? Tu sais, je fais ça depuis quelques années. Je suis très bon pour ça, tu sais ? Qu' est-ce que tu en penses ? Et être honnête, et alors que ferez-vous ? Tu aurais pu dire, tu sais, je cherche au moins 60 000$ par an et ce qu'ils vont dire, ça ne dit pas ça. Ils vont dire qu'ils vont dire, vous savez, demander à cet employeur de pas moins de 75. Ils vont te dire ça. Ok, alors écoutez-les être honnêtes avec eux à propos de votre salaire et de choses comme ça, parce qu'ils vous aideront à négocier et des choses comme ça pour que vous puissiez être ouvert avec un recruteur. Ok, euh, et la seule défense que tu dois avoir est juste de ne pas aller à des emplois que tu ne
veux pas et de ne pas les laisser te pousser à faire des choses que tu ne veux pas faire. Il suffit de choisir ce que vous voulez dio, mais ne prenez des conseils pour eux en ce qui concerne le salaire et des choses comme ça sur votre CV. Lorsque vous trouvez l'emploi que vous voulez, je vous recommande également si vous êtes activement à la recherche d'un emploi, ils peuvent dire, Hey, puis-je passer mon CV Puis-je passer à mes collègues ou associés des choses comme ça. Si vous êtes à la recherche d'un emploi, dites oui parce qu'ils vont le mettre dans les mains d'un plus grand nombre de gens souvent dans ces bureaux. Comme les recruteurs sont basés sur des commissions, il peut y avoir cinq personnes dans un bureau, et chacun d'entre eux a géré différents employeurs. Et donc si un recruteur dans ce bureau n'a pas le bon emploi pour vous là-bas, associé peut et puis quand ils le transmettent à l'associé, en fait obtenir toujours une référence. Diriger une commission basée sur une recommandation, donc c'est toujours bon pour eux. Et donc oui, laissez-les passer autour de votre CV pour faire des associés et des choses comme ça. Écoutez-les Ils sont intelligents. Ils savent ce qu'ils font. Ils savent comment vous trouver le boulot. Eso eso, recruteurs. Ils sont vraiment super. Chaque fois que je cherche un emploi, je les contacte toujours. Assurez-vous juste que vous aimez suit deux règles, d' accord ? Ils vont t'aider à obtenir le meilleur salaire possible. Si jamais vous sentez comme un recruteur essaie trop de vous vendre, comme là où vous aimez absolument. Tu ne peux pas faire quoi ? C' est quoi ? Ils essaient de te pousser et comme tu peux dire qu'ils essayent vraiment de trouver
n'importe quel emploi. Tu dois arrêter. Juste laisser aucune main pas intéressé. Tu dois l'être. Tu es un peu ferme, d' accord ? Et faites-leur savoir au début que vous travaillez aussi avec plusieurs recruteurs. Ok, ne le fais pas. Et ne t'en tiens pas à l'intérieur. Recruteur. Je sais que nous sommes tous des êtres humains, mais ne vous inquiétez pas de blesser leurs sentiments. D' accord ? Vous allez parler autant de recruteurs que possible et de trouver le bon emploi pour vous et le meilleur homme gagne. C' est comme ça. C' est chez un concessionnaire de voitures ailleurs. Les meilleurs hommes gagnent. Trouvez-moi le bon boulot. C' est ce qui est le plus important. Ne sois pas grossier. ce sont des êtres humains ou des gens qui sont gentils de travailler avec eux. Mais obtenez ce que vous voulez de la relation. Vous savez, ce n'est pas juste de vous mettre dans un endroit où vous ne voulez pas être,
et,
euh, et,
euh, euh, mais vous pourriez avoir n'importe quel travail que vous voulez parce qu'il y a tellement d'opportunités d'emploi disponibles. recruteurs sont donc un grand avantage. Tu devrais travailler avec eux. Mais vous savez, juste avec cela étant dit, je veux dire si vous recevez des sollicitations de recruteurs qui sont tout simplement terribles , comme des sollicitations trashy comme vous savez où ce n'est pas écrit pour vous ou une masculin ou
quelque chose ou lié, ce n'est pas écrit pour vous ou peut-être que c'est un message de masse qui est envoyé à 1000 personnes ne répondent pas à cette blague si elles veulent, vous devez prendre le temps de vous rencontrer. En outre, je reçois des tonnes de courriels de la part des recruteurs. Ce sont les pires, et fondamentalement il est dit besoin urgent, besoin
urgent dans cet endroit dans cet endroit, vous savez, et juste très impersonnel ne travaille pas avec des gens qui impersonnels parce que votre meilleur intérêt Ce n'est pas à moi. Ok, eso trouve des gens qui travaillent avec vous personnellement. Faites-leur connaître vos objectifs et vos désirs pour vous assurer de vous protéger afin qu'ils ne vous
poussent pas ce que vous ne voulez pas, mais aussi être respectueux puissant outil. Vous pourriez probablement trouver un emploi dans une semaine en travaillant avec des recruteurs OK, une semaine ou moins. Et si vous trouvez tout un tas d'emplois qui correspondent à ce que vous voulez, allez les postuler, même si vous avez peur. Peu importe. Allez postuler pour autant d'emplois que possible parce que vous avez besoin d'une entrevue pratique aussi pour
aller dans le plus grand nombre d'emplois que vous pouvez et postuler pour eux. Ne sois pas comme si je cherchais le travail parfait. Si c'est un peu dans la direction que vous voulez et que vous vous sentez bien à ce sujet, allez postuler parce que vous allez tomber beaucoup d'interviews avant d'en avoir un. Ok, laisse-moi le répéter. Tu vas tomber beaucoup d'interviews avant d'en avoir un. Quand j'étais à Los Angeles, je voulais avoir un gros titre sous ma ceinture. J' avais ma propre entreprise avant, faisais toutes ces choses différentes, mais je voulais vraiment un gros titre. J' ai donc demandé l'appel de service. J' ai postulé pour Disney, et j'ai postulé pour Nickelodeon, euh, travaillant sur des jeux et des cyniques Nickelodeon. Ils ne voulaient pas de moi. Ce n'était pas bien en forme. Ils cherchaient quelqu'un qui était très,
trèsdoué avec les mathématiques. Ils cherchaient quelqu'un qui était très,
très Comme si c'était l'ingénieur qui embauchait aimait les maths, et c'est ce qu'il cherchait. Donc ça n'aurait pas été un bon ajustement même si je travaillais. Même si je pouvais livrer, ce n'était pas bon pour Disney. Hum, Disney. Ils me voulaient et j'ai passé sept heures d'interviews, sept heures d'entretiens, et à la fin, les recruteurs comme, la dernière chose que je veux te dire parce que Disney a leurs propres recruteurs, c'est Vous savez, le temps de posséder votre propre entreprise et de faire des pauses quand vous voulez faire une pause et tout ce genre de choses est passé par la fenêtre. Tu sais comment tu allais enlever ton nettoyage à sec quand tu veux. Tu ne peux plus faire ça. Tu vas venir ici. Tu vas faire glisser une carte clé. Tu dois enregistrer les heures que tu as enregistrées. Tu dois entrer à ce moment. Tu dois partir à ce moment-là. Es-tu prêt pour ça ? Et j'étais comme, en fait, je ne suis pas que je ne veux pas faire ça sur et ensuite appeler le devoir était en fait bon état. J' ai eu mon Donc mon point de vue est, euh j'ai traversé plusieurs et il y a en fait d'autres emplois pour cela demandé, mais j'ai traversé environ cinq ou six emplois avant d'avoir celui qui voulait vraiment. Donc, pratiquez autant que vous pouvez travailler avec les recruteurs, allez Est-ce que beaucoup d'emplois vont à autant d'entrevues d'emploi que vous pouvez que vous êtes intéressé par parce vous avez besoin de la pratique, puis il faut de la pratique et obtenir bon à l'entrevue. Il faut de la pratique pour faire un test de tableau blanc. Il faut de la
pratique, de la
pratique, pratique, la pratique. Et donc je veux juste que tu saches que tu vas tomber quelques interviews. Ne descendez pas dessus. Ne te laisse jamais tomber. Non. Ne dis jamais que je ne peux pas faire ça. Je ne suis pas programmeur. Je ne suis pas né pour ça. Mon esprit n'est pas fait pour ça. Ne dis rien de tout ça. C' est tout bs. OK, tu dois choisir le poste que tu veux choisir, aller à autant d'entretiens que possible, travailler avec des recruteurs. Soyez une sorte de respect, mais aussi vous protéger. Et c'est le marché que tu peux. Vous pouvez obtenir un emploi dans une semaine si vous travaillez avec les recruteurs de la bonne façon. J' ai donc travaillé avec probablement plus de 50 recruteurs au cours de ma carrière, plusieurs fois différents dans un endroit incroyable. Certains ne sont pas si étonnants quelque part terrible. Hum, donc c'est le monde dans lequel nous vivons, et c'est plus cher avec les ordinateurs de bureau dot com, et je suis là pour vous aider à faire carrière. Si vous avez des problèmes ou si vous avez besoin de plus, venez sur le salon de chat, venez sur les forums et obtenez de l'aide, et je vous aiderai du mieux.
127. Questions d'interview iOS 9: Hé, tout le monde, Mark Price ici, Deb pentes dot com et beaucoup d'entre vous m'ont demandé de vous donner des questions d'entrevue et des réponses à ces questions d'entrevue. Et donc c'est la première partie d'une série de vidéos multiples que je vais faire sur iPhone et j' étais des questions d'entrevue de développement, et je vais leur répondre comment je pourrais personnellement y répondre dans une interview. Donc, je ne vais pas m'asseoir là et lire la définition du manuel. Je vais vous donner les applications pratiques du monde réel pour les réponses à ces problèmes afin que vous puissiez l'utiliser dans vos interviews pendant que vous allez et allons de l'avant et commencer. Alors quel est le protocole et quand l'utiliseriez-vous ? Donc, un protocole est très commun sur de nombreuses langues et plates-formes différentes, et c'est un modèle. Et sur IOS, un protocole est un peu comme un plan de fonctions qu'une classe peut implémenter. Donc vous obtenez des règles ou dites Hey, ce sont des choses que vous devriez appeler l'été nécessaire. Certains sont facultatifs et pour un exemple parfait, vue de table
au I peut implémenter le protocole de source de données de vue de table vous I, que vous allez implémenter dans votre contrôleur de vue pour obtenir des données dans votre vue de table, comme auto une ligne au chemin d'index ou nombre de lignes et de section. Ce sont des fonctions de protocole que votre contrôleur de vue implémente et que votre vue de table appellera. Donc, de toute façon, que le but global d'un protocole est de dire, Hey, cette classe respectera ces fonctions et certaines sont encore facultatives. Vous n'avez pas à le mettre là-dedans, mais vous pourriez vous aider si vous choisissez de
les mettre en œuvre . Et à un moment donné, quelqu'un appellera le délégué de ce protocole. Et, euh, ces fonctions seront appelées outil très puissant. Il est utilisé dans tout le développement de l'Iowa. Quelles sont les étapes à suivre pour soumettre une application à l'APP Store ? Donc, il y a quelques étapes et à moins que vous n'ayez réellement soumis une application à l'APP Store, vous ne connaîtrez jamais vraiment la véritable expérience de soumission d'une application à Apple. C' est tout à fait le processus. Donc, tout d'abord, ce que vous devez dio est pour soumettre l'application à l'APP Store, vous devez être un développeur Apple payant. Donc c'est soit comme un individu $99 pour un individu. Je pense que c'est aussi $99 pour une entreprise, et si vous vous inscrivez en tant qu'entreprise, il y a plus d'un processus que vous devez suivre. Vous devez obtenir un numéro de Dunnes
et Bradstreet, et Apple doit vérifier que ça peut prendre environ deux semaines. Ah, mais une fois que tu es là, tu y es. Et puis une fois que vous avez votre compte enregistré, ce que vous devez faire est de créer une application i d sur développeur dot apple com Ce up idées très spécifiques à votre application, et puis vous devez créer un certificat de distribution ou qui vous permet d' envoyer une application au magasin APP. Lorsque vous créez un certificat, il est directement lié à votre ordinateur, ce qui signifie que votre ordinateur dispose de l'habilitation de sécurité pour soumettre cette application au magasin APP. Donc, vous avez un certificat de crédit et puis vous l'installez sur votre ordinateur. Et une fois que vous avez créé le certificat, vous avez besoin d'un profil de provisionnement,
et il doit s'agir d'un profil de provisionnement de magasin d'applications, et
non d'un profil de développement, et le profil de provisionnement utilisera la et le profil de provisionnement utilisera
également l'application I d. Ok, puis vous allez télécharger ce profil de provisioning et l'installer pour vous assurer qu'il est défini un code ex, puis vous allez dans le code X et faites vous assurer que votre application I D dans le projet X Code est exactement la même que celle que vous avez créée sur le portail. D' accord. Et puis, dans vos paramètres de génération, vous voudrez définir votre profil de distribution pour être le profil que vous utilisez lorsque vous allez
soumettre votre demande pour vous assurer que vous définissez votre profil de distribution là, puis vous vous assurerez que vos simulateurs pas auto-sélectionnés, mais le dispositif ah réel, il pourrait être un appareil générique ou si votre appareil branché et puis vous allez aller au produit dans les paramètres du menu et l'archiver. Et une fois l'archivage terminé, , il est prêt à être soumis à l'APP Store. Maintenant, si vous ne l'avez pas déjà fait, quand vous devez faire est d'aller sur iTunes, connectez le point com pomme et qui réellement créer une application sur le portail là-bas et assurez-vous que vous le signez. La bonne pomme i d et la version de cette application. Ça va commencer à 1,0. Vous avez juste besoin de vous assurer que dans votre projet et ex code la version, il y a aussi 1.0. Sinon, ça ne marchera pas. Donc, une fois que votre application est créée et enregistrée, alors lorsque vous pouvez le faire est de revenir à votre code ex, vous l'avez archivé, ou si vous n'avez pas vérifié que vous archivez votre application, puis une fois qu'elle est archivée, la fenêtre apparaîtra et vous permettra de le valider ou de le soumettre au magasin APP Si vous validez, . il exécutera simplement des tests locaux sur votre machine pour s'assurer qu'elle est prête. Vous pouvez exécuter cela d'abord pour vous assurer qu'il n'y a pas de bogues, d'héritiers ou de problèmes ,
et si cela passe vous pouvez le soumettre au magasin APP. Et s'il le rejette pendant que vous le téléchargez,
il vous donnera des avertissements de vin. Vous y retournez et le réparer comme vous devez avoir APP, icônes et des choses comme ça. Et donc une fois qu'il est approuvé, mais par le biais de la soumission pas par le processus d'examen Apple. Mais juste au cours de la soumission, ça va aller sur vos objets connectés, et ça va prendre quelques heures pour qu'il soit disponible. Restera le traitement. Cela ne prenait que quelques minutes, mais ces derniers temps, ça prenait quelques heures, et donc ça va être traité. Et une fois que le traitement est
terminé, vous pouvez sélectionner votre build. Assurez-vous d'obtenir toutes vos descriptions et mots-clés, images et captures d'écran et tout dans le portail. Et puis vous pouvez enfin soumettre votre application à l'APP Store, et cela peut prendre n'importe où entre sept jours et deux semaines. Je n'ai jamais vraiment vu aller au-delà de ça, selon que ça se rapproche des vacances, cependant. Et c'est comme ça que vous soumettez. Et je suis toujours à l'APP Store. Que savez-vous de l'arc ? Eh bien, Arc est le comptage automatique des références. Vous pouvez également entendre la gestion de la mémoire de phrase sur IOS, et fondamentalement ce que cela signifie est sur Iowa chaque fois qu'une référence forte créée comme une classe qui détient un objet créera automatiquement une référence forte. Ok, chaque fois que c'est créé, ce compte conservé au niveau du système, il augmentera d'un signifiant que nous maintenons le compte retenu à cet objet et ne le
jetons pas tant que nous n'avons pas fini de l'utiliser. Et donc les références automatiques des conseils de comptage, et ensuite quelles classes sont allouées ? Ces références sont documentées par une, donc c'est très puissant. Avant Arc, vous deviez faire toute votre propre gestion de la mémoire, et c'était avec objectif. vois, on n'a plus à gérer ça, mais tu devais faire toute ta propre gestion de la mémoire. Vous devez conserver les objets manuellement, puis vous devez les libérer manuellement. Et vous devez toujours vous assurer que vous étiez à zéro quand les classes seraient allouées. Sinon, ils flotteraient des objets flottants en mémoire qui ne peuvent plus être accessibles. Et ce sont des fuites de mémoire, et vous pourriez toujours avoir des fuites de mémoire de temps en temps. Mais c'est pas très commun. En fait, quand je passe d'Objective Seat un rapide ou même quand je suis passé au comptage automatique des
références à partir du comptage manuel, nous l'avons fait avant, euh, je n'ai presque jamais problèmes de mémoire ou héritiers, il est
donc très puissant. Cela fonctionne de la même manière sur Swift et vraiment maintenant, c'est la seule chose dont vous avez jamais à soucier est ce qu'on appelle un cycle retenu. Ok, et ce qu'est un cycle de référence, c'est quand deux objets ont de fortes références à eux-mêmes. Donc, par
exemple, accord, tu pourrais avoir un cours, disons, personne. Et puis tu pourrais avoir un autre cours appelé sac à dos. Mais disons que dans la classe du sac à dos, il fallait tenir une référence à la personne. Eh bien, si vous faisiez cela avec une référence forte, les deux objets pointent l'un vers l'autre, et ils ne seraient jamais écrits qu'ils ne sont jamais libérés, et donc vous auriez un cycle de rétention de fuite de mémoire potentielle . Et alors quoi ? Vous devez dio dans ces rares cas où vous avez besoin d'objets pointant vers eux-mêmes ou vers l'autre, vous devez utiliser le mot-clé week. Et ce que ça fait, c'est que ça dira, Hey, c'est une référence de semaine. Et quand on va, débarrassons-nous de l'autre plus ou moins. Donc encore une fois, vous n'avez jamais à vous inquiéter trop à ce sujet, mais sachez simplement que si vous avez besoin d'objets pour se référencer eux-mêmes, l'
un d'eux doit être faible. Et c'est la chose la plus importante dans la prévention des fuites de mémoire et d'autres problèmes le long de la ligne là-bas. Mais encore une fois, Arc. Il y a beaucoup de belles choses pour nous, donc nous n'avons jamais à nous en soucier trop. Qu' est-ce qu'un bundle sur IOS ? Eh bien, dans le développement d'applications, il est très fréquent d'écrire un paquet S cette bulle principale. Votre application a un bundle principal. D' accord. Dans un paquet, vous pouvez avoir plus d'une bombe que vous pouvez créer vos propres paquets. Mais ah, paquet juste des magasins. ressource est de sorte que le bundle principal , par
exemple, stockera vos images et votre fichier de liste P et des choses comme ça, et vous pouvez créer votre propre bundle. Comme je l'ai dit, en fait, c'est juste un point bund. Si je vous pouvez mettre ce que vous voulez et c'est vraiment une utilisation courante pour les paquets. Mis à part comme, votre bundle principal qui a votre ressource principale est pour les frameworks. Par exemple, supposons que vous créez un framework que vous souhaitez distribuer afin que d'autres développeurs puissent bien l'utiliser. Si vous avez déjà fait le développement de framework, vous saurez que vous ne pouvez pas simplement utiliser un storyboard pour les frameworks. Vous ne pouvez pas simplement le glisser et le déposer. C' est un peu pénible, en fait, mais ce que vous pouvez faire, c'est que vous pouvez créer des fichiers zip et les mettre dans votre bundle, puis
les charger dynamiquement à l'exécution afin que vous n'ayez pas à faire toutes vos contraintes et vues par programme, vous pouvez les créer dans vos fichiers ZIP, puis votre framework peut appeler à ce bundle ce fichier de ressources externe et charger ces fichiers. Les paquets sont donc très puissants. Ils tiennent juste votre ressource est quand utiliseriez-vous un coup rapide ou une structure par rapport à une classe ? Donc c'est une bonne question. La chose importante à savoir est que les Struck sont passés par la valeur et les objets ou excusez-moi les classes ou passés par référence. Donc, ce que cela signifie, c'est vos classes personnalisées. Vous savez, les objets de référence stockés en mémoire avec des pointeurs. Ok, alors que Struck ne peut utiliser que des types de valeur , des chaînes, entiers, choses comme ça seraient plus légères, en fonction de ce qui les entrera. Donc, par
exemple, si je voulais créer un type de système de grille en utilisant tous les nombres à virgule flottante, vous savez, coordonnées
X y Z, je pourrais utiliser une structure qui, à cause de tous les types de valeur et il serait plus rapide et plus léger que la création d'une classe A ne ferait que passer par référence. Donc, je dirais la règle empirique si vous voulez utiliser une classe frappée contre une classe, il y a beaucoup de raisons différentes. Mais je dirais que le principal est Si tous vos types de données sont des valeurs passées par valeur, alors utilisez la structure. Si vous avez des objets personnalisés que vous devrez utiliser passés par référence, utilisez une classe. Donc c'est une sorte de différence entre un frappé et la classe, puis rapide. Ils sont très similaires à
bien des égards. Donc là, vous l'avez avec Swift. Quels types sont des types de valeur et quels types sont des types référencés si semblables à la notion d' une structure par rapport à une classe là-bas, certains types sont passés par valeur et d'autres qui sont passés par référence. Et fondamentalement, tout ce qui est un objet personnalisé est passé par référence vos chaînes, vos entiers, vos flotteurs, vos doubles. Ceux-ci sont tous passés par valeur. Ainsi, vos types de données par défaut que vos données rapides tapent ceux-ci ou ce qui va passer par valeur et tout objet personnalisé que vous créez sera passé par référence. C' est donc une sorte de facteur de différenciation. Comment pouvez-vous créer une vue personnalisée ? C' est une bonne question, une question importante parce que tu vas faire ça en tant que professionnel, développeur de l'
Iowa. Et fondamentalement ce que vous pourriez faire est juste de faire une sous-classe qui hérite de vous que je vois. Ou si vous sous-classe un bouton, ce pourrait être vous. Je touche essentiellement juste le sous-classer et vous pouvez l'étendre. Vous pouvez changer ses caractéristiques juste là à partir du code sur les cheveux, toutes les fonctionnalités qui sont déjà dans la vue. Hum, et puis vous pouvez en ajouter plus et vous pouvez définir la classe personnalisée dans votre storyboard. Ainsi, vous pouvez, par
exemple, conduire l'U que je vois sur votre Story Board, puis aller à l'inspecteur d'identité et changer sa classe pour votre vue personnalisée. Et il hériterait de toutes ces propriétés, puis à l'exécution lorsque les vues chargées, ce sera votre vue personnalisée. Que pouvez-vous utiliser pour faire des requêtes http et analyser Jason Ok. Question très importante car c'est ce qui constitue 90% d'un iPhone développeurs. Le temps fait une demande P I, et donc vous pouvez utiliser une session s u R L. C' est le nouveau et amélioré apple a p I. Pour faire des requêtes http, et il supporte les protocoles http et https. Il ne prend pas en charge les autres protocoles et les délégués de consentement des outils très puissants. Vous pouvez définir la base de votre RL toutes sortes de choses cool. Hum, et c'est ce que vous pouvez utiliser. C' est par défaut pour taper dans un p I. Il y a aussi une bibliothèque très populaire. La bibliothèque Objective C est appelée Networking dans la version rapide créée par les mêmes personnes s'appelle Alamo Fire. Et ce que cela fait, c'est qu'il résume un problème ou une session et le rend beaucoup plus pratique, utilisateur
fonctionnel et des points, ce qui signifie qu'il est plus facile pour vous en tant que développeur d'entrer et d'utiliser la session de Mossoul AP glace et beaucoup de fonctionnalités supplémentaires cool telles que l'encaissement d'images et des choses comme ça. Et c'est mon utilisation préférée parce que c'est si puissant. Ah, et ça réduit la quantité de travail que vous avez à faire manuellement. Ah, et puis deux parties Jason I personne juste utiliser l'Ennis Jason serialize er er qui vient assed partie de la I o s. A p I. Vous pouvez également utiliser Swifty Jason, qui est une bibliothèque populaire, mais je n'ai vraiment pas trouvé un grand besoin pour ça. Cela rend quelques choses plus pratiques,
mais, euh, euh, IOS a des options de sérialisation de Jason. Ah, et bien sûr, avec Swift, vous voudriez vous assurer si vous laissez et faites toutes vos vérifications sur cela pour vous
assurer que tout est analysé comme il se doit, mais ce sont les des choses que vous ferez tous les jours. Votre travail de développement iPhone est-il ? Que faites-vous pour afficher une liste de données à l'écran ? C' est une bonne question. Eh bien, vous pouvez utiliser une vous pouvez utiliser une
table de vous et vous pouvez la glisser sur votre storboard. Et puis ce que vous pouvez faire est que vous pouvez dire que c'est un délégué et une source de données au
contrôleur de vue , qui vous implémente. Je tableau la source de données dans la table New I de votre délégué,
et fondamentalement, et fondamentalement, vous implémentez vos fonctions de délégué. Un tel chemin d'index de ligne automatique affichera le chemin suivant d'aurore auto, le nombre de lignes et la section. Toutes ces différentes méthodes ou fonctions de délégué sur vous peuvent l'implémenter de cette façon avec la vue
de table. Ou vous pouvez utiliser un contrôleur de vue
de table U I. , ce
qui met tous ceux là pour vous automatiquement afin que vous n'ayez pas à le faire manuellement. Et donc vous pouvez le faire aussi. Euh, bien
sûr que tu peux. Il y a d'autres choses que tu pourrais faire. Vous pourriez même écrire votre propre table de vous si vous le voulez. Mais l'avantage d'utiliser la vue de table au I est que chacune de ces cellules là-bas, ils utilisent la mémoire efficacement. Donc juste quand ils sortent de l'écran et il d mignon. Ok, tu n'auras pas une liste de 1000 cellules. Tu vas en avoir une poignée, hein ? Vermine vous pouvez tenir sur l'écran, et il va devenir d mignon quand il sort de l'écran. Ensuite, vous pouvez la réutiliser car c'est toujours une mémoire et la remettre à l'écran, ce qui permet de garder vos vues de table très rapidement. Et si vous ne vous aviez pas, je vue sur la table, vous devrez écrire toute cette fonctionnalité vous-même,
ce que vous ne devriez jamais faire. Et donc une autre option est que vous je collection contrôleur de vue qui vous permet d'afficher une liste de données dans n'importe quel informateur de taille que vous voulez verticalement ou horizontalement. Ah, super quatre. Comme les vues d'image ou les segments évolutifs, vous savez que vous pouvez faire de petits carrés arrondis et sélectionner des options. Vous pouvez faire toutes sortes de choses cool de ça, et c'est le même type de modèle. Ou vous avez, ah, nombre de rangées et des choses comme ça. Et donc ce sont les deux choses courantes que vous allez utiliser sur IOS pour afficher des données. Qu' est-ce que le polymorphisme et quand l'utiliseriez-vous ? polymorphisme est donc un principe de programmation ordonnée par objet. Il est utilisé dans tous les langages Opie, et c'est essentiellement l'idée d'avoir deux objets différents apparents dans une sous-classe qui pourrait être presque utilisé de façon interchangeable. Et voici donc un exemple. Je pourrais avoir une classe de forme qui peut calculer la surface de cette forme. Et puis je pourrais avoir une sous-classe, par
exemple, comme un triangle dans différentes sous-classes de rectangle et la classe de base. Ces formes ont une fonction appelée zone de calcul, sorte que ces deux sous-classes pourraient réellement remplacer cette fonction de zone de calcul, et elles pourraient créer leur propre implémentation de celle-ci. Mais ce qui est vraiment cool, c'est que si j'avais une variable de forme de type. Ok, je pourrais réellement lancer une variable de type rectangle de forme et cela fonctionnerait sur le même eso, par
exemple, si je voulais avoir une fonction dans un contrôleur de vue sur mon manteau quelque part. Mais je ne savais pas quel genre de forme l'utilisateur allait passer. Je pourrais juste avoir la fonction prendre une forme en paramètre, et je pourrais passer dans leur triangle le rectangle un cercle, et tant que leurs classes parents une forme, ils travailleraient tous à l'intérieur de cela pour fonctionner, et vous pourriez les utiliser et les jeter en conséquence. Ah, outil
très utile et puissant sur vous. Utilisez-le tout le temps. Et j'étais le développement. Qu' est-ce que vous je fenêtre. Ok, vous allez voir ça dans votre application, mais fondamentalement sur une application IOS, vous n'avez qu'une fenêtre You I. Et c'est la fenêtre principale de votre application dans toutes les vues et les contrôles de vue, tout ce que vous y mettez fait partie de cette fenêtre principale et il couvre tout l' écran de votre appareil sur IOS. Fondamentalement, vous n'interagissez pas trop avec ça. Tu peux avoir le truc commun. Je vois des gens qui interagissent avec sur ma fenêtre se saisissent de sa crinière, limites et de son cadre. Parce que parfois, lorsque vous faites pivoter
l'appareil, um, les vues en hauteur seront changées afin que vous puissiez toujours saisir les bonnes dimensions en saisissant les limites principales des fenêtres you I. Mais fondamentalement, c'est juste dans la fenêtre principale de votre application et tout ce que vous faites va à cette fenêtre. Qu' est-ce que tu es ? Je demande. Ok, eh bien, votre application IOS va en avoir une. Toi, ma candidature. C' est un singleton, et c'est le point de départ de votre application. Tout commence là et ce qu'il fait. Est-ce que les événements de Ford vers le bas à vos vues et contrôleur de vue ? Donc, il y a ah chaîne répondu qui vient de l'application U vers le bas. Et donc quand quelqu'un appuie sur l'écran pour juste Ford ce tapotez tout le long jusqu'à ce que vous interceptiez ou que l'une des classes l'intercepte. Par exemple, si quelqu'un faisait un balayage vers le bas sur une vue de table, il commencerait à votre application qui a répondu. Prenez cela et irait jusqu'au bout pour dire votre vue de table, intercepte dans les coulisses, puis fait le défilement en fonction de la quantité d'un film qu'ils ont fait et de tout ce genre de choses. Donc, vous application là, n'importe qui dans votre application et vous interagissez avec elle parfois, mais surtout fonctionne juste dans les
coulisses pour vous. Auto par magie. Alors c'est toi. Je demande sur un contrôleur de vue. Quelle est la différence entre vue ? Est-ce que le chargement et la vue apparaîtront ? C' est une très bonne question, et c'est un problème que beaucoup de nouveaux développeurs ont est qu'ils vont mettre quelque chose en vue, a chargé. D' accord ? Et puis ils s'attendent à chaque fois que la personne retourne à l'écran. Et cette vue montre qu'ils s'attendent à ce que cette fonction soit appelée à nouveau pour actualiser l'écran ou effectuer un type d'action. Et ça ne marche pas, et ils disent Qu'est-ce qui se passe ? Ça ne marche pas bien. Visualisé, Load est appelé vraiment une seule fois lorsque vos spectateurs sont chargés pour la première fois, ce qui signifie que votre vue est en mémoire. Et une fois qu'il est sur la mémoire et chargé en mémoire, cette vue n'a charge fonction sera appelée, mais pas à nouveau jusqu'à ce qu'il doit être rechargé à nouveau. Maintenant, bien
sûr, il pourrait être déchargé en mémoire, et quand il se chargera à nouveau, il sera appelé, et peut-être que vous ne l'avez pas remarqué et que vous pensez peut-être que ça a fonctionné. Mais vraiment, c'est un endroit dangereux pour mettre des choses que vous devez être appelé chaque fois que l' écran apparaît. C' est donc idéal pour l'initialisation d'une vue. Ah, bon point de vue de départ se charge. Mais si vous voulez actualiser votre écran chaque fois qu'il apparaît réellement à l'utilisateur. C' est là que vous avez fait apparaître et voir apparaîtra. C' est là que vous devriez mettre votre code. Plus précisément, la vue apparaissait, et fondamentalement cela signifie que la vue apparaissait visuellement à l'utilisateur ? Et c'est là que vous pouvez faire des choses comme rafraîchir vos vues de table et, euh, vous
adresser moi et des choses comme ça parce que ça va être appelé à chaque fois. La vue est affichée à l'utilisateur, alors que View do load n'est appelée qu'une seule fois lorsque la vue se charge pour la première fois en mémoire. C' est une distinction très importante, et je les utilise tout le temps chaque jour dans mon développement, qu'est-ce que le centre de notification N et quand l'utiliseriez-vous ? Donc, et c'est le centre de notification est vraiment cool. C' est essentiellement le modèle d'observateur. Si vous êtes dans la conception de codage, les modèles. Et fondamentalement ce que cela signifie est que vous pouvez écouter les notifications dans le centre de notification , donc une classe ou un objet et s'inscrire pour les notifications, puis d'autres points dans l' application peuvent poster des notifications à la notification centre. Et si votre classe que votre objet observe, notification sortira et dans votre méthode de rappel votre fonction que vous avez dit, comme le récepteur sera appelé, et vous pouvez écouter cette notification. Donc, un outil très puissant pour distribuer des messages à travers une application. En fait, certaines actions de personnes développent leurs applications entières autour de ce modèle d'observateur, et c'est génial. C' est efficace, c'est rapide, c'est vraiment une bonne chose à utiliser, et vous pouvez également le mélanger avec d'autres types de motifs de conception. Et j'ai utilisé à peu près cela dans mon développement d'application ainsi que nécessaire. Ah, la plupart des jours. Donc un outil très puissant. Et alors quelle est la différence entre ? Et c'est le centre de notification sur et les délégués Ok, donc ce qui est vraiment intéressant, c'est que et c'est les notifications peuvent ou le
modèle de notification ou d'observateur . Ça peut aller à beaucoup d'auditeurs, n'est-ce pas ? Donc c'est comme une relation entre un et plusieurs. Eh bien, les notifications postées, mais beaucoup de gens peuvent l'écouter. Cependant, le modèle de délégué. Ok, c'est un modèle de conception différent. Le modèle de délégué est un 1 à 1, ce qui signifie que nous avons parlé de protocoles, donc vous avez un protocole et un objet et implémentez ce protocole. Et puis à un certain moment spécifié dans le temps, chaque fois que cela a du sens, le délégué des particules sera appelé, et ces fonctions de protocole seront appelées. Et c'est une relation de 1 à 1. Ainsi, par
exemple, à votre vue de table, vous connaissez vous-même le chemin d'index Aurora. Votre table de vous déclenchera cela, mais il n'envoie pas de notification et touche 50 vues de table différentes. Il ne touche qu'une vue de table que les yeux enregistrés en tant que délégué et ces fonctions Air appelées donc une relation de 1 à 1 par rapport à une relation de un à plusieurs, et vous pouvez utiliser les deux de ceux dans l'application. Parfois, il est plus facile d'utiliser une notification que d'aller construire vos propres protocoles. Comme, par
exemple, si je vais utiliser,
euh, euh, quelque chose qui une fois, c'est vraiment petit. Je ne vais probablement pas construire un protocole pour cela,
car cela prend juste un peu plus de travail et c'est une relation 1 à 1 pas aussi utile que de faire un système de notification rapide. y Ilya des constantes figées, je suppose. Mais c'est ainsi que les notifications fonctionnent. Et c'est ainsi que les délégués travaillent. Comment les threads fonctionnent-ils sur IOS ? Ok, donc IOS prend en charge le multi-threading, et je ne vais pas aller dans les profondeurs et les perspectives de l'informatique. Mais plus de l'application pratique de la façon dont cela fonctionne. Et fondamentalement, votre application peut avoir un ou plusieurs threads ou instances de code qui
s'exécutent indépendamment les uns des autres. D' accord. Et c'est vraiment important à savoir et à utiliser car l'une des erreurs courantes que les développeurs de
Brandon font est qu'ils vont tout faire sur le thread principal. Et le thread principal est l'endroit où U Wise hébergeait. Ainsi, par
exemple, il y a un thread en cours d'exécution continue pour l'interface utilisateur. Lorsque vous appuyez sur le flux, votre ou le code doit être en mesure de répondre à cette poignée que OK, mais une chose que les nouveaux développeurs font, ils font beaucoup cette erreur est de dire qu'ils vont faire une demande réseau. Ils vont aller parler à un A P I et télécharger des données. Eh bien, ils vont le faire dans le fil principal. D' accord. Et donc, ce qui se passe est une demande à Internet sort, et ce fil attend que le message revienne. Et bien sûr, c'est un synchrone. Et donc, euh, eh bien, ça devrait être synchrone, mais ce que je veux dire,
c'est que ça peut prendre un certain temps. Cela pourrait prendre quelques secondes pour que cette demande revienne. Alors que se passe-t-il si vous utilisez le thread principal ? Vous envoyez une demande réseau, mais l'utilisateur commence à taper. Eh bien, ces robinets ne vont pas être enregistrés et dire que les données d'Internet reviennent à demande terminée. Vous bloquez donc la menace principale et créez une expérience utilisateur terrible. Si vous avez déjà utilisé une application où vous appuyez sur Enregistrer et tout d'un coup tout se fige pendant quelques secondes et vous êtes comme, Que se passe-t-il ? C' est parce qu'ils ne l'ont pas fait. Ils ne le font pas correctement. Ils n'ont pas filé un fil séparé. C' est ce que vous voulez faire est que vous voulez faire un appel asynchrone sur un thread séparé. Vous voulez essentiellement que vos demandes soient exécutées simultanément avec la menace U I. Voici comment ça fonctionnerait. Disons que l'utilisateur appuie sur un bouton de téléchargement sur votre application sera. Ensuite, nous faisons une requête asynchrone sur un thread séparé. Il va à l'Internet, Votre vous je suis toujours sensible. Et puis la demande revient avec un tas de données, non ? Disons un tas de faits et de chiffres et peut-être que votre moi est pour les images. Il revient, mais c'est toujours dans le fil d'arrière-plan. Et maintenant, nous devons vous mettre à jour. Je Donc, on va prendre les données qui viennent de revenir, et ensuite on va les mettre dans notre source de données, et ensuite on va revenir sur la menace principale et rafraîchir,
rafraîchir nos applications pour que toutes ces données apparaît. Et donc, lorsque vous faites tourner un thread asynchrone séparé, vous devez également veiller à ce que les données reviennent sur la menace principale et à mettre à jour votre vous. J' en conséquence. Donc, um, si vous utilisez des bibliothèques comme Alamo Fire, qui sont très puissantes, il gère tout cela automatiquement pour vous, ce qui est vraiment sympa, donc vous ne vous inquiétez pas à ce sujet aussi beaucoup, mais il est très important de savoir et de comprendre. Quelle est la différence entre Zip et storyboards et zips étant des fichiers ex I B ? Et donc, avant l'existence des storyboards, tout ce que nous avions était les fichiers de mise en page IBS et Zip. Ils sont basés sur un format Necks ML et définissent les attributs de ces vues comme la taille, la hauteur, couleur, des choses comme ça. Et ce sont des fichiers de mise en page visuels, ce qui signifie là spécifiquement pour l'interface utilisateur. Et puis, bien
sûr, ils sont liés au code, euh, en conséquence. Comme vous l'avez, vous I Mais dans des choses comme ça, et donc même avec un storyboard, toutes vos vues sont faites de fichiers zip. Et donc la seule différence est que les storyboards était une nouvelle fonctionnalité et choisir par Apple il y a quelques années qui permet fondamentalement à votre application d'avoir un flux, un storyboard de vos points de vue. Et donc ces vues sont toujours des fichiers zip là, juste à l'intérieur de votre storyboard, et cela vous donne un chemin clair et
distinct. Et pour la plupart, Apple encourage vraiment tout le monde à utiliser des storyboards. Certains développeurs ne les utilisent pas encore, et je ne les utilise pas tout le temps, mais ah, mais ah,
j'ai utilisé ibs par eux-mêmes plusieurs fois. Pourtant, euh, et donc ils ne supportent même plus hors de la boîte, où vous pouvez simplement créer, euh, des applications basées sur son IBS seul. Mais tu pourrais encore le faire. Vous pouvez le faire votre tableau de magasin et le mettre en place pour cela. Mais la chose importante qu'ils savent est que tout est construit sur des fichiers zip, même dans les storyboards et quand vous pourriez vraiment commencer. L' utilisation de fichiers Zip est particulièrement si vous aimez faire des frameworks. Par exemple, disons que je construis un framework que je veux distribuer à d'autres développeurs, et que je ne veux pas écrire tout mon u Y dans les contraintes programmatiques. Ah, et chargé tout à partir du code je peux créer des fichiers zip. OK, donc les storyboards ne sont pas pris en charge et les frameworks. Je peux créer des fichiers zip, cependant, et les mettre dans un paquet, puis au moment de l'exécution, je peux accéder à ce bundle pour mon framework et charger ceux qu'il fichiers à partir d'une interface utilisateur . Donc, les Storyboards vraiment cool ont des fonctionnalités vraiment cool que les sibs n'ont pas, donc je suggère que les applications sont construites avec des storyboards sauf si vous devez absolument
avoir des fichiers zip. Mais c'est comme ça que ça marche. Et n'oubliez pas d'obtenir votre santé en direct gratuit, Allez à Deb pistes dot com et cliquez sur Chat Room. Je suis là tout le temps, ainsi qu'une énorme communauté d'autres étudiants.