views:

93

answers:

2

I attended an iphone bootcamp in early '08 and have TA'd a few since. I've recently been asked to teach one and I'm curious what YOU would want to be covered.

Keep in mind, the class is 3x days (8 hours each day, minus 1hour for lunch)

My WIP list currently is:

  • Introduction to the iphone hardware
  • ' ' ' development environment
  • Debugging walkthrough/exercise
  • Core OS, Core Services, Media, Cocoa Touch.
  • Obj-C/OOP programming (Basics)
  • (Common) Foundation Classes -NSArray, Set, Number, Dictionary, etc.
  • Combine both Obj-c/OOP & common classes exercise
  • Introduction to IB
  • IB Exercise / Hello World
  • Introduction to Controllers
  • ' ' Views, SubViews
  • ' ' TableView
  • TableView exercises
  • TabView
  • Memory Management / Pointers

Once a solid foundation is provided, we could cover (Some, probably not all):

  • accelerometer
  • sound
  • core location
  • nscoder/nsuserdefaults
  • animation
  • networking
  • camera
  • touch events
  • advanced debugging
  • tools (shark, clang, etc).

Things like openGL, as cool as they are, might be too much to cover.

Maybe we should cover submitting an application, developer certs and such.

I'd like to hear ideas for exercises and topics. I really want to give the attendees and awesome presentation and lay the groundwork for their future development.

I must strike a balance between detail and range of topics covered - also, I won't know the skill level of the attendees until the class starts (or a few days before - but it doesn't leave me enough time to change slides/exercises).

+2  A: 

Hi, You seem to have a pretty good list there already. One suggestion, albeit small, would be to cover the differences of developing an application on a phone, and on a desktop. I think a lot of students will take for granted the power available on a desktop, whereas a phone's battery is limited and apps should not be draining them unnecessarily. Examples of how to cut down on battery usage, minimise resource footprints and considering the app's effect on existing applications would be quite important IMO.

keyboardP
Great point - I've had first hand experience of writing *brute force* code that works on the desktop fine, but brings the iphone to its knees.
Mr-sk
+1  A: 

If your students do not have a background in other C languages, then a section on pointers and memory (and by extension, memory management) would be essential. I never understood Objective-C until I understood what a pointer was and why I needed it.

Dave DeLong
Oh, yeah I totally spaced on adding that my list. But that is paramount to iphone development (and c/obj-c in general). But yeah, I will beat pointers and memory management into them! Or die trying!
Mr-sk