NewsApp is an Android application that allows users to read news articles.
- Supports Android 13 (API 33) to Android 7.0 (API 24).
- MVVM Multimodule architecture using Android Views. (Without Jetpack Compose)
- Offline persist data using Room database.
- Pagination using Jetpack Paging 3.
- Multilingual support (English - French).
- Multi-device support (Phone - Tablet).
- Dedicated tablet layout for more detailed news information (News Description).
- Portrait-Landscape support.
- Espresso UI tests.
- JUnit Tests using MockK.
- Dynamic Filter support based on API response.
The application uses the following major dependencies:
- AndroidX libraries for core functionality and UI components.
- Dagger Hilt for dependency injection.
- Retrofit for networking and API requests.
- Moshi for JSON deserialization.
- Coil for image loading.
- Navigation Compose for handling app navigation.
- LeakCanary for memory leak detection.
- Paging 3 for smooth pagination of news articles.
- MockK and JUnit for unit testing.
- Room for local database storage.
- Kotlin Flow for reactive stream processing.
The NewsApp project utilizes the following Jetpack components:
- AndroidX Core - Core functionality for AndroidX libraries.
- AppCompat - Backward compatibility for newer Android features.
- Material - Material Design components for a modern UI.
- ConstraintLayout - Layout manager for complex layouts.
- Navigation Compose - Navigation for Jetpack Compose UI.
- Room - SQLite database for local data storage.
To build and run the project locally, follow these steps:
- Download the Zip file and extract it.
- Import the project in Android Studio.
- Sync Gradle and build the project.
- Run the app on an emulator or a physical device.
The NewsApp project is not using any commercial library - This is developed using Free and Open-Source third-party libraries.