SlideShare una empresa de Scribd logo
1 de 32
Les défis d’une application
mobile multi-périphériques
avec HTML5
David Rousset
Technical Evangelist
Microsoft France
Web-5 Conference 2013 - Béziers
@davrous
http://aka.ms/davrous
• Introduction 5’
• Créer une application mobile pure HTML5
35’
– Les spécifications disponibles
– Quelques défis retenus et quelques suggestions de
solutions
• Plus loin avec PhoneGap et Sencha Touch
5’
Agenda
Agenda
Introduction
HTML, CSS & JS : une
seule équipe pour toutes les plateformes
en réutilisant
certaines parties sur plusieurs plateformes
pour accéder
entièrement à la plateforme
Pourquoi faire du HTML5 sur mobiles & tablettes ?
IDC - http://www.idc.com/getdoc.jsp?containerId=prUS23480612 (Madame IRMA Corp)
de périphériques mobiles équipés de
navigateurs modernes en 2013
de développeurs Web en 2013
de développeurs d’applications mobile
s’intéressent à HTML5
des applications mobile utiliseront du HTML5 en
2015
Quelques chiffres intéressants
:
– Ergonomie et design
– Concept de SPA (Single Page Application)
– Gestion de l’offline possible
– Gestion de la performance à des endroits différents
:
– Profils développeurs d’apps JS encore rares
– Faire attention aux fuites mémoires, à l’optimisation du
code, aux patterns modernes, etc.
Apps vs Sites
Créer une application
mobile pure HTML5
Démo: quelque exemples
du potentiel d’HTML5
Défi 1 : relever le challenge du tactile
• Outre les , nous avons un
problème technique :
– Touch Events créés par Apple mais non membre de la
spécification W3C (patents)
: pour la souris et pour le tactile
– Faire attention aux « gestures »
Un solution possible: Pointer Events
• Ecrivez votre pour le tactile, le
stylet et la souris
• Les sites écrits uniquement pour la souris fonctionne
automatiquement
• Patterns connus d’évènements DOM de la souris, avec
des extensions pour le touch
Démo: utilisation des
Pointer Events
Défi 2 : gérer la connexion des mobiles
• Pas toujours de connexion : train, tunnel, campagne,
trou noir, etc.
• Vitesse de connexion inférieure et plus chère : éviter
de télécharger à chaque fois
• Cache basé sur un pour des scenarios
déconnectés
• Choisissez les : HTML, CSS, JS &
vos ressources
• Permet de rendre disponible vos
HTTP
via une MAJ du
manifeste
Solution : HTML5 application cache
<html manifest=“test.appcache">
<head>
...
<link href="yourstyles.css“ rel="stylesheet">
<script src="yourcode.js"></script>
</head>
<body>
...
<video … src=“yourvideo.mp4” …>
</video>
...
</body>
</html>
L’usage d’app cache via le fichier de manifest
MIME Type: text/cache-manifest
Démo: application cache
http://aka.ms/platformer
Solution : IndexedDB
• Stockage, et recherche de données
• Stockage de paires « » à la NoSQL
• Indexation en utilisant un
• Pas de dépendances vis-à-vis de l’implémentation du
navigateur
Démo: utilisation
d’IndexedDB pour stocker
des images
Défi 3 : faire attention aux perfs et à la mémoire
• Mauvaises nouvelles :
(au moins !)
– RAM PC >= RAM Mobile * 4 minimum (sans parler de la RAM
Vidéo)
– Certains limitent les perfs de la WebView
• Bonnes nouvelles :
– CPU ARM sont
– GPU mobiles utilisés pour (CSS3, Canvas)
sur mobiles sont récents et donc
– Tout le monde ne limite pas les perfs ;-P
Idées de solutions pour les performances
à privilégier aux
animations JS (jQuery ou autre)
• Ne pas abuser du pattern de Promise
• Essayez d’utiliser les pour taper dans
les différentes cœurs voir des shaders pour taper dans
le GPU
• Faites vos pour :
– Niveler vers le bas
– Adapter dynamiquement les perfs à la plateforme
Attention aux perfs de certaines WebView
0
500
1000
1500
2000
2500
3000
3500
4000
IE10 (WP8) HTML5 APP (WP8) IPHONE 5 SAFARI IPHONE 5 HTML5 APP
SUNSPIDER 0.9.1 SCORE
LOWER IS BETTER
Idées de solutions pour la mémoire
• Savoir bien coder 
– Réutilisation d’objets, identifier les « memory leaks »
– Virtualisation des données
• Attention aux contenus de type image
– SVG : le vectoriel c’est cool mais ça charge le DOM
– Faites attention aux résolutions des images
• Utiliser des profileurs
Démo: benchmark sprites
canvas HTML5
0
1000
2000
3000
4000
5000
6000
Max sprites @30fps Max sprites @60fps
Performance à 30 et 60 FPS
PC Intel Core i5 HD4000 Core i7 avec nVidia GT330m Surface RT
Nokia Lumia 920 Xbox 360
Démo: utilisation des
WebWorkers pour appliquer
des filtres aux images
Résultats des performances de traitement
0 5000 10000 15000 20000
Blur with Monothread
Blur with Workers
Blur with GPU
SnapDragon (2 CPUs) - 1280x720
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
Blur with Monothread Blur with Workers Blur with GPU
Snap Dragon ARM vs Intel Core i7 (HD4000)
Core i7 - HD4000 - 1280x720 SnapDragon (2 CPUs) - 1280x720
Défi 4 : les codes de Design de chaque plateforme
• Une application prévue pour Windows Phone
/Android/Firefox OS
• Le niveau actuel de support de CSS sur mobile vous
permet de refaire vous-même l’expérience des apps
natives mais en partant de zéro…
• … ou alors utilisez et leurs thèmes
adaptés !
Références vers les guides de design
• Windows 8 : http://design.windows.com
• Windows Phone 8 : dev.windowsphone.com/design
• iOS : iOS Human Interface Guidelines
• Android 4.x : http://developer.android.com/design
• Firefox OS : UI Guidelines for Firefox OS
ont leurs propres univers
Démo: jQuery Mobile
Comment étendre HTML5
dans une app native
Démo: PhoneGap et
Sencha Touch
Questions ?

