Skip to content

Repository files navigation

NewsApp - Modern Android News Client

Kotlin Jetpack Compose

NewsApp is a Android application designed to provide users with a seamless news-reading experience. Built using the latest Android development practices, the app emphasizes high performance, offline capability, and a clean, intuitive UI.

🚀 Features

  • Real-time News: Fetches the latest headlines globally using the News API via Retrofit.
  • Offline Bookmarking: Save articles to a local Room database to read later without an internet connection.
  • Interactive Onboarding: A smooth first-time user experience powered by DataStore to track app entry status.
  • Webview Integration: View full-length articles directly within the app or share them with others.
  • Shimmer Loading: Polished UI feedback using shimmer effects during data fetching.

🛠 Tech Stack & Tools

  • UI: Jetpack Compose (100% Declarative UI).
  • Architecture: MVVM (Model-View-ViewModel) + Clean Architecture (Data, Domain, and Presentation layers).
  • Dependency Injection: Dagger Hilt for modular and testable code.
  • Networking: Retrofit & Gson for API communication.
  • Local Persistence: Room Database for caching and bookmarks.
  • Image Loading: Coil for optimized image rendering.
  • Pagination: Paging 3 for efficient data loading in long lists.
  • Navigation: Compose Navigation for a single-activity architecture.
  • Local Storage: Preferences DataStore for user settings.

🏗 Architecture

The project follows Clean Architecture patterns to ensure the code is scalable and maintainable:

  • Data Layer: Handles API implementations, Room database configurations, and Repository implementations.
  • Domain Layer: Contains the "Truth" of the app—Models, Repository interfaces, and Use Cases (Business Logic).
  • Presentation Layer: State-driven UI components (Composables) and ViewModels that communicate with Use Cases.

About

Built this news app using Kotlin and Jetpack Compose. It uses Retrofit to get news summaries and lets you search for news. Articles can be shared and viewed in a browser, and a bookmark feature saves articles offline using Room. "Land of Coding" channel on YouTube was used as a reference.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages