<?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
Stanford
Books
Programming in Objective-C 2.0
Blogs
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..
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
Log in or sign up for Devpost to join the conversation.