CSC 471/371 Mobile Application Development for iOS
Programming Assignment 6: Mock Remote Control II
• Submit your assignment in D2L Dropbox.
• Submit a single zip file that contains the contents of the project folder
o To zip your project folder: Ctrl-click your project folder and select “Compress
…” from the context menu.
• It is mandatory to use Xcode 10 and Swift 4 for this assignment.
• Include only your source code files, including
o *.swift, *.plist, *.xib, *.storyboard
o image files
o project files (.xcodeproj)
o test folders
• You must use a unique prefix for the project name. (I suggest you use your last name
and first initial as your prefix.) Please use the same prefix for all your assignments.
o Note you only need to use the prefix for the project name. It is not necessary to
use the prefix on other files in your project.
• Do not include unused or unrelated files.
• Before you submit, build and run the project, make sure everything compiles and
works. Close your project before zipping the folder.
• Here are the most common reasons assignments are marked down:
o Project does not build.
o Project does not build without warnings.
o One or more items in the Requirements section were not satisfied.
o A fundamental concept was not understood.
o Code is sloppy and hard to read (e.g. indentation is not consistent, etc.).
o Your solution is difficult (or impossible) for someone reading the code to
understand due to lack of comments, poor variable/method names, poor
solution structure, etc.
• Bonus points.
o Bonus points may be awarded to projects with exceptional qualities in one or
o Bonus points will only be awarded after all the required elements have been
o Bonus points will not be awarded merely for extra amount of work (or code).
o Extra and sloppy code may cause your assignments to be marked down.
o Bonus points are awarded at the sole discretion of the instructor.
o Include a note in the comment in D2L describing the part(s) should be
considered for bonus points.
• Explore Xcode and build an app with multiple screens
o Using a variety of UI controls
o Using animation for view transitions
o Using popup alerts.
• Explore UIKit documentation
1. Create a two-screen version of the mock remote control app in Programming
Assignment #4. The first screen is similar to the app in Programming Assignment #4.
The second screen is a mock remote control for a DVR. The screens should be similar
to the ones below.
2. The TV remote control portion should function similarly to the app in Programming
3. The DVR remote control mimics the usual functions of a simple DVR remote control.
Instead of controlling a real DVR, and status of the “DVR” being controlled by your
remote will be displayed at the top portion of the screen. The minimum functions must
include the following:
a. The power switch will turn “My DVR” on and off. When the power is off, all
other controls on the remote should be disabled.
b. The DVR can be in one of the following states, exclusively (i.e., never in two or
more states simultaneously):
• Fast forwarding
• Fast rewinding
Each of the above state is entered when the corresponding button is pressed.
When the power is turned on, the DVR will be in the Stopped state.
c. The “Play” button will start or resume normal playing. Pausing, fast forwarding
or rewinding is only possible when the DVR is in the Playing state.
d. The “Record” button will start recording. Recording can only start when the
DVR is in the Stopped state. Playing, pausing, fast forwarding or rewinding is not
possible when the DVR is in the Recording state.
e. The “Stop” button will stop any operation.
4. When a button is pressed while the DVR is in a state where the requested operation is
not possible, an action sheet will popup with an appropriate warning message. The
action sheet will offer two options:
a. Cancel the requested operation, and the DVR will remain in the current state.
b. Force the requested operation by stopping the current operation first. If this
option is selected, an alert will popup confirming that the current operation has
been stopped and the requested operation proceeds.
5. The toolbar at the bottom contains a button to switch between the TV and DVR
modes. The transition between the TV remote screen and the DVR remote screen
should be animated. Note that the text on the switch button changes depending on
whether the current screen is TV or DVR remote.
6. Be creative to spruce up your app.
7. Always remember to follow all the conventions and write high quality, easy to read
8. Make sure your program
a. builds without errors or warnings, and
b. runs without crashing