Más contenido relacionado

La actualidad más candente

Webinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft IntelWebinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft Inteldavrous
 
Les VMs Azure pour SharePoint, SQL Server, et AD
Les VMs Azure pour SharePoint, SQL Server, et ADLes VMs Azure pour SharePoint, SQL Server, et AD
Les VMs Azure pour SharePoint, SQL Server, et ADMicrosoft Technet France
 
Wygday 2011 - Bing Maps for Enterprise - La cartographie donne de la vie à vo...
Wygday 2011 - Bing Maps for Enterprise - La cartographie donne de la vie à vo...Wygday 2011 - Bing Maps for Enterprise - La cartographie donne de la vie à vo...
Wygday 2011 - Bing Maps for Enterprise - La cartographie donne de la vie à vo...Nicolas Boonaert
 
Session Objet Connecté gwab 2014 paris
Session Objet Connecté gwab 2014 parisSession Objet Connecté gwab 2014 paris
Session Objet Connecté gwab 2014 parisAymeric Weinbach
 
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...Microsoft
 
TechDays 2013 : Les VMs Azure pour SharePoint, SQL Server, et AD
TechDays 2013 : Les VMs Azure pour SharePoint, SQL Server, et ADTechDays 2013 : Les VMs Azure pour SharePoint, SQL Server, et AD
TechDays 2013 : Les VMs Azure pour SharePoint, SQL Server, et ADMCKLMT
 

La actualidad más candente (7)

Webinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft IntelWebinar HTML5 Microsoft Intel
Webinar HTML5 Microsoft Intel
 
Les VMs Azure pour SharePoint, SQL Server, et AD
Les VMs Azure pour SharePoint, SQL Server, et ADLes VMs Azure pour SharePoint, SQL Server, et AD
Les VMs Azure pour SharePoint, SQL Server, et AD
 
Framework JavaScript Web - Brief techno
Framework JavaScript Web - Brief technoFramework JavaScript Web - Brief techno
Framework JavaScript Web - Brief techno
 
Wygday 2011 - Bing Maps for Enterprise - La cartographie donne de la vie à vo...
Wygday 2011 - Bing Maps for Enterprise - La cartographie donne de la vie à vo...Wygday 2011 - Bing Maps for Enterprise - La cartographie donne de la vie à vo...
Wygday 2011 - Bing Maps for Enterprise - La cartographie donne de la vie à vo...
 
