Приложение для просмотра текущей погоды и прогноза на несколько дней.
- Jetpack Compose - современный UI-фреймворк для Android
- ViewModel - хранение и управление UI-состоянием
- Coroutines/Flow - асинхронные операции и реактивные потоки
- Retrofit - работа с сетевыми запросами
- Room - локальное кэширование данных
- Hilt - dependency injection
- Coil - загрузка изображений (погодных иконок)
- Material 3 - современный дизайн-система
Принята многослойная архитектура:
app/
├── ui/ # Presentation Layer (Compose + ViewModel)
├── domain/ # Business Logic (UseCases, Models)
└── data/ # Data Layer (Repository impl, API, DB)
- Экран погоды города, выбранного по умолчанию:
- Отображает погоду города по умолчанию.
- В случае, когда город не выбран отображает список городов (для того чтобы поменять город по умолчанию необходимо нажать на текст города)
- Экран списка городов:
- Отображать список городов (источник данных: хардкод/«in-memory» реализация Room).
- По клику на город открывать экран с детальной информацией о погоде.
- Экран погоды: Отображает:
- Название города.
- Текущую температуру, иконку погоды, описание (ясно, облачно и т. д.).
- Скорость ветра, влажность.
- Прогноз на 3–5 дней (дата, температура, иконка).
- Кнопка «Я тут» (сделать городом по умолчанию)
- Работа с API:
- Использовано открытое API погоды (https://www.weatherapi.com).
- Загружает данные в формате JSON и парсит их (Retrofit + Gson/).
- Кэширование данных:
- Реализовать простой кэш, чтобы при отсутствии интернета показывались последние загруженные данные.
- Дополнительно:
- Pull-to-refresh для обновления данных.
- Возможность добавлять/удалять города из списка.