69

I wonder if I were to develop a mobile Web app (now, in two weeks, or in a month), which one should I go for? Which one would you mobile Web developers go for?

If jQM 1.0 were officially released today, I would most likely embrace it (as long as it actually delivers what it promises). Now that it is in alpha, I wonder whether it is worth to jump into it yet for a commercial grade project? Would Sencha Touch be a better alternative?

egerardus
  • 10,746
  • 11
  • 75
  • 117
William Niu
  • 15,553
  • 7
  • 49
  • 92

20 Answers20

65

Sencha Touch is an application framework (you create your interface programmatically through Javascript) while jQuery Mobile is more of a mobile enhancement library (you write regular HTML for your content, then add jQuery mobile for transitions/animations). jQuery Mobile has an easier learning curve, but Sencha Touch can better simulate "native" apps.

endemic
  • 1,279
  • 1
  • 9
  • 20
41

The first question you need to ask yourself is what is the purpose of the application. If you want to release an application for sales on one of the retail outlets (iTunes, Andoid App store), or you need access to device specific functions that are not accessible via local APIs yet (accelerometer, camera, contacts, etc) then you should be thinking Native or one of the hybrid solutions (Appcelerator, PhoneGap, etc.).

If your audience is going to be more in the "mobile web" space, such as a mobile version of a corporate web desktop site, or intranet web application port, then you should be looking at Sencha Touch and jQuery Mobile. The decision between those two is really going to be based on you development experience and and what you feel more comfortable with. Sencha Touch is a VERY robust platform that has a Desktop (ExtJS) and mobile (Sencha Touch) that mirror each other so knowing one pretty much allows you to get up and running with the other. Also, Sencha has moved to an MVC model on the client which really helps to organize client side code and make it much more congruent with server-side development platforms.

The post above is actually incorrect, using the MVC pattern on the client combined with the historyUrl on your dispatch commands gives you the ability to use the browser back and forward buttons of the browser, so that is not exclusive to jQuery Mobile. Also, the Sencha Team's suite of products includes a Designer application that provides Designer which is a WYSIWYG editor that allows for the drag and drog creation of UIs. This company's roadmap has them in the process of updating the Designer app to allow for the drag and drop design of Touch mobile screens and application that will function with the MVC pattern. They are also getting ready to release a new version of the Sencha Command tool that will automatically generate entire MVC application structures for you in a matter of minutes, which you can then add the necessary custom code to round out your application. Lastly, the new SASS theming capabilities allow designers to use CSS3 and SASS config files along with variables and Mixins to generate cross-browser CSS style sheets for your application.

So, the decision of which way to go for the mobile web development question comes down to how comfortable you are with object oriented javascript. If you are very comfortable with it, then Sencha Touch is the way to go as it very extensible class system built into the core engine that can be customized to your hearts content...but if you have minimal experience with JS and you want the server to deliver your UI and don't mind seeing the Address bar drop down to move between pages (less web 2.0 looking), then jQueryMobile is the way to go.

It's pretty obvious that I am biased to Sencha Touch due to its well thought out class structure, extensibility, very active user community, web/mobile continuity, and constant improvement to the core framework and new tools that simplify development efforts. And not to mention that the Touch platform is more mature as jQM has not reached production mode yet.

SeanO
  • 618
  • 6
  • 19
user576929
  • 421
  • 4
  • 2
  • 2
    One thing about Sencha Touch that kept me away is its large size (>350kb for the main `sencha-touch.js`, minified not compressed). I don't know if it will requires more files in dev. IMO, until bandwidth and speed is less of a bottleneck for mobile devices, this size is not acceptable. – William Niu May 04 '11 at 00:24
  • 2
    Well, the thought process is to deliver the application framework up front, then make XHR requests to retrieve much smaller pieces of info like XML or JSON data from the server. So while you are correct, the initial load times are a bit larger than JQM, you make up for it during the ajax page requests, rather than having to go to the server for full pages for many of the pages in other frameworks. So long as you can present the user with a sufficient loading indicator, most are more than willing to wait for the benefits of superior intra-app page performance and user interface widgets. – user576929 May 04 '11 at 03:02
  • 1
    @user576929: Thanks for the explanation! You brought up a valid point. If this web app can be perceived as a replacement of a native app by users, the download size is actually tiny. The assumption, though, is that the user needs to have that mindset. I wonder when this assumption can come true. – William Niu May 04 '11 at 04:44
23

I've been using jQuery mobile for a while now. It works well under Blackberry 6, iPhone, and Android.

