CSC 471/371 Mobile Application Development for iOS
Programming Assignment 4: Mock Remote Control
• 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 simple UI
o Using UI views and controls
• Explore UIKit documentation
1. Create a simple mock remote control app with an interface similar to the one shown
2. The functions of the app mimic the usual functions of a simple TV remote control.
Instead of controlling a real TV, and status of the “TV” 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 TV” on and off. When the power is off, all
other controls on the remote should be disabled.
b. The volume slider will control the speaker volume. The range of the volume is
from 0 to 100 (inclusive).
c. The number keys and the ‘Ch +’ and ‘Ch –“ keys will control the current
channel. The range of the valid channels is from 1 to 99 (inclusive). Channels
are selected using two digits, including single digit channels. For example,
channel 7 is selected using ‘0’ and ‘7’ keys. Channels can also be selected using
‘Ch +’ key (+1 to the current channel) and ‘Ch -‘ key (-1 to the current
d. The favorite channel buttons are part of a segmented control. Each button
remembers a specific channel. You can select a favorite channel by press one
of the favorite channel buttons.
3. Be creative to spruce up your app.
4. Make sure your program
a. builds without errors or warnings, and
b. runs without crashing
1. Use UIView as a container to divide a screen into separate regions.
2. Use the enabled property of the UIView class to enable or disable controls.
3. Make sure when the app starts up, the TV status display and the remote control
settings are consistent.
Use auto layout and test the layout on different screen sizes of iPhones. Make sure all the
widgets are visible and reasonably positioned and spaced. Portrait mode only.