Session Objet Connecté gwab 2014 paris
Session Objet Connecté gwab 2014 parisSession Objet Connecté gwab 2014 paris
Session Objet Connecté gwab 2014 paris
 
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
Eco Conception logicielle : Comment réduire par deux la consommation d&rsquo;...
 
TechDays 2013 : Les VMs Azure pour SharePoint, SQL Server, et AD
TechDays 2013 : Les VMs Azure pour SharePoint, SQL Server, et ADTechDays 2013 : Les VMs Azure pour SharePoint, SQL Server, et AD
TechDays 2013 : Les VMs Azure pour SharePoint, SQL Server, et AD
 

Destacado

Zaha hadid sl sh vilnius museum
Zaha hadid sl sh vilnius museumZaha hadid sl sh vilnius museum
Zaha hadid sl sh vilnius museumSakau TAIP!
 
Evid. 3 planeacion del curso
Evid. 3 planeacion del cursoEvid. 3 planeacion del curso
Evid. 3 planeacion del cursoM Mónica Cruz
 
Xp days2010 agile-usabiltytoolbox
Xp days2010 agile-usabiltytoolboxXp days2010 agile-usabiltytoolbox
Xp days2010 agile-usabiltytoolboxxpdaysgermany
 
L’impressionisme au x xe siecle
L’impressionisme au x xe siecleL’impressionisme au x xe siecle
L’impressionisme au x xe sieclepacitina
 
Quebec bueno
Quebec buenoQuebec bueno
Quebec buenopacitina
 
Vers quelle réforme des collectivités territoriales en France ? Etude compa...
Vers quelle réforme des collectivités  territoriales en France ?  Etude compa...Vers quelle réforme des collectivités  territoriales en France ?  Etude compa...
Vers quelle réforme des collectivités territoriales en France ? Etude compa...Public Evaluation System
 
Quand les médias sociaux ...
Quand les médias sociaux ...Quand les médias sociaux ...
Quand les médias sociaux ...Sebastien Stasse
 
Une stratégie en matière de propriété intellectuelle (PI) pour les PME europé...
Une stratégie en matière de propriété intellectuelle (PI) pour les PME europé...Une stratégie en matière de propriété intellectuelle (PI) pour les PME europé...
Une stratégie en matière de propriété intellectuelle (PI) pour les PME europé...China IPR SME Helpdesk
 
Beispielbilder win7
Beispielbilder win7Beispielbilder win7
Beispielbilder win7isapn08s
 
Hecho en México, hecho en gf k méxico bicentenario-2010
Hecho en México, hecho en gf k  méxico bicentenario-2010Hecho en México, hecho en gf k  méxico bicentenario-2010
Hecho en México, hecho en gf k méxico bicentenario-2010Walkiria Calva
 
Den europäischen Emissionshandel flankieren: Chance und Grenzen unilateraler ...
Den europäischen Emissionshandel flankieren: Chance und Grenzen unilateraler ...Den europäischen Emissionshandel flankieren: Chance und Grenzen unilateraler ...
Den europäischen Emissionshandel flankieren: Chance und Grenzen unilateraler ...Oeko-Institut
 

Destacado (20)

Zaha hadid sl sh vilnius museum
Zaha hadid sl sh vilnius museumZaha hadid sl sh vilnius museum
Zaha hadid sl sh vilnius museum
 
Evid. 3 planeacion del curso
Evid. 3 planeacion del cursoEvid. 3 planeacion del curso
Evid. 3 planeacion del curso
 
ShafwanMech_CV2016
ShafwanMech_CV2016ShafwanMech_CV2016
ShafwanMech_CV2016
 
Xp days2010 agile-usabiltytoolbox
Xp days2010 agile-usabiltytoolboxXp days2010 agile-usabiltytoolbox
Xp days2010 agile-usabiltytoolbox
 
L’impressionisme au x xe siecle
L’impressionisme au x xe siecleL’impressionisme au x xe siecle
L’impressionisme au x xe siecle
 
Francophonie
FrancophonieFrancophonie
Francophonie
 
Quebec bueno
Quebec buenoQuebec bueno
Quebec bueno
 
Feto
FetoFeto
Feto
 
Vers quelle réforme des collectivités territoriales en France ? Etude compa...
Vers quelle réforme des collectivités  territoriales en France ?  Etude compa...Vers quelle réforme des collectivités  territoriales en France ?  Etude compa...
Vers quelle réforme des collectivités territoriales en France ? Etude compa...
 
