
Le sprint planning est fini, câest le dĂ©but de votre premier sprint !
Il est temps pour vous de commencer Ă coder, toujours avec le soutien de Samira qui est lĂ pour vous guider.
Vous commencez par le premier ticket du premier POC. Cela correspond Ă la version 1 de la page de dĂ©tail dâune femme de la tech. Le voici :
Titre | Ăcran dĂ©tail POC 1 |
Description | En tant que visiteur de lâexposition je souhaite avoir des informations dĂ©taillĂ©es sur une femme de la tech que jâaurai prĂ©cĂ©demment sĂ©lectionnĂ©e dans la liste afin dâapprendre Ă mieux la connaĂźtre. |
Ressources |
|
Priorité | 2 |
Estimation | 3 |

Nous avions effectué un découpage ensemble de ce ticket afin de savoir par quoi commencer dans votre développement.
La premiĂšre Ă©tape est donc de commencer par positionner les Ă©lĂ©ments de notre page. Câest ce que nous allons voir dans ce chapitre.
Samira sera lĂ pour vous aider et faire du pair programming avec vous. Cela signifie que vous allez ĂȘtre Ă 2 devant un Ă©cran et un clavier pour rĂ©aliser cette tĂąche. Comme ça, vous serez en capacitĂ© de refaire la mĂȘme chose seul sur lâautre projet POC.
Ă la crĂ©ation du projet, en choisissant le template dâapplication en Swift et SwiftUI, Xcode aura dĂ©jĂ créé un premier fichier SwiftUI qui sâappelle ContentView.
Ouvrez-le en le sélectionnant depuis le panneau de gauche.
Vous devriez avoir Ă gauche le code et Ă droite le Canva.

Souvenez-vous, sâil manque le Canva, vous pouvez lâafficher ou le cacher en cliquant sur le bouton en haut Ă gauche.
Si le Canva est grisĂ© et quâil est Ă©crit Preview paused, vous nâavez qu'Ă cliquer sur la petite flĂšche circulaire pour le relancer.
Nous allons tout dâabord nous concentrer sur le code dĂ©jĂ Ă©crit et essayer de le comprendre.
//Â ContentView.swift
//Â TheyMakeIt-POC1
//
// Created by Amandine Cousin on 23/04/2024.Chaque fichier Swift ou SwiftUI aura toujours une entĂȘte gĂ©nĂ©rĂ©e automatiquement Ă la crĂ©ation. Ce sont les lignes de code que vous voyez en commentaires et qui commencent par âââ//ââ.
On peut y lire le nom du fichier, puis le nom du projet et enfin, lâauteur. Plus prĂ©cisĂ©ment câest le nom du crĂ©ateur du fichier. Si vous ĂȘtes plusieurs Ă travailler sur un mĂȘme projet, ce sera toujours le nom de la personne qui aura créé le fichier.
Ensuite, on retrouve une premiĂšre structure. Câest lâobjet qui reprĂ©sente la vue de notre fichier. On le sait car elle a le mĂȘme nom que le fichier et que ce nom est suivi par le protocole  View .
struct ContentView: View {
var body: some View {
VStack {
// composants de la page
}
.padding()
}
}Ce protocole câest ce qui va vous permettre de dire Ă Xcode que vous souhaitez construire une vue et qui va vous donner tous les outils pour le faire.
Dans cette structure, une variable est dĂ©clarĂ©e, elle sâappelle body. Si vous avez dĂ©jĂ fait de lâHTML, cela doit vous dire quelque chose. Body veut dire corps en français, câest Ă l'intĂ©rieur du corps que lâon va coder le contenu de notre Ă©cran. Elle est obligatoire si on veut conformer au protocole  View et donc faire une vue.
some View indique que le body fera bien partie de la vue et respecte bien le protocole.
Ensuite, nous avons une  VStack , câest ce qui va nous permettre de regrouper les Ă©lĂ©ments de notre vue. Nous rentrerons plus dans les dĂ©tails dans quelques instants.
Ă lâintĂ©rieur de cette stack, on retrouve 2 composants.
Câest quoi un composant ?
Ce sont les éléments graphiques qui vont vous permettre de composer votre vue.
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")Ici on a une  Image et un  Text . Ces composants sont fournis par SwiftUI, ils ont déjà été déclarés par le langage et font partie des composants de bases que vous pouvez utiliser à votre guise.
La plupart des composants ont besoin dâavoir certaines informations pour pouvoir ĂȘtre créés. Une image aura besoin dâun nom pour savoir quelle image afficher. Ici câest une image systĂšme qui se trouve dans les SF Symbols.
Les SF Symbols ? Quâest-ce que c'est que ça ?
Câest une bibliothĂšque de pictogrammes fournie par Apple. Vous pouvez tĂ©lĂ©charger ici la derniĂšre version .
Le texte lui aura besoin dâune chaĂźne de caractĂšres pour savoir quoi afficher.
Essayez de changer  âHello, world!â par  âHedy Lamarrâ .
ImmĂ©diatement, le Canva se met Ă jour pour afficher votre texte ! Magique non đ§?
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")Vous remarquerez quâentre lâimage et le texte il y a dâautres lignes de code. Câest de cette façon, avec un  . devant, que vous pourrez personnaliser les composants.
foregroundStyle câest la couleur donnĂ©e Ă notre pictogramme. Ici  .tint câest la couleur par dĂ©faut Apple, du bleu. Remplacez  .tint par une autre couleur comme par exemple  .orange .
Le globe terrestre nâest plus bleu mais orange dĂ©sormais.

Une derniÚre chose : vous avez remarqué, il y a un autre élément que notre structure  ContentView qui a été déclarée en bas de la page.
#Preview {
ContentView()
}La preview, câest le code qui nous permet de choisir ce quâon affiche ou non dans le Canva. Dâailleurs, si vous supprimez la preview et son contenu, le Canva disparaĂźt ! Ici câest notre view  ContentView qui est donc appelĂ©e pour avoir son aperçu.
Ok, vous avez compris les composants déjà en place. Et si vous en ajoutiez un nouveau ?
Voyons ensemble 2 méthodes pour ajouter un composant dans cette vidéo :
Les 2 façons d'ajouter un nouveau composant :Â
Dans le code, en Ă©crivant directement  Text(â1914 - 2020â) .
Depuis le menu des composants, en cliquant sur le bouton + en haut Ă droite et en sĂ©lectionnant le composant qui vous intĂ©resse.Â
Ce menu permet d'accéder plus rapidement aux ressources comme les images, les SF Symbols ou les couleurs.
Vous pouvez rechercher ce que vous voulez dans ce menu avec la barre de rechercheÂ
PlutĂŽt facile non ?
Pour l'instant, pas besoin de sâoccuper de la couleur ou de la taille de nos composants. Vous allez juste rajouter autant de composants Text nĂ©cessaires et les remplir avec des strings correspondantes aux maquettes.
Vous devriez avoir une structure comme ceci !
Vous avez tous vos éléments ? Alors on continue !
Je vous lâavais dit, nous allons creuser un peu plus ces stacks. Certes, elles vous aident Ă grouper vos composants mais pas que.
Stack en français, on peut le traduire en pile. Câest donc une pile ou un empilement d'Ă©lĂ©ments.
Vous avez dĂ» remarquer, ce nâest pas un simple stack que lâon a dans notre code, câest une  VStack !
Et je vais vous montrer dans la vidéo suivante comment les utiliser :
Il existe 3 types de stacks :
V pour Vertical ou lâaxe Y,
H pour Horizontal ou lâaxe X,
Z pour lâaxe Z, câest-Ă -dire en profondeur
Les composants sont toujours empilĂ©s dans le sens de lâĂ©criture, le premier en premier, le deuxiĂšme, en dessous ou Ă droite.
Vous pouvez imbriquer des Stacks les unes dans les autres.
En regroupant tous les composants qui sont collés ou semblables de maniÚre verticale par rapport à la maquette en utilisant des VStacks, on obtient ce code.
Si vous continuez avec les HStacks, il y en a lorsque les 2 composants dâune mĂȘme ligne sont semblables comme actrice et inventrice par exemple.
En ajoutant les 2 HStacks quâil manque, vous obtenez cet autre code.
Maintenant que nos composants sont bien groupés dans le code, nous allons pouvoir les regrouper visuellement et les positionner.
Pour cela il existe plusieurs façons de faire et nous allons voir les principales, ensemble, en vidéo :
Les diffĂ©rentes mĂ©thodes dâespacement :
Comme pour du texte sur word, vous pouvez aligner les composants :Â
Ă gauche avec .leading
Ă droite avec .trailing
au centre avec .center
Cet argument, sâutilise comme ceci :Â Â VStack(alignment: .center)Â .
Pour la HStack câest similaire, vous pouvez aligner en haut avec top, au centre avec centre et en bas avec bottom.
Il pousse tout le monde pour prendre toute la place disponible lĂ oĂč il sera.Â
Mis tout en bas, tout le contenu de votre page sera contraint de rester en haut.Â
Si vous le mettez au milieu entre 2 composants dans une HStack, il poussera les éléments à gauche et à droite de l'écran.
Le padding câest lui qui va vous aider Ă mettre une marge entre vos diffĂ©rents composants.Â
Par défaut, si vous ne précisez pas, il est de 16 points partout.
Vous pouvez Ă©galement prĂ©ciser lâespacement pour un cĂŽtĂ© seulement, par exemple  .padding(.top, 8) .Â
Pour notre maquette, seul le padding est suffisant. Ajoutez les marges pour les VStacks qui en ont besoin.

Samira vous a accompagnĂ© pour positionner les Ă©lĂ©ments de la premiĂšre maquette du premier POC. Maintenant câest au tour du second projet et cette fois-ci vous serez seul pour le faire.
Samira vous a justement envoyé un mail :
Super ce pair programming ensemble ! Jâai adorĂ© nos Ă©changes !
Je compte sur toi pour continuer sur la mĂȘme lancĂ©e et arriver Ă placer les composants de la page de dĂ©tail du second projet. Tu verras câest assez similaire, je sais que tu peux le faire !
Dis-moi quand tu as fini et je passerai te voir pour vĂ©rifier que tout est OK et quâon peut passer Ă la suite.
Reprenez le projet initialisĂ© prĂ©cĂ©demment afin de modifier la structure existante comme ce qui vient d'ĂȘtre fait avec le cours.
Ajoutez les composants dont vous avez besoin
Regroupez-les avec les bonnes stacks
Servez-vous des padding pour placer les éléments comme vous le souhaitez
Pour les pictogrammes,Â
les images se nomment :Â
calendar
bookmark
mappin.and.ellipse
le padding doit se faire uniquement en bas et doit ĂȘtre de 4
Vous devriez avoir un écran qui ressemble à celui-ci :

La preview, câest ce qui est affichĂ© dans le Canva
Il existe une multitude de composants fournis par SwiftUI
Les stacks sont ce qui aide Ă composer un Ă©cran en empilant les composants sur lâaxe horizontal, vertical ou en profondeur.    Â
Le padding, câest la base pour ajouter de lâespace entre les Ă©lĂ©ments dâune page
Petit à petit, notre interface commence à ressembler à la maquette, mais il nous manque encore la customisation des éléments de la vue pour que la ressemblance soit plus frappante. Suivez-moi dans le chapitre suivant pour apprendre à personnaliser vos composants.