SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Développezvosapplicationsnativesen
HTML/JSavecles
ChromeApps
Quisuis-je?
Florent Dupont
Expert TechniqueWeb & Mobilité
florent-dupont.blogspot.fr
+FlorentDUPONT
Cette présentation a été donnée en Novembre 2014 dans le cadre d’une
session Tech Study Group, une session de partage et de veille à SQLI Nantes.
Cette présentation de Chrome Apps est mise à disposition
selon les termes de la licence Creative Commons by-nc-sa.
ChromeApps
Tourd’horizon des applicationsChrome
programmez 178
Découvertedes applicationsChrome Mobiles
programmez 179
Chromeenunephrase…
“Apporterl’expériencelarichesseduWebendehorsdevotrenavigateur.
”…eten4concepts
UI Immersive
Accèshardware
Offline par default
Sécurisé
Multi-devices
ChromeOS,windows, Linux, OSX
ApacheCordova : ioS, Android
Chrome–lescanauxdedéveloppement
Canary
Run side-by-side
Profile dédié
Release daily as it’s build
Pas testé
Report & statisticsto Google
Très proche de dev channel
Dev channel
Release 1 to 2 /Week
Bêta channel
Release Weekly
1 month before Stable
Chromium builds
Open-sourceproject
Sources
Continuousbuild
Working copy
Can be build from source
Stablechannel
Fully tested
Updated every 2-3 weeks
Major update 6 months
Release public
Earlyaccess StableSources
WebAppsvsChromeExtensionsvsChromeApps
Web Apps
Hébergée
Distant
WEB/JS/CSS
Online
Execution dans navigateur
Service en ligne
API : API Web Chrome *
ChromeExtensions
Packagé en CRX (zip-like)
Local
WEB/JS/CSS
Offline
Execution dans navigateur
Fonctionnalité du navigateur
API : API Web Chrome *, API
extensions (bookmarks, cookies,
devtools, downloads, history, …)
ChromeApps
Packagée en CRX (zip-like)
Local
WEB/JS/CSS
Offline
Execution hors navigateur
Application native
API :API Web Chrome *, API apps
(bluetooth, serial, fileSystem,
runtime, …)
Créeruneapplication
4éléments
Manifest.json
{
"name": "My awesome App",
"version": "2.0.1",
"manifest_version": 2,
"permissions": [...],
"minimum_chrome_version": "23",
"icons": {
...
},
"app": {
"background": {
"scripts": ["app.js"]
}
}
}
Icones
16px 32px 48px 128px
Installation,Web Store
Fortement recommandé
favicon, infobars
(extensions)
recommandé
RaccourcisWindows Page de management
Carrées
Down/up-scaléessi besoin
Permissions
Définir les accèsautoriséspar l’application.
URL
http://*/* : toutes les URL qui matchent le protocole http.
Par exemple : http://www.google.com/
file:///foo* : tous les accès aux fichiers locaux dont les fichiers commencent par foo*
<all_urls> : matche toutesles URL
API
serial, storage, videoCapture, …
 Disponible sur la documentationdes API.