I wrote an article about it here: jQuery mobile alpha

Though it's alpha, they are showing good progress. I've been looking into their development in github, seems like there's going to be cool stuff by early 2011.

UPDATE 2011-12-01 jQuery Mobile relased version 1.0, finally out of alpha. Read more about it here: http://jquerymobile.com/blog/2011/11/16/announcing-jquery-mobile-1-0/

tpae
  • 6,030
  • 2
  • 33
  • 64
  • 7
    just to add to this, I've also been using jquery mobile for a while (2 apps). It is pretty awesome. However, on my android HTC magic, it does not run nearly as smoothly as sencha touch. This makes me suspect that on slower devices, jquery mobile isn't quite ready yet. The difference is big and I am in the process of switching to sencha – i8abug Jun 07 '11 at 14:12
  • 1
    Agree! JQM gives poor performances comparing to Sencha. It's much more complicated to study, but worth every second of it. – neoswf Nov 24 '11 at 19:47
  • 1
    Yes Olivier, in my experience ST2 is much lighter, feature rich and robust than JQM. – Ricardo Apr 20 '12 at 10:43
11

If you're going to make a mobile version of a website, I am going to use jQuery Mobile. If you're going to make a “native” mobile application, I will be more likely use Sencha Touch.

http://tysonlloydcadenhead.com/blog/jquery-mobile-vs-sencha-touch

Tarek El-Mallah
  • 3,630
  • 1
  • 28
  • 42
5

Sencha touch has lived longer than jquerymobile but I found that jquerymobile handles device back button much better than SenchaTouch. I always consider back/history button handling is important in my apps, so I prefer jquerymobile. I always consider myself a JavaScript programmer, but I like the fact that I rarely need to to type any JavaScript code when I use jquerymobile. jquerymobile design is brilliant IMHO.

Aldian
  • 51
  • 1
  • 1
  • 1
    That's changed in Sencha Touch 2, we now have history support built into the framework (I'm the author...). We have a guide to it in our vastly expanded documentation - see http://docs.sencha.com/touch/2-0/#!/guide/history_support – Ed Spencer Feb 03 '12 at 08:33
3

I am also in favor of sencha, JQM is really slow and failed to give an impression of an native app.

  • Praveen
Praveen
  • 39
  • 1
2

I've been trying out the sencha architect and to be honest ithas been a nightmare to get running.

My background is DotNet, html, javascript, VB, java and have been using eclipse etc for a while so am not a huge newbie with figuring out dependencys etc.

Here is what I have struck:

I went to the Sench site, downloaded Architect. It then got me to download toolkit and sencha touch. I downlaoded exactly what was recommend / instructed by the help files / site. I have Sencha Architect V2.1.0 Build 584., sencha-touch-2.0.1.1-commercial.zip, SenchaSDKTools-2.0.0-beta3-windows.exe

I also downloaded and installed a new java sdk / run time etc. The install has been done on a dead clean XP box (vmware). Web server is xampp.

Sencha does not recognise the SenchaSDKTools-2.0.0-beta3. You have to hack it using hard to find instructions. Even after hacking it the architect fails to use the proper SDK and gives error messages on deployment.

There have also been numerous errors to figure out along the way and issues where data just wont load even having followed instructions to the letter.

I have spent 11 hours getting to the point where the application will run properly without whinging but it wont deploy. It is bad enough learning a new tool / framework etc without the ide causing grief and the "instructional demos" leading you up the path.

There are lots of people getting the same errors all over.

After 15 hours of effort I am giving it up as a bad job and am returning to IBM XPages / PHP and Blueprint CSS with old fashioned, hand coded html5 / CSS3 and jquery / Ajax / JSon apps.

My reason for doing this: Application Architect keeps pushing you back to the command line. I love the command line, give me a bash shell and vi and I'm good to go. However for complex, multi file deplyoments such as mobile apps a good IDE is worth its weight in gold. Architect is not there yet. I keep needing to lift the hood and hack to get things working.

I originally looked at Sencha for a 12 year old who is interested in mobile apps and is looking for an ide to use. I tried it out - it is not suitable - even getting a hello world type app running is going to be too much for a newbie and the first app in the help files doesnt explain itself but has you copying code for pulling data from a web site you have to sign up for. (ccitybars app).

A big improvement for sencha will be when Architect works out of the box (possibly an installer with sdk, tools , touch and architect all in one) and the fisrt app -walk through is a simple hello world that then builds to entering data, saving data and then displaying data before going multi form.

