Приложение позволяет просматривать информацию о погоде в выбранных географических локациях:
- текущая погода;
- погода на день с интервалом 3 часа;
- погода на ближайшие 16 дней.
В дизайне использована коллекция иконок от Pascal Vleugels https://dribbble.com/pasxal
Поддерживаются темная и светлая темы, а также выполнена локализация (русский и английский языки).
Для получения данных применяется API openweathermap.com Загруженные данные кэшируется в локальных файлах с использованием FileManager. Периодичность обновления кэша - 30 минут.
Основной экран выполнен на UIPageViewController, позволяющем листать локации. Независимо от числа локаций приложение использует только три страницы контроллера, обновляемые при пролистывании - предыдущую, текущую и следующую.
На каждой странице отображаются:
- заголовок с названием локации;
- информация о текущей погоде;
- горизонтально прокручиваемая коллекция с почасовым прогнозом погоды на день;
- вертикально прокручиваемая коллекция с прогнозом погоды на 16 дней.
При пустом списке локаций отображается заглушка, нажатие на которую вызывает диалог добавления локаций.
В левом верхнем углу основного экрана выводится кнопка меню со следующими функциями:
- добавление локации;
- удаление локации;
- редактирование списка локаций;
- настройки приложения.
Экран позволяет осуществлять поиск локаций по тексту, набранному в строке поиска.
Экран позволяет сортировать список локаций и удалять локации из списка.
Экран позволяет выбрать единицы измерения и указать пользовательский ключ API.
- Скопируйте репозиторий
- Откройте openweathermap.xcodeproj в Xcode
- На вкладке Target > Signing & Capabilities tab
- укажите свой аккаунт разработчика в поле
Team
- замените
Bundle identifier
- укажите свой аккаунт разработчика в поле
- Выберите симулятор или реальное устройство
- Запустите приложение
- XCode 14.0+
- iOS 13.0+
- iPhone (реальное устройство или симулятор)