Skip to content

Commit 7603cab

Browse files
update README
1 parent b043ff3 commit 7603cab

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

README.md

+46
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,48 @@
11
# tvmaze-android
22
TVmaze Android app
3+
4+
An Android app for [TVmaze service](https://www.tvmaze.com/api).
5+
6+
## Features
7+
- Authentication using PIN or Biometric (fingerprint) if available.
8+
- Shows list with pagination.
9+
- Add/remove/list favorite Shows.
10+
- Display Show details with Seasons and Episodes.
11+
- Display Episode details.
12+
- Search for a Show or a Person.
13+
- Show Person and list of Shows he or she participated in.
14+
15+
## Architecture and implementation details
16+
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.
17+
18+
Two UI flows live under [authentication](https://github.com/tolmachevroman/tvmaze-android/tree/main/app/src/main/java/com/tv/maze/ui/authentication) and [main](https://github.com/tolmachevroman/tvmaze-android/tree/main/app/src/main/java/com/tv/maze/ui/main) packages. They contain `Composable` `NavController`s navigating between several `Composable` screens.
19+
20+
- 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.
21+
22+
- 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](https://github.com/tolmachevroman/tvmaze-android/blob/main/app/src/main/java/com/tv/maze/data/TVMazeRepository.kt#L28), and reads data from them if 24 hours have not passed or page is not a newer one.
23+
24+
## Screenshots
25+
26+
Login | Create new PIN code
27+
:-------------------------:|:-------------------------:
28+
![](https://user-images.githubusercontent.com/560815/165883743-6a3bcee2-55f0-41c9-92a5-454a00b863e0.png) | ![](https://user-images.githubusercontent.com/560815/165883745-6d3a8964-c31c-4d56-81fa-9d94d61b0d02.png)
29+
30+
---
31+
All Shows | Favorite Shows
32+
:-------------------------:|:-------------------------:
33+
![](https://user-images.githubusercontent.com/560815/165883756-b281bfc4-26d0-4371-84ad-00e0039fb9c4.png) | ![](https://user-images.githubusercontent.com/560815/165883773-ab4d9e4e-f5a9-45d1-867b-28d995ff82fb.png)
34+
35+
---
36+
Search, shows found | Search, people found
37+
:-------------------------:|:-------------------------:
38+
![](https://user-images.githubusercontent.com/560815/165883777-f11b3a36-72c7-4895-ace6-d25e8701c9e1.png) | ![](https://user-images.githubusercontent.com/560815/165883779-662a7241-2a9b-4bed-bf02-092d3f3d7ae9.png)
39+
40+
---
41+
Different placeholders for actress and actors | Actress details
42+
:-------------------------:|:-------------------------:
43+
![](https://user-images.githubusercontent.com/560815/165883781-2e7dcb23-3ff1-4bfe-9827-187f3b36999e.png) | ![](https://user-images.githubusercontent.com/560815/165883775-d1c1fde5-2dca-47e8-8717-f9f3aa9de115.png)
44+
45+
---
46+
Show details | Episode details
47+
:-------------------------:|:-------------------------:
48+
![](https://user-images.githubusercontent.com/560815/165883782-54412d56-41ce-4b7d-ba42-44e8462c2179.png) | ![](https://user-images.githubusercontent.com/560815/165883769-32be3dcd-6acb-41fa-a6e8-6590902c2e75.png)

0 commit comments

Comments
 (0)