OpenWeatherApp

Общая постановка:

создать приложение для вывода актуального прогноза погоды В качестве источника данных использовать веб-сервис http://openweathermap.org (id аккаунта должно быть зашито в приложении) Предусмотреть возможность добавления произвольного города. При первом запуске приложение должно определять город по геоданным на устройстве. Приложение должно иметь возможность работы оффлайн (отображение последних данных).

Требования:

Поддерживаемые версии платформ: данное приложение должно работать на Android версии 2.2 (API 8) и выше. На всех версиях ОС интерфейс должен выглядеть одинаково.

Основной экран

В Action Bar располагается поиск, который позволяет найти и добавить город к списку уже существующих (добавленных). Результаты должны выводиться в выпадающем списке (по аналогии с Google Play, историю поиска делать не обязательно) Далее идет список добавленных городов, выбранных для отображения прогноза погоды. Каждая строка списка должна содержать в себе следующую информацию: страна город дата и время последнего обновления температуру (в т.ч. максимальную и минимальную) облачность скорость ветра остальное по желанию При нажатии на погоду происходит открытие экрана истории погоды выбранного города. При долгом нажатии, должно выводиться диалоговое окно с предложением удалить выбранный город из списка. При первом запуске система пытается определить первый город автоматически, используя GPS. Во время этой операции пользователю выводится диалог с просьбой подождать. Если не удалось вычислить координаты в течении минуты, пользователю предлагается воспользоваться поиском вручну. Диалог ожидания можно отвенить, в этом случае пользователь должен произвести поиск города вручную.

Процесс обновления

Обновление погоды должно происходить двумя способами: На главном экране путем протягивания списка выбранных городов вниз (аналогично как в клиенте Gmail на Android 5.0+: прокрутка вниз списка до того момента, пока не появится значок загрузки) По таймеру, устанавливаемому в настройках.

Экран настроек

Должна быть реализована настройка следующих параметров: Основной город (выводится первым в списке, выбирается из уже добавленных) Настройка периодичности обновления (вручную, раз в час, ежедневно) Настройка единиц измерения температуры воздуха

Экран истории погоды

Отображает список, содержащий дату, и основные погодные характеристики, так же в скобках необходимо указать на сколько текущие данные изменились относительно предыдущего значения. Например: сегодня температура воздуха +5 C, предыдущее значение было известно позавчера и равнялось +3 С, значит на сегодня должно отображаться +5 C (+2). Порядок отображения - сверху наиболее актуальные данные. История ведется по мере получения данных с сервера. Если последнее обновление было 3 дня назад, то погода на сегодня будет выводиться та, которая была 3 дня назад(для этого в приложении выводится дата последнего обновления). Разница соответственно будет выводиться между двумя последними записями (между 3 и 4 днем)