Learn to be an iOS Developer from the best, without paying tuition

There are some really great resources available if you want to learn to develop for the iOS platform (iPhones, iPod Touches, iPads). But perhaps the best resources out there, are free! Professor Paul Hegarty of Stanford teaches CS 193P РiPhone Application Development, and all of the lectures are available for free on iTunes U!

Here’s everything you need to get started:

The Lectures


Xcode is Apple’s comprehensive App development tool suite, including tools to write code, graphically build your app’s user interfaces, debug, and measure performance. It’s free if you’re already an Apple Developer, but if you’re not, you can buy it for $4.99 on the Mac App Store. (Note: it is a huge¬†download, more than 4GB. Go do something else while it’s downloading!)

Syllabus and Homework

The course materials can be found here.

One final note: these materials were produced before iOS5 and Xcode 4. However, the updated lectures for these newer versions should be posted in early November, 2011 (soon!) That said, I’ve taken some of the classes already, and I haven’t had any issues even though I’m using the newer version of Xcode.

Recommended Prerequisites

You’ll be best prepared to dive right into iOS development if you have prior experience with:

However, if you’ve got enough drive, these deficits in experience are merely obstacles to overcome. Apple’s tools for iOS development amount to the most advanced and straightforward graphical application stack I’ve ever seen. An awful lot of the scary and complicated stuff is handled automatically for you, and you can mostly build your entire applications in Interface Builder by dragging and dropping the buttons, sliders, etc. that you need to make your app tick!

Disabling Chrome’s Obnoxious HTML5 Form Validation

Has anyone else been bitten by this recently? You’re making a form for your website, and you need to collect the user’s email address. Rockstar web developer that you are, you use Google Chrome to test, and you’re using the fancy new HTML5 <form> tags. You maybe have something like:

<form id="signupForm" method="POST"><code>
<input id="email" name="email" type="email" />
<input id="passwd" name="passwd" type="password" />
<input id="confirm" name="confirm" type="password" />

And then you go to test out your form in Chrome. You type in a bogus email address to test your server-side input validation.

And when you hit enter to submit the form, you see this:

Where did this come from!?! Chrome apparently tries to do its own form validation. Which is great I guess, but not when you want to do your own custom validation.

Luckily, this is easily disabled using the “novalidate” attribute in the <form> element, like so:

<form id="signupForm" method="POST" novalidate>