SlideShare ist ein Scribd-Unternehmen logo
1 von 21
1
© OCTO 2013
Créer une application Chrome avec AngularJS
Landry DEFO KUATE – Consultant Octo Technology
GDG Salé, Mai 2014
2
A propos de moi
Landry DEFO KUATE
Consultant Octo Technology
google.com/+ldefokuate
@defolandry
github.com/defus
perfug-morocco.github.io
3
Pourquoi construire une application Chrome ?
Utilisation de AngularJs dans une application Chrome
Les avantages
Une démo pratique 
Agenda
4
Démos!
5
Pourquoi construire une application
Chrome ?
6
Les applications Web sont bien !
7
... Jusqu’à ce qu’ils ne le soient plus !
8
Les jeux en ligne Web sont bien !
9
... Jusqu’à ce qu’ils ne le soient plus !
10
Pourquoi construire une application Chrome ?
Les Apps Chromes tournent offline par défaut
Accès aux possibilités et hardware de la plateforme
Expérience utilisateur riche, immersive, engagée
Distribution & Auto-updates via la Web Store Chrome
Les Apps Chromes tournent sur toutes les plateformes
11
Que signifie Offline concrètement ?
Aucune connexion : aéroport, tramway, désert, Mars, etc.
Mauvaise connexion : café, cette sale actuellement
Les Apps natives Chromes peuvent fonctionner parce que l’UI est
complètement offline et les données mises en cache local
Offline par défaut
12
Infrastructure
Structure d’une application Chrome
HTML
.CSS
.JS
manifest.json
main.js
Autre
Assets
Contenu App
Packaged’installation
13
function saveChanges() {
// Récupérer une valeur sauvegardée dans un formulaire.
var theValue = textarea.value ;
// Enregistrer la valeur en utilisant l’API Chrome storage.
chrome.storage.local.set({'value': theValue}, function() {
// Notifier que la valeur a été enregistrée
message('Settings saved');
});
}
Exemple offline : API chrome.storage
14
Les utilisateurs souhaitent que leurs données soient disponible partout,
et vos applications souhaitent adresser ce besoin
Faciliter l’utilisation les fonctionnalités cloud de Chrome
Utiliser l’API chrome.storage.sync pour sync petits items de données
Utiliser l’API SyncFilesystem pour sync gros fichiers de données
Utiliser l’API Google Drive comme backend, est extensible
Utiliser l’API Cloud Push Messaging pour envoyer des messages à partir de
votre serveur
Utiliser l’API Identity pour identifier les utilisateur
Une API pour les services Google, une autre pour les autres services tiers
Cloud par défaut
15
Utilise l’API chrome.app.window pour gérer la fenêtre de l’application
Utiliser la taille de la fenêtre pour déterminer la taille/position initiale de la fenêtre
Se rappeler de l’emplacement/taille de la fenêtre pour la prochaine fois que
l’application s’exécute
Vous pouvez contrôler si la barre de titre par défaut de l’OS / contrôles sont
utilisés
Utiliser “-webkit-app-region: drag” pour définir les régions personnalisées de drag
Utiliser l’API chrome.contextMenus pour implémenter les menu contextuels
Utiliser l’API chrome.alarms pour implémenter les évènements systèmes
planifiés
Utiliser l’API chrome.mediaGalleries pour accéder aux répertoires media de
l’utilisateur
Utiliser l’API URL Handlers pour intercepter les requêtes avec votre
application
Expérience utilisateur immersive
16
Les apps Chrome implémentent le Content Security Policy, qui a un
impact direct sur les patterns Web classiques
Ne pas utiliser eval()
Ne pas utiliser new function()
Tous le code JavaScript doit-être dans des fichiers .js séparés
Pas de gestionnaire d’évènements inline
Les <iframe> doivent renvoyer au même domaine que le contenu initial
!! Il faut déclarer d’où provient le contenu si non local !!
Sécurité applicative et CSP
17
Construit en utilisant le Framework Apache Cordova
Ensemble d’API principales de Chrome supportées initialement :
Mobile Chrome Apps
Identity
Payments
TCP/UDP Sockets
Notifications
Storage
Sync Filesystem
Alarms
18
Pourquoi utiliser AngularJs pour
apps Chromes ?
19
AngularJs est un Framework qui permet d’écrire du
code JavaScript de qualité
Architecture JS MVC
Possibilité d’effectuer les tests unitaires et end-to-
end
Protractor (basé sur sélénium)
Injection des dépendances (DI)
Possibilité pour des designers et les développeurs
de travailler sur le même projet
HTML déclaratif sans JS embarqué
Contrôles utilisateurs riches
KendoUI, Angular.UI (boostrap, …)
Facilité de réalisation des applications à page
unique
Partage facile de données entre plusieurs vues
Model dans le MVC
Support du Content Security Policy (CSP)
Obligatoire pour les apps Chrome
Même code source applicatif pour le Web et
Chrome
Forte communauté d’utilisateurs drivé par Google
Existence d’outils de développement
Pourquoi AngularJs pour les apps Chrome ?
20
Explications dans le code 
21
github.com/defus/gContacts
github.com/GoogleChrome/chrome-app-samples
github.com/MobileChromeApps/mobile-chrome-apps
developer.chrome.com/apps
< Merci ! >
google.com/+ldefokuate
@defolandry
github.com/defus
perfug-morocco.github.io

