Skip to content

Latest commit

Β 

History

History
103 lines (71 loc) Β· 2.45 KB

File metadata and controls

103 lines (71 loc) Β· 2.45 KB

πŸ“° Spotlight

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.


✨ Features

  • πŸ” 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

πŸ“Έ Screenshots

(Coming soon β€” UI still evolving)


πŸ§ͺ Tech Stack

Layer Technology
UI Jetpack Compose
DI Hilt
State Kotlin Flow
Networking Retrofit + NewsAPI
Language Kotlin
Architecture MVVM / Clean MVI

πŸ—‚οΈ Project Structure

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

πŸš€ Getting Started

  1. Clone the repo

    git clone https://github.com/yourusername/spotlight.git
  2. Get your NewsAPI key from newsapi.org

  3. Add your API key to local.properties

    NEWS_API_KEY=your_api_key_here
    
  4. Build and run the app

    ./gradlew installDebug

🧠 Roadmap

  • Search functionality
  • Category filters (e.g. Tech, Sports, Health)
  • Bookmarking articles
  • Offline caching
  • Dark mode support
  • Unit + UI tests

🀝 Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you’d like to change.


πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ™Œ Acknowledgments

  • NewsAPI.org for the data
  • Jetpack Compose team for pushing UI boundaries