SlideShare a Scribd company logo
1 of 19
Download to read offline
Conception d'Applications
       Interactives :
 Applications Web et JEE
            Séance #1
 Le web en 2012 - HTML5/CSS3/JS
Le web en 2012 : HTML5/CCS3/JS
● Les bases du web
  ○ HTTP, URL, HTML, CSS, JS, AJAX...
● HTML5
  ○ HTML5, CSS3, le casse-tête des navigateurs...
  ○ Le web en 2012, le responsive design
● Twitter Bootstrap
  ○ Outils, échafaudage, LessCSS, JQuery
● Le développeur web en 2012
  ○ Rôles, technologies, langages, veille technologique
TD HTML5 : Le cube
TD HTML5 : Le cube
1. Produire un document HTML5 avec un
    élement div appelé cube
    ○   Ouvrir le fichier avec le navigateur et vérifier qu'il est cohérent
    ○   Valider le fichier avec HTML5 Validator
         ■ N'oubliez pas ajouter la balise title, obligatoire


2. Un cube a 6 faces : créer 6 éléments div à
    l'intérieur de l'élément cube, tous appartenant à une
    classe face, chacun avec une id selon sa position :
    front, back, top, bottom, left, right
    ○   Les faces doivent avoir des dimensions 200x200 px, un fond gris
        (background: #888) et une bordure noire d'un pixel de large
         ■ Créer un élément style dans le head du document
         ■ Avec la définition de la classe face
TD HTML5 : Le cube
3. Mettons les 6 faces les unes sur les autres :
   ●    Position: absolute, top: 0, left: 0
4. Le cube va être centré
   ●    Position: absolute, top: 200px, left: 400px
5. Passons sur une vue isométrique
   sur l'objet cube
    ○   translateX, translateY,
        translateZ
    ○   rotateX, rotateY, rotateZ


   Exemple rotation sur Firefox :
   -moz-transform : rotateZ(65deg);
TD HTML5 : Le cube
6. Maintenant on a 6 faces à plat. Pour chacunes des
   face, créer l'élément de style correspondant à son id
   et appliquer les transformations 3D pour le mettre à sa
   place
    ○   Il ne faut pas oublier de positionner
        -moz-transform-style: preserve-3d;
        sur cube
   ○    Commencez par les faces front et back
TD HTML5 : Le cube
7. Ajoutez des images à chaque face
  ○ Les images sont ici
  ○ Bien vérifier l'orientation des faces
    ■ Les logos doivent être à l'endroit
TD HTML5 : Le cube
8. Maintenant on le fait tourner !
   ○ Des rotations sur le cube
   ○ Utilisations d'animation et @keyframe
   ○ Propriété utile : -moz-transform-origin: 100px   100px;
TD API publique : Twitter
TD API publique : Twitter
1. Produire un document HTML5 avec un
    élement div appelé twitlist
   ○   Ouvrir le fichier avec le navigateur et vérifier qu'il est cohérent
   ○   Valider le fichier avec HTML5 Validator
        ■ N'oubliez pas ajouter la balise title, obligatoire


2. Donner un style à twitlist
    ○ centré, 500px large, avec bordure et fond
TD API publique : Twitter
3. Dans twitlist afficher le tag #html5 en mode embedded
    ○ https://dev.twitter.com/docs/embedded-timelines
● Il faudra :
    ○ Avoir un compte twitter
    ○ Se connecter sur son compte
    ○ Créer un widget
    ○ Prendre le code du widget et le mettre sur le HTML
    ○ Démarrer un serveur web servant le HTML
       ■ Le mode embedded demande localhost, non file
    ○ Pointer le navigateur vers ce serveur
      $ ./nodejs/bin/node ./nodejs/bin/http-server REPERTOIRE_TRAVAIL
      Starting up http-server, serving REPERTOIRE_TRAVAIL on port: 8080
      Hit CTRL-C to stop the server
TD API publique : Twitter
Pour l'instant on n'a mis que du code embedded. C'est
l'heure d'utiliser une vraie API.
4. Dans twitlist afficher le tag #html5 via l'API JSON
    ○ https://dev.twitter.com/docs/api/1.1

● On veut récupérer un hashtag : fonction search :
    ○ https://dev.twitter.com/docs/api/1.1/get/search/tweets
    ○ https://dev.twitter.com/docs/using-search
●   La réponse sera une liste JSON composé d'objets
    Tweet
    ○ https://dev.twitter.com/docs/platform-objects/tweets
TD API publique : Twitter
● Problème de requête cross-domaine
    ○   On doit appeler l'API Twitter depuis localhost
    ○   On doit utiliser JSONP


● Générer un élément div par message à montrer
    ○   A la volée dans le callback


● Pour cette première iteration, il suffit d'afficher le auteur
   du message et le titre :
   ○ tweet.from_user + " : <b><i>"       + tweet.text + "</b></i>"
TD API publique : Twitter
Pour l'instant on a quelque chose de semblable à :
TD API publique : Twitter
Maintenant il va falloir le rendre plus beau
●   Des classes CSS pour chaque
    élément de l'objet Tweet

●   Quelques règles pour mise en forme
TD API publique : Twitter
5. Faire que la twitlist se mette à jour tous les 10 sécondes
●   Pour éviter la fuite de mémoire, réutiliser les containers
     ○ N'en créez pas à chaque fois
TD API Google Maps et
   Géolocalisation
TD API Google Maps et
Géolocalisation
1. Produire un document HTML5 avec un
    élement div appelé geoloc
   ○   Ouvrir le fichier avec le navigateur et vérifier qu'il est cohérent
   ○   Valider le fichier avec HTML5 Validator
        ■ N'oubliez pas ajouter la balise title, obligatoire


2. Donner un style à geoloc
    ○ centré, 500px large, avec bordure et fond
TD API Google Maps et
Géolocalisation
3. Utiliser la géolocalisation de HTML5 pour afficher dans
    geoloc les coordonées du navigateur (longitude,
    lattitude, altitude)
     ○ Utiliser navigator.geolocation.getCurrentPosition


4. Utiliser l'API Google Maps pour montrer dans geoloc la
    carte correspondant à la position du navigateur

More Related Content

Viewers also liked (20)

Act3 apcr
Act3 apcrAct3 apcr
Act3 apcr
 
Atelier RH Team
Atelier RH TeamAtelier RH Team
Atelier RH Team
 
Document
DocumentDocument
Document
 
Présentation Yourastar
Présentation YourastarPrésentation Yourastar
Présentation Yourastar
 
Tesi sfinal
Tesi sfinalTesi sfinal
Tesi sfinal
 
Lswc sl-universidad
Lswc sl-universidadLswc sl-universidad
Lswc sl-universidad
 
Gens de metiers. Métiers des gens
Gens de metiers. Métiers des gensGens de metiers. Métiers des gens
Gens de metiers. Métiers des gens
 
CTII Logaritmos
CTII LogaritmosCTII Logaritmos
CTII Logaritmos
 
Dimuro
DimuroDimuro
Dimuro
 
Prise en charge de l'hypertension
Prise en charge de l'hypertensionPrise en charge de l'hypertension
Prise en charge de l'hypertension
 
Las menores beben y fuman más
Las menores beben y fuman másLas menores beben y fuman más
Las menores beben y fuman más
 
Tables20140827
Tables20140827Tables20140827
Tables20140827
 
Tres de cada diez detenidos de bandas latinas son menores
Tres de cada diez detenidos de bandas latinas son menoresTres de cada diez detenidos de bandas latinas son menores
Tres de cada diez detenidos de bandas latinas son menores
 
Document
DocumentDocument
Document
 
L'énergie
L'énergieL'énergie
L'énergie
 
Excel pie chart
Excel pie chartExcel pie chart
Excel pie chart
 
Altics eyetracking
Altics eyetrackingAltics eyetracking
Altics eyetracking
 
2010 05 08 apl medicinas antiguas
2010 05 08 apl medicinas antiguas2010 05 08 apl medicinas antiguas
2010 05 08 apl medicinas antiguas
 
Document
DocumentDocument
Document
 
Diseño instruccional clase1
Diseño instruccional clase1Diseño instruccional clase1
Diseño instruccional clase1
 

Similar to Enib cours c.a.i. web - séance #1 - html5 css3-js - td

ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...Horacio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...Horacio Gonzalez
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2Horacio Gonzalez
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1Horacio Gonzalez
 
ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)Nicolas Aguenot
 
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3Horacio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSHoracio Gonzalez
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSHoracio Gonzalez
 
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo LarcherConférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo LarcherNormandie Web Xperts
 
HTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantiqueHTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantiqueJean-Pierre Vincent
 
Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014Ippon
 
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...Clément OUDOT
 
GDG Rennes - Bootcamp Initiation Android - Théorie
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - ThéorieHoracio Gonzalez
 
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidementENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidementHoracio Gonzalez
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Horacio Gonzalez
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...Horacio Gonzalez
 
FinistJUG - J’ai besoin d’une appli web rapidement
FinistJUG -   J’ai besoin d’une appli web rapidementFinistJUG -   J’ai besoin d’une appli web rapidement
FinistJUG - J’ai besoin d’une appli web rapidementHoracio Gonzalez
 
Créez votre site web vous-même 1/2
Créez votre site web vous-même 1/2Créez votre site web vous-même 1/2
Créez votre site web vous-même 1/2pro-info.be
 
Internationalisation du Front
Internationalisation du FrontInternationalisation du Front
Internationalisation du FrontYannick Croissant
 

Similar to Enib cours c.a.i. web - séance #1 - html5 css3-js - td (20)

ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 2/3 - HTML5 / CSS3 / Twitter...
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2Enib   cours c.a.i. web - séance #1 - html5 css3-js - 2
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
 
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1Enib   cours c.a.i. web - séance #1 - html5 css3-js - 1
Enib cours c.a.i. web - séance #1 - html5 css3-js - 1
 
ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)ISCOM::HTML/CSS::session1 (20140930)
ISCOM::HTML/CSS::session1 (20140930)
 
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
ENIB 2013-2014 - CAI Web #1: Côté navigateur 1/3
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
 
Atelier initiation au html5
Atelier initiation au html5Atelier initiation au html5
Atelier initiation au html5
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JSENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 1/3 - HTTP, HTML, CSS JS
 
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo LarcherConférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
Conférence #nwxtech5 : Introduction à Backbone.js par Hugo Larcher
 
HTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantiqueHTML5 maintenant partie 1 : la sémantique
HTML5 maintenant partie 1 : la sémantique
 
Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014Formation html5 CSS3 offerte par ippon 2014
Formation html5 CSS3 offerte par ippon 2014
 
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
 
GDG Rennes - Bootcamp Initiation Android - Théorie
GDG Rennes - Bootcamp Initiation Android -  ThéorieGDG Rennes - Bootcamp Initiation Android -  Théorie
GDG Rennes - Bootcamp Initiation Android - Théorie
 
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidementENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 2/3 - HTML5, CSS3, Twitter B...
 
FinistJUG - J’ai besoin d’une appli web rapidement
FinistJUG -   J’ai besoin d’une appli web rapidementFinistJUG -   J’ai besoin d’une appli web rapidement
FinistJUG - J’ai besoin d’une appli web rapidement
 
Créez votre site web vous-même 1/2
Créez votre site web vous-même 1/2Créez votre site web vous-même 1/2
Créez votre site web vous-même 1/2
 
Internationalisation du Front
Internationalisation du FrontInternationalisation du Front
Internationalisation du Front
 

More from Horacio Gonzalez

Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27Horacio Gonzalez
 
But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...Horacio Gonzalez
 
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27Horacio Gonzalez
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSHoracio Gonzalez
 
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Horacio Gonzalez
 
Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09Horacio Gonzalez
 
Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Horacio Gonzalez
 
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24 Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24 Horacio Gonzalez
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptHoracio Gonzalez
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...Horacio Gonzalez
 
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQLENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQLHoracio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQLENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQLHoracio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptHoracio Gonzalez
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...Horacio Gonzalez
 
Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Horacio Gonzalez
 
Mixing Web Components - Paris Web Components - 2015 09-16
Mixing Web Components - Paris Web Components - 2015 09-16 Mixing Web Components - Paris Web Components - 2015 09-16
Mixing Web Components - Paris Web Components - 2015 09-16 Horacio Gonzalez
 
Devoxx France - Web Components, Polymer et Material Design
Devoxx France -  Web Components, Polymer et Material DesignDevoxx France -  Web Components, Polymer et Material Design
Devoxx France - Web Components, Polymer et Material DesignHoracio Gonzalez
 
Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...
Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...
Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...Horacio Gonzalez
 
2014 03-25 - GDG Nantes - Web Components avec Polymer
2014 03-25 - GDG Nantes - Web Components avec Polymer2014 03-25 - GDG Nantes - Web Components avec Polymer
2014 03-25 - GDG Nantes - Web Components avec PolymerHoracio Gonzalez
 
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!Horacio Gonzalez
 

