Fintonic Test Challenge

Technical decisions

The architecture used is based on MVP (Model View Presenter).

  • Model: The repository uses one or more controllers (Retrofit client, DB Dao, etc) to manage the application data and business logic.
  • View: Doesn't manage any business logic, just the UI widgets and the navigation between screens.
  • Presenter: It acts as a bridge between the View and the Model. Could listen to Model changes to update the View.

Since the app is written entirely in Kotlin, I decided to use the following libraries:

Besides, the following libraries were used:

  • Retrofit as the HTTP client using Moshi as JSON converter.
  • Glide to load the images from network.
  • Room to persist the information in a database.