/OpenWeatherMap

open weather map public api .

Primary LanguageKotlin

OpenWeatherMap App

Welcome to the OpenWeatherMap App! This Android application is designed to fetch and display weather data from the OpenWeatherMap API, showcasing modern Android development practices, including clean architecture and the MVVM design pattern.

Features

  • Clean Architecture: Promotes separation of concerns, making it easier to manage and scale the application. Learn more.

  • MVVM Pattern: Utilizes ViewModels to manage UI-related data in a lifecycle-conscious way, facilitating data binding and reducing UI logic in Activities and Fragments. Learn more.

  • Retrofit: Implements Retrofit to handle HTTP requests for weather data, ensuring a smooth and efficient data retrieval process. Learn more.

  • Room Database: Uses Room for local database management, enabling offline access to weather data and improving user experience. Learn more.

  • Mappers: Implements mappers to convert data models between the API response and the local database format, ensuring a clean separation of concerns and data consistency.

  • ViewBinding: Utilizes ViewBinding to simplify UI interactions and eliminate the need for findViewById, leading to more readable and safer code. Learn more.

  • Modular Structure: The app is organized into modules, enhancing maintainability and allowing for easier feature additions and testing. Learn more about modular architecture.

  • Union Architecture: Integrates various architectural best practices to create a flexible and scalable structure. Learn more.

  • SOLID Principles: Adheres to SOLID principles to ensure code is easy to understand, maintain, and extend. Learn more.

  • Unit Testing: Features comprehensive unit tests to validate business logic and ensure reliability. Learn more.

  • UI Testing: Implements UI tests to verify user interactions and ensure a high-quality user experience. Learn more.

  • Single Activity Architecture: Utilizes a single Activity for the entire app, simplifying navigation and lifecycle management. Learn more.

  • Hilt Dependency Injection: Leverages Hilt for dependency injection, simplifying code and improving testability. Learn more.

image

Requirements

  • Android Studio: Make sure you have the latest version installed.
  • Android SDK: Ensure you have the required SDK packages.
  • Gradle: The project uses Gradle for build management.

Preview app

VID-20240928-WA0039.1.mp4

Installation

  1. Clone the repository:

    git clone https://github.com/mohamedmzd0/OpenWeatherMap.git