SlideShare a Scribd company logo
+                 +                  =   

                        Dr. Sabin Buraga
Facultatea de Informatică, Universitatea “Alexandru Ioan Cuza” Iași
                    www.purl.org/net/busaco
designer Web

      +        +   =   
+           +   =   
dezvoltator Web
            +   +   =   
altcineva
 cool (?!)
Salut, eu sunt suita
de tehnologii HTML5!



+            +          =   
+             +              =   
 vocabular (set de elemente + atribute)
folosit pentru marcarea paginilor Web
+            +             =   
suită de API-uri facilitând procesarea documentelor
   la nivelul navigatorului Web – desktop, mobil,…
+             +             =   
permite dezvoltarea standardizată de aplicații Web
+              +              =   
   recurge la tehnologii înrudite referitoare la
  prezentare via foi de stiluri în cascadă – CSS
            model conceptual – DOM
procesare la nivel de navigator Web – JavaScript

                   …și altele
+              +          =   
.web-ui { tehnologie: CSS3; }
   Cascading Style Sheets
@font-face Web fonts       Background-image options
calc() as CSS unit value   Border images
2.1 selectors              Border-radius (rounded corners)
Counters                   Box-shadow
Feature Queries            Box-sizing
Filter Effects             Colors
Generated content          Media Queries
Gradients                  Multiple backgrounds
Grid Layout                Multiple column layout
Hyphenation                object-fit/object-position
inline-block               Opacity
Masks                      Overflow-wrap
min/max-width/height       selectors
outline                    Text-overflow
position:fixed             Text-shadow
Regions                    Transforms
Repeating Gradients        Transitions
resize property            word-break
Table display              Flexible Box Layout Module
3D Transforms              Font feature settings
Animation                  rem (root em) units
http://caniuse.com/
+            +        =   
  acces & manipulare
         DOM
(Document Object Model)
HTML
                                    HtmlElement
<html>
  <body>
    <p>                                HTML
       Tehnologii Web               BodyElement
    </p>
    <div>
                                HTML
       <img src="web.png"/>                    HTML
                              Paragraph
    </div>                                  DivElement
                               Element
  </body>
</html>
                                                 HTML
                                    Text
                                              ImageElement




            document text (.html)
  reprezentare în memorie ca arbore de obiecte
+             +       =   
procesare via API-uri
 this.javascript
+             +             =   
   în curs de standardizare la Consorțiul Web
statut candidate recommendation (decembrie 2012)




             www.w3.org/TR/html5/
diverse specificații HTML5 în lucru: dev.w3.org/html5/
“HTML5 should not be considered as a whole.
   You should cherry-pick the technology
  that suits the solution to your problem.”
                 Remy Sharp
semantic
     markup


+              +   =   
noi elemente
de structurare
a conținutului
<!DOCTYPE html>
<html>
  <head>
     <title>Titlu glorios al paginii sau aplicației Web</title>
     <link rel="stylesheet" type="text/css" href="stiluri.css" />
     <meta charset="utf-8" />
  </head>
  <body>
     <header>
         <h1>Titlu principal</h1>
         <p class="slogan">...</p>
     </header>
     <article>
        <nav class="menu">
           <a href="...">Undeva</a> * <a href="...">Altundeva</a>
        </nav>
        <section>
           <p>ceva aparent interesant?!</p>
           <aside>informații adiționale</aside>
        </section>
        <section>...</section>
     </article>
     <footer>
        <h6>Ultima actualizare, autorul, termeni legali,...</h6>
     </footer>
  </body>
                           detalii la http://html5doctor.com/
</html>
semantic
        markup


   +              +    =   
     noi tipuri de
     interacțiune
  via formulare Web
search tel url email
 date number range
semantic
     markup


+              +   =   
 microdate
schema.org
grafică
    2D & 3D


+             +   =   
   <canvas>
în contextul 2D
<canvas> + JavaScript = 



www.html5canvastutorials.com
grafică
    2D & 3D


+             +   =   
   <canvas>
în contextul 3D
     WebGL
instrumente pentru dezvoltatori: CopperLicht, CubicVR,
     PhiloGL, SceneJS, TDL (ThreeD Library), Three.js
grafică
     2D & 3D


 +             +     =   
grafică vectorială
  SVG / TinySVG
<svg>
   ...
   <circle cx="75" cy="75" r="10" class="forma"/>
</svg>

                     .forma { /* stiluri pentru construcțiile SVG */
                        fill: red; stroke: yellow; stroke-width: 3px;
                     }

    biblioteci Javascript: BonsaiJS, D3.js, Raphaël.js,…
multimedia


  +             +      =   
      <audio>
      <video>
API-uri de procesare
    a sunetului
offline &
            storage


        +               +         =   
           Web Storage
(localStorage & sessionStorage)
    baze de date: IndexedDB
  caching via ApplicationCache
connectivity
     & real-time


   +                +     =   
mesaje între documente
  XMLHttpRequest2
     WebSocket
evenimente de la server
       WebRTC
performanța


      +             +          =   
        WebWorker
 RequestAnimationFrame
date direct în URL – BlobURL
device
    access


+             +   =   
  drag & drop
  orientation
  geolocation
starea bateriei
device
         access


    +               +        =   
        notificări
 acces la camera Web
acces la fișiere – FileAPI
Blob URLs                       matchMedia
Cross-document messaging        Navigation Timing API
Cross-Origin Resource Sharing   PageVisibility
Device Orientation events       requestAnimationFrame
File API                        Server-sent DOM events
FileReader API                  Shared Web Workers
Filesystem & FileWriter API     Typed Arrays
Full Screen API                 Web Audio API
Geolocation                     Web Notifications
getUserMedia/Stream API         Web Sockets
Hashchange event                Web Storage
IndexedDB                       Web Workers




   HTML5 – cele mai importante API-uri JavaScript
  http://www.w3.org/standards/techs/js#w3c_all
http://mobilehtml5.org/
Super!... Mai multe despre
  tehnologiile HTML5?



         +             +    =   
www.webplatform.org
http://diveintohtml5.org/
developer.mozilla.org
www.html5rocks.com
http://html5please.com/
http://webplatformtools.org/
http://html5weekly.com/
aplicație
        Firefox OS


+   +                =   
aplicație
          Firefox OS


+     +                =   
        construită cu
    HTML, CSS și JavaScript
.
│   favicon.ico
│   index.html
│   install.html
│   manifest.webapp
│   offline.appcache
├───css
│       app.css
│       install-button.css
├───img
│   │   offline.png
│   │   online.png
│   │   pattern.png
│   │   recommend.png
│   └───icons
└───js
    │   app.js
    │   init.js
    │   install-button.js
    └───lib
.
│   favicon.ico                  document HTML5
│   index.html                 structurare conținut +
│   install.html             interacțiune cu utilizatorul
│   manifest.webapp
│   offline.appcache
├───css
│       app.css
│       install-button.css
├───img
│   │   offline.png
│   │   online.png
│   │   pattern.png
│   │   recommend.png
│   └───icons
└───js
    │   app.js
    │   init.js
    │   install-button.js
    └───lib
.
│   favicon.ico                     document HTML5
│   index.html                    structurare conținut +
│
│
    install.html
    manifest.webapp
                                interacțiune cu utilizatorul
│   offline.appcache         <!DOCTYPE html>
├───css                      <html>
                               <head manifest="offline.appcache">
│       app.css                  <meta charset="utf-8" />
│       install-button.css       <title>Aplicație Firefox OS</title>
                                 <meta name="description" content="..."/>
├───img                          <link rel="stylesheet"
│   │   offline.png                    href="css/app.css"/>
│   │   online.png             </head>
                               <body>
│   │   pattern.png              <!-- conținut oferit de aplicație -->
│   │   recommend.png
│   └───icons                    <!-- indicator baterie -->
                                 <div id="indicator">...</div>
└───js                           <script type="text/javascript"
    │   app.js                           data-main="js/init.js"
    │   init.js                          src="js/lib/require.js">
                                 </script>
    │   install-button.js      </body>
    └───lib                  </html>
.
│   favicon.ico
│   index.html
│   install.html
│   manifest.webapp
│   offline.appcache
├───css
│       app.css
│       install-button.css
├───img
│   │   offline.png          stiluri CSS, eventual imagini
│   │   online.png              pentru redarea datelor
│   │   pattern.png
│   │   recommend.png
│   └───icons
└───js
    │   app.js
    │   init.js
    │   install-button.js
    └───lib
.
│   favicon.ico
│   index.html
│   install.html
│   manifest.webapp
│   offline.appcache
├───css
│       app.css
│       install-button.css
├───img
│   │   offline.png          stiluri CSS, eventual imagini
│   │   online.png              pentru redarea datelor
│   │   pattern.png
│   │   recommend.png        html {
                               background: url(../img/pattern.png);
│   └───icons                }
└───js
    │   app.js               /* responsive Web design */
                             @media only screen and
    │   init.js                     (max-width : 500px) {
    │   install-button.js      #indicator { /* indicator baterie */
    └───lib                         border: 2px solid #999;
                                    text-align: center;
                                    ...
                               }
                             }
.
│   favicon.ico
│   index.html
│   install.html
│   manifest.webapp
│   offline.appcache
├───css
│       app.css
│       install-button.css
├───img
│   │   offline.png
│   │   online.png
│   │   pattern.png
│   │   recommend.png
│   └───icons                   programe JavaScript
└───js                         recurg la API-uri HTML5
    │
    │
        app.js
        init.js
                             & API-uri specifice Firefox OS
    │   install-button.js
    └───lib
.
│   favicon.ico
│   index.html               ...
                             // creăm via DOM un element <canvas>
│   install.html             var canvas =
│   manifest.webapp            document.createElement ('canvas');
│   offline.appcache         var ctx = canvas.getContext ('2d');
                             canvas.width = game.width * blocksize;
├───css                      canvas.height = game.height * blocksize;
│       app.css              canvas.id = 'game-canvas';
                             ...
│       install-button.css   // desenăm numărul nivelului jocului
├───img                      ctx.fillStyle = 'rgb(0, 0, 0)';
│   │   offline.png          ctx.font =
                               '14pt SilkscreenNormal, sans-serif';
│   │   online.png           ctx.fillText ('Level: ' +
│   │   pattern.png            (game.levelidx + 1),
│   │   recommend.png          canvas.width - blocksize,
                               canvas.height + 1);
│   └───icons                ...
└───js
    │
    │
        app.js
        init.js
                              fragment de cod JavaScript
    │   install-button.js        implementând un joc
    └───lib
sistemul
        Firefox OS


+   +                =   
sistemul
              Firefox OS


+         +                =   
    Gaia – interfața cu utilizatorul
sistemul
             Firefox OS


+        +                =   
                Gecko
    redarea & procesarea datelor
     via standarde Web deschise
          (HTML, CSS, JS etc.)
sistemul
           Firefox OS


+      +                =   
               Gonk
    biblioteci & nucleu Linux
         +              +               =   
 resurse pentru creatorii de aplicații Firefox OS
  (documentații, exemplificări, referințe, ajutor,…)

                oferite de Mozilla:
developer.mozilla.org/en/docs/Mozilla/Firefox_OS
        +              +               =   
resurse pentru creatorii de aplicații Firefox OS
 (documentații, exemplificări, referințe, ajutor,…)

            puse la dispoziție de alții:
             http://firefoxos.info/
         http://buildingfirefoxos.com/
Mult succes!

             +                 +                  =   

                        Dr. Sabin Buraga
Facultatea de Informatică, Universitatea “Alexandru Ioan Cuza” Iași
                    www.purl.org/net/busaco

More Related Content

PDF
CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5
PDF
Suita de tehnologii HTML5
PDF
HTML5? HTML5!
PDF
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
PDF
HTML5 în XXX de minute
PDF
O lectie de anatomie Web. Disectia unui document HTML
PDF
Node.js: aspecte esențiale
PDF
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....
CLIW 2014—2015 (10/12): Programare Web. Suita de tehnologii HTML5
Suita de tehnologii HTML5
HTML5? HTML5!
Foi de stiluri CSS – concepte esențiale (...și puțin mai mult)
HTML5 în XXX de minute
O lectie de anatomie Web. Disectia unui document HTML
Node.js: aspecte esențiale
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #11): Programare Web....

What's hot (18)

PDF
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
PDF
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
PDF
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
PDF
Căutarea resurselor Web
PDF
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
PDF
Cu codul în "nori"
PDF
CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)
PDF
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
PDF
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
PDF
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
PDF
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
PDF
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
PDF
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
PDF
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
PDF
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
PDF
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
PDF
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
PDF
STAW 08/12: Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5
CLIW 2015-2016 (11/13) Programare Web. API-uri JavaScript în contextul HTML5
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...
Căutarea resurselor Web
CLIW 2015-2016 (9/13) Ingineria dezvoltării aplicațiilor JavaScript
Cu codul în "nori"
CLIW 2017-2018 (10/12) Programare Web. API-uri JavaScript în contextul HTML5 (I)
CLIW 2014—2015 (11/12): Programare Web. API-uri JavaScript în contextul HTML5
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #12): Programare Web....
CLIW 2015-2016 (4/13) Design Web. Proiectarea siturilor Web. Design Web respo...
Dezvoltarea aplicațiilor Web (3/12): Arhitectura aplicaţiilor Web orientate s...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
STAW 09/12: Programare Web. API-uri JavaScript în contextul HTML5 (I)
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de client
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uri
STAW 08/12: Programare Web. Suita de tehnologii HTML5
Ad

