L’objectif de cette ressource est d'apprendre à réaliser une application avec un langage de programmation spécifique (Swift) et un nouvel IDE (XCode).
Le TP s'est déroulé en plusieurs étapes :
D'abord, nous avons dû suivre les 6 premiers cours de Stanford de 2021 CS193p - Developing Apps for iOS . Ils nous ont permis d'apprendre les bases de Swift et de XCode ainsi que de commencer la réalisation de l'application de Memory.
Ensuite, nous avons dû réaliser les tâches du 1er devoir. Elles consistaient à ajouter des fonctionnalités à l'application de Memory comme ajouter un bouton pour lancer une nouvelle partie, créer le concept de thèmes pour les cartes ou afficher une fenêtre popup à la fin de la partie avec le score du joueur.
Puis, nous avons dû suivre les cours 11 et 12 de Stanford de 2021 CS193p - Developing Apps for iOS . Ils nous ont permis d'apprendre à gérer les erreurs, la navigation entre pages et la persistence des données.
Enfin, nous avons dû réaliser les tâches du 2ème devoir. Elles consistaient à ajouter des fonctionnalités à l'application de Memory comme comptabiliser le temps d'une partie ou ajouter un écran de menu pour choisir entre jouer et voir l'écran de classement des scores.
Devoir à rendre 1
Il contient les explications du code que j'ai ajouté, comment et pourquoi je l'ai ajouté. Il contient également des captures d'écrans de l'application.
Devoir à rendre 2
Il contient les explications du code que j'ai ajouté, comment et pourquoi je l'ai ajouté. Il contient également des captures d'écrans de l'application.
Dépôt GitHub
Il contient le code source de l'application du Memory. La branche devoir1 correspond au devoir à rendre 1 et la branche devoir2 correspond au devoir à rendre 2.
Cette ressource a permis de mettre en œuvre les compétences suivantes :
AC31.01 : Choisir et implémenter les architectures adaptées
et
AC32.03 : Choisir et utiliser des bibliothèques et méthodes dédiées au domaine
d'application.
J'estime que ce TP prouve ma réussite dans cette ressource puisque j'ai réalisé toutes les tâches demandées et que j'ai compris et mis en application les concepts abordés dans les cours de Stanford.
J'ai appris à utiliser un nouvel IDE (XCode) et à programmer avec Swift. J'ai également appris à gérer les erreurs, à naviguer entre les pages et à persistence des données sur un appareil iOS.
En terme d'acquisition de la compétence AC31.01, je pense que j'ai réussi à choisir une architecture adaptée pour l'application de Memory. En effet, j'ai utilisé l'architecture MVVM pour séparer les vues des modèles et les modèles des vues. J'ai également utilisé des ViewModels pour gérer la logique métier de l'application.
En terme d'acquisition de la compétence AC32.03, je pense que j'ai réussi à choisir des bibliothèques et méthodes dédiées. En effet, j'ai utilisé les gestures de Swift pour gérer les interactions avec l'utilisateur, des @Published pour gérer la communication entre les vues et les modèles et FileManager pour persister les données.
La gestion du timer pour comptabiliser le temps d'une partie a été un défi pour moi. J'ai dû comprendre le fonctionnement des timers en Swift et trouver une solution pour les arrêter à la fin d'une partie. J'ai également dû trouver une solution pour afficher le temps à l'écran. J'ai réussi à relever partiellement ce défi en implémentant une solution qui met à jour la valeur du temps uniquement lorsque le joueur a une interaction avec l'écran.