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.
- 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.
- 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.
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.