Android News App with Clean Architecture, Jetpack Compose

Android News App with Clean Architecture, Jetpack Compose

Android News App with Clean Architecture, Jetpack Compose, Hilt, and Room Database

This is a sample Android app built using Clean Architecture, Jetpack Compose, Hilt, and Room Database for displaying the latest news from various sources. The app fetches news data using TheNewsAPI and displays it in a modern and intuitive user interface.

Screenshots

Image
Image
Image
Image
Image
Image
Image
Image
Image

Features

  • Fetches latest news from multiple sources using TheNewsAPI
  • Displays news articles in a modern and intuitive UI using Jetpack Compose
  • Supports infinite scrolling and pagination for loading more articles
  • Allows users to search for articles by keyword
  • Provides detailed information about individual articles, including author, date, and description
  • Allows users to save articles for offline reading

Tech Stack

Architecture

The app follows the Clean Architecture principles, which consists of three main layers:

  • Presentation Layer (UI): Contains the Jetpack Compose UI components, ViewModels, and UI-related logic.
  • Domain Layer (Use Cases): Implements the business logic and use cases of the app.
  • Data Layer: Handles data retrieval and storage, including remote API calls and local database operations.

Getting Started

  1. Clone this repository: git clone https://github.com/QasimNawaz/NewsDoCompose.git
  2. Obtain an API key from TheNewsAPI.
  3. Add your API key to the local.properties file: API_KEY=YOUR_API_KEY_HERE
  4. Open the project in Android Studio and run the app.

Contributions

Contributions to the project are welcome! If you find any issues or have suggestions for improvements, please feel free to create a pull request or open an issue.

Credits

This app was built by Qasim Nawaz as a sample project for learning Clean Architecture, Jetpack Compose, Hilt, and Room Database. The app uses data from TheNewsAPI.

GitHub

View Github

Leave a Reply

Your email address will not be published. Required fields are marked *