SlideShare uma empresa Scribd logo
1 de 38
for
Rich User Experience

              phpXperts DevCon 2012
FLASHBACK..
WHAT IS   ?
A FLASH KILLER ?
HTML
             +
            JS
             +
           CSS

That’s all ?
Progress Meter
                                                               Web Storage
 Geo location
                                      Drag And Drop
             Semantics

     SPEECH INPUT                                                  Canvas 3D


                                                          Notifications
File / Hardware Access API

    Canvas
                                                        New Events
                             Form Controls
                                                          Web Socket
        History API                          Graphics
Graphics..

      Canvas
      WebGL
Things we can do with Canvas

Make Stunning Graph / Charts
Create 2D, 3D objects
Draw any Irregular shape
Image Processing
3D modeling
And many more…
Things we can do with Canvas
Graph Example




                http://www.humblesoftware.com/finance/index
Things we can do with Canvas
  Create 2D, 3D objects




                          http://alteredqualia.com/canvasmol/
Things we can do with Canvas
   Draw any Irregular shape




              http://hakim.se/experiments/html5/sketch/#4350e239
Things we can do with Canvas

        Image
    Processing




          http://people.opera.com/patrickl/experiments/canvas/image-edit/
Things we can do with Canvas
   3D Modeling




        http://www.giuseppesicari.it/progetti/javascript-3d-model-viewer/
WebGL
 The beast..
World flights visualization using WebGL




http://www.senchalabs.org/philogl/PhiloGL/examples/worldFlights2/
More WebGL Demos ?
http://www.chromeexperiments.com/
New Form Features
Email Field
Validation
                     Accomplishing all these will
Placeholder           require lot of plugins (e.g
                        jquery.validate plugin,
Required Attribute
                            overlabel etc)
Number Input

Date Picker
Range Input                & many more..
http://devfiles.myopera.com/articles/4582/html5-forms-example.html
History API

window.history.state
window.history.pushState(data, title [, url])
window.history.replaceState(data, title [, url])




Best Example : Github project files browser
History API (contd.)
Use Cases:

    File Browser

    E-commerce Product Viewer
    Single Page Mobile Application
Semantics
OLD SCHOOL              NEW
<div id=“header”>       <header> … </header>
</div>
                        <footer> … </footer>

                        <article> … </article>
<div id=“footer”>
</div>                  <hggroup>,<nav>,<aside>
                        <figure>,<time>,
                        <figcaption>
<div class=“article”>
</div>
Native Drag & Drop
Multimedia
Video Player




Audio Player
File / Hardware Access API
Camera & microphone access (no plugins)
<video autoplay controls></video>
<input type="button" value="?" onclick="record(this)" id="start">
<input type="button" value="?" onclick="stop(this)" id="stop"
disabled>
var localMediaStream, recorder;

var record = function(button) {
  recorder = mediaStream.recorder();
};

var stop = function(button) {
  mediaStream.stop();
  recorder.getRecordedData(function(blob) {
    // Upload blob using XHR2.
  });
};

window.navigator.getUserMedia('video', function(stream) {
  document.querySelector('video').src =
window.URL.createObjectURL(stream);
  localMediaStream = stream;
}, function(e) {
  console.log(e);
});
File / Hardware Access API
Drag in
document.querySelector('#dropzone').
  window.addEventListener('drop', function(e) {
    var reader = new FileReader();
    reader.onload = function(e) {
      document.querySelector('img').src = e.target.result;
    };
    reader.readAsDataURL(e.dataTransfer.files[0]);
}, false);


Example : Gmail Attachment Handler (see for yourself ;) )
File / Hardware Access API
Drag out ??
var files = document.querySelectorAll('.dragout');
for (var i = 0, file; file = files[i]; ++i) {
  file.addEventListener('dragstart', function(e) {
    e.dataTransfer.setData('DownloadURL',
this.dataset.downloadurl);
  }, false);
}


http://www.thecssninja.com/demo/gmail_dragout/
Notification API


window.notifications = window.notifications ||
    window.webkitNotifications || window.mozNotifications;

