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:
- Ease of use
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
- It has very well thought-out and sound MVC architecture, a component-based UI programing model and an adaptive data access layer.
- 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.
- 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.
- Beware of creating over-complicated UI component structures, since they can result in cluttered DOM-trees.
- 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