
|
M2 MBDS Casablanca : HTML5/JavaScript/NodeJS
De $1
Introduction
Ce cours a pour but de vous faire progresser sur les technologies web front end (HTML5, CSS, JavaScript) mais aussi d'introduire des nouveautés importantes concernant la programmation côté serveur (WebSockets, NodeJS).
Première partie : introduction des technologies web, panorama général
Ressources à garder dans un coin et à regarder si on est curieux :
JavaScript :
CSS :
- http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Exemples_interactifs_CSS
- Les tutoriaux de codeacademy.com sont très bien et gratuits
HTML5 :
Deuxième partie : rappel des bases de JavaScript
On va procèder cette fois-ci à une séance de live coding via l'outil jsbin.com, puis ce sera à vous de jouer... On mettra ici les exemples développés en cours.
Cours JavaScript : http://mainline.essi.fr/JavaScriptSlides/index.html22
Quatrième partie : formulaires HTML5, persistence par Local/Session Storage, tableaux
Ressources : exemples CSS du W3c
Cinquième partie : la persistence en HTML5
Support de cours :
MINI PROJET A RENDRE POUR LE MERCREDI 18/3/2015
Le projet est à rendre rapidement pour vous en débarrasser "à chaud". Je nommeria une personne dans la promotion qui devra me faire parvenir un zip avec tous les projets de la promotion, soit par mail, soit par dropbox, ou autres...
Travail à faire :
- Une page personnelle (vous pouvez partir d'une page que vous avez déjà), utilisant les bonnes pratiques de HTML5 pour sa structuration (article, section, figure, figcaption, nav, header, aside), et pour pouvoir générer une table des matières correcte (vous pourrez tester avec l'extension chrome HTML5 outline, on ne doit pas avoir de"untitled", etc). La bonne pratique recommande de commencer tous les "sectioning elements" (article, section, etc.) par un H1 ou par un <header><H1>..., faites y attention. La page personnelle doit aussi contenir des microdatas vous décrivant : nom, situation, adresse, url de la page perso etc. Pas la peine de mettre trois tonnes de microdatas, inspirez-vous simplement des exemples dans le cours. Vous pouvez utiliser des générateurs pour ensuite insérer les microdatas. Je testerai à l'aide de l'extension chrome "microdata reveal" et aussi dans la page de test de google : https://developers.google.com/struct.../testing-tool/39
- Une animation dans le canvas, avec un petit monstre, que l'on doit pouvoir animer et déplacer (à la souris, au clavier, comme vous voulez), on doit avoir aussi une jolie animation des logos du MBDS et de l'EMSI. On veut du son et de la musique aussi. J'attends un peu d'originalité ici, peu m'importe votre approche du moment que ce soit intéressant. Je noterai le résultat, l'originalité, et aussi je regarderai le code pour voir si vous avez utilisé les bonnes pratiques vues en cours (sauvegarde du contexte, transformations géométriques, manière de gérer les interactions, structure du code).
- POUR HEBERGER VIDEO ET SONS ET IMAGES afin que ça marche dans jsbin.com ou que vous n'ayez pas besoin de me les envoyer (ça peut être gros), voici ce que je vous conseille pour l'hébergement (mais ce n'est pas obligatoire de suivre ces conseils, vous faites comme vous voulez) : imgur.com est un site d'hébergement de photos très pratique, gratuit, sans besoin de compte. Pour les vidéos et audio : dropbox dans votre répertoire public, puis clic droit pour avoir le lien que vous utiliserez dans votre code HTML. On peut aussi utiliser des sons et des musiques directement trouvées sur le web.
La page perso est... personnelle, le projet du monstre peut être fait à deux ou à trois, mais attention, j'ai vos feuilles de présences, je sais qui a travaillé avec qui pendant les cours. Certains élèves n'ont pas le droit de travailler en groupe. Je n'accepte qu'un seul groupe de trois (ceux que j'ai vu travailler à trois).
Vous rendrez par groupe :
- Une page perso par membre du groupe,
- Le projet du monstre
- Dans l'archive du groupe, QUI DOIT PORTER VOS NOMS on trouvera un fichier Readme.txt qui contiendra les deux URLs jsbin.com de vos travaux. Vous pourrez aussi, mais ce n'est pas obligatoire, me donner les fichiers html, css, js.
Exemple de fichier README.txt
"Bonjour, voici le travail du groupe composé de John Wayne et Bruce Willis. La page perso de John est sur http://jsbin.com/totoprout/240 et celle de bruce sur http://jsbin.com/rhaaaaaaa/441, le projet du monstre est sur http://jsbin.com/842. On a aussi joint les fichiers html/js/css dans les trois répertoires que vous trouverez dans l'archive. On s'est tellement amusés avec le monstre qu'on a aussi une version plus évoluée, mais dans jsbin.com ce n'était pas pratique, vous la trouverez dans le répertoire GrosMonstreTresMechant. On a piqué les sons sur freesound.org, et trouvé des vidéos sympas pour les animations sur : http://videoscool.com43.
N'oubliez d'essayer la barre d'espace, et aussi de cliquer avec la souris. Le monstre peut aussi manger le logo MBDS.
Dans sa page perso Bruce tiens à signaler qu'il n'a pas pu générer convenablement la table des matières comme dans les exemples, mais il a essayé, version qui ne marche pas dans le répertoire PageBruceTableDesMatieresQuiMarchePas
etc....."
Rappel des absences à ce cours jour par jour et sanctions
J'ai pris en photo toutes les feuilles de présence, voici les résultats...
| Lundi | Mardi | Mercredi après midi | Merdredi matin | Jeudi | Vendredi | Points en moins pour absence non justifiée | AHADOUN MOHAMED | AP | PP | AP mais certificat dentiste | AA mais certificat dentiste | PP | | 1 point | AIT KHALAT RKIA | PP | PP | PP | AP | PP | | 1 points | ALEHIANE IMANE | PP | PP | PP | PP | AA | | 2 points | AZIDANE NOUHAILA | PP | PP | PP | AP | PP | | 1 point | CHQUOUBI HAJAR | PP | PP | PP | AP | PP | | 1 point | DAHMANE YASSINE | PP | PP | PP | PP | PP | | 0 points | DAKIR YOSSR | PP | PP | PP | PP | PP | | 0 points | EL FADIL EL MEHDI | AA | PP | PP | AA | AA | | 6 points DOIT FAIRE LE PROJET SEUL, soupçon de triche = 0 direct | EL HATAF MARIYA | PP | PP | PP | PP | PP | | 0 points | EL MAFHOUM ANAS | AP | PP | PP | PP | PP | | 1 points | FAKIR HAMZA | AP | AA | AP | AA | AA | | 7 points DOIT FAIRE LE PROJET SEUL, soupçon de triche = 0 direct | GHARIB MOHAMED | AA | PP | PP | AP | PP | | 3 points | IDRISSI HAMZA | AP | PP | PP | PP | PP | | 1 points | KHALLOUKI ILHAM | PP | PP | PP | AA | PP | | 2 points | MECHTI YOUSSEFF | PP | PP | PP | AP | PP | | 1 point | SENHAJI SAAD | PP | PP | PP | AP | PP | | 1 point | TIJAHI ANASS | AA | AA | AA | AA | AA | | 10 points DOIT FAIRE LE PROJET SEUL, soupçon de triche = 0 direct | TOTAL ABSENCES PAR JOUR | 8:30-10:30 : 6 absents sur 17 !! 10:30-12:30 : 3 | 8:30-10:30 : 2 10:30-12:30: 2 | 14-16 : 5 absents sur 17 !!! 16-18 : 2 | 8:30-12:30 : 10 absents sur 17 !!! 10:30-12:30 : 5 absents sur 17 !!! | 8:30-10:30 : 4 10:30-12:30 : 4 | | |
Ressources externes, outils, exemples, etc...
Outils (attention, sujet trollesque...!)
Nous n'allons pas utiliser d'outils particuliers pour cette formation, uniquement des outils "standards" tels que Eclipse, Netbeans, Sublime Text 244, Notepad++ ou les outils que vous appréciez pour éditer du code. Néanmoins, de nombreux exemples HTML5/JS/CSS seront proposés sur des envrionnements de développement en ligne tels que http://jsbin.com/45, http://jsfiddle.net/46, http://dabblet.com/47 ou http://codepen.io/48, particulièrement adaptés pour faire de petits exemples partageables (vous pouvez modifier les exemples, vous les approprier, mais jamais les casser, car pour chaque modification une version est générée, avec son URL unique).
ICI UN DOCUMENT QUI EXPLIQUE COMMENT CONFIGURER EFFICACEMENT DES OUTILS/EDITEURS/IDEs pour faire du JavaScript de manière optimale (brancher NodeJS pour valider du JS et rediriger les erreurs dans Sublime Text, WebStorm et NetBeans, les devtools de google chrome pour pouvoir éditer / sauver les fichiers depuis le browser)
Comment tirer le meilleur de Sublime Text (raccourcis claviers + meilleurs modules) : http://slides.com/grinnyhermant/les-...sublime-text#/50
Autre cours et galleries d'exemples CSS 2 et 3, JavaScript et HTML5
JavaScript
En plus du support papier distribué vous pouvez également regarder ces ressources:
CSS
Un bon exemple CSS3 avec zoom, rotation, bords arrondis, ombres, etc...
Flex Layout exemples
Transitions exemples
Animations exemples
Multi-colonnes exemple
WebFont exemple
Dégradés exemples
Ombres exemple
Background exemple
Border-image exemple
HTML5
Vous trouverez de très nombreux exemples interactifs dans les liens jsbin.com des supports de cours PDF en anglais. La plupart de ces exemples sont aussi disponibles sur cette page : HTML5 discovery tutorial85
Heberger une application NodeJS
Tout est là: https://github.com/joyent/node/wiki/node-hosting86, à vous de choisir le bon hébergeur. En général c'est gratuit soit pour une durée déterminée, soit si votre application n'est pas très grosse (c'est souvent le cas).
Notes de bas de page1 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Introduction 2 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Premi.c3.a8re_partie_.3a_introduction_des_technologies_web.2c_panorama_g.c3.a9n.c3.a9ral 3 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Deuxi.c3.a8me_partie_.3a_rappel_des_bases_de_JavaScript 4 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Troisi.c3.a8me_partie_.3a_le_canvas_HTML5 5 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Quatri.c3.a8me_partie_.3a_formulaires_HTML5.2c_persistence_par_Local.2fSession_Storage.2c_tableaux 6 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Cinqui.c3.a8me_partie_.3a_la_persistence_en_HTML5 7 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#MINI_PROJET_A_RENDRE_POUR_LE_MERCREDI_18.2f3.2f2015 8 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Rappel_des_absences_.c3.a0_ce_cours_jour_par_jour_et_sanctions 9 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Ressources_externes.2c_outils.2c_exemples.2c_etc... 10 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Outils_(attention.2c_sujet_trollesque...!) 11 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Autre_cours_et_galleries_d'exemples_CSS_2_et_3.2c_JavaScript_et_HTML5 12 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#JavaScript 13 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#CSS 14 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#HTML5 15 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/M2_MBDS_Casablanca_%3a_HTML5%2f%2fJavaScript%2f%2fNodeJS#Heberger_une_application_NodeJS 16 http://slidemaker.gexsoft.com/zzpewo/4 17 http://mainline.essi.fr/JavaScriptSlides/index.html 18 http://www.codecademy.com/de/tracks/javascript-combined 19 http://www.wuala.com/lpuums/JavaScript/Object-Oriented%20JavaScript%20-%20Stoyan%20Stefanov.pdf?lang=fr 20 https://developer.mozilla.org/en-US/docs/JavaScript/Guide 21 http://mainline.essi.fr/HTML5slides/indexFR.html 22 http://mainline.essi.fr/JavaScriptSlides/index.html 23 http://jsbin.com/genaro/1/edit?js,console 24 http://jsbin.com/purevu/3/edit 25 http://mainline.essi.fr/HTML5slides/canvasFR.html 26 http://jsbin.com/nelimi/2/edit 27 http://jsbin.com/nelimi/3/edit 28 http://jsbin.com/nelimi/5/edit 29 http://jsbin.com/nelimi/6/edit 30 http://jsbin.com/nelimi/7/edit?html,js,output 31 http://jsbin.com/nelimi/8/edit?js,output 32 http://jsbin.com/zevala/2/edit 33 http://jsbin.com/fopomo/15/edit?js 34 http://mainline.essi.fr/HTML5slides/chapter4.html#1 35 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Formation_HTML5_Inria_D%c3%a9cembre_2014/Exercice_fil_rouge_formation_INRIA_d%c3%a9cembre_2014 36 http://jsbin.com/yiyacu/2/edit 37 http://www.w3.org/Style/Examples/007/ 38 http://mainline.essi.fr/HTML5slides/chapter6.html 39 https://developers.google.com/structured-data/testing-tool/ 40 http://jsbin.com/totoprout/2 41 http://jsbin.com/rhaaaaaaa/4 42 http://jsbin.com/8 43 http://videoscool.com 44 http://www.sublimetext.com/2 45 http://jsbin.com/ 46 http://jsfiddle.net/ 47 http://dabblet.com/ 48 http://codepen.io/ 49 http://miageprojet2.unice.fr/@api/deki/files/2277/=JS_Mar14-_Writing_JavaScript_efficiently.pdf 50 http://slides.com/grinnyhermant/les-plugins-indispensable-de-sublime-text#/ 51 http://mainline.essi.fr/JavaScriptSlides/index.html 52 /@api/deki/files/1781/=Cours_JavaScript.zip 53 http://miageprojet2.unice.fr/@api/deki/files/2390/=Object-Oriented_JavaScript_-_Stoyan_Stefanov.pdf 54 http://www.amazon.fr/Object-Oriented-JavaScript-Stoyan-Stefanov-ebook/dp/B0057UNEJC/ref=sr_1_fkmr0_2?ie=UTF8&qid=1417451722&sr=8-2-fkmr0&keywords=object+oriented+javascript+stepanov 55 /@api/deki/files/1782/=jquery.ppt 56 http://ejohn.org/blog/spring-2010-jquery-talks/ 57 http://lab.abhinayrathore.com/jquery-standards/?utm_source=javascriptweekly&utm_medium=email 58 /Intranet_de_Michel_Buffa/Option_web_2.0_Master_1_informatique_2011/Ressources_JQuery 59 http://api.jquery.com/ 60 /Intranet_de_Michel_Buffa/Exemples_interactifs_CSS 61 http://dabblet.com/user/PhilippeRenevierGonin 62 http://www.w3schools.com/css/default.asp 63 http://estelle.github.io/ 64 http://lea.verou.me/projects/ 65 http://leaverou.github.com/prefixfree/ 66 http://lanyrd.com/profile/leaverou/slides/ 67 http://jsbin.com/ixowoc/5/edit#html,live 68 http://jsbin.com/ibesul/2/edit 69 http://jsbin.com/tadivale/9/edit 70 http://jsbin.com/yekededu/2/edit 71 http://jsbin.com/kocaqone/5/edit 72 http://blogs.msdn.com/b/eternalcoding/archive/2011/11/01/css3-transitions.aspx 73 http://matthewlein.com/ceaser/ 74 http://css3.bradshawenterprises.com/cfimg/ 75 http://jsbin.com/pomikipe/6/edit 76 http://jsbin.com/pomikipe/8/edit 77 http://jsbin.com/kafewudu/2/edit 78 http://jsbin.com/kobudiyo/2/edit 79 http://jsbin.com/ofucaq/15/edit 80 http://www.colorzilla.com/gradient-editor/ 81 http://jsbin.com/wihixuqi/2/edit 82 http://jsbin.com/wewipofu/2/edit 83 http://jsbin.com/sufohine/2/edit 84 http://jsbin.com/wokihori/2/edit 85 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/HTML5_Tutorial/HTML5_discovery_tutorial 86 https://github.com/joyent/node/wiki/node-hosting
|