How to choose the right mobile development framework

Not so long ago you could only develop in Objective-C (for iOS) or in Java (For Android).

A lot has changed recently and many new mobile app development frameworks have come up. You have PhoneGap, Sencha, jQTouch, jQuery Mobile, Kendo UI, Corona, Titanium Appcelerator, RubyMotion and many others. Among these they allow building apps using Javascript, Java, Lua and Ruby.

Android HTC and iPhones

So how do you choose what framework to use? Here are few pointers that will help you in your decision.

Do you know programming?

Most of the frameworks expect you to know programming. But even if you don’t know programming a number of app builders allow you to build sophisticated apps in a drag and drop environment. If you are building a game, GameSalad has a intuitive Drag and Drop UI which will allow you to build apps with no coding. If you are building a business app BiznessApps will let you build apps for many common scenarios.

What language do you know?

The “native” languages for IOS is Objective-C and for Android is Java. Even if you don’t know these languages you can build apps in a language you know.

If you know Javascript, you can use Sencha Touch to build a HTML5 app and then compile it for iOS or Android native app using Phonegap.

If you know Lua you can write a cross platform native game using Corona. If you know Ruby, RubyMotion will help you build an iPhone and iPad app. If you know Java but want to build for iPhone, you can use GWT-touch to build your HTML5 app and then compile them using PhoneGap.

How native do you want? How much cross platform do you want it?

There is a tradeoff which some of the frameworks make. Sencha, jQtouch and GWT-touch will create a HTML5 app and then convert them for the platform look and feel. The apps in this case look near-native, but unless you are very careful, not 100% native. In comparison, Titanium and Corona create apps using native UI components. They look 100% native.

The advantage the HTML5 apps have is that they are more cross platform and can be compiled for more platforms. They can also be deployed on the web without making any code changes.

Are you a web developer and want to continue using your old tools?

Another advantage these HTML5 apps have is that a web developer already knows most of the technologies and has most of the tools available. For instance, if you use jQuery Mobile and Phonegap to build your mobile apps, you can use your IDE which you have always been using, you can use Chrome Inspector or Firebug for debugging. If you want to use your trusty tools, use Sencha or jQuery Mobile.