Last night, I finished re-doing the mobile version of this site using jQuery Mobile. The only other mobile JavaScript library I have worked with so far is Sencha Touch and I must say, they are vastly different. My prognosis? If I am going to make a mobile version of a website, I am going to use jQuery Mobile. If I am going to make a “native” mobile application, I will be more likely use Sencha Touch.
So how do they stack up?
If you’ve worked with EXTJS, working with Sencha Touch is not going to be a hard transition at all. But the truth is that most people have not worked with EXTJS. If you haven’t, the learning curve may be a little staggering at first. With Sencha Touch, you rarely use any pre-rendered HTML. Everything is added to the DOM through JavaScript. This might be a big paradigm shift for some people, but once you get acclimated to it, it really isn’t a huge deal. The Sencha Touch library is different than jQuery in that instead of working directly with the DOM, one element at a time, you are typically working with components that are comprised of many DOM elements. In fact, you often won’t even need to think about what Divs, Tables or Span tags go together to make a component.
jQuery Mobile, however, is completely different. With jQuery Mobile, you work with actual pages (not just HTML that is rendered to the DOM). The script automatically grabs the pages for you with Ajax. After it loads the page, it can do any fancy transitions that we have come to associate with native mobile applications. The JavaScript that you will write with jQuery mobile is actually pretty minimal. There is a lot of JavaScript “magic” happening behind the scenes that you’ll never even have to think about.
In my opinion, Sencha Touch is absolutely more versatile. If you feel a need to have complete control, Sencha Touch is probably for you. If there is ever anything that you can’t do with Sencha Touch, you can pretty easily write a plugin for it. That is why I would usually pick it over jQuery Mobile for writing a native application in Phonegap.
jQuery Mobile is definitely easier to apply to an existing mobile site. It provides great progressive enhancement though it’s smooth transitions and smart navigation. However, I would feel very limited with it if I was trying to write a sophisticated application.
What are your thoughts? Have you used jQuery Mobile or Sencha Touch? Which do you prefer and why?



