A modern Android application built with Kotlin and Jetpack Compose, providing live news articles from NewsAPI.org
![]() HomeScreen Light |
![]() DetailsScreen Light |
![]() HomeScreen Dark |
![]() DetailsScreen Dark |
📦 First Stable Release: v1.0
To set up the project locally, follow these steps:
Clone the repository:
git clone https://github.com/chrysophilist/NewsApp.git
Open an existing project and navigate to the cloned repository folder.File → Sync Project with Gradle Files).local.properties in the project root (if not present).NEWS_API_KEY=your_api_key_here
Run in Android Studio to build and deploy the app.NewsApp/
├── app/
│ ├── manifests/
│ │ └── AndroidManifest.xml # App manifest
│ ├── java/com/prince/newsapp/
│ │ ├── NewsApp.kt # Application class (Hilt Base app)
│ │ ├── MainActivity.kt # Launch activity
│ │ ├── di/ # Dependency Injection (Hilt modules)
│ │ │ └── Modules.kt
│ │ ├── models/ # Data classes for API responses
│ │ │ ├── Article.kt
│ │ │ ├── NewsResponse.kt
│ │ │ └── Source.kt
│ │ ├── navigation/ # Compose navigation components
│ │ │ ├── NewsAppRoute.kt
│ │ │ └── NewsNavApp.kt
│ │ ├── network/ # API service interfaces
│ │ │ └── NewsApiService.kt
│ │ ├── repo/ # Repository layer
│ │ │ └── NewsRepository.kt
│ │ ├── ui/
│ │ │ ├── components/ # Reusable UI components
│ │ │ ├── views/ # App screens (Home, Details)
│ │ │ └── theme/ # Theme, colors, typography
│ │ │ ├── Color.kt
│ │ │ ├── Theme.kt
│ │ │ └── Type.kt
│ │ └── viewModels/ # ViewModels & UiStates
│ │ ├── NewsViewModel.kt
│ │ ├── NewsUiState.kt
│ │ ├── NewsDetailsViewModel.kt
│ │ └── NewsDetailsUiState.kt
├── res/ # Resources
├── build.gradle.kts # Module-level Gradle build script
└── settings.gradle.kts # Project settings
This project is licensed under the MIT License. See LICENSE for details.
build.gradle or Local.properties).For questions or feedback, reach out to: