Using Sencha Touch as a Strategic Platform – An Evaluation

2 September 2013
| |
Reading time: 4 minutes

At Zühlke, we have a lot of experience with a number of different HTML 5 programming platforms, ranging from custom stacks tailored to a specific solution, that are assembled from the likes of jQuery, Knockout, Breeze, Underscore.js and others, to using a comprehensive HTML 5 MVVM framework like Google’s AngularJS, or Sencha’s HTML 5 MVC frameworks. When we were recently asked  to recommend a primary framework for the HTML 5 strategy for a rather large company, we put that experience to use.

When deciding on a strategic programming platform for any technology, we recommend not only taking  the sheer functionality of a given framework into account, but also looking into some non-functional properties that contribute to the long-term usability of the chosen solution. These include:

  • Completeness
  • Ease of use
  • Maintainability
  • Extensibility
  • Performance
  • Documentation
  • Support
  • Tooling

We have used Sencha’s HTML 5 frameworks – Sencha Touch and Sencha ExtJS – in a number of projects creating mobile and desktop HTML 5 applications respectively. These include both in-house projects and projects in which we worked in mixed teams consisting of Zühlke and customer developers. Our experiences in using these frameworks have been very good so far, and seemed like a good fit for our customers environment, so recommending Sencha Touch as a strategic platform to our customer seemed natural.

But apart from simply saying: “We have good experiences with Sencha Touch, so it should be okay for you to use it.”, we aimed for a more objective recommendation by compiling the following list of pros and cons for and against Sencha Touch:

Pros for Sencha Touch

  • Sencha Touch is a comprehensive Javascript framework. It provides facilities for programming user interfaces, business logic and data access and has a large number of utility classes.
  • It has very well thought-out and sound MVC architecture, a component-based UI programing model and an adaptive data access layer.
  • A kind of Javascript-internal DSL enables class-based programming, which makes it easier for OO-programmers new to Javascript to use the framework. Also, user interfaces and data bindings can be described declaratively.
  • It includes a large library of standard UI components out-of-the-box.
  • It supports RESTful and SOAP backend APIs, as well as several local storage technologies out-of-the-box.
  • It is very easy to integrate external Javascript libraries into the component model.
  • The documentation is very good. Apart from the API documentation, there are lots of tutorials, support and user forums and additional resources on Sencha’s website and blog.
  • The framework comes with a technically mature set of tools for most aspects in the development lifecycle. Others are commercially available.  These include IDEs, scaffolding, minfifcation and packaging.
  • Sencha Touch applications support native packaging enabling distribution via mobile app stores.
  • Commercial training and support is available.
  • There are a number of free and commercially 3rd-party extensions available, including components to integrate Salesforce- and SAP-backend applications.
  • The framework has a large number of customers and users and there are lot of showcases and success stories to present.

Cons against Sencha Touch

  • Since Sencha Touch is not Open Source, there is the risk of vendor lock-in.
  • The framework’s comprehensiveness results in a rather shallow learning curve for anything other than the most trivial applications.
  • At Zühlke we have had performance issues on some non-Webkit platforms, notably the Blackberry Playbook. On the predominant mobile platforms (iOS and Android) Sencha Touch applications show good performance characteristics.
  • Since applications with Sencha Touch are written by using only Javascript, one tends to forget that you’re still developing a web application running in a browser on a mobile device. This can lead to a number of problems:
    • Beware of creating over-complicated UI component structures, since they can result in cluttered DOM-trees.
    • Some animations are realized using Javascript, rather than CSS for compatibility reasons. This can lead to severe performance issues.
    • Some of the framework’s layout managers tend to cause a lot of reflows and repaints, resulting in sub-optimal page performance.

Use Sencha Touch

Summing it all up, we had the following inputs to come up with a recommendation for our customer:

  • Our own good experiences in using Sencha Touch in a number of different projects
  • The specific environment at our customer
  • The Pros and Cons mentioned above

Taking all of these points into account, we decided to recommend Sencha Touch as the primary framework for the HTML 5 strategy of this particular customer, since it seemed like the best fit for his environment. Apart from its comprehensive functionality, the decisive factors were the following:

  • Consistent programming model
  • High quality of documentation
  • Large user base
  • Availability of commercial support and training

We also made sure to raise awareness for the common pitfalls when using frameworks and the specific challenges of developing mobile web applications.

Other customers might require other recommendations. Which framework would you recommend?

Image by PlaceIt

Comments (2)


Sign up for our Updates

Sign up now for our updates.

This field is required
This field is required
This field is required

I'm interested in:

Select at least one category
You were signed up successfully.

Receive regular updates from our blog


Or would you like to discuss a potential project with us? Contact us »