function showNotifications(pic, title, text) {
  if (notifications.checkPermission() == 0) {
    return;
  }

    var note = notifications.createNotification(pic, title, text);
    note.show();

    setTimeout(function(note) { // close note after a timeout
      note.cancel();
    }, 6000, notification);
}
Web Storage / Client Storage
                                                   * Moved to own spec




Earlier ..                     Now
• Cookies                      • Web Storage APIs: localStorage / sessionStorage
• Flash Storage                • Web SQL Database
• Internet Explorer UserData   • IndexedDB
• Google Gears                 • Application Cache
                               • File* APIs
Web Storage / Client Storage
Possible Use Cases

Shopping Cart

Notepad type Application (AutoSave Feature)

TODO Apps

Game Data
Web Sockets
             * Moved to own spec




AJAX Limitations




One Direction Communication
Web Sockets
             * Moved to own spec




With Web Sockets




Bidirectional Communication
Web Sockets
                * Moved to own spec




Best Use Cases
Chat / Live Help Application

Live Streaming API (e.g twitter updates)

Multiplayer Games

Game Data

Collaborative Apps (e.g Google Spreadsheet)

Stock ticker
Geo Location API
                   * Moved to own spec


Identify User’s Location




>> Serve location based content
In Short

HTML5 minimizes dependency (plugins, libraries)

Makes the user experience smoother

Allows to build more scalable apps
Aah, snap!

          did we forget the Mobile Thing ??



               Good News!

Both iPhone and Android have Webkit based Browser
                who support HTML5
Some HTML5 Resources
http://www.html5rocks.com/
Update about all the HTML features, slides etc

http://html5-demos.appspot.com/
Demos, presentations ..

http:// modernizr.com
Detect feature availability of HTML5 in browsers

http://dev.opera.com/articles/tags/html5
Lot of articles related to HTML5 features

http://html5doctor.com/
Articles about HTML5 elements and their usage

http://caniuse.com/
HTML5/CSS/SVG Compatibility in Browsers chart


http://html5readiness.com/
HTML5/CSS3 Readiness for browsers in a rainbow chart
QUESTIONS ?

Mais conteúdo relacionado

Mais procurados

Usability in the GeoWeb
Usability in the GeoWebUsability in the GeoWeb
Usability in the GeoWeb
Dave Bouwman
 
Effective TDD - Less is more
Effective TDD - Less is moreEffective TDD - Less is more
Effective TDD - Less is more
Ben Lau
 
Polymer
Polymer Polymer
Polymer
jskvara
 

Mais procurados (20)

Introduction to polymer project
Introduction to polymer projectIntroduction to polymer project
Introduction to polymer project
 
Visual resume
Visual resumeVisual resume
Visual resume
 
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
The rise of Polymer and Web Components (Kostas Karolemeas) - GreeceJS #17
 
JavaScript UI Architecture: Be all that you can be
JavaScript UI Architecture: Be all that you can beJavaScript UI Architecture: Be all that you can be
JavaScript UI Architecture: Be all that you can be
 
Usability in the GeoWeb
Usability in the GeoWebUsability in the GeoWeb
Usability in the GeoWeb
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
 
Effective TDD - Less is more
Effective TDD - Less is moreEffective TDD - Less is more
Effective TDD - Less is more
 
Google Polymer Framework
Google Polymer FrameworkGoogle Polymer Framework
Google Polymer Framework
 
Polymer and web component
Polymer and web componentPolymer and web component
Polymer and web component
 
Polymer
Polymer Polymer
Polymer
 
How to build a web application with Polymer
How to build a web application with PolymerHow to build a web application with Polymer
How to build a web application with Polymer
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
 
Polymer, A Web Component Polyfill Library
Polymer, A Web Component Polyfill LibraryPolymer, A Web Component Polyfill Library
Polymer, A Web Component Polyfill Library
 
Goodbye JavaScript Hello Blazor
Goodbye JavaScript Hello BlazorGoodbye JavaScript Hello Blazor
Goodbye JavaScript Hello Blazor
 
