An asynchronous MVVM Android weather application written in Kotlin
weather-app
An asynchronous MVVM Android-application written in Kotlin, using openweathermap’s API.
View here.
General Information
- Thay application is a simple weather-app.
- It receives data from the opentweathermap’s server on requests to its API.
- With the help of my application you can find out the weather for a day or next week in the any city.
Technologies Used
- IDE: IntelliJ IDEA
- Language: Kotlin
- Build system: Gradle
- Architecture: MVVM
- Other instruments:
- Dagger2
- Retrofit2
- AdnroidX
- Kotlin Coroutines
- Glide
- API
Screenshots
1 | 2 | 3 |
---|---|---|
Setup
Enter in IDE’s Terminal:
git clone https://github.com/michigang1/weather-app.git
gradle build
gradle run
Requirments:
-SDK: 32
Dependecies:
implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'com.google.android.material:material:1.7.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
implementation "androidx.fragment:fragment-ktx:1.5.5"
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
// Coroutines
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
// Dagger2
implementation 'com.google.dagger:dagger-android:2.44.2'
implementation 'com.google.dagger:dagger-android-support:2.44.2'
implementation 'com.google.dagger:dagger:2.44.2'
kapt 'com.google.dagger:dagger-compiler:2.44.2'
kapt 'com.google.dagger:dagger-android-processor:2.44.2'
kapt 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0'
// ViewBindingDelegate
implementation 'com.github.kirich1409:viewbindingpropertydelegate:1.5.6'
// Retrofit 2
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'
// Glide
implementation 'com.github.bumptech.glide:glide:4.12.0'
kapt 'com.github.bumptech.glide:compiler:4.12.0'
Project Status
Project is: in progress
Room for Improvement
In progres:
- Displaying weather by current users’s location.
Also offer your ideas in the https://github.com/michigang1/weather-app/discussions
Acknowledgements
- This project was inspired by my lecturer Timur Shemsedinov
Contact
Created by Michael Chirozidi – my telegram – feel free to contact me!