63
PARLONS-EN

HTML5 vu par Ekino

  • Upload
    ekino

  • View
    2.218

  • Download
    0

Embed Size (px)

DESCRIPTION

Une présentation rapide par Florian Harmel du HTML5 et des technologies associées. Les principales innovations du point de vue d'un intégrateur.

Citation preview

Page 1: HTML5 vu par Ekino

PARLONS-EN

Page 2: HTML5 vu par Ekino
Page 3: HTML5 vu par Ekino

‘‘ EST-IL PRÊT ?

PAS ENCORE

Le HTML5 est encore en cours de spécification, il est toujours pressenti pour être validé en 2014

Page 4: HTML5 vu par Ekino

‘‘ INCOMPATIBLE AVEC IE ? 

OUI ET NONA partir de IE9, Microsoft a commencé à implémenter certaines nouveautés du HTML5, notamment la sémantique.Pour le reste, des alternatives existent.

Page 5: HTML5 vu par Ekino

‘‘ PAS QUE DU HTML

EFFECTIVEMENTLe HTML5 est souvent un « raccourci » pour définir plusieurs nouveautés qui l’entourent.

Page 6: HTML5 vu par Ekino

‘‘ HTML5 EST RÉTROCOMPATIBLE AVEC HTML ET XHTML ?

OUIIl est tout-à-fait possible d’implémenter des nouveautés HTML5 dans des documents respectant les anciens standards.Les médias en sont un bon exemple.

Page 7: HTML5 vu par Ekino

‘‘ HTML5 EST FAIT POUR LES APPLICATIONS COMME GMAIL?

NONLe HTML5 apporte aussi une nouvelle sémantique permettant une structure allégée et un meilleur référencement.

Page 8: HTML5 vu par Ekino

‘‘ HTML5 EST COMPLEXE !

PARFOISLe HTML5 recense plusieurs nouveautés. Certaines sont plus faciles à appréhender que d’autres.La sémantique est simple alors que certaines APIs comme indexedDB sont difficiles à comprendre.

Page 9: HTML5 vu par Ekino

OFFLINE & STOCKAGE

Des applications qui démarrent plus vite et qui fonctionnent même sans connexion Internet

APPCACHE

INDEXEDDB

LOCAL STORAGE

FILE API

APPCACHE

INDEXEDDB

LOCAL STORAGE}

Page 10: HTML5 vu par Ekino

STOCKAGE : APP CACHE

Stockage en fonction d’une liste de fichiers dans un fichier de configuration : Manifest

Permet de stocker une partie du site sur le poste client Les éléments statiques (JS/CSS/Images) Les éléments nécessaires à l’application en

offline

Une « notification » informe l’utilisateur qu’une nouvelle version de la WebApp est disponible

Page 11: HTML5 vu par Ekino

STOCKAGE : LOCALSTORAGE

Permet de stocker des données localement Accessible par domaine Un remplacement des cookies Une espace de stockage d’environ 5MB

Le client seul peut accéder aux données Plus sûr que les cookies

Stockage de « string » ou d’objets « simples »

Page 12: HTML5 vu par Ekino

STOCKAGE : INDEXED DB

Création d’une base de donnée locale Zone de stockage dédiée Format JSON Sans syntaxe SQL

Un fonctionnement asynchrone afin de préserver la fluidité de l’interface.

Stockage d’objets complexes

Page 13: HTML5 vu par Ekino

STOCKAGE DE DONNÉES ENTRE

SESSIONS

MISE EN CACHE D’ÉLÉMENTS

REMPLACEMENT DES COOKIES

OPTIMISATION DU CHARGEMENT DES

PAGES

STOCKAGE D’OBJETS SIMPLES

CONFIGURATION DES PAGES À

CACHER

APP CACHE LOCALSTORAGE

STOCKAGE STRUCTURÉ

STOCKAGE DE DONNÉES

COMPLEXES

TEMPS D’ACCÈS + LONGS (> 300ms)

INDEXED DB

INCOMPATIBLE iOS

STOCKAGE : LIMITES & USAGES

SUPPRESSION CACHE PAR MODIF

MANIFEST

Page 14: HTML5 vu par Ekino

FILE API

Lire les fichiers locaux Upload de fichiers depuis le contrôle

« Parcourir… » natif Accessible aussi par Drag’n’Drop depuis le

bureau Lecture des informations de fichiers locaux Accès aux informations binaires (Ex: Exif des

images)

Écrire des fichiers localement Traitement d’images et de fichiers

Page 15: HTML5 vu par Ekino