Quand les médias sociaux ...
Quand les médias sociaux ...Quand les médias sociaux ...
Quand les médias sociaux ...
 
Final audivisuel regies
Final audivisuel regiesFinal audivisuel regies
Final audivisuel regies
 
Une stratégie en matière de propriété intellectuelle (PI) pour les PME europé...
Une stratégie en matière de propriété intellectuelle (PI) pour les PME europé...Une stratégie en matière de propriété intellectuelle (PI) pour les PME europé...
Une stratégie en matière de propriété intellectuelle (PI) pour les PME europé...
 
Jericho
JerichoJericho
Jericho
 
Beispielbilder win7
Beispielbilder win7Beispielbilder win7
Beispielbilder win7
 
Giersdorf A
Giersdorf AGiersdorf A
Giersdorf A
 
Hecho en México, hecho en gf k méxico bicentenario-2010
Hecho en México, hecho en gf k  méxico bicentenario-2010Hecho en México, hecho en gf k  méxico bicentenario-2010
Hecho en México, hecho en gf k méxico bicentenario-2010
 
DeArGe Mitteilungen 5/2003
DeArGe Mitteilungen 5/2003DeArGe Mitteilungen 5/2003
DeArGe Mitteilungen 5/2003
 
Der perfekte Baukasten
Der perfekte BaukastenDer perfekte Baukasten
Der perfekte Baukasten
 
Evid.1 cuestionario
Evid.1 cuestionarioEvid.1 cuestionario
Evid.1 cuestionario
 
Den europäischen Emissionshandel flankieren: Chance und Grenzen unilateraler ...
Den europäischen Emissionshandel flankieren: Chance und Grenzen unilateraler ...Den europäischen Emissionshandel flankieren: Chance und Grenzen unilateraler ...
Den europäischen Emissionshandel flankieren: Chance und Grenzen unilateraler ...
 

Similar a Les défis d’une application mobile multi-périphériques avec HTML5

L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8davrous
 
Responsive web design new14
Responsive web design new14Responsive web design new14
Responsive web design new14FullSIX Group
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologiewyggio
 
Flash vs-html5-adrien-leygues-pw-2011
Flash vs-html5-adrien-leygues-pw-2011Flash vs-html5-adrien-leygues-pw-2011
Flash vs-html5-adrien-leygues-pw-2011Adrien Leygues
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web MobileWilly Leloutre
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptdavrous
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptMicrosoft
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Microsoft Technet France
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !davrous
 
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...Microsoft Technet France
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!CARA_Lyon
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxFrédéric Harper
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptKhalid Jebbari
 

Similar a Les défis d’une application mobile multi-périphériques avec HTML5 (20)

L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8L'histoire d'html5 pour les développeurs windows phone 8
L'histoire d'html5 pour les développeurs windows phone 8
 
Nouveaux apis
Nouveaux apisNouveaux apis
Nouveaux apis
 
Responsive web design new14
Responsive web design new14Responsive web design new14
Responsive web design new14
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologie
 
Flash vs-html5-adrien-leygues-pw-2011
Flash vs-html5-adrien-leygues-pw-2011Flash vs-html5-adrien-leygues-pw-2011
Flash vs-html5-adrien-leygues-pw-2011
 
Performances Web Mobile
Performances Web MobilePerformances Web Mobile
Performances Web Mobile
 
Drupal & Mobilité
Drupal & MobilitéDrupal & Mobilité
Drupal & Mobilité
 
Introduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascriptIntroduction au développement windows 8 modern ui avec html5 et javascript
Introduction au développement windows 8 modern ui avec html5 et javascript
 
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScriptIntroduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
Introduction au développement Windows 8 ModernUI avec HTML5 et JavaScript
 
MGD Html5 pres fr
MGD Html5 pres frMGD Html5 pres fr
MGD Html5 pres fr
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !Les dernières avancées HTML5 & CSS3 en action !
Les dernières avancées HTML5 & CSS3 en action !
 
Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !Les dernières avancées html5 & css3 en action !
Les dernières avancées html5 & css3 en action !
 
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
[AzureCamp 24 Juin 2014] Interactions en "temps réel" pour les applications W...
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 

Más de davrous

Building a cross platforms tower defense game Dev Days 2016
Building a cross platforms tower defense game Dev Days 2016Building a cross platforms tower defense game Dev Days 2016
Building a cross platforms tower defense game Dev Days 2016davrous
 
Create fun & immersive audio experiences with web audio
Create fun & immersive audio experiences with web audioCreate fun & immersive audio experiences with web audio
Create fun & immersive audio experiences with web audiodavrous
 
Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoftdavrous
 
Unleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.jsUnleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.jsdavrous
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esdavrous
 
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JSIntroduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JSdavrous
 
Babylon.js WebGL Paris
Babylon.js  WebGL ParisBabylon.js  WebGL Paris
Babylon.js WebGL Parisdavrous
 
Microsoft et l'Open Source
Microsoft et l'Open SourceMicrosoft et l'Open Source
Microsoft et l'Open Sourcedavrous
 
Back from BUILD - WebGL
Back from BUILD -  WebGLBack from BUILD -  WebGL
Back from BUILD - WebGLdavrous
 
NGF2014 - Create a 3d game with webgl and babylon.js
NGF2014 - Create a 3d game with webgl and babylon.jsNGF2014 - Create a 3d game with webgl and babylon.js
NGF2014 - Create a 3d game with webgl and babylon.jsdavrous
 
Réaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.jsRéaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.jsdavrous
 
Pointer events
Pointer eventsPointer events
Pointer eventsdavrous
 
W3 cafe ie10etwindows8
W3 cafe ie10etwindows8W3 cafe ie10etwindows8
W3 cafe ie10etwindows8davrous
 
Création d'une application html5 utilisant canvas, svg et les animations css3
Création d'une application html5 utilisant canvas, svg et les animations css3Création d'une application html5 utilisant canvas, svg et les animations css3
Création d'une application html5 utilisant canvas, svg et les animations css3davrous
 
Création d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockageCréation d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockagedavrous
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10davrous
 
Développement d'un jeu de plateforme en html5
Développement d'un jeu de plateforme en html5Développement d'un jeu de plateforme en html5
Développement d'un jeu de plateforme en html5davrous
 
AMDEV: Graphismes avec html5 grâce à canvas et svg
AMDEV: Graphismes avec html5 grâce à canvas et svgAMDEV: Graphismes avec html5 grâce à canvas et svg
AMDEV: Graphismes avec html5 grâce à canvas et svgdavrous
 
HTML5 pour l’écriture d’applications cross-devices
HTML5 pour l’écriture d’applications cross-devicesHTML5 pour l’écriture d’applications cross-devices
HTML5 pour l’écriture d’applications cross-devicesdavrous
 
WebCamp HTML5
WebCamp HTML5WebCamp HTML5
WebCamp HTML5davrous
 

Más de davrous (20)

Building a cross platforms tower defense game Dev Days 2016
Building a cross platforms tower defense game Dev Days 2016Building a cross platforms tower defense game Dev Days 2016
Building a cross platforms tower defense game Dev Days 2016
 
Create fun & immersive audio experiences with web audio
Create fun & immersive audio experiences with web audioCreate fun & immersive audio experiences with web audio
Create fun & immersive audio experiences with web audio
 
Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoft
 
Unleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.jsUnleashing WebGL & WebAudio with babylon.js
Unleashing WebGL & WebAudio with babylon.js
 
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.esCreating 3D Worlds with WebGL and Babylon.js - Codemotion.es
Creating 3D Worlds with WebGL and Babylon.js - Codemotion.es
 
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JSIntroduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
Introduction à TypeScript et retour d'expérience sur le portage de Babylon.JS
 
Babylon.js WebGL Paris
Babylon.js  WebGL ParisBabylon.js  WebGL Paris
Babylon.js WebGL Paris
 
Microsoft et l'Open Source
Microsoft et l'Open SourceMicrosoft et l'Open Source
Microsoft et l'Open Source
 
Back from BUILD - WebGL
Back from BUILD -  WebGLBack from BUILD -  WebGL
Back from BUILD - WebGL
 
NGF2014 - Create a 3d game with webgl and babylon.js
NGF2014 - Create a 3d game with webgl and babylon.jsNGF2014 - Create a 3d game with webgl and babylon.js
NGF2014 - Create a 3d game with webgl and babylon.js
 
Réaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.jsRéaliser un jeu cross plateformes avec WebGL et babylon.js
Réaliser un jeu cross plateformes avec WebGL et babylon.js
 
Pointer events
Pointer eventsPointer events
Pointer events
 
