Spotlight is a modern news app built with Jetpack Compose and Kotlin. It fetches real-time headlines from NewsAPI.org and presents them in a clean, responsive UI. The app is designed with scalability and maintainability in mind, using clean architecture principles and reactive state management.
β οΈ Work in progress β currently includes Home and Detail screens.
- π Browse latest headlines from NewsAPI
- π§ Navigate from Home screen to detailed article view
- π§± Built with Jetpack Compose for declarative UI
- βοΈ Dependency Injection via Hilt
- π Reactive data flow using Kotlin Flow
- π¦ Modular architecture with clear separation of concerns
(Coming soon β UI still evolving)
| Layer | Technology |
|---|---|
| UI | Jetpack Compose |
| DI | Hilt |
| State | Kotlin Flow |
| Networking | Retrofit + NewsAPI |
| Language | Kotlin |
| Architecture | MVVM / Clean MVI |
spotlight/
βββ data/ # API models, DTOs, repository
βββ domain/ # Business models, use cases
βββ ui/ # Compose screens and components
β βββ home/ # Home screen
β βββ detail/ # Detail screen
βββ di/ # Hilt modules
βββ utils/ # Mappers, extensions, helpers
-
Clone the repo
git clone https://github.com/yourusername/spotlight.git
-
Get your NewsAPI key from newsapi.org
-
Add your API key to
local.propertiesNEWS_API_KEY=your_api_key_here -
Build and run the app
./gradlew installDebug
- Search functionality
- Category filters (e.g. Tech, Sports, Health)
- Bookmarking articles
- Offline caching
- Dark mode support
- Unit + UI tests
Pull requests are welcome! For major changes, please open an issue first to discuss what youβd like to change.
This project is licensed under the MIT License β see the LICENSE file for details.
- NewsAPI.org for the data
- Jetpack Compose team for pushing UI boundaries