text: In this lecture we will get a whirlwind tour of OpenGL, followed up with the important but complex topic of running things on background threads.
  In this lecture, we wrapped up our coverage of Quartz and discussed classes used to play audio and video on the iOS platform.
  1) Wheel of Fortune - Display a wheel divided into segments. The user spins the wheel by swiping. The wheel decelerates at a resonable speed, and if it stops on a winning segment, a happy sound is played.
  2) Virtual Keyboard - when the user touches one of the keys (a button or an image), a note is played. Consider allowing them to record a song as a bonus.
  3) Russian Roulette - Place 6 views randomly on the screen. If the winning view is selected, highlight that view with a bounce effect and play a happy sound. After a two second delay, the views are randomly redrawn for the next round.
  In this lecture, we will cover basic animation techniques available in the iOS SDK, including UIView animation blocks, Core Animation, UIImage animation introduced last week, and a full run loop created with a scheduled NSTimer and DrawRect method of a custom UIView class.
  Homework Assignment - Create a basic game with tiles, each tile having a letter. The letters make up a word that is scrambled. The user will drag the tiles into squares at the bottom of the screen. If the user gets the word correct, it will move onto the next random scrambled word.
  In this lecture, we started by looking at delegates and protocols. This was demonstrated by investigating the UITableView class, with it's two delegates UITableViewDelegate and UITableViewDataSource. From there, we looked at the UINavigation controller and the UITabViewController classes which act as view controller containers. We screen captured ClassDemo_TableViewBasics.m4v (76MB, 25min) showing the basics of the UITabView class.
  Homework 4: Create a tab based iOS app with at least three tabs; Tab one should have a UINavigationController with at least two levels, tab two should be a UIImageView with an image at least twice the size of the physical screen, tab three should contain a UIWebView that displays your favorite non-offensive, UCLA-friendly web site. The posted examples should help you out, including the Example_Web.zip, a project that demonstrates the UIWebView class.
  In this lecture, we continued to cover the UIView class and the view heirarchy as well as the UIViewController class. We screen captured ClassDemo_Homework3Answer.m4v (123MB, 40min) as a possible answer for your homework, an MVC-based app with at least three views.
  Homework 3a: optionally improve homework 3 with information that you have learned from lecture and from lessons learned during your previous attempt.
  In this lecture, we covered UIViews and their heirarchy. We screen captured ClassDemo_HomeworkAlbumwindow.m4v (68MB, 23min) as a possible answer for your homework, displaying your desert island albums on a window. You might be interested in checking out a quick video on touchable views ipad-touchable-views.mp4 (23MB)
  In this lecture, we tied the main.m call to the UIApplicationDelegate and saw how the iPhone application lifecycle works. We screen captured ClassDemo_Homework1Answer.m4v
  as a possible answer for homework 1, console based app that display three albums. We looked at the XCode-supplied window based template as a starting point for iOS applications.
  Homework 2: Create an iPhone based application that displays your three albums on a UIView. If you feel like using Interface Builder, you might want to check out a video on IB Basics: iPhone_HomeworkHelpBasicIBa-Computer.mp4 (36MB)
  Homework 1: Install the iPhone SDK, Read the Objective-C Primer Listed below. Create an Objective-C console-based application that displays at least three albums that you would take if stranded on a desert island.
  This method returns a reference to the FPCUrlCategorySet object requested if successful. Otherwise, an error is raised that can be intercepted by using an error handler.