iPhone Programming - Spring 2013

Nathan Hull

Assignment 2- Due: Friday, March 1st

In this assignment you will create your first iPhone application.

In brief, you will create a program that displays the same user names, passwords, and counts which you used in the first assignment, and allows you to increment the count for any particular Website.

Eventually, your layout will look something like the picture at the right (from Interface Builder). Feel free to design your own image and layout.

Minimally, your screen should have a picture at the top which never changes - Note that the image is placed inside of an Image View taken from the IB's Library.

It should then have four Text Fields which are set up to contain the Website, the User Name, the Password and the Count.

Next, there should be two buttons which allow you to display data from your array either going forward through the array, or backward. (Of course, if you come to either end of the array, the corresponding button won't do anything!)

Finally, there is an "Increment Count" button that increases by 1 the Count for the currently displayed Website.

Also note that before the user hits either button, you are not required to display any contents from the array. You may just leave in the "Placeholder" names created in IB.

However, before you can use Interface Builder, you will need to start by creating the project and its ViewController header file.

monster ib

Part One. First, in Xcode, you will be creating a New Project. Choose "File:New Project" and then from the left panel choose to create a new "iPhone Application". After these choices have been made, in the right box, select "View-Based Application".

In all probability, you will probably first want to build your project WITHOUT referencing any real data. This will allow you to get your Interface to work without having to worry about how to attach the underlying data structure. So, as a suggestion, you might want the "Backward" button to simply put the string "from Backward" into the first three text fields. It might be amusing to have the "Increment Count" button actually increment the count which is displayed. (Obviously, this will be necessary in Part Two of the assignment).

Next, you will want to create an icon for your project. In order to submit an application to Apple's App Store, you have to give them a 512 x 512 image of your icon. Thus, most projects create their logo in this high resolution, and then reduce it (probably in Photoshop) to the 57 x 57 and the 114 x 114 images you need for Xcode. Save your images as PNG graphics, and drop them into Xcode's Resource folder for your project. Then, attach the two images.


Part Two.After you have gotten your interface to work in some rudimentary fashion, you will turn to the data structure. In this homework, instead of a NSMutableDictionary Object, you will hold your data in a NSMutableArray. This will allow you to access your data 'in order'. Thus, a possible data set might now look something like this:

Kate Monster


There are also many methods for Arrays which are given to you in the Foundation Framework. For example, one method is Apple's definition of addObject:
-- (void)addObject:(id)anObject

In our book, "Programming in Objective-C" by Stephen Kochan, the author gives the following example of this method:

[primes addObject: [NSNumber numberWithInteger:2] ];

So, it is quite possible to define an array and later on add objects to the end of it. However, for the basic assignment, you may choose to simply define the array and its content all at once.


Extra Credit: Add an extra button called "Add Record". In this case, you would be allowed to enter information into the four Text Fields, after which you would press this new button. The information would be added into a new object at the end of your array.

Extra, Extra Credit: In addition to the "Backward" and "Forward" buttons, create a slider which controls the dispaly of the data in your array. If the slider is all the way to the left, the data in position 0 is displayed. Note that if it is all the way to the right, it should display the data for the last position added (as per the first extra credit). Thus, you have to take into account that the subscript range may vary over the course of the execution of your program.

Zip your entire project, and post it on "NYU Classes".

This assignment is a work-in-progress, so check back for any additions, corrections, clarifications, helpful hints, etc., etc.