Skip to content

adityarai004/MVVM-Mausam-Weather-App

Repository files navigation

Mausam - The Weather App

Mausam is a weather app that provides current weather information, hourly forecast, and a 3-day weather forecast for any location worldwide. The app follows the MVVM (Model-View-ViewModel) architectural pattern, ensuring a separation of concerns and promoting a clean and maintainable codebase.

Features

  • Display current weather information including temperature, and condition.
  • Hourly forecast for the next 24 hours with temperature and condition.
  • 3-day weather forecast with high and low temperatures.
  • Air quality information including pollutants and air quality index (AQI).
  • Astronomical data such as sunrise and sunset times, moonrise, and moonset.
  • Metric and Imperial unit support for temperature and wind speed.

Technologies and Libraries Used

  • Kotlin - the programming language used for the app development.
  • MVVM - architectural pattern for separating concerns and promoting maintainability.
  • Retrofit - networking library for making API requests.
  • OkHttp - HTTP client for network interactions.
  • Gson - library for parsing JSON responses.
  • RecyclerView - displaying lists of data efficiently.
  • LiveData - lifecycle-aware data holder for observing data changes.
  • ViewModel - component responsible for managing UI-related data.
  • PreferenceFragmentCompat - for implementing the settings/preferences screen.
  • BottomNavigationView - providing the bottom navigation for easy navigation between screens.

Screenshots

Mausam1 Mausam2

Mausam3 Mausam4

Getting Started

To run the app on your local machine, follow these steps:

  1. Clone the repository: git clone https://github.com/adityarai004/mausam_weather_app.git

  2. Open the project in Android Studio.

  3. Build and run the app on your preferred device or emulator.

Contributing

Contributions are welcome! If you find any bugs or have suggestions for improvements, please open an issue or submit a pull request.

Releases

No releases published

Packages

No packages published

Languages