The document discusses HTML5 as a platform for user interfaces. It outlines several new features of HTML5, including the <canvas> element for drawing, WebGL for 3D graphics, multi-touch support, local storage with Web SQL databases, real-time updates with Web Sockets, improved file handling, and offline application caching. The document argues that HTML5 provides many of the capabilities of native applications and recommends using HTML5 and JavaScript for cross-platform user interface development.
2. The WWW platform
W3C has been adding features to HTML
Major browsers support the standards
Latest version is HTML5
Has all of the power of native applications
Plus more!
3. Outline
Introduction
HTML5 for HCI
Why choose HTML5?
<canvas>
WebGL
Multi-touch
Web SQL Database
Web Sockets
Better local file support
Offline support
Conclusion
9. Why HTML5?
No need for software updates
Everyone sees the latest version
Development can be done anywhere
No need for special software
Just a terminal and Firefox/Firebug
10. <canvas>
Acts like a canvas
Can draw on it using vector functions
Lines
Rectangles
Paths
○ Arcs
○ Curves
11. <canvas>
Or using raster functions
Copy from HTML element
○ <img>
○ <video>
Manipulate pixels directly
Image processing
12. <canvas> example
<html>
<head>
<script>
function a() {
var c = document.getElementById(„c‟);
var ctxt = c.getContext(„2d‟);
ctxt.arc(50, 50, // Center of circle (x, y)
25, // Radius
Math.PI / 2, // Start angle
0, // End angle
false // Counter-clockwise
);
ctxt.stroke();
}
</script>
</head>
<body onload=“a();”>
<canvas id=“c” height=“100” width=“200”></canvas>
</body>
</html>
14. WebGL
Native 3D rendering in the browser
Makes use of the same <canvas>
element
Syntax is like OpenGL
Lessons
Quake II
15. Multi-touch
Gave this in last
presentation, but here‟s
a link to the tutorial
http://developer.apple.com/safari/library/documentation/appleapplications/reference/saf
ariwebcontent/handlingevents/handlingevents.html
Works with iPad/iPhone/iPod and Windows
7 with Chrome & Firefox
16. Web SQL Database
Can store relational
data locally in the
browser
Especially useful for
offline apps (more
later)
17. Web SQL Database
db = openDatabase(
„testDB‟, // Name
„1.0‟, // Version
„Testing database‟, // User-friendly name
1000000 // Maximum size (bytes)
);
db.transaction(function(tx) {
tx.executeSql(„CREATE TABLE Foo (ID INT,
Name TEXT)‟);
tx.executeSql(„INSERT INTO Foo (ID, Name)
Values(1, „bar‟);
});
18. Web SQL Database
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM Foo', [], function (tx, results) {
var len = results.rows.length, i;
for (i = 0; i < len; i++) {
var row = results.rows[i];
alert(row.ID + „ – „ + row.Name);
}
});
});
19. Web Sockets
HTML now allows persistent
connections with the server
Real-time collaboration and
updates
Examples:
Stock ticker
Chat room
White board
http://www.indicthreads.com/1525/building-real-
time-web-applications-using-html-5-web-sockets/
21. Offline support
HTML File
<html manifest=“offline.manifest”>…
Offline.manifest contents (must have MIME type of
text/cache-manifest)
CACHE MANIFEST
styles.css
jquery-1.4.min.js
offline.js
index.html
23. Recommendations
Use Firefox with Firebug
jQuery is a fantastic library!
HTML5 can be used for iOS apps too!
Ask for my last presentation slides
24. Conclusions
Let the web browser developers do all
the hard work
Applications have never been more
easy with HTML5
Great features at a great price
Develop without the need for bulky IDEs