Skip to main content

Alessandros's Blog - Build with freedom. Share with purpose

26 Juin 2025 - Premier jour avec Swift : Variables, constantes et nombres

Nouvelle journée dans l’apprentissage iOS developer ! Aujourd’hui marque le début d’une nouvelle aventure : les 100 jours de SwiftUI de Paul Hudson. J’étais super excité ce matin de commencer ce parcours tant attendu.

# Une journée bien remplie

Je pense avoir mieux dormi qu’hier après ma séance de sport. J’ai encore mal aux jambes, mais c’est supportable vu que je reste assis une grosse partie de la journée. Pas de sport aujourd’hui, j’en ferai demain et samedi.

Ce matin, je me suis amusé à faire un petit nettoyage de printemps. J’adore accumuler et garder les cartons de ce que j’achète au cas où je voudrais revendre dans les cartons d’origine un jour, mais là je pense que c’était nécessaire ! J’ai vidé une bonne partie des cartons et je les sortirai ce soir ☺️.

# Changement de planning important

Aujourd’hui, j’ai pris une décision importante : décaler encore d’une semaine le début des projets du portfolio. Pourquoi ? Parce qu’en réfléchissant bien, je ne vais potentiellement pas avoir les notions nécessaires lorsque je vais commencer à coder.

D’office, je vais prendre du retard car je n’aurai pas les bases. Soit je passerai dans les mauvais travers en demandant à l’intelligence artificielle de le faire (ce qui n’est vraiment pas le but de mon parcours), soit je prendrai beaucoup de temps de manière non pertinente.

J’ai donc préféré décaler, vu que la première semaine du projet tombe la dernière semaine du bloc de formation théorique (les 15 premiers jours).

La dernière semaine, ce sont vraiment les dernières informations importantes au niveau Swift, et ensuite on commencera la pratique (pour SwiftUi). Ça tombe bien parce que la première semaine du projet sera la collecte des besoins, la définition des MVP, les prototypages - ça, je sais déjà faire. Ensuite, la deuxième semaine viendra le cœur du travail avec plus ou moins dix heures de développement définies. À mon avis, je vais largement déborder, mais je vais essayer de rattraper sur les autres tâches.

## Mes options pour cette semaine supplémentaire

Pour cette semaine en plus, j’hésite entre plusieurs approches :

  • Option 1 : Continuer à faire des formations complémentaires qui permettent de consolider les acquis design et Git, sans court-circuiter l’apprentissage Swift
  • Option 2 : Avancer au niveau des projets - ne pas faire directement quatre semaines de suite, mais plutôt une semaine de préparation, ensuite mettre de côté et faire le développement pendant trois semaines

Je me laisse encore jusqu’à lundi pour décider.

# Expérimentations Figma avancées

Cet après-midi, j’ai regardé une petite formation sur LinkedIn Learning sur la construction d’une application mobile en tenant compte des composants, des variantes, des propriétés et surtout de l’animation. J’ai appris quelques trucs intéressants !

## Gestion des états avec les propriétés

La formatrice utilise des propriétés dans les variantes pour gérer les états des boutons. Pourquoi ? Parce qu’elle gère ensuite des animations. Si tu mets deux états sur un bouton, tu peux potentiellement créer une animation dans ton prototype et améliorer l’interactivité - ce qui me manquait sur les exercices que j’avais fait auparavant.

## Création de transitions complètes

Ce qu’elle fait aussi, c’est qu’en créant tous les écrans, elle crée aussi les transitions. Par exemple, elle voulait simuler le fait de swiper sur un message et de le mettre en non lu. Elle a donc fait :

  1. Premier écran : l’état de tous les messages avec celui qui était déjà lu qu’elle pouvait mettre non lu
  2. Deuxième écran : un composant avec une variante et une propriété qui montrait que le swipe était possible
  3. Troisième écran : le résultat après que le swipe ainsi que l’appui sur l’option soit effectué afin de passer le message en non lu

## Auto Layout et Atomic Design

Autre découverte importante : elle fait tout en auto layout avec des imbrications d’auto layout. Elle crée des atomes, puis des molécules, puis des composants, et ces composants sont faits d’auto layout.

