Skip to content

tolmachevroman/tvmaze-android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tvmaze-android

TVmaze Android app

An Android app for TVmaze service.

Features

  • Authentication using PIN or Biometric (fingerprint) if available.
  • Shows list with pagination.
  • Add/remove/list favorite Shows.
  • Display Show details with Seasons and Episodes.
  • Display Episode details.
  • Search for a Show or a Person.
  • Show Person and list of Shows he or she participated in.

Architecture and implementation details

App takes advantage of MVVM architecture + Jetpack Compose, LiveData for state management, Hilt for dependency injection, Retrofit for network requests, Biometric for fingertip authentication, among others.

Two UI flows live under authentication and main packages. They contain Composable NavControllers navigating between several Composable screens.

  • Regarding PIN code to open the app, since there's no way to recover it, once you set it up, if you forget it you'll have to reinstall the app or use biometric authentication.

  • Regarding pagination, API return 250 items on one page, so next page is fetched after nearly 250 items are scrolled. Backend caches this data for up to 24 hours, and so to save space and unnecessary requests app caches the data too. App stores json files for each page, and reads data from them if 24 hours have not passed or page is not a newer one.

Screenshots

Login Create new PIN code

All Shows Favorite Shows

Search, shows found Search, people found

Different placeholders for actress and actors Actress details

Show details Episode details