Author: Yelnur Zhexenov
A simple Weather app
This project was written by solid principles of Clean Architecture and divided into three layers:
-
Data layer contains Caching, APIs, Data objects (Request/Response object), and the repository implementation.
-
Domain layer contains UseCases, Domain Objects/Models (Kotlin Data Classes), and Repository Interfaces.
-
Presentation layer contains UI, View Objects, Android components, etc. This layer implemented MVVM and used Koin for dependency injection.
- Jetpack Compose - is Android’s recommended modern toolkit for building native UI
- Retrofit - A type-safe HTTP client for Android and Java
- Okhttp - An HTTP client for Android, Kotlin, and Java
- Kotlin Coroutines - A concurrency design pattern
- Navigation Component - A component that helps to navigate between fragments and activities
- Koin - a pragmatic lightweight dependency injection framework for Kotlin
Used AccuWeather Api to fetch datas:
- Geoposition Search by Latitude and Longitude to get the locationKey.
- Get 12 Hours of Hourly Forecasts by locationKey.
- Get 5 Days of Daily Forecasts by locationKey.
To use this project you need to create account and get your own Api Key.
API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
https://developer.accuweather.com/accuweather-forecast-api/apis
This project is licensed under the MIT License - see the LICENSE file for details