W3 cafe ie10etwindows8
W3 cafe ie10etwindows8W3 cafe ie10etwindows8
W3 cafe ie10etwindows8
 
Création d'une application html5 utilisant canvas, svg et les animations css3
Création d'une application html5 utilisant canvas, svg et les animations css3Création d'une application html5 utilisant canvas, svg et les animations css3
Création d'une application html5 utilisant canvas, svg et les animations css3
 
Création d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockageCréation d’une application gérant l’offline et le stockage
Création d’une application gérant l’offline et le stockage
 
Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10Nouveautés html5 et css3 dans internet explorer 10
Nouveautés html5 et css3 dans internet explorer 10
 
Développement d'un jeu de plateforme en html5
Développement d'un jeu de plateforme en html5Développement d'un jeu de plateforme en html5
Développement d'un jeu de plateforme en html5
 
AMDEV: Graphismes avec html5 grâce à canvas et svg
AMDEV: Graphismes avec html5 grâce à canvas et svgAMDEV: Graphismes avec html5 grâce à canvas et svg
AMDEV: Graphismes avec html5 grâce à canvas et svg
 
HTML5 pour l’écriture d’applications cross-devices
HTML5 pour l’écriture d’applications cross-devicesHTML5 pour l’écriture d’applications cross-devices
HTML5 pour l’écriture d’applications cross-devices
 
WebCamp HTML5
WebCamp HTML5WebCamp HTML5
WebCamp HTML5
 

