Ce document explique pas à pas, et de manière pédagogique, le fonctionnement du code de la mini-calculatrice SwiftUI.
enum Operateur: String, CaseIterable
enum: permet de regrouper des valeurs symboliques (+,-,*,/).: String: chaque cas possède une valeur brute (rawValue) de typeString, utile pour l’affichage.CaseIterable: permet de parcourir tous les cas automatiquement viaOperateur.allCases.
.addition = "+".soustraction = "-".multiplication = "*".division = "/"
Chaque opérateur est associé à son symbole d’affichage.
Cette méthode exécute l'opération correspondant à l’opérateur sélectionné.
Elle prend :
- deux
Double(aetb), - et retourne le résultat du calcul.
Un switch self détermine l’opération à effectuer :
.addition→a + b.soustraction→a - b.multiplication→a * b.division→ renvoie0sib == 0(pour éviter une division par zéro), sinona / b.
Cette fonction regroupe toute la logique mathématique dans un seul endroit.
Ces deux variables contiennent ce que l’utilisateur tape dans les TextField.
Elles sont de type String, car un champ texte ne manipule pas des nombres directement.
Variable représentant l'opérateur sélectionné.
Elle est liée au Picker grâce à un binding ($operateur).
Double(chiffre1) ?? 0
Double(chiffre2) ?? 0
Chaque saisie est transformée en Double.
Si la conversion échoue (champ vide ou valeur incorrecte), la valeur tombe automatiquement à 0.
operateur.appliquer(n1, n2)
La logique du calcul est entièrement déléguée à l’énumération Operateur.
Cela rend la propriété calculée extrêmement simple.
Le résultat final est transformé en String pour être affiché dans la vue.
Le Picker permet de choisir l’opérateur qui sera appliqué.
selection: $operateurlie le choix de l’utilisateur à la variable d’étatoperateur.ForEach(Operateur.allCases)liste automatiquement+,-,*,/.Text(op.rawValue)affiche le symbole de l’opérateur..tag(op)permet auPickerd’associer la bonne valeur àoperateur.
Le style .segmented transforme le Picker en boutons alignés (comme ceux d’un onglet).
Deux TextField permettent la saisie des nombres.
L’utilisateur peut saisir 2,5.
Mais Swift attend 2.5 pour faire un Double.
Grâce à .onChange(of:) :
- si le texte contient une virgule,
- elle est remplacée par un point,
- ce qui garantit la conversion correcte en
Double.
.font(.title)rend le champ lisible..padding(20)ajoute de l’espace pour plus de confort.
Un simple texte :
Text("resultat : \(resultat)")
- utilise l’interpolation
\(resultat)pour afficher la valeur calculée, - applique un style
.font(.title), - et rend le texte sélectionnable et copiable
.textSelection(.enabled).
Tout est regroupé dans une VStack, ce qui :
- aligne les éléments verticalement,
- rend le code lisible,
- centralise l’interface de la mini-calculatrice.
padding() final ajoute de l’espace autour de la vue pour aérer l’ensemble.
Ce projet illustre plusieurs concepts importants de SwiftUI :
Le résultat est une calculatrice claire, pédagogique et facile à étendre.