Web II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side developmentWeb II - 01 - Introduction to server-side development
Web II - 01 - Introduction to server-side development
 
Google Polymer Introduction
Google Polymer IntroductionGoogle Polymer Introduction
Google Polymer Introduction
 
Building a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / SpringBuilding a Secure App with Google Polymer and Java / Spring
Building a Secure App with Google Polymer and Java / Spring
 
GWT
GWTGWT
GWT
 
Building modern share point apps (angularjs, npm, bower, grunt, VS2015)
Building modern share point apps (angularjs, npm, bower, grunt, VS2015)Building modern share point apps (angularjs, npm, bower, grunt, VS2015)
Building modern share point apps (angularjs, npm, bower, grunt, VS2015)
 
Web Components
Web ComponentsWeb Components
Web Components
 

Semelhante a HTML5 for Rich User Experience

Web app and more
Web app and moreWeb app and more
Web app and more
faming su
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
Robert Nyman
 
Bd conf sencha touch workshop
Bd conf sencha touch workshopBd conf sencha touch workshop
Bd conf sencha touch workshop
James Pearce
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
James Pearce
 

Semelhante a HTML5 for Rich User Experience (20)

Html5
Html5Html5
Html5
 
HTML5 WebWorks
HTML5 WebWorksHTML5 WebWorks
HTML5 WebWorks
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
 
HTML5 Refresher
HTML5 RefresherHTML5 Refresher
HTML5 Refresher
 
Bd conf sencha touch workshop
Bd conf sencha touch workshopBd conf sencha touch workshop
Bd conf sencha touch workshop
 
Keypoints html5
Keypoints html5Keypoints html5
Keypoints html5
 
HTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile appsHTML5 & CSS3 refresher for mobile apps
HTML5 & CSS3 refresher for mobile apps
 
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
 
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
Html 5 in a big nutshell
Html 5 in a big nutshellHtml 5 in a big nutshell
Html 5 in a big nutshell
 
Repaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares webRepaso rápido a los nuevos estándares web
Repaso rápido a los nuevos estándares web
 
IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009IPhone Web Development With Grails from CodeMash 2009
IPhone Web Development With Grails from CodeMash 2009
 
Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
 
A Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 RevolutionA Snapshot of the Mobile HTML5 Revolution
A Snapshot of the Mobile HTML5 Revolution
 
HTML5 and Beyond
HTML5 and BeyondHTML5 and Beyond
HTML5 and Beyond
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

