Ignacio Espinoso Ribeiro
This is a simple project developed in around 8 hours. It uses a VIP architecture to further adhere to the Single Responsability Principle, splitting business logic from display.
Due to this choice, going to the second milestone of implementing a timeout timer and end scenario was fairly simple, as each class responsability is quite clear.
The is a simple UIView
based on the UI reference, with labels informing each string and count, besides the two evaluation buttons. Touching each button triggers the interactor to evaluate the response
The interactor is responsible for the main game mechanics. It generates the input for the View, as well as assesses user responses. It is also responsible for evaluating if any end scenario is met.
The Presenter is a simple interface that, with the View Controller, interacts with the View displayed content.
The first half of the project was dedicated to creating the foundation of the architecture: the main view, presenter and interactor, as well as primary model classes and structs.
On the second half of the project, I worked on:
- The view and its constraints, as well as its behavior when triggering the Interactor
- Implement end scenario / timeout
- Implement Unit tests
Due to time restriction, I chose to simplify a set of behaviors that, if working on the app in the future, should be revisited:
- Turn the
Service
module more generic, as in the future this could well be an external API call; - Further componentize the
EvaluatorView
elements, as they could be reused in potential new game scenarios; - Increase test coverage;
- Improve UX and UI, initially with label and button elements, and then with an end scenario animation.
From these potential improvements, the first priority would be the test coverage increase, to avoid any bugs before moving on to new features.