mayorJAY / NewsFlash

NewsFlash is a News Application that fetches and displays a list of news headlines published by a single source

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NewsFlash

NewsFlash is a News reading Android Application that fetches and displays a list of news headlines published by a single source. The App fetches the data from News API. It supports multiple flavors, each flavor represents a news source, building each flavor displays the news from the configured source, this means more flavors can be added easily. It also performs Fingerprint Login when run on devices that support that feature. It is implemented using Multi-flavor, Clean Architecture, Model-View-ViewModel (MVVM) pattern and uses Modern Android Development pattern and libraries. Adequate Unit Tests were also implemented in the codebase.

Get the sample APK here

Project Characteristics

This application has the following characteristics:

Libraries Used

Minimum API level is set to 21, this means NewsFlash can run on approximately 98% of Android devices

  • Biometric Library which is a library for authenticating users with biometrics or device credentials
  • Retrofit which is a type-safe REST client for Android which makes it easier to consume RESTful web services
  • Moshi, a modern JSON library for Android, Java and Kotlin
  • OkHttp Logging Interceptor, an OkHttp interceptor which logs HTTP request and response data
  • Kotlin Coroutines used to perform asynchronous network calls to the remote server
  • Paging Library which helps to load and display small chunks of data at a time
  • Glide which is an image loading and caching library for Android
  • Kotlin flow for emitting live updates from a network call sequentially
  • Hilt, a DI library for Android that reduces the boilerplate of using manual DI
  • ViewModel used to store and manage UI-related data in a lifecycle conscious way
  • View Binding used to easily write code that interacts with views by referencing them directly
  • Material Design which is an adaptable system that guides in maintaining principles and best practices of contemporary UI
  • Browser Library, a library that helps display webpages in the user's default browser (Chrome Custom Tabs)
  • Timber, a utility library for logging and easy debugging
  • SDP/SSP which is a scalable size unit that scales with the screen size. It helps to easily design for multiple screens
  • JUnit4, a testing framework used for writing unit tests
  • MockWebServer, a library that makes it easy to test how Apps behave when making HTTP/HTTPS calls

Installation

You will need an API key from News API. In your project's root directory, inside the local.properties file, include the following line:

api.key=YOUR_API_KEY

About

NewsFlash is a News Application that fetches and displays a list of news headlines published by a single source


Languages

Language:Kotlin 100.0%