Skip to main content

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

23 Juillet 2025 - SwiftUI en couleur et première application du portfolio

Salut ! Nous voici au 44ème jour de formation et c’était le 21ème jour des 100 Days of SwiftUI. Une journée particulièrement satisfaisante qui marque vraiment le passage à la vitesse supérieure !

# Finalisation de Guess the Flag avec Paul Hudson

Ce matin, nous avons terminé l’application Guess the Flag et le rendu visuel est déjà beaucoup plus intéressant ! Même si l’application reste simple dans sa logique, on a découvert des concepts visuels importants :

  • Les .clipShape pour donner des formes aux éléments
  • Les cornerRadius pour arrondir les angles
  • Un bel effet de dégradé radial avec un cercle en haut et une partie fixe en bas

Paul Hudson a vraiment de l’expérience pour former les gens, c’est très intéressant de voir sa progression pédagogique !

# Mise en pratique immédiate

Pour la partie pratique, j’ai essayé de refaire l’interface Guess the Flag dans mon application quotidienne où je note mes exercices. L’objectif était de reproduire exactement ce que j’avais appris.

J’ai particulièrement travaillé sur les changements de couleur quand la réponse est fausse - la transition rapide du rouge qui indique l’erreur. J’ai dû revenir consulter le code une ou deux fois, ce qui est tout à fait normal comme le dit Paul !

# Développement de LocalCard : ma première vraie application

L’après-midi, j’ai commencé à créer les interfaces de mon premier projet portfolio en appliquant directement ce que j’avais vu le matin.

## Avancement sur les écrans

J’ai déjà créé 3 pages sur les 11 prévues pour cette application. Pour le moment, je me concentre sur la mise en place des squelettes en me basant sur les user stories que je m’étais fixées.

  • Page Wallet principale : terminée ✅
  • Page d’ajout de cartes : en cours (à finir demain)

Je trouve que le rendu correspond plutôt bien à ce que j’avais créé dans Figma, même si je ne suis pas un expert en design !

## Architecture du code : apprentissage par l’erreur

Pour le moment, j’écris toutes les fonctions et vues dans une page principale pour l’écran wallet, ce qui est bien sûr à éviter pour les futurs projets. Mais pour ce premier projet, je pense que c’est intéressant tant que je n’ai pas vu la structure recommandée avec Paul.

## Concepts avancés explorés

En parallèle, j’ai regardé sur les forums Reddit et le forum de Paul Hudson pour découvrir des concepts que je vais voir plus tard mais qui sont nécessaires pour mon projet :

### Lazy Grid et navigation

  • Implémentation des LazyVGrid pour l’affichage des cartes
  • Utilisation des NavigationLink (pas encore vu dans le cours)
  • Passage de données entre vues

### Gestion des données avec SwiftData

J’ai dû démêler quelques informations avec SwiftData. Le point qui me pose encore question : comment passer correctement un objet de modèle entre les vues ?

Pour l’instant, je passe l’ID de la carte quand je clique dessus pour aller vers les détails :

// Solution temporaire - passer l'ID
NavigationLink(destination: CardDetailView(cardId: card.id)) {
    // Interface de la carte
}

Question pour demain : Est-ce que je peux passer directement l’objet SwiftData au lieu de juste l’ID ? Je pense que oui, mais j’ai eu des problèmes de compilation que je n’ai pas encore résolus.

# Séance sport : retour aux bonnes habitudes

J’ai aussi fait ma petite session de 20 kilomètres de vélo parce que j’avais fait un peu le paresseux hier. Il fallait s’y remettre ! 💪

# Réflexions sur cette journée

C’est vraiment gratifiant de voir les concepts théoriques prendre vie dans une vraie application. La différence entre “comprendre” et “appliquer” devient évidente, et j’adore cette phase où tout commence à s’assembler.

Le fait de travailler sur un projet concret en parallèle du cours me force à aller chercher des informations complémentaires, ce qui enrichit énormément l’apprentissage.

À demain pour la suite de cette aventure !

Alessandro