Scriptdelancement
app.js
______________________________________________________________________
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('index.html', {
id: "mainwin",
bounds: {
width: 320,
height: 240
}
});
});
Empaquetage
Depuis chrome://extensions
En ligne decommande
chrome.exe --pack-extension=C:myapp --pack-extension-key=C:myapp.pem
Démo
Création,packaging&lancement
API
Tourd’horizon
QuellesAPI?
Les API Web standards : JS standardWeb (document, window, etc), librairiesJS
tierces(jQuery, Angular), XHR.
Les API Web non-standardiséesimplémentéespar Chrome : audio, geolocalisation,
canvas, mais égalementWeb Speech,getUserMedia,Web Animations,…
Les API Webkit : CSS webkit-* (webkit-transform, webkit-transition, … )
API V8 : JSON
Les API ChromeApps
pas les API Chrome Extensions
APIMatérielle
Serial, Socket(TCP, UDP), USB, HID, bluetooth,BLE
RichNotifications
Différentstypes : basic, image, list,progression
APISystème
Idle,
power,
system.*: CPU, display, Memory,Network,Storage
OSetapplications
Runtime
Storage
SyncFileSystem
App.runtime,app.window
Commands
Events
mediaGalleries
Wallpaper, audio*
*Chrome OS only in dev Channel
Cloudetservices
pushMessaging
GCM
Identity
Copresence*
*dev channel
Accessibilité
TTS(Text-To-Speech), accessiblityFeatures
I18N
Démo
JouonsavecArduinoetleSerialAPI
DémoduSerialAPI–CommunicationavecArduino
USB (profil serie)
Intégration
aveclesframeworksWeb
ContentSecurityPolicy
Idée: se prémunir des faillesCross-SiteScripting (XSS)
Impacts:
• Pas d’utilisationd’inline scriptingdans le HTML : les balises <script>,les events
handlers (i.e onclick())bloqués
• Pas de référencementà des resourcesexternes: img, frame, font, media, style
(exceptaudio et video).
• Les fonction« string-to-JS» nesont pas autorisées(eval(), Function(), …)
Intégrationavecl’existant
index.html
main.js
index.html
Refused to evaluate a string as JavaScript
because 'unsafe-eval' is not an allowed
source of script in the following Content
Security Policy directive: "default-src
'self'". Note that 'script-src' was not
explicitly set, so 'default-src' is used as
a fallback.
IntégrationavecAngular
Mode de compatibilitéCSP : DirectivengCsp
Impacts:
• Evaluationdes expressions30% plus lent.
• Inclusionangular-csp.css manuellement
• Ajoutde la directiveng-csp.
<!doctype html>
<html ng-app ng-csp>
IntégrationavecPolymer
Externaliserles portionsde scripts
<polymer-element name="my-title">
<template>
<h1>{{label}}</h1>
</template>
<script>
Polymer("my-title", {
ready: function() {
this.label = "I <3 my ChromeBook";
}
});
</script>
</polymer-element>
<polymer-element name="my-title">
<template>
<h1>{{label}}</h1>
</template>
<script src="my-title.js"></script>
</polymer-element>
Polymer("my-title", {
ready: function() {
this.label = "I <3 my ChromeBook";
}
});
my-title.js
my-title.htmlmy-title.html
IntégrationavecPolymer
Vulcanizer l’application
…mais incompatibleavec ChromeOS
(NodeJS indisponible).
UtiliserChromeDev Editorpour
refactorerpour CSP.
<polymer-element name="my-title">
<template>
<h1>{{label}}</h1>
</template>
<script>
Polymer("my-title", {
ready: function() {
this.label = "I <3 my ChromeBook";
}
});
</script>
</polymer-element>
Outilsdedéveloppement
ChromeDevEditor (developer preview)
ChromeDevEditor (developer preview)
Outil unifié pour les développementJS/Dart
CompatibleWeb Apps & ChromeApps
IntégrationBower
Déploiement sur Mobile
PublicationPlayStore
Clone depuis Github
Polymer Designer
+ …
ChromeApps&ExtensionsDeveloperTool
Un chrome://extensions amélioré
Améliore le flow de travail
Séparation apps/extensions
Historique des appels (debug)
Distribuersonapplication
ChromeWebStore
Découvrabilitédes applications
listing, notations,revues, commentaires,achat etinstallation
centralisésau sein d’une plateformeunique.
Monétisation.
Comptedéveloppeur : 5$
ChromeAppLauncher
Intégréà l’OS.
CompatibletousOS
Pointcentral pour les applications
ChromeAppLauncherdepuisChrome
Disponible sous : chrome://apps
Administrationvia chrome://extensions
Etsurmobile?
BasésurApacheCordova(Adobe PhoneGap)
ApplicationsHybride = ApplicationWeb dans un conteneurnatifvia WebView.
Google contributeur
Plugin Cordova pour ChromeApps
Objectif:
Proposerles API clés de Chrome pour une utilisationavec iOS etAndroid.
HistoriquedesWebviews
IOS : UIWebControl
Android < 4.4 : moteur de rendu du BrowserAndroid (basé sur Webkit, limité)
Android 4.4 : moteur Chromium M30 (V8, quelques standards).
Android 5 : moteurChromium M37 (WebRTC,WebAudio, WebGL, WebComponents,…)
Updatabledepuis Google Play !
Limitationsergonomiques
Layout en orientationportrait  privilégierlesmedia-queries CSS.
Taillesde fenêtreindiquées par chrome.app.windowignorées.Appli en plein-
écran par défaut !
Petitsboutons/iconesen mode tactile prévoir> 44px.
Elements en survol de souris : comportementsincertains A éviter
Tap-delayde 300ms  Utiliserlibrairiestiercesou Chrome>M32.
Compatibilités
CertainesfonctionnalitésWeb
désactivées,mais portéespar
Cordova.
En cours de portage…
Android IOS
Alarmes   
Système de Fichier  
Internationalisation   
Identité  
Veille (idle)  
Notifications  
Power  
Push Messaging   
Socket TCP/UDP  
Stockage  
API syncFileSystem  
Paiements   
Bluetooth  
Commandes  
Menus contextuels  
Galerie médias  
Permissions  
Port Série  
Info Système  
Synthèse vocale  
types  
USB  
Webstore  
Balise <webview>  
Client Natif (NaCl)  
Créersonapplicationmobile
Création d’un nouveau projet
$ cca create MonApp
Constructionde l’APK
$ cca build
Exécuter
$ cca run
Manifest.mobile.jsonmobile
Paramétragespécifique à l’applicationmobile.
Utilepour constitutiondes manifestnatifs(Manifest.xmlsousAndroid)
{
"packageId": "com.your.company.HelloWorld",
"versionCode": 1,
"CFBundleVersion": "1.1.1"
}
Autresspécificités
Cyclede vie etEvenements différentsentreDesktop etMobile !
Chrome Apps Developer Tools(Android only)
Distributionsur Web Store(et non!) Storedédiés : Google Play, Apple App Store
Coûtsde distributionplusélevés : 25$ (Google) et 99$ (Apple)
Management,monétisation,notationetcommentaireséparpillés 
Etaprès?
Etaprès?
Ephemeral Apps
Manifestv3 (promise-basedAPIs)
App_shell
Service Worker
CrossWalkWebview
Plusd’exemplesetoutils
What are Chrome Apps : https://developer.chrome.com/apps
Les vidéosde Google I/O 2014 : Chrome Apps : State of the Union et Chrome Apps on
Android
Les examples de chaque API : https://github.com/GoogleChrome/chrome-app-samples
Les fonctionnalitésdispo dans Chrome : https://www.chromestatus.com/features

