Assignment #6 Task #4

Please note, this blog entry is from a previous course. You might want to check out the current one.

The Tag Search tab must bring up a list of all the tags found in all the photos that the user has chosen to be a part of this Virtual Vacation (sorted with most-often-seen first). Touching on a tag brings up a list of all the photos in the Virtual Vacation that have that tag. The tags in a Flickr photo dictionary are contained in a single, space- separated, all lowercase string (accessible via the FLICKR_TAGS key). Separate out and capitalize each tag (not all caps, just capitalize the first letter) so that they look nicer in the UI. Don’t include any tags that have a colon in them.

In both storyboards add an additional table view controller as well as an subclass for it. Create a push segue from the tags cell from the vacation view controller to the new controller and from its cell a another push segue to the vacation-photos table view controller. Adjust the cell reuse identifier and set the identifiers for the two new segues.
Continue reading “Assignment #6 Task #4”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Assignment #6 Task #3

Please note, this blog entry is from a previous course. You might want to check out the current one.

The Itinerary tab must show a list of all the places where photos in the chosen Virtual Vacation have been taken (sorted with first-visited first). Clicking on a place will show all the photos in the Virtual Vacation taken in that place. The place name should be the one returned by getting the new FLICKR_PHOTO_PLACE_NAME key in the Flickr photo dictionaries you retrieve from the photosInPlace:maxResults: method. You will need to use the new FlickrFetcher code available with this assignment. Use only the place’s name (as returned the the FLICKR_PHOTO_PLACE_NAME key) to determine what the place is (i.e. ignore things like the Flickr place id).

In both storyboards add two additional table view controllers with two new subclasses. Set their cell types and reuse identifiers. The first one will be used for the places in the itinerary, the second one for its photos. Create a push segue from the itinerary cell of the vacation view controller to the first new table view controller, another push segue from its cell to the second new table view controller and – only for the iPhone storyboard – an additional segue from the cell of the second new table view controller to the photo view controller from the previous assignments. Name all segue identifiers accordingly.
Continue reading “Assignment #6 Task #3”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Assignment #6 Task #2

Please note, this blog entry is from a previous course. You might want to check out the current one.

When the user chooses a Virtual Vacation from the list, bring up a static table view with two choices: Itinerary and Tag Search.

In both storyboards add an additional table view controller, create a subclass for it and set it up in story board. Create a push segue from the prototype cell of the vacations table view controller to the new table view controller.

The tricky part of this task is to make the table static. Select the table view of the table view controller and change its content type from previously Dynamic Prototypes to Static Cells. Label the first cell “Itinerary”, the second “Tag Search” and delete the third cell.
Continue reading “Assignment #6 Task #2”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Assignment #6 Task #1

Please note, this blog entry is from a previous course. You might want to check out the current one.

The sixth assignment continues the application from the last assignments which create a Flickr photo browser. This assignment will add features emphasizing the use of Core Data.

This application lets the user assemble a Virtual Vacation of places in the world to visit. Users will use the photo-choosing capabilities of your Fast Map Places application to choose photos in the places they want to go. In this application you will have two major tasks: allowing the user to choose where they want to go and allowing the user to “go on vacation” in their Virtual Vacation spots. You will accomplish the former by adding a “Visit/Unvisit” button to the scenes in your Fast Map Places where a photo is displayed. You will accomplish the latter by adding a new tab to your Tab Bar Controller which lets the user peruse their Virtual Vacation either by place or by searching for tags that were found in the Flickr dictionaries for the photos they chose to visit.

1. Add a new tab to your application that displays a new table view controller showing a list of all the “Virtual Vacations” found in the user’s Documents directory in their sandbox. A Virtual Vacation file is created by saving a UIManagedDocument (more on this below). Each vacation must have it’s own separate file in the Documents directory.

Continue reading “Assignment #6 Task #1”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Assignment #5 Extra Task #2

Please note, this blog entry is from a previous course. You might want to check out the current one.

Allow the user to switch between a normal map view, a satellite map view and a hybrid map view (you’ll likely want to use a UISegmentedControl for this).

During the lazy instantiation of the map view add an additional sub view for a control segment. The control segment is initialized with an array holding the three possible selections. Its position is calculated by using the horizontal center of the map, and subtracting the size of the segment from the height of the map. To enable auto-rotation the the left and right as well as the top margin are set to be flexible (equal to a spring in story board). The “normal” view is set as initial view. When the value of the control segment is changed, the method changeMapType: is called.
Continue reading “Assignment #5 Extra Task #2”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail

Assignment #5 Extra Task #1

Please note, this blog entry is from a previous course. You might want to check out the current one.

Add a photo’s thumbnail image (FlickrFetcherPhotoFormatSquare) to every row in any table view that shows a list of photos. Don’t ask Flickr for the image data of thumbnails that never appear on screen (i.e. fetch thumbnail image data only on demand). There’s no need to cache these images (they are very small). Obviously when a row first appears, it will not have the thumbnail image, but, sometime later, when the thumbnail data comes back from Flickr (and if the row is still on screen), it should appear. Beware Required Task #1. And consider the hint above about not calling UI methods from outside the main thread and also remember that table view cells are reused as the scroll on and off screen.

Basically the procedure is the same as for the annotation views. Check if the table item is photo, download its photo asynchronously and put it on screen back in the main queue. The only difference is that it is necessary to put an placeholder image into the cell otherwise it is not possible to update the image once it has been loaded:
Continue reading “Assignment #5 Extra Task #1”

FacebooktwitterredditpinterestlinkedintumblrmailFacebooktwitterredditpinterestlinkedintumblrmail