This Android project, built using Kotlin and the OpenWeather API , provides users with detailed weather information for a selected city. It displays current weather conditions, pollution levels, and a 5-day weather forecast. The app aims to offer a comprehensive view of weather and air quality in a simple interface.
w3.webm
- MVVM Architecture
- Kotlin Coroutines
- Room Database
- Kotlin Flow
- LiveData
- Dynamic Query
- Single activity pattern
- REST API
- Safe Args
- Kotlin Parcelize
- Base Activity ,Fragment
- Dependency injection
Kotlin - First class and official programming language for Android development.
Room - Save data in a local database using Room.
Font Calligraphy - View Inflation you can intercept.
Retrofit + OkHttp - RESTful API and networking client.
Hilt - Dependency injection.
ViewBinding - View binding is a feature that allows you to more easily write code that interacts with views.
Android Architecture Components - A collections of libraries that help you design robust, testable, and maintainable apps.
ViewModel - UI related data holder, lifecycle aware.
Navigation component - Fragment routing handler.
Coroutines - Concurrency design pattern for asynchronous programming.
Flow - Stream of value that returns from suspend function.
Coil - Image loading.
DynamicSize - New units of measure for support all of screen devices.
-
View: The purpose of this layer is to inform the ViewModel about the user’s action. This layer observes the ViewModel and does not contain any kind of application logic.
-
ViewModel: It exposes those data streams which are relevant to the View. Moreover, it serves as a link between the Model and the View.
-
Model: This layer is responsible for the abstraction of the data sources. Model and ViewModel work together to get and save the data.
Have a project? DM me at
Special thanks to Mr Mohammad Nouri for providing the course that helped me.