NewsApp
An android application which uses NewsAPI for listing news.
Prerequisites
1. Check the App
If the app cannot list news, check the API key on build.gradle.kts(:app).
buildConfigField("String", "NEWS_API_KEY", "\"860eaf0ada084fea80bc2ea8480dc0af\"")
2. Ready to run.
Features
- News Listing Feature
- Caching Results (Offline Capability)
- Pull to Refresh
- Unit Tests
Tech Stack
- Kotlin - Officially supported programming language for Android development by Google
- Kotlin DSL - Alternative syntax to the Groovy DSL
- Coroutines - Perform asynchronous operations
- Flow - Handle the stream of data asynchronously
- Android Architecture Components
- LiveData - Notify views about data changes
- Room - Persistence library
- ViewModel - UI related data holder
- ViewBinding - Allows to more easily write code that interacts with views
- Hilt - Dependency Injection framework
- Retrofit - Networking library
- Moshi - A modern JSON library for Kotlin and Java
Local Unit Tests
- The project uses MockWebServer (scriptable web server) to test API interactions.