SlideShare a Scribd company logo
W3            iP ho ne
      C
                  ery
                 bile
      HTML5


              jQu
                          5
              Mo
Ph




                        L
on




              TM
 eG




          (@ohmyzany)
     ap
HTML5   ...
HISTORY OF HTML
1989         Tim Berners-Lee, HTML Tags       CERN
1994   May The First WWW conference           Geneva
1994   Sep IETF sets up HTML working group
1995   Nov HTML 2.0                            IETF
1997   Jan   HTML 3.2                         W3C
1997   Dec HTML 4.0                           W3C
1999   Dec HTML 4.01                          W3C
2000         XHTML 1.0                        W3C
2002         XHTML 2.0                        W3C
2004         Web Applications 1.0            WHATWG
2007         HTML5 Working Group              W3C
2010   Oct HTML5 Last Call Working Draft      W3C
HISTORY OF HTML
HTML5
                                    Jun, 2010
                                    Nov, 2010
                                    Mar, 2011




http://beta.html5test.com
HTML5
                                                     Jun, 2010
              IE7                                    Nov, 2010
                                                     Mar, 2011

              IE8

          IE9 RC

FireFox 4.0 b12

Opera 11 Alpha

   Chrome 10.0

        Safari 5.0

         iOS 4.3

    Android 2.3

                     0      50   100   150   200   250           300
http://beta.html5test.com
HTML5
                                                                               Jun, 2010
                     0
              IE7                                                              Nov, 2010
                                                                               Mar, 2011
                            27
              IE8

                     0
          IE9 RC

                                                   139
FireFox 4.0 b12

                                             129
Opera 11 Alpha

                                                                 202
   Chrome 10.0

                                                                       212
        Safari 5.0

                                            125
         iOS 4.3

                                                         178
    Android 2.3

                     0           50   100          150         200           250           300
http://beta.html5test.com
HTML5
                                                                                            Jun, 2010
                     0
              IE7           17                                                              Nov, 2010
                                                                                            Mar, 2011
                                 27
              IE8                27


                     0
          IE9 RC                           80


                                                             139
FireFox 4.0 b12                                                                            249


                                                       129
Opera 11 Alpha                                                                      223


                                                                           202
   Chrome 10.0                                                                              252


                                                                                 212
        Safari 5.0                                                                  220


                                                      125
         iOS 4.3                                                          198


                                                                   178
    Android 2.3                                                    178



                     0                50        100          150         200              250           300
http://beta.html5test.com
HTML5
                                                                                                     Jun, 2010
                     0
              IE7           17                                                                       Nov, 2010
                            17
                                                                                                     Mar, 2011
                                 27
              IE8                27
                                   32

                     0
          IE9 RC                             80
                                                         130

                                                               139
FireFox 4.0 b12                                                                                     249
                                                                                                      255

                                                         129
Opera 11 Alpha                                                                          223
                                                                                              234

                                                                               202
   Chrome 10.0                                                                                       252
                                                                                                                 288

                                                                                     212
        Safari 5.0                                                                      220
                                                                                           228

                                                        125
         iOS 4.3                                                              198
                                                                                 206

                                                                     178
    Android 2.3                                                      178
                                                                       182


                     0                  50        100          150           200                 250              300
http://beta.html5test.com
HTML5

✤   HTML5                      - http://bit.ly/chh79p

✤                    - http://beta.html5test.com (http://
    html5test.com)
HTML5 OVERVIEW
DOCTYPE

     <!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">

  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
         "http://www.w3.org/TR/html4/frameset.dtd">



   <!DOCTYPE html>
STRUCTURAL ELEMENTS




Before                                                     After
     http://html5doctor.com/designing-a-blog-with-html5/
HTML5 FEATURES

 Web Form        Web SQL Database
                    Indexed Database




Canvas / SVG      Web Storage


Audio / Video    Web Workers


Geolocation       Web Socket


  Web GL
HTML5 FEATURES

 Web Form        Web SQL Database
                    Indexed Database




Canvas / SVG      Web Storage


Audio / Video    Web Workers


Geolocation       Web Socket


  Web GL          ● ● ● ● ●
<article>     <mark>
  <aside>      <meter>
<command>       <nav>
 <details>    <progress>
<summary>      <ruby>
 <figure>        <rt>
<figcaption>     <rp>
 <footer>     <section>
 <header>      <time>
 <hgroup>       <wbr>
FORM


<canvas> For making graphics with a script.


<datalist> A list of options for input values.


<keygen> Generate keys to authenticate users.


         For different types of output, such as
<output>
         output written by a script.
INPUT TYPE

  tel                   week

 search                  time

  url              datetime-local

 email                  number

datetime                range

  date                  color

 month
INPUT TYPE




                           <input type=‘color’/>




<input type=‘datetime’/>
                            <input type=‘number’/>
INPUT TYPE RANGE




<input type=‘range’ min=’0’ max=‘100’ step=’1’/>
INPUT PLACEHOLDER




<input type=‘text’ id=‘userid’ placeholder=‘     ’/>
<input type=‘password’ id=‘passwd’ placeholder=‘       ’/>
INPUT




input       required

        , URL
DATALIST


<input type="text" list="favorite_cars"/>
<datalist id="favorite_cars">
  <option label="210hp" value="Kia K5"/>
  <option label="270hp" value="Kia K7"/>
  <option label="235hp" value="Hyundai Genesis"/>
  <option label="360hp" value="Hyundai Equus"/>
  <option label="174hp" value="BMW Mini Cooper"/>
  <option label="236hp" value="BMW Mini Cooper S"/>
</datalist>
INPUT TYPE




