CSC 581: Mobile App Development
HW3: Designing & Implementing an App
For this assignment, you will design and implement an app that serves as a personal scoreboard. This app could be used by someone keeping score at a game, such as ping pong, volleyball, or rock-paper-scissors. The design is entirely up to you, but should be intuitive and user-friendly, and must meet the requirements outlined below. It should also utilize layout constraints so that the app looks reasonable on different devices and in different orientations. Your design should follow the Model-View-Control pattern, with the logic of the scoreboard defined in a separate Swift struct (or structs) and the ViewController as simple as possible.
- Since the app could be used for a wide variety of games, it should be possible for the user to set the game length (i.e., number of points required to win) and whether a player must be ahead by two in order to win (this is a common feature in many games). It should be intuitive how to change these values at the start of a game. Once a game starts, however, these values should not be changeable.
- There should be two scores (initially 0) prominently displayed, with labels identifying which score is which. By default, the labels should specify Player1 and Player2, but it should be possible for the user to change these by entering actual names.
- There should be some way by which the user can add to a player's score. You may assume that scores always go up by one, although a nice extension would be to allow other increment values. Since errors sometimes occur when entering scores or plays are challenged and reversed, there should be a way to undo an erroneous action (i.e., subtract from a score).
- When a game is won, a message should be displayed that identifies the winner and it should no longer be possible to change the scores.
- The user should be able to restart the game at any time. When this happens, the scores should be reset to 0 and the user should be able to change the game settings (number of points needed to win and whether a player must win by two).
- Your app should have an icon of your own design.