Sencha Touch or jQuery Mobile? – Read This Before You Make a Decision

If you ever need to choose between jQuery Mobile and Sencha Touch, you need to consider these factors before making your decision:

About jQuery Mobile

  • It’s a UI-only library, which relies on jQuery and jQuery UI for DOM manipulation, Ajax and other utilities
  • To create UI widgets, you generally need to hand-code their html, and the library enhances their look and feel
  • As it works by enhancing the html you create, it allows you to re-use or re-purpose existing html
  • Some simple applications can be created using only html, without having to write JavaScript code
  • It has a relatively small object model, which makes it faster and easier to learn, specially if you are familiar with jQuery
  • It does not impose a coding discipline or structure, which gives you flexibility, but can lead to applications that are difficult to maintain
  • Easier to integrate with other frameworks
  • Targets more devices than Sencha Touch
  • Not tied to a particular vendor

About Sencha Touch

  • It’s a library that tries to do it all: UI widgets, DOM manipulation, Ajax and other utilities
  • Does not depend on other libraries
  • Follows a JavaScript-centric approach, where you are required to write little html
  • Has a large object model, which provides more features out of the box, but takes longer to learn
  • Imposes a coding structure and discipline, which generally results in well-organized code
  • Provides built-in server and local storage abstractions, which make it easier to perform CRUD operations on relational data
  • Has built-in facilities for creating iOS and Android native packages
  • Targets less devices than jQuery Mobile

Want To Learn More?

I have a selection of Sencha Touch and jQuery Mobile tutorials that will help you build great applications. Check them out using these links:

About Jorge

Jorge is the author of Building a Sencha Touch Application, How to Build a jQuery Mobile Application, and the Ext JS 3.0 Cookbook. He runs a software development and developer education shop that focuses on mobile, web and desktop technologies.
If you'd like to work with Jorge, contact him at ramonj[AT]miamicoder.com.

Comments

  1. Khushwant Singh says:

    Hi,

    Thanks for your article. But still it seems to be difficult for a beginner (in the field of mobile web) to decide which technology to use. If one has to fetch lot of data from webservices (.NET WCF Rest) and has to generate complex nested output then what you would suggest??

    Thanks,
    Khushwant Singh

  2. Thanks a lot for the insights- I had that dilemma but I think I will go the sencha touch route! I’m a fan of hard stuff – thanks

  3. Kevin Duncan says:

    Jorge,

    If I want to sync to or access a remote database which framework do you recommend. Sencha or JQuery Mobile?

    I noticed you had C# code samples for this in JQuery Mobile but not in Sencha.

  4. Jean-Marc Naud says:

    Jorge,

    What about the performance? I’ve built a very simple hybrid app with JQuery Mobile but it takes 2-3 seconds to load each page which is very annoying. I actually see the widgets being added and reshaped as they appear (on an iPhone 4 with iOS 6). Is Sencha Touch faster? Thx.

    • I have not found big differences in terms of performance. Most times the client-side performance issues have to do with the design of the application itself, in particular in pages that render large numbers of DOM elements (list views, for example). This is going to happen regardless of the framework you use and it’s up to you to design defensively so you don’t run into these problems.

  5. You forgot one key thing about Sencha Touch’s object model. It doesn’t really work and you’ll spend most of your time pulling your hair out over the undocumented gotchas.

    Such as, all model IDs are absolutely unique.

    User {
    id: 1,
    name: ‘Billy’
    }

    Product {
    id: 1,
    name: ‘Camera’
    }

    Are considered the exact same thing. If you don’t believe me, prowl their forums first and you’ll find loads of stuff like this. The core functionality (models) break in a different way every new release.

    • agree with you, sometimes documentation not cover all that we need, really need to find it on forum

    • I can’t say I agree with you there.. New York Times, Adobe, Google, and Apple all use ExtJS internally, so it mustn’t be anywhere as bad as you are saying.

      Perhaps it’s not the framework, but your understanding of it. (the hurdle people mention)

      • An Id must be per se unique – or it’s not an id.
        Why is there an id and an item-id in Sencha? And an alias?
        Because it is not well designed.
        Tried to use Sencha for a while now: Overcomplicated, full of errors, weak support/community if you are not willing to pay for it. It just sucks. Unless you are on the sencha path anyway or an employee of the company – don’t use it.
        Whoever uses it – I don’t care who did false decisions and why.
        Sencha gives you nothing but unnecessary complexity at high costs.
        Sencha produces uncomprehensible – and so undebuggable HTML Code.
        It breaks the paradigm, that HTML is for structure, CSS is for design and JavaScript is for functionality. In Sencha JSON (in it’s own weird interpretation) is for structure, design and functionality.
        Luckily I never got to the point, where I need to do more complex things in Sencha – but beware of a situation, where you get a bug in a complex scenario AND due to the use of Sencha are unable to debug anything!
        Sencha=Crap
        Thats my humble opinion.

      • And it couldn’t be more obvious: You are a Sencha employee.
        Nuff said

Speak Your Mind

*