CONNECTIVITÉ

Des sites Web qui « écoutent » le serveur, des applications multi-utilisateurs, du push

WEB SOCKETS

SERVER-SENT EVENTS

Page 16: HTML5 vu par Ekino

SERVER-SENT EVENTS

API Javascript Basé sur le protocole HTTP Communication uni-directionnelle

entre le serveur et le client Reconnexion automatique Événements personalisés

Page 17: HTML5 vu par Ekino

WEB SOCKETS

Protocole + API Javascript Communication bi-directionnelle entre

le client et le serveur

Page 18: HTML5 vu par Ekino

JEUX MULTI-JOUEURSMISE À JOUR DE STATUTS

CHATS EN TEMPS RÉELNOTIFICATIONS

MESSAGERIE

TÉLÉCOMMANDE ENTRE DEVICES

MISE À JOUR DE STOCK PRODUITS

SERVER-SENT EVENTS

WEBSOCKETS

Page 19: HTML5 vu par Ekino

PERFORMANCE

Des sites Web plus rapides et plus dynamiques grâce à des nouvelles techniques et technologies

Vos utilisateurs ne devraient jamais attendre.

WEB WORKERS

XMLHTTPREQUEST 2

Page 20: HTML5 vu par Ekino

WEB WORKERS

Script exécuté en tâche de fond Aucune interférence avec l’interface Permet à la page de ne pas se bloquer

pendant l’exécution de lourdes tâches de fond

Communication avec le Worker via des évènements

Possibilité pour plusieurs scripts de partager un worker : SharedWorkers

Le script ne peut pas interagir avec le DOM

Page 21: HTML5 vu par Ekino

XMLHTTPREQUEST 2

Permet les requêtes cross-domain Prévoit des évènements de

progression de transferts Supporte l’upload et le download de

données binaires Permet de travailler de concert avec

d’autres nouveautés telles que File API / Web Audio API

Page 22: HTML5 vu par Ekino

SÉMANTIQUE

Plus de balises pour plus de sens

Plus de sens pour les utilisateurs mais aussi pour Google

« Notre travail, notre vie entière sont une question de sémantique, parce que les mots sont les outils avec lesquels nous travaillons, le matériel à partir duquel les lois sont faites, à partir de laquelle la Constitution a été écrite. Tout dépend de notre compréhension de ces mots. »

(Felix Frankfurter / Avocat)

Page 23: HTML5 vu par Ekino

SÉMANTIQUE

Des nouvelles balises HTML5 : Header – Footer – Aside – Section – Nav Article – Time – Figure

Microdatas Microformats RDFa WebForms : Des nouveaux éléments

de formulaires

Page 24: HTML5 vu par Ekino

SÉMANTIQUE : UN PEU DE CODE

Avant :

<body>

<div id="container">

<div id="head">

<div id="menu">

<ul>

<li>Menu 1</li>

<li>Menu 2</li>

</ul>

</div>

</div>

<div id="body">

<div id="navigation">

<ul>

<li>Navi 1</li>

<li>Navi 2</li>

</ul>

</div>

<div id="body_container">

<div class="block">

<div class="image">

<img src="__mon__url__" />

</div>

<div class="text">

Texte

</div>

</div>

</div>

</div>

<div id="foot">

Mon pied de page

</div>

</div>

</body>

Après :

<body> <div id="container"> <header> <nav data-role="menu"> <ul> <li>Menu 1</li> <li>Menu 2</li> </ul> </nav> </header> <div id="body"> <aside> <ul> <li>Navi 1</li> <li>Navi 2</li> </ul> </aside> <section id="body_container"> <article> <figure> <img src="__mon__url__" /> </figure> <p> Texte </p> </article> </section> </div> <footer> Mon pied de page </footer> </div></body>

Nouvelles balises :

Page 25: HTML5 vu par Ekino

SÉMANTIQUE : UN PEU DE CODE

Microdatas :

<div itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href="www.ekino.com"> <div itemprop="name"><strong>Florian Harmel</strong></div> </a> <div itemscope itemtype="http://schema.org/Organization"> <span itemprop="name">Ekino</span> </div> <div itemprop="jobtitle">Consultant UI</div> <div itemprop="description">Rendre votre expérience Web plus attractive</div> <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> <div itemprop="streetAddress">157 rue Anatole France</div> <div> <span itemprop="addressLocality">Levallois-Perret</span> </div> <div itemprop="postalCode">92300</div> <div itemprop="addressCountry">France</div> </div> <div itemprop="email">[email protected]</div> <div itemprop="telephone">0149687368</div> <div> <meta itemprop="birthDate" content="2012-06-19">DOB: 06/19/2012 </div></div>

