This is a simple offline first news headlines app
- 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
- 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.
- Those Icons from Flaticon
- Material Icons are delightful, beautifully crafted symbols for common actions and items from Google