The architecture implemented in the project is Clean Architecture which is divided in three layouts:
- Data layout -> This layout is where the external dependencies are located like remote data source which is in charge of calling external endpoints
- Domain layout -> It holds models, repository contract and use cases(interactors) only when they manipulate business logic (In this project I did not user any use case)
- Presentation layout -> this layout contains activities, fragments, adapters and view models.
- The app does not have any particular trade offs
The project runs by using Android Studio Chipmunk| 2021.2.1 Patch 1 Build #AI-212.5712.43.2112.8609683, built on May 19, 2022
- Retrofit: This library is mostly to make http calls
- Moshi: Json parser
- Dagger Hilt: Dependency injection
- Navigation
- Androidx life cycle libraries for coroutines
For unit testing:
- Mockito
- I spent 3 and half hours on the app
The app does not have any kind of listener or touch part. It is showing the portfolio by using recyclerview and on the item level the app uses card view in order to have better visualization of the list.