Экзаменационное задание
Необходимо описать приложения для отображения погоды с сервиса openweathermap.org.
В качестве основы берётся шаблон Master-Detail App из стандартных шаблонов XCode. Приложение должно быть написано с ноля, использование Pod-ов допускается но не готовых библиотек для работы с данным API. Попытки сдачи готовых приложений караются незачётом и большим минусом к будущим пересдачам.
В качестве основного задания необходимо разобрать JSON-представление данных с сервиса. Файл данных прикреплен к данному заданию. Подробную информацию о данных, представленных в JSON-файле можно прочитать по ссылке: https://openweathermap.org/weather-data#5days
В заголовке контроллера должен быть написано название города и страны. В таблице должна быть представлена информация из элемента "list": дата, температура и описание погоды. При нажатии на ячейку должна отображаться подробная информация о погоде на заданную дату: описание, температура, влажность, давление, скорость ветра.
Дополнительно необходимо реализовать работу с сервисом удаленно. При этом необходимо обрабатывать доступность сервера и возможные ошибки в ответе (поле "cod" ответа содержит стандартный код HTTP состояния).
Ссылка для получения данных: https://api.openweathermap.org/data/2.5/forecast?q=Rostov-on-Don,ru&units=metric&appid=77550461caeadccb70e42bba999f38dd (учтите что данные получаются с бесплатного аккаунта, и количество запросов может быть ограничено!)
Регламент начисления баллов за экзамен:
Архитектура приложения | 8 | |
Декомпозиция данных и логики | 4 | |
Использование делегатов | 4 | |
Работа с Storyboard | 8 | |
Использование AutoLayout | 4 | |
Связь объектов с кодом | 4 | |
Работа с UIViewController | 8 | |
Заполнение данными UITableView | 4 | |
Корректная передача данных в другой ViewController | 4 | |
Работа с данными JSON | 8 | |
Корректное декодирование JSON | 4 | |
Использование объектов для хранения данных | 4 | |
Работа с URLSession | 8 | |
Загрузка данных с удаленного сервера | 4 | |
Оповещение пользователя об ошибках | 4 | |
40 |
PS: При выполнении задания стоит сконцентрироваться на принципиальных аспектах архитектуры и функционирования приложения. Визуальный аспект не повлияет на оценку.
- 24 января 2019, 00:22