HTML 5 Frameworks
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.
Angular.js (by Google)
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.
- Angular.js. 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...
- An experience. Using Angular on a mobile application.
- Dangle. Angular may be combined with D3 to create graphs. This is probably one of the easiest way to translate data into graphics. See image on the right.
- Angular vs Ember. A comparison by a founder of Ember, maybe not objective, but useful to highligth the differences.
- Emberjs.com. Requires jQuery and and set of widgets for the UI, such as Bootstrap for example.
- Introduction to Ember.
- First app with Ember.
New 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.
- X-tags. Similar project from Mozilla, which already has a repository of ready to use components.
- Web Components. Spec.
React.js (by Facebook)
Another alternative to Angular, 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.
A similar framework, which brings data binding to interfaces and has the advantage to be lightweight:
Flight (by Twitter)
It is used by Twitter to its applications: a lightweight (more or less), modular, oriented events framework. It requires jQuery and Require.js to load its components. It is based entirely on DOM and therefore does not provides acceleration as React does.
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.
Works with the visual graphic language with the same name, on top of Canvas to make animations and produce graphics online.
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.
- 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.
- Enyo. A framework of user interface for Desktop or mobiles. (See the mobile section)