Shane
  • 21
  • 1
2

why limit yourself...

Look into PhoneGap and Titanium Appcelerator

the make the comparison based on what you are trying to accomplish. I know Sencha Touch has a licensing fee and like you said jQM is not officially released yet.

This is a great time to be in the mobile space because there are so many viable options

Aaron Saunders
  • 31,625
  • 5
  • 54
  • 74
  • 2
    I am reluctant to go for frameworks like PhoneGap because of the extra layer of abstraction. I may depend on the PhoneGap team to keep their framework to be up-to-date when the native SDKs change. Don't you think this is a potential problem? – William Niu Nov 01 '10 at 04:50
  • I think that in the end, you will be more productive once you come up to speed on any of the platform, I can't think of a scenario where you would be blocked by the lack of a framework up date that cannot be resolved through a plugin if that is even necessary – Aaron Saunders Nov 01 '10 at 23:12
  • 2
    Here's a scenario for you: when the front-facing camera was added to iPhone4. I think PhoneGap probably needed to update their API to accommodate that change. Who knows what else is set to come in the future, maybe thermal detection? That's only the hardware level; Apple sometimes make changes to the firmware level. – William Niu Nov 02 '10 at 06:21
  • 2
    @William if that feature was critical to you, just download the code from github, add the functionality and move on... It still would be less code then writing the whole thing yourself. – Aaron Saunders Nov 02 '10 at 11:46
  • A generalization, but sometimes being close to the hardware has benefits. Using a framework you might get 80% working in a short amount of time but struggle with the remaining 20%. And probably wind up with a clunkier app than one fully native. – seand Dec 02 '10 at 06:10
  • 3
    Sencha Touch is now free (http://www.sencha.com/blog/2010/11/15/sencha-touch-1-0-ships-now-free/). – chrish Dec 08 '10 at 15:04
  • 9
    PhoneGap is actually an orthogonal concern to the JQM/ST issue. PhoneGap gives you a native shell in which to write your HTML/JS/CSS content - in it you can use your JS framework of choice, be it JQM or ST. – ob1 Feb 07 '11 at 16:27
  • Titanium support for Android is not very impressive. They focus much more on the iOS platform. Therefore, is you're developing an app with custom views and UI elements, it's hard(er) to accomplish it or fix it with workarounds as if you would just develop it natively in parallel (i.e. take custom tabs for example). – Mathias Conradt Oct 04 '11 at 03:46
  • @Mathias Lin once you start saying "custom" this and "custom" that then all bets are off for any of these options, if you want "custom" and you are writing for only one platform... then yes go native – Aaron Saunders Oct 05 '11 at 06:46
  • @AaronSaunders I disagree. I didn't say entirely custom everything, but just for my example with the Tabs: in Titanium you cannot (or at least a while ago) easily do any basic adjustments to the tabs at all, only go with the native style and not even applying simple styles to it. Titanium is just a whole lot of marketing BS, but not really helpful if it comes to applications that go beyond simple list views and this kind of stuff. Just compare their support (and the customization you can actually do for the iOS components, and then compare their Android support to that! – Mathias Conradt Oct 05 '11 at 06:55
  • Titanium staff even admitted it in their forum that their Android support is well behind iOS support). btw: there must have been a reason why Wunderlist, one of the 'show off' apps built on Titanium, recently switched back to native Android for their Android version. But I agree with you: developers should always go native if they don't want to use html5, but using Titanium just doesn't make sense at all cause it doesn't really save them time in the long-run, as opposed to developing natively in the first place. Why would you write in JS if the result is native code anyway. – Mathias Conradt Oct 05 '11 at 06:58
2

I think jQuery mobile is easier to learn and seems to be very promising. Version 1.0 is not yet available, but its going to be a good product. I find it very attractive because it is based on jQuery - simplicity is the motto