Contenu connexe

Tendances

Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015Christian Charreyre
 
PréSentation Flash
PréSentation FlashPréSentation Flash
PréSentation Flashcmarguet
 
Introduction à flash - session 1
Introduction à flash - session 1Introduction à flash - session 1
Introduction à flash - session 1saeraphin
 
Firefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphoneFirefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphoneChristophe Villeneuve
 
Video accessible sur le web et sous-titrage
Video accessible sur le web et sous-titrageVideo accessible sur le web et sous-titrage
Video accessible sur le web et sous-titragejlcarves
 
Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)Thierry Régagnon
 
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Jean-Marc Fontaine
 
Barre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et EclipseBarre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et EclipseYannick Pavard
 
Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10Microsoft
 
À La découverte de flow3 - t3con12
À La découverte de flow3 -  t3con12À La découverte de flow3 -  t3con12
À La découverte de flow3 - t3con12mguermazi
 
Creer un site internet avec Joomla - Atelier du Web Tourangeau - Conférence N...
Creer un site internet avec Joomla - Atelier du Web Tourangeau - Conférence N...Creer un site internet avec Joomla - Atelier du Web Tourangeau - Conférence N...
Creer un site internet avec Joomla - Atelier du Web Tourangeau - Conférence N...Claude BUENO
 
WordPress - Du blogging au business model
WordPress - Du blogging au business modelWordPress - Du blogging au business model
WordPress - Du blogging au business modelMehdi Reghai
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les ProfessionnelsFabien Potencier
 

Tendances (16)

Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015Séminaire Captronic Yocto 24 février 2015
Séminaire Captronic Yocto 24 février 2015
 
PréSentation Flash
PréSentation FlashPréSentation Flash
PréSentation Flash
 
Introduction à flash - session 1
Introduction à flash - session 1Introduction à flash - session 1
Introduction à flash - session 1
 
Firefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphoneFirefox OS 1.1 L'autre systeme pour smartphone
Firefox OS 1.1 L'autre systeme pour smartphone
 
Video accessible sur le web et sous-titrage
Video accessible sur le web et sous-titrageVideo accessible sur le web et sous-titrage
Video accessible sur le web et sous-titrage
 
150 scripts pour flash as2
150 scripts pour flash as2150 scripts pour flash as2
150 scripts pour flash as2
 
Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)Le Kit du Parfait Petit Intégrateur (PW2009)
Le Kit du Parfait Petit Intégrateur (PW2009)
 
Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012Gestion des dépendances dans un projet PHP - RMLL 2012
Gestion des dépendances dans un projet PHP - RMLL 2012
 
Barre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et EclipseBarre pour développeur Firefox et Eclipse
Barre pour développeur Firefox et Eclipse
 
Advanced html5
Advanced html5Advanced html5
Advanced html5
 
Tutoriel Scrapbook
Tutoriel ScrapbookTutoriel Scrapbook
Tutoriel Scrapbook
 
Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10Introduction à Bash dans Windows 10
Introduction à Bash dans Windows 10
 
À La découverte de flow3 - t3con12
À La découverte de flow3 -  t3con12À La découverte de flow3 -  t3con12
À La découverte de flow3 - t3con12
 
Creer un site internet avec Joomla - Atelier du Web Tourangeau - Conférence N...
Creer un site internet avec Joomla - Atelier du Web Tourangeau - Conférence N...Creer un site internet avec Joomla - Atelier du Web Tourangeau - Conférence N...
Creer un site internet avec Joomla - Atelier du Web Tourangeau - Conférence N...
 
WordPress - Du blogging au business model
WordPress - Du blogging au business modelWordPress - Du blogging au business model
WordPress - Du blogging au business model
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnels
 

En vedette

Les vaccinations rappel calendrier vaccinal 2008
Les vaccinations rappel calendrier vaccinal 2008Les vaccinations rappel calendrier vaccinal 2008
Les vaccinations rappel calendrier vaccinal 2008esf3
 
40 cfr 261.4(b)(6) The RCRA Exclusion From Hazardous Waste for Trivalent Chro...
40 cfr 261.4(b)(6) The RCRA Exclusion From Hazardous Waste for Trivalent Chro...40 cfr 261.4(b)(6) The RCRA Exclusion From Hazardous Waste for Trivalent Chro...
40 cfr 261.4(b)(6) The RCRA Exclusion From Hazardous Waste for Trivalent Chro...Daniels Training Services
 
A SHORT REVIEW ON ALUMINIUM ANODIZING: AN ECO-FRIENDLY METAL FINISHING PROCESS
A SHORT REVIEW ON ALUMINIUM ANODIZING: AN ECO-FRIENDLY METAL FINISHING PROCESSA SHORT REVIEW ON ALUMINIUM ANODIZING: AN ECO-FRIENDLY METAL FINISHING PROCESS
A SHORT REVIEW ON ALUMINIUM ANODIZING: AN ECO-FRIENDLY METAL FINISHING PROCESSJournal For Research
 
Brochure Meca-19102016-bd
Brochure Meca-19102016-bdBrochure Meca-19102016-bd
Brochure Meca-19102016-bdCamille Volant
 
Protection des métaux contre la corrosion
Protection des métaux contre la corrosionProtection des métaux contre la corrosion
Protection des métaux contre la corrosionCHTAOU Karim
 
TALAT Lecture 5203: Anodizing of Aluminium
TALAT Lecture 5203: Anodizing of AluminiumTALAT Lecture 5203: Anodizing of Aluminium
TALAT Lecture 5203: Anodizing of AluminiumCORE-Materials
 
