Headlines Today

This is a simple offline first news headlines app

- Architectural Layers

  • Network Responsible for remote server access
  • Database Responsible to locally store data in device.
  • Repository Exposes the api for CRUD operations related to logical data. Wraps Network/database layers
  • ViewModel Responsible for handling the logic behind how the data is displayed in the view
  • View The UI layer coupled with Android Framework

- Built With

  • NewsApi.org - Get breaking news headlines, and search for articles from news sources and blogs all over the web with these news API
  • Kotlin - First class and official programming language for Android development.
  • Rx-Java - For composing asynchronous and event-based programs by using observable sequences.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
  • LiveData - Data objects that notify views when the underlying database changes.
  • Room Persistence Library - A persistence library that provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
  • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • OkHttp - HTTP client that's efficient by default: HTTP/2 support allows all requests to the same host to share a socket
  • Mockito - Most popular mocking framework for Java/kotlin.

- Icons made by