Introduction
Dans ce cours nous continuerons l'exploration des technologies front-end, back-end avec nodeJS, BDs NoSQL, hébergement dans le cloud etc.
Séance 1 : introduction aux Web Components (standards du W3C)
TP1 : écriture d'un générateur de logos
Vous le savez, on peut faire de très jolies choses pour transformer un texte (une chaîne de caractères) en logo coloré, texturé, avec des bordures, des ombres, des animations etc. Uniquement avec HTML et CSS ont peut faire des choses assez impressionnantes. Mais si on met JavaScript et si on utilise par exemple le canvas HTML5 alors on peut faire des animations et des effets encore plus complexes.
L'idée de ce TP est de commencer à voir comment écrire un composant <app-logo> qui accepte un certain nombres d'attributs, par exemple :
- taille, couleur, couleur bordure, texture, transparence texture, ombre, animation (="rebond" ou "rotationZ", etc.)
- Et affiche aussi (plus tard optionnellement) quelques champs <input> pour pouvoir aussi modifier cela une fois le logo affiché.
Dans un premier temps on génèrera le logo en utilisant depuis la classe JS du WebComponent l'attribut style
de l'élément HTML utilisé dans le template (un <span>
ou un <div>
par exemple)... dans un second temps vous essaierez d'animer le logo (toujours via CSS)
Enfin, et ce sera à rendre pour la rentrée, vous ajouterez une option pour un logo sous forme de canvas HTML5 et proposerez des animations plus évolués avec des effets plus rigolos.
API JavaScript de votre composant :
- Alors, avez-vous bien conçu votre WebComponent ? Avez-vous pensé à proposer une API pour que lui-aussi puisse être controlé de l'extérieur par du code JavaScript (par exemple, par quelqu'un qui l'aurait inclu dans sa propre page et qui voudrait démarrer l'animation en cliquant par exemple sur un bouton et en appelant logo.startAnim(20); (20 étant par exemple une vitesse de rotation ou d'animation)... Vous pourrez vous aider par exemple de ce site qui propose des animations CSS15 .
- Avez-vous utiliser le MVC (le fait que certains attributs puissent être "surveillés"), si on change par programme la couleur, il faudrait que l'
<input type="color">
se mette à jour, si on change la vitesse, que le <input type="range">
se mette à jour etc.
Voilà, cela fait pas mal de choses à faire.... c'est un bon départ avant d'attaquer les frameworks plus connus...
TP2 : on continue le travail précédent
A rendre pour le prochain cours à la rentrée : votre générateur de logo
- Avec des trucs originaux non vus en cours, (effets CSS, animations, options)
- Envoyer le lien github + c'est bien si vous l'avez en ligne aussi
Séance 6 : HttpClient service connecté au BackEnd, RxJS etc.
Mini projet à rendre pour le XXX Mars
Notes de bas de page
1 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#Introduction
2 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#S.c3.a9ance_1_.3a_introduction_aux_Web_Components_(standards_du_W3C)
3 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#Supports_de_cours_.3a
4 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#TP1_.3a_.c3.a9criture_d'un_g.c3.a9n.c3.a9rateur_de_logos
5 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#TP2_.3a_on_continue_le_travail_pr.c3.a9c.c3.a9dent
6 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#A_rendre_pour_le_prochain_cours_.c3.a0_la_rentr.c3.a9e_.3a_votre_g.c3.a9n.c3.a9rateur_de_logo
7 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#S.c3.a9ance_3_.3a_introduction_.c3.a0_Angular
8 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#S.c3.a9ance_4_.3a_on_continue_l'apprentissage_d'Angular_(sous-composants.2c_communication_entre_composants)
9 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#S.c3.a9ance_5_.3a_on_continue_Angular_(router.2c_back-end_dans_le_cloud.2c_api_en_Node.2fExpress.2fMongoose
10 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#S.c3.a9ance_6_.3a_HttpClient_service_connect.c3.a9_au_BackEnd.2c_RxJS_etc.
11 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Master_Miage_IA2_2020-2021_Technologies_Web#Mini_projet_.c3.a0_rendre_pour_le_XXX_Mars
12 https://docs.google.com/presentation/d/1fCJzYgXllRxudr0aW53L7ltDZMLFVprWFTLsN8HWW8I/edit?usp=sharing
13 https://www.edx.org/course/html5-apps-and-games
14 https://youtu.be/vil7T8LD8Zc
15 https://animista.net/
16 http://miageprojet2.unice.fr/@api/deki/files/2967/=tp1_webComponents.zip
17 https://youtu.be/fuBEK8CSaBs
18 https://docs.google.com/presentation/d/1O8cIb5iqlt9ZqG5zEmETnK-hAxBOGsUe0M1xm61sb2U/edit?usp=sharing
19 https://docs.google.com/document/d/1wntGTb5lwBcid9JWUV25t0Q76NevDcuPA-gjn248tD0/edit?usp=sharing
20 http://miageprojet2.unice.fr/@api/deki/files/2979/=assignment-app.zip
21 https://youtu.be/r5jOVQtxfpc
22 https://docs.google.com/presentation/d/1O8cIb5iqlt9ZqG5zEmETnK-hAxBOGsUe0M1xm61sb2U/edit?usp=sharing
23 http://miageprojet2.unice.fr/@api/deki/files/2988/=tp1_angularAvecCommunicationPereFilsDetailsAddComponents.zip
24 https://youtu.be/EJc6OwF-Sgw
25 https://youtu.be/KAp3DBApvyI
26 http://miageprojet2.unice.fr/@api/deki/files/2989/=tp1_angularServicesGET_POST_DELETE.zip
27 https://docs.google.com/presentation/d/1O8cIb5iqlt9ZqG5zEmETnK-hAxBOGsUe0M1xm61sb2U/edit?usp=sharing
28 https://youtu.be/2O-TgJ6OPB4
29 https://youtu.be/ehpIzVG3tCc
30 http://miageprojet2.unice.fr/@api/deki/files/2995/=tp1_angularAvecAPI_MongoDB_Router.zip
31 https://youtu.be/fweoPBFz69k
32 http://miageprojet2.unice.fr/@api/deki/files/3001/=tp1_angularHttpClientServicesNodeMongo.zip
33 http://miageprojet2.unice.fr/@api/deki/files/3002/=tp2-servicesMBDSScrollInfiniPagination.zip
34 http://miageprojet2.unice.fr/Intranet_de_Michel_Buffa/Technlogies_Web_2_-_Master_2_Miage/MBDS_Mini_Projet_2020-2021_Am%c3%a9liorer_le_TP_de_gestion_des_assignments