TinderMovie (Exo)
TinderMovie (Exo)
Consigne
Dans cet exercice, on va travailler sur les notions vues précédemment, original hein 😁 donc les gestures et le GeometryReader. L’objectif est de créer une carte de film que l’utilisateur peut faire glisser vers la droite pour “liker” un film, ou vers la gauche pour le passer, à la tinder. Si le geste est assez large (ex : >100 points), le film est retiré de la pile, sinon, la carte revient à sa position avec une animation fluide. La carte doit réagir visuellement au glissement (légère rotation, fond coloré vert ou rouge avec une opacité variable selon la distance). À chaque action, la liste de films se met à jour, et un message s’affiche lorsqu’il n’en reste plus.
Les points clés à maîtriser sont : l’utilisation d’un DragGesture avec un offset de type CGSize, l’animation du retour via .interactiveSpring(), la rotation de la carte liée à l’offset, la gestion des états avec @State et @Binding, et la mise à jour correcte des tableaux (sans modifier directement une liste dans un ForEach). Utilise GeometryReader si tu veux adapter dynamiquement les effets visuels à la largeur de l’écran. Tu es entièrement libre sur l’organisation de ton code, structure, noms de fichiers ou architecture.
Maquette
Tips
Cet exercice n’est pas évident au premier abord, pourtant il n’est pas si compliqué.
L’astuce pour rendre tout ça fonctionnel, c’est de bien jouer sur le déplacement de tes composants via les gestures, de bien récupérer le positionnement en temps réel des composants, et enfin d’utiliser GeometryReader pour bien analyser où tu te trouves dans ton écran et conditionner tout ça en fonction des positions.
Prends le temps d’avancer pas à pas en testant régulièrement ton code.
Comment on mesure la mémoire en informatique ?
Note
Dans le cours précédent, je t’ai rapidement montré ce qu’est le binaire, le langage de base de l’ordinateur. Comprendre comment il est structuré permet de mieux saisir comment est gérée la mémoire en informatique. Que ce soit une simple chaîne de caractères, une image ou même un logiciel complet, tout ce que tu manipules prend de la place en mémoire, et cette place est mesurée à l’aide d’unités bien précises.
Pour commencer, rappelle-toi que le système binaire repose sur deux états, une impulsion électrique active (1) ou inactive (0). Ces deux états forment ce qu’on appelle un bit. Et un groupe de 8 bits forme ce qu’on appelle un octet (ou byte en anglais). Par exemple, la lettre « p » est représentée par 01010000 en binaire, ce qui correspond à 8 bits, donc à un octet.
Ensuite, il est essentiel de connaître l’échelle des unités de mémoire, car elles sont omniprésentes dans notre métier de développeur. Voici les correspondances classiques :
- 1 KiloOctet (Ko) = 1 024 octets
- 1 MégaOctet (Mo) = 1 024 KiloOctets (Ko)
- 1 GigaOctet (Go) = 1 024 MégaOctets (Mo)
- 1 TéraOctet (To) = 1 024 GigaOctets (Go)
- 1 PétaOctet (Po) = 1 024 TéraOctets (To)
Je prends le temps de te détailler ces valeurs car, en formation, je me rends compte que beaucoup d’apprenants n’ont pas vraiment conscience de ce que représentent concrètement les tailles de fichiers ou de données qu’on manipule. Pourtant, c’est un point fondamental.
En tant que développeur ou développeuse, tu devras toujours chercher à rendre ton code et ton application les plus performants possibles, et donc les plus légers possible. Même si aujourd’hui les machines sont très puissantes et disposent de beaucoup de mémoire, cette contrainte a longtemps été cruciale dans l’histoire de l’informatique. Et elle l’est encore, surtout sur mobile.
Par exemple, certains langages comme le C demandent au développeur d’allouer manuellement la mémoire pour chaque variable. En Swift, c’est fait automatiquement, ce qui te simplifie la vie. Mais attention, tu restes entièrement responsable de la gestion de certains éléments, les images, les vidéos, les fichiers audio, ou tout autre contenu que tu ajoutes à ton app.
→ Une image trop lourde ? Ton app rame.
→ Une vidéo mal compressée ? Elle pèse 300 Mo sans raison.
→ Des dizaines de photos en fond d’écran ? Ta RAM explose.
Donc retiens bien : même si le système te mâche le travail, tu dois rester vigilant sur le poids et la taille des assets que tu intègres. C’est une habitude pro à prendre dès maintenant.
Comment on mesure la mémoire en informatique ?
Note
Dans le cours précédent, je t’ai rapidement montré ce qu’est le binaire, le langage de base de l’ordinateur. Comprendre comment il est structuré permet de mieux saisir comment est gérée la mémoire en informatique. Que ce soit une simple chaîne de caractères, une image ou même un logiciel complet, tout ce que tu manipules prend de la place en mémoire, et cette place est mesurée à l’aide d’unités bien précises.
Pour commencer, rappelle-toi que le système binaire repose sur deux états, une impulsion électrique active (1) ou inactive (0). Ces deux états forment ce qu’on appelle un bit. Et un groupe de 8 bits forme ce qu’on appelle un octet (ou byte en anglais). Par exemple, la lettre « p » est représentée par 01010000 en binaire, ce qui correspond à 8 bits, donc à un octet.
Ensuite, il est essentiel de connaître l’échelle des unités de mémoire, car elles sont omniprésentes dans notre métier de développeur. Voici les correspondances classiques :
- 1 KiloOctet (Ko) = 1 024 octets
- 1 MégaOctet (Mo) = 1 024 KiloOctets (Ko)
- 1 GigaOctet (Go) = 1 024 MégaOctets (Mo)
- 1 TéraOctet (To) = 1 024 GigaOctets (Go)
- 1 PétaOctet (Po) = 1 024 TéraOctets (To)
Je prends le temps de te détailler ces valeurs car, en formation, je me rends compte que beaucoup d’apprenants n’ont pas vraiment conscience de ce que représentent concrètement les tailles de fichiers ou de données qu’on manipule. Pourtant, c’est un point fondamental.
En tant que développeur ou développeuse, tu devras toujours chercher à rendre ton code et ton application les plus performants possibles, et donc les plus légers possible. Même si aujourd’hui les machines sont très puissantes et disposent de beaucoup de mémoire, cette contrainte a longtemps été cruciale dans l’histoire de l’informatique. Et elle l’est encore, surtout sur mobile.
Par exemple, certains langages comme le C demandent au développeur d’allouer manuellement la mémoire pour chaque variable. En Swift, c’est fait automatiquement, ce qui te simplifie la vie. Mais attention, tu restes entièrement responsable de la gestion de certains éléments, les images, les vidéos, les fichiers audio, ou tout autre contenu que tu ajoutes à ton app.
→ Une image trop lourde ? Ton app rame.
→ Une vidéo mal compressée ? Elle pèse 300 Mo sans raison.
→ Des dizaines de photos en fond d’écran ? Ta RAM explose.
Donc retiens bien : même si le système te mâche le travail, tu dois rester vigilant sur le poids et la taille des assets que tu intègres. C’est une habitude pro à prendre dès maintenant.