More from Horacio Gonzalez (20)

Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
Il n'y a pas que Polymer dans la vie… - RennesJS - 2017-06-27
 
But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...But there is no web component for that - Web Components Remote Conference - 2...
But there is no web component for that - Web Components Remote Conference - 2...
 
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27 Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
Mixité dans le monde des WebComponents - DevFest Toulouse - 2017-09-27
 
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JSENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
ENIB 2016 2017 - CAI Web S02E01- Côté navigateur 1/3 - HTTP, HTML, CSS, JS
 
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
Battle of Frameworks: Polymer - Meetup Paris Web Components - 2016-09
 
Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09Mixing Web Components - Best of Web Paris - 2016 06-09
Mixing Web Components - Best of Web Paris - 2016 06-09
 
Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20Polymer in the real life - Devoxx France - 2016 04-20
Polymer in the real life - Devoxx France - 2016 04-20
 
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24 Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
Warp10: collect, store and manipulate sensor data - BreizhCamp - 2016 03-24
 
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScriptENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
ENIB 2015 2016 - CAI Web S02E03- Forge JS 1/4 - La forge JavaScript
 
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
ENIB 2015 2016 - CAI Web S02E01- Côté Navigateur 3/3 - Web Components avec Po...
 
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQLENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
ENIB 2015 2016 - CAI Web S02E03 - Forge JS 2/4 - MongoDB and NoSQL
 
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQLENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
ENIB 2015-2016 - CAI Web - S01E01- MongoDB and NoSQL
 
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScriptENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
ENIB 2015-2016 - CAI Web - S01E01- La forge JavaScript
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 3/3 - Web components avec ...
 
Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18
 
Mixing Web Components - Paris Web Components - 2015 09-16
Mixing Web Components - Paris Web Components - 2015 09-16 Mixing Web Components - Paris Web Components - 2015 09-16
Mixing Web Components - Paris Web Components - 2015 09-16
 
Devoxx France - Web Components, Polymer et Material Design
Devoxx France -  Web Components, Polymer et Material DesignDevoxx France -  Web Components, Polymer et Material Design
Devoxx France - Web Components, Polymer et Material Design
 
Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...
Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...
Steven Le Roux - Kafka et Storm au service de la lutte antiDDoS à OVH - Soiré...
 
2014 03-25 - GDG Nantes - Web Components avec Polymer
2014 03-25 - GDG Nantes - Web Components avec Polymer2014 03-25 - GDG Nantes - Web Components avec Polymer
2014 03-25 - GDG Nantes - Web Components avec Polymer
 
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!Bootcamp d'Initiation à Android  - 2013/11/30 - Live coding :   Hello world!
Bootcamp d'Initiation à Android - 2013/11/30 - Live coding : Hello world!
 

