Which HTML 5 framework for my app?
They allow to avoid paid services like the AppStore and to produce applications and games for all the computers and phones. Disney bought in March 2011 the Finnish company Rocket Pack for producing such multi-platform games, proof that it sees a great future in HTML 5.
These frameworks are compatible with mobile phones and are supported by Android, iOS, Firefox OS, Windows Phone, and others... They may then be complemented with Cordova on the backend to access sensors such as the accelerometer. Or PhoneGap, or Intel's XDK.
A study made a benchmark on five frameworks supporting data binding. The result is that Angular is the fastest, followed by Knockout, React, Mithril, Vue.js. Ember is the slowest. However, the order of difficulty of use is different.
Angular.js (by Google/Frozen)
It extends HTML for Web applications to a more complete markup language, with new attributes. This is a template system, in fact, it is inspired by Web Components to do this.
This is an alternative to Ember, Backbone or Spine, thus a way to bind data to the user interface and as Ember, CanJS, it can do it in two-ways.
Among the drawbacks, insufficient documentation, features added daily as in PHP without a whole vision and sometimes incompatible, but this could be fixed in the version 2.
The framework sees its support ended on December 31, 2021. It will continue to work but without new versions in the future.
- AngularJS. It is used by several Google' sites including DoubleClick.
- Egghead.io. Tutorials for Angular on the form of videos, useful for beginners.
- Angular UI. Widgets for Angular such as Calendar, Google Maps...
- Angular vs Ember. A comparison by a founder of Ember, maybe not objective, but useful to highligth the differences.
- The image at right is made with Dangle, a graphical tool based on Angular and D3.
React.js (by Facebook)
Another alternative to Angular (but they may be used together), React was developed by Facebook to create the graphical interface of Web applications which often reuse the same components. It uses JSX, a derivative of XML to describe the interface elements. The framework builds an internal representation of DOM, Virtual DOM, that allows updates faster and even avoids the use of data binding. It can be used in conjunction with other frameworks such as Backbone.
So the interest of React is mostly in the virtual DOM, because we do the same thing as in pure JS was a longer and more complicated code.
Starting from version 16.8 the framework introduces the Hook, a state declaration which facilitates interaction with server data.
Among the users of React are Netflix, Uber, AirBnb, etc...
Another alternative to JQuery, React, Angular, which has the advantage of simplicity. We can already use it in production after a few hours of learning. It has a template system but can also use JSX like React. Is compatible with Flux and like React has a virtual DOM. Faster than React, simpler than Angular or Ember.
Will be the chosen framework if you want to start faster and an easier maintenance, a faster app, while Angular and React offer more features. It is described by the authors themselves as a tool to solve common and simple problems, but is not enough by itself for others.
- Vue.js. Download and overview.
The Backbone.UI framework adds to Backbone widgets to design the interface of an application. The look is as simplistic than the code is simple, but you can improve it through CSS. In fact these components are redundant for many to HTML tags, such as buttons, maybe to facilitate data binding.
- Backbone.js. Requires either jQuery of Zepto.
- Emberjs.com. Requires jQuery and and set of widgets for the UI, such as Bootstrap for example.
- First app with Ember.
Polymer.js (replaced by Lit)
Framework proposed by Google, to solve the problem of the complexity of Web applications. This vague objective leads to better modularity and encapsulation of application components. The object orientation moved to application level. You should also be able to write the minimum code to make the application.
This so-called components here are new tags with interaction or data-binding preset. It goes beyond Angular, another project from Google, adding new attributes to HTML with automatic databinding, because Polymer is based on a new backend.
- Lit. Replaces polymer.
- X-tags. Similar project from Mozilla, which already has a repository of ready to use components.
FOAM (By Google)
WinJS from Microsoft
A framework that can be used with Cordova, Angular, etc ... Provides data binding and many features. Works with keyboard, mouse, touch screen. The application can run locally on Windows 10 or online.
- WinJS. The code is on GitHub.
Overture.js from Fastmail
The JS Framework that is used by Fastmail was proprietary but became an open source project in December 2014. It allows to build any sort of web application. The fluidity of Fastmail shows the speed of the framework. It is a descendant of SproutCore as Ember.
Works with the visual graphic language with the same name, on top of Canvas to make animations and produce graphics online.
Using Canvas as a display surface for text and widgets, this framework eliminates the use of DOM and accelerates applications. This is best suited for graphic applications, however.
A PDF document can be viewed in HTML 5 and in particular using Canvas for graphics. It can be used as a plugin on Firefox, but the ultimate goal is to make a PDF reader built into the browser.
Video library that is used by Wikimedia, and even by Adobe to make a universal player loading Flash Player when no codec is available. Several tools are available to download.
Library of 2D functions with animation. It can serve as a replacement to animated gif, providing it is made of simple images, with the advantage of the vector, and so small files to include. And an alternative to Flash too, this is the impression we have in seeing the demos!
Paper.js is also a vectorial drawing framework, it allows to create business animations in Canvas. It is based on a scripting tool for Illustrator.
- Knocktout. Similar to react, brings data binding to interfaces and has the advantage to be lightweight.
- Brick. By Mozilla, add new HTML 5 tags (like Angular, Polymer and compatible with them) to get new component of web app interface such as slider, flip, etc...
- HTML5 Media. Add support to video and audio tags to all browsers.
- If you want to present a real-time graph to show the evolution of something like CPU usage, for example, the Smoothie library is ready to be included in the page. The code is very simple and fast. CPU usage is not a good example actually as the tool uses itself of lot of CPU! Explorer Canvas is required for IE.
- Kendo UI. Complete library for building professional-looking GUIs based on jQuery, HTML 5 and CSS 3.
- Mylar. If you are looking for security and privacy, MIT offers this set of client-server tools based on Meteor, which store all the data encrypted.
- Visualisation frameworks. List of visualisation tools such as graphs, timelines, networks, etc...