Skip to main content

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

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

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 !