Les défis d’une application mobile multi-périphériques avec HTML5

  • 1. Les défis d’une application mobile multi-périphériques avec HTML5 David Rousset Technical Evangelist Microsoft France Web-5 Conference 2013 - Béziers @davrous http://aka.ms/davrous
  • 2. • Introduction 5’ • Créer une application mobile pure HTML5 35’ – Les spécifications disponibles – Quelques défis retenus et quelques suggestions de solutions • Plus loin avec PhoneGap et Sencha Touch 5’ Agenda Agenda
  • 4. HTML, CSS & JS : une seule équipe pour toutes les plateformes en réutilisant certaines parties sur plusieurs plateformes pour accéder entièrement à la plateforme Pourquoi faire du HTML5 sur mobiles & tablettes ?
  • 5. IDC - http://www.idc.com/getdoc.jsp?containerId=prUS23480612 (Madame IRMA Corp) de périphériques mobiles équipés de navigateurs modernes en 2013 de développeurs Web en 2013 de développeurs d’applications mobile s’intéressent à HTML5 des applications mobile utiliseront du HTML5 en 2015 Quelques chiffres intéressants
  • 6. : – Ergonomie et design – Concept de SPA (Single Page Application) – Gestion de l’offline possible – Gestion de la performance à des endroits différents : – Profils développeurs d’apps JS encore rares – Faire attention aux fuites mémoires, à l’optimisation du code, aux patterns modernes, etc. Apps vs Sites
  • 8. Démo: quelque exemples du potentiel d’HTML5
  • 9. Défi 1 : relever le challenge du tactile • Outre les , nous avons un problème technique : – Touch Events créés par Apple mais non membre de la spécification W3C (patents) : pour la souris et pour le tactile – Faire attention aux « gestures »
  • 10. Un solution possible: Pointer Events • Ecrivez votre pour le tactile, le stylet et la souris • Les sites écrits uniquement pour la souris fonctionne automatiquement • Patterns connus d’évènements DOM de la souris, avec des extensions pour le touch
  • 12. Défi 2 : gérer la connexion des mobiles • Pas toujours de connexion : train, tunnel, campagne, trou noir, etc. • Vitesse de connexion inférieure et plus chère : éviter de télécharger à chaque fois
  • 13. • Cache basé sur un pour des scenarios déconnectés • Choisissez les : HTML, CSS, JS & vos ressources • Permet de rendre disponible vos HTTP via une MAJ du manifeste Solution : HTML5 application cache
  • 14. <html manifest=“test.appcache"> <head> ... <link href="yourstyles.css“ rel="stylesheet"> <script src="yourcode.js"></script> </head> <body> ... <video … src=“yourvideo.mp4” …> </video> ... </body> </html> L’usage d’app cache via le fichier de manifest MIME Type: text/cache-manifest
  • 16. Solution : IndexedDB • Stockage, et recherche de données • Stockage de paires « » à la NoSQL • Indexation en utilisant un • Pas de dépendances vis-à-vis de l’implémentation du navigateur
  • 18. Défi 3 : faire attention aux perfs et à la mémoire • Mauvaises nouvelles : (au moins !) – RAM PC >= RAM Mobile * 4 minimum (sans parler de la RAM Vidéo) – Certains limitent les perfs de la WebView • Bonnes nouvelles : – CPU ARM sont – GPU mobiles utilisés pour (CSS3, Canvas) sur mobiles sont récents et donc – Tout le monde ne limite pas les perfs ;-P
  • 19. Idées de solutions pour les performances à privilégier aux animations JS (jQuery ou autre) • Ne pas abuser du pattern de Promise • Essayez d’utiliser les pour taper dans les différentes cœurs voir des shaders pour taper dans le GPU • Faites vos pour : – Niveler vers le bas – Adapter dynamiquement les perfs à la plateforme
  • 20. Attention aux perfs de certaines WebView 0 500 1000 1500 2000 2500 3000 3500 4000 IE10 (WP8) HTML5 APP (WP8) IPHONE 5 SAFARI IPHONE 5 HTML5 APP SUNSPIDER 0.9.1 SCORE LOWER IS BETTER
  • 21. Idées de solutions pour la mémoire • Savoir bien coder  – Réutilisation d’objets, identifier les « memory leaks » – Virtualisation des données • Attention aux contenus de type image – SVG : le vectoriel c’est cool mais ça charge le DOM – Faites attention aux résolutions des images • Utiliser des profileurs
  • 23. 0 1000 2000 3000 4000 5000 6000 Max sprites @30fps Max sprites @60fps Performance à 30 et 60 FPS PC Intel Core i5 HD4000 Core i7 avec nVidia GT330m Surface RT Nokia Lumia 920 Xbox 360
  • 24. Démo: utilisation des WebWorkers pour appliquer des filtres aux images
  • 25. Résultats des performances de traitement 0 5000 10000 15000 20000 Blur with Monothread Blur with Workers Blur with GPU SnapDragon (2 CPUs) - 1280x720 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 Blur with Monothread Blur with Workers Blur with GPU Snap Dragon ARM vs Intel Core i7 (HD4000) Core i7 - HD4000 - 1280x720 SnapDragon (2 CPUs) - 1280x720
  • 26. Défi 4 : les codes de Design de chaque plateforme • Une application prévue pour Windows Phone /Android/Firefox OS • Le niveau actuel de support de CSS sur mobile vous permet de refaire vous-même l’expérience des apps natives mais en partant de zéro… • … ou alors utilisez et leurs thèmes adaptés !
  • 27. Références vers les guides de design • Windows 8 : http://design.windows.com • Windows Phone 8 : dev.windowsphone.com/design • iOS : iOS Human Interface Guidelines • Android 4.x : http://developer.android.com/design • Firefox OS : UI Guidelines for Firefox OS ont leurs propres univers
  • 29.
  • 30. Comment étendre HTML5 dans une app native

Notas del editor

  1. T+3 min
  2. T+5 min
  3. T + 5 min Démos www.msn.com sur Tablet et WP8 dans les simu puis Larousse sur Win8 RT
  4. T+8 min
  5. T+11 min Démo : mousemove, puis CSS touch-action puis MSPointerMove puis HandJS
  6. T+15min
  7. T + 18 min : démo platformer sur WP8 (online/offline)
  8. T+20 min
  9. T+22 min : démo SnapyX sur IE10 classique et expliquer problèmes ergo pour le tactile
  10. T+25 min
  11. T+28 min
  12. T+29 min
  13. T+31minDémo 60 FPS sur WP8 et sur le PC
  14. T+33min
  15. T+34Démo filtres image sur Surface RT avec application caméra
  16. T+36
  17. T+37
  18. T+38
  19. T + 39Projet déjà setupé. Démo avec thème WP et sans thème (iOS)
  20. T + 40 min
  21. Démo du projet PhoneGap complet (accès caméra, contacts, etc.) sur le téléphoneDémo de SenchaTouch dans IE10: http://cdn.sencha.io/touch/sencha-touch-2.2.0/examples/kitchensink/index.html?platform=ie10#demo/overlays et dans Chrome : http://cdn.sencha.io/touch/sencha-touch-2.2.0/examples/kitchensink/index.html#demo/overlays