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
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
- Kotlin programming language
- Jetpack Compose for building the UI
- Navigation component to navigate between composables
- Hilt for dependency injection
- Room for local data storage
- Retrofit for making network requests
- Coroutines for asynchronous programming
- Coil for image loading
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
- Clone this repository:
git clone https://github.com/QasimNawaz/NewsDoCompose.git
- Obtain an API key from TheNewsAPI.
- Add your API key to the
local.properties
file:API_KEY=YOUR_API_KEY_HERE
- 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.