Skip to content

sundramsinghdev007/NewsApp-MVVM-Architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NewsApp - MVVM Architecture

A modern Android News Application built using Jetpack Compose, MVVM Architecture, and Dagger dependency injection. This project demonstrates best practices in Android development, including clean architecture, reactive UI, and robust networking.

🚀 Features

  • Top Headlines: Stay updated with the latest news from around the world.
  • News Sources: Browse news from various reputable publishers.
  • Search: Search for specific news articles or topics.
  • Filters: Filter news based on Country and Language.
  • Offline Support: Basic logging and error handling for a seamless experience.
  • Modern UI: Fully built with Jetpack Compose following Material 3 design guidelines.

🛠 Tech Stack & Libraries

🏗 Project Structure

com.sundramsingh.newsapp
├── data                # Data layer (API, Models, Repositories)
│   ├── api             # Retrofit interfaces
│   ├── model           # Data classes for API responses
│   └── repository      # Single source of truth for data
├── di                  # Dependency Injection (Modules, Components)
├── ui                  # UI layer (Compose Screens & ViewModels)
│   ├── topheadline     # Top headlines screen
│   ├── search          # News search functionality
│   ├── newssources     # News sources screen
│   ├── country         # Country selection
│   ├── language        # Language selection
│   └── theme           # Material 3 Theme definitions
├── common              # Shared utilities and constants
└── NewsAppApplication  # Application class

⚙️ Setup & Installation

  1. Clone the repository:
    git clone https://github.com/sundramsingh/NewsApp-MVVM-Architecture.git
  2. Open in Android Studio:
    • File > Open > Select the project folder.
  3. API Key:
    • Obtain an API key from NewsAPI.org.
    • (Optional) Add your API key to the project (e.g., in a local.properties or constant file as per your implementation).
  4. Build & Run:
    • Sync Gradle and run the app on an emulator or physical device.

🧪 Testing

The project includes unit and UI tests:

  • Unit Tests: Located in app/src/test.
  • Instrumentation Tests: Located in app/src/androidTest (including Compose UI tests).

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages