Skip to main content

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

2 Juillet 2025 - Nuit étouffante et conditions Swift - Jour 28

Jour 28 de formation ! Avec 34 degrés au compteur aujourd’hui, c’est officiellement la canicule qui s’installe. Nuit étouffante malgré le ventilateur, et seulement 5 heures de sommeil avec un score de récupération catastrophique de 28. Pas de sport prévu aujourd’hui, la sagesse commande de rester au frais !

# Une matinée studieuse malgré la chaleur

Malgré ce réveil difficile, j’ai maintiens le cap sur ma formation 100 Days of SwiftUI. Aujourd’hui, jour 5 était consacré aux structures conditionnelles en Swift. C’est un sujet fondamental qu’il faut absolument maîtriser.

# Les conditions en Swift : prendre des décisions

## Instructions IF basiques

L’instruction if permet d’exécuter du code seulement si une condition est vraie.

let score = 85

if score > 80 {
    print("Good Job!")
}

## Opérateurs de comparaison

Swift nous offre tous les opérateurs classiques :

let speed = 88
let age = 18

if speed >= 88 {
    print("Where we're going, we don't need roads")
}

if age >= 18 {
    print("You are eligible to vote")
}

Astuce importante : Pour vérifier si une chaîne est vide, utilisez .isEmpty plutôt que de comparer avec "". C’est plus performant !

var userName = ""

if userName.isEmpty {
    userName = "Anonymous"
}

## Conditions multiples avec ELSE IF

Pour gérer plusieurs cas de figure :

let temp = 25

if temp > 20 && temp < 30 {
    print("It's a nice day!")
}

Avec les opérateurs logiques :

  • && (ET) : toutes les conditions doivent être vraies
  • || (OU) : au moins une condition doit être vraie
enum TransportOptions {
    case airplane, helicopter, bicycle, car, escooter
}

let transport = TransportOptions.helicopter

if transport == .airplane || transport == .helicopter {
    print("Let's Fly!")
} else if transport == .bicycle {
    print("I hope there will be a bike park")
} else {
    print("I'm going to hire a scooter now")
}

## Switch : l’alternative élégante

Le switch est parfait pour comparer une valeur contre plusieurs possibilités :

enum Weather {
    case sun, rain, wind, snow, unknown
}

let forecast = Weather.rain

switch forecast {
case .sun:
    print("nice day")
case .rain:
    print("need Umbrella")
case .wind:
    print("Wear something warm")
case .snow:
    print("School is cancelled")
case .unknown:
    print("Generator is broken!")
}

Le switch doit être exhaustif - tous les cas doivent être couverts. On peut utiliser default pour les cas non prévus.

## Switch avec plages

Une fonctionnalité très pratique de Swift :

let examScore = 12

switch examScore {
case 0...9:
    print("Insuffisant")
case 10...11:
    print("Assez Bien")
case 12...14:
    print("Bien")
case 15...17:
    print("Très Bien")
case 18...20:
    print("Excellent")
default:
    print("Score invalide!")
}

## L’opérateur ternaire

L’opérateur ternaire suit la logique “WTF” :

  • What : qu’est-ce qu’on vérifie ?
  • True : que faire si c’est vrai ?
  • False : que faire si c’est faux ?
let age = 18
let canVote = age >= 18 ? "Yes" : "No"

let hour = 23
print(hour < 12 ? "It's before noon" : "It's after noon")

C’est particulièrement utile en SwiftUI pour des affichages conditionnels.

## Technique importante : éviter l’IF doom

Au lieu d’imbriquer les conditions, il vaut mieux inverser les vérifications :

// Mieux - traiter les erreurs en premier
if password.count < 8 {
    print("Password should be at least 8 chars")
} else if !password.contains(passwordRegexNumber) {
    print("Password should contain at least 1 number")
} else if !password.contains(passwordRegexCapitalizedLetter) {
    print("Password should contain at least 1 Capitalized Letter")
} else {
    print("Password is OK")
}

# Après-midi design : prototypes HD pour le premier projet portfolio

Comme prévu au planning, cet après-midi était consacré au travail sur les prototypes haute définition de LocalCard Solutions, le premier projet de mon portfolio. J’ai pu traduire la plupart des écrans sur base des prérequis définis précédemment.

Une fois les interfaces terminées, j’ai joué le rôle du client avec Claude pour tester la présentation. Sur base des retours fictifs, je ne suis pas à côté de la plaque, ce qui est un bon signe pour un premier jet !

# Réflexions sur la journée

Journée équilibrée entre théorie (Swift) et pratique (code & design). Malgré la fatigue due à la chaleur, j’ai pu maintenir ma productivité sur les deux fronts.

Les concepts de conditions en Swift commencent à bien s’ancrer, et voir les prototypes prendre forme pour le premier projet du portfolio est très satisfaisant.

Vivement ce soir pour récupérer un peu ! À demain pour la suite, en espérant des températures plus clémentes…