<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Intern Assignment

Jumping off point

Before you write anything take a few minutes to gather some information. Skim through Appleā€™s docs, consider picking up a book, try to make a project and get it to do something. The slides and code from our boot camp will be available at Bottle Rocket Apps Blog in the near future.

Here are some resources we recommend:

Apple

Beginning Videos

Beginning Docs

Learning Objective-C

Creating an iPhone App

Stanford

Developing for iOS (Stanford)

Books

Big Nerd Ranch Guide

Programming in Objective-C 2.0

Blogs

Cocoa Design Patterns

Cocoa Samurai

Cocoa With Love

CIMGF

Flickr Rocket

Your assignment, should you choose to accept it, is to make an iPhone app that displays images from Flickr tagged with "rocket" using their search API.

1. Create a project using the "Single View" Application template. Call it FlickrRocket. This will create a project with a view controller hosting a view called RootViewController. RootViewController is where we'll be doing most of our work.
2. Assign the provided loading screen and icon.
3. Add a UIImageView to the main view.
4. Download Flickr search results from the url: http://api.flickr.com/services/rest/?format=json&sort=random&method=flickr.photos.search&tags=rocket&tag_mode=all&api_key=0e2b6aaf8a6901c264acb91f151a3350&nojsoncallback=1 as NSData using NSURLConnection as an asynchronous process.
5. Parse that data into an NSDictionary using NSJSONSerialization. The information about the photos you'll be displaying will be located in the "photo" key of the resulting dictionary.
6. The URL location of an image on flickr is built with the following format: http://farm"FARM_VALUE".static.flickr.com/"SERVER_VALUE"/"PHOTO_ID_VALUE"_"PHOTO_SECRET_VALUE"_m.jpg.  The values are in each of the objects found in the "photo" array
For example, for the entry: 
{
    "farm": 9,
    "id":"8658536632",
    "isfamily": 0,
    "isfriend": 0,
    "ispublic": 1,
    "owner":"35067687@N04",
    "secret": "afab53f070",
    "server":"8111",
    "title": "Antares Rocket Preparation (201304160006HQ)"
}
The URL would be http://farm9.static.flickr.com/8111/8658536632_afab53f070_m.jpg
7. When the user swipes on the UIImageView, the image should move to the next image in the set of images returned by the API call wrapping back to the first image when the last image in the set is being displayed..

URL Programming Guide

NSDictionary Class Reference

NSNumber Class Reference

NSJSONSerialization Class Reference

UISwipeGestureRecognizer Class Reference

Extra credit

1. Cross-fade between the images displayed in the UIImageView
2. Thread your networking (most especially your image downloading)
3. Progress indicator while download is happening.
4. Make it a universal (iPhone/iPad) app
5. Create your view controller's view without using xibs.

UIActivityIndicatorView Class Reference

Threading Programming Guide (NSURLConnection on a secondary thread has to be synchronous, not asynchronous)

DO NOT

1. Use NSData, NSString, etc initWithContentsOfURL: methods. These are not the best or even really an ok way to do networking.
2. Do any UI work on any thread other than the main thread.

Ask questions

If you run into trouble or need some clarification feel free to contact one of us:

david.palmer@bottlerocketapps.com

kyle.mcgregor@bottlerocketapps.com

Share this project:
×

Updates