<input type=‘text’/>   <input type=‘email’/>
INPUT TYPE




<input type=‘number’/>   <input type=‘tel’/>
For multimedia content, sounds, music or
<audio>
          other audio streams.

          For video content, such as a movie clip or
<video>
          other video streams.

         For media resources for media elements,
<source>
         defined inside video or audio elements.


<embed> For embedded content, such as plug-in.
AUDIO, VIDEO TAG
                       Video                             Audio
                              Ogg                                     Ogg
            MPEG-4   H.264            WebM   PCM   MP3    AAC                          WebM
                             Theora                                  Vorbis

  IE9                YES                           YES    YES

Firefox 4
                              YES     YES    YES                       YES             YES
 beta 7
 Safari
             YES     YES                     YES   YES    YES
 5.0.2
Chrome
                     YES      YES     YES    YES   YES    YES          YES             YES
  8.0
 Opera
                              YES     YES    YES                       YES             YES
  11.0
  iOS
             YES     YES                     YES   YES    YES
  4.2.1
Android
  2.2
                                                                http://html5test.com
VIDEO TAG
<video id="video" poster="../video/poster.png" autobuffer>
    <source src="../video/myvideo.ogv"/>
    <source src="../video/myvideo.webm"/>
    <source src="../video/myvideo.m4v"/>
</video>



<script>
    var videoObj = document.getElementById("video");
</script>




currentTime                   ended                ?

 duration                    paused                      ?

  volume                     pause()

                              play()
WEB GL

✤                                3D   .

✤   OpenGL ES 2.0   JavaScript    .

✤

         ,     ,

     NVIDIA, AMD,
WEB GL




http://bodybrowser.googlelabs.com
WEB GL




http://blog.nihilogic.dk/2009/11/webgl-musical-solar-system.html
DEVICE APIS AND POLICY WORKING GROUP

           Calendar                  Contacts
                                     Address-book

           Camera                   Messaging
         and microphone            (SMS, MMS, Emails)

         System info             Device Interfaces
       (CPU, Network, etc)

   Application Launcher
    (KangChan Lee, WonSuk Lee)
                                      ● ● ●
DEVICE APIS AND POLICY WORKING GROUP

           Calendar                         Contacts
                                            Address-book

           Camera                           Messaging
         and microphone                   (SMS, MMS, Emails)

         System info                   Device Interfaces
       (CPU, Network, etc)

   Application Launcher
    (KangChan Lee, WonSuk Lee)
                                             ● ● ●


    Device APIs and Policy Working Group Meeting
    The DAP WG is planning to have a F2F in Seoul, South Korea
             on March 15-18 2011, hosted by ETRI.
HTML5
                  WEB STORAGE
   WEB APPLICATION SOFTWARE METHODS AND PROTOCOLS USED FOR STORING DATA IN A WEB BROWSER.
WEB STORAGE SUPPORTS PERSISTENT DATA STORAGE, SIMILAR TO COOKIES, AS WELL AS WINDOW-LOCAL STORAGE.
HTML5 WEB STORAGE API

✤                                 Cookie       .

✤   Cookie          .

                            4KB                        .

     HTTP Request                    .

                        .

                                                   .

                                           .
HTML5 WEB STORAGE API

✤   HTML5 Web Storage

                                           .

                                 5MB               .

                                               .

     Key - Value

     LocalStorage, SessionStorage 2    .
HTML5 WEB STORAGE API

    LocalStorage           SessionStorage




(                  )   (                    )
HTML5 WEB STORAGE API

function isSupportLocalStorage() {
  var result = true;
  try { localStorage }
  catch (e) { result = false; }
  return result;
}

function isSupportSessionStorage() {
  var result = true;
  try { sessionStorage }
  catch (e) { result = false; }
  return result;
}
HTML5 WEB STORAGE API


