In this episode, we complete the Game UI. We put the final touches to the
ResultsViewController by implementing the wrong answer cell and refactoring anything we see fit. Finally, we run the app and make sure the layout follows the guidelines of the prototype.
All classes involved in the UI layer don't have any dependencies on the rest of the system. This agnostic nature can enable us to independently develop other parts of the project, such as the Router and Presenter implementations without affecting the work of other developers.
Establishing a contract between the components of a system can be an invaluable discipline for both the developers of a team and the business. Agreeing on the input and output of the components before we start coding, allows us to break down the workload into a finite number of segments and identify beforehand potential design flaws. This practice enables developers to work simultaneously, without being dependent on the progress of their peers, resulting in a clean design and rapid development for the ongoing project.