30 Juin 2025 - Types de données complexes en Swift
Salut ! J’espère que tu résistes bien à cette canicule. Ici en Belgique, nous atteignons les 33 degrés aujourd’hui et c’est vraiment intense ! Malgré la chaleur, j’ai réussi à maintenir mon rythme de formation et même à faire ma séance de natation cet après-midi. 💪
#
Une journée productive malgré la chaleur
Ce matin, j’ai suivi ma 3ème journée des 100 Days of SwiftUI pendant environ 2 heures. Cet après-midi, plutôt que de continuer la formation théorique, j’ai finalement décidé de me lancer dans la première semaine de mon projet portfolio : l’application de fidelité.
##
Gestion de projet avec Claude
J’ai testé une approche intéressante : j’ai joué un jeu de rôle avec Claude(J’en ai parlé il y a quelques jours). Il incarnait le client, et moi le développeur freelance engagé pour le projet. Cette simulation m’a permis d’avancer rapidement sur :
- L’identification des besoins et de la situation initiale
- La sélection des technologies à mettre en place
- L’analyse des données et des fonctionnalités
En 30 minutes, j’ai réussi à identifier la liste complète des librairies et technologies nécessaires.
J’ai aussi passé une heure à dessiner quelques processus utilisateurs simples. C’est crucial pour bien comprendre les besoins et ensuite créer les user stories et identifier le MVP.
##
Récompense sportive
Petite victoire personnelle : j’ai gagné mon badge de 20 activités pour le mois de juin ! Et cet après-midi, j’ai nagé 1300 mètres en 48 minutes à la piscine. Un bon score, même si j’étais complètement épuisé en sortant de l’eau.
#
Apprentissages du jour : Types de données complexes
Aujourd’hui, nous avons exploré les arrays, dictionnaires, sets et enums en Swift. Des concepts fondamentaux qui rappellent JavaScript, mais avec leurs spécificités.
##
Arrays : les listes organisées
Les arrays en Swift ressemblent beaucoup à ceux de JavaScript, avec une différence importante : ils sont spécialisés par type (comme TypeScript 🙄). Tu ne peux pas mélanger des strings avec des intègres dans le même array.
###
Déclaration des types
Il y a plusieurs façons de définir un array :
// Méthode 1
var scores = Array<Int>()
// Méthode 2
var albums = [String]()
// Méthode 3 : avec valeurs initiales
var colors = ["rouge", "vert", "bleu"]
Le troisième exemple est très pratique : Swift devine automatiquement le type basé sur les valeurs que tu donnes !
###
Fonctionnalités disponibles
Les arrays Swift proposent toutes les méthodes classiques :
- append() : ajouter un élément
- count : nombre d’éléments
- remove() : supprimer un élément
- contains() : vérifier la présence
- sorted() : trier
- removeAll() : vider complètement
- reversed() : inverser l’ordre
##
Dictionnaires : les paires clé-valeur
Les dictionnaires sont parfaits quand tu veux associer des informations plutôt que de naviguer par index. Imagine un employé avec son nom, son rôle, son âge…
var employee = [
"name": "Alessandro",
"job": "Développeur",
"location": "Bruxelles"
]
###
Gestion des valeurs inexistantes
Particularité intéressante : Swift ne plante pas si tu demandes une clé qui n’existe pas. Il retourne simplement une valeur optionnelle. Pour éviter ce comportement, tu peux définir une valeur par défaut :
print(employee["manager", default: "Unknown"])
###
Types de dictionnaires
Tu peux créer des dictionnaires avec différents types :
- String : String pour nom/valeur texte
- Int : String pour année/ville (ex: Jeux Olympiques)
- String : Int pour nom/taille (ex: taille des joueurs de basket)
##
Sets : les collections sans doublons
Les sets ressemblent aux arrays mais avec deux différences cruciales :
- Pas de doublons autorisés
- Pas d’ordre conservé
###
Pourquoi utiliser un set ?
Deux cas d’usage principaux :
-
Éviter les doublons : le set vérifie automatiquement et n’ajoute que les valeurs uniques
-
Performance : c’est là que ça devient intéressant ! Un array doit parcourir tous les éléments de l’index 0 à N pour trouver une valeur. Un set, lui, est optimisé pour la recherche. Que tu aies 5 ou 1 million d’éléments, la recherche sera ultra-rapide.
Pour de gros volumes de données où tu fais beaucoup de recherches, privilégie toujours un set !
###
Spécificité des sets
Comme il n’y a pas d’index, tu n’utilises pas append() mais insert() pour ajouter des éléments.
##
Enums : les valeurs prédéfinies
Les énumérations sont comme les types en JavaScript - elles définissent des valeurs autorisées.
###
Exemple pratique
enum Weekday {
case monday, tuesday, wednesday, thursday, friday
}
var day = Weekday.monday
###
Avantages des enums
- Sécurité : si quelqu’un essaie d’utiliser “janvier” comme jour de la semaine, l’app plantera
- Lisibilité : le code est plus clair et compréhensible
- Performance : gain d’efficacité dans l’exécution
###
Raccourci pratique
Une fois qu’une variable est définie avec un enum, tu peux utiliser la notation courte :
day = .tuesday // au lieu de Weekday.tuesday
#
Pratique avancée avec Claude
Pour consolider ces apprentissages, j’ai demandé à Claude de me générer des exercices personnalisés - certains pour réviser la théorie, d’autres plus avancés pour explorer plus loin.
J’ai pu pratiquer avec des concepts qui ne sont pas encore au programme :
- Les for loops
- Les fonctions
- L’optimisation des enums avec descriptions
- Case Iterable dans les enums
C’est passionnant de voir comment ces concepts s’articulent ensemble !
À demain pour de nouveaux apprentissages, et courage pour supporter cette chaleur ! 🌡️