var sKey   = $(“#txtKey”).val();
var sValue = $(“#txtValue”).val();

try {
  localStorage.setItem(sKey, sValue);
} catch (e) {
  if (e == QUOTA_EXCEEDED_ERR) {
    alert(“                      .”);
  }
}



       Key-Value pair
HTML5 WEB STORAGE API



var sKey = “userName”;

localStorage.getItem(sKey);
localStorage.removeItem(sKey);
localStorage.clear();




       SessionStorage    LocalStorage
                                        .
BREAK TIME
HTML5
WEB SQL DATABASE
AN API FOR STORING DATA IN DATABASES THAT CAN BE QUERIED USING A VARIANT OF SQL.
HTML5 WEB SQL DATABASE

✤   SQL                                                       .

✤   SQLite

✤                      (http://www.caniuse.com/#search=sql)


     Google Chrome 7.0 ⇧ / Apple Safari 3.2 ⇧

     Opera 10.5 ⇧ / iOS Safari 3.2 ⇧ / Android 2.1 ⇧

     IE      FireFox

✤   Indexed Database                          .
HTML5 WEB SQL DATABASE

✤   Indexed Database
     Web SQL Database

     JavaScript                                     .

                                            (           /   )


     SQL               .

                           SQL

                           (Key-Value           )

     Firefox 4.0 beta 12                .
HTML5 WEB SQL DATABASE
HTML5 WEB SQL DATABASE

✤   Web SQL Database

     openDatabase :                                  .

     transaction :            . commit / rollback.

     executeSql : SQL Query       .
HTML5 WEB SQL DATABASE

✤   openDatabase

                              (                                        Open)

    var db = openDatabase('mydb', '1.0', 'sample db', 2 * 1024 * 1024);
    db.transaction(function (tx) {
      // here be the transaction
      // do SQL magic here using the tx object
    });




     openDatabase Parameters

                                                   Creation callback
HTML5 WEB SQL DATABASE

✤

          executeSql            SQL                     .



    var db = openDatabase('mydb', '1.0', 'sample db', 2 * 1024 * 1024);
    db.transaction(function (tx) {

      tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');

      tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")');
    });
HTML5 WEB SQL DATABASE

✤   executeSql

                                                                                   .


    var db = openDatabase('mydb', '1.0', 'sample db', 2 * 1024 * 1024);


    var userID   = document.getElementById('userId').value;
    var userName = document.getElementById('userName').value;


    db.transaction(function (tx) {
      tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)');
      tx.executeSql('INSERT INTO foo (id, text) VALUES (?, ?)', [userID, userName]);
    });
HTML5 WEB SQL DATABASE

✤

          executeSql
          ResultSet                        .

    var db = openDatabase('mydb', '1.0', 'sample db', 2 * 1024 * 1024);


    db.transaction(function (tx) {
      tx.executeSql('SELECT * FROM foo', [], function (tx, results) {
          var len = results.rows.length, i;
          for (i = 0; i < len; i++) {
              alert(results.rows.item(i).text);
          }
      });
    });
HTML5
        GEOLOCATION
     THE GEOLOCATION API DEFINES A HIGH-LEVEL INTERFACE TO
LOCATION INFORMATION ASSOCIATED ONLY WITH THE DEVICE HOSTING
     THE IMPLEMENTATION, SUCH AS LATITUDE AND LONGITUDE
HTML5 GEOLOCATION API

✤                                    API.

✤                 GPS                       .

     WPS : WiFi Positioning System

✤       ,     ,     ,        ,       ,          .

✤   navigator.geolocation object
HTML5 GEOLOCATION API


if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(success, error);
} else {
  alert(“browser does not support geolocation”);
}

function success(position) {
  alert(“latitude=” + position.coords.latitude + “, ”
      + “longitude=” + position.coords.longitude);
}

function error(e) {
  alert(“Error”);
}
HTML5 GEOLOCATION API
HTML5
        WEBSOCKET
        A TECHNOLOGY PROVIDING FOR BI-DIRECTIONAL,
          FULL-DUPLEX COMMUNICATIONS CHANNELS,
OVER A SINGLE TRANSMISSION CONTROL PROTOCOL (TCP) SOCKET
?

✤           TCP Socket
              IETF     .

✤   1           TCP                   .

✤                  ,              ,
                        .

✤                              JavaScript setInterval()
        Reverse Ajax (Comet)                       .
CASE #1.
     WAS
           .
CASE #2.
     WAS
[Constructor (in DOMString url, in optional DOMString protocol)]
interface WebSocket {
  readonly attribute DOMString URL;

 const unsigned short CONNECTING = 0;
 const unsigned short OPEN = 1;
 const unsigned short CLOSED = 2;
 readonly attribute unsigned short readyState;
 readonly attribute unsigned long bufferedAmount;

     attribute Function onopen;
     attribute Function onmessage;
     attribute Function onclose;
 boolean send(in DOMString data);
 void close();
};
WebSocket implements EventTarget;



                        WebSocket Client API Working Draft - 2009   12   22
[Constructor (in DOMString url, in optional DOMString protocol)]
[Constructor (in DOMString url, in optional DOMString[] protocols)]
interface WebSocket {
  readonly attribute DOMString URL;

  const unsigned short CONNECTING = 0;
  const unsigned short OPEN = 1;
  const unsigned short CLOSING = 2;
  const unsigned short CLOSED = 3;
  readonly attribute unsigned short readyState;
  readonly attribute unsigned long bufferedAmount;

       attribute Function onopen;
       attribute Function onmessage;
       attribute Function onerror;
       attribute Function onclose;
  readonly attribute DOMString protocol;
   void send(in DOMString data);
  void close();
};
WebSocket implements EventTarget;


                           WebSocket Client API Editor’s Draft - 2010   12   14
WebSocket Client Sample
WebSocket Server
Opening handshake
✤   JavaApplet            Flash            HTTP Header
                 .

                             (Firewall Circumvention Attack)

                     Host Header            ,
                                   (   )                       .

     Cache Poisoning Attack

       Proxy     Cache                      .
✤                                        (Firewall Circumvention Attack)
                      attacker.com:843                 port      origin            Flash

           .

                      swf     attacker.com:80                                .

   Flash Player             attacker.com:843              ,                                .

                      swf                              attacker.com:80                               .

                      swf                         Host Header                                  .

   Transparent Proxy                                  HTTP Request                                 , Host

Header                           .(       IP Address (2.2.2.2)            Host Header (target.com;
1.1.1.1)       ...)
Firewall Circumvention Attack
✤       Cache Poisoning Attack
             Java Applet   attacker.com:80                               .

             Java Applet            Host Header                                     .

Transparent Proxy                 Data       HTTP request                       ,

             IP               .

                  HTTP Expires header                                                           .

Host Header

http://www.google.com/script.js                 (           http://attacker.com/script.js   )

         ,                                          http://www.google.com/script.js

    ,                                                   .
Cache Poisoning Attack
✤   Proxy       Upgrade-based, POST-based
    WebSocket Handshake                     .

✤                          CONNECT mechanism
                 .
✤        Firefox 4 beta 8         Opera 11.0                  WebSocket
                    .

✤   Firefox
                      . (http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/)
BREAK TIME
HTML + NATIVE SDK

HYBRID APP
?

✤                         ,
    Native SDK
                 .

✤                        , Native SDK
                     .
✤   iPhone Safari

     http://splax.net/m

     http://www.touchapp.co.uk/iphone
✤

             ,                   .

                 .

                             .

✤

                     .

    Native               .
Native SDK
      HTML, CSS, JavaScript
                                    (iPhone SDK, Android SDK...)

                                                 Native SDK
 (Native         Native       )




Native Browser




                                  Native
HTML, CSS,
 JavaScript
HTML, CSS,
 JavaScript




     JQTouch,
   JQueryMobile
Native Framework



  HTML, CSS,
   JavaScript




        JQTouch,
      JQueryMobile
iPhone SDK
                Android SDK




Native Framework



  HTML, CSS,
   JavaScript




        JQTouch,
      JQueryMobile
iPhone SDK
                Android SDK


   Native App
Native Framework



  HTML, CSS,
   JavaScript




        JQTouch,
      JQueryMobile
iPhone SDK
                Android SDK


   Native App
Native Framework



  HTML, CSS,
   JavaScript




        JQTouch,
      JQueryMobile
iPhone SDK
                Android SDK


   Native App                 App Store
Native Framework



  HTML, CSS,
   JavaScript




        JQTouch,
      JQueryMobile
iPhone SDK
                Android SDK


   Native App                 App Store
Native Framework



  HTML, CSS,
   JavaScript




        JQTouch,
      JQueryMobile
iPhone SDK
                Android SDK


   Native App                 App Store
Native Framework



  HTML, CSS,
   JavaScript




        JQTouch,
      JQueryMobile
✤             (iPhone, Android, Blackberry, Tablet PC...)

✤   iPhone / iPad           Native SDK
    Macintosh       .

✤   Android             Windows, Mac, Linux           .

✤   Blackberry            Windows              .

     Macintosh                            .
✤   Xcode 3.2.4

     iOS4

✤   Eclipse Galileo

✤   PhoneGap Framework

✤   JQuery Framework (for JQueryMobile)

✤   JQueryMobile or JQTouch Framework

✤   Android SDK & Blackberry SDK
PHONEGAP
BUILDING CROSS-PLATFORM MOBILE APPS
     IN HTML, CSS AND JAVASCRIPT
PHONEGAP      ?

✤   HTML, CSS, JavaScript
                                        .


                            .

✤                    HTML5          .

            ,                   .
PHONEGAP
PHONEGAP - IPHONE
PHONEGAP - IPHONE
PHONEGAP - ANDROID
JQUERY MOBILE
 TOUCH-OPTIMIZED WEB FRAMEWORK
    FOR SMARTPHONES & TABLETS
JQUERY MOBILE

✤                        JavaScript Framework.

✤                                  UI Layout        .

                                    Theme       .

✤           Event         .

     Tap, Swipe, Orientation, Scroll...

✤   JQuery Framework

     Ajax, Animation, Transitions, Dialogs...
JQUERY MOBILE
    <link rel="stylesheet" href="./script/jquery.mobile-1.0a2.min.css"/>
    <script src="./script/jquery-1.4.4.min.js"></script>
    <script src="./script/jquery.mobile-1.0a2.min.js"></script>




✤   <head>        JQueryMobile
                                                                    .

✤                                              .

✤   Alpha 3...                                     ...
JQUERY MOBILE

<meta name="apple-touch-fullscreen" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<meta name="viewport" content="width=device-width, initial-scale=1.0,
maximum-scale=1.0, user-scalable=0;"/>
<meta charset="UTF-8">

<title>Hybrid App Demos - zany.kr</title>

<link rel="apple-touch-startup-image" href="./images/splash_iphone4.png"/>
<link rel="apple-touch-icon" href="./images/icon.png"/>

<link rel="stylesheet" href="./base.css" />
<link rel="stylesheet" href="./script/jquery.mobile-1.0a2.min.css" />
<script src="./script/jWebSocket.js"></script>
<script src="./script/jquery-1.4.4.min.js"></script>
<script src="./script/jquery.mobile-1.0a2.min.js"></script>

<script src="http://maps.google.com/maps/api/js?sensor=true"></script>
JQUERY MOBILE

$(document).bind("mobileinit", function() {
	 // Initialize
});

$(document).ready(function() {
	 // Document Ready
});
JQUERY MOBILE

<div data-role="page">
  <div data-role="header">...</div>
  <div data-role="content">...</div>
  <div data-role="footer">...</div>
</div>




                  header

                 content

                  footer
JQUERY MOBILE
<body onload="onBodyLoad()">
	   <div data-role="page" data-theme="a" id="main">
	   	   <div id="headerArea" data-role="header">
	   	   	   <h1>HybridApp Demo</h1>
	   	   </div>
	   	   <div data-role="content">
	   	   	   <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="b">
	   	   	   	   <li data-role="list-divider">Demo List</li>
	   	   	   	   <li><a href="#inputDemo">Input Demo</a></li>
	   	   	   	   <li><a href="#progressDemo">Progress Demo</a></li>
	   	   	   	   <li><a href="#webstorageDemo">WebStorage Demo</a></li>
	   	   	   	   <li><a href="#geolocationDemo">Geolocation Demo</a></li>
	   	   	   	   <li><a href="#googleMapDemo">GoogleMap Demo</a></li>
	   	   	   	   <li><a href="#websocketChat">WebSocket Chatting</a></li>
	   	   	   	   <li><a href="./list_basic.html" rel="external">Basic ListView</a></li>
	   	   	   </ul>
	   	   </div>
	   	   <div data-role="footer">
	   	   	   <h4><a href="http://zany.kr">http://zany.kr</a></h4>
	   	   </div>
	   </div>
    ...
</body>
JQUERY MOBILE
<div data-role="page" data-theme="a" id="googleMapDemo">
	 <div data-role="header">
	 	 <h1>GoogleMap Demo</h1>
	 </div>
	 <div data-role="content">

	   	   <div id="mapDivTrackingYes">
	   	   	 <input type="button" id="btnTrackingYes" value="Start Tracking"/>
	   	   </div>
	   	   <div id="mapDivTrackingNo">
	   	   	 <input type="button" id="btnTrackingNo" value="Stop Tracking"/>
	   	   </div>
	   	
	   	   <div id="mapLogArea"></div>
	   	   <div id="map_canvas"></div>

	 </div>
	 <div data-role="footer">
	 	 <h4><a href="http://zany.kr">http://zany.kr</a></h4>
	 </div>
</div>
JQUERY MOBILE
$("#googleMapDemo").live("pageshow", function() {

	     $("#mapDivTrackingNo").hide();

	     if (isSupportGeolocation()) {
	     	   navigator.geolocation.getCurrentPosition(mapSuccess, mapError);
	     }

});

function mapSuccess(position) {
	
	   mapLatitude = position.coords.latitude;
	   mapLongitude = position.coords.longitude;

	     $("#mapLogArea div").remove();
	     $("<div></div>").html(""
	     	   	  	   + "Lat: " + mapLatitude + ", "
	     	   	  	   + "Lon: " + mapLongitude).css("color","#228822").appendTo("#mapLogArea");

	     latlng = new google.maps.LatLng(mapLatitude, mapLongitude);

      ...     ...

}
JQUERY HYBRID APP DEMO
JQUERY HYBRID APP DEMO
JQUERY HYBRID APP DEMO
JQUERY HYBRID APP DEMO
✤                                                .

✤   Firebug    Chrome                       .

✤                                     ...

                              .

✤

     http://caniuse.com   http://html5test.com
DEMO



         (iPhone & Android)




http://bit.ly/zany-mobile
HTML5 웹 표준과 모바일 개발

More Related Content

Recently uploaded

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 

Recently uploaded (20)

Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

HTML5 웹 표준과 모바일 개발

  • 1. W3 iP ho ne C ery bile HTML5 jQu 5 Mo Ph L on TM eG (@ohmyzany) ap
  • 2. HTML5 ...
  • 3. HISTORY OF HTML 1989 Tim Berners-Lee, HTML Tags CERN 1994 May The First WWW conference Geneva 1994 Sep IETF sets up HTML working group 1995 Nov HTML 2.0 IETF 1997 Jan HTML 3.2 W3C 1997 Dec HTML 4.0 W3C 1999 Dec HTML 4.01 W3C 2000 XHTML 1.0 W3C 2002 XHTML 2.0 W3C 2004 Web Applications 1.0 WHATWG 2007 HTML5 Working Group W3C 2010 Oct HTML5 Last Call Working Draft W3C
  • 5. HTML5 Jun, 2010 Nov, 2010 Mar, 2011 http://beta.html5test.com
  • 6. HTML5 Jun, 2010 IE7 Nov, 2010 Mar, 2011 IE8 IE9 RC FireFox 4.0 b12 Opera 11 Alpha Chrome 10.0 Safari 5.0 iOS 4.3 Android 2.3 0 50 100 150 200 250 300 http://beta.html5test.com
  • 7. HTML5 Jun, 2010 0 IE7 Nov, 2010 Mar, 2011 27 IE8 0 IE9 RC 139 FireFox 4.0 b12 129 Opera 11 Alpha 202 Chrome 10.0 212 Safari 5.0 125 iOS 4.3 178 Android 2.3 0 50 100 150 200 250 300 http://beta.html5test.com
  • 8. HTML5 Jun, 2010 0 IE7 17 Nov, 2010 Mar, 2011 27 IE8 27 0 IE9 RC 80 139 FireFox 4.0 b12 249 129 Opera 11 Alpha 223 202 Chrome 10.0 252 212 Safari 5.0 220 125 iOS 4.3 198 178 Android 2.3 178 0 50 100 150 200 250 300 http://beta.html5test.com
  • 9. HTML5 Jun, 2010 0 IE7 17 Nov, 2010 17 Mar, 2011 27 IE8 27 32 0 IE9 RC 80 130 139 FireFox 4.0 b12 249 255 129 Opera 11 Alpha 223 234 202 Chrome 10.0 252 288 212 Safari 5.0 220 228 125 iOS 4.3 198 206 178 Android 2.3 178 182 0 50 100 150 200 250 300 http://beta.html5test.com
  • 10. HTML5 ✤ HTML5 - http://bit.ly/chh79p ✤ - http://beta.html5test.com (http:// html5test.com)
  • 12. DOCTYPE <!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <!DOCTYPE html>
  • 13. STRUCTURAL ELEMENTS Before After http://html5doctor.com/designing-a-blog-with-html5/
  • 14. HTML5 FEATURES Web Form Web SQL Database Indexed Database Canvas / SVG Web Storage Audio / Video Web Workers Geolocation Web Socket Web GL
  • 15. HTML5 FEATURES Web Form Web SQL Database Indexed Database Canvas / SVG Web Storage Audio / Video Web Workers Geolocation Web Socket Web GL ● ● ● ● ●
  • 16. <article> <mark> <aside> <meter> <command> <nav> <details> <progress> <summary> <ruby> <figure> <rt> <figcaption> <rp> <footer> <section> <header> <time> <hgroup> <wbr>
  • 17. FORM <canvas> For making graphics with a script. <datalist> A list of options for input values. <keygen> Generate keys to authenticate users. For different types of output, such as <output> output written by a script.
  • 18. INPUT TYPE tel week search time url datetime-local email number datetime range date color month
  • 19. INPUT TYPE <input type=‘color’/> <input type=‘datetime’/> <input type=‘number’/>
  • 20. INPUT TYPE RANGE <input type=‘range’ min=’0’ max=‘100’ step=’1’/>
  • 21. INPUT PLACEHOLDER <input type=‘text’ id=‘userid’ placeholder=‘ ’/> <input type=‘password’ id=‘passwd’ placeholder=‘ ’/>
  • 22. INPUT input required , URL
  • 23. DATALIST <input type="text" list="favorite_cars"/> <datalist id="favorite_cars"> <option label="210hp" value="Kia K5"/> <option label="270hp" value="Kia K7"/> <option label="235hp" value="Hyundai Genesis"/> <option label="360hp" value="Hyundai Equus"/> <option label="174hp" value="BMW Mini Cooper"/> <option label="236hp" value="BMW Mini Cooper S"/> </datalist>
  • 24. INPUT TYPE <input type=‘text’/> <input type=‘email’/>
  • 25. INPUT TYPE <input type=‘number’/> <input type=‘tel’/>
  • 26. For multimedia content, sounds, music or <audio> other audio streams. For video content, such as a movie clip or <video> other video streams. For media resources for media elements, <source> defined inside video or audio elements. <embed> For embedded content, such as plug-in.
  • 27. AUDIO, VIDEO TAG Video Audio Ogg Ogg MPEG-4 H.264 WebM PCM MP3 AAC WebM Theora Vorbis IE9 YES YES YES Firefox 4 YES YES YES YES YES beta 7 Safari YES YES YES YES YES 5.0.2 Chrome YES YES YES YES YES YES YES YES 8.0 Opera YES YES YES YES YES 11.0 iOS YES YES YES YES YES 4.2.1 Android 2.2 http://html5test.com
  • 28. VIDEO TAG <video id="video" poster="../video/poster.png" autobuffer> <source src="../video/myvideo.ogv"/> <source src="../video/myvideo.webm"/> <source src="../video/myvideo.m4v"/> </video> <script> var videoObj = document.getElementById("video"); </script> currentTime ended ? duration paused ? volume pause() play()
  • 29. WEB GL ✤ 3D . ✤ OpenGL ES 2.0 JavaScript . ✤ , , NVIDIA, AMD,
  • 32. DEVICE APIS AND POLICY WORKING GROUP Calendar Contacts Address-book Camera Messaging and microphone (SMS, MMS, Emails) System info Device Interfaces (CPU, Network, etc) Application Launcher (KangChan Lee, WonSuk Lee) ● ● ●
  • 33. DEVICE APIS AND POLICY WORKING GROUP Calendar Contacts Address-book Camera Messaging and microphone (SMS, MMS, Emails) System info Device Interfaces (CPU, Network, etc) Application Launcher (KangChan Lee, WonSuk Lee) ● ● ● Device APIs and Policy Working Group Meeting The DAP WG is planning to have a F2F in Seoul, South Korea on March 15-18 2011, hosted by ETRI.
  • 34. HTML5 WEB STORAGE WEB APPLICATION SOFTWARE METHODS AND PROTOCOLS USED FOR STORING DATA IN A WEB BROWSER. WEB STORAGE SUPPORTS PERSISTENT DATA STORAGE, SIMILAR TO COOKIES, AS WELL AS WINDOW-LOCAL STORAGE.
  • 35. HTML5 WEB STORAGE API ✤ Cookie . ✤ Cookie . 4KB . HTTP Request . . . .
  • 36. HTML5 WEB STORAGE API ✤ HTML5 Web Storage . 5MB . . Key - Value LocalStorage, SessionStorage 2 .
  • 37. HTML5 WEB STORAGE API LocalStorage SessionStorage ( ) ( )
  • 38. HTML5 WEB STORAGE API function isSupportLocalStorage() { var result = true; try { localStorage } catch (e) { result = false; } return result; } function isSupportSessionStorage() { var result = true; try { sessionStorage } catch (e) { result = false; } return result; }
  • 39. HTML5 WEB STORAGE API var sKey = $(“#txtKey”).val(); var sValue = $(“#txtValue”).val(); try { localStorage.setItem(sKey, sValue); } catch (e) { if (e == QUOTA_EXCEEDED_ERR) { alert(“ .”); } } Key-Value pair
  • 40. HTML5 WEB STORAGE API var sKey = “userName”; localStorage.getItem(sKey); localStorage.removeItem(sKey); localStorage.clear(); SessionStorage LocalStorage .
  • 42. HTML5 WEB SQL DATABASE AN API FOR STORING DATA IN DATABASES THAT CAN BE QUERIED USING A VARIANT OF SQL.
  • 43. HTML5 WEB SQL DATABASE ✤ SQL . ✤ SQLite ✤ (http://www.caniuse.com/#search=sql) Google Chrome 7.0 ⇧ / Apple Safari 3.2 ⇧ Opera 10.5 ⇧ / iOS Safari 3.2 ⇧ / Android 2.1 ⇧ IE FireFox ✤ Indexed Database .
  • 44. HTML5 WEB SQL DATABASE ✤ Indexed Database Web SQL Database JavaScript . ( / ) SQL . SQL (Key-Value ) Firefox 4.0 beta 12 .
  • 45. HTML5 WEB SQL DATABASE
  • 46. HTML5 WEB SQL DATABASE ✤ Web SQL Database openDatabase : . transaction : . commit / rollback. executeSql : SQL Query .
  • 47. HTML5 WEB SQL DATABASE ✤ openDatabase ( Open) var db = openDatabase('mydb', '1.0', 'sample db', 2 * 1024 * 1024); db.transaction(function (tx) { // here be the transaction // do SQL magic here using the tx object }); openDatabase Parameters Creation callback
  • 48. HTML5 WEB SQL DATABASE ✤ executeSql SQL . var db = openDatabase('mydb', '1.0', 'sample db', 2 * 1024 * 1024); db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)'); tx.executeSql('INSERT INTO foo (id, text) VALUES (1, "synergies")'); });
  • 49. HTML5 WEB SQL DATABASE ✤ executeSql . var db = openDatabase('mydb', '1.0', 'sample db', 2 * 1024 * 1024); var userID = document.getElementById('userId').value; var userName = document.getElementById('userName').value; db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS foo (id unique, text)'); tx.executeSql('INSERT INTO foo (id, text) VALUES (?, ?)', [userID, userName]); });
  • 50. HTML5 WEB SQL DATABASE ✤ executeSql ResultSet . var db = openDatabase('mydb', '1.0', 'sample db', 2 * 1024 * 1024); db.transaction(function (tx) { tx.executeSql('SELECT * FROM foo', [], function (tx, results) { var len = results.rows.length, i; for (i = 0; i < len; i++) { alert(results.rows.item(i).text); } }); });
  • 51. HTML5 GEOLOCATION THE GEOLOCATION API DEFINES A HIGH-LEVEL INTERFACE TO LOCATION INFORMATION ASSOCIATED ONLY WITH THE DEVICE HOSTING THE IMPLEMENTATION, SUCH AS LATITUDE AND LONGITUDE
  • 52. HTML5 GEOLOCATION API ✤ API. ✤ GPS . WPS : WiFi Positioning System ✤ , , , , , . ✤ navigator.geolocation object
  • 53. HTML5 GEOLOCATION API if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(success, error); } else { alert(“browser does not support geolocation”); } function success(position) { alert(“latitude=” + position.coords.latitude + “, ” + “longitude=” + position.coords.longitude); } function error(e) { alert(“Error”); }
  • 55. HTML5 WEBSOCKET A TECHNOLOGY PROVIDING FOR BI-DIRECTIONAL, FULL-DUPLEX COMMUNICATIONS CHANNELS, OVER A SINGLE TRANSMISSION CONTROL PROTOCOL (TCP) SOCKET
  • 56. ? ✤ TCP Socket IETF . ✤ 1 TCP . ✤ , , . ✤ JavaScript setInterval() Reverse Ajax (Comet) .
  • 57. CASE #1. WAS .
  • 58. CASE #2. WAS
  • 59. [Constructor (in DOMString url, in optional DOMString protocol)] interface WebSocket { readonly attribute DOMString URL; const unsigned short CONNECTING = 0; const unsigned short OPEN = 1; const unsigned short CLOSED = 2; readonly attribute unsigned short readyState; readonly attribute unsigned long bufferedAmount; attribute Function onopen; attribute Function onmessage; attribute Function onclose; boolean send(in DOMString data); void close(); }; WebSocket implements EventTarget; WebSocket Client API Working Draft - 2009 12 22
  • 60. [Constructor (in DOMString url, in optional DOMString protocol)] [Constructor (in DOMString url, in optional DOMString[] protocols)] interface WebSocket { readonly attribute DOMString URL; const unsigned short CONNECTING = 0; const unsigned short OPEN = 1; const unsigned short CLOSING = 2; const unsigned short CLOSED = 3; readonly attribute unsigned short readyState; readonly attribute unsigned long bufferedAmount; attribute Function onopen; attribute Function onmessage; attribute Function onerror; attribute Function onclose; readonly attribute DOMString protocol; void send(in DOMString data); void close(); }; WebSocket implements EventTarget; WebSocket Client API Editor’s Draft - 2010 12 14
  • 63. JavaApplet Flash HTTP Header . (Firewall Circumvention Attack) Host Header , ( ) . Cache Poisoning Attack Proxy Cache .
  • 64. (Firewall Circumvention Attack) attacker.com:843 port origin Flash . swf attacker.com:80 . Flash Player attacker.com:843 , . swf attacker.com:80 . swf Host Header . Transparent Proxy HTTP Request , Host Header .( IP Address (2.2.2.2) Host Header (target.com; 1.1.1.1) ...)
  • 66. Cache Poisoning Attack Java Applet attacker.com:80 . Java Applet Host Header . Transparent Proxy Data HTTP request , IP . HTTP Expires header . Host Header http://www.google.com/script.js ( http://attacker.com/script.js ) , http://www.google.com/script.js , .
  • 68. Proxy Upgrade-based, POST-based WebSocket Handshake . ✤ CONNECT mechanism .
  • 69.
  • 70. Firefox 4 beta 8 Opera 11.0 WebSocket . ✤ Firefox . (http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/)
  • 72. HTML + NATIVE SDK HYBRID APP
  • 73. ? ✤ , Native SDK . ✤ , Native SDK .
  • 74. iPhone Safari http://splax.net/m http://www.touchapp.co.uk/iphone
  • 75. , . . . ✤ . Native .
  • 76. Native SDK HTML, CSS, JavaScript (iPhone SDK, Android SDK...) Native SDK (Native Native ) Native Browser Native
  • 77.
  • 79. HTML, CSS, JavaScript JQTouch, JQueryMobile
  • 80. Native Framework HTML, CSS, JavaScript JQTouch, JQueryMobile
  • 81. iPhone SDK Android SDK Native Framework HTML, CSS, JavaScript JQTouch, JQueryMobile
  • 82. iPhone SDK Android SDK Native App Native Framework HTML, CSS, JavaScript JQTouch, JQueryMobile
  • 83. iPhone SDK Android SDK Native App Native Framework HTML, CSS, JavaScript JQTouch, JQueryMobile
  • 84. iPhone SDK Android SDK Native App App Store Native Framework HTML, CSS, JavaScript JQTouch, JQueryMobile
  • 85. iPhone SDK Android SDK Native App App Store Native Framework HTML, CSS, JavaScript JQTouch, JQueryMobile
  • 86. iPhone SDK Android SDK Native App App Store Native Framework HTML, CSS, JavaScript JQTouch, JQueryMobile
  • 87. (iPhone, Android, Blackberry, Tablet PC...) ✤ iPhone / iPad Native SDK Macintosh . ✤ Android Windows, Mac, Linux . ✤ Blackberry Windows . Macintosh .
  • 88. Xcode 3.2.4 iOS4 ✤ Eclipse Galileo ✤ PhoneGap Framework ✤ JQuery Framework (for JQueryMobile) ✤ JQueryMobile or JQTouch Framework ✤ Android SDK & Blackberry SDK
  • 89. PHONEGAP BUILDING CROSS-PLATFORM MOBILE APPS IN HTML, CSS AND JAVASCRIPT
  • 90. PHONEGAP ? ✤ HTML, CSS, JavaScript . . ✤ HTML5 . , .
  • 95.
  • 96.
  • 97.
  • 98.
  • 99. JQUERY MOBILE TOUCH-OPTIMIZED WEB FRAMEWORK FOR SMARTPHONES & TABLETS
  • 100. JQUERY MOBILE ✤ JavaScript Framework. ✤ UI Layout . Theme . ✤ Event . Tap, Swipe, Orientation, Scroll... ✤ JQuery Framework Ajax, Animation, Transitions, Dialogs...
  • 101. JQUERY MOBILE <link rel="stylesheet" href="./script/jquery.mobile-1.0a2.min.css"/> <script src="./script/jquery-1.4.4.min.js"></script> <script src="./script/jquery.mobile-1.0a2.min.js"></script> ✤ <head> JQueryMobile . ✤ . ✤ Alpha 3... ...
  • 102. JQUERY MOBILE <meta name="apple-touch-fullscreen" content="yes" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;"/> <meta charset="UTF-8"> <title>Hybrid App Demos - zany.kr</title> <link rel="apple-touch-startup-image" href="./images/splash_iphone4.png"/> <link rel="apple-touch-icon" href="./images/icon.png"/> <link rel="stylesheet" href="./base.css" /> <link rel="stylesheet" href="./script/jquery.mobile-1.0a2.min.css" /> <script src="./script/jWebSocket.js"></script> <script src="./script/jquery-1.4.4.min.js"></script> <script src="./script/jquery.mobile-1.0a2.min.js"></script> <script src="http://maps.google.com/maps/api/js?sensor=true"></script>
  • 103. JQUERY MOBILE $(document).bind("mobileinit", function() { // Initialize }); $(document).ready(function() { // Document Ready });
  • 104. JQUERY MOBILE <div data-role="page"> <div data-role="header">...</div> <div data-role="content">...</div> <div data-role="footer">...</div> </div> header content footer
  • 105. JQUERY MOBILE <body onload="onBodyLoad()"> <div data-role="page" data-theme="a" id="main"> <div id="headerArea" data-role="header"> <h1>HybridApp Demo</h1> </div> <div data-role="content"> <ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="b"> <li data-role="list-divider">Demo List</li> <li><a href="#inputDemo">Input Demo</a></li> <li><a href="#progressDemo">Progress Demo</a></li> <li><a href="#webstorageDemo">WebStorage Demo</a></li> <li><a href="#geolocationDemo">Geolocation Demo</a></li> <li><a href="#googleMapDemo">GoogleMap Demo</a></li> <li><a href="#websocketChat">WebSocket Chatting</a></li> <li><a href="./list_basic.html" rel="external">Basic ListView</a></li> </ul> </div> <div data-role="footer"> <h4><a href="http://zany.kr">http://zany.kr</a></h4> </div> </div> ... </body>
  • 106. JQUERY MOBILE <div data-role="page" data-theme="a" id="googleMapDemo"> <div data-role="header"> <h1>GoogleMap Demo</h1> </div> <div data-role="content"> <div id="mapDivTrackingYes"> <input type="button" id="btnTrackingYes" value="Start Tracking"/> </div> <div id="mapDivTrackingNo"> <input type="button" id="btnTrackingNo" value="Stop Tracking"/> </div> <div id="mapLogArea"></div> <div id="map_canvas"></div> </div> <div data-role="footer"> <h4><a href="http://zany.kr">http://zany.kr</a></h4> </div> </div>
  • 107. JQUERY MOBILE $("#googleMapDemo").live("pageshow", function() { $("#mapDivTrackingNo").hide(); if (isSupportGeolocation()) { navigator.geolocation.getCurrentPosition(mapSuccess, mapError); } }); function mapSuccess(position) { mapLatitude = position.coords.latitude; mapLongitude = position.coords.longitude; $("#mapLogArea div").remove(); $("<div></div>").html("" + "Lat: " + mapLatitude + ", " + "Lon: " + mapLongitude).css("color","#228822").appendTo("#mapLogArea"); latlng = new google.maps.LatLng(mapLatitude, mapLongitude); ... ... }
  • 112. . ✤ Firebug Chrome . ✤ ... . ✤ http://caniuse.com http://html5test.com
  • 113. DEMO (iPhone & Android) http://bit.ly/zany-mobile

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n