/TvMaze

The Android application showcasing the use of MVVM design using Android Architecture Components with RxJava2, Retrofit2, Dagger2, DataBinding and Glide. The codebase also has Static Analysis Tools like CheckStyle, PMD and FindBugs integrated to provide static code analysis

Primary LanguageJava

TvMaze

The aim of this app is to replicate the high level functionality of www.tvmaze.com and showcase an android app out of it. The TvMaze shows the tv shows which are scheduled to air on the current day starting at prime time.

This repository aims to help Android Devs with the integration of MVVM design pattern using Android Architecture Components. It tries to give a solid implementation of LiveData and ViewModel and how those complex concepts can be integrated using Dagger 2 with dagger Android support. That said, no need to create Subcomponent to inject Activity or Fragment.

MVVM using Android Architecture Components

The codebase tries to follow Uncle Bob Clean Code Architechture with SOLID principles. Read my article on medium: Migration from MVP to MVVM using Android Architecture Components

Pagination using Paging Library

The Shows screen displays the list of shows fetched from TvMaze API using PagingLibray of Android Architecture Components. It also handles the retry if any network error occurred. Read my article on medium: Pagination using Paging Library with RxJava and Dagger

Room Persistence Library

The Favourites screen displayes the list of shows marked favourites from the Home screen. The user can add/remove from the favorites as and when required. The implementation of the favorites is done using Room Persistence Library with RxJava and Dagger. Read my article on medium: Room with RxJava and Dagger

Static Code Analysis

It also has Static Code Analysis tools integrated. Want to know more. Read my article on medium: Static Code Analysis for Android Using FindBugs, PMD and CheckStyle

Sample Screenshots:

Home Favourite Shows

Shows