Le projet pour la partie iOS du cours MOBDEV, consiste en une application météorologique dans l'objectif C réalisé avec Xcode .
Avec l'application MyWeather , vous pouvez:





L'application est basée sur le modèle MVC : m odel, v iew, c ntroller.
Le modèle est responsable de la définition des données d'application.
Les classes City , CityList et Prévision sont le modèle d'application. J'ai décidé d'utiliser une classe de prévision pour gérer asynchrone la capture des informations météorologiques via l'API Open.Meteo et assurer une utilisation en douceur de l'application pour l'utilisateur.
L'API est utilisée via la sérialisation JSON .
Les vues affichent les données contenues dans le modèle et «capturent» l'interaction de l'utilisateur avec l'application, les contrôleurs sont le cerveau de l'application: ils fournissent le lien entre la vue et le modèle, gérer les entrées utilisateur envoyées par la vue et envoyer des mises à jour au modèle.
L'utilisation d'un contrôleur Uinavigation vous permet de gérer rapidement et intuitivement l'utilisation de plusieurs vues à l'aide de la structure de pile (LIFO Logic).

Il y a 4 contrôleurs de vue:
Cette vue implémente l'enregistrement LocalManager pour dériver l'emplacement actuel de l'utilisateur et enregistre le contrôleur pour écouter les notifications envoyées par la classe de prévision une fois que la demande d'informations météorologiques via l'API a été terminée pour mettre à jour la vue.
Lors du démarrage de la vue (Méthode ' ViewDidloaded '), le contrôleur récupère via le fichier La liste des villes préférées (3 tableaux qui gèrent les noms, la latitude et la longitude), à envoyer via les contrôleurs (si les fichiers n'existent pas, ils sont créés).
Les boutons de la barre de navigation vous permettent de démarrer les Segues pour les contrôleurs de vue respectifs.

Les résultats sont affichés sur un UableTview dynamique avec une section et un nombre de lignes égales au nombre de résultats de recherche. Il y a un écouteur qui capture le clic sur une cellule TableView qui vous permet d'envoyer une notification au myweathertableViewController qui alloue une demande à la prévision pour afficher la météo.
Une fois l'opération terminée, le SearchCityViewController reçoit à son tour une notification pour se faire sortir de la pile NavigationController.
NB : Cette opération d'échange de notification pourrait être remplacée par la mise en œuvre d'un délégué (en définissant un protocole) du ViewController qui a signalé la sélection d'une ville.

Lorsqu'un utilisateur sélectionne une cellule de vue de table, la même procédure expliquée ci-dessus est appliquée pour informer MyWeatherTableViewController pour initialiser l'objet de prévision et faire la transition pour afficher la vue.

Pour créer des annotations, le ViewController reçoit les tableaux de villes préférées enregistrées dans les fichiers et dessine une annotation pour chaque paire de coordonnées de la ville préférée.
Il y a un auditeur sur le contact d'une annotation qui procède à la génération d'une demande météo actuelle dans la ville sélectionnée et la montre à l'utilisateur.