TripleHard - Trivalent Based Hard Chrome - Case Tecnocrom
TripleHard - Trivalent Based Hard Chrome - Case TecnocromTripleHard - Trivalent Based Hard Chrome - Case Tecnocrom
TripleHard - Trivalent Based Hard Chrome - Case TecnocromSavroc Ltd
 
Zinc and zinc nickel plating
Zinc and zinc nickel platingZinc and zinc nickel plating
Zinc and zinc nickel platingcamzurv
 
Présentation de la plate-forme d'éco-conception CORINE
Présentation de la plate-forme d'éco-conception CORINEPrésentation de la plate-forme d'éco-conception CORINE
Présentation de la plate-forme d'éco-conception CORINEBrice Kosinski
 
Nouveau microsoft word document
Nouveau microsoft word documentNouveau microsoft word document
Nouveau microsoft word documentkarimfpk
 
Minéraux
MinérauxMinéraux
Minérauxioarmg
 
Removal of chromium
Removal of chromiumRemoval of chromium
Removal of chromiumAmr Elshikh
 
10 major industrial applications of sulfuric acid
10 major industrial applications of sulfuric acid10 major industrial applications of sulfuric acid
10 major industrial applications of sulfuric acidrita martin
 
Metabolisme des lipides
Metabolisme des lipidesMetabolisme des lipides
Metabolisme des lipideskillua zoldyck
 
Chromium problems
Chromium problemsChromium problems
Chromium problemscrazyaxe
 
Aluminum Anodizing
Aluminum AnodizingAluminum Anodizing
Aluminum AnodizingAACOA.com
 
TRANSITION METALS
TRANSITION METALSTRANSITION METALS
TRANSITION METALSDrix78
 
Methods for removal of chromium
Methods for removal of chromiumMethods for removal of chromium
Methods for removal of chromiumArvind Gupta
 

En vedette (20)

Les vaccinations rappel calendrier vaccinal 2008
Les vaccinations rappel calendrier vaccinal 2008Les vaccinations rappel calendrier vaccinal 2008
Les vaccinations rappel calendrier vaccinal 2008
 
40 cfr 261.4(b)(6) The RCRA Exclusion From Hazardous Waste for Trivalent Chro...
40 cfr 261.4(b)(6) The RCRA Exclusion From Hazardous Waste for Trivalent Chro...40 cfr 261.4(b)(6) The RCRA Exclusion From Hazardous Waste for Trivalent Chro...
40 cfr 261.4(b)(6) The RCRA Exclusion From Hazardous Waste for Trivalent Chro...
 
A SHORT REVIEW ON ALUMINIUM ANODIZING: AN ECO-FRIENDLY METAL FINISHING PROCESS
A SHORT REVIEW ON ALUMINIUM ANODIZING: AN ECO-FRIENDLY METAL FINISHING PROCESSA SHORT REVIEW ON ALUMINIUM ANODIZING: AN ECO-FRIENDLY METAL FINISHING PROCESS
A SHORT REVIEW ON ALUMINIUM ANODIZING: AN ECO-FRIENDLY METAL FINISHING PROCESS
 
Brochure Meca-19102016-bd
Brochure Meca-19102016-bdBrochure Meca-19102016-bd
Brochure Meca-19102016-bd
 
Protection des métaux contre la corrosion
Protection des métaux contre la corrosionProtection des métaux contre la corrosion
Protection des métaux contre la corrosion
 
TALAT Lecture 5203: Anodizing of Aluminium
TALAT Lecture 5203: Anodizing of AluminiumTALAT Lecture 5203: Anodizing of Aluminium
TALAT Lecture 5203: Anodizing of Aluminium
 
TripleHard - Trivalent Based Hard Chrome - Case Tecnocrom
TripleHard - Trivalent Based Hard Chrome - Case TecnocromTripleHard - Trivalent Based Hard Chrome - Case Tecnocrom
TripleHard - Trivalent Based Hard Chrome - Case Tecnocrom
 
Zinc and zinc nickel plating
Zinc and zinc nickel platingZinc and zinc nickel plating
Zinc and zinc nickel plating
 
