iPhone and iPad SDK Programming Class

Programming the Apple iPhone and iPad devices using the IOS SDK can be challenging for beginners, but rewarding. This class covers a broad overview of iPhone and iPad programming, including a coverage of Objective-C, UIKit framework, and other frameworks needed for successful completion of iOS projects.

Lecture 10 - Concurrency and Multi Threading, Device Hardware (Camera, Accellerometer, Compass, GPS, Gyro)

In this lecture will cover performance improvements through multi-threading. We will also cover Device hardware such as the Camera and the GPS.

Homework 10, Part 1: Create an XML file storing the latitude/longitude of three restaurants that you frequent. Read the XML file from the bundle, and write that file to the documents folder if it does not exist there. Display the three points on the map using mapkit.

Homework 10, Part 2: Use Core Location and the GPS to display your location on the map. Display the distance to each restaurant on the map from your current location when you touch that point.

Homework 10, Part 3: Display an "update" button that allows the user to download a new copy of the XML file asynchronously from an Internet Server. You might try an Amazon S3 account, or a free trial of Windows Azure for a storage location if needed.

Lecture 9 - Files and Persistence

In this lecture we covered persistence using user settings, storing items in files, and object persistence using the NSCoding protocol. Examples and class demos posted were RSSReader.zip, Example_TableViewFromTextFile.zip, and Example_Settings.zip.

Homework 9 will be incorporated into next week's assignment.

Lecture 8 - Audio and OpenGL

In this lecture will discuss the various api options for adding audio and video to your application. We will follow that up with a quick overview of a huge topic, OpenGL.

OpenGL Helpful Links:
http://www.cocos2d-iphone.org/ - Cocos2D for iPhone, 2D Game engine
http://code.google.com/p/gamekit/ - Open Source Gamekit
http://www.blender.org - Open source 3D modeling tool (use the newest beta)
Jeff LaMarche Blog - Blender and OpenGL

Homework 8: Create a basic view-based iPhone application. Play background music when the application starts up. Play a simple sound when a user taps a subview on the screen, using animation to bounce the subview for visual feedback.

Lecture 7 - Quartz Drawing and Animation

In this lecture we covered in more detail custom drawing with Quartz. We also covered various options for view animation, including creating your own custom drawing routine and a scheduled timer to update the view, and using Core Animation to automate the movement of views on the screen. Samples: ClassDemo_CoreGraphics.zip
animations.zip sample.

Homework 7: Create a tab-based applicaton. In one tab, use UIView animation to animate views.

Lecture 6 - View Controller Containers and Table Views

In this lecture we mentioned the benefits of changing the compiler from gcc to the LLVM, including the "build and analyze" option.

We followed up with a discussion of the NavigationController and TabController classes, and built a sample ClassDemo_Nav990.zip sample. The UITableView class was demonstrated in the ClassDemo_TableView99.zip sample.

Homework 6: Create a basic window-based iPhone application. Add a UINavigationController that holds a ViewController with a tableview. When an item in the tableview is clicked, a detail viewcontroller should be pushed onto the navigation controller stack.

Lecture 5 - Views and Controls

In this lecture we reviewed the homework assignment 4 with a custom drawRect method, took a brief detour to talk about the graphics elements required when submitting an iphone app to the app store, such as icon.png and Default.png.

We looked more closely at protocols, and implemented a simple delegate for a custom view class in the ClassDemo_Delegate2 sample. Controls such as the UITextField, UISlider and specialized views such as UIImageView were demonstrated in the ClassDemo_Controls sample.

Homework 5: Create a basic view-based iPhone or iPad application with a scrollable view of a United States map. When you click on California, the text of a UILabel should be set.

Lecture 4 - Views and Drawing in the iOS Environment

In this lecture we looked deeper into views and custom drawing.

Homework 4: Create a basic view-based iPhone or iPad application that uses a custom view to draw a star. My solution can be found here: Homework04_Stars.zip

Lecture 3 - Foundation Classes, View Controllers, and MVC

In this lecture we investigate more of the foundation classes such as NSArray and NSDictionary. View Controller classes will be presented, and we dive in to the Model-View-Controller (MVC) design pattern.

Homework 3: Create a basic view-based iPhone application that follows the MVC design pattern. Use a custom class for the data, and a custom UIView class for your view. For this application, we will remove all .xib files and create all windows and views from scratch.

Lecture 2 - Objective-C and Foundation Classes

In this lecture, Objective-C was tied to the iPhone platform. We looked at how the main method passes control to the UIApplicationDelegate Class Which loads the main window (often through a .xib or "nib" file) and adds any subviews that are needed.

Homework 2: Create a basic view-based iPhone application, and display some text on the view from a custom Class.

Lecture 1 - iPhone/iPad Platform and Objective-C

In this lecture, we will introduce the iOS Platform and the Objective-C language and its elements.

Homework 1: Send me an email, Install the iPhone SDK, Read the Objective-C Primer Listed below. Create an Objective-C console-based application that displays information about your five favorite beverages. Send it to me as a zip file.

Apple Documentation - Objective-C, A Primer. http://developer.apple.com/iphone/library/referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/

All XCode Projects - Class Demos, Examples and Homework Answers

All Class Videos

32MB, 5:38 - Things to look at when converting xcode projects from previous versions, such as tutorials or examples from the web.
29MB, 7:08 - Records the process of completing homework assignment 2, displaying information from a custom Objective-C class in a UIView.
177MB, 10:57 - Records the process of completing homework assignment 1, a command line tool to display information about your five favorite beverages.

From July 2010:


All Class Slides

Class Logistics

home Site Map Terms of Use Privacy Policy Client Directories