It's a sample app that displays information about The English Premier League.
- MVVM
- Data Repository
- MVVM is one of the architectural patterns which enhances separation of concerns.
- Google introduced architecture components which includes LiveData and ViewModel which facilitates developing Android app using MVVM pattern.
- It's helpful to solve common problems like Tight Coupling and Testability.
- Data Binding - Declaratively bind observable data to UI elements.
- LiveData - Notify views when underlying database changes.
- Room - Fluent SQLite database access.
- ViewModel - Manage UI-related data in a lifecycle-conscious way.
- Decouples the application from the data sources.
- Provides data from multiple sources (DB, API).
- Testable business logic via Unit Tests.
- Easily adding new data sources.
- common: It has the Application class and the ViewModel provider factory.
- data: It contains models and data repository.
- ui: View classes along with their corresponding ViewModel.
- utilities: Utility classes.
- KODIN - Dependency injection library.
- Retrofit - A HTTP client for Android.
- Logging Interceptor - An OkHttp interceptor which logs HTTP request and response data.
- GSON - A serialization/deserialization library to convert Objects into JSON and back.
- Mockito - Mocking framework for unit tests.