Page 26: HTML5 vu par Ekino

SÉMANTIQUE : UN PEU DE CODE

Sans microformats :

<address>

<p>

Jean Bout<br/>

Société Exemple<br/>

604-555-1234<br/>

<a

href="http://exemple.com/">http://exemple.com/</a

>

</p>

</address>

Avec microformat hCard :

<address class="vcard"> <p> <span class="fn">Jean Bout</span><br/> <span class="org">Société Exemple</span><br/> <span class="tel">604-555-1234</span><br/> <a class="url" href="http://exemple.com/">http://exemple.com/</a> </p></address>

Microformats :

Page 27: HTML5 vu par Ekino

WEBFORMS

Des nouveaux contrôles Des attributs prenant en charge les

nouveaux périphériques Une prise en charge de la validation

côté client Des nouveautés adaptées aux besoins

des développeurs

Page 28: HTML5 vu par Ekino

WEBFORMS : NOUVEAUX CONTRÔLES

TEL

URL

PROGRESS KEYGENOUTPUT

INPUT

AUTRES

EMAIL

SEARCH DATE/TIME

MONTH/WEEK

RANGE

COLORNUMBER

Page 29: HTML5 vu par Ekino

WEBFORMS : NOUVEAUX ATTRIBUTS

AUTOCOMPLETE

NOVALIDATE AUTOFOCUS

PATTERN

AUTOCOMPLETE PLACEHOLDER

STEP

MAXREQUIRED

MIN

FORM INPUT

Page 30: HTML5 vu par Ekino

STYLES CSS3

Sans sacrifier la structure et la performances de vos pages, la CSS3 vous offre enfin une vaste gamme de styles et d’effets.

Page 31: HTML5 vu par Ekino

Font-face

Calc() as CSS unit value

2.1 selectors

Counters

Generated Content

Gradients

Grid Layout

Hyphenation

Inline-block

min/max-width/height

position:fixedRegions

Table display

3D Transforms

Animation

Background-image options

Border imagesBorder-radius

Box-shadows

Colors

Media Queries

Multiple Backgrounds

Multiple Column Layout

object-fit/object-position

Opacity

Text-Overflow

Text-shadows

Transforms

Word-wrap

Rem (root em)

Masks

Text-stroke

Page 32: HTML5 vu par Ekino

Calc() as CSS unit value

Counters

Generated Content

Gradients

Inline-block

min/max-width/height

position:fixedRegions

Table display

Hyphenation

Background-image options

Border imagesBorder-radius

Box-shadows

ColorsMultiple

Backgrounds

Multiple Column Layout

object-fit/object-position

Opacity

Text-Overflow

Text-shadows

Word-wrap

Rem (root em)

Masks

Text-stroke

Font-face Animation

Transforms

Grid Layout

Media Queries

3D Transforms

2.1 selectors

Page 33: HTML5 vu par Ekino

FONT-FACE

Toutes les polices sur votre site Compatibilité multi-périphériques Fonctionnement natif

Page 34: HTML5 vu par Ekino

FONT-FACE : PAR L’EXEMPLE

Avant :

Page 35: HTML5 vu par Ekino

FONT-FACE : PAR L’EXEMPLE

Après :

Page 36: HTML5 vu par Ekino

GRID LAYOUT

Nouvelle solution de positionnement des éléments

Grille virtuelle avec colonnes et lignes Adapté à la problématique de

Responsive Webdesign Positionnement intuitif Permet un allégement substantiel du

DOM

Page 37: HTML5 vu par Ekino

GRID LAYOUT : UN PEU DE CODE

Implémentation d’une grille complexe :

body { display: -ms-grid; grid-columns: 1fr 1fr 1fr; grid-rows: 1fr 1fr 1fr 1fr 1fr 1fr;}.bloc1 { grid-column: 1; grid-row: 1; grid-row-span: 3;}.bloc2 { grid-column: 1; grid-row: 4; grid-row-span: 3;}.bloc3 { grid-column: 2; grid-row: 1; grid-row-span: 6;}.bloc4 { grid-column: 3; grid-row: 1; grid-row-span: 2;}…

Bloc 1

Bloc 2

Bloc 3

Bloc 4

Bloc 5

Bloc 6

Page 38: HTML5 vu par Ekino

NOUVEAUX SÉLECTEURS CSS

Des éléments atteints plus vite, sans multiplier les classes CSS

Un code HTML allégé et plus compréhensible