La fonctionnalité qui va révolutionner ma façon de faire les designs, c’est l’option “space between” dans l’auto layout. Si on a par exemple deux icônes, une à droite et l’autre à gauche de l’écran, avec “space between”, ça va rajouter un espace vide qui va s’étirer sur toute la longueur. C’est exactement ce que j’avais beaucoup de mal à effectuer lors de mes designs - je passais tout en placement manuel, ce qui est très moche au niveau du layout.

## Points de départ multiples

Au niveau des animations, j’ai appris qu’on peut définir plusieurs points de départ pour des flux. Dans l’exemple qu’elle avait pris, il y en avait un pour la connexion, l’autre pour les favoris, et l’autre pour la messagerie.

# Projet IA pour les applications portfolio

En début d’après-midi, j’ai créé un projet dans Claude pour faire du roleplay. Au lieu d’être la personne qui va me donner des conseils techniques, je lui ai demandé de jouer le rôle d’une personne du métier qui sera mon point de contact dans les compagnies fictives que j’ai créées (j’en ai créé six, comme tu peux le voir dans mes précédents blogs).

Le but : qu’elle puisse me donner des informations sur les flux des utilisateurs afin de pouvoir construire les MVP. À nouveau, je ne vais pas utiliser l’IA pour cracher seulement du contenu que je vais ensuite mettre en place. Le but, c’est quand même de le faire le plus manuellement possible pendant la durée de la formation pour que je prenne les réflexes.

Ce qui est important aujourd’hui, c’est que j’utilise les modèles IA pour m’aider à accomplir des tâches que je ne peux malheureusement pas faire - et dans ce cas-ci, c’est une sorte de roleplay où Claude va faire en sorte d’être mon contact business.

Il y a quelques petits ajustements à faire - il divague un peu parfois, commençant à me donner des conseils techniques alors que je lui ai dit d’être quelqu’un du business. Et quand je leur demande de me fournir le processus métier actuel, il m’explique comment l’application fonctionne alors que dans l’exercice, il n’y a pas d’application - c’est moi qui vais la construire 😅! Ce sont des petites choses qu’il faut réaligner, mais je pense que ça va m’aider pas mal.

Voici les informations que j’ai mis dans le projet Claude et la réponse qu’il m ‘a faite… Génial!


# Apprentissages du jour

## Introduction aux 100 jours de SwiftUI

Avant de commencer, Paul Hudson explique que le cours propose deux formats : des vidéos et du texte. On peut suivre en texte ou en vidéo, mais il y a aussi des informations complémentaires et des petits tests pour consolider les acquis.

Conseil important : Si tu dois faire la même chose dans le futur, suis plutôt le texte. Dans le texte, il y a des liens vers les vidéos si tu aimes mieux suivre en vidéo.

Paul souligne qu’au moment où il a enregistré les vidéos, Swift et SwiftUI étaient assez récents. Maintenant, il faut dire que Swift existe depuis une dizaine d’années et SwiftUI depuis six ans - ce ne sont plus des technologies récentes mais bien établies.

## La philosophie du codage

Avant de commencer toutes les explications au niveau des variables et constantes, Paul partage une notion importante : le codage, c’est une forme d’art, un peu comme le dessin. Tu ne passes pas ton temps à tailler tes crayons - le plus important, c’est que tu commences à dessiner.

Il faut mettre tout en pratique pour pouvoir maîtriser les concepts et être beaucoup plus à l’aise. C’est comme ça que le cours est fait : il y a 15 fois une heure de théorie avec beaucoup d’exercices et de pratique, et ensuite 20 projets divisés sur les 85 jours restants.

## Variables et constantes

Même si j’avais des bases vu que j’ai déjà fait de la programmation avant, il y a quand même des notions importantes spécifiques à Swift.

### Convention de nommage

Au niveau des strings, la convention de nommage est le camel case, un peu comme en JavaScript.

### Différence importante avec JavaScript

À l’inverse de JavaScript :

  • Le let est une constante dans Swift
  • Le var est une variable dans Swift

Alors qu’en JavaScript, le let est une variable et le const est une constante. Il faut faire un petit switch mental !

### Type Safety

