Assignment 4

Due on Nov 2 2012 at 11:59 PM


1. Interactive Map

Build an interactive map app where you can add your own annotations on the fly by double-tapping on a location.

  • I chose to build a city landmark guide for the example, but feel free to choose another topic for your app.
  • Your input view should appear modally and allow the user to cancel out of it. Think about using a delegate, similarly to how the UIImagePickerController works.
  • You should have at least three categories of entries, and you need a different MKAnnotationView for each of these categories.
  • When the user taps on the MKAnnotationView callout, a detail view should be pushed revealing extra information on the selected entry. You should therefore use a UINavigationController at the base of your app.

2. Listing View

Add a table view to your app where the user can browse all the entries as a list.

  • Use a UITabBarController to switch between both views. This UITabBarController will be the initial view controller, and should hold two UINavigationControllers (one for the map, the other for the table).
  • Build representative icons for each item in the tab bar.
  • Selecting a cell in the table should push the same detail view as when tapping a callout on the map.

3. Icon and Splash Screen

Add an icon and a splash screen to your app.

Submit a single Xcode project for this assignment. I don’t need to see each answer separately, simply submit your final app.

Here is my solution.

  1. Nicolas Mollet. Map Icons Collection. Visited Oct 21 2012.
  2. Darran Morris. Free Icons. APP-BITS. Visited Oct 21 2012.

Assignment 2

Due on Oct 5 2012 at 11:59 PM


1. Quiz

Build a quiz app using a navigation controller that has at least three question views and one result view.



2. Star Creator

Build a star creator with parameters for the number of points and the outer and inner diameters. If you don’t want to make a star, you can make something else that is at least as complex (no squares).


  • To draw a star, you need to draw lines around a circle, alternating between two different radii. This is how I would do it in Processing.


3. Gestures

Add gesture recognizers to one of your Q1, Q2 apps from this assignment, or to your Q3 app from the last assignment. You can also build a new app that uses gestures in an original way.



Project Creation

  • Create one project per question.
  • Make sure the Product Name starts with the assignment and question number, for example A1Q1-BgColor
  • Put your full name as the Organization Name, for example Elias Zananiri
  • Use your name in reverse notation as the Company Identifier, for example zananiri.elias


  • Put all of the project folders in a directory named with your full name and the assignment number, for example EliasZananiri-A1
    • You can also add the date to the directory name, in case you upload more than one version, I’ll make sure to only look at the latest one.
  • Compress this folder as a ZIP archive. On Mac OS X, you can just right-click on the directory and select Compress “Folder Name”.


  • Connect to the CDA FTP server and navigate to the /CDA-ClassShares/cart498_elias_12 directory.
  • Drop your ZIP file into the DropBox folder. Note that once the file is uploaded, you will not be able to edit it (see here for more information).

Assignment 1

Due on Sep 21 2012 at 11:59 PM


1. Colour Sliders

Build an app that uses sliders and input fields to set the background colour of the main view.


  • Colours are set using UIColor. Note that the range of the parameters accepted when constructing a UIColor is from 0 to 1 (not from 0 to 255).
  • You should respond to the “Did End On Exit” event triggered by the UITextField.
  • Use the resignFirstResponder method on the selected UITextField to hide the keyboard.
  • Make sure to add validation code to correct the typed in value if it’s out of bounds (less than 0 or greater than 255).


2. TIPS Calculator

Build a TIPS calculator where the result is determined from a base amount and percentage set by the user.


  • The result is equal to the amount multiplied by the percentage. In the middle example above, that would be 45.34 * 0.12 = 5.44.
  • Remember that you can format NSString using the stringWithFormat: initializer.
  • I used the UIImage, UILabel, UITextField, and UISegmentedControl in the example above, but feel free to use other components if you’d like.


3. Original Controls

Build an app that uses UI controls in an original way. For example, have a look at Slide.