iPhone Apps without Objective-C

0321566157-233x300.jpgYes, 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 plugin Rails 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.

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-8: Just found out about NimbleKit and iWebKit.

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-04-14: Apparently JavaScript-based frameworks like Titanium, Rhomobile, PhoneGap and NimbleKit are “not just allowed but actively encouraged” by Apple.

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!

Update, 2012-05-29: MoSync: “With the MoSync SDK, you can build mobile apps for iOS, Android, Windows Phone7, Symbian, Windows Mobile, JavaME and BlackBerry using C/C++, JavaScript/HTML5 or make hybrid apps combining both.”

Similar Posts: