If there is a technology appeared recently that has received a great interest from application developers and therefore, is changing the way we develop applications, this is definitely HTML5. More and more developers are convinced that it's possible to create cross-platform applications with similar performance to native. I'll not go in the controversial comparison between navite vs hybrid vs HTML5 applications because there are great articles on this topic. I'm going to write about the latest Packt Publishing book that I readed: HTML5 Enterprise Application Development, which shows the creation process of an HTML5 application multiplatform and multidevice.
Chapter 1: HTML5 Starter Kit: Compatibility It's an introduction in which you won't see any code. Includes statistics (with black and White charts) on browsers, operating systems and most used resolutions. The most common libraries related to HTML5 compatibility will also be shown: html5shiv, Modernizr, ExplorerCanvas and HTML5 Boilerplate.
Chapter 2: HTML5 Starter Kit: Useful Tools To develop HTML5 applications you'll need a good number of tools that you'll meet in this chapter. Regards IDE's, you'll see Adobe Dreamweaver 6, Aptana Studio 3, Blue Griffon 1.5.2, Maqetta, eXo, and Cloud9 IDE. You see, a good number of IDE's, but don't expect a great explanation of each. About web servers: Apache, Tomcat, Jetty, Tornado, Nginx, Lighttpd, and node.js. Also you'll find some words about browsers and HTTP proxies.
Chapter 3: The App: Structure and Semantics Some code can be found here, but not much. To start, you'll see the basic structure of a web application for then learn how to correctly use metadata, which is very important if you want to take care of the semantic meaning of everything that appears in your application (in the case of the app that you'll create following the book explanations: a movie). Following with the chapter, you'll find information about CSS resets, favicons and responsive design (using media queries).
Chapter 4: The App: Getting Movies Via Geolocation You'll create one of the most important features for the application that you'll develop throughout the whole book: geolocate your position to obtain information about the movies that are broadcasted in cinemas located near you. Also you'll know the limitations of Ajax and how to avoid them.
Chapter 5: The App: Displaying Movie Data via CSS3 Once you've got all this information, you'll learn to display it properly thanks to CSS most recent features: rounded corners, shadows, gradients, transitions, and animations. To finish this chapter, you'll find an interesting reference about the most useful CSS3 selectors.
Chapter 6: The App: Trailers via HTML5 Video As the title suggests, this chapter has a great protagonist: video. You'll know the formats that you can use to play video as well as browsers that support them. Then you'll implement a video player with full functionality: play/pause, seek and volume up/down. Finally there is a brief introduction to HTML5 audio. You're in front of one of the most important chapters.
Chapter 7: The App: Showing Ratings via Canvas Another of the most important features of HTML5 that you still have not seen in this book is the canvas element. To use it in this application, you'll create different colored bars indicating the movie's average score from different API's. As an experiment, you'll also draw the same bars but in this case in 3D.
Chapter 8: The App: Selection UI via Drag-and-Drop This is one of the shorter chapters of the book. Just shows how to improve the date's format and style and add drag and drop functionality.
Chapter 9: The App: Getting the Word Out via Twitter Using the Twitter API you're going to create everything you need to login with your Twitter user (using OAuth), handle session between requests once you're authenticated, and post tweets directly fron your application. To achieve this you must write backend code (using PHP) and frontend, including CSS.
Chapter 10: The App: Consuming Tweets Via Web Workers To finish your application's functionality, you'll use web workers to store tweets related to a particular cinema and display it when the user clicks the tweet counter. It's very interesting to learn what are web workers with this useful example.
Chapter 11: Finishing Up: Debugging Your App Now that you've completed all the app's functionality, it's time to start with the debug process. For this, you'll use the Firebug plugin for Firefox. Following the explanations you'll see how to modify the HTML, CSS, and JavaScript files, including setting breakpoints to fully control your JS code at any time during execution. I wish to emphasise that a brief but useful explanation to debug the application while it's running on a mobile device, either Android or iOS, is also included.
Chapter 12: Finishing Up: Testing Your App When testing your application you have several options in the form of libraries that you'll meet in this chapter. For unit testing: js-test-driver, QUnit, Sinon.JS, and Jasmine. For funcional testing: Selenium, and for browser testing virtualization software like VirtualBox, VMWare Fusion, or Parallels.
Chapter 13: Finishing Up: Performance The last thing before the application's deployment is the code optimization to get the best possible performance. Here you'll find information to optimize images, CSS, and JS files (minimization). Finally you'll meet some optimization tools to measure your application, such as PageSpeed or YSlow.
My final verdict is positive. It's a highly recommended book if you want to know the process that you need to follow to develop HTML5 applications. Don't try to find detailed explanations on all topics included in the book, as each one of these topics can complete several books, but as I say it's very useful to get a general understanding of the process and then, go more deeply into the topics that interest you on your own.