Yes, it’s possible. Even if Objective-C is one of my preferred programming languages, in any case I think it’s worth mentioning that, 2 years after the official iPhone SDK has been announced, the iPhone development landscape has really grown up, and many, many different options are available today. This article provides a very high-level enumeration of some options I’ve found on the web, but I’m sure there are even more alternatives around.
Here it goes:
- First of all, remember that you can always create web apps. It’s worth mentioning that you can avoid the App Store and its quirks altogether; it’s up to you ;) This opens up the possibility of using your preferred server-side technology + JavaScript, and there’s quite a few libraries and tools that will help you create a killer web app: Joe Hewitt’s excellent iUI (yes, he’s the same guy behind the Three20 project), the
Tank Engine Rails pluginRails iUI plugin (Tank Engine does not work very well unfortunately), iPhoney or Eclipse are just some of the alternatives. - If you like C++, you can choose between the official SDK (yes, you can create iPhone apps with just C or C++), or other alternatives like nui, POCO, Boost or haXe. And apparently, soon you’ll be able to use a Symbian C++ toolkit as well (and who knows, maybe even we’ll get Juce on the iPhone one day too!).
- If you are a Flash and ActionScript developer, you are most probably aware that you can create native iPhone applications using Adobe Flash CS5…
- For C# and .NET developers, there’s MonoTouch, which has received extensive press coverage lately.
- If you want to use Lua, you can use the Wax framework.
- If your idea is to “write once, run anywhere”, and “anywhere” in this context means Android, iPhone, BlackBerry and other mobile platforms, you might want to try rhomobile, Corona, PhoneGap or QuickConnect. The XMLVM project might also interest you, as it consists of a cross-compiler toolchain which can be used with Ruby, .NET, Java and can generate code for many platforms at once.
- Finally, if you are into game development, the quantity of libraries allowing you to create iPhone games is simply astounding, many supporting alternative programming languages: SDL, Unity, SIO2, Torque2D, cocos2d and Game Haxe.
- And of course, there’s the official SDK, with Objective-C and Cocoa Touch all the big buzz around it.
What do you think? Is there any library or programming language that I’ve forgotten in this list? Just leave the name and URL in the comments below.
Update, 2009-11-05: Just found the Swebapps service which allows you to create (very basic) iPhone apps without coding.
Update, 2009-11-24: Here’s a new entry for the growing list of alternative frameworks: Crystal SDK by Chillingo.
Update, 2009-11-25: Another one, in C++ and cross-platform: Airplay SDK.