Skip to content

SashaLexor/LocationAndWeather

Repository files navigation

LocationAndWeather

Тестовое задание: Первый экран:

  1. при запуске приложения определить текущее местонахождение.
  2. на экране отобразить: координаты
  3. сделать реверс геокодинг текущих координат и отобразить адрес на экране
  4. запросить текущую погоду в данной точке и отобразить ее на экране

Второй экран:

  1. содержит таблицу с историей всех предыдущих запросов
  2. ячейка показывает дату и время запроса, и местоположение (координаты и город)
  3. при нажатии на ячейку открывается экран с результатами архивного запроса

Опционально: добавить какую то опцию, оптимизацию, функцию или визуальное в приложение от себя. Описать почему это сделано, как это улучшает приложение и как это можно улучшить в будущем. (8 часов)

Караткое описание: При запуске приложения используется CLLocationManager для определения текущих координат. Точность выбрана +/- 100 m, этого достаточно для дальнейшего определения погоды по координатам (в некоторых случаях этой точности достаточно для реверс геокодинга). Для реверс геокодинга использовался CLGeocoder, для более точного определения адреса лучше использовать GMSGeocoder. На первый экран добалена кнопка обновления текущей позиции и погоды. Для получения данных о погоде использовался сервис http://openweathermap.org/. В ответ на запрос к серверу возращался JSON, который в дальнейшем парсится в структуру Weather с помощью JSONSerialization. Функционал запроса данных о погоде вынецен в отдельный клаыы WeatherGetter. После получения координат, реверс геокодинга и получения данных о погоде все необходимые данные отправляются для хранения в CoreData. На 2м экране можно посмотреть всю историю запросов и очистить историю. По тапу на ячейку осуществляется переход на экран с более детализированнй информацией.

Варианты возможного улучшения:

  1. http://openweathermap.org/ отправляет так же коды изображений, поэтому на 1м экране можно заменить текстовое описание погоды на визуальное отображение (фон, картинка или иконка) соответствующее полученному коду.
  2. Можно добавить 3й экран в TabBar для отображения погоды в различных городах. В классе WeatherGetter реалихован метод получения погоды по названию города.

About

test for nyblecraft

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages