Skip to content

EsraaAkram/WeatherCleanArchApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CLEAN ARCH (MVVM ANDROID APP):

Clean Architecture by Uncle Bob android app to View current weather for a specific location

-This project follows Clean Architecture principles, offering a modular, scalable, and testable codebase. It demonstrates how to create an Android application using modern development practices while focusing on separation of concerns and maintainability.

https://developer.android.com/topic/architecture

Architecture Overview:

This application follows the Clean Architecture pattern. The architecture layers include:

-Presentation Layer: Contains the UI and ViewModels.

-Domain Layer: Handles business logic and use cases.

-Data Layer: Manages data sources (e.g., APIs, databases).

Technologies and Tools:

-Kotlin: The primary programming language, chosen for its conciseness, expressiveness, and safety.

-Jetpack Compose: Declarative UI toolkit for building modern Android UIs.

-Hilt: Simplifies dependency injection for Android apps.

-Kotlin Coroutines: For asynchronous programming and thread management.

-Flow: A reactive data stream library for handling real-time updates in the app.

-Retrofit: A networking library for seamless API communication.

-Coil: A lightweight image-loading library for efficient and fast image rendering.

App Design Goals:

The app has been designed with the following objectives:

-Performance: Ensure smooth and responsive interactions.

-Readability: Write code that is clean, consistent, and easy to understand.

-Maintainability: Make it simple to add new features or fix bugs.

-Scalability: Enable growth without significant refactoring.

-Simplicity: Keep the user experience and codebase straightforward.

API Integration

-The app utilizes the Weather API for retrieving real-time weather data. This API provides endpoints for current conditions, hourly forecasts, and extended daily forecasts.

Layers and Modules

The app is divided into multiple modules to enhance modularity:

-UI Module: Manages the presentation logic, including Jetpack Compose components.
-Domain Module: Contains the use cases and business logic.
-Data Module: Handles network requests using Retrofit .

Setup and Build

1-Clone the repository.
2-Open the project in Android Studio.
3-Sync Gradle files to download dependencies.
4-Obtain a Weather API key from Weather API.
5-Add the API key to your local properties or as an environment variable.

6-Build and run the app.

Contribution

Contributions are welcome! Feel free to open issues or submit pull requests to enhance the project.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages