Développement WEB

7h

Décembre, 2023

Master – Créalise

Formateur: Philippe Vincent

administrateur + développeur + formateur

= artisan numérique


Support de formation sous Copyleft

Licence Art Libre

Présentez-vous !

  • Prénom - NOM

  • Quel est votre niveau en développement Web ?

    • Pouvez-vous citer :
      • quelques outils, …
      • des noms de technologies, …

Partie THÉORIQUE

Frontend

HTML / CSS / Javascript

Historique

Notion de frameworks

Importance du Libre

Frontend Development (in english)

Différence Frontend / Backend

  • Développement Front => tout ce qui est visible, généralement page web dynamique

  • Développement Back => tout ce qui tourne côté serveur, généralement des processus et/ou stockage de données

Frameworks

  • rapide définition => outil et bonnes pratiques à la fois côté Front et Back, parfois les 2 en même temps

HTML / CSS / JavaScript

  • Le tryptique
    • HTML5
    • CSS3
    • JavaScript (langage de programmation)
      • différentes variantes
        • ECMAScript
        • TypeScript

Apprentissage complexe

  • plein de choix technologiques
  • changement rapide
  • historique cahotique
  • sophistication Vs minimalisme
    • pur HTML5/CSS3/Vanilla JS
    • utilisation de frameworks
      • préférer licence libres
        • histoire de licence privatrice => Flash, … => MORT!
      • Enterprise Vs Communautaire

Importance du Libre

implémentation des protocoles IETF

The Internet Engineering Task Force (IETF),
founded in 1986, is the premiere standards
development organization (SDO) for the Internet.

Pour un Web ouvert (livre PDF)

  • format ouvert
  • décentralisation

web ouvert

Feuille de style CSS

  • Utile pour distinguer la forme du fond
  • en place avec la balise <style></style>
  • séparé dans un fichier distinct avec <link rel="stylesheet" />

Quelques

Framework CSS

  • pour avoir un design prêt à l’emploi
    • BOOTSTRAP
      • le choix simple
    • BULMA
      • une alternative moderne qui réutilise Flex
  • un entre-deux utilitaire et des bonnes pratiques
    • TAILWIND
      • orienté composant HTML
      • court-circuite le CSS

Typographie utilitaire

  • Police de caractère (libre de préférence)
  • Emoji 🏀 🎀 getemoji.com
  • Fork Awesome (en référence à Fontawesome et Fork)

forkawesome

quelques

Framework Javascript

  • reconnus
    • JQuery plutôt vieillissant
    • Angular enterprise
    • React facebook
    • VueJs (libre & communautaire)
  • alternatifs
    • Svelte
    • WebAssembly

Utiliser un navigateur récent

  • Firefox
  • Chromium 🔍
    • ou à défaut… Chrome

Outil Web Developer

  • préférence pour GNU/Linux (car destination serveur identique)
  • Firefox + WebDeveloper (F12), or Chromium
  • IDE Codium
    • différence entre VS Code et Codium
    • ajout d’extensions
      • vérificateur d’orthographe
      • aide à la programmation

Partie PRATIQUE

installer un environnement de développement

Fork Awesome

Tailwind

Alpine JS

installer un environnement de développement

  • Codium
  • NodeJs
  • Tailwind
  • projet vide

⬇️

Pour les Mac

Télécharger

Pour les Windows

Télécharger Version Win64 🔗

NodeJs

Tester en ligne de commande

npm --version

7.6.0

Tailwind

  • npm install -D tailwindcss
  • npx tailwindcss init

projet vide

  • télécharger 🔗 webdev-minimal

  • dézipper, puis ouvrir avec Codium

  • accepter l’installation des extensions recommandées

show recommended extensions
=> install all recommended extensions

ouvrir Terminal (CTRL+J)

npm install

Exercice 1.1

  • ouvrir index.html
    • modifier la partie <HEAD>
      • changer la balise <title>
      • ajouter fork-awesome

<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css"
integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY="
crossorigin="anonymous">

Exercice 1.2

  • modifier la partie <BODY>
    • modifier le titre <h1>

    • créer un paragraphe avec <p>

    • ajouter un emoji

    • puis, insérer une icone, par exemple <i class="fa fa-eye"></i>

    • ajouter une ou des images avec des URLs publiques

TAILWIND

  • référence au vent
  • revient sur l’idée de séparation contenu et style
    • orienté composants

outil de développement

CheatSheet

https://tailwindcomponents.com/cheatsheet/

exercice 2.1

Avec TailwindCSS,

personnaliser la page web précédente,

  • entête type airbnb
  • des cartes
  • un bas de page

exercice 2.2

Avec TailwindCSS,

créer un formulaire

avec différents champs (texte, radio, …)

  • des boutons (SOUMETTRE + REINITIALISER)

utiliser un style sympa !!!

Flex

changement majeur pour positionner des élements de page, avant on utilisait float et c’était difficile

Jouer à https://flexboxfroggy.com/

AlpineJS

Lire

https://alpinejs.dev/start-here

  • x-data
  • x-model
  • x-show

Objectif : TODO LIST

exercice 3.1

Faire un formulaire form qui contient

  • un champ avec input type=text
  • un bouton “Ajouter” qui reçoit l’événement click et qui écrit sur la console de log le mot ‘ajouter’
console.log('ajouter')
  • pour éviter le rechargement de la page, personnaliser le formulaire tel que:
<form @submit.prevent>

exercice 3.2

Ajouter une variable todoList qui contient un tableau nul []

Modifier le bouton Ajouter, de sorte qu’il ajoute la valeur du champ input dans la todoList

Afficher la liste des todoList

etc…

https://www.youtube.com/watch?v=DJjenhzqBHk

Le jeu de cartes

“JE SAIS TOUT”

Principe: choisissez un thème (1 parmi 10)

En se basant sur une recherche active sur Internet, vous devez mettre en commun vos connaissances, puis présenter à l’oral à l’ensemble de la classe, comme si vous êtiez un expert du sujet.

Règles
20mn de recherche active
10mn de mise en commun avec son binôme
5 mn de présentation à l'oral

Ne pas oublier de parler des MOTS CLEFS !

CARTES

  1. Tim Berners Lee
  2. Web 2.0
  3. Moteur de recherche
  4. Frontend Vs Backend
  5. Javascript
  6. Client Web / Serveur Web
  7. NodeJs
  8. Bulma CSS
  9. React
  10. VueJs

CARTE 1 : Tim Berners Lee

* W3C
* La neutralité du Net
* Solid
  * données personnelles

CARTE 2 : Web 2.0

* Wiki
* les microformats
* Ajax
  * Json

CARTE 3 : Moteur de recherche

* robot web
* indexation
* Altavista
* Google
  * PageRank

CARTE 4 : Frontend Vs Backend

* Définition *Frontend*
* Définition *Backend*
* Expériences Utilisateur (UX)
* Base de données
* Application Program Interface (API)

CARTE 5 : Javascript


* ECMAScript
* Structure DOM
* Virtual DOM
* Json

CARTE 6 : Client Web / Serveur Web


* Client
  * Firefox
  * Chromium

* Serveur
  * Apache
  * NGinx

CARTE 7 : NodeJs

* langage Javascript
  * fonctionnalité Entrées / Sorties (IO)
* la commande *npm*

CARTE 8 : Bulma CSS

* CSS
* Flex
* communautaire

CARTE 9 : React

* Instagram / Facebook
* composant
* VirtualDOM

CARTE 10 : VueJs

* VirtualDOM
* composant
* communautaire

Évaluation

qcm.artcode.re

25 minutes