eric mabo
  • 21
  • 1
  • We've put a huge amount of effort into improving Sencha Touch's learning materials. We've added 20 guides from intro to deployment along with a huge amount more class documentation and a vastly upgraded documentation center app. Hope you'll take a look at what we've done in 2.x: That's changed in Sencha Touch 2, we now have history support built into the framework (I'm the author...). We have a guide to it in our vastly expanded documentation - see http://docs.sencha.com/touch/2-0 – Ed Spencer Feb 03 '12 at 08:38
2

Don't forget that there is also Dojo Toolkit Mobile. It looks nice, at least at first look and it is built on top of the proven and solid Dojo Toolkit core. http://dojotoolkit.org/features/mobile. The Dojo Toolkit don't get too much audience recently but it looks like they made a lot of progress from the times it was a bit heavy, I think it is worth looking at it.

Lukasz Korzybski
  • 6,521
  • 1
  • 25
  • 27
1

MoSync team has recently done an interesting comparison:

Which Mobile JavaScript framework is the best: jQuery Mobile, Sencha Touch, jQtouch, or Kendo UI?

http://www.codefessions.com/2012/04/mobile-javascript-frameworks-evaluation.html http://www.codefessions.com/2012/04/which-mobile-javascript-framework-is.html http://www.codefessions.com/2012/05/which-mobile-javascript-framework-is.html

jQueryMobile wins but huge boost in arm is because of licensing. I prefer jQueryMobile because I don't want someone(thing) else to write my markup, that way hacking becoming difficult (at least for me), however, I do have couple of HTML5 apps under my belt now, one each in jQM and Sencha Touch. Sencha Touch makes it smoother, very hard to learn though while jQM gets you started in a day, there are bug but you usually get around them because of amazing web community around this framework.

William Niu
  • 15,553
  • 7
  • 49
  • 92
Hammad Tariq
  • 1,483
  • 3
  • 14
  • 27
1

I was faced with the same choice about half a year ago, then went for jQTouch instead of Sencha Touch, which I found to be extremely Javascript centered. I'm currently working on a port of that same project to jQuery Mobile and I think the transition will be much smoother than it would have been with a Sencha Touch project.

Thorsten Westheider
  • 9,252
  • 12
  • 51
  • 92
1

I've built a nice production app in a few days using Sencha Touch 2.0 and it's delivering as documented. And, it's FAST. There might be some bugs, but, when I've run into one (which, is rarely), there seemed to be many ways to approach a solution so that it's really not that relevant.

Nikhil
  • 15,872
  • 20
  • 61
  • 80
David
  • 11
  • 1
1

If you know basic PHP I strongly suggest jqmphp.com. Up and running in less than 3 days a whole online mobile based site to order food!

0

Comparing the two is like comparing apples and grapes...though you want to develop mobile apps with both, the level of comfort with either depends entirely on you.

This chart might be helpful if you want to compare the features : http://www.markus-falk.com/mobile-frameworks-comparison-chart/

Tarun
  • 2,448
  • 2
  • 20
  • 21
0

Sencha Touch based apps can only work on WebKit based browsers. JQueryMobile based apps can work on all mobile web browsers.

I think you can go ahead with JQueryMobile for next 2 to 3 years. I am expecting in 2-3 years all mobile browsers will be based on WebKit engine. Once all mobile browsers start supporting WebKit, move to the Sench Touch mainly because of very good quality user interface.

mobile
  • 361
  • 3
  • 2
0

I suggest KendoUI

It is unbeatable and fast performance in a training of couple of days. Not to mention the fast update and new features and support for server side wrappers (asp.net, php, jsp). It is unique!

kamil
  • 462
  • 7
  • 20
0

I have used both and they each have conditions where one is better suited then the other.

In my opinion you would use JQueryMobile when 1. You need a quick and light weight mobile implementation of an web application. 2. You have time constraints (definitely faster to learn and implement then Sencha Touch). 3. Native look and feel is not a requirement.

When making an extension to an existing web application where relatively simple functionalities have to be extended to extended to mobile (really fast and easy) I found JQM to be extremely useful and straight forward.

In my opinion you would use sencha when 1. You want a native look and feel 2. You want a higher degree of functionality on the mobile side (possible access to native api's through phone gap) 3. Targeting the latest smartphones (performance is impressive)

Donovan Thomson
  • 1,855
  • 3
  • 14
  • 21
0

Sencha touch will be the best option is you are just starting because it is well documented and it has a community support. Also, with phonegap, you spend more time on the development and less on things about other mobile platforms. Phonegap will build the application for you , once you upload it to the builder .

Rod
  • 44,422
  • 3
  • 32
  • 51
hudson2010
  • 71
  • 1
  • 6
0

Sencha Touch looks great but it is difficult to use. The Sencha support forums offer minimal support. Sencha Touch 2.x is still in alpha is quite buggy

user1007721
  • 741
  • 1
  • 5
  • 4
  • 1
    Actually I think we have a pretty vibrant forum community. So far there are almost 10,000 posts just for Sencha Touch 2, significantly more than jqm. Also, specially right now, the team is extremely engaged with all of the Touch 2 forums. – Ed Spencer Feb 03 '12 at 08:36