Weitere ähnliche Inhalte

Was ist angesagt?

Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)
Laurent Moccozet
 
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Tony Galmiche
 

Was ist angesagt? (20)

Faire mieux avec Joomla! 3.5
Faire mieux avec Joomla! 3.5Faire mieux avec Joomla! 3.5
Faire mieux avec Joomla! 3.5
 
Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)Systèmes de Gestion de Contenu (SGC)
Systèmes de Gestion de Contenu (SGC)
 
Firefox extensions vpdf
Firefox extensions vpdfFirefox extensions vpdf
Firefox extensions vpdf
 
Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010Présentation de CakePHP, 22/04/2010
Présentation de CakePHP, 22/04/2010
 
Développement mobile cross-plateform
Développement mobile cross-plateformDéveloppement mobile cross-plateform
Développement mobile cross-plateform
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notes
 
Créer et gérer facilement votre site Internet évolutif - Webschool Tours - Co...
Créer et gérer facilement votre site Internet évolutif - Webschool Tours - Co...Créer et gérer facilement votre site Internet évolutif - Webschool Tours - Co...
Créer et gérer facilement votre site Internet évolutif - Webschool Tours - Co...
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 
Un site web en 5 minutes avec le CMS Wordpress- SFD Douala 2014
Un site web en 5 minutes avec le CMS Wordpress-  SFD Douala 2014Un site web en 5 minutes avec le CMS Wordpress-  SFD Douala 2014
Un site web en 5 minutes avec le CMS Wordpress- SFD Douala 2014
 
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014
 
Symfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation GénéraleSymfony 2 : chapitre 1 - Présentation Générale
Symfony 2 : chapitre 1 - Présentation Générale
 
Les écrans animés dans les navigateurs
Les écrans animés dans les navigateursLes écrans animés dans les navigateurs
Les écrans animés dans les navigateurs
 
Atelier Symfony2- Introduction
Atelier Symfony2- IntroductionAtelier Symfony2- Introduction
Atelier Symfony2- Introduction
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en Twig
 
Conference drupal-8-drupagora2013
Conference drupal-8-drupagora2013Conference drupal-8-drupagora2013
Conference drupal-8-drupagora2013
 
Presentation Symfony
Presentation SymfonyPresentation Symfony
Presentation Symfony
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
Découvrir WordPress
Découvrir WordPressDécouvrir WordPress
Découvrir WordPress
 
Formation joomla 2.5 séance 1 sur 4
Formation joomla 2.5 séance 1 sur 4Formation joomla 2.5 séance 1 sur 4
Formation joomla 2.5 séance 1 sur 4
 
Démarrer la création de blocs
Démarrer la création de blocsDémarrer la création de blocs
Démarrer la création de blocs
 

Andere mochten auch

Les vaccinations rappel calendrier vaccinal 2008
Les vaccinations rappel calendrier vaccinal 2008Les vaccinations rappel calendrier vaccinal 2008
Les vaccinations rappel calendrier vaccinal 2008
esf3
 
Brochure Meca-19102016-bd
Brochure Meca-19102016-bdBrochure Meca-19102016-bd
Brochure Meca-19102016-bd
Camille Volant
 
Zinc and zinc nickel plating
Zinc and zinc nickel platingZinc and zinc nickel plating
Zinc and zinc nickel plating
camzurv
 
Nouveau microsoft word document
Nouveau microsoft word documentNouveau microsoft word document
Nouveau microsoft word document
karimfpk
 