Swift est type safety. Il va comprendre naturellement grâce aux informations qu’on lui donne à la déclaration de la variable. Soit on lui donne le type, soit on ne lui donne pas et il le déduit. Ensuite, il n’est pas possible de changer le type en cours de route.

### Préférence pour les constantes

Pour des raisons de stabilité, il est toujours préférable d’utiliser des constantes plutôt que des variables. Je pense que ce n’est pas un concept unique à Swift - c’est quelque chose de général. Dans ma tête, avec JavaScript, je faisais la même chose à 50-50. Avec Swift, je vais privilégier le tout constantes sauf en cas de besoin.

## Chaînes de caractères

### Emojis

Les emojis sont acceptés dans les chaînes de caractères ! Je n’avais jamais mis d’emojis dans du JavaScript (peut-être dans React dans les textes), mais ici c’est accepté dans les champs de caractère et sont considérés comme 1 seule caractère.

### Multi-line strings

Les multi-line strings sont écrits avec trois apostrophes au début et trois apostrophes à la fin. C’est très important de mettre :

let multiString = """
This is a multiline
text. So cool !
"""

Si tu ne fais pas ça, ça ne fonctionne pas.

### Méthodes utiles

Il y a un certain nombre de choses qu’on peut faire avec les chaînes de caractères :

  • uppercase et lowercase
  • capitalized
  • hasPrefix et hasSuffix : pour tester si une chaîne commence ou finit par quelque chose

Attention : Swift est case-sensitive !

## Nombres

### Amélioration de la lisibilité

Pour gagner en lisibilité dans les grands nombres, Swift ignore les underscores dans les nombres. Il est donc possible de mettre des underscores comme on mettrait des points quand on écrit un milliard : on met des points entre le 1 et les zéros à intervalles de 3 zéros. Dans Swift, on peut faire pareil avec les underscores.

let billionNumber = 1_000_000_000

### Opérations

Les opérations sont classiques. On peut faire par exemple :

  • variable = variable + 1
  • Ou utiliser les compound assignment operators : variable += 1

C’est équivalent à variable = variable + 1, mais je ne savais pas que ça s’appelait comme ça !

### Tests d’opération

On a des tests d’opération sur les chiffres, par exemple :

  • nombre.isMultiple(of: 2) : teste si le nombre est un multiple de 2

### Problème avec les nombres à virgule

Paul a expliqué qu’au niveau des doubles, mathématiquement et surtout au niveau des ordinateurs, on ne peut pas faire des opérations et les tester de manière précise. Par exemple, si on fait 0.1 + 0.2, ce n’est pas 0.3 mais 0.30000000000000004.

Pourquoi ? Parce qu’on stocke cette information sous forme de binaire, et le binaire ne gère pas parfaitement les nombres à virgule flottante.

### Types de nombres

Paul a mentionné qu’on peut voir dans Xcode l’information CGFloat, qui est égal à un floating number. C’est quelque chose qu’on n’utilise plus, mais c’est resté dans certains textes, donc il faut faire attention.

## Première expérience avec Xcode Playground

J’ai fait quelques tests dans le Playground d’Xcode, et ce qui est vraiment pas mal, c’est qu’on voit directement ce qui se passe à droite. En faisant Shift + Enter, on peut tester le code et avoir directement la réponse. C’est vraiment un plus de Xcode en mpode Playground!

À mon avis, je vais détester Xcode parce que j’ai lu beaucoup de commentaires disant que ce n’est pas un bon éditeur de code. Mais j’ai appris quelque chose de cool cet après-midi en regardant quelques vidéos pendant ma pause, il existe un mode Vim motion dans Xcode ! Ça faisait plusieurs jours que je me posais la question… parce que je suis un gros insatisfait, je voulais voir si je pouvais peut-être me remettre à essayer de comprendre un peu mieux comment Vim fonctionne. Je connais quelques raccourcis, mais je voulais peut-être être un peu plus sérieux dans ma pratique et je ne voulais pas partir sur un autre éditeur de code juste pour ça 😐.

Je suis très content que les motions Vim soient intégrées dans Xcode. Cela m’évite du coup d’installer les Vim motions sous vscode car je pourrais pratiquer dans Xcode… 💪


On se voit demain !

Alessandro