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:
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-25: Another one, in C++ and cross-platform: Airplay SDK.
Update, 2009-11-28: Just found out that two out of three major C++ cross-platform libraries, namely wxWidgets and Juce, both have limited support for creating iPhone apps, while there’s a project to get the third one, Qt, to do this as well. This is indeed huge.
Update, 2009-11-29: My friend Bertrand Dufresne has just told me about two amazing web app frameworks: jQTouch (a jQuery plugin which goes beyond iUI in many ways, says Joe Hewitt himself) and WebApp.net. Check out the demos of jQTouch and WebApp.net online with your iPhone, you will really be impressed (particularly by jQTouch).
Update, 2009-11-30: Max Penet passed the following alternative tools allowing developers to create iPhone apps: Yahoo! Blueprint, a framework to create iPhone apps in Scheme (including debugging support) and Appcelerator. Thanks Max!
Update, 2009-12-15: Now it’s the turn of the Bork3D C++ Game Engine.
Update, 2010-01-29: Here’s a new one, for Windows developers using Visual C++: DragonFireSDK.
Update, 2010-03-09: Another platform to build iPhone apps: iPFaces
Update, 2010-04-09: Apple has changed the terms and conditions of the iPhone SDK, particularly clause 3.3.1, to ban the use of some of these 3rd party frameworks. This is unexpected and (somewhat) disappointing.
Update, 2010-09-09: Well, now Apple has lifted clause 3.3.1, which should have never been added to begin with.
Update, 2010-10-24: Just found out about libRocket, another cross-platform UI library with iOS support.
Update, 2010-11-18: A public spreadsheet with several cross-platform mobile app frameworks enumerated.
Update, 2012-05-03: RubyMotion allows you to create iOS applications with Ruby!