Des feuilles de style optimisées Une logique de rendu déplacée du

back et du JS vers la CSS

Page 39: HTML5 vu par Ekino

NOUVEAUX SÉLECTEURS : CÔTÉ CODE

Des CSS moins complexes avec une nouvelle logique

li { background:#0990b2; margin-bottom:5px; padding:2px 0 2px 5px; border-bottom:2px solid #ffec19; list-style:none;}li.first { text-transform:uppercase;}li.odd { background:#12a6cc;}li.last { border:none;}li.oneBeforeLast { margin-left:15px;} li li { background:#b31048;}li li.odd { background:#ff0057;}li.open { padding-right:5px;}li.afterOpen { margin-top: 15px;}li.open .firstLetter { color:#000; width:50px; text-decoration:underline;}

li { background:#0990b2; margin-bottom:5px; padding:2px 0 2px 5px; border-bottom:2px solid #ffec19; list-style:none;}li:first-child { text-transform:uppercase;}li:nth-child(odd){ background:#12a6cc;}li:last-of-type { border:none;}li:nth-last-of-type(2) { margin-left:15px;}

li li { background:#b31048;}li li:nth-child(odd) { background:#ff0057;}li.open { padding-right:5px;}li.open + li { margin-top: 15px;}li.open::first-letter { color:#000; display:block; width:50px; text-decoration:underline;}

Page 40: HTML5 vu par Ekino

NOUVEAUX SÉLECTEURS : CÔTÉ CODE

Du côté du HTML, une différence flagrante

<ul> <li class="first odd">Nav 1</li> <li>Nav 1</li> <li class="open odd"> <span class="firstLetter">N</span>av 1 <ul> <li class="oneBeforeLast odd first">Nav2</li> <li class="last">Nav2</li> </ul> </li> <li class="afterOpen">Nav 1</li> <li class="odd">Nav 1</li> <li class="oneBeforeLast">Nav 1</li> <li class="odd last">Nav 1</li></ul>

<ul> <li>Nav 1</li> <li>Nav 1</li> <li class="open"> Nav 1 <ul> <li>Nav2</li> <li>Nav2</li> </ul> </li> <li>Nav 1</li> <li>Nav 1</li> <li>Nav 1</li> <li>Nav 1</li></ul>

Page 41: HTML5 vu par Ekino

TRANSITIONS / ANIMATIONS

Possibilité de mettre des transitions entre chaque propriété CSS

Le rendu n’est plus à la charge du JavaScript

Des animations plus fluides Des interfaces plus riches

Page 42: HTML5 vu par Ekino

TRANSFORMATIONS

Transformations 2D et 3D Interpolations Les transformations peuvent être

faites avec des transitions/animations Permet d’éviter d’utiliser des images

pour créer des formes géométriques

Page 43: HTML5 vu par Ekino

Des médias qui vivent en harmonie avec vos pages Web, le tout sans plugins

MÉDIAS

VIDÉO

AUDIO

Page 44: HTML5 vu par Ekino

BALISE VIDÉO

Une nouvelle balise HTML5 Une API permettant de contrôler la

vidéo en Javascript Possibilité de récupérer le Flux vidéo

dans un canvas

Page 45: HTML5 vu par Ekino

BALISE AUDIO

Une nouvelle balise HTML5 Une API permettant de contrôler le flux

audio en Javascript Possibilité de récupérer le Flux audio

et de l ’analyser en Javascript Fonctionnement identique à la balise

Vidéo

Page 46: HTML5 vu par Ekino

MÉDIAS : LIMITES / RESTRICTIONS

Pas de DRM Difficile d’implémenter du streaming Multiplicité des formats / navigateur

OGG MP4 WEBM

Page 47: HTML5 vu par Ekino

PORTABILITÉ

Un site, une application, pour tous, partout…

MEDIA-QUERIES

ORIENTATION / LOCALISATION

ACCÈS AUX DONNÉES DES PÉRIPHÉRIQUES

Page 48: HTML5 vu par Ekino

MEDIA-QUERIES

Application de feuilles de styles en fonction des périphériques

Adapter dynamiquement le design avec CSS aux différents supports

1 site avec 1 contenu pour tous les écrans

L’utilisation des CSS média-queries permet le Responsive Webdesign

Page 49: HTML5 vu par Ekino

LE RESPONSIVE WEBDESIGN EN IMAGE

Page 50: HTML5 vu par Ekino

ORIENTATION ET LOCALISATION

Accès aux informations de géolocalisation Par IP pour les browsers d’ordinateurs de bureau Par IP + triangulation + GPS pour les mobiles et

tablettes

Accès aux données d’accélération et d’orientation pour les périphériques le supportant Boussole Accéléromètre Gyroscope

Page 51: HTML5 vu par Ekino

DEVICE API

L’API prévoit un accès (avec l’accord de l’utilisateur) aux éléments suivants : Tâches Contacts Rendez-vous Appareil Photo Microphone Service de messagerie Journal d’appel Informations système

Aucun support pour le moment

Page 52: HTML5 vu par Ekino

EFFETS & 3D

Vous êtes désormais sûrs de surprendre vos utilisateurs avec des visuels et animations rendus nativement par le navigateur

CANVAS

SVG

WEB GL

Page 53: HTML5 vu par Ekino

CANVAS

Surface de pixels contrôlée par JS Permet de dessiner dans une image Des APIs JS de dessin à disposition

Courbes de Bézier Lignes Etc…

Boîte noire, pas d’accessibilité

Page 54: HTML5 vu par Ekino

SVG

Dessiner en 2D vectorielle via XML Accès aux éléments SVG depuis le

DOM Les éléments SVG peuvent être stylés

par CSS SVG peut être chargé depuis un fichier

externe ou en ligne dans un document HTML

L’arbre des données est conservé en mémoire

Page 55: HTML5 vu par Ekino

CANVAS VS. SVG

SVG

CANVAS

GRAPHIQUES

IMAGES STATIQUES

DOC IMPRIMABLE

JEUX VIDÉO 2D

SCÈNES COMPLEXES

JEUX COMPLEXES

TRAITEMENTS D’IMAGE

CARTOGRAPHIE

Page 56: HTML5 vu par Ekino

WEB GL

Utiliser le standard Open GL depuis Javascript

Permet de faire de la 3D Le rendu est obtenu grâce à

l’accéleration matérielle de la carte graphique

Beaucoup de cartes graphiques sont « blacklistées » à cause de défaillances de pilotes

Peu de projets actuellement

Page 57: HTML5 vu par Ekino

FLASH N’EST PAS MORT

HTML5

FLASH

HTML

VIDÉO & SON

SITES ECOMMERCE & B2B

SITES WEB APPLICATIFS

APPLICATIONS LOURDES

3D

JEUX 3D

VIDÉOS AVEC DRM OU PUB

SITES MOBILES

Page 58: HTML5 vu par Ekino

Un « buzzword » qui prend tout son sens tant les nouveautés sont nombreuses

Une norme basée sur l’usage Aucune limite du HTML5 ne semble

insurmontable De nouvelles possibilités pour des interfaces

innovantes Une voie grande ouverte vers l’applicatif Le HTML5 est en perpétuelle évolution

HTML5

« Le HTML5 n’est pas encore prêt, ne le sera jamais (et c’est une bonne chose) »

(Christian Heilmann / Yahoo)

Page 59: HTML5 vu par Ekino

Des développeurs sensibilisés et qui ont l’expérience du support Motion design

3D

Des IDE utilisables et plus performants Système de timeline

Génération propre de CSS multi-navigateurs (préfixes)

Frameworks HTML5 à tester et éprouver Joshfire

HTML5 : LES CHALLENGES

Page 60: HTML5 vu par Ekino

‘‘ HTML5 = FUTUR ?

‘‘ OUI ’’

Page 61: HTML5 vu par Ekino

SOURCES http://caniuse.com/ http://www.w3schools.com/html5/ http://www.html5rocks.com/en/features/presentation http://slides.html5rocks.com/ http://www.w3.org/html/logo/ http://www.alsacreations.com/article/lire/750-HTML5-

nouveautes.html http://www.w3.org/TR/html5/ http://goetter.fr/ http://www.abookapart.com/products/html5-for-web-

designers http://www.abookapart.com/products/responsive-web-

design http://fr.wikipedia.org/wiki/Websocket http://microformats.org/ http://www.sitepoint.com/javascript-shared-web-worke

rs-html5/

Et plein d’autres joyeusetés glanées ici et là …

Page 62: HTML5 vu par Ekino

DEMOS

Les démos sont accessibles ici : LIEN

Page 63: HTML5 vu par Ekino

LE SUPPORT DU HTML5 DANS LE MONDE

« Votre responsabilité est de ne plus développer pour IE6 »(Daniel Glazman / W3C)

France Monde

Mauvais Support

11.5

Mauvais Support22.71

Bon support26.48

Bon support26.48

Très bon support62.02

Très bon support50.81