Проект для iOS часть курса MOBDEV, состоит из погодного приложения в объективном C, сделанном с XCODE .
С приложением MyWeather вы можете:





Приложение основано на модели MVC : M Odel, V Iew, C Ontroller.
Модель отвечает за определение данных приложения.
Классы города , списка города и прогнозов являются моделью применения. Я решил использовать класс прогноза для асинхронного управления информацией о погоде через API Open.Meteo и обеспечить плавное использование приложения для пользователя.
API используется с помощью сериализации JSON .
В представлениях отображаются данные, содержащиеся в модели, и «захват» взаимодействие пользователя с приложением, контроллеры являются мозгом приложения: они предоставляют связь между представлением и моделью, управляют пользовательскими входами, отправленными представлением, и отправляют любые обновления в модель.
Использование контроллера Uinavigation позволяет быстро и интуитивно управлять использованием нескольких представлений, используя структуру стека (Lifo Logic).

Есть 4 контроллера просмотра:
Эта точка зрения реализует запись LocationManager , чтобы вывести текущее местоположение пользователя и записывает контроллер для прослушивания уведомлений, отправленных классом прогноза после того, как запрос на информацию о погоде через API будет завершен для обновления представления.
При запуске представления (метод « ViewDidducted ») контроллер извлекает через файл Список любимых городов (3 массива, которые обрабатывают имена, широта и долгота), которые будут отправлены через контроллеры (если файлы не существуют, они создаются).
Кнопки на панели навигации позволяют запустить SEGUS для соответствующих контроллеров представления.

Результаты отображаются на динамическом UitableView с разделом и количеством строк, равных количеству результатов поиска. Существует слушатель, который фиксирует щелчок на ячейке TableView, которая позволяет отправлять уведомление MyWeathertableViewController, которая выделяет запрос на прогноз, чтобы показать погоду.
После завершения операции, SearchCityViewController, в свою очередь, получает уведомление, которое выходит из стека NavigationController.
NB : Эта операция обмена уведомлениями может быть заменена путем реализации делегата (путем определения протокола) видоконтроллера, который сигнализировал о выборе города.

Когда пользователь выбирает ячейку для представления таблицы, применяется та же процедура, описанная выше, чтобы уведомлять MyWeathertableViewController для инициализации объекта прогноза и проведения перехода, чтобы показать представление.

Чтобы создать аннотации, ViewController получает массивы любимых городов, сохраненные в файлах, и рисует аннотацию для каждой пары координат любимого города.
Существует слушатель на прикосновении аннотации, которая продолжается с генерацией текущего дневного запроса о погоде в выбранном городе и показывает его пользователю.