Viewers also liked (6)

PDF
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
PDF
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #13): Performanţa apl...
PDF
Dezvoltarea aplicațiilor Web (7/12): Arhitectura aplicaţilor RDF. Linked Open...
PDF
Curs3 poo 2016
PDF
Sax Shaw Presentation
PPTX
Date security identifcation and authentication
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #6): Căutarea resurse...
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #13): Performanţa apl...
Dezvoltarea aplicațiilor Web (7/12): Arhitectura aplicaţilor RDF. Linked Open...
Curs3 poo 2016
Sax Shaw Presentation
Date security identifcation and authentication
Ad

Similar to Aplicații Firefox OS cu HTML5 (20)

PDF
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
PPT
Programare Web - De la CGI la servere de aplicatii
PDF
Arhitectura browser-ului Web
PPTX
Analiza si evolutia vulnerabilitatilor web
PDF
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
PPTX
Licenta web aplicatie.pptx
PDF
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
PPSX
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
PDF
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
PDF
Flori x
PPTX
005. html5 si canvas
PDF
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
PDF
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
PDF
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
PDF
CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...
PDF
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
PPTX
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
PDF
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
PDF
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
PDF
Modelarea datelor via XML. Design patterns in contextul specificarii document...
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
Programare Web - De la CGI la servere de aplicatii
Arhitectura browser-ului Web
Analiza si evolutia vulnerabilitatilor web
WADe 2014—2015 (supliment): Dezvoltare Web via node.js
Licenta web aplicatie.pptx
CLIW 2017-2018 (9/12) Programare Web. Suita de tehnologii HTML5
[Web Days] Manipularea Datelor, Conectivitate Si Performanta In Silverlight 2
STAW 02/12: Programare Web: Limbajul JavaScript. Aspecte esenţiale
Flori x
005. html5 si canvas
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări...
STAW 10/12: Programare Web. API-uri JavaScript în contextul HTML5 (II)
CLIW 2017-2018 (11/12) Programare Web. API-uri JavaScript în contextul HTML5 ...
CLIW 2014—2015 (2/12): Arhitectura navigatorului Web
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
CLIW 2015-2016 (2/13) Arhitectura navigatorului Web
Dezvoltarea aplicaţiilor Web la nivel de client (cursul #10): Ingineria dezvo...
Modelarea datelor via XML. Design patterns in contextul specificarii document...

More from Sabin Buraga (20)

PDF
Web 2020 01/12: World Wide Web – aspecte arhitecturale
PDF
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
PDF
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
PDF
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
PDF
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
PDF
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
PDF
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
PDF
Web 2020 09/12: Servicii Web. Paradigma REST
PDF
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
PDF
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
PDF
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
PDF
STAW 01/12: Arhitectura aplicaţiilor Web
PDF
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
PDF
STAW 04/12: Programare Web: Node.js
PDF
STAW 05/12: Arhitectura navigatorului Web
PDF
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
PDF
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
PDF
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
PDF
Sabin Buraga: Dezvoltator Web?! (2019)
PDF
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...
Web 2020 01/12: World Wide Web – aspecte arhitecturale
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni Web
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie Web
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object Model
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...
Web 2020 09/12: Servicii Web. Paradigma REST
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţiale
STAW 01/12: Arhitectura aplicaţiilor Web
STAW 03/12: Programare Web: Limbajul JavaScript. Aspecte moderne: ES6 et al.
STAW 04/12: Programare Web: Node.js
STAW 05/12: Arhitectura navigatorului Web
STAW 07/12: Ingineria dezvoltării aplicaţiilor JavaScript
STAW 11/12: Performanţa aplicaţiilor Web la nivel de client
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...
Sabin Buraga: Dezvoltator Web?! (2019)
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...

Aplicații Firefox OS cu HTML5

  • 1. + + =  Dr. Sabin Buraga Facultatea de Informatică, Universitatea “Alexandru Ioan Cuza” Iași www.purl.org/net/busaco
  • 2. designer Web + + = 
  • 3. + + =  dezvoltator Web
  • 4. + + =  altcineva cool (?!)
  • 5. Salut, eu sunt suita de tehnologii HTML5! + + = 
  • 6. + + =  vocabular (set de elemente + atribute) folosit pentru marcarea paginilor Web
  • 7. + + =  suită de API-uri facilitând procesarea documentelor la nivelul navigatorului Web – desktop, mobil,…
  • 8. + + =  permite dezvoltarea standardizată de aplicații Web
  • 9. + + =  recurge la tehnologii înrudite referitoare la prezentare via foi de stiluri în cascadă – CSS model conceptual – DOM procesare la nivel de navigator Web – JavaScript …și altele
  • 10. + + =  .web-ui { tehnologie: CSS3; } Cascading Style Sheets
  • 11. @font-face Web fonts Background-image options calc() as CSS unit value Border images 2.1 selectors Border-radius (rounded corners) Counters Box-shadow Feature Queries Box-sizing Filter Effects Colors Generated content Media Queries Gradients Multiple backgrounds Grid Layout Multiple column layout Hyphenation object-fit/object-position inline-block Opacity Masks Overflow-wrap min/max-width/height selectors outline Text-overflow position:fixed Text-shadow Regions Transforms Repeating Gradients Transitions resize property word-break Table display Flexible Box Layout Module 3D Transforms Font feature settings Animation rem (root em) units
  • 13. + + =  acces & manipulare DOM (Document Object Model)
  • 14. HTML HtmlElement <html> <body> <p> HTML Tehnologii Web BodyElement </p> <div> HTML <img src="web.png"/> HTML Paragraph </div> DivElement Element </body> </html> HTML Text ImageElement document text (.html) reprezentare în memorie ca arbore de obiecte
  • 15. + + =  procesare via API-uri this.javascript
  • 16. + + =  în curs de standardizare la Consorțiul Web statut candidate recommendation (decembrie 2012) www.w3.org/TR/html5/
  • 17. diverse specificații HTML5 în lucru: dev.w3.org/html5/
  • 18. “HTML5 should not be considered as a whole. You should cherry-pick the technology that suits the solution to your problem.” Remy Sharp
  • 19. semantic markup + + =  noi elemente de structurare a conținutului
  • 20. <!DOCTYPE html> <html> <head> <title>Titlu glorios al paginii sau aplicației Web</title> <link rel="stylesheet" type="text/css" href="stiluri.css" /> <meta charset="utf-8" /> </head> <body> <header> <h1>Titlu principal</h1> <p class="slogan">...</p> </header> <article> <nav class="menu"> <a href="...">Undeva</a> * <a href="...">Altundeva</a> </nav> <section> <p>ceva aparent interesant?!</p> <aside>informații adiționale</aside> </section> <section>...</section> </article> <footer> <h6>Ultima actualizare, autorul, termeni legali,...</h6> </footer> </body> detalii la http://html5doctor.com/ </html>
  • 21. semantic markup + + =  noi tipuri de interacțiune via formulare Web search tel url email date number range
  • 22. semantic markup + + =  microdate schema.org
  • 23. grafică 2D & 3D + + =  <canvas> în contextul 2D
  • 24. <canvas> + JavaScript =  www.html5canvastutorials.com
  • 25. grafică 2D & 3D + + =  <canvas> în contextul 3D WebGL
  • 26. instrumente pentru dezvoltatori: CopperLicht, CubicVR, PhiloGL, SceneJS, TDL (ThreeD Library), Three.js
  • 27. grafică 2D & 3D + + =  grafică vectorială SVG / TinySVG
  • 28. <svg> ... <circle cx="75" cy="75" r="10" class="forma"/> </svg> .forma { /* stiluri pentru construcțiile SVG */ fill: red; stroke: yellow; stroke-width: 3px; } biblioteci Javascript: BonsaiJS, D3.js, Raphaël.js,…
  • 29. multimedia + + =  <audio> <video> API-uri de procesare a sunetului
  • 30. offline & storage + + =  Web Storage (localStorage & sessionStorage) baze de date: IndexedDB caching via ApplicationCache
  • 31. connectivity & real-time + + =  mesaje între documente XMLHttpRequest2 WebSocket evenimente de la server WebRTC
  • 32. performanța + + =  WebWorker RequestAnimationFrame date direct în URL – BlobURL
  • 33. device access + + =  drag & drop orientation geolocation starea bateriei
  • 34. device access + + =  notificări acces la camera Web acces la fișiere – FileAPI
  • 35. Blob URLs matchMedia Cross-document messaging Navigation Timing API Cross-Origin Resource Sharing PageVisibility Device Orientation events requestAnimationFrame File API Server-sent DOM events FileReader API Shared Web Workers Filesystem & FileWriter API Typed Arrays Full Screen API Web Audio API Geolocation Web Notifications getUserMedia/Stream API Web Sockets Hashchange event Web Storage IndexedDB Web Workers HTML5 – cele mai importante API-uri JavaScript http://www.w3.org/standards/techs/js#w3c_all
  • 37. Super!... Mai multe despre tehnologiile HTML5?  + + = 
  • 45. aplicație Firefox OS + + = 
  • 46. aplicație Firefox OS + + =  construită cu HTML, CSS și JavaScript
  • 47. . │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib
  • 48. . │ favicon.ico document HTML5 │ index.html structurare conținut + │ install.html interacțiune cu utilizatorul │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib
  • 49. . │ favicon.ico document HTML5 │ index.html structurare conținut + │ │ install.html manifest.webapp interacțiune cu utilizatorul │ offline.appcache <!DOCTYPE html> ├───css <html> <head manifest="offline.appcache"> │ app.css <meta charset="utf-8" /> │ install-button.css <title>Aplicație Firefox OS</title> <meta name="description" content="..."/> ├───img <link rel="stylesheet" │ │ offline.png href="css/app.css"/> │ │ online.png </head> <body> │ │ pattern.png <!-- conținut oferit de aplicație --> │ │ recommend.png │ └───icons <!-- indicator baterie --> <div id="indicator">...</div> └───js <script type="text/javascript" │ app.js data-main="js/init.js" │ init.js src="js/lib/require.js"> </script> │ install-button.js </body> └───lib </html>
  • 50. . │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png stiluri CSS, eventual imagini │ │ online.png pentru redarea datelor │ │ pattern.png │ │ recommend.png │ └───icons └───js │ app.js │ init.js │ install-button.js └───lib
  • 51. . │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png stiluri CSS, eventual imagini │ │ online.png pentru redarea datelor │ │ pattern.png │ │ recommend.png html { background: url(../img/pattern.png); │ └───icons } └───js │ app.js /* responsive Web design */ @media only screen and │ init.js (max-width : 500px) { │ install-button.js #indicator { /* indicator baterie */ └───lib border: 2px solid #999; text-align: center; ... } }
  • 52. . │ favicon.ico │ index.html │ install.html │ manifest.webapp │ offline.appcache ├───css │ app.css │ install-button.css ├───img │ │ offline.png │ │ online.png │ │ pattern.png │ │ recommend.png │ └───icons programe JavaScript └───js recurg la API-uri HTML5 │ │ app.js init.js & API-uri specifice Firefox OS │ install-button.js └───lib
  • 53. . │ favicon.ico │ index.html ... // creăm via DOM un element <canvas> │ install.html var canvas = │ manifest.webapp document.createElement ('canvas'); │ offline.appcache var ctx = canvas.getContext ('2d'); canvas.width = game.width * blocksize; ├───css canvas.height = game.height * blocksize; │ app.css canvas.id = 'game-canvas'; ... │ install-button.css // desenăm numărul nivelului jocului ├───img ctx.fillStyle = 'rgb(0, 0, 0)'; │ │ offline.png ctx.font = '14pt SilkscreenNormal, sans-serif'; │ │ online.png ctx.fillText ('Level: ' + │ │ pattern.png (game.levelidx + 1), │ │ recommend.png canvas.width - blocksize, canvas.height + 1); │ └───icons ... └───js │ │ app.js init.js fragment de cod JavaScript │ install-button.js implementând un joc └───lib
  • 54. sistemul Firefox OS + + = 
  • 55. sistemul Firefox OS + + =  Gaia – interfața cu utilizatorul
  • 56. sistemul Firefox OS + + =  Gecko redarea & procesarea datelor via standarde Web deschise (HTML, CSS, JS etc.)
  • 57. sistemul Firefox OS + + =  Gonk biblioteci & nucleu Linux
  • 58. + + =  resurse pentru creatorii de aplicații Firefox OS (documentații, exemplificări, referințe, ajutor,…) oferite de Mozilla: developer.mozilla.org/en/docs/Mozilla/Firefox_OS
  • 59. + + =  resurse pentru creatorii de aplicații Firefox OS (documentații, exemplificări, referințe, ajutor,…) puse la dispoziție de alții: http://firefoxos.info/ http://buildingfirefoxos.com/
  • 60. Mult succes!  + + =  Dr. Sabin Buraga Facultatea de Informatică, Universitatea “Alexandru Ioan Cuza” Iași www.purl.org/net/busaco