Image de présentation d’un écran iOS illustrant les composants Textes en SwiftUI, un long texte est présent sur l'écran

Battery (Exo)

Image de présentation d’un écran iOS illustrant les composants Textes en SwiftUI, un long texte est présent sur l'écran

Battery (Exo)

Consigne

Dans cet exercice, on va jouer avec un Slider pour décrémenter et incrémenter la charge d’une batterie. Tu vas devoir changer le rendu de ta vue en fonction de la charge de la batterie. Par exemple, si la charge est entre 0% et 25%, ton fond d’écran sera rouge et l’icône de la batterie sera vide. Tu devras gérer chaque cas jusqu’à atteindre la batterie pleine et afficher une icône de batterie chargée à 100%. (Analyse la vidéo pour bien comprendre le rendu.) 0% à 25% : Le fond doit être rouge et l’icône de batterie faible battery.0 s’affiche. 26% à 50% : Le fond doit être orange avec l’icône battery.25. 51% à 75% : Le fond devient jaune et l’icône battery.50 apparaît. 76% à 99% : Le fond est vert avec l’icône battery.75. 100% : Le fond reste vert mais l’icône change en battery.100percent.bolt pour indiquer que la batterie est complètement chargée.

Maquette

capture d'écran dun iPhone qui représente un Text "helloworld"

Trucs et astuce

Pour mettre en place le changement de vue en fonction de la batterie, on va utiliser la logique des conditions. Si la valeur est comprise entre telle et telle plage, alors tu changes la vue. N’hésite pas à consulter à nouveau les cours sur les conditions, tu vas devoir les utiliser cette fois-ci dans SwiftUI.

 

 Correction

Correction

Tips

En SwiftUI, les conditions utilisées dans le body d’une vue ne peuvent servir qu’à retourner d’autres vues et non à exécuter du code directement. Ça s’explique par la nature déclarative de SwiftUI : on définit l’état de l’interface utilisateur, et SwiftUI se charge ensuite de gérer son rendu en fonction des changements d’état. Comme le body doit toujours retourner une View, il est impossible d’y exécuter du code indépendant de l’interface, comme un print() ou une mise à jour de données. Toute logique métier doit être placée ailleurs, par exemple dans une méthode ou via des modificateurs comme .onAppear() ou .onChange(). Cette séparation garantit un code plus lisible, structuré et optimisé, car SwiftUI ne réévalue que ce qui est nécessaire au bon affichage de l’interface.

Tips

En SwiftUI, les conditions utilisées dans le body d’une vue ne peuvent servir qu’à retourner d’autres vues et non à exécuter du code directement. Ça s’explique par la nature déclarative de SwiftUI : on définit l’état de l’interface utilisateur, et SwiftUI se charge ensuite de gérer son rendu en fonction des changements d’état. Comme le body doit toujours retourner une View, il est impossible d’y exécuter du code indépendant de l’interface, comme un print() ou une mise à jour de données. Toute logique métier doit être placée ailleurs, par exemple dans une méthode ou via des modificateurs comme .onAppear() ou .onChange(). Cette séparation garantit un code plus lisible, structuré et optimisé, car SwiftUI ne réévalue que ce qui est nécessaire au bon affichage de l’interface.