Wednesday 25 November 2009

Experimenting with HTML 5

HTML 5 is the next mayor revision of the core language of the world wide web, the HTML language. Openbravo ERP and other enterprise applications are based on this language. This specification is still in draft status but newest versions of most popular web browsers, including Internet Explorer 8 :-), have support for some of the new features introduced by HTML 5. Even better, web browsers included in advanced smartphones and mobile devices like iPhone / iPod Touch or those based in Android 2.0 also have support for the most exciting features of HTML 5. At the moment of writing this article I tested HTML 5 with Firefox 3.5, Google Chrome, Safari 4 and the iPhone / iPod Touch OS version 3.0, and most of the features described in this article are ready for production deployment with no major impediments.

This new revision is a major step towards the support of full featured web applications. It includes features that aims to reduce the dependency on proprietary technologies like Adobe Flash, Microsoft Silverlight, Java applets and a long list of other web browser plug-ins. With HTML 5 combined with current techniques that combine AJAX, javascript and DHTML, developers can write cross-browser web applications with functionalities we were used to have only for desktop applications.

Mobile web applications will be easier to develop and deploy. Developers will not need to learn new technologies or create different applications depending whether the target platform is a mobile device or a desktop computer. They will have a full control whether the mobile device is on-line or off-line and with the increasing popularity of iPhone / iPod Touch touch and Android, they will be sure that their applications can reach a big slice of the mobile market.

If you browse the web searching for explanations and samples about the new features of HTML you will find a lot of articles with detailed information about it. I will only comment the most interesting features that in my opinion are focused for rich featured web applications. I recommend browse the samples published in HTML 5 Demos and Examples by Remy Sharp.
  • Off-line web applications. Properly configured, web applications will be able to work off-line using all application resources like html pages, javascript files, etc. cached in the client side. Web applications will be able to detect if the web browser is on-line or off-line and behave according this status.
  • Local Storage. With this feature web applications will be able to store locally in the client side data as application data or session data. This local storage can be very useful to let users work off-line and submit all the work done when the device is on-line again without losing any piece of data.
  • Input element improvements. For data centric web applications, data type input, and validation will be easier and integrated with the web browser without external libraries. Unfortunately, the support of this feature in current web browsers versions is very poor.
  • Geo-localization. Very interesting for mobile applications. With this feature, web applications will be able to offer data to the user contextualized in the place he or she is.
  • Canvas. This feature allows web applications to draw rich and dynamic graphics in the client side without having to generate these graphics in the server side. For example, there already exists impressive javascript libraries to render full featured charts using this new HTML 5 feature like RGraph.
  • Webworkers. Using this new feature developers will be able to implement background processes in the client side leaving the application responsive to user actions and without blocking him.

No comments: