Xcode and Objective-C resources for iPhone Application Developers
If you'd like to become an iPhone Application Developer, there are several resources available online and offline to get you started.
There are two kinds of iPhone applications: Web-based and Native. Web Apps combine the iPhone's Multi-Touch technology with Safari web-based interfaces (built in HTML, JavaScript and CSS with additional functionality provided by your language of choice: PHP, Java, etc.), while Native Apps are designed and developed in Apple's Xcode software using the Objective-C language.
Web Apps can be developed on any platform, but if you do so on a Mac you'll have access to Apple's excellent Dashcode IDE and iPhone Simulator (a full version of the iPhone OS running as a desktop application) to debug your application.
Native Apps can only be developed in the Objective-C language on a Mac using Apple's free Xcode IDE. To debug your Native Apps, you can run them in the iPhone Simulator or configure your actual iPhone as a development device for testing.
Web Apps
Safari is Apple's web browser based on the WebKit engine, and the Safari Dev Center provides Safari Development Videos, a Reference Library, Technical Articles, Coding How-To's and Sample Code to enable iPhone OS integration, visual effects, client-side storage and offline applications for Safari-based Web App development.
If you're a Mac user, Apple's Dashcode software (included for free with the Xcode Developer Tools) is a great iPhone Web App IDE that provides a library of drag-and-drop application elements and sample code as well as the ability to test web applications in the iPhone Simulator.
Web Apps are hosted on your own servers and are not distributed through the App Store, however Apple does have an online listing of Web Apps to tell the world about your software.
Native Apps
To develop Native Apps you'll need three things: Apple's free iPhone SDK (including the Xcode Developer Tools), a free iPhone Developer Account, and a Mac.
The Xcode Developer Tools are included for free on all Mac OS X install discs or can be downloaded from Apple's iPhone Developer website. They include the Xcode IDE (a graphical workbench that integrates a professional text editor, a robust build system, a debugger, and the GCC compiler), Interface Builder (a drag-and-drop application interface designer that integrates seamlessly with Xcode projects), Instruments (a suite of performance analysis tools), Dashcode (a Dashboard Widget and iPhone Web App IDE), the WebObjects Framework (Apple's Java-based enterprise framework for developing scalable Web applications), and a complete set of reference documentation.
Native Apps can be distributed via Apple's App Store or direct copying to iTunes based on one of two models:
- Standard Program ($99) - For developers who are creating free and commercial applications for iPhone and iPod Touch and want to distribute applications on the App Store
- Enterprise Program (*$299&) - For companies with 500 or more employees who are creating proprietary in-house applications for iPhone and iPod Touch
Objective-C and Cocoa
Objective-C is the reflective, object-oriented C-based programming language used to develop most Mac (and all Native iPhone) applications.
Cocoa is Apple's collection of frameworks, APIs and accompanying runtimes that make up the development layer of Mac OS X. The Cocoa Frameworks are completely accessible to Objective-C programs, and can even be accessed using native syntax in AppleScript, Python, and Ruby.
There are several resources available online to learn about Objective-C and Cocoa, including:
Cocoaloab.com - Become an Xcoder
Apple.com - Introduction to the Objective-C 2.0 Programming Language
Apple.com - Object-Oriented Programming with Objective-C
iPhone Dev Center - Getting Started
iPhone Dev Center - iPhone Application Programming Guide
iPhone Dev Center - iPhone Development Guide
iPhone Dev Center - iPhone Human Interface Guidelines
iPhone Dev Center - Your First iPhone Application
iPhone Dev Center - iPhone Reference Library
Apple.com - Cocoa Overview
Apple.com - Getting Started with Cocoa
Apple.com - Cocoa Fundamentals Guide
Apple.com - Cocoa Framework Reference Guides
Apple.com - Cocoa Reference Library
The Pragmatic Bookshelf has several screencasts available for aspiring Xcode developers:
Getting Started with Xcode and Interface Builder (free)
Coding in Objective-C 2.0 (Episode 1: Classes, Objects and Messages; Episode 2: Memory Management; Episode 3: Debugging - $5 each)
Becoming Productive in Xcode (Essential Shortcuts - $5.00; Power Moves - $5.00)
Writing Your First iPhone Application (Episode 1: Creating a Table View; Episode 2: Linking Table Views with a Navigation Controller; Episode 3: Adding Text Fields and Buttons; Episode 4: Editing On a Table View; Episode 5: Reordering Rows and Persisting Data - $5 each)
... in addition to an iPhone SDK Development eBook ($24.00) and a free Xcode Shortcuts Cheatsheet.
Additional iPhone Development Resources
Blogs:
Podcasts / Screencasts:
Stanford iPhone Application Programming Course (also available via iTunes)
Open-Source Libraries:
Three20 Open-Source Objective-C Library
Matt Legend Gemmell - Cocoa Source Code
Communities / Forums:
MacRumors Forums for iPhone Programming
Books:
Beginning iPhone Development: Exploring the iPhone SDK
Programming in Objective-C 2.0
Cocoa Programming for Mac OS X
Pragmatic Programmers' iPhone SDK Development
The iPhone Developer's Cookbook: Building Applications with the iPhone SDK
iPhone in Action: Introduction to Web and SDK Development