Enib cours c.a.i. web - séance #1 - html5 css3-js - td

  • 1. Conception d'Applications Interactives : Applications Web et JEE Séance #1 Le web en 2012 - HTML5/CSS3/JS
  • 2. Le web en 2012 : HTML5/CCS3/JS ● Les bases du web ○ HTTP, URL, HTML, CSS, JS, AJAX... ● HTML5 ○ HTML5, CSS3, le casse-tête des navigateurs... ○ Le web en 2012, le responsive design ● Twitter Bootstrap ○ Outils, échafaudage, LessCSS, JQuery ● Le développeur web en 2012 ○ Rôles, technologies, langages, veille technologique
  • 3. TD HTML5 : Le cube
  • 4. TD HTML5 : Le cube 1. Produire un document HTML5 avec un élement div appelé cube ○ Ouvrir le fichier avec le navigateur et vérifier qu'il est cohérent ○ Valider le fichier avec HTML5 Validator ■ N'oubliez pas ajouter la balise title, obligatoire 2. Un cube a 6 faces : créer 6 éléments div à l'intérieur de l'élément cube, tous appartenant à une classe face, chacun avec une id selon sa position : front, back, top, bottom, left, right ○ Les faces doivent avoir des dimensions 200x200 px, un fond gris (background: #888) et une bordure noire d'un pixel de large ■ Créer un élément style dans le head du document ■ Avec la définition de la classe face
  • 5. TD HTML5 : Le cube 3. Mettons les 6 faces les unes sur les autres : ● Position: absolute, top: 0, left: 0 4. Le cube va être centré ● Position: absolute, top: 200px, left: 400px 5. Passons sur une vue isométrique sur l'objet cube ○ translateX, translateY, translateZ ○ rotateX, rotateY, rotateZ Exemple rotation sur Firefox : -moz-transform : rotateZ(65deg);
  • 6. TD HTML5 : Le cube 6. Maintenant on a 6 faces à plat. Pour chacunes des face, créer l'élément de style correspondant à son id et appliquer les transformations 3D pour le mettre à sa place ○ Il ne faut pas oublier de positionner -moz-transform-style: preserve-3d; sur cube ○ Commencez par les faces front et back
  • 7. TD HTML5 : Le cube 7. Ajoutez des images à chaque face ○ Les images sont ici ○ Bien vérifier l'orientation des faces ■ Les logos doivent être à l'endroit
  • 8. TD HTML5 : Le cube 8. Maintenant on le fait tourner ! ○ Des rotations sur le cube ○ Utilisations d'animation et @keyframe ○ Propriété utile : -moz-transform-origin: 100px 100px;
  • 9. TD API publique : Twitter
  • 10. TD API publique : Twitter 1. Produire un document HTML5 avec un élement div appelé twitlist ○ Ouvrir le fichier avec le navigateur et vérifier qu'il est cohérent ○ Valider le fichier avec HTML5 Validator ■ N'oubliez pas ajouter la balise title, obligatoire 2. Donner un style à twitlist ○ centré, 500px large, avec bordure et fond
  • 11. TD API publique : Twitter 3. Dans twitlist afficher le tag #html5 en mode embedded ○ https://dev.twitter.com/docs/embedded-timelines ● Il faudra : ○ Avoir un compte twitter ○ Se connecter sur son compte ○ Créer un widget ○ Prendre le code du widget et le mettre sur le HTML ○ Démarrer un serveur web servant le HTML ■ Le mode embedded demande localhost, non file ○ Pointer le navigateur vers ce serveur $ ./nodejs/bin/node ./nodejs/bin/http-server REPERTOIRE_TRAVAIL Starting up http-server, serving REPERTOIRE_TRAVAIL on port: 8080 Hit CTRL-C to stop the server
  • 12. TD API publique : Twitter Pour l'instant on n'a mis que du code embedded. C'est l'heure d'utiliser une vraie API. 4. Dans twitlist afficher le tag #html5 via l'API JSON ○ https://dev.twitter.com/docs/api/1.1 ● On veut récupérer un hashtag : fonction search : ○ https://dev.twitter.com/docs/api/1.1/get/search/tweets ○ https://dev.twitter.com/docs/using-search ● La réponse sera une liste JSON composé d'objets Tweet ○ https://dev.twitter.com/docs/platform-objects/tweets
  • 13. TD API publique : Twitter ● Problème de requête cross-domaine ○ On doit appeler l'API Twitter depuis localhost ○ On doit utiliser JSONP ● Générer un élément div par message à montrer ○ A la volée dans le callback ● Pour cette première iteration, il suffit d'afficher le auteur du message et le titre : ○ tweet.from_user + " : <b><i>" + tweet.text + "</b></i>"
  • 14. TD API publique : Twitter Pour l'instant on a quelque chose de semblable à :
  • 15. TD API publique : Twitter Maintenant il va falloir le rendre plus beau ● Des classes CSS pour chaque élément de l'objet Tweet ● Quelques règles pour mise en forme
  • 16. TD API publique : Twitter 5. Faire que la twitlist se mette à jour tous les 10 sécondes ● Pour éviter la fuite de mémoire, réutiliser les containers ○ N'en créez pas à chaque fois
  • 17. TD API Google Maps et Géolocalisation
  • 18. TD API Google Maps et Géolocalisation 1. Produire un document HTML5 avec un élement div appelé geoloc ○ Ouvrir le fichier avec le navigateur et vérifier qu'il est cohérent ○ Valider le fichier avec HTML5 Validator ■ N'oubliez pas ajouter la balise title, obligatoire 2. Donner un style à geoloc ○ centré, 500px large, avec bordure et fond
  • 19. TD API Google Maps et Géolocalisation 3. Utiliser la géolocalisation de HTML5 pour afficher dans geoloc les coordonées du navigateur (longitude, lattitude, altitude) ○ Utiliser navigator.geolocation.getCurrentPosition 4. Utiliser l'API Google Maps pour montrer dans geoloc la carte correspondant à la position du navigateur