WeatherApp is an Android application for retrieving and displaying current weather and forecasts based on data from the OpenWeather API. The project demonstrates the use of the MVVM (Model-View-ViewModel) architectural pattern, Clean Architecture principles, and a multi-module architecture for scalability and flexibility.
- Display current weather for the selected cities.
- Weather forecast for several days ahead.
- Search and add cities (from Firebase remote config) to track weather.
- Automatic data update from the OpenWeather API server.
- Notifications
- Programming Language: Kotlin
- Architecture: MVVM, Clean Architecture
- Modularity: Division into modules for better code readability and testability
- API: OpenWeather API, integration via Retrofit
- Asynchronous Programming: Coroutines, Flow
- Libraries: Hilt for dependency injection, LiveData, ViewModel
The project is divided into several modules:
app
: the main application module containing the main UI and navigation.data
: a module for data handling.feature
: a module for UI functionalitescommon
: a module for common utilities and helper classes.
- Ignat Mustafaev — project development and maintenance.
- Ignat Mustafaev — help with project development.
This project is licensed under the MIT License — see the LICENSE file for details.
WeatherApp — это Android-приложение для получения и отображения текущей погоды и прогноза на основе данных от OpenWeather API. Проект демонстрирует использование архитектурного паттерна MVVM (Model-View-ViewModel), принципов Чистой Архитектуры и многомодульной архитектуры для масштабируемости и гибкости.
- Отображение текущей погоды для выбранного города.
- Уведомления
- Поиск и добавление городов для отслеживания погоды (из Firebase Remote Config).
- Автоматическое обновление данных с сервера OpenWeather API.
- Язык программирования: Kotlin
- Архитектура: MVVM, Чистая Архитектура
- Многомодульность: разделение на модули для улучшения читаемости и тестируемости кода
- API: OpenWeather API, интеграция через Retrofit
- Асинхронное программирование: Coroutines, Flow
- Библиотеки: Hilt для внедрения зависимостей, LiveData, ViewModel, Room
Проект разделён на несколько модулей:
app
: главный модуль приложения, содержащий основной UI и навигацию.feature
: модуль, содержащий UI специфичные функциональные требования.data
: модуль для работы с данными, включая репозитории и источники данных (API, базы данных и т.д.).common
: модуль для общих утилит и вспомогательных классов.
- Игнат Мустафев — разработка и поддержка проекта.
- Анжелика Венгржиновская — помощь в разработке.
Этот проект лицензируется на условиях MIT License — подробности в файле LICENSE.