Objective-C was designed to "enable sophisticated object-oriented programming, and extends the standard ANSI C language by providing syntax for defining classes, and methods, as well as other constructs that promote dynamic extension of classes." With that mouthful of jargon rolling around in your head, we'll discuss the myriad of options for iPhone and iPad development.
Apple's iPhone Developer Program
Naturally many developers will want to sign up for Apple's iPhone Developer Program, which costs $99 per year, and provides access to all the iPhone 4 tools, as well as the ability to submit applications to the App Store. Note that developers can become registered Apple developers without joining the iPhone Developer Program. As a registered Apple developer, which is free, access is provided to:
- Downloads - Get the latest builds of iOS, iPhone SDK and iTunes.
- Getting Started Videos - Apple experts discuss a range of introductory concepts for iPhone development
- Getting Started Documents - Fundamental concepts and best-practices for iPhone development
- iPhone Reference Library - Technical documentation on iPhone development
- Coding How-To's - Incorporate features of iPhone in your application
- Sample Code - Great for understanding and inspiration for development of applications
Apple Xcode 3
Xcode is Apple's full-featured IDE (Integrated Development Environment) that integrates the editing of source code, with build and compile steps, to a graphical debugging experience, while providing a view of your source code throughout the process. It also features an Interface Builder, which is an easy-to-use graphical editor for designing iOS applications. Xcode includes the Xcode IDE, performance analysis tools, iPhone Simulator, and OS framework bundles (Mac SDKs and iOS SDKs). The download is free, but you must be registered as an Apple Developer. Xcode also requires the use of an Intel-based Mac running Mac OS X.
Rhodes is an open source framework which enables developers to create native apps for the iPhone, as well as Windows Mobile, BlackBerry, Symbian and Android. The apps that are created using Rhodes are true native apps which are able to take advantage of the iPhone's capabilities (GPS, PIM contacts, camera, etc.). One advantage of using Rhodes is that the source code can be compiled to run on all major smartphone devices.
iPhone User Interface Framework - iUI
It is worth mentioning that there are other options for developers who wish to leverage their current skillset while developing iPhone applications. Zimusof's DragonFireSDK allows developers to use C and C++ programming to develop applications using Microsoft Visual Studio or Visual Studio Express. Zimusof is responsible for packaging applications and handling developer submissions to Apple's App Store on behalf of its customers. Developers submit their apps to Zimusoft after development and testing on their own Windows PCs. Pricing for DragonFireSDK is $99 and includes one iTunes App bundling, with additional bundles available for $10 each.
Yet another solution is to use the Corona SDK, a software development kit which enables developers to create high-performance, multimedia applications and games for the iPhone without using Objective-C or Cocoa--Corona SDK uses the Lua scripting language, which looks very similar to Adobe's ActionScript 2.0--which isn't suprising since the Corona SDK was created by a team of former Adobe mobile engineers who founded the Ansca Mobile software company. Corona sells for $99 per year, and developers must also be members of the Apple iPhone Developer Program, and have a Mac machine running OS X 10.6 or higher.
GCC, the GNU Compiler
The GNU Compiler Collection includes front ends for many programming languages, including C, C++, Objective-C, Fortran, Java, and Ada, as well as libraries for these languages (libstdc++, libgcj, etc.). It is free, and is available for AIX, DOS, HP-UX, Solaris and Windows platforms.
As you can see, there are many ways to develop applications for the iPhone and iPad. Some require you to know how to program using Objective-C, while others allow you to create apps using your existing skillset. Some are free, while others are commercially available. Many require a Mac, while others can be used on Unix and Windows operating systems. All in all, there are plenty of options available for developers.