I looked into Jquery Mobile before. Do you think it would work within another framework? Or, do you think it would be easy to adapt a framework to work well with it? (like ASP.NET MVC)?
jQuery mobile should work really well with any sort of server-side framework. I actually made a mobile version of a WordPress site with it. The one catch with jQuery mobile is that it won’t execute new JavaScript included on any page but the first one that is loaded to avoid script collisions, so all of your JavaScript has to be external and loaded with the first page that people hit.
Hello. I`m from Korea.
First, thank you for this sentence. It`s very nice writing.
I want introduce it my friends. Can I quote this sentence on my Korean-site? Naturally, I`ll mark your copyright and URL
@Kim, Jong-Kwang Absolutely! If you don’t mind, can you give me the link to it once it’s up? Thanks!
of course, i`ll remain link. thank you :)
Thanks Tyson, this is exactly the kind of concise comparison I was looking for.
The way you describe them, it seems that Senecha Touch would be a good solution for a developer such as myself that does not have the html skills, but rather a focus in the traditional OO languages (Java in my case)
You are exactly right, Nenad. jQuery mobile is easier built around HTML markup whereas Sencha Touch is built around object oriented JavaScript. If you’re coming from a Java background, Sencha Touch is definitely the best choice for you.
I tried 3 Mobile Frameworks. Sencha, Jquery Mobile and dojox.Mobile, and the best for me is definitively Sencha-touch. This is more flexible than the others and looks more mature. Sencha is very different, and probably harder to learn, but it’s worth !
I tired jquery mobile, but not sencha.
I understand from your point that I can still go for jQuery mobile if I want just a mobile app and NOT a native app.
I would suggest to use sencha for complex enterprise application or a pure native app (with help of phonegap)
Can you share some knowledge on how to setup sencha on windows where IIS is already installed and apache installation fails.
I’m not sure I follow… Sencha Touch is all client-side code, so it shouldn’t matter what kind of web server your are using.
I researched a lot but finally found something useful.
Got a clearer idea,
If I want the app to be fully web based and no native, I will have to resort to sencha otherwise, if only UI is concerned, I can go for JQueryMobile
http://www.the4thdimension.net/2011/07/sencha-touch-vs-jquerymobile.html
What particularly about JQM makes you feel “very limited”? I don’t have extensive experience with Sencha but I somehow feel “limited” by it. I mean, I can always roll my own elements using HTML. I can do the same with Sencha but have to resort to typing HTML in JavaScript files.
It is true that Sencha comes with more predefined widgets, though.
Superb write-up. Nailed the important point. Irritating how people try to dance around these serious SW Design choices. The idea of generating code or UI is an old one for sure. Most apps don’t need that. Web Pages already are write-once, run anywhere. and, NO INSTALL.
Plus, doesn’t everyone already know jQuery by now? So I can hire people off the street.
This is a great analysis. I have developed only native apps up until recently I set out to create an html5 mobile app prototype. I chose to use the PhoneGap JQueryMobile stack. Being that JQuery was not at a stable 1.0 release up until weeks ago, the experience was not as much of a slam-dunk as I expected for implementing well known html5 components. Things that should be simple like passing parameters from one page to the next have nuanced solutions. This post has incited interest in trying Sencha next.
Nice set of articles. Last month, I finished re-doing the existing native mobile application (insurance app) as a mobile web standard application version using Sencha Touch. I had a fantastic time working in Sencha Touch; we could develop some pretty impressive apps that can run on different mobile platforms like android, Blackberry, iPhone and iPad. The only mobile JavaScript library I have worked with so far is Sencha Touch V1.1 and I must say, if I am going to make a “native” looked mobile application with mobile web standards, I will be more likely use Sencha Touch framework.
However, If you compare with native I must admit, I felt a bit duped by the description of the Sencha Touch app after I develop the whole application, downloaded and launched the into the device. I was expecting something bigger gorgeous, imaginative and longer that would appeal more to the business prospective. And what I got was just not something huge. In order to be fair in this review, I have to juggle the expectations set up with my personal experience and connect that to what I actually got.
I’m glad you enjoyed them, Neel! I really need to write a more in-depth follow up to this with some code examples at some point. I think when I wrote this article, both Sencha Touch and jQuery Mobile were in beta, so they have both come a long way since then.
Would you mind expounding on what you mean by expecting something bigger from Sencha Touch? Are there features you were expecting that they don’t provide?
Hai.. I’m From India.
Currently i’ worked with jQueryMobile Framework for using both Web & Apps. But after my 1 year experience in jQuerymobile i noticed that its not much good for Mobile Apps. but in the case of Websites it is perfect as the Author said. So now i’ learning Sencha Touch. But its bit difficult than jQuerymobile. But compared to jQuerymobile its Performance is superb. Now My team are focusing on Cross Platform Applications using Sencha Touch. So we are on the way of developing Sencha Touch Apps. I’ really glad to know that we are in correct way.! :-)
Ullas, it sounds like your team is definitely proceeding in the right way. I’m glad to hear I’m not the only one who feels that way about the current mobile JavaScript frameworks!
Hi All;
I am from India ,Currently I hv worked on JQueryMobile framework from last 3 month of experience, but what I have seen while developing my web apps by calling native api.In my application there is dependency on UI as well as native part. So I have acheive a lot using JQUERYMObile but some hurdles came in between and spoils all my work,like in webview I can’t able to fix the UI as it is scrolling with whole webview,other issues are as well regarding not able to fix header and footer as it is scrolling and many-more little issues which can totally crashes your apps.
I have never used SenchaTouch.Please recommand me according my work .Can I see some R&D with JQM or start to work with Sencha Touch.
I am not using PhoneGap wrapper .I have write my own wrapper and use it for native controls.
Kindly comment on this
Thanks
Sumit
Sumit i totally agree with you, jquery mobile is unstable and not mature enough to be used inside a production app. I think SenchaTouch is the right choice for you.
I agree with your summary: jqm is page based and best suited to a server-side controller. If you try do a client side app (esp. and offline one) with lots of dynamic HTML it’s awkward. But Sencha’s steep learning curve makes me wish there was a 3rd alternative…