17 Juillet 2025 - Premier projet SwiftUI : WeSplit et navigation
Salut ! Nous y voilà enfin ! Jour 39 de formation et 16ème jour des 100 Days of SwiftUI. Aujourd’hui marque un tournant majeur : j’ai travaillé sur mon premier vrai projet d’application et exploré la navigation !
C’est un moment particulier car après toutes ces semaines de théorie Swift, je commence enfin à voir des éléments visuels apparaître à l’écran. Il y a quelque chose de magique à voir son premier “Hello, World!” s’afficher dans le simulateur iPhone !
#
Ma première interface SwiftUI
Aujourd’hui, j’ai découvert les composants fondamentaux qui permettent de construire des interfaces utilisateur en SwiftUI. C’est fascinant de voir comment chaque élément s’imbrique naturellement.
#
Apprentissages du jour : Les composants de base
##
NavigationStack : structurer la navigation
Le NavigationStack est le conteneur principal qui permet de gérer la navigation dans l’application. C’est comme avoir un cadre qui va contenir tous nos écrans et gérer les transitions entre eux.
##
Form et Section : organiser le contenu
Les Form et Section permettent d’organiser les éléments de manière claire et structurée. C’est l’équivalent des formulaires web, mais optimisé pour mobile avec le style natif d’iOS.
##
État et réactivité avec @State
J’ai découvert le concept d’état avec @State private var
. C’est révolutionnaire ! Dès qu’une variable d’état change, l’interface se met automatiquement à jour. Plus besoin de rafraîchir manuellement comme en JavaScript traditionnel.
##
Button : interaction utilisateur
Les Button permettent l’interaction. Ce qui m’a marqué, c’est la simplicité de mise à jour automatique quand on modifie une variable d’état :
@State private var tapCount = 0
Button("Tap Here : \(tapCount)") {
tapCount += 1
}
Chaque tap incrémente automatiquement le compteur affiché !
##
TextField : saisie utilisateur
Les TextField gèrent la saisie de texte. J’ai appris le concept de two-way binding avec le symbole $
devant la variable. C’est comme créer un lien direct entre l’interface et les données.
##
Text : affichage de contenu
Les composants Text sont les éléments de base pour afficher du texte. Ils peuvent être dynamiques et se mettre à jour automatiquement selon l’état de l’application.
##
ForEach : répétition d’éléments
Le ForEach permet de créer plusieurs éléments identiques en boucle. C’est l’équivalent des boucles qu’on a vues en Swift, mais adaptées pour les interfaces utilisateur.
##
Picker : sélection d’options
Les Picker offrent un moyen élégant de présenter des choix à l’utilisateur. Ils s’intègrent naturellement dans les formulaires et respectent les conventions d’interface d’iOS.
Découverte importante : Le two-way binding avec
$
crée une connexion bidirectionnelle entre l’interface et les données. Quand l’utilisateur modifie quelque chose, la variable change automatiquement, et vice versa.
#
Mon premier projet WeSplit
Après la partie théorique, j’ai créé une app qui me permettra de suivre les apprentissages du jour.
##
Ce que j’ai réalisé
J’ai créé une structure de navigation dans mon application d’apprentissage où j’organise mes découvertes par jour. J’ai déjà mis en place :
- Page du jour 16 : avec toutes les informations et composants découverts aujourd’hui
- Page du jour 17 : que je prépare pour demain
- Navigation entre les pages : grâce au menu principal
##
Ma fierté du jour
Ce qui me rend le plus fier, c’est que j’ai réussi à explorer la navigation tout seul ! J’ai créé cette structure de pages sans aide externe (un peu de Google et de Claude pour chercher des infos et comprendre des concepts 😉, juste en expérimentant avec les composants qu’on venait d’apprendre. Pouvoir changer d’une page à l’autre, ça m’a donné une satisfaction énorme !
#
Réflexions sur cette première approche
Cette première session avec Xcode m’a donné un aperçu de la puissance de SwiftUI. L’approche déclarative est vraiment différente de ce que j’ai pu voir avec du JavaScript traditionnel. Au lieu de dire “comment” faire quelque chose, on décrit “ce qu’on veut” et SwiftUI s’occupe du reste.
#
La suite du programme
Paul Hudson nous prépare déjà : demain, nous allons continuer à développer WeSplit et découvrir de nouveaux concepts ! J’ai hâte de voir comment tous ces éléments s’articulent ensemble dans un projet plus complexe.
##
Prochaines étapes
La semaine prochaine, je vais également commencer à avancer sur mes projets de portfolio. Avoir ces premières bases en SwiftUI va me permettre d’être beaucoup plus autonome quand je commencerai le développement de mes applications. Cet après-midi étant bloquée sur la définition de la 3eme application fictive.
À demain pour la suite de WeSplit !