Minéraux
MinérauxMinéraux
Minéraux
ioarmg
 

Andere mochten auch (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
 
Chromium problems
Chromium problemsChromium problems
Chromium problems
 
Aluminum Anodizing
Aluminum AnodizingAluminum Anodizing
Aluminum Anodizing
 
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
 
Alliages dentaire
Alliages dentaire Alliages dentaire
Alliages dentaire
 
Comment créer des Chrome Apps ou Packaged Chrome Apps
Comment créer des Chrome Apps ou Packaged Chrome AppsComment créer des Chrome Apps ou Packaged Chrome Apps
Comment créer des Chrome Apps ou Packaged Chrome Apps
 
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
 
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
 
Usages avancés - Chrome
Usages avancés - Chrome Usages avancés - Chrome
Usages avancés - Chrome
 
Surface finishing processes - Electroplating
Surface finishing processes - ElectroplatingSurface finishing processes - Electroplating
Surface finishing processes - Electroplating
 
Effect of Nanoporous Anodic Aluminum Oxide (AAO) Characteristics On Solar Abs...
Effect of Nanoporous Anodic Aluminum Oxide (AAO) Characteristics On Solar Abs...Effect of Nanoporous Anodic Aluminum Oxide (AAO) Characteristics On Solar Abs...
Effect of Nanoporous Anodic Aluminum Oxide (AAO) Characteristics On Solar Abs...
 
Chromium ppt
Chromium pptChromium ppt
Chromium ppt
 
Nouveau microsoft word document
Nouveau microsoft word documentNouveau microsoft word document
Nouveau microsoft word document
 
Minéraux
MinérauxMinéraux
Minéraux
 
Qu'est ce que un acide tartrique ?
Qu'est ce que un acide tartrique ?Qu'est ce que un acide tartrique ?
Qu'est ce que un acide tartrique ?
 

Ähnlich wie Développer une application Chrome avec AngularJs (Google Développers Group Salé 2014)

Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
Microsoft Décideurs IT
 

Ähnlich wie Développer une application Chrome avec AngularJs (Google Développers Group Salé 2014) (20)

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
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
 
Xamarin - Programmation C# multi-plateforme pour iOS, Android et Windows
Xamarin - Programmation C# multi-plateforme pour iOS, Android et WindowsXamarin - Programmation C# multi-plateforme pour iOS, Android et Windows
Xamarin - Programmation C# multi-plateforme pour iOS, Android et Windows
 
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
 
Introduction à web assembly
Introduction à web assemblyIntroduction à web assembly
Introduction à web assembly
 
Construire une PWA connectée à WordPress
Construire une PWA connectée à WordPressConstruire une PWA connectée à WordPress
Construire une PWA connectée à WordPress
 
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
 
Angular développer des applications .pdf
Angular développer des applications .pdfAngular développer des applications .pdf
Angular développer des applications .pdf
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobile
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
Chapitre 1 android
Chapitre 1 androidChapitre 1 android
Chapitre 1 android
 
JavaScript Open Day - Migration Web To App
JavaScript Open Day - Migration Web To AppJavaScript Open Day - Migration Web To App
JavaScript Open Day - Migration Web To App
 
Meteor js 1.0
Meteor js 1.0Meteor js 1.0
Meteor js 1.0
 
Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
 
Comment tester une Progressive Web App
Comment tester une Progressive Web AppComment tester une Progressive Web App
Comment tester une Progressive Web App
 
Ionic
IonicIonic
Ionic
 
Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG Montpellier
 
Test_Logiciel_appium Version2.ppt projet univerx
Test_Logiciel_appium Version2.ppt projet univerxTest_Logiciel_appium Version2.ppt projet univerx
Test_Logiciel_appium Version2.ppt projet univerx
 
Introduction a Flutter
Introduction a FlutterIntroduction a Flutter
Introduction a Flutter
 

Développer une application Chrome avec AngularJs (Google Développers Group Salé 2014)

  • 1. 1 © OCTO 2013 Créer une application Chrome avec AngularJS Landry DEFO KUATE – Consultant Octo Technology GDG Salé, Mai 2014
  • 2. 2 A propos de moi Landry DEFO KUATE Consultant Octo Technology google.com/+ldefokuate @defolandry github.com/defus perfug-morocco.github.io
  • 3. 3 Pourquoi construire une application Chrome ? Utilisation de AngularJs dans une application Chrome Les avantages Une démo pratique  Agenda
  • 5. 5 Pourquoi construire une application Chrome ?
  • 7. 7 ... Jusqu’à ce qu’ils ne le soient plus !
  • 8. 8 Les jeux en ligne Web sont bien !
  • 9. 9 ... Jusqu’à ce qu’ils ne le soient plus !
  • 10. 10 Pourquoi construire une application Chrome ? Les Apps Chromes tournent offline par défaut Accès aux possibilités et hardware de la plateforme Expérience utilisateur riche, immersive, engagée Distribution & Auto-updates via la Web Store Chrome Les Apps Chromes tournent sur toutes les plateformes
  • 11. 11 Que signifie Offline concrètement ? Aucune connexion : aéroport, tramway, désert, Mars, etc. Mauvaise connexion : café, cette sale actuellement Les Apps natives Chromes peuvent fonctionner parce que l’UI est complètement offline et les données mises en cache local Offline par défaut
  • 12. 12 Infrastructure Structure d’une application Chrome HTML .CSS .JS manifest.json main.js Autre Assets Contenu App Packaged’installation
  • 13. 13 function saveChanges() { // Récupérer une valeur sauvegardée dans un formulaire. var theValue = textarea.value ; // Enregistrer la valeur en utilisant l’API Chrome storage. chrome.storage.local.set({'value': theValue}, function() { // Notifier que la valeur a été enregistrée message('Settings saved'); }); } Exemple offline : API chrome.storage
  • 14. 14 Les utilisateurs souhaitent que leurs données soient disponible partout, et vos applications souhaitent adresser ce besoin Faciliter l’utilisation les fonctionnalités cloud de Chrome Utiliser l’API chrome.storage.sync pour sync petits items de données Utiliser l’API SyncFilesystem pour sync gros fichiers de données Utiliser l’API Google Drive comme backend, est extensible Utiliser l’API Cloud Push Messaging pour envoyer des messages à partir de votre serveur Utiliser l’API Identity pour identifier les utilisateur Une API pour les services Google, une autre pour les autres services tiers Cloud par défaut
  • 15. 15 Utilise l’API chrome.app.window pour gérer la fenêtre de l’application Utiliser la taille de la fenêtre pour déterminer la taille/position initiale de la fenêtre Se rappeler de l’emplacement/taille de la fenêtre pour la prochaine fois que l’application s’exécute Vous pouvez contrôler si la barre de titre par défaut de l’OS / contrôles sont utilisés Utiliser “-webkit-app-region: drag” pour définir les régions personnalisées de drag Utiliser l’API chrome.contextMenus pour implémenter les menu contextuels Utiliser l’API chrome.alarms pour implémenter les évènements systèmes planifiés Utiliser l’API chrome.mediaGalleries pour accéder aux répertoires media de l’utilisateur Utiliser l’API URL Handlers pour intercepter les requêtes avec votre application Expérience utilisateur immersive
  • 16. 16 Les apps Chrome implémentent le Content Security Policy, qui a un impact direct sur les patterns Web classiques Ne pas utiliser eval() Ne pas utiliser new function() Tous le code JavaScript doit-être dans des fichiers .js séparés Pas de gestionnaire d’évènements inline Les <iframe> doivent renvoyer au même domaine que le contenu initial !! Il faut déclarer d’où provient le contenu si non local !! Sécurité applicative et CSP
  • 17. 17 Construit en utilisant le Framework Apache Cordova Ensemble d’API principales de Chrome supportées initialement : Mobile Chrome Apps Identity Payments TCP/UDP Sockets Notifications Storage Sync Filesystem Alarms
  • 18. 18 Pourquoi utiliser AngularJs pour apps Chromes ?
  • 19. 19 AngularJs est un Framework qui permet d’écrire du code JavaScript de qualité Architecture JS MVC Possibilité d’effectuer les tests unitaires et end-to- end Protractor (basé sur sélénium) Injection des dépendances (DI) Possibilité pour des designers et les développeurs de travailler sur le même projet HTML déclaratif sans JS embarqué Contrôles utilisateurs riches KendoUI, Angular.UI (boostrap, …) Facilité de réalisation des applications à page unique Partage facile de données entre plusieurs vues Model dans le MVC Support du Content Security Policy (CSP) Obligatoire pour les apps Chrome Même code source applicatif pour le Web et Chrome Forte communauté d’utilisateurs drivé par Google Existence d’outils de développement Pourquoi AngularJs pour les apps Chrome ?