HTML5 for Rich User Experience

  • 1. for Rich User Experience phpXperts DevCon 2012
  • 2.
  • 6. HTML + JS + CSS That’s all ?
  • 7. Progress Meter Web Storage Geo location Drag And Drop Semantics SPEECH INPUT Canvas 3D Notifications File / Hardware Access API Canvas New Events Form Controls Web Socket History API Graphics
  • 8. Graphics.. Canvas WebGL
  • 9. Things we can do with Canvas Make Stunning Graph / Charts Create 2D, 3D objects Draw any Irregular shape Image Processing 3D modeling And many more…
  • 10. Things we can do with Canvas Graph Example http://www.humblesoftware.com/finance/index
  • 11. Things we can do with Canvas Create 2D, 3D objects http://alteredqualia.com/canvasmol/
  • 12. Things we can do with Canvas Draw any Irregular shape http://hakim.se/experiments/html5/sketch/#4350e239
  • 13. Things we can do with Canvas Image Processing http://people.opera.com/patrickl/experiments/canvas/image-edit/
  • 14. Things we can do with Canvas 3D Modeling http://www.giuseppesicari.it/progetti/javascript-3d-model-viewer/
  • 16. World flights visualization using WebGL http://www.senchalabs.org/philogl/PhiloGL/examples/worldFlights2/
  • 17. More WebGL Demos ? http://www.chromeexperiments.com/
  • 18. New Form Features Email Field Validation Accomplishing all these will Placeholder require lot of plugins (e.g jquery.validate plugin, Required Attribute overlabel etc) Number Input Date Picker Range Input & many more..
  • 20. History API window.history.state window.history.pushState(data, title [, url]) window.history.replaceState(data, title [, url]) Best Example : Github project files browser
  • 21. History API (contd.) Use Cases: File Browser E-commerce Product Viewer Single Page Mobile Application
  • 22. Semantics OLD SCHOOL NEW <div id=“header”> <header> … </header> </div> <footer> … </footer> <article> … </article> <div id=“footer”> </div> <hggroup>,<nav>,<aside> <figure>,<time>, <figcaption> <div class=“article”> </div>
  • 25. File / Hardware Access API Camera & microphone access (no plugins) <video autoplay controls></video> <input type="button" value="?" onclick="record(this)" id="start"> <input type="button" value="?" onclick="stop(this)" id="stop" disabled> var localMediaStream, recorder; var record = function(button) { recorder = mediaStream.recorder(); }; var stop = function(button) { mediaStream.stop(); recorder.getRecordedData(function(blob) { // Upload blob using XHR2. }); }; window.navigator.getUserMedia('video', function(stream) { document.querySelector('video').src = window.URL.createObjectURL(stream); localMediaStream = stream; }, function(e) { console.log(e); });
  • 26. File / Hardware Access API Drag in document.querySelector('#dropzone'). window.addEventListener('drop', function(e) { var reader = new FileReader(); reader.onload = function(e) { document.querySelector('img').src = e.target.result; }; reader.readAsDataURL(e.dataTransfer.files[0]); }, false); Example : Gmail Attachment Handler (see for yourself ;) )
  • 27. File / Hardware Access API Drag out ?? var files = document.querySelectorAll('.dragout'); for (var i = 0, file; file = files[i]; ++i) { file.addEventListener('dragstart', function(e) { e.dataTransfer.setData('DownloadURL', this.dataset.downloadurl); }, false); } http://www.thecssninja.com/demo/gmail_dragout/
  • 28. Notification API window.notifications = window.notifications || window.webkitNotifications || window.mozNotifications; function showNotifications(pic, title, text) { if (notifications.checkPermission() == 0) { return; } var note = notifications.createNotification(pic, title, text); note.show(); setTimeout(function(note) { // close note after a timeout note.cancel(); }, 6000, notification); }
  • 29. Web Storage / Client Storage * Moved to own spec Earlier .. Now • Cookies • Web Storage APIs: localStorage / sessionStorage • Flash Storage • Web SQL Database • Internet Explorer UserData • IndexedDB • Google Gears • Application Cache • File* APIs
  • 30. Web Storage / Client Storage Possible Use Cases Shopping Cart Notepad type Application (AutoSave Feature) TODO Apps Game Data
  • 31. Web Sockets * Moved to own spec AJAX Limitations One Direction Communication
  • 32. Web Sockets * Moved to own spec With Web Sockets Bidirectional Communication
  • 33. Web Sockets * Moved to own spec Best Use Cases Chat / Live Help Application Live Streaming API (e.g twitter updates) Multiplayer Games Game Data Collaborative Apps (e.g Google Spreadsheet) Stock ticker
  • 34. Geo Location API * Moved to own spec Identify User’s Location >> Serve location based content
  • 35. In Short HTML5 minimizes dependency (plugins, libraries) Makes the user experience smoother Allows to build more scalable apps
  • 36. Aah, snap! did we forget the Mobile Thing ?? Good News! Both iPhone and Android have Webkit based Browser who support HTML5
  • 37. Some HTML5 Resources http://www.html5rocks.com/ Update about all the HTML features, slides etc http://html5-demos.appspot.com/ Demos, presentations .. http:// modernizr.com Detect feature availability of HTML5 in browsers http://dev.opera.com/articles/tags/html5 Lot of articles related to HTML5 features http://html5doctor.com/ Articles about HTML5 elements and their usage http://caniuse.com/ HTML5/CSS/SVG Compatibility in Browsers chart http://html5readiness.com/ HTML5/CSS3 Readiness for browsers in a rainbow chart