Présentation de la plate-forme d'éco-conception CORINE
Présentation de la plate-forme d'éco-conception CORINEPrésentation de la plate-forme d'éco-conception CORINE
Présentation de la plate-forme d'éco-conception CORINE
 
Usages avancés - Chrome
Usages avancés - Chrome Usages avancés - Chrome
Usages avancés - Chrome
 
Nouveau microsoft word document
Nouveau microsoft word documentNouveau microsoft word document
Nouveau microsoft word document
 
Minéraux
MinérauxMinéraux
Minéraux
 
Removal of chromium
Removal of chromiumRemoval of chromium
Removal of chromium
 
10 major industrial applications of sulfuric acid
10 major industrial applications of sulfuric acid10 major industrial applications of sulfuric acid
10 major industrial applications of sulfuric acid
 
Metabolisme des lipides
Metabolisme des lipidesMetabolisme des lipides
Metabolisme des lipides
 
Chromium problems
Chromium problemsChromium problems
Chromium problems
 
Aluminum Anodizing
Aluminum AnodizingAluminum Anodizing
Aluminum Anodizing
 
TRANSITION METALS
TRANSITION METALSTRANSITION METALS
TRANSITION METALS
 
Alliages dentaire
Alliages dentaire Alliages dentaire
Alliages dentaire
 
Methods for removal of chromium
Methods for removal of chromiumMethods for removal of chromium
Methods for removal of chromium
 

Similaire à Développez des applications natives en HTML/JS avec Chrome apps

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
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assemblyJérémy Buget
 
Développement mobile cross-plateform
Développement mobile cross-plateformDéveloppement mobile cross-plateform
Développement mobile cross-plateformStefan Cosquer
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesGaëtan LAVENU
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Microsoft Technet France
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Microsoft Décideurs IT
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 LyonLeTesteur
 
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
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogySacha Leprêtre
 
Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutantKorteby Farouk
 
Construire une PWA connectée à WordPress
Construire une PWA connectée à WordPressConstruire une PWA connectée à WordPress
Construire une PWA connectée à WordPressBenjamin LUPU
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5davrous
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologiewyggio
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
 
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
 

Similaire à Développez des applications natives en HTML/JS avec Chrome apps (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
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
Développement mobile cross-plateform
Développement mobile cross-plateformDéveloppement mobile cross-plateform
Développement mobile cross-plateform
 
HTML5 & SilverLight 5
HTML5 & SilverLight 5HTML5 & SilverLight 5
HTML5 & SilverLight 5
 
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatialesLes apports d'HTML5 pour l'interopérabilité des applications géospatiales
Les apports d'HTML5 pour l'interopérabilité des applications géospatiales
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
 
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
Windows Azure Media Services : des API pour encoder, multiplexer et difuser v...
 
Joomla Days 2011 Lyon
Joomla Days 2011 LyonJoomla Days 2011 Lyon
Joomla Days 2011 Lyon
 
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
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogy
 
Création des sites web pour débutant
Création des sites web pour débutantCréation des sites web pour débutant
Création des sites web pour débutant
 
Construire une PWA connectée à WordPress
Construire une PWA connectée à WordPressConstruire une PWA connectée à WordPress
Construire une PWA connectée à WordPress
 
Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5Les défis d’une application mobile multi-périphériques avec HTML5
Les défis d’une application mobile multi-périphériques avec HTML5
 
Browser
BrowserBrowser
Browser
 
HTML5 W3C Conference Euratechnologie
HTML5 W3C Conference EuratechnologieHTML5 W3C Conference Euratechnologie
HTML5 W3C Conference Euratechnologie
 
Architecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
 
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!
 

Développez des applications natives en HTML/JS avec Chrome apps

Notes de l'éditeur

  1. Si le device peut exécuter Chrome, alors il peut exécuter les Applications Chrome également
  2. Pour les différentes versions par OS : http://www.chromium.org/getting-involved/dev-channel Différence entre Chromium et Chrome : tout l’aspect légal : codecs vidéo et audio ne sont pas dispo sur Chromium. Chrome dispose de la surcouche Google : rapport de crash et d’utilisatoin, update auto, pdf viewer, etc. Autre point : Chromium est public : les sources sont dispo sous licences BSD. Chrome est privé (ces sources ne sont pas disponibles). Pour connaitre les API implémentées et les versions en cours : https://www.chromestatus.com/features. Par exemple en ce moment : 41, 40, 39, 38
  3. *non standardisées ou en cours de standardisation.
  4. A savoir qu’il faudra également prévoir des images complémentaires pour la mise à dispo sur le store (notamment des screenshots)
  5. La liste complète des permissions est disponible ici : https://developer.chrome.com/apps/declare_permissions
  6. Le format CRX est un format ouvert : on peut même carrément créer son propre script dans le langage de son choix pour le créer.
  7. Par exemple, Web Speech API et getUserMedia sont en cours de standardisation mais pas implémentées par tous les navigateurs. Typiquement, le webspeech API est dispo sur Chrome, mais pas sur Firefox. utiliser caniuse.com pour savoir si on peut utiliser une API ou pas selon le navigateur. Certaines API ne sont pas encore spécifiées et sont encore à l'état de bouillon (DRAFT), mais sont déjà implémentées dans Chrome. Par exemple : http://w3c.github.io/web-animations/ Comment savoir si une fonctionnalité est implémnetées ? On peut regarder sur le site de Mozilla pour connaitre l'implémentation de certaines Web API. https://developer.mozilla.org/en-US/docs/Web/API/ Sinon, plus spécifiquement à Chrome :  https://www.chromestatus.com/features
  8. Inspiré de http://arduino.cc/en/Tutorial/Blink
  9. Plus d’info sur https://developer.chrome.com/apps/contentSecurityPolicy
  10. AngularJS uses Function(string) generated functions as a speed optimization. Applying the ngCsp directive will cause Angular to use CSP compatibility mode. When this mode is on AngularJS will evaluate all expressions up to 30% slower than in non-CSP mode, but no security violations will be raised. CSP forbids JavaScript to inline stylesheet rules. In non CSP mode Angular automatically includes some CSS rules (e.g. ngCloak). To make those directives work in CSP mode, include the angular-csp.css manually. Plus d’info : https://docs.angularjs.org/api/ng/directive/ngCsp
  11. Disponible ici : https://chrome.google.com/webstore/category/collection/for_your_desktop
  12. Disponible ici : https://chrome.google.com/webstore/category/collection/for_your_desktop
  13. Crosswalk embed une webview Chromium. Permet d’exécuter des appli chrome sur des device qui n’avais pas encore Chrome. Jusquà Android ICS.
  14. Crosswalk embed une webview Chromium. Permet d’exécuter des appli chrome sur des device qui n’avais pas encore Chrome. Jusquà Android ICS.
  15. tap-delay. Sur les browser-mobiles, il y’a toujours un délai de 300ms entre l’appui et le moment ou le « click » est considéré. UX dégradée ! L’histoire du tap-delay est expliquée ici : http://updates.html5rocks.com/2013/12/300ms-tap-delay-gone-away
  16.  Les alarmes ne se déclenchent que si l’application est au premier plan  Les méthodes JS (chrome.i18n) sont fonctionnelles mais pas les instructions CSS.  Qualité Bêta  Local storage only. Le sync storage fonctionne en mode dégradé (comme storage.local)  Qualité Alpha A surveiller sur : https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/docs/APIStatus.md
  17. Crosswalk embed une webview Chromium. Permet d’exécuter des appli chrome sur des device qui n’avais pas encore Chrome. Jusquà Android ICS.
  18. Par exemple, le Manifest Android (Manifest.xml nécessaire à la constitution de l’APK) : le champ android:versionName est déduit de la version de l’application renseignée dans le manifest.json et le champ android:versionCode est déduit du fichier manifest.mobile.json
  19. Crosswalk embed une webview Chromium. Permet d’exécuter des appli chrome sur des device qui n’avais pas encore Chrome. Jusquà Android ICS.
  20. Ephemeral Apps : applications « One-time ». Processus d’installation/désinstallation simplifié. App_shell : mode d’exécution sans tirer tout le runtime Chrome. 2 use cases : les applications Kiosks, les exécutions sur environnements à ressources limitées.