TVmaze Android app
An Android app for TVmaze service.
- 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.
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
NavController
s 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.
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 |
---|---|