Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
App architecture:
The app is divided in 3 different layers/packages
Libraries:
I added libraries to be able to use coroutines. II noticed in the project there where some rx java libs included but I didn't use them. I'm familiar with rx as well but I just thought using coroutines was a bit more modern.
Tests
I added a test to the presenter. In a real prod app I would add unit test to interceptors as well, and mapper functions, etc. But I didn't add it in this case, because of time constraints.
Dependency Injection
I used the regular Dagger library, since I was told this is the approach open table uses on the prod app. On a prod app I would have an app component and an activity sub component. In this case I just have the activity component for simplicity since we have only one activity.