views:

50

answers:

3

There seem to be a lot of introductory books, courses and bootcamps for iPhone development, covering the basics of Xcode, Objective C, Foundation, UIControls, UITableViews, etc.

What would be the most appropriate course material set for the next more advanced iPhone development class, suitable for and of interest to the widest percentage of developers who, say, have already taken an intro course, read an intro book, and who have developed at least one (non-trivial) app or more approved and released in the iOS App store.

+1  A: 

From my point of view, the following frameworks are not usually discussed in introductory courses/materials:

Accelerate
AssetsLibrary
AVFoundation
CFNetwork
CoreMedia
CoreMotion
CoreTelephony
CoreText
CoreVideo
ExternalAccessory
ImageIO
QuartzCore
Security

While sometimes you may find some material discussing these topics, the discussion is usually not in depth.

unforgiven
A: 

Apple has published all videos from this year's World Wide Developer Conference. If you have an account on developer.apple.com you can take a look at those. Some are beginner, some are advanced. Pretty good stuff in general.

St3fan
A: 

I actually teach an advanced iPhone development course, for which the videos are available for free on iTunes U. The course notes for the spring and fall semesters can be downloaded in VoodooPad format.

This course is intended to follow on the many excellent getting-started resources out there. I decided to focus each class on a specific framework, so that I could explain the base concepts and common situations you might run into in each area. However, there simply isn't enough time to cover every possible case that people might be interested in, so I make sure to point out all available supplementary resources that I know of. As others have pointed out, topics like OpenGL ES could sustain a course by themselves.

The class listing for my fall semester course looks something like the following:

  • Introduction / Design of iPhone applications
  • Understanding Cocoa / Handling multiple OS and device versions
  • Debugging / Unit testing / UI Automation / Development tools
  • Views and controllers / iPad
  • Quartz 2D drawing
  • Core Animation
  • Core Data
  • Touch events, the accelerometer, and scroll views
  • Networking
  • Camera and video processing / Playing audio and video
  • Performance analysis: memory, CPU usage, startup time
  • Multithreading and multitasking
  • OpenGL ES
  • Core Location / MapKit
  • Selling iOS applications

Again, you can check all of this out on iTunes U. I'm sure there are areas where I'm lacking coverage, simply because they're not subjects that I've used within my own applications, and therefore I'm not as familiar with them.

Brad Larson