Frameworks, jQuery, Mobile

What mobile framework to choose – PhoneGap, Sencha, Titanium , jQuery Mobile…

Not so long ago you could only develop on Objective-C (for iOS) or Java (for Android). Still recently a lot of new mobile app development frameworks have appeared and found their own niche on the market. I think, you have heard about such frameworks as PhoneGap, Sencha, jQTouch, jQuery Mobile, Kendo UI, Corona, Titanium Appcelerator, RubyMotion and many others that allow to create apps using Javascript, Java, Lua and Ruby.

So how do you define what framework to use? Below you could find a few tips that could help you to make a choice.

1) If you know programming
Of course most of the frameworks expect you to know programming. Still even if you don’t know programming there are a number of app builders that allow you to create complex apps in the “drag and drop” environment. In case you are dreaming about developing a game, so GameSalad will help you: it has an intuitive Drag and Drop UI which gives you the possibility to build apps without coding. If your intention is to develop a business app, so BiznessApps will let you build the app for many scenarios.

2) Create apps in a language you know
I suppose you all know that the “native” languages for iOS and Android are Objective-C and Java respectively. Even if you don’t know these languages, please don’t give up as you can create apps in a language that you know. In case 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 J In case you know Lua, you can easily build a cross platform native game using Corona. In case you know Ruby, RubyMotion will help you to build an iOS app. In case you are master of Java but would like to make smth for iPhone, you can use trick with GWT-touch to create HTML5 app and then compile it using PhoneGap J.

3) How native or cross-platform do you want it?
Do you know that there is a kind of tradeoff that some of the frameworks make? For example, a HTML5 app build with the help of Sencha, jQtouch and GWT-touch could have almost native look and feel, but not 100% native of course. But if you use Titanium and Corona with native UI components, the apps will have 100% native look. The advantage of HTML5 apps is that they could be further compiled for more platforms. Plus they can also be deployed on the web without making any code changes.

4) If you are a web developer and want to continue using your old tools
Firstly, hello to web developers who are reading this article 🙂
Another advantage of these HTML5 apps is that a web developer already knows most of the technologies and has most of the tools available. For instance, if a web developer has to create an app using jQuery Mobile or Phonegap, he can use IDE which he has always been using, for debugging you are welcome to use Chrome Inspector or Firebug. If you still insist on using your trusty tools, go on with Sencha or jQuery Mobile.

5) If you select a frame by taking into consideration their “pros” or “cons”
In case you choose a framework based on “+” and “–“, so hope the following short list will be of use to you.

· jQuery Mobile

+ Great tools like Theme Roller and Codiqa UI builder;
+ View only framework (you can use whatever to handle the MC parts)
+ Based on jQuery;
+ Lots of plugins;
+ Most popular.

– Could be too heavy for some smartphones;
– No official paid support.

· Sencha Touch

+ Based on ExtJS;
+ Complete MVC framework;
+ Official paid support;
+ Sencha Architect is great.

– Some controls look off;
– No native controls;
– Performance;
– Few customization options;
– Client side DOM generation.

· Titanium

+ Rapid prototyping;
+ Web-oriented;
+ Well-known JavaScript for many developers;
+ It’s sross-platforming;
+ Native UI.

– Increasing complexity (and costs);
– No freemium;
– Flexibility limitations;
– Native UI*.
*The native UI is both an advantage and disadvantage. If your UI is simple enough, you may be able to use a single code base. But more than likely, you will need to tweak the UI for each platform to take full advantage of each platform.

· PhoneGap

+ Single code base for all platforms;
+ Rapid testing and deployment;
+ Multiply Platforms;
+ Access basic native functionality;
+ Offline usage.

– Poor performance;
– Lack pre-built UI widgets, transitions, standard controls;
– Access advanced native functionality;
– Complex Business Logic etc.

Make your right choice my dear readers 🙂

Hope this article was interesting and helpful to you. Should any questions or comments arise, you are welcome with them.

Elvira Golyak

Elvira Golyak

Business Development Manager

Skype: elviragolyak
LI Profile: Elvira Golyak

13 thoughts on “What mobile framework to choose – PhoneGap, Sencha, Titanium , jQuery Mobile…”

  1. What about sticking to the first two options mentioned, using Objective-C for iOS and Java for Android and enjoy, speed, transparency & availability of most recent features and other advantages of native development ? Sounds like win win solution to me.

    1. Don’t you feel iOS has something lacking when trying to develop the business logic tier? I can do simple apps with few screens but anything more its hard to see the big picture because of the Obj-C syntax. Java is not as bad. And I’m a c# native. Maybe the answer is biz logic stays on the server and mobile apps are just interfaces to web services in the cloud.

  2. PhoneGap is most promising among these technology. Titanium is easier to use So if SRS is suitable to titanium so should go for titanium otherwise choose phoneGap.

  3. This is a great question and discussion overall.
    There are so many different choices in the market that you really have to know what you want out of the final product. Are you building an app for the general public or more focused for specific group of employees in a work setting(i.e. a sales team, or for expense mgt, or retail stock tracking). That one question, I think can have a big influence on whether you go for a native app or something that is more portable across different platforms. How will the app help users interact with each other is also an interesting question, as the convergence of Mobile and Social is starting to happen all around us. For the work setting, I think a common requirement will be to support collaboration. Here’s a new entry into the mobile development space that is focused on both mobile and social – designed to help enterprises deliver great mobile solutions for their workforce. You can learn more at

  4. omg, so much bs about sencha touch:
    – No native controls;
    Erm.. this applies to every mobile web framework out there
    – Performance;
    If you’re a noob you will get performance issues with ANY mobile web framework.
    – Few customization options;
    Sencha touch apps are easy to customize & this is point is a total bs.

    1. Most large mobile apps are moving to Sencha from jQuery mobile because of it’s consistency and performance. Heard of fastbook?

      You’d have to add performance as a con for jQuery mobile tho.

      Nice try tho.

  5. I find the Poor Performance bulletpoint under phonegap amusing. If you program it correctly, You can have fantastic performance. Hell. most people can not tell the app is not native i’ve found in my experiences if done right and using kendo mobile ui for the native look. This article is a bit misleading. Most hybrid web apps that have performance problems are caused by the developers of the app, not the framework.

  6. You’re missing the (IMHO) best solution which will let you code once and reuse it on iOS, Android, Windows Phone, Windows Desktop and Mac OS: Xamarin! C# and .NET have such a powerful and flexible APIs *and* you’ll get native performance. For any .NET developer who wants to move to mobile platforms, I think there is no way around Xamarin, just like